- Timestamp:
- Jan 27, 2020 8:37:37 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/pmc_interface_mod.f90
r4360 r4385 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Error messages PA0425 and PA0426 made more specific 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Introduction of wall_flags_total_0, which currently sets bits based on static 28 31 ! topography information used in wall_flags_static_0 … … 666 669 INTEGER(iwp) :: msib !< Loop index over all other children than m in case of siblings (parallel children) 667 670 INTEGER(iwp) :: n = 1 !< Running index for chemical species 668 INTEGER(iwp) :: nest_overlap = 0 !< Tag for parallel child-domains' overlap situation (>0 if overlap found)669 INTEGER(iwp) :: nomatch = 0 !< Tag for child-domain mismatch situation (>0 if mismatch found)670 671 INTEGER(iwp) :: nx_child !< Number of child-grid points in the x-direction 671 672 INTEGER(iwp) :: ny_child !< Number of child-grid points in the y-direction 672 673 INTEGER(iwp) :: nz_child !< Number of child-grid points in the z-direction 674 INTEGER(iwp) :: sibling_id !< Child id-number for the child msib (sibling of child m) 673 675 674 676 INTEGER(iwp), DIMENSION(3) :: child_grid_dim !< Array for receiving the child-grid dimensions from the children … … 724 726 !< of the child msib is within the y-range of the child m 725 727 726 727 728 ! 728 729 !-- Grid-line tolerances. … … 801 802 right_limit = upper_right_coord_x 802 803 north_limit = upper_right_coord_y 803 IF ( ( ABS( child_coord_x(nx_child+1) - right_limit ) > tolex ) .OR. & 804 ( ABS( child_coord_y(ny_child+1) - north_limit ) > toley ) ) THEN 805 nomatch = 1 804 IF ( ABS( child_coord_x(nx_child+1) - right_limit ) > tolex ) THEN 805 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 806 ') domain right edge does not match its parent right edge' 807 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 808 ENDIF 809 IF ( ABS( child_coord_y(ny_child+1) - north_limit ) > toley ) THEN 810 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 811 ') domain north edge does not match its parent north edge' 812 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 806 813 ENDIF 807 814 ELSE … … 815 822 south_limit = lower_left_coord_y + yez 816 823 north_limit = upper_right_coord_y - yez 817 IF ( ( left_limit - child_coord_x(0) > tolex ) .OR. & 818 ( child_coord_x(nx_child+1) - right_limit > tolex ) .OR. & 819 ( south_limit - child_coord_y(0) > toley ) .OR. & 820 ( child_coord_y(ny_child+1) - north_limit > toley ) ) THEN 821 nomatch = 1 824 IF ( left_limit - child_coord_x(0) > tolex ) THEN 825 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 826 ') domain does not fit in its parent domain, left edge is either too ' // & 827 'close or outside its parent left edge' 828 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 829 ENDIF 830 IF ( child_coord_x(nx_child+1) - right_limit > tolex ) THEN 831 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 832 ') domain does not fit in its parent domain, right edge is either too ' // & 833 'close or outside its parent right edge' 834 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 835 ENDIF 836 IF ( south_limit - child_coord_y(0) > toley ) THEN 837 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 838 ') domain does not fit in its parent domain, south edge is either too ' // & 839 'close or outside its parent south edge' 840 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 841 ENDIF 842 IF ( child_coord_y(ny_child+1) - north_limit > toley ) THEN 843 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 844 ') domain does not fit in its parent domain, north edge is either too ' // & 845 'close or outside its parent north edge' 846 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 822 847 ENDIF 823 848 ENDIF … … 826 851 !-- layer of the child grid does not exceed the parent domain top boundary. 827 852 IF ( child_height - zw(nzt) > tolez ) THEN 828 nomatch = 1 853 WRITE ( message_string, "(a,i2,a)" ) 'nested child (id: ',child_id, & 854 ') domain does not fit in its parent domain, top edge is either too ' // & 855 'close or above its parent top edge' 856 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 ) 829 857 ENDIF 830 858 ! … … 866 894 ( m_south_in_msib .OR. m_north_in_msib .OR. & 867 895 msib_south_in_m .OR. msib_north_in_m ) ) THEN 868 nest_overlap = 1 896 sibling_id = pmc_parent_for_child(msib) 897 WRITE ( message_string, "(a,i2,a,i2,a)" ) 'nested parallel child domains (ids: ',& 898 child_id, ' and ', sibling_id, ') overlap' 899 CALL message( 'pmci_setup_parent', 'PA0426', 3, 2, 0, 6, 0 ) 869 900 ENDIF 870 901 … … 899 930 CALL pmc_send_to_child( child_id, zu, nz_child + 2, 0, 28, ierr ) 900 931 CALL pmc_send_to_child( child_id, zw, nz_child + 2, 0, 29, ierr ) 901 902 IF ( nomatch /= 0 ) THEN903 WRITE ( message_string, * ) 'nested child domain does not fit into its parent domain'904 CALL message( 'pmci_setup_parent', 'PA0425', 3, 2, 0, 6, 0 )905 ENDIF906 907 IF ( nest_overlap /= 0 .AND. nesting_mode /= 'vertical' ) THEN908 WRITE ( message_string, * ) 'nested parallel child domains overlap'909 CALL message( 'pmci_setup_parent', 'PA0426', 3, 2, 0, 6, 0 )910 ENDIF911 932 912 933 ENDIF ! ( myid == 0 )
Note: See TracChangeset
for help on using the changeset viewer.