Ignore:
Timestamp:
Apr 9, 2018 11:26:02 AM (3 years ago)
Author:
suehring
Message:

Bugfix in checks for dynamic input file initialization data

File:
1 edited

Legend:

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

    r2947 r2953  
    2525! -----------------
    2626! $Id$
     27! Bugfix in checks for initialization data
     28!
     29! 2947 2018-04-04 18:01:41Z suehring
    2730! Checks for dynamic input revised
    2831!
     
    19821985       INTEGER(iwp) ::  off_j      !< offset in y-direction used for reading the v-component
    19831986
     1987       LOGICAL      ::  check_passed !< flag indicating if a check passed
     1988
    19841989!
    19851990!--    Skip routine if no input file with dynamic input data is available.
     
    23442349       ENDDO
    23452350!
    2346 !--    Finally, check if the input data has any fill values.
     2351!--    Finally, check if the input data has any fill values. Please note,
     2352!--    checks depend on the LOD of the input data.
    23472353       IF ( init_3d%from_file_u )  THEN
    2348           IF ( ANY( u(nzb+1:nzt+1,nys:nyn,nxlu:nxr) == init_3d%fill_u ) )  THEN
     2354          check_passed = .TRUE.
     2355          IF ( init_3d%lod_u == 1 )  THEN
     2356             IF ( ANY( init_3d%u_init(nzb+1:nzt+1) == init_3d%fill_u ) )       &
     2357                check_passed = .FALSE.
     2358          ELSEIF ( init_3d%lod_u == 2 )  THEN
     2359             IF ( ANY( u(nzb+1:nzt+1,nys:nyn,nxlu:nxr) == init_3d%fill_u ) )   &
     2360                check_passed = .FALSE.
     2361          ENDIF
     2362          IF ( .NOT. check_passed )  THEN
    23492363             message_string = 'NetCDF input for u_init must not contain ' //   &
    23502364                              'any _FillValues'
     
    23522366          ENDIF
    23532367       ENDIF
     2368
    23542369       IF ( init_3d%from_file_v )  THEN
    2355           IF ( ANY( v(nzb+1:nzt+1,nysv:nyn,nxl:nxr) == init_3d%fill_v ) )  THEN
     2370          check_passed = .TRUE.
     2371          IF ( init_3d%lod_v == 1 )  THEN
     2372             IF ( ANY( init_3d%v_init(nzb+1:nzt+1) == init_3d%fill_v ) )       &
     2373                check_passed = .FALSE.
     2374          ELSEIF ( init_3d%lod_v == 2 )  THEN
     2375             IF ( ANY( v(nzb+1:nzt+1,nysv:nyn,nxl:nxr) == init_3d%fill_v ) )   &
     2376                check_passed = .FALSE.
     2377          ENDIF
     2378          IF ( .NOT. check_passed )  THEN
    23562379             message_string = 'NetCDF input for v_init must not contain ' //   &
    23572380                              'any _FillValues'
     
    23592382          ENDIF
    23602383       ENDIF
     2384
    23612385       IF ( init_3d%from_file_w )  THEN
    2362           IF ( ANY( w(nzb+1:nzt,nys:nyn,nxl:nxr) == init_3d%fill_w ) )  THEN
     2386          check_passed = .TRUE.
     2387          IF ( init_3d%lod_w == 1 )  THEN
     2388             IF ( ANY( init_3d%w_init(nzb+1:nzt) == init_3d%fill_w ) )         &
     2389                check_passed = .FALSE.
     2390          ELSEIF ( init_3d%lod_w == 2 )  THEN
     2391             IF ( ANY( w(nzb+1:nzt,nys:nyn,nxl:nxr) == init_3d%fill_w ) )      &
     2392                check_passed = .FALSE.
     2393          ENDIF
     2394          IF ( .NOT. check_passed )  THEN
    23632395             message_string = 'NetCDF input for w_init must not contain ' //   &
    23642396                              'any _FillValues'
     
    23662398          ENDIF
    23672399       ENDIF
     2400
    23682401       IF ( init_3d%from_file_pt )  THEN
    2369           IF ( ANY( pt(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_pt ) )  THEN
     2402          check_passed = .TRUE.
     2403          IF ( init_3d%lod_pt == 1 )  THEN
     2404             IF ( ANY( init_3d%pt_init(nzb+1:nzt+1) == init_3d%fill_pt ) )     &
     2405                check_passed = .FALSE.
     2406          ELSEIF ( init_3d%lod_pt == 2 )  THEN
     2407             IF ( ANY( pt(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_pt ) )  &
     2408                check_passed = .FALSE.
     2409          ENDIF
     2410          IF ( .NOT. check_passed )  THEN
    23702411             message_string = 'NetCDF input for pt_init must not contain ' //  &
    23712412                              'any _FillValues'
     
    23732414          ENDIF
    23742415       ENDIF
     2416
    23752417       IF ( init_3d%from_file_q )  THEN
    2376           IF ( ANY( q(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_q ) )  THEN
     2418          check_passed = .TRUE.
     2419          IF ( init_3d%lod_q == 1 )  THEN
     2420             IF ( ANY( init_3d%q_init(nzb+1:nzt+1) == init_3d%fill_q ) )       &
     2421                check_passed = .FALSE.
     2422          ELSEIF ( init_3d%lod_q == 2 )  THEN
     2423             IF ( ANY( q(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_q ) )    &
     2424                check_passed = .FALSE.
     2425          ENDIF
     2426          IF ( .NOT. check_passed )  THEN
    23772427             message_string = 'NetCDF input for q_init must not contain ' //   &
    23782428                              'any _FillValues'
Note: See TracChangeset for help on using the changeset viewer.