Ignore:
Timestamp:
Feb 5, 2016 1:06:51 PM (6 years ago)
Author:
gronemeier
Message:

Bugfix:calculation of time levels for parallel NetCDF output

File:
1 edited

Legend:

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

    r1704 r1745  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! Bugfix: test if time axis limit exceeds moved to point after call of check_open
    2222!
    2323! Former revisions:
     
    234234    IF ( mode == 'xz'  .AND.  .NOT. data_output_xz(av) )  RETURN
    235235    IF ( mode == 'yz'  .AND.  .NOT. data_output_yz(av) )  RETURN
    236 !
    237 !-- For parallel netcdf output the time axis must be limited. Return, if this
    238 !-- limit is exceeded. This could be the case, if the simulated time exceeds
    239 !-- the given end time by the length of the given output interval.
    240     IF ( netcdf_data_format > 4 )  THEN
    241        IF ( mode == 'xy'  .AND.  do2d_xy_time_count(av) + 1 >                  &
    242             ntdim_2d_xy(av) )  THEN
    243           WRITE ( message_string, * ) 'Output of xy cross-sections is not ',   &
    244                           'given at t=', simulated_time, '&because the',       &
    245                           ' maximum number of output time levels is exceeded.'
    246           CALL message( 'data_output_2d', 'PA0384', 0, 1, 0, 6, 0 )         
    247           RETURN
    248        ENDIF
    249        IF ( mode == 'xz'  .AND.  do2d_xz_time_count(av) + 1 >                  &
    250             ntdim_2d_xz(av) )  THEN
    251           WRITE ( message_string, * ) 'Output of xz cross-sections is not ',   &
    252                           'given at t=', simulated_time, '&because the',       &
    253                           ' maximum number of output time levels is exceeded.'
    254           CALL message( 'data_output_2d', 'PA0385', 0, 1, 0, 6, 0 )         
    255           RETURN
    256        ENDIF
    257        IF ( mode == 'yz'  .AND.  do2d_yz_time_count(av) + 1 >                  &
    258             ntdim_2d_yz(av) )  THEN
    259           WRITE ( message_string, * ) 'Output of yz cross-sections is not ',   &
    260                           'given at t=', simulated_time, '&because the',       &
    261                           ' maximum number of output time levels is exceeded.'
    262           CALL message( 'data_output_2d', 'PA0386', 0, 1, 0, 6, 0 )         
    263           RETURN
    264        ENDIF
    265     ENDIF
    266236
    267237    CALL cpu_log (log_point(3),'data_output_2d','start')
     
    372342
    373343    END SELECT
     344
     345!
     346!-- For parallel netcdf output the time axis must be limited. Return, if this
     347!-- limit is exceeded. This could be the case, if the simulated time exceeds
     348!-- the given end time by the length of the given output interval.
     349    IF ( netcdf_data_format > 4 )  THEN
     350       IF ( mode == 'xy'  .AND.  do2d_xy_time_count(av) + 1 >                  &
     351            ntdim_2d_xy(av) )  THEN
     352          WRITE ( message_string, * ) 'Output of xy cross-sections is not ',   &
     353                          'given at t=', simulated_time, '&because the',       &
     354                          ' maximum number of output time levels is exceeded.'
     355          CALL message( 'data_output_2d', 'PA0384', 0, 1, 0, 6, 0 )
     356          CALL cpu_log( log_point(3), 'data_output_2d', 'stop' )
     357          RETURN
     358       ENDIF
     359       IF ( mode == 'xz'  .AND.  do2d_xz_time_count(av) + 1 >                  &
     360            ntdim_2d_xz(av) )  THEN
     361          WRITE ( message_string, * ) 'Output of xz cross-sections is not ',   &
     362                          'given at t=', simulated_time, '&because the',       &
     363                          ' maximum number of output time levels is exceeded.'
     364          CALL message( 'data_output_2d', 'PA0385', 0, 1, 0, 6, 0 )
     365          CALL cpu_log( log_point(3), 'data_output_2d', 'stop' )
     366          RETURN
     367       ENDIF
     368       IF ( mode == 'yz'  .AND.  do2d_yz_time_count(av) + 1 >                  &
     369            ntdim_2d_yz(av) )  THEN
     370          WRITE ( message_string, * ) 'Output of yz cross-sections is not ',   &
     371                          'given at t=', simulated_time, '&because the',       &
     372                          ' maximum number of output time levels is exceeded.'
     373          CALL message( 'data_output_2d', 'PA0386', 0, 1, 0, 6, 0 )
     374          CALL cpu_log( log_point(3), 'data_output_2d', 'stop' )
     375          RETURN
     376       ENDIF
     377    ENDIF
    374378
    375379!
Note: See TracChangeset for help on using the changeset viewer.