Ignore:
Timestamp:
Jan 27, 2020 8:37:37 AM (5 years ago)
Author:
hellstea
Message:

Nesting-related error messages PA0425 and PA0426 made more specific

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/pmc_interface_mod.f90

    r4360 r4385  
    2525! -----------------
    2626! $Id$
     27! Error messages PA0425 and PA0426 made more specific
     28!
     29! 4360 2020-01-07 11:25:50Z suehring
    2730! Introduction of wall_flags_total_0, which currently sets bits based on static
    2831! topography information used in wall_flags_static_0
     
    666669    INTEGER(iwp) ::  msib               !< Loop index over all other children than m in case of siblings (parallel children)
    667670    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)
    670671    INTEGER(iwp) ::  nx_child           !< Number of child-grid points in the x-direction
    671672    INTEGER(iwp) ::  ny_child           !< Number of child-grid points in the y-direction
    672673    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)
    673675   
    674676    INTEGER(iwp), DIMENSION(3) ::  child_grid_dim  !< Array for receiving the child-grid dimensions from the children
     
    724726                                      !< of the child msib is within the y-range of the child m
    725727
    726 
    727728!
    728729!-- Grid-line tolerances.
     
    801802             right_limit = upper_right_coord_x
    802803             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 )
    806813             ENDIF
    807814          ELSE       
     
    815822             south_limit = lower_left_coord_y + yez
    816823             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 )
    822847             ENDIF
    823848          ENDIF
     
    826851!--       layer of the child grid does not exceed the parent domain top boundary.
    827852          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 )
    829857          ENDIF
    830858!
     
    866894                     ( m_south_in_msib  .OR.  m_north_in_msib  .OR.                                 &
    867895                       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 )
    869900                ENDIF
    870901
     
    899930          CALL pmc_send_to_child( child_id, zu,  nz_child + 2, 0, 28, ierr )
    900931          CALL pmc_send_to_child( child_id, zw,  nz_child + 2, 0, 29, ierr )
    901 
    902           IF ( nomatch /= 0 )  THEN
    903              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           ENDIF
    906  
    907           IF ( nest_overlap /= 0  .AND.  nesting_mode /= 'vertical' )  THEN
    908              WRITE ( message_string, * ) 'nested parallel child domains overlap'
    909              CALL message( 'pmci_setup_parent', 'PA0426', 3, 2, 0, 6, 0 )
    910           ENDIF
    911932         
    912933       ENDIF  ! ( myid == 0 )
Note: See TracChangeset for help on using the changeset viewer.