Changeset 1327


Ignore:
Timestamp:
Mar 21, 2014 11:00:16 AM (11 years ago)
Author:
raasch
Message:

Changed:


-s real64 removed (.mrun.config.hlrnIII)
-r8 removed (.mrun.config.imuk)
deleted: .mrun.config.imuk_ice2_netcdf4 .mrun.config.imuk_hlrn

REAL constants defined as wp-kind in modules

"baroclinicity" renamed "baroclinity", "ocean version" replaced by
"ocean mode"

code parts concerning old output formats "iso2d" and "avs" removed.
netCDF is the only remaining output format.

Errors:


bugfix: duplicate error message 56 removed

Location:
palm/trunk
Files:
1 added
2 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/.mrun.config.hlrnIII

    r1308 r1327  
    3939%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel
    4040%mopts               -j:4                        lccrayb parallel
    41 %fopts               -em:-s:real64:-O3:-hnoomp:-hfp3:-hdynamic          lccrayb parallel
    42 %lopts               -em:-s:real64:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayb parallel
     41%fopts               -em:-O3:-hnoomp:-hfp3:-hdynamic          lccrayb parallel
     42%lopts               -em:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayb parallel
    4343%remote_username     <replace by your HLRN-III username>                lccrayb parallel
    4444%memory              1500                                               lccrayb parallel
     
    5252%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel
    5353%mopts               -j:4                        lccrayh parallel
    54 %fopts               -em:-s:real64:-O3:-hnoomp:-hfp3:-hdynamic          lccrayh parallel
    55 %lopts               -em:-s:real64:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayh parallel
     54%fopts               -em:-O3:-hnoomp:-hfp3:-hdynamic          lccrayh parallel
     55%lopts               -em:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayh parallel
    5656%remote_username     <replace by your HLRN-III username>                lccrayh parallel
    5757%memory              1500                                               lccrayh parallel
  • palm/trunk/SCRIPTS/.mrun.config.imuk

    r1241 r1327  
    2727%netcdf_lib        -L/muksoft/packages/netcdf/3.6.3/lib:-lnetcdf               lcmuk
    2828%mopts             -j:4                                                        lcmuk
    29 %fopts             -fltconsistency:-O3:-cpp:-r8:-nbs:-convert:little_endian:-diag-disable:8290,8291    lcmuk
    30 %lopts             -fltconsistency:-O3:-cpp:-r8:-nbs:-lmf:-lm:-Vaxlib          lcmuk
     29%fopts             -fltconsistency:-O3:-cpp:-nbs:-convert:little_endian:-diag-disable:8290,8291    lcmuk
     30%lopts             -fltconsistency:-O3:-cpp:-nbs:-lmf:-lm:-Vaxlib          lcmuk
    3131#
    3232# version 03/02/2013
     
    3939%netcdf_lib        -L/muksoft/packages/netcdf/3.6.3/lib:-lnetcdf               lcmuk parallel
    4040%mopts             -j:4                                                        lcmuk parallel
    41 %fopts             -O3:-cpp:-r8:-fp-model:precise:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel
    42 %lopts             -O3:-cpp:-r8:-fp-model:precise:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel
     41%fopts             -O3:-cpp:-fp-model:precise:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel
     42%lopts             -O3:-cpp:-fp-model:precise:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel
    4343#%hostfile          $base_directory/.hostfile                                  lcmuk parallel
    4444#
     
    5151%netcdf_inc        -I:/muksoft/packages/netcdf/3.6.3/include            lcmuk parallel trace
    5252%netcdf_lib        -L/muksoft/packages/netcdf/3.6.3/lib:-lnetcdf        lcmuk parallel trace
    53 %fopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-xT:-O0:-cpp:-r8:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel trace
    54 %lopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-xT:-O0:-cpp:-r8:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel trace
     53%fopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-xT:-O0:-cpp:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel trace
     54%lopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-xT:-O0:-cpp:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel trace
    5555
    5656%write_binary                true                             restart
  • palm/trunk/SOURCE/check_open.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! parts concerning iso2d and avs output removed
    2323!
    2424! Former revisions:
     
    7676
    7777    USE control_parameters,                                                    &
    78         ONLY:  avs_data_file, avs_output, coupling_char,                       &
    79                data_output_2d_on_each_pe, do3d_compress, host, iso2d_output,   &
     78        ONLY:  avs_data_file, coupling_char, data_output_2d_on_each_pe, host,  &
    8079               message_string, mid, netcdf_data_format, nz_do3d, openfile,     &
    8180               return_addres, return_username, run_description_header, runnr
     
    231230          ENDIF
    232231
    233        CASE ( 27, 28, 29, 31, 32, 33, 71:73, 90:99 )
     232       CASE ( 27, 28, 29, 31, 33, 71:73, 90:99 )
    234233
    235234!
     
    372371             DEALLOCATE( eta, ho, hu )
    373372
    374 !
    375 !--          Create output file for local parameters
    376              IF ( iso2d_output )  THEN
    377                 OPEN ( 27, FILE='PLOT2D_XY_LOCAL'//coupling_char,              &
    378                            FORM='FORMATTED', DELIM='APOSTROPHE' )
    379                 openfile(27)%opened = .TRUE.
    380              ENDIF
    381 
    382373          ENDIF
    383374
     
    400391             ENDIF
    401392!
    402 !--          Determine and write ISO2D coordiante header
     393!--          Determine and write ISO2D coordinate header
    403394             ALLOCATE( eta(0:nz+1), ho(0:nx+1), hu(0:nx+1) )
    404395             hu = 0.0
     
    412403             WRITE (22)  dx,eta,hu,ho
    413404             DEALLOCATE( eta, ho, hu )
    414 !
    415 !--          Create output file for local parameters
    416              OPEN ( 28, FILE='PLOT2D_XZ_LOCAL'//coupling_char,                 &
    417                         FORM='FORMATTED', DELIM='APOSTROPHE' )
    418              openfile(28)%opened = .TRUE.
    419405
    420406          ENDIF
     
    450436             WRITE (23)  dx,eta,hu,ho
    451437             DEALLOCATE( eta, ho, hu )
    452 !
    453 !--          Create output file for local parameters
    454              OPEN ( 29, FILE='PLOT2D_YZ_LOCAL'//coupling_char,                 &
    455                         FORM='FORMATTED', DELIM='APOSTROPHE' )
    456              openfile(29)%opened = .TRUE.
    457438
    458439          ENDIF
     
    468449!
    469450!--          Specifications for combine_plot_fields
    470              IF ( .NOT. do3d_compress )  THEN
    471                 WRITE ( 30 )  -nbgp,nx+nbgp,-nbgp,ny+nbgp, 0 ,nz_do3d
    472                 WRITE ( 30 )  0,nx+1,0,ny+1,0,nz_do3d
    473              ENDIF
     451             WRITE ( 30 )  -nbgp,nx+nbgp,-nbgp,ny+nbgp, 0 ,nz_do3d
     452             WRITE ( 30 )  0,nx+1,0,ny+1,0,nz_do3d
    474453#endif
    475 !
    476 !--          Write coordinate file for AVS:
    477 !--          First determine file names (including cyle numbers) of AVS files on
    478 !--          target machine (to which the files are to be transferred).
    479 !--          Therefore path information has to be obtained first.
    480              IF ( avs_output )  THEN
    481                 iaddres = LEN_TRIM( return_addres )
    482                 iusern  = LEN_TRIM( return_username )
    483 
    484                 OPEN ( 3, FILE='OUTPUT_FILE_CONNECTIONS', FORM='FORMATTED' )
    485                 DO  WHILE ( .NOT. avs_coor_file_found  .OR.                    &
    486                             .NOT. avs_data_file_found )
    487 
    488                    READ ( 3, '(A)', END=1 )  line
    489 
    490                    SELECT CASE ( line(1:11) )
    491 
    492                       CASE ( 'PLOT3D_COOR' )
    493                          READ ( 3, '(A/A)' )  avs_coor_file_catalog,           &
    494                                               avs_coor_file_localname
    495                          avs_coor_file_found = .TRUE.
    496 
    497                       CASE ( 'PLOT3D_DATA' )
    498                          READ ( 3, '(A/A)' )  avs_data_file_catalog,           &
    499                                               avs_data_file_localname
    500                          avs_data_file_found = .TRUE.
    501 
    502                       CASE DEFAULT
    503                          READ ( 3, '(A/A)' )  line, line
    504 
    505                    END SELECT
    506 
    507                 ENDDO
    508 !
    509 !--             Now the cycle numbers on the remote machine must be obtained
    510 !--             using batch_scp
    511        1        CLOSE ( 3 )
    512                 IF ( .NOT. avs_coor_file_found  .OR.                           &
    513                      .NOT. avs_data_file_found )  THEN
    514                    message_string= 'no filename for AVS-data-file ' //         &
    515                                    'found in MRUN-config-file' //              &
    516                                    ' &filename in FLD-file set to "unknown"'
    517                    CALL message( 'check_open', 'PA0169', 0, 1, 0, 6, 0 )
    518 
    519                    avs_coor_file = 'unknown'
    520                    avs_data_file = 'unknown'
    521                 ELSE
    522                    get_filenames = .TRUE.
    523                    IF ( TRIM( host ) == 'hpmuk'  .OR.                          &
    524                         TRIM( host ) == 'lcmuk' )  THEN
    525                       batch_scp = '/home/raasch/pub/batch_scp'
    526                    ELSEIF ( TRIM( host ) == 'nech' )  THEN
    527                       batch_scp = '/ipf/b/b323011/pub/batch_scp'
    528                    ELSEIF ( TRIM( host ) == 'ibmh'  .OR.                       &
    529                             TRIM( host ) == 'ibmb' )  THEN
    530                       batch_scp = '/home/h/niksiraa/pub/batch_scp'
    531                    ELSEIF ( TRIM( host ) == 't3eb' )  THEN
    532                       batch_scp = '/home/nhbksira/pub/batch_scp'
    533                    ELSE
    534                       message_string= 'no path for batch_scp on host "' //     &
    535                                        TRIM( host ) // '"'
    536                       CALL message( 'check_open', 'PA0170', 0, 1, 0, 6, 0 )
    537                       get_filenames = .FALSE.
    538                    ENDIF
    539 
    540                    IF ( get_filenames )  THEN
    541 !
    542 !--                   Determine the coordinate file name.
    543 !--                   /etc/passwd serves as Dummy-Datei, because it is not
    544 !--                   really transferred.
    545                       command = TRIM( batch_scp ) // ' -n -u ' //              &
    546                          return_username(1:iusern) // ' ' //                   &
    547                          return_addres(1:iaddres) // ' /etc/passwd "' //       &
    548                          TRIM( avs_coor_file_catalog ) // '" ' //              &
    549                          TRIM( avs_coor_file_localname ) // ' > REMOTE_FILENAME'
    550 
    551                       CALL local_system( command )
    552                       OPEN ( 3, FILE='REMOTE_FILENAME', FORM='FORMATTED' )
    553                       READ ( 3, '(A)' )  avs_coor_file
    554                       CLOSE ( 3 )
    555 !
    556 !--                   Determine the data file name
    557                       command = TRIM( batch_scp ) // ' -n -u ' //              &
    558                          return_username(1:iusern) // ' ' //                   &
    559                          return_addres(1:iaddres) // ' /etc/passwd "' //       &
    560                          TRIM( avs_data_file_catalog ) // '" ' //              &
    561                          TRIM( avs_data_file_localname ) // ' > REMOTE_FILENAME'
    562 
    563                       CALL local_system( command )
    564                       OPEN ( 3, FILE='REMOTE_FILENAME', FORM='FORMATTED' )
    565                       READ ( 3, '(A)' )  avs_data_file
    566                       CLOSE ( 3 )
    567 
    568                    ELSE
    569 
    570                       avs_coor_file = 'unknown'
    571                       avs_data_file = 'unknown'
    572 
    573                    ENDIF
    574 
    575                 ENDIF
    576 
    577 !
    578 !--             Output of the coordinate file description for FLD-file
    579                 OPEN ( 33, FILE='PLOT3D_FLD_COOR', FORM='FORMATTED' )
    580                 openfile(33)%opened = .TRUE.
    581                 WRITE ( 33, 3300 )  TRIM( avs_coor_file ),                     &
    582                                     TRIM( avs_coor_file ), (nx+2*nbgp)*4,      &
    583                                     TRIM( avs_coor_file ), (nx+2*nbgp)*4+(ny+2*nbgp)*4
    584            
    585 
    586                 ALLOCATE( xkoor(0:nx+1), ykoor(0:ny+1), zkoor(0:nz_do3d) )
    587                 DO  i = 0, nx+1
    588                    xkoor(i) = i * dx
    589                 ENDDO
    590                 DO  j = 0, ny+1
    591                    ykoor(j) = j * dy
    592                 ENDDO
    593                 DO  k = 0, nz_do3d
    594                    zkoor(k) = zu(k)
    595                 ENDDO
    596 
    597 !
    598 !--             Create and write on AVS coordinate file
    599                 OPEN ( 31, FILE='PLOT3D_COOR', FORM='UNFORMATTED' )
    600                 openfile(31)%opened = .TRUE.
    601 
    602                 WRITE (31)  xkoor, ykoor, zkoor
    603                 DEALLOCATE( xkoor, ykoor, zkoor )
    604 
    605 !
    606 !--             Create FLD file (being written on in close_file)
    607                 OPEN ( 32, FILE='PLOT3D_FLD', FORM='FORMATTED' )
    608                 openfile(32)%opened = .TRUE.
    609 
    610 !
    611 !--             Create flag file for compressed 3D output,
    612 !--             influences output commands in mrun
    613                 IF ( do3d_compress )  THEN
    614                    OPEN ( 3, FILE='PLOT3D_COMPRESSED', FORM='FORMATTED' )
    615                    WRITE ( 3, '(1X)' )
    616                    CLOSE ( 3 )
    617                 ENDIF
    618 
    619              ENDIF
    620 
    621           ENDIF
    622 
    623 !
    624 !--       In case of data compression output of the coordinates of the
    625 !--       corresponding partial array of a PE only once at the top of the file
    626           IF ( avs_output  .AND.  do3d_compress )  THEN
    627              WRITE ( 30 )  nxlg, nxrg, nysg, nyng, nzb, nz_do3d
    628454          ENDIF
    629455
  • palm/trunk/SOURCE/check_parameters.f90

    r1323 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! "baroclinicity" renamed "baroclinity", "ocean version" replaced by "ocean mode"
     23! bugfix: duplicate error message 56 removed,
     24! check of data_output_format and do3d_compress removed
    2325!
    2426! Former revisions:
     
    13091311!-- Ocean version must use flux boundary conditions at the top
    13101312    IF ( ocean .AND. .NOT. use_top_fluxes )  THEN
    1311        message_string = 'use_top_fluxes must be .TRUE. in ocean version'
     1313       message_string = 'use_top_fluxes must be .TRUE. in ocean mode'
    13121314       CALL message( 'check_parameters', 'PA0042', 1, 2, 0, 6, 0 )
    13131315    ENDIF
     
    13811383                ( ug_vertical_gradient_level(1) /= 0.0  .OR.  &
    13821384                ug_vertical_gradient(1) /= 0.0 ) )  THEN
    1383           message_string = 'baroclinicity (ug) not allowed simultaneously' // &
     1385          message_string = 'baroclinity (ug) not allowed simultaneously' // &
    13841386                           ' with galilei transformation'
    13851387          CALL message( 'check_parameters', 'PA0046', 1, 2, 0, 6, 0 )
     
    13871389                ( vg_vertical_gradient_level(1) /= 0.0  .OR.  &
    13881390                vg_vertical_gradient(1) /= 0.0 ) )  THEN
    1389           message_string = 'baroclinicity (vg) not allowed simultaneously' // &
     1391          message_string = 'baroclinity (vg) not allowed simultaneously' // &
    13901392                           ' with galilei transformation'
    13911393          CALL message( 'check_parameters', 'PA0047', 1, 2, 0, 6, 0 )
     
    14631465    ELSEIF ( bc_e_b == '(u*)**2+neumann' )  THEN
    14641466       ibc_e_b = 2
    1465        IF ( prandtl_layer )  THEN
    1466           message_string = 'adjust mixing length = FALSE and bc_e_b = "' // &
    1467                            TRIM( bc_e_b ) // '"'
    1468           CALL message( 'check_parameters', 'PA0056', 0, 1, 0, 6, 0 )
    1469        ENDIF
    14701467       IF ( .NOT. prandtl_layer )  THEN
    14711468          bc_e_b = 'neumann'
     
    30113008
    30123009!
    3013 !-- Determine and check accuracy for compressed 3D plot output
    3014     IF ( do3d_compress )  THEN
    3015 !
    3016 !--    Compression only permissible on T3E machines
    3017        IF ( host(1:3) /= 't3e' )  THEN
    3018           message_string = 'do3d_compress = .TRUE. not allowed on host "' // &
    3019                            TRIM( host ) // '"'
    3020           CALL message( 'check_parameters', 'PA0117', 1, 2, 0, 6, 0 )
    3021        ENDIF
    3022 
    3023        i = 1
    3024        DO  WHILE ( do3d_comp_prec(i) /= ' ' )
    3025 
    3026           ilen = LEN_TRIM( do3d_comp_prec(i) )
    3027           IF ( LLT( do3d_comp_prec(i)(ilen:ilen), '0' ) .OR. &
    3028                LGT( do3d_comp_prec(i)(ilen:ilen), '9' ) )  THEN
    3029              WRITE( message_string, * )  'illegal precision: do3d_comp_prec', &
    3030                                    '(', i, ') = "', TRIM(do3d_comp_prec(i)),'"'
    3031              CALL message( 'check_parameters', 'PA0118', 1, 2, 0, 6, 0 )
    3032           ENDIF
    3033 
    3034           prec = IACHAR( do3d_comp_prec(i)(ilen:ilen) ) - IACHAR( '0' )
    3035           var = do3d_comp_prec(i)(1:ilen-1)
    3036 
    3037           SELECT CASE ( var )
    3038 
    3039              CASE ( 'u' )
    3040                 j = 1
    3041              CASE ( 'v' )
    3042                 j = 2
    3043              CASE ( 'w' )
    3044                 j = 3
    3045              CASE ( 'p' )
    3046                 j = 4
    3047              CASE ( 'pt' )
    3048                 j = 5
    3049 
    3050              CASE DEFAULT
    3051                 WRITE( message_string, * )  'unknown variable "', &
    3052                      TRIM( do3d_comp_prec(i) ), '" given for do3d_comp_prec(', &
    3053                      i, ')'
    3054                 CALL message( 'check_parameters', 'PA0119', 1, 2, 0, 6, 0 )
    3055 
    3056           END SELECT
    3057 
    3058           plot_3d_precision(j)%precision = prec
    3059           i = i + 1
    3060 
    3061        ENDDO
    3062     ENDIF
    3063 
    3064 !
    3065 !-- Check the data output format(s)
    3066     IF ( data_output_format(1) == ' ' )  THEN
    3067 !
    3068 !--    Default value
    3069        netcdf_output = .TRUE.
    3070     ELSE
    3071        i = 1
    3072        DO  WHILE ( data_output_format(i) /= ' ' )
    3073 
    3074           SELECT CASE ( data_output_format(i) )
    3075 
    3076              CASE ( 'netcdf' )
    3077                 netcdf_output = .TRUE.
    3078              CASE ( 'iso2d' )
    3079                 iso2d_output  = .TRUE.
    3080              CASE ( 'avs' )
    3081                 avs_output    = .TRUE.
    3082 
    3083              CASE DEFAULT
    3084                 message_string = 'unknown value for data_output_format "' // &
    3085                                  TRIM( data_output_format(i) ) // '"'
    3086                 CALL message( 'check_parameters', 'PA0120', 1, 2, 0, 6, 0 )
    3087 
    3088           END SELECT
    3089 
    3090           i = i + 1
    3091           IF ( i > 10 )  EXIT
    3092 
    3093        ENDDO
    3094     ENDIF
    3095 
    3096 !
    30973010!-- Set output format string (used in header)
    3098     IF ( netcdf_output )  THEN
    3099 
    3100        SELECT CASE ( netcdf_data_format )
    3101           CASE ( 1 )
    3102              output_format_netcdf = 'netCDF classic'
    3103           CASE ( 2 )
    3104              output_format_netcdf = 'netCDF 64bit offset'
    3105           CASE ( 3 )
    3106              output_format_netcdf = 'netCDF4/HDF5'
    3107           CASE ( 4 )
    3108              output_format_netcdf = 'netCDF4/HDF5 classic'
    3109           CASE ( 5 )
    3110              output_format_netcdf = 'parallel netCDF4/HDF5'
    3111           CASE ( 6 )
    3112              output_format_netcdf = 'parallel netCDF4/HDF5 classic'
    3113 
    3114        END SELECT
    3115 
    3116     ENDIF
     3011    SELECT CASE ( netcdf_data_format )
     3012       CASE ( 1 )
     3013          output_format_netcdf = 'netCDF classic'
     3014       CASE ( 2 )
     3015          output_format_netcdf = 'netCDF 64bit offset'
     3016       CASE ( 3 )
     3017          output_format_netcdf = 'netCDF4/HDF5'
     3018       CASE ( 4 )
     3019          output_format_netcdf = 'netCDF4/HDF5 classic'
     3020       CASE ( 5 )
     3021          output_format_netcdf = 'parallel netCDF4/HDF5'
     3022       CASE ( 6 )
     3023          output_format_netcdf = 'parallel netCDF4/HDF5 classic'
     3024
     3025    END SELECT
    31173026
    31183027#if defined( __spectra )
     
    32033112!
    32043113!-- Calculate fixed number of output time levels for parallel netcdf output.
    3205 !-- The time dimension has to be limited for paralell output, otherwise the
    3206 !-- performance drops significantly.
    3207     IF ( netcdf_output )  THEN
    3208        IF ( netcdf_data_format > 4 )  THEN
    3209           ntdim_3d(0) = INT( ( end_time - skip_time_do3d ) / dt_do3d )
    3210           IF ( do3d_at_begin ) ntdim_3d(0) = ntdim_3d(0) + 1
    3211           ntdim_3d(1) = INT( ( end_time - skip_time_data_output_av ) &
    3212                               / dt_data_output_av )
    3213           ntdim_2d_xy(0) = INT( ( end_time - skip_time_do2d_xy ) / dt_do2d_xy )
    3214           ntdim_2d_xz(0) = INT( ( end_time - skip_time_do2d_xz ) / dt_do2d_xz )
    3215           ntdim_2d_yz(0) = INT( ( end_time - skip_time_do2d_yz ) / dt_do2d_yz )
    3216           IF ( do2d_at_begin )  THEN
    3217              ntdim_2d_xy(0) = ntdim_2d_xy(0) + 1
    3218              ntdim_2d_xz(0) = ntdim_2d_xz(0) + 1
    3219              ntdim_2d_yz(0) = ntdim_2d_yz(0) + 1
    3220           ENDIF
    3221           ntdim_2d_xy(1) = ntdim_3d(1)
    3222           ntdim_2d_xz(1) = ntdim_3d(1)
    3223           ntdim_2d_yz(1) = ntdim_3d(1)
    3224        ENDIF
     3114!-- The time dimension has to be defined as limited for parallel output,
     3115!-- because otherwise the I/O performance drops significantly.
     3116    IF ( netcdf_data_format > 4 )  THEN
     3117
     3118       ntdim_3d(0)    = INT( ( end_time - skip_time_do3d ) / dt_do3d )
     3119       IF ( do3d_at_begin ) ntdim_3d(0) = ntdim_3d(0) + 1
     3120       ntdim_3d(1)    = INT( ( end_time - skip_time_data_output_av ) &
     3121                             / dt_data_output_av )
     3122       ntdim_2d_xy(0) = INT( ( end_time - skip_time_do2d_xy ) / dt_do2d_xy )
     3123       ntdim_2d_xz(0) = INT( ( end_time - skip_time_do2d_xz ) / dt_do2d_xz )
     3124       ntdim_2d_yz(0) = INT( ( end_time - skip_time_do2d_yz ) / dt_do2d_yz )
     3125       IF ( do2d_at_begin )  THEN
     3126          ntdim_2d_xy(0) = ntdim_2d_xy(0) + 1
     3127          ntdim_2d_xz(0) = ntdim_2d_xz(0) + 1
     3128          ntdim_2d_yz(0) = ntdim_2d_yz(0) + 1
     3129       ENDIF
     3130       ntdim_2d_xy(1) = ntdim_3d(1)
     3131       ntdim_2d_xz(1) = ntdim_3d(1)
     3132       ntdim_2d_yz(1) = ntdim_3d(1)
     3133
    32253134    ENDIF
    32263135
  • palm/trunk/SOURCE/close_file.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! parts concerning iso2d and avs output removed
    2323!
    2424! Former revisions:
     
    5858
    5959    USE control_parameters,                                                    &
    60         ONLY:  do2d_xz_n, do2d_xy_n, do2d_yz_n, do3d_avs_n, do3d_compress,     &
    61                host, iso2d_output, max_masks, mid, netcdf_data_format,         &
    62                netcdf_output, nz_do3d, openfile, run_description_header,       &
     60        ONLY:  do2d_xz_n, do2d_xy_n, do2d_yz_n, do3d_avs_n,                    &
     61               host, max_masks, mid, netcdf_data_format,                       &
     62               nz_do3d, openfile, run_description_header,       &
    6363               z_max_do2d
    6464               
     
    120120          SELECT CASE ( fid )
    121121
    122              CASE ( 21 )
    123 !
    124 !--             Write ISO2D global parameters
    125                 IF ( myid == 0  .AND.  iso2d_output )  THEN
    126                    planz  = do2d_xy_n
    127                    dimx   = nx + 2
    128                    dimy   = ny + 2
    129                    sizex  = 100.0
    130                    sizey  = 100.0
    131                    title  = run_description_header
    132                    yright = ( ny + 1.0 ) * dy
    133                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 't3e' )  THEN
    134                       checkuf = .FALSE.; dbp = .TRUE.
    135                    ENDIF
    136                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec' )  THEN
    137                       datform = 'big_endian'
    138                    ENDIF
    139                    OPEN ( 90, FILE='PLOT2D_XY_GLOBAL', FORM='FORMATTED',       &
    140                               DELIM='APOSTROPHE' )
    141                    WRITE ( 90, GLOBAL )
    142                    CLOSE ( 90 )
    143                 ENDIF
    144 
    145              CASE ( 22 )
    146 !
    147 !--             Write ISO2D global parameters
    148                 IF ( myid == 0 )  THEN
    149                    planz  = do2d_xz_n
    150                    dimx   = nx + 2
    151                    dimy   = nz + 2
    152                    sizex  = 100.0
    153                    sizey  =  65.0
    154                    title  = run_description_header
    155                    yright = z_max_do2d
    156                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 't3e' )  THEN
    157                       checkuf = .FALSE.; dbp = .TRUE.
    158                    ENDIF
    159                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec' )  THEN
    160                       datform = 'big_endian'
    161                    ENDIF
    162                    OPEN ( 90, FILE='PLOT2D_XZ_GLOBAL', FORM='FORMATTED',       &
    163                               DELIM='APOSTROPHE' )
    164                    WRITE ( 90, GLOBAL )
    165                    CLOSE ( 90 )
    166                 ENDIF
    167 
    168              CASE ( 23 )
    169 !
    170 !--             Write ISO2D global parameters
    171                 IF ( myid == 0 )  THEN
    172                    planz  = do2d_yz_n
    173                    dimx   = ny + 2
    174                    dimy   = nz + 2
    175                    sizex  = 100.0
    176                    sizey  =  65.0
    177                    title  = run_description_header
    178                    yright = z_max_do2d
    179                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 't3e' )  THEN
    180                       checkuf = .FALSE.; dbp = .TRUE.
    181                    ENDIF
    182                    IF ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec' )  THEN
    183                       datform = 'big_endian'
    184                    ENDIF
    185                    OPEN ( 90, FILE='PLOT2D_YZ_GLOBAL', FORM='FORMATTED',       &
    186                               DELIM='APOSTROPHE' )
    187                    WRITE ( 90, GLOBAL )
    188                    CLOSE ( 90 )
    189                 ENDIF
    190 
    191              CASE ( 32 )
    192 !
    193 !--             Write header for FLD-file
    194                 IF ( do3d_compress )  THEN
    195                    WRITE ( 32, 3200)  ' compressed ',                          &
    196                                       TRIM( run_description_header ), nx+2,    &
    197                                       ny+2, nz_do3d+1, do3d_avs_n
    198                 ELSE
    199                    WRITE ( 32, 3200)  ' ', TRIM( run_description_header ),     &
    200                                       nx+2, ny+2, nz_do3d+1, do3d_avs_n
    201                 ENDIF
    202 
    203122#if defined( __netcdf )
    204123             CASE ( 101 )
    205124
    206                 IF ( netcdf_output  .AND.                                      &
    207                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     125                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    208126                   nc_stat = NF90_CLOSE( id_set_xy(0) )
    209127                   CALL handle_netcdf_error( 'close_file', 44 )
     
    212130             CASE ( 102 )
    213131
    214                 IF ( netcdf_output  .AND.                                      &
    215                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     132                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    216133                   nc_stat = NF90_CLOSE( id_set_xz(0) )
    217134                   CALL handle_netcdf_error( 'close_file', 45 )
     
    220137             CASE ( 103 )
    221138
    222                 IF ( netcdf_output  .AND.                                      &
    223                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     139                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    224140                   nc_stat = NF90_CLOSE( id_set_yz(0) )
    225141                   CALL handle_netcdf_error( 'close_file', 46 )
     
    228144             CASE ( 104 )
    229145
    230                 IF ( myid == 0  .AND.  netcdf_output )  THEN
     146                IF ( myid == 0 )  THEN
    231147                   nc_stat = NF90_CLOSE( id_set_pr )
    232148                   CALL handle_netcdf_error( 'close_file', 47 )
     
    235151             CASE ( 105 )
    236152
    237                 IF ( myid == 0  .AND.  netcdf_output )  THEN
     153                IF ( myid == 0 )  THEN
    238154                   nc_stat = NF90_CLOSE( id_set_ts )
    239155                   CALL handle_netcdf_error( 'close_file', 48 )
     
    242158             CASE ( 106 )
    243159
    244                 IF ( netcdf_output  .AND.  &
    245                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     160                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    246161                   nc_stat = NF90_CLOSE( id_set_3d(0) )
    247162                   CALL handle_netcdf_error( 'close_file', 49 )
     
    250165             CASE ( 107 )
    251166
    252                 IF ( myid == 0  .AND.  netcdf_output )  THEN
     167                IF ( myid == 0 )  THEN
    253168                   nc_stat = NF90_CLOSE( id_set_sp )
    254169                   CALL handle_netcdf_error( 'close_file', 50 )
     
    257172             CASE ( 108 )
    258173
    259                 IF (  netcdf_output )  THEN
    260                    nc_stat = NF90_CLOSE( id_set_prt )
    261                    CALL handle_netcdf_error( 'close_file', 51 )
    262                 ENDIF
     174                nc_stat = NF90_CLOSE( id_set_prt )
     175                CALL handle_netcdf_error( 'close_file', 51 )
    263176
    264177             CASE ( 109 )
    265178
    266                 IF (  netcdf_output )  THEN
    267                    nc_stat = NF90_CLOSE( id_set_pts )
    268                    CALL handle_netcdf_error( 'close_file', 412 )
    269                 ENDIF
     179                nc_stat = NF90_CLOSE( id_set_pts )
     180                CALL handle_netcdf_error( 'close_file', 412 )
    270181
    271182             CASE ( 111 )
    272183
    273                 IF ( netcdf_output  .AND.                                      &
    274                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     184                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    275185                   nc_stat = NF90_CLOSE( id_set_xy(1) )
    276186                   CALL handle_netcdf_error( 'close_file', 52 )
     
    279189             CASE ( 112 )
    280190
    281                 IF ( netcdf_output  .AND.                                      &
    282                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     191                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    283192                   nc_stat = NF90_CLOSE( id_set_xz(1) )
    284193                   CALL handle_netcdf_error( 'close_file', 352 )
     
    287196             CASE ( 113 )
    288197
    289                 IF ( netcdf_output  .AND.                                      &
    290                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     198                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    291199                   nc_stat = NF90_CLOSE( id_set_yz(1) )
    292200                   CALL handle_netcdf_error( 'close_file', 353 )
     
    295203             CASE ( 116 )
    296204
    297                 IF ( netcdf_output  .AND.                                      &
    298                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     205                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    299206                   nc_stat = NF90_CLOSE( id_set_3d(1) )
    300207                   CALL handle_netcdf_error( 'close_file', 353 )
     
    303210             CASE ( 201:200+2*max_masks )
    304211             
    305                 IF ( netcdf_output  .AND.                                      &
    306                      ( myid == 0  .OR.  netcdf_data_format > 4 ) )  THEN
     212                IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    307213!
    308214!--                decompose fid into mid and av
  • palm/trunk/SOURCE/data_output_2d.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! parts concerning iso2d output removed,
     23! -netcdf output queries
    2324!
    2425! Former revisions:
     
    101102               do2d_xz_last_time, do2d_xz_n, do2d_xz_time_count,               &
    102103               do2d_yz_last_time, do2d_yz_n, do2d_yz_time_count,               &
    103                ibc_uv_b, icloud_scheme, io_blocks, io_group, iso2d_output,     &
    104                message_string, netcdf_data_format, netcdf_output,              &
     104               ibc_uv_b, icloud_scheme, io_blocks, io_group,                   &
     105               message_string, netcdf_data_format,                             &
    105106               ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz, psolver, section,        &
    106107               simulated_time,  simulated_time_chr, time_since_reference_point
     
    236237!
    237238!--       Parallel netCDF4/HDF5 output is done on all PEs, all other on PE0 only
    238           IF ( netcdf_output .AND. ( myid == 0 .OR. netcdf_data_format > 4 ) ) &
    239           THEN
     239          IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    240240             CALL check_open( 101+av*10 )
    241241          ENDIF
     
    245245          ELSE
    246246             IF ( myid == 0 )  THEN
    247                 IF ( iso2d_output )  CALL check_open( 21 )
    248247#if defined( __parallel )
    249248                ALLOCATE( total_2d(-nbgp:nx+nbgp,-nbgp:ny+nbgp) )
     
    269268!
    270269!--       Parallel netCDF4/HDF5 output is done on all PEs, all other on PE0 only
    271           IF ( netcdf_output .AND. ( myid == 0 .OR. netcdf_data_format > 4 ) ) &
    272           THEN
     270          IF ( myid == 0 .OR. netcdf_data_format > 4 )  THEN
    273271             CALL check_open( 102+av*10 )
    274272          ENDIF
     
    278276          ELSE
    279277             IF ( myid == 0 )  THEN
    280                 IF ( iso2d_output )  CALL check_open( 22 )
    281278#if defined( __parallel )
    282279                ALLOCATE( total_2d(-nbgp:nx+nbgp,nzb:nzt+1) )
     
    302299!
    303300!--       Parallel netCDF4/HDF5 output is done on all PEs, all other on PE0 only
    304           IF ( netcdf_output .AND. ( myid == 0 .OR. netcdf_data_format > 4 ) ) &
    305           THEN
     301          IF ( myid == 0 .OR. netcdf_data_format > 4 )  THEN
    306302             CALL check_open( 103+av*10 )
    307303          ENDIF
     
    311307          ELSE
    312308             IF ( myid == 0 )  THEN
    313                 IF ( iso2d_output )  CALL check_open( 23 )
    314309#if defined( __parallel )
    315310                ALLOCATE( total_2d(-nbgp:ny+nbgp,nzb:nzt+1) )
     
    882877                      do2d_xy_last_time(av)  = simulated_time
    883878                      IF ( myid == 0 )  THEN
    884                          IF ( ( .NOT. data_output_2d_on_each_pe  .AND.         &
    885                               netcdf_output )  .OR.  netcdf_data_format > 4 )  &
     879                         IF ( .NOT. data_output_2d_on_each_pe  &
     880                              .OR.  netcdf_data_format > 4 )   &
    886881                         THEN
    887882#if defined( __netcdf )
     
    921916
    922917#if defined( __parallel )
    923                    IF ( netcdf_output  .AND.  netcdf_data_format > 4 )  THEN
     918                   IF ( netcdf_data_format > 4 )  THEN
    924919!
    925920!--                   Parallel output in netCDF4/HDF5 format.
     
    947942!--                      Output of partial arrays on each PE
    948943#if defined( __netcdf )
    949                          IF ( netcdf_output  .AND.  myid == 0 )  THEN
     944                         IF ( myid == 0 )  THEN
    950945                            WRITE ( 21 )  time_since_reference_point,          &
    951946                                          do2d_xy_time_count(av), av
     
    994989                            ENDDO
    995990!
    996 !--                         Output of the total cross-section.
    997                             IF ( iso2d_output )  THEN
    998                                WRITE (21)  total_2d(-nbgp:nx+nbgp,-nbgp:ny+nbgp)
    999                             ENDIF
    1000 !
    1001991!--                         Relocate the local array for the next loop increment
    1002992                            DEALLOCATE( local_2d )
     
    1004994
    1005995#if defined( __netcdf )
    1006                             IF ( netcdf_output )  THEN
    1007                                IF ( two_d ) THEN
    1008                                   nc_stat = NF90_PUT_VAR( id_set_xy(av),       &
    1009                                                           id_var_do2d(av,if),  &
    1010                                                       total_2d(0:nx+1,0:ny+1), &
    1011                                 start = (/ 1, 1, 1, do2d_xy_time_count(av) /), &
    1012                                                 count = (/ nx+2, ny+2, 1, 1 /) )
    1013                                ELSE
    1014                                   nc_stat = NF90_PUT_VAR( id_set_xy(av),       &
    1015                                                           id_var_do2d(av,if),  &
    1016                                                       total_2d(0:nx+1,0:ny+1), &
    1017                                start = (/ 1, 1, is, do2d_xy_time_count(av) /), &
    1018                                                 count = (/ nx+2, ny+2, 1, 1 /) )
    1019                                ENDIF
    1020                                CALL handle_netcdf_error( 'data_output_2d', 54 )
     996                            IF ( two_d ) THEN
     997                               nc_stat = NF90_PUT_VAR( id_set_xy(av),       &
     998                                                       id_var_do2d(av,if),  &
     999                                                   total_2d(0:nx+1,0:ny+1), &
     1000                             start = (/ 1, 1, 1, do2d_xy_time_count(av) /), &
     1001                                             count = (/ nx+2, ny+2, 1, 1 /) )
     1002                            ELSE
     1003                               nc_stat = NF90_PUT_VAR( id_set_xy(av),       &
     1004                                                       id_var_do2d(av,if),  &
     1005                                                   total_2d(0:nx+1,0:ny+1), &
     1006                            start = (/ 1, 1, is, do2d_xy_time_count(av) /), &
     1007                                             count = (/ nx+2, ny+2, 1, 1 /) )
    10211008                            ENDIF
     1009                            CALL handle_netcdf_error( 'data_output_2d', 54 )
    10221010#endif
    10231011
     
    10431031                   ENDIF
    10441032#else
    1045                    IF ( iso2d_output )  THEN
    1046                       WRITE (21)  local_2d(nxl:nxr+1,nys:nyn+1)
     1033#if defined( __netcdf )
     1034                   IF ( two_d ) THEN
     1035                      nc_stat = NF90_PUT_VAR( id_set_xy(av),                &
     1036                                              id_var_do2d(av,if),           &
     1037                                             local_2d(nxl:nxr+1,nys:nyn+1), &
     1038                             start = (/ 1, 1, 1, do2d_xy_time_count(av) /), &
     1039                                           count = (/ nx+2, ny+2, 1, 1 /) )
     1040                   ELSE
     1041                      nc_stat = NF90_PUT_VAR( id_set_xy(av),                &
     1042                                              id_var_do2d(av,if),           &
     1043                                             local_2d(nxl:nxr+1,nys:nyn+1), &
     1044                            start = (/ 1, 1, is, do2d_xy_time_count(av) /), &
     1045                                           count = (/ nx+2, ny+2, 1, 1 /) )
    10471046                   ENDIF
    1048 #if defined( __netcdf )
    1049                    IF ( netcdf_output )  THEN
    1050                       IF ( two_d ) THEN
    1051                          nc_stat = NF90_PUT_VAR( id_set_xy(av),                &
    1052                                                  id_var_do2d(av,if),           &
    1053                                                 local_2d(nxl:nxr+1,nys:nyn+1), &
    1054                                 start = (/ 1, 1, 1, do2d_xy_time_count(av) /), &
    1055                                               count = (/ nx+2, ny+2, 1, 1 /) )
    1056                       ELSE
    1057                          nc_stat = NF90_PUT_VAR( id_set_xy(av),                &
    1058                                                  id_var_do2d(av,if),           &
    1059                                                 local_2d(nxl:nxr+1,nys:nyn+1), &
    1060                                start = (/ 1, 1, is, do2d_xy_time_count(av) /), &
    1061                                               count = (/ nx+2, ny+2, 1, 1 /) )
    1062                       ENDIF
    1063                       CALL handle_netcdf_error( 'data_output_2d', 447 )
    1064                    ENDIF
     1047                   CALL handle_netcdf_error( 'data_output_2d', 447 )
    10651048#endif
    10661049#endif
    10671050                   do2d_xy_n = do2d_xy_n + 1
    1068 !
    1069 !--                Write LOCAL parameter set for ISO2D.
    1070                    IF ( myid == 0  .AND.  iso2d_output )  THEN
    1071                       IF ( section(is,s) /= -1 )  THEN
    1072                          WRITE ( section_chr, '(''z = '',F7.2,'' m  (GP '',I3, &
    1073                                                &'')'')'                        &
    1074                                )  level_z(layer_xy), layer_xy
    1075                       ELSE
    1076                          section_chr = 'averaged along z'
    1077                       ENDIF
    1078                       IF ( av == 0 )  THEN
    1079                          rtext = TRIM( do2d(av,if) ) // '  t = ' //            &
    1080                                  TRIM( simulated_time_chr ) // '  ' //         &
    1081                                  TRIM( section_chr )
    1082                       ELSE
    1083                          rtext = TRIM( do2d(av,if) ) // '  averaged t = ' //   &
    1084                                  TRIM( simulated_time_chr ) // '  ' //         &
    1085                                  TRIM( section_chr )
    1086                       ENDIF
    1087                       WRITE (27,LOCAL)
    1088                    ENDIF
    10891051!
    10901052!--                For 2D-arrays (e.g. u*) only one cross-section is available.
     
    11041066                      do2d_xz_last_time(av)  = simulated_time
    11051067                      IF ( myid == 0 )  THEN
    1106                          IF ( ( .NOT. data_output_2d_on_each_pe  .AND.         &
    1107                               netcdf_output )  .OR.  netcdf_data_format > 4 )  &
     1068                         IF ( .NOT. data_output_2d_on_each_pe  &
     1069                              .OR.  netcdf_data_format > 4 )   &
    11081070                         THEN
    11091071#if defined( __netcdf )
     
    11621124
    11631125#if defined( __parallel )
    1164                    IF ( netcdf_output  .AND.  netcdf_data_format > 4 )  THEN
     1126                   IF ( netcdf_data_format > 4 )  THEN
    11651127!
    11661128!--                   Output in netCDF4/HDF5 format.
     
    11921154!--                      index values.
    11931155#if defined( __netcdf )
    1194                          IF ( netcdf_output  .AND.  myid == 0 )  THEN
     1156                         IF ( myid == 0 )  THEN
    11951157                            WRITE ( 22 )  time_since_reference_point,          &
    11961158                                          do2d_xz_time_count(av), av
     
    12581220                            ENDDO
    12591221!
    1260 !--                         Output of the total cross-section.
    1261                             IF ( iso2d_output )  THEN
    1262                                WRITE (22)  total_2d(-nbgp:nx+nbgp,nzb:nzt+1)
    1263                             ENDIF
    1264 !
    12651222!--                         Relocate the local array for the next loop increment
    12661223                            DEALLOCATE( local_2d )
     
    12681225
    12691226#if defined( __netcdf )
    1270                             IF ( netcdf_output )  THEN
    1271                                nc_stat = NF90_PUT_VAR( id_set_xz(av),          &
    1272                                                     id_var_do2d(av,if),        &
    1273                                                     total_2d(0:nx+1,nzb:nzt+1),&
    1274                                start = (/ 1, is, 1, do2d_xz_time_count(av) /), &
    1275                                                 count = (/ nx+2, 1, nz+2, 1 /) )
    1276                                CALL handle_netcdf_error( 'data_output_2d', 58 )
    1277                             ENDIF
     1227                            nc_stat = NF90_PUT_VAR( id_set_xz(av),          &
     1228                                                 id_var_do2d(av,if),        &
     1229                                                 total_2d(0:nx+1,nzb:nzt+1),&
     1230                            start = (/ 1, is, 1, do2d_xz_time_count(av) /), &
     1231                                             count = (/ nx+2, 1, nz+2, 1 /) )
     1232                            CALL handle_netcdf_error( 'data_output_2d', 58 )
    12781233#endif
    12791234
     
    13101265                   ENDIF
    13111266#else
    1312                    IF ( iso2d_output )  THEN
    1313                       WRITE (22)  local_2d(nxl:nxr+1,nzb:nzt+1)
    1314                    ENDIF
    13151267#if defined( __netcdf )
    1316                    IF ( netcdf_output )  THEN
    1317                       nc_stat = NF90_PUT_VAR( id_set_xz(av),                   &
    1318                                               id_var_do2d(av,if),              &
    1319                                               local_2d(nxl:nxr+1,nzb:nzt+1),   &
    1320                                start = (/ 1, is, 1, do2d_xz_time_count(av) /), &
    1321                                               count = (/ nx+2, 1, nz+2, 1 /) )
    1322                       CALL handle_netcdf_error( 'data_output_2d', 451 )
    1323                    ENDIF
     1268                   nc_stat = NF90_PUT_VAR( id_set_xz(av),                   &
     1269                                           id_var_do2d(av,if),              &
     1270                                           local_2d(nxl:nxr+1,nzb:nzt+1),   &
     1271                            start = (/ 1, is, 1, do2d_xz_time_count(av) /), &
     1272                                           count = (/ nx+2, 1, nz+2, 1 /) )
     1273                   CALL handle_netcdf_error( 'data_output_2d', 451 )
    13241274#endif
    13251275#endif
    13261276                   do2d_xz_n = do2d_xz_n + 1
    1327 !
    1328 !--                Write LOCAL-parameter set for ISO2D.
    1329                    IF ( myid == 0  .AND.  iso2d_output )  THEN
    1330                       IF ( section(is,s) /= -1 )  THEN
    1331                          WRITE ( section_chr, '(''y = '',F8.2,'' m  (GP '',I3, &
    1332                                                &'')'')'                        &
    1333                                )  section(is,s)*dy, section(is,s)
    1334                       ELSE
    1335                          section_chr = 'averaged along y'
    1336                       ENDIF
    1337                       IF ( av == 0 )  THEN
    1338                          rtext = TRIM( do2d(av,if) ) // '  t = ' //            &
    1339                                  TRIM( simulated_time_chr ) // '  ' //         &
    1340                                  TRIM( section_chr )
    1341                       ELSE
    1342                          rtext = TRIM( do2d(av,if) ) // '  averaged t = ' //   &
    1343                                  TRIM( simulated_time_chr ) // '  ' //         &
    1344                                  TRIM( section_chr )
    1345                       ENDIF
    1346                       WRITE (28,LOCAL)
    1347                    ENDIF
    13481277
    13491278                CASE ( 'yz' )
     
    13561285                      do2d_yz_last_time(av)  = simulated_time
    13571286                      IF ( myid == 0 )  THEN
    1358                          IF ( ( .NOT. data_output_2d_on_each_pe  .AND.         &
    1359                               netcdf_output )  .OR.  netcdf_data_format > 4 )  &
     1287                         IF ( .NOT. data_output_2d_on_each_pe  &
     1288                              .OR.  netcdf_data_format > 4 )   &
    13601289                         THEN
    13611290#if defined( __netcdf )
     
    14141343
    14151344#if defined( __parallel )
    1416                    IF ( netcdf_output  .AND.  netcdf_data_format > 4 )  THEN
     1345                   IF ( netcdf_data_format > 4 )  THEN
    14171346!
    14181347!--                   Output in netCDF4/HDF5 format.
     
    14441373!--                      index values.
    14451374#if defined( __netcdf )
    1446                          IF ( netcdf_output  .AND.  myid == 0 )  THEN
     1375                         IF ( myid == 0 )  THEN
    14471376                            WRITE ( 23 )  time_since_reference_point,          &
    14481377                                          do2d_yz_time_count(av), av
     
    15101439                            ENDDO
    15111440!
    1512 !--                         Output of the total cross-section.
    1513                             IF ( iso2d_output )  THEN
    1514                                WRITE (23)  total_2d(0:ny+1,nzb:nzt+1)
    1515                             ENDIF
    1516 !
    15171441!--                         Relocate the local array for the next loop increment
    15181442                            DEALLOCATE( local_2d )
     
    15201444
    15211445#if defined( __netcdf )
    1522                             IF ( netcdf_output )  THEN
    1523                                nc_stat = NF90_PUT_VAR( id_set_yz(av),          &
    1524                                                     id_var_do2d(av,if),        &
    1525                                                     total_2d(0:ny+1,nzb:nzt+1),&
    1526                                start = (/ is, 1, 1, do2d_yz_time_count(av) /), &
    1527                                                 count = (/ 1, ny+2, nz+2, 1 /) )
    1528                                CALL handle_netcdf_error( 'data_output_2d', 61 )
    1529                             ENDIF
     1446                            nc_stat = NF90_PUT_VAR( id_set_yz(av),          &
     1447                                                 id_var_do2d(av,if),        &
     1448                                                 total_2d(0:ny+1,nzb:nzt+1),&
     1449                            start = (/ is, 1, 1, do2d_yz_time_count(av) /), &
     1450                                             count = (/ 1, ny+2, nz+2, 1 /) )
     1451                            CALL handle_netcdf_error( 'data_output_2d', 61 )
    15301452#endif
    15311453
     
    15621484                   ENDIF
    15631485#else
    1564                    IF ( iso2d_output )  THEN
    1565                       WRITE (23)  local_2d(nys:nyn+1,nzb:nzt+1)
    1566                    ENDIF
    15671486#if defined( __netcdf )
    1568                    IF ( netcdf_output )  THEN
    1569                       nc_stat = NF90_PUT_VAR( id_set_yz(av),                   &
    1570                                               id_var_do2d(av,if),              &
    1571                                               local_2d(nys:nyn+1,nzb:nzt+1),   &
    1572                                start = (/ is, 1, 1, do2d_xz_time_count(av) /), &
    1573                                               count = (/ 1, ny+2, nz+2, 1 /) )
    1574                       CALL handle_netcdf_error( 'data_output_2d', 452 )
    1575                    ENDIF
     1487                   nc_stat = NF90_PUT_VAR( id_set_yz(av),                   &
     1488                                           id_var_do2d(av,if),              &
     1489                                           local_2d(nys:nyn+1,nzb:nzt+1),   &
     1490                            start = (/ is, 1, 1, do2d_xz_time_count(av) /), &
     1491                                           count = (/ 1, ny+2, nz+2, 1 /) )
     1492                   CALL handle_netcdf_error( 'data_output_2d', 452 )
    15761493#endif
    15771494#endif
    15781495                   do2d_yz_n = do2d_yz_n + 1
    1579 !
    1580 !--                Write LOCAL-parameter set for ISO2D.
    1581                    IF ( myid == 0  .AND.  iso2d_output )  THEN
    1582                       IF ( section(is,s) /= -1 )  THEN
    1583                          WRITE ( section_chr, '(''x = '',F8.2,'' m  (GP '',I3, &
    1584                                                &'')'')'                        &
    1585                                )  section(is,s)*dx, section(is,s)
    1586                       ELSE
    1587                          section_chr = 'averaged along x'
    1588                       ENDIF
    1589                       IF ( av == 0 )  THEN
    1590                          rtext = TRIM( do2d(av,if) ) // '  t = ' //            &
    1591                                  TRIM( simulated_time_chr ) // '  ' //         &
    1592                                  TRIM( section_chr )
    1593                       ELSE
    1594                          rtext = TRIM( do2d(av,if) ) // '  averaged t = ' //   &
    1595                                  TRIM( simulated_time_chr ) // '  ' //         &
    1596                                  TRIM( section_chr )
    1597                       ENDIF
    1598                       WRITE (29,LOCAL)
    1599                    ENDIF
    16001496
    16011497             END SELECT
     
    16091505!--       the performance of the parallel output.
    16101506#if defined( __netcdf )
    1611           IF ( netcdf_output .AND. netcdf_data_format > 4 )  THEN
     1507          IF ( netcdf_data_format > 4 )  THEN
    16121508
    16131509                SELECT CASE ( mode )
  • palm/trunk/SOURCE/data_output_3d.f90

    r1321 r1327  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! parts concerning avs output removed,
     23! -netcdf output queries
    2324!
    2425! Former revisions:
     
    8788       
    8889    USE control_parameters,                                                    &
    89         ONLY:  avs_data_file,avs_output, cloud_physics, do3d, do3d_avs_n,      &
    90                do3d_compress, do3d_no, do3d_time_count, io_blocks, io_group,   &
    91                message_string, netcdf_output, netcdf_data_format, ntdim_3d,    &
     90        ONLY:  avs_data_file, cloud_physics, do3d, do3d_avs_n,                 &
     91               do3d_no, do3d_time_count, io_blocks, io_group,                  &
     92               message_string, netcdf_data_format, ntdim_3d,                   &
    9293               nz_do3d, plot_3d_precision, psolver, simulated_time,            &
    9394               simulated_time_chr, skip_do_avs, time_since_reference_point
     
    164165!-- and/or avs).
    165166!-- For netCDF4/HDF5 output, data is written in parallel into one file.
    166     IF ( netcdf_output )  THEN
    167        IF ( netcdf_data_format < 5 )  THEN
    168           CALL check_open( 30 )
    169           IF ( myid == 0 )  CALL check_open( 106+av*10 )
    170        ELSE
    171           CALL check_open( 106+av*10 )
    172        ENDIF
     167    IF ( netcdf_data_format < 5 )  THEN
     168       CALL check_open( 30 )
     169       IF ( myid == 0 )  CALL check_open( 106+av*10 )
    173170    ELSE
    174        IF ( avs_output  .OR.  ( numprocs > 1 ) )  CALL check_open( 30 )
     171       CALL check_open( 106+av*10 )
    175172    ENDIF
    176173
     
    186183    do3d_time_count(av) = do3d_time_count(av) + 1
    187184    IF ( myid == 0 )  THEN
    188        IF ( netcdf_output )  THEN
    189           nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_time_3d(av),           &
    190                                   (/ time_since_reference_point /),            &
    191                                   start = (/ do3d_time_count(av) /),           &
    192                                   count = (/ 1 /) )
    193           CALL handle_netcdf_error( 'data_output_3d', 376 )
    194        ENDIF
     185       nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_time_3d(av),           &
     186                               (/ time_since_reference_point /),            &
     187                               start = (/ do3d_time_count(av) /),           &
     188                               count = (/ 1 /) )
     189       CALL handle_netcdf_error( 'data_output_3d', 376 )
    195190    ENDIF
    196191#endif
     
    201196
    202197    DO  WHILE ( do3d(av,if)(1:1) /= ' ' )
    203 !
    204 !--    Set the precision for data compression.
    205        IF ( do3d_compress )  THEN
    206           DO  i = 1, 100
    207              IF ( plot_3d_precision(i)%variable == do3d(av,if) )  THEN
    208                 prec = plot_3d_precision(i)%precision
    209                 EXIT
    210              ENDIF
    211           ENDDO
    212        ENDIF
    213 
    214198!
    215199!--    Store the array chosen on the temporary array.
     
    504488
    505489!
    506 !--    Output of the volume data information for the AVS-FLD-file.
    507        do3d_avs_n = do3d_avs_n + 1
    508        IF ( myid == 0  .AND.  avs_output )  THEN
    509 !
    510 !--       AVS-labels must not contain any colons. Hence they must be removed
    511 !--       from the time character string.
    512           simulated_time_mod = simulated_time_chr
    513           DO  WHILE ( SCAN( simulated_time_mod, ':' ) /= 0 )
    514              pos = SCAN( simulated_time_mod, ':' )
    515              simulated_time_mod(pos:pos) = '/'
     490!--    Output of the 3D-array
     491#if defined( __parallel )
     492       IF ( netcdf_data_format < 5 )  THEN
     493!
     494!--       Non-parallel netCDF output. Data is output in parallel in
     495!--       FORTRAN binary format here, and later collected into one file by
     496!--       combine_plot_fields
     497          IF ( myid == 0 )  THEN
     498             WRITE ( 30 )  time_since_reference_point,                   &
     499                           do3d_time_count(av), av
     500          ENDIF
     501          DO  i = 0, io_blocks-1
     502             IF ( i == io_group )  THEN
     503                WRITE ( 30 )  nxlg, nxrg, nysg, nyng, nzb, nz_do3d
     504                WRITE ( 30 )  local_pf
     505             ENDIF
     506#if defined( __parallel )
     507             CALL MPI_BARRIER( comm2d, ierr )
     508#endif
    516509          ENDDO
    517510
    518           IF ( av == 0 )  THEN
    519              WRITE ( 33, 3300 )  do3d_avs_n, TRIM( avs_data_file ),            &
    520                                  skip_do_avs, TRIM( do3d(av,if) ),             &
    521                                  TRIM( simulated_time_mod )
     511       ELSE
     512#if defined( __netcdf )
     513!
     514!--       Parallel output in netCDF4/HDF5 format.
     515!--       Do not output redundant ghost point data except for the
     516!--       boundaries of the total domain.
     517          IF ( nxr == nx  .AND.  nyn /= ny )  THEN
     518             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
     519                               local_pf(nxl:nxr+1,nys:nyn,nzb:nz_do3d),  &
     520                start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
     521                count = (/ nxr-nxl+2, nyn-nys+1, nz_do3d-nzb+1, 1 /) )
     522          ELSEIF ( nxr /= nx  .AND.  nyn == ny )  THEN
     523             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
     524                               local_pf(nxl:nxr,nys:nyn+1,nzb:nz_do3d),  &
     525                start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
     526                count = (/ nxr-nxl+1, nyn-nys+2, nz_do3d-nzb+1, 1 /) )
     527          ELSEIF ( nxr == nx  .AND.  nyn == ny )  THEN
     528             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
     529                             local_pf(nxl:nxr+1,nys:nyn+1,nzb:nz_do3d),  &
     530                start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
     531                count = (/ nxr-nxl+2, nyn-nys+2, nz_do3d-nzb+1, 1 /) )
    522532          ELSE
    523              WRITE ( 33, 3300 )  do3d_avs_n, TRIM( avs_data_file ),            &
    524                                  skip_do_avs, TRIM( do3d(av,if) ) //           &
    525                                  ' averaged', TRIM( simulated_time_mod )
     533             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
     534                                 local_pf(nxl:nxr,nys:nyn,nzb:nz_do3d),  &
     535                start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
     536                count = (/ nxr-nxl+1, nyn-nys+1, nz_do3d-nzb+1, 1 /) )
    526537          ENDIF
    527 !
    528 !--       Determine the Skip-value for the next array. Record end and start
    529 !--       require 4 byte each.
    530           skip_do_avs = skip_do_avs + ( ( ( nx+2*nbgp ) * ( ny+2*nbgp ) *      &
    531                                           ( nz_do3d+1 ) ) * 4 + 8 )
     538          CALL handle_netcdf_error( 'data_output_3d', 386 )
     539#endif
    532540       ENDIF
    533 
    534 !
    535 !--    Output of the 3D-array. (compressed/uncompressed)
    536        IF ( do3d_compress )  THEN
    537 !
    538 !--       Compression, output of compression information on FLD-file and output
    539 !--       of compressed data.
    540           CALL write_compressed( local_pf, 30, 33, myid, nxl, nxr, nyn, nys,   &
    541                                  nzb, nz_do3d, prec, nbgp )
    542        ELSE
    543 !
    544 !--       Uncompressed output.
    545 #if defined( __parallel )
    546           IF ( netcdf_output )  THEN
    547              IF ( netcdf_data_format < 5 )  THEN
    548 !
    549 !--             Non-parallel netCDF output. Data is output in parallel in
    550 !--             FORTRAN binary format here, and later collected into one file by
    551 !--             combine_plot_fields
    552                 IF ( myid == 0 )  THEN
    553                    WRITE ( 30 )  time_since_reference_point,                   &
    554                                  do3d_time_count(av), av
    555                 ENDIF
    556                 DO  i = 0, io_blocks-1
    557                    IF ( i == io_group )  THEN
    558                       WRITE ( 30 )  nxlg, nxrg, nysg, nyng, nzb, nz_do3d
    559                       WRITE ( 30 )  local_pf
    560                    ENDIF
    561 #if defined( __parallel )
    562                    CALL MPI_BARRIER( comm2d, ierr )
    563 #endif
    564                 ENDDO
    565 
    566              ELSE
     541#else
    567542#if defined( __netcdf )
    568 !
    569 !--             Parallel output in netCDF4/HDF5 format.
    570 !--             Do not output redundant ghost point data except for the
    571 !--             boundaries of the total domain.
    572                 IF ( nxr == nx  .AND.  nyn /= ny )  THEN
    573                    nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
    574                                      local_pf(nxl:nxr+1,nys:nyn,nzb:nz_do3d),  &
    575                       start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
    576                       count = (/ nxr-nxl+2, nyn-nys+1, nz_do3d-nzb+1, 1 /) )
    577                 ELSEIF ( nxr /= nx  .AND.  nyn == ny )  THEN
    578                    nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
    579                                      local_pf(nxl:nxr,nys:nyn+1,nzb:nz_do3d),  &
    580                       start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
    581                       count = (/ nxr-nxl+1, nyn-nys+2, nz_do3d-nzb+1, 1 /) )
    582                 ELSEIF ( nxr == nx  .AND.  nyn == ny )  THEN
    583                    nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
    584                                    local_pf(nxl:nxr+1,nys:nyn+1,nzb:nz_do3d),  &
    585                       start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
    586                       count = (/ nxr-nxl+2, nyn-nys+2, nz_do3d-nzb+1, 1 /) )
    587                 ELSE
    588                    nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),  &
    589                                        local_pf(nxl:nxr,nys:nyn,nzb:nz_do3d),  &
    590                       start = (/ nxl+1, nys+1, nzb+1, do3d_time_count(av) /),  &
    591                       count = (/ nxr-nxl+1, nyn-nys+1, nz_do3d-nzb+1, 1 /) )
    592                 ENDIF
    593                 CALL handle_netcdf_error( 'data_output_3d', 386 )
    594 #endif
    595              ENDIF
    596           ENDIF
    597 #else
    598           IF ( avs_output )  THEN
    599              WRITE ( 30 )  local_pf(nxl:nxr+1,nys:nyn+1,:)
    600           ENDIF
    601 #if defined( __netcdf )
    602           IF ( netcdf_output )  THEN
    603 
    604              nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),        &
    605                                local_pf(nxl:nxr+1,nys:nyn+1,nzb:nz_do3d),      &
    606                                start = (/ 1, 1, 1, do3d_time_count(av) /),     &
    607                                count = (/ nx+2, ny+2, nz_do3d-nzb+1, 1 /) )
    608              CALL handle_netcdf_error( 'data_output_3d', 446 )
    609 
    610           ENDIF
     543       nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_do3d(av,if),        &
     544                         local_pf(nxl:nxr+1,nys:nyn+1,nzb:nz_do3d),      &
     545                         start = (/ 1, 1, 1, do3d_time_count(av) /),     &
     546                         count = (/ nx+2, ny+2, nz_do3d-nzb+1, 1 /) )
     547       CALL handle_netcdf_error( 'data_output_3d', 446 )
    611548#endif
    612549#endif
    613        ENDIF
    614550
    615551       if = if + 1
  • palm/trunk/SOURCE/data_output_mask.f90

    r1321 r1327  
    7575               mask_j, mask_k, mask_size, mask_size_l, mask_start_l,           &
    7676               max_masks, message_string, mid, netcdf_data_format,             &
    77                netcdf_output, nz_do3d, simulated_time
     77               nz_do3d, simulated_time
    7878   
    7979    USE cpulog,                                                                &
     
    128128!
    129129!-- Open output file.
    130     IF ( netcdf_output  .AND.  ( myid == 0  .OR.  netcdf_data_format > 4 ) ) &
    131     THEN
     130    IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    132131       CALL check_open( 200+mid+av*max_masks )
    133132    ENDIF
     
    146145!-- Update the netCDF time axis.
    147146    domask_time_count(mid,av) = domask_time_count(mid,av) + 1
    148     IF ( netcdf_output  .AND.  ( myid == 0  .OR.  netcdf_data_format > 4 ) ) &
    149     THEN
     147    IF ( myid == 0  .OR.  netcdf_data_format > 4 )  THEN
    150148       nc_stat = NF90_PUT_VAR( id_set_mask(mid,av), id_var_time_mask(mid,av), &
    151149                               (/ simulated_time /),                          &
  • palm/trunk/SOURCE/data_output_profiles.f90

    r1323 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! -netcdf output queries
    2323!
    2424! Former revisions:
     
    6565    USE control_parameters,                                                    &
    6666        ONLY:  average_count_pr, averaging_interval_pr, coupling_start_time,   &
    67                dopr_n, dopr_time_count, netcdf_output, normalizing_region,     &
     67               dopr_n, dopr_time_count, normalizing_region,                    &
    6868               time_since_reference_point
    6969
     
    122122!
    123123!--    Open file for profile output in NetCDF format
    124        IF ( netcdf_output )  THEN
    125           CALL check_open( 104 )
    126        ENDIF
     124       CALL check_open( 104 )
    127125
    128126!
     
    136134          IF ( .NOT. output_for_t0 ) THEN
    137135
    138              IF ( netcdf_output )  THEN
    139136#if defined( __netcdf )         
    140137!
    141 !--             Store initial time to time axis, but only if an output
    142 !--             is required for at least one of the profiles. The initial time
    143 !--             is either 0, or, in case of a prerun for coupled atmosphere-ocean
    144 !--             runs, has a negative value
    145                 DO  i = 1, dopr_n
    146                 IF ( dopr_initial_index(i) /= 0 )  THEN
    147                    nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr,  &
    148                                            (/ -coupling_start_time /), &
    149                                            start = (/ 1 /), count = (/ 1 /) )
    150                       CALL handle_netcdf_error( 'data_output_profiles', 329 )
    151                       output_for_t0 = .TRUE.
    152                       EXIT
    153                    ENDIF
    154                 ENDDO
    155 
    156 !
    157 !--             Store normalization factors
    158                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(1), & ! wpt0
    159                                      (/ hom_sum(nzb,18,normalizing_region) /), &
     138!--          Store initial time to time axis, but only if an output
     139!--          is required for at least one of the profiles. The initial time
     140!--          is either 0, or, in case of a prerun for coupled atmosphere-ocean
     141!--          runs, has a negative value
     142             DO  i = 1, dopr_n
     143             IF ( dopr_initial_index(i) /= 0 )  THEN
     144                nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr,  &
     145                                        (/ -coupling_start_time /), &
    160146                                        start = (/ 1 /), count = (/ 1 /) )
    161                 CALL handle_netcdf_error( 'data_output_profiles', 330 )
    162 
    163                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(2), & ! ws2
    164                            (/ hom_sum(nzb+8,pr_palm,normalizing_region)**2 /), &
    165                                         start = (/ 1 /), count = (/ 1 /) )
    166                 CALL handle_netcdf_error( 'data_output_profiles', 331 )
    167                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(3), & ! tsw2
    168                            (/ hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
    169                                      start = (/ 1 /), count = (/ 1 /) )
    170                 CALL handle_netcdf_error( 'data_output_profiles', 332 )
    171                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(4), & ! ws3
    172                            (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 /), &
    173                                         start = (/ 1 /), count = (/ 1 /) )
    174                 CALL handle_netcdf_error( 'data_output_profiles', 333 )
    175 
    176                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(5), &!ws2tsw
    177                            (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 *   &
    178                               hom_sum(nzb+3,pr_palm,normalizing_region)    /), &
    179                                         start = (/ 1 /), count = (/ 1 /) )
    180                 CALL handle_netcdf_error( 'data_output_profiles', 334 )
    181 
    182                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(6), &!wstsw2
    183                            (/ hom_sum(nzb+8,pr_palm,normalizing_region) *      &
    184                               hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
    185                                         start = (/ 1 /), count = (/ 1 /) )
    186                 CALL handle_netcdf_error( 'data_output_profiles', 335 )
    187 
    188                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(7), & ! z_i
    189                               (/ hom_sum(nzb+6,pr_palm,normalizing_region) /), &
    190                                         start = (/ 1 /), count = (/ 1 /) )
    191                 CALL handle_netcdf_error( 'data_output_profiles', 336 )
     147                   CALL handle_netcdf_error( 'data_output_profiles', 329 )
     148                   output_for_t0 = .TRUE.
     149                   EXIT
     150                ENDIF
     151             ENDDO
     152
     153!
     154!--          Store normalization factors
     155             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(1), & ! wpt0
     156                                  (/ hom_sum(nzb,18,normalizing_region) /), &
     157                                     start = (/ 1 /), count = (/ 1 /) )
     158             CALL handle_netcdf_error( 'data_output_profiles', 330 )
     159
     160             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(2), & ! ws2
     161                        (/ hom_sum(nzb+8,pr_palm,normalizing_region)**2 /), &
     162                                     start = (/ 1 /), count = (/ 1 /) )
     163             CALL handle_netcdf_error( 'data_output_profiles', 331 )
     164             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(3), & ! tsw2
     165                        (/ hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
     166                                  start = (/ 1 /), count = (/ 1 /) )
     167             CALL handle_netcdf_error( 'data_output_profiles', 332 )
     168             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(4), & ! ws3
     169                        (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 /), &
     170                                     start = (/ 1 /), count = (/ 1 /) )
     171             CALL handle_netcdf_error( 'data_output_profiles', 333 )
     172
     173             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(5), &!ws2tsw
     174                        (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 *   &
     175                           hom_sum(nzb+3,pr_palm,normalizing_region)    /), &
     176                                     start = (/ 1 /), count = (/ 1 /) )
     177             CALL handle_netcdf_error( 'data_output_profiles', 334 )
     178
     179             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(6), &!wstsw2
     180                        (/ hom_sum(nzb+8,pr_palm,normalizing_region) *      &
     181                           hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
     182                                     start = (/ 1 /), count = (/ 1 /) )
     183             CALL handle_netcdf_error( 'data_output_profiles', 335 )
     184
     185             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(7), & ! z_i
     186                           (/ hom_sum(nzb+6,pr_palm,normalizing_region) /), &
     187                                     start = (/ 1 /), count = (/ 1 /) )
     188             CALL handle_netcdf_error( 'data_output_profiles', 336 )
    192189             
    193190#endif
    194              ENDIF
    195191!
    196192!--          Loop over all 1D variables
     
    203199                   DO  sr = 0, statistic_regions
    204200
    205                       IF ( netcdf_output )  THEN
    206201#if defined( __netcdf )
    207202!
    208 !--                      Write data to netcdf file
    209                          nc_stat = NF90_PUT_VAR( id_set_pr, id_var_dopr(i,sr),    &
    210                                        hom(nzb:nzt+1,1,dopr_initial_index(i),sr), &
    211                                                  start = (/ 1, 1 /),              &
    212                                                  count = (/ nzt-nzb+2, 1 /) )
    213                          CALL handle_netcdf_error( 'data_output_profiles', 337 )
     203!--                   Write data to netcdf file
     204                      nc_stat = NF90_PUT_VAR( id_set_pr, id_var_dopr(i,sr),    &
     205                                    hom(nzb:nzt+1,1,dopr_initial_index(i),sr), &
     206                                              start = (/ 1, 1 /),              &
     207                                              count = (/ nzt-nzb+2, 1 /) )
     208                      CALL handle_netcdf_error( 'data_output_profiles', 337 )
    214209#endif
    215                       ENDIF
    216210
    217211                   ENDDO
     
    221215             ENDDO   ! Loop over dopr_n for initial profiles
    222216
    223              IF ( netcdf_output  .AND.  output_for_t0 )  THEN
     217             IF ( output_for_t0 )  THEN
    224218                dopr_time_count = dopr_time_count + 1
    225219             ENDIF
     
    228222       ENDIF   ! Initial profiles
    229223
    230        IF ( netcdf_output )  THEN
    231224#if defined( __netcdf )
    232225
    233226!
    234 !--       Store time to time axis         
    235           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr,        &
    236                                   (/ time_since_reference_point /), &
    237                                   start = (/ dopr_time_count /),    &
    238                                   count = (/ 1 /) )
    239           CALL handle_netcdf_error( 'data_output_profiles', 338 )
    240 
    241 !
    242 !--       Store normalization factors
    243           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(1), &  ! wpt0
    244                                   (/ hom_sum(nzb,18,normalizing_region) /), &
    245                                   start = (/ dopr_time_count /),               &
    246                                   count = (/ 1 /) )
    247           CALL handle_netcdf_error( 'data_output_profiles', 339 )
    248 
    249           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(2), &  ! ws2
    250                         (/ hom_sum(nzb+8,pr_palm,normalizing_region)**2 /), &
    251                                   start = (/ dopr_time_count /),               &
    252                                   count = (/ 1 /) )
    253           CALL handle_netcdf_error( 'data_output_profiles', 340 )
    254 
    255           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(3), &  ! tsw2
    256                         (/ hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
    257                                   start = (/ dopr_time_count /),               &
    258                                   count = (/ 1 /) )
    259           CALL handle_netcdf_error( 'data_output_profiles', 341 )
    260 
    261           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(4), &  ! ws3
    262                         (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 /), &
    263                                   start = (/ dopr_time_count /),               &
    264                                   count = (/ 1 /) )
    265           CALL handle_netcdf_error( 'data_output_profiles', 342 )
    266 
    267           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(5), &  ! ws2tsw
    268                         (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 *   &
    269                            hom_sum(nzb+3,pr_palm,normalizing_region)    /), &
    270                                   start = (/ dopr_time_count /),               &
    271                                   count = (/ 1 /) )
    272           CALL handle_netcdf_error( 'data_output_profiles', 343 )
    273          
    274           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(6), &  ! wstsw2
    275                         (/ hom_sum(nzb+8,pr_palm,normalizing_region) *      &
    276                            hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
    277                                   start = (/ dopr_time_count /),               &
    278                                   count = (/ 1 /) )
    279           CALL handle_netcdf_error( 'data_output_profiles', 344 )
    280 
    281           nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(7), &  ! z_i
    282                            (/ hom_sum(nzb+6,pr_palm,normalizing_region) /), &
    283                                   start = (/ dopr_time_count /),               &
    284                                   count = (/ 1 /) )
    285           CALL handle_netcdf_error( 'data_output_profiles', 345 )
     227!--    Store time to time axis
     228       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr,        &
     229                               (/ time_since_reference_point /), &
     230                               start = (/ dopr_time_count /),    &
     231                               count = (/ 1 /) )
     232       CALL handle_netcdf_error( 'data_output_profiles', 338 )
     233
     234!
     235!--    Store normalization factors
     236       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(1), &  ! wpt0
     237                               (/ hom_sum(nzb,18,normalizing_region) /), &
     238                               start = (/ dopr_time_count /),               &
     239                               count = (/ 1 /) )
     240       CALL handle_netcdf_error( 'data_output_profiles', 339 )
     241
     242       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(2), &  ! ws2
     243                     (/ hom_sum(nzb+8,pr_palm,normalizing_region)**2 /), &
     244                               start = (/ dopr_time_count /),               &
     245                               count = (/ 1 /) )
     246       CALL handle_netcdf_error( 'data_output_profiles', 340 )
     247
     248       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(3), &  ! tsw2
     249                     (/ hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
     250                               start = (/ dopr_time_count /),               &
     251                               count = (/ 1 /) )
     252       CALL handle_netcdf_error( 'data_output_profiles', 341 )
     253
     254       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(4), &  ! ws3
     255                     (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 /), &
     256                               start = (/ dopr_time_count /),               &
     257                               count = (/ 1 /) )
     258       CALL handle_netcdf_error( 'data_output_profiles', 342 )
     259
     260       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(5), &  ! ws2tsw
     261                     (/ hom_sum(nzb+8,pr_palm,normalizing_region)**3 *   &
     262                        hom_sum(nzb+3,pr_palm,normalizing_region)    /), &
     263                               start = (/ dopr_time_count /),               &
     264                               count = (/ 1 /) )
     265       CALL handle_netcdf_error( 'data_output_profiles', 343 )
     266
     267       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(6), &  ! wstsw2
     268                     (/ hom_sum(nzb+8,pr_palm,normalizing_region) *      &
     269                        hom_sum(nzb+3,pr_palm,normalizing_region)**2 /), &
     270                               start = (/ dopr_time_count /),               &
     271                               count = (/ 1 /) )
     272       CALL handle_netcdf_error( 'data_output_profiles', 344 )
     273
     274       nc_stat = NF90_PUT_VAR( id_set_pr, id_var_norm_dopr(7), &  ! z_i
     275                        (/ hom_sum(nzb+6,pr_palm,normalizing_region) /), &
     276                               start = (/ dopr_time_count /),               &
     277                               count = (/ 1 /) )
     278       CALL handle_netcdf_error( 'data_output_profiles', 345 )
    286279#endif
    287        ENDIF
    288280
    289281!
     
    295287          DO  sr = 0, statistic_regions
    296288
    297              IF ( netcdf_output )  THEN
    298289#if defined( __netcdf )
    299290!
    300 !--             Write data to netcdf file
    301                 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_dopr(i,sr),          &
    302                                         hom_sum(nzb:nzt+1,dopr_index(i),sr),&
    303                                         start = (/ 1, dopr_time_count /),      &
    304                                         count = (/ nzt-nzb+2, 1 /) )
    305                 CALL handle_netcdf_error( 'data_output_profiles', 346 )
     291!--          Write data to netcdf file
     292             nc_stat = NF90_PUT_VAR( id_set_pr, id_var_dopr(i,sr),          &
     293                                     hom_sum(nzb:nzt+1,dopr_index(i),sr),&
     294                                     start = (/ 1, dopr_time_count /),      &
     295                                     count = (/ nzt-nzb+2, 1 /) )
     296             CALL handle_netcdf_error( 'data_output_profiles', 346 )
    306297#endif
    307              ENDIF
    308298
    309299          ENDDO
  • palm/trunk/SOURCE/data_output_ptseries.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! -netcdf output queries
    2323!
    2424! Former revisions:
     
    5858
    5959    USE control_parameters,                                                    &
    60         ONLY:  dopts_time_count, netcdf_output, time_since_reference_point
     60        ONLY:  dopts_time_count, time_since_reference_point
    6161
    6262    USE cpulog,                                                                &
     
    8989    CALL cpu_log( log_point(36), 'data_output_ptseries', 'start' )
    9090
    91     IF ( myid == 0  .AND.  netcdf_output )  THEN
     91    IF ( myid == 0 )  THEN
    9292!
    9393!--    Open file for time series output in NetCDF format
     
    330330!
    331331!-- Output particle time series quantities in NetCDF format
    332     IF ( myid == 0  .AND.  netcdf_output )  THEN
     332    IF ( myid == 0 )  THEN
    333333       DO  j = 0, inum
    334334          DO  i = 1, dopts_num
  • palm/trunk/SOURCE/data_output_spectra.f90

    r1325 r1327  
    1919!
    2020! Current revisions:
    21 ! -----------------
     21! ------------------
     22! -netcdf output queries
    2223!
    2324! Former revisions:
     
    6263    USE control_parameters,                                                    &
    6364        ONLY:  average_count_sp, averaging_interval_sp, dosp_time_count,       &
    64                message_string, netcdf_output, run_description_header,          &
     65               message_string, run_description_header,                         &
    6566               time_since_reference_point
    6667
     
    99100!
    100101!--    Open file for spectra output in NetCDF format
    101        IF ( netcdf_output )  CALL check_open( 107 )
     102       CALL check_open( 107 )
    102103
    103104!
     
    161162!
    162163!--       Output of spectra in NetCDF format
    163           IF ( netcdf_output )  THEN
    164 !
    165 !--          Output of x-spectra
    166              IF ( INDEX( spectra_direction(m), 'x' ) /= 0 ) THEN
    167                 CALL output_spectra_netcdf( m, 'x' )
    168              ENDIF
    169 !
    170 !--          Output of y-spectra
    171              IF ( INDEX( spectra_direction(m), 'y' ) /= 0 ) THEN
    172                 CALL output_spectra_netcdf( m, 'y' )
    173              ENDIF
     164!--       Output of x-spectra
     165          IF ( INDEX( spectra_direction(m), 'x' ) /= 0 ) THEN
     166             CALL output_spectra_netcdf( m, 'x' )
     167          ENDIF
     168!
     169!--       Output of y-spectra
     170          IF ( INDEX( spectra_direction(m), 'y' ) /= 0 ) THEN
     171             CALL output_spectra_netcdf( m, 'y' )
    174172          ENDIF
    175173
  • palm/trunk/SOURCE/data_output_tseries.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! -netcdf output queries
    2323!
    2424! Former revisions:
     
    5555
    5656    USE control_parameters,                                                    &
    57         ONLY:  dots_time_count, netcdf_output, time_since_reference_point
     57        ONLY:  dots_time_count, time_since_reference_point
    5858
    5959    USE cpulog,                                                                &
     
    9090!
    9191!--    Open file for time series output in NetCDF format
    92        IF ( netcdf_output )  THEN
    93           dots_time_count = dots_time_count + 1
    94           CALL check_open( 105 )
     92       dots_time_count = dots_time_count + 1
     93       CALL check_open( 105 )
    9594#if defined( __netcdf )
    9695!
    97 !--       Update the time series time axis
    98           nc_stat = NF90_PUT_VAR( id_set_ts, id_var_time_ts,        &
    99                                   (/ time_since_reference_point /), &
    100                                   start = (/ dots_time_count /),    &
    101                                   count = (/ 1 /) )
    102           CALL handle_netcdf_error( 'data_output_tseries', 350 )
     96!--    Update the time series time axis
     97       nc_stat = NF90_PUT_VAR( id_set_ts, id_var_time_ts,        &
     98                               (/ time_since_reference_point /), &
     99                               start = (/ dots_time_count /),    &
     100                               count = (/ 1 /) )
     101       CALL handle_netcdf_error( 'data_output_tseries', 350 )
    103102#endif
    104        ENDIF
    105103
    106104!
     
    110108
    111109#if defined( __netcdf )
    112           IF ( netcdf_output )  THEN
    113              DO  i = 1, dots_num
    114                 nc_stat = NF90_PUT_VAR( id_set_ts, id_var_dots(i,sr),  &
    115                                         (/ ts_value(i,sr) /),          &
    116                                         start = (/ dots_time_count /), &
    117                                         count = (/ 1 /) )
    118                 CALL handle_netcdf_error( 'data_output_tseries', 351 )
    119              ENDDO
    120           ENDIF
     110          DO  i = 1, dots_num
     111             nc_stat = NF90_PUT_VAR( id_set_ts, id_var_dots(i,sr),  &
     112                                     (/ ts_value(i,sr) /),          &
     113                                     start = (/ dots_time_count /), &
     114                                     count = (/ 1 /) )
     115             CALL handle_netcdf_error( 'data_output_tseries', 351 )
     116          ENDDO
    121117#endif
    122118
  • palm/trunk/SOURCE/header.f90

    r1325 r1327  
    2020! Current revisions:
    2121! -----------------
     22! parts concerning iso2d and avs output removed,
     23! -netcdf output queries
    2224!
    2325! Former revisions:
     
    815817
    816818       output_format = ''
    817        IF ( netcdf_output )  THEN
    818           output_format = output_format_netcdf
    819        ENDIF
     819       output_format = output_format_netcdf
    820820       WRITE ( io, 344 )  output_format
    821821
     
    866866       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
    867867              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
    868               ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) )  .AND. &
    869             ( netcdf_output  .OR.  iso2d_output ) )  THEN
     868              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) ) )  THEN
    870869
    871870          IF (  av == 0 )  THEN
     
    882881
    883882          output_format = ''
    884           IF ( netcdf_output )  THEN
    885              output_format = output_format_netcdf
    886           ENDIF
    887           IF ( iso2d_output )  THEN
    888              IF ( netcdf_output )  THEN
    889                 output_format = TRIM( output_format_netcdf ) // ' and iso2d'
    890              ELSE
    891                 output_format = 'iso2d'
    892              ENDIF
    893           ENDIF
     883          output_format = output_format_netcdf
    894884          WRITE ( io, 344 )  output_format
    895885
     
    10481038          ENDIF
    10491039
    1050           output_format = ''
    1051           IF ( netcdf_output )  THEN
    1052              output_format = output_format_netcdf
    1053           ENDIF
    1054           IF ( avs_output )  THEN
    1055              IF ( netcdf_output )  THEN
    1056                 output_format = TRIM( output_format_netcdf ) // ' and avs'
    1057              ELSE
    1058                 output_format = 'avs'
    1059              ENDIF
    1060           ENDIF
     1040          output_format = output_format_netcdf
    10611041          WRITE ( io, 344 )  output_format
    10621042
     
    10791059          ELSE
    10801060             WRITE ( io, 353 )
    1081           ENDIF
    1082 
    1083           IF ( do3d_compress )  THEN
    1084              do3d_chr = ''
    1085              i = 1
    1086              DO WHILE ( do3d(av,i) /= ' ' )
    1087 
    1088                 SELECT CASE ( do3d(av,i) )
    1089                    CASE ( 'u' )
    1090                       j = 1
    1091                    CASE ( 'v' )
    1092                       j = 2
    1093                    CASE ( 'w' )
    1094                       j = 3
    1095                    CASE ( 'p' )
    1096                       j = 4
    1097                    CASE ( 'pt' )
    1098                       j = 5
    1099                 END SELECT
    1100                 WRITE ( prec, '(I1)' )  plot_3d_precision(j)%precision
    1101                 do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // &
    1102                            ':' // prec // ','
    1103                 i = i + 1
    1104 
    1105              ENDDO
    1106              WRITE ( io, 338 )  do3d_chr
    1107 
    11081061          ENDIF
    11091062
     
    11441097             ENDIF
    11451098
    1146              output_format = ' '
    1147              IF ( netcdf_output )  THEN
    1148                 output_format = output_format_netcdf
    1149              ENDIF
     1099             output_format = output_format_netcdf
    11501100!--          Parallel output not implemented for mask data, hence
    11511101!--          output_format must be adjusted.
     
    12021152       WRITE ( io, 340 )
    12031153
    1204        output_format = ''
    1205        IF ( netcdf_output )  THEN
    1206           output_format = output_format_netcdf
    1207        ENDIF
     1154       output_format = output_format_netcdf
    12081155       WRITE ( io, 344 )  output_format
    12091156       WRITE ( io, 341 )  dt_dots
     
    12681215       WRITE ( io, 370 )
    12691216
    1270        output_format = ' '
    1271        IF ( netcdf_output )  THEN
    1272           output_format = output_format_netcdf
    1273        ENDIF
     1217       output_format = output_format_netcdf
    12741218       WRITE ( io, 344 )  output_format
    12751219       WRITE ( io, 371 )  dt_dosp
     
    16401584       IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
    16411585          WRITE ( io, 485 )  dt_write_particle_data
    1642           output_format = ' '
    1643           IF ( netcdf_output )  THEN
    1644              IF ( netcdf_data_format > 1 )  THEN
    1645                 output_format = 'netcdf (64 bit offset) and binary'
    1646              ELSE
    1647                 output_format = 'netcdf and binary'
    1648              ENDIF
     1586          IF ( netcdf_data_format > 1 )  THEN
     1587             output_format = 'netcdf (64 bit offset) and binary'
    16491588          ELSE
    1650              output_format = 'binary'
     1589             output_format = 'netcdf and binary'
    16511590          ENDIF
    16521591          WRITE ( io, 344 )  output_format
     
    19051844            '       Output every             ',F8.2,' s  ',A/ &
    19061845            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
    1907 338 FORMAT ('       Compressed data output'/ &
    1908             '       Decimal precision: ',A/)
    19091846339 FORMAT ('       No output during initial ',F8.2,' s')
    19101847340 FORMAT (/'    Time series:')
  • palm/trunk/SOURCE/lpm_data_output_particles.f90

    r1321 r1327  
    2020! Current revisions:
    2121! ------------------
     22! -netcdf output queries
    2223!
    2324! Former revisions:
     
    4344
    4445    USE control_parameters,                                                    &
    45         ONLY:  netcdf_output, prt_time_count, simulated_time
     46        ONLY:  prt_time_count, simulated_time
    4647
    4748    USE cpulog,                                                                &
     
    8081!
    8182!-- Output in netCDF format
    82     IF ( netcdf_output )  THEN
    83 
    84        CALL check_open( 108 )
     83    CALL check_open( 108 )
    8584
    8685!
    87 !--    Update the NetCDF time axis
    88        prt_time_count = prt_time_count + 1
     86!-- Update the NetCDF time axis
     87    prt_time_count = prt_time_count + 1
    8988
    90        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_time_prt, &
    91                                (/ simulated_time /),        &
    92                                start = (/ prt_time_count /), count = (/ 1 /) )
    93        CALL handle_netcdf_error( 'lpm_data_output_particles', 1 )
     89    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_time_prt, &
     90                            (/ simulated_time /),        &
     91                            start = (/ prt_time_count /), count = (/ 1 /) )
     92    CALL handle_netcdf_error( 'lpm_data_output_particles', 1 )
    9493
    9594!
    96 !--    Output the real number of particles used
    97        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_rnop_prt, &
    98                                (/ number_of_particles /),   &
    99                                start = (/ prt_time_count /), count = (/ 1 /) )
    100        CALL handle_netcdf_error( 'lpm_data_output_particles', 2 )
     95!-- Output the real number of particles used
     96    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_rnop_prt, &
     97                            (/ number_of_particles /),   &
     98                            start = (/ prt_time_count /), count = (/ 1 /) )
     99    CALL handle_netcdf_error( 'lpm_data_output_particles', 2 )
    101100
    102101!
    103 !--    Output all particle attributes
    104        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(1), particles%age,      &
    105                                start = (/ 1, prt_time_count /),               &
    106                                count = (/ maximum_number_of_particles /) )
    107        CALL handle_netcdf_error( 'lpm_data_output_particles', 3 )
     102!-- Output all particle attributes
     103    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(1), particles%age,      &
     104                            start = (/ 1, prt_time_count /),               &
     105                            count = (/ maximum_number_of_particles /) )
     106    CALL handle_netcdf_error( 'lpm_data_output_particles', 3 )
    108107
    109        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(2), particles%dvrp_psize,&
    110                                start = (/ 1, prt_time_count /),                &
    111                                count = (/ maximum_number_of_particles /) )
    112        CALL handle_netcdf_error( 'lpm_data_output_particles', 4 )
     108    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(2), particles%dvrp_psize,&
     109                            start = (/ 1, prt_time_count /),                &
     110                            count = (/ maximum_number_of_particles /) )
     111    CALL handle_netcdf_error( 'lpm_data_output_particles', 4 )
    113112
    114        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(3), particles%origin_x, &
    115                                start = (/ 1, prt_time_count /),               &
    116                                count = (/ maximum_number_of_particles /) )
    117        CALL handle_netcdf_error( 'lpm_data_output_particles', 5 )
     113    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(3), particles%origin_x, &
     114                            start = (/ 1, prt_time_count /),               &
     115                            count = (/ maximum_number_of_particles /) )
     116    CALL handle_netcdf_error( 'lpm_data_output_particles', 5 )
    118117
    119        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(4), particles%origin_y, &
    120                                start = (/ 1, prt_time_count /),               &
    121                                count = (/ maximum_number_of_particles /) )
    122        CALL handle_netcdf_error( 'lpm_data_output_particles', 6 )
     118    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(4), particles%origin_y, &
     119                            start = (/ 1, prt_time_count /),               &
     120                            count = (/ maximum_number_of_particles /) )
     121    CALL handle_netcdf_error( 'lpm_data_output_particles', 6 )
    123122
    124        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(5), particles%origin_z, &
    125                                start = (/ 1, prt_time_count /),               &
    126                                count = (/ maximum_number_of_particles /) )
    127        CALL handle_netcdf_error( 'lpm_data_output_particles', 7 )
     123    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(5), particles%origin_z, &
     124                            start = (/ 1, prt_time_count /),               &
     125                            count = (/ maximum_number_of_particles /) )
     126    CALL handle_netcdf_error( 'lpm_data_output_particles', 7 )
    128127
    129        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(6), particles%radius,   &
    130                                start = (/ 1, prt_time_count /),               &
    131                                count = (/ maximum_number_of_particles /) )
    132        CALL handle_netcdf_error( 'lpm_data_output_particles', 8 )
     128    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(6), particles%radius,   &
     129                            start = (/ 1, prt_time_count /),               &
     130                            count = (/ maximum_number_of_particles /) )
     131    CALL handle_netcdf_error( 'lpm_data_output_particles', 8 )
    133132
    134        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(7), particles%speed_x,  &
    135                                start = (/ 1, prt_time_count /),               &
    136                                count = (/ maximum_number_of_particles /) )
    137        CALL handle_netcdf_error( 'lpm_data_output_particles', 9 )
     133    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(7), particles%speed_x,  &
     134                            start = (/ 1, prt_time_count /),               &
     135                            count = (/ maximum_number_of_particles /) )
     136    CALL handle_netcdf_error( 'lpm_data_output_particles', 9 )
    138137
    139        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(8), particles%speed_y,  &
    140                                start = (/ 1, prt_time_count /),               &
    141                                count = (/ maximum_number_of_particles /) )
    142        CALL handle_netcdf_error( 'lpm_data_output_particles', 10 )
     138    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(8), particles%speed_y,  &
     139                            start = (/ 1, prt_time_count /),               &
     140                            count = (/ maximum_number_of_particles /) )
     141    CALL handle_netcdf_error( 'lpm_data_output_particles', 10 )
    143142
    144        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(9), particles%speed_z,  &
    145                                start = (/ 1, prt_time_count /),               &
    146                                count = (/ maximum_number_of_particles /) )
    147        CALL handle_netcdf_error( 'lpm_data_output_particles', 11 )
     143    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(9), particles%speed_z,  &
     144                            start = (/ 1, prt_time_count /),               &
     145                            count = (/ maximum_number_of_particles /) )
     146    CALL handle_netcdf_error( 'lpm_data_output_particles', 11 )
    148147
    149        nc_stat = NF90_PUT_VAR( id_set_prt,id_var_prt(10),                     &
    150                                particles%weight_factor,                       &
    151                                start = (/ 1, prt_time_count /),               &
    152                                count = (/ maximum_number_of_particles /) )
    153        CALL handle_netcdf_error( 'lpm_data_output_particles', 12 )
     148    nc_stat = NF90_PUT_VAR( id_set_prt,id_var_prt(10),                     &
     149                            particles%weight_factor,                       &
     150                            start = (/ 1, prt_time_count /),               &
     151                            count = (/ maximum_number_of_particles /) )
     152    CALL handle_netcdf_error( 'lpm_data_output_particles', 12 )
    154153
    155        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(11), particles%x,       &
    156                                start = (/ 1, prt_time_count /),               &
    157                                count = (/ maximum_number_of_particles /) )
    158        CALL handle_netcdf_error( 'lpm_data_output_particles', 13 )
     154    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(11), particles%x,       &
     155                            start = (/ 1, prt_time_count /),               &
     156                            count = (/ maximum_number_of_particles /) )
     157    CALL handle_netcdf_error( 'lpm_data_output_particles', 13 )
    159158
    160        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(12), particles%y,       &
    161                                start = (/ 1, prt_time_count /),               &
    162                                count = (/ maximum_number_of_particles /) )
    163        CALL handle_netcdf_error( 'lpm_data_output_particles', 14 )
     159    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(12), particles%y,       &
     160                            start = (/ 1, prt_time_count /),               &
     161                            count = (/ maximum_number_of_particles /) )
     162    CALL handle_netcdf_error( 'lpm_data_output_particles', 14 )
    164163
    165        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(13), particles%z,       &
    166                                start = (/ 1, prt_time_count /),               &
    167                                count = (/ maximum_number_of_particles /) )
    168        CALL handle_netcdf_error( 'lpm_data_output_particles', 15 )
     164    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(13), particles%z,       &
     165                            start = (/ 1, prt_time_count /),               &
     166                            count = (/ maximum_number_of_particles /) )
     167    CALL handle_netcdf_error( 'lpm_data_output_particles', 15 )
    169168
    170        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(14), particles%class,   &
    171                                start = (/ 1, prt_time_count /),               &
    172                                count = (/ maximum_number_of_particles /) )
    173        CALL handle_netcdf_error( 'lpm_data_output_particles', 16 )
     169    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(14), particles%class,   &
     170                            start = (/ 1, prt_time_count /),               &
     171                            count = (/ maximum_number_of_particles /) )
     172    CALL handle_netcdf_error( 'lpm_data_output_particles', 16 )
    174173
    175        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(15), particles%group,   &
    176                                start = (/ 1, prt_time_count /),               &
    177                                count = (/ maximum_number_of_particles /) )
    178        CALL handle_netcdf_error( 'lpm_data_output_particles', 17 )
     174    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(15), particles%group,   &
     175                            start = (/ 1, prt_time_count /),               &
     176                            count = (/ maximum_number_of_particles /) )
     177    CALL handle_netcdf_error( 'lpm_data_output_particles', 17 )
    179178
    180        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(16),                    &
    181                                particles%tailpoints,                          &
    182                                start = (/ 1, prt_time_count /),               &
    183                                count = (/ maximum_number_of_particles /) )
    184        CALL handle_netcdf_error( 'lpm_data_output_particles', 18 )
     179    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(16),                    &
     180                            particles%tailpoints,                          &
     181                            start = (/ 1, prt_time_count /),               &
     182                            count = (/ maximum_number_of_particles /) )
     183    CALL handle_netcdf_error( 'lpm_data_output_particles', 18 )
    185184
    186        nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(17), particles%tail_id, &
    187                                start = (/ 1, prt_time_count /),               &
    188                                count = (/ maximum_number_of_particles /) )
    189        CALL handle_netcdf_error( 'lpm_data_output_particles', 19 )
    190 
    191     ENDIF
     185    nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(17), particles%tail_id, &
     186                            start = (/ 1, prt_time_count /),               &
     187                            count = (/ maximum_number_of_particles /) )
     188    CALL handle_netcdf_error( 'lpm_data_output_particles', 19 )
    192189
    193190#endif
  • palm/trunk/SOURCE/lpm_exchange_horiz.f90

    r1321 r1327  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! -netcdf output queries
    2323!
    2424! Former revisions:
     
    5353
    5454    USE control_parameters,                                                    &
    55         ONLY:  message_string, netcdf_output, netcdf_data_format
     55        ONLY:  message_string, netcdf_data_format
    5656
    5757    USE cpulog,                                                                &
     
    350350            maximum_number_of_particles )           &
    351351       THEN
    352           IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     352          IF ( netcdf_data_format < 3 )  THEN
    353353              message_string = 'maximum_number_of_particles ' //    &
    354354                               'needs to be increased ' //          &
     
    374374          IF ( number_of_tails+trrpt_count_recv > maximum_number_of_tails ) &
    375375          THEN
    376              IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     376             IF ( netcdf_data_format < 3 )  THEN
    377377                message_string = 'maximum_number_of_tails ' //   &
    378378                                 'needs to be increased ' //     &
     
    414414            maximum_number_of_particles )           &
    415415       THEN
    416           IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     416          IF ( netcdf_data_format < 3 )  THEN
    417417             message_string = 'maximum_number_of_particles ' //  &
    418418                              'needs to be increased ' //        &
     
    438438          IF ( number_of_tails+trlpt_count_recv > maximum_number_of_tails ) &
    439439          THEN
    440              IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     440             IF ( netcdf_data_format < 3 )  THEN
    441441                message_string = 'maximum_number_of_tails ' //   &
    442442                                 'needs to be increased ' //     &
     
    723723            maximum_number_of_particles )           &
    724724       THEN
    725           IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     725          IF ( netcdf_data_format < 3 )  THEN
    726726             message_string = 'maximum_number_of_particles ' //  &
    727727                              'needs to be increased ' //        &
     
    747747          IF ( number_of_tails+trnpt_count_recv > maximum_number_of_tails ) &
    748748          THEN
    749              IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     749             IF ( netcdf_data_format < 3 )  THEN
    750750                message_string = 'maximum_number_of_tails ' //    &
    751751                                 'needs to be increased ' //      &
     
    788788            maximum_number_of_particles )           &
    789789       THEN
    790           IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     790          IF ( netcdf_data_format < 3 )  THEN
    791791             message_string = 'maximum_number_of_particles ' //   &
    792792                              'needs to be increased ' //         &
     
    812812          IF ( number_of_tails+trspt_count_recv > maximum_number_of_tails ) &
    813813          THEN
    814              IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     814             IF ( netcdf_data_format < 3 )  THEN
    815815                message_string = 'maximum_number_of_tails ' //   &
    816816                                 'needs to be increased ' //     &
  • palm/trunk/SOURCE/lpm_init.f90

    r1323 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! -netcdf_output
    2323!
    2424! Former revisions:
     
    8383    USE control_parameters,                                                    &
    8484        ONLY:  cloud_droplets, current_timestep_number, initializing_actions,  &
    85                message_string, netcdf_output,netcdf_data_format, ocean,        &
     85               message_string, netcdf_data_format, ocean,                      &
    8686               prandtl_layer, simulated_time
    8787
  • palm/trunk/SOURCE/lpm_release_set.f90

    r1321 r1327  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! -netcdf output queries
    2323!
    2424! Former revisions:
     
    4848
    4949    USE control_parameters,                                                    &
    50         ONLY:  iran, message_string, netcdf_data_format, netcdf_output
     50        ONLY:  iran, message_string, netcdf_data_format
    5151
    5252    USE grid_variables,                                                        &
     
    8181    IF ( number_of_particles + number_of_initial_particles > &
    8282         maximum_number_of_particles  )  THEN
    83        IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     83       IF ( netcdf_data_format < 3 )  THEN
    8484          message_string = 'maximum_number_of_particles needs to be increa' // &
    8585                           'sed &but this is not allowed with netcdf_data_' // &
     
    9696       IF ( number_of_tails + number_of_initial_tails > &
    9797            maximum_number_of_tails  )  THEN
    98           IF ( netcdf_output  .AND.  netcdf_data_format < 3 )  THEN
     98          IF ( netcdf_data_format < 3 )  THEN
    9999             message_string = 'maximum_number_of_tails needs to be increas' // &
    100100                              'ed &but this is not allowed with netcdf_dat' // &
  • palm/trunk/SOURCE/modules.f90

    r1321 r1327  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! REAL constants defined as wp-kind
     23! -avs_output, data_output_format, do3d_compress, iso2d_output, netcdf_output
    2324!
    2425! Former revisions:
     
    347348               
    348349
    349     REAL(wp) ::  a_1 = 8.69E-4,     & !: coef. in turb. parametrization (cm-2 s3)
    350                  a_2 = -7.38E-5,    & !: coef. in turb. parametrization (cm-2 s3)
    351                  a_3 = -1.40E-2,    & !: coef. in turb. parametrization
    352                  a_term = 9.65,     & !: coef. for terminal velocity (m s-1)
    353                  a_vent = 0.78,     & !: coef. for ventilation effect
    354                  b_1 = 11.45E-6,    & !: coef. in turb. parametrization (m)
    355                  b_2 = 9.68E-6,     & !: coef. in turb. parametrization (m)
    356                  b_3 = 0.62,        & !: coef. in turb. parametrization
    357                  b_term = 9.8,      & !: coef. for terminal velocity (m s-1)
    358                  b_vent = 0.308,    & !: coef. for ventilation effect
    359                  beta_cc = 3.09E-4, & !: coef. in turb. parametrization (cm-2 s3)
     350    REAL(wp) ::  a_1 = 8.69E-4_wp,     & !: coef. in turb. parametrization (cm-2 s3)
     351                 a_2 = -7.38E-5_wp,    & !: coef. in turb. parametrization (cm-2 s3)
     352                 a_3 = -1.40E-2_wp,    & !: coef. in turb. parametrization
     353                 a_term = 9.65_wp,     & !: coef. for terminal velocity (m s-1)
     354                 a_vent = 0.78_wp,     & !: coef. for ventilation effect
     355                 b_1 = 11.45E-6_wp,    & !: coef. in turb. parametrization (m)
     356                 b_2 = 9.68E-6_wp,     & !: coef. in turb. parametrization (m)
     357                 b_3 = 0.62_wp,        & !: coef. in turb. parametrization
     358                 b_term = 9.8_wp,      & !: coef. for terminal velocity (m s-1)
     359                 b_vent = 0.308_wp,    & !: coef. for ventilation effect
     360                 beta_cc = 3.09E-4_wp, & !: coef. in turb. parametrization (cm-2 s3)
    360361                 bfactor,           &
    361                  c_1 = 4.82E-6,     & !: coef. in turb. parametrization (m)
    362                  c_2 = 4.8E-6,      & !: coef. in turb. parametrization (m)
    363                  c_3 = 0.76,        & !: coef. in turb. parametrization
    364                  c_const = 0.93,    & !: const. in Taylor-microscale Reynolds number
    365                  c_evap = 0.7,      & !: constant in evaporation
    366                  c_sedimentation = 2.0, & !: Courant number of sedimentation process
    367                  c_term = 600.0,    & !: coef. for terminal velocity (m-1)
    368                  cof(6) = (/ 76.18009172947146,      & !: coefficients in the
    369                              -86.50532032941677,     & !: numerical
    370                              24.01409824083091,      & !: calculation of the
    371                              -1.231739572450155,     & !: gamma function
    372                              0.1208650973866179E-2,  &
    373                              -0.5395239384953E-5 /), &
    374                 cp = 1005.0,       & !: heat capacity of dry air (J kg-1 K-1)
    375                 diff_coeff_l = 0.23E-4, & !: diffusivity of water vapor (m2 s-1)
     362                 c_1 = 4.82E-6_wp,     & !: coef. in turb. parametrization (m)
     363                 c_2 = 4.8E-6_wp,      & !: coef. in turb. parametrization (m)
     364                 c_3 = 0.76_wp,        & !: coef. in turb. parametrization
     365                 c_const = 0.93_wp,    & !: const. in Taylor-microscale Reynolds number
     366                 c_evap = 0.7_wp,      & !: constant in evaporation
     367                 c_sedimentation = 2.0_wp, & !: Courant number of sedimentation process
     368                 c_term = 600.0_wp,    & !: coef. for terminal velocity (m-1)
     369                 cof(6) = (/ 76.18009172947146_wp,      & !: coefficients in the
     370                             -86.50532032941677_wp,     & !: numerical
     371                             24.01409824083091_wp,      & !: calculation of the
     372                             -1.231739572450155_wp,     & !: gamma function
     373                             0.1208650973866179E-2_wp,  &
     374                             -0.5395239384953E-5_wp /), &
     375                cp = 1005.0_wp,       & !: heat capacity of dry air (J kg-1 K-1)
     376                diff_coeff_l = 0.23E-4_wp, & !: diffusivity of water vapor (m2 s-1)
    376377                effective_coll_efficiency, & !:
    377                 eps_ros = 1.0E-4,  & !: accuracy of Rosenbrock method
    378                 eps_sb = 1.0E-20,  & !: threshold in two-moments scheme
    379                 k_cc = 9.44E09,    & !: const. cloud-cloud kernel (m3 kg-2 s-1)
    380                 k_cr0 = 4.33,      & !: const. cloud-rain kernel (m3 kg-1 s-1)
    381                 k_rr = 7.12,       & !: const. rain-rain kernel (m3 kg-1 s-1)
    382                 k_br = 1000.,      & !: const. in breakup parametrization (m-1)
    383                 k_st = 1.2E8,      & !: const. in drizzle parametrization (m-1 s-1)
    384                 kappa_rr = 60.7,   & !: const. in collision kernel (kg-1/3)
    385                 kin_vis_air = 1.4086E-5, & !: kin. viscosity of air (m2 s-1)
    386                 l_v = 2.5E+06,     & !: latent heat of vaporization (J kg-1)
     378                eps_ros = 1.0E-4_wp,  & !: accuracy of Rosenbrock method
     379                eps_sb = 1.0E-20_wp,  & !: threshold in two-moments scheme
     380                k_cc = 9.44E09_wp,    & !: const. cloud-cloud kernel (m3 kg-2 s-1)
     381                k_cr0 = 4.33_wp,      & !: const. cloud-rain kernel (m3 kg-1 s-1)
     382                k_rr = 7.12_wp,       & !: const. rain-rain kernel (m3 kg-1 s-1)
     383                k_br = 1000._wp,      & !: const. in breakup parametrization (m-1)
     384                k_st = 1.2E8_wp,      & !: const. in drizzle parametrization (m-1 s-1)
     385                kappa_rr = 60.7_wp,   & !: const. in collision kernel (kg-1/3)
     386                kin_vis_air = 1.4086E-5_wp, & !: kin. viscosity of air (m2 s-1)
     387                l_v = 2.5E+06_wp,     & !: latent heat of vaporization (J kg-1)
    387388                l_d_cp, l_d_r, l_d_rv, & !: l_v / cp, l_v / r_d, l_v / r_v
    388                 mass_of_solute = 1.0E-17, & !: soluted NaCl (kg)
    389                 molecular_weight_of_solute = 0.05844, & !: mol. m. NaCl (kg mol-1)
    390                 molecular_weight_of_water = 0.01801528, & !: mol. m. H2O (kg mol-1)
    391                 nc_const = 70.0E6, & !: cloud droplet concentration
    392                 prec_time_const = 0.001, & !: coef. in Kessler scheme
     389                mass_of_solute = 1.0E-17_wp, & !: soluted NaCl (kg)
     390                molecular_weight_of_solute = 0.05844_wp, & !: mol. m. NaCl (kg mol-1)
     391                molecular_weight_of_water = 0.01801528_wp, & !: mol. m. H2O (kg mol-1)
     392                nc_const = 70.0E6_wp, & !: cloud droplet concentration
     393                prec_time_const = 0.001_wp, & !: coef. in Kessler scheme
    393394                pirho_l, dpirho_l, & !: pi * rho_l / 6.0; 6.0 / ( pi * rho_l )
    394                 rho_l = 1.0E3,     & !: density of water (kg m-3)
    395                 ql_crit = 0.0005,  & !: coef. in Kessler scheme
    396                 r_d = 287.0,       & !: sp. gas const. dry air (J kg-1 K-1)
    397                 r_v = 461.51,      & !: sp. gas const. water vapor (J kg-1 K-1)
    398                 schmidt = 0.71,    & !: Schmidt number
    399                 schmidt_p_1d3,     & !: schmidt**( 1.0 / 3.0 )
    400                 sigma_gc = 1.3,    & !: log-normal geometric standard deviation
    401                 stp = 2.5066282746310005, & !: parameter in gamma function
    402                 thermal_conductivity_l = 2.43E-2, & !: therm. cond. air (J m-1 s-1 K-1)
    403                 vanthoff = 2.0,    & !: van't Hoff factor for NaCl
    404                 x0 = 2.6E-10,      & !: separating drop mass (kg)
    405                 xrmin = 2.6E-10,   & !: minimum rain drop size (kg)
    406                 xrmax = 5.0E-6,    & !: maximum rain drop site (kg)
    407                 dt_precipitation = 100.0, & !: timestep precipitation (s)
    408                 w_precipitation = 9.65      !: maximum terminal velocity (m s-1)
     395                rho_l = 1.0E3_wp,     & !: density of water (kg m-3)
     396                ql_crit = 0.0005_wp,  & !: coef. in Kessler scheme
     397                r_d = 287.0_wp,       & !: sp. gas const. dry air (J kg-1 K-1)
     398                r_v = 461.51_wp,      & !: sp. gas const. water vapor (J kg-1 K-1)
     399                schmidt = 0.71_wp,    & !: Schmidt number
     400                schmidt_p_1d3,        & !: schmidt**( 1.0 / 3.0 )
     401                sigma_gc = 1.3_wp,    & !: log-normal geometric standard deviation
     402                stp = 2.5066282746310005_wp, & !: parameter in gamma function
     403                thermal_conductivity_l = 2.43E-2_wp, & !: therm. cond. air (J m-1 s-1 K-1)
     404                vanthoff = 2.0_wp,    & !: van't Hoff factor for NaCl
     405                x0 = 2.6E-10_wp,      & !: separating drop mass (kg)
     406                xrmin = 2.6E-10_wp,   & !: minimum rain drop size (kg)
     407                xrmax = 5.0E-6_wp,    & !: maximum rain drop site (kg)
     408                dt_precipitation = 100.0_wp, & !: timestep precipitation (s)
     409                w_precipitation = 9.65_wp      !: maximum terminal velocity (m s-1)
    409410
    410411    REAL(wp), DIMENSION(:), ALLOCATABLE     ::  hyrho, pt_d_t, t_d_pt 
     
    511512    CHARACTER (LEN=1000) ::  message_string = ' '
    512513
    513     CHARACTER (LEN=7),  DIMENSION(100) ::  do3d_comp_prec = ' '
    514     CHARACTER (LEN=10), DIMENSION(10)  ::  data_output_format = ' '
    515514    CHARACTER (LEN=11), DIMENSION(100) ::  data_output = ' ',    &
    516515                                           data_output_user = ' ', doav = ' '
     
    581580                    mask_i_global, mask_j_global, mask_k_global
    582581
    583     LOGICAL ::  avs_output = .FALSE., &
    584                 bc_lr_cyc =.TRUE., bc_lr_dirrad = .FALSE., &
     582    LOGICAL ::  bc_lr_cyc =.TRUE., bc_lr_dirrad = .FALSE., &
    585583                bc_lr_raddir = .FALSE., bc_ns_cyc = .TRUE., &
    586584                bc_ns_dirrad = .FALSE., bc_ns_raddir = .FALSE.,&
     
    595593                dissipation_control = .FALSE., disturbance_created = .FALSE., &
    596594                do2d_at_begin = .FALSE., do3d_at_begin = .FALSE., &
    597                 do3d_compress = .FALSE., do_sum = .FALSE., &
     595                do_sum = .FALSE., &
    598596                dp_external = .FALSE., dp_smooth = .FALSE., &
    599597                drizzle = .FALSE., dt_fixed = .FALSE., &
     
    604602                inflow_l = .FALSE., inflow_n = .FALSE., &
    605603                inflow_r = .FALSE., inflow_s = .FALSE., &
    606                 iso2d_output = .FALSE., large_scale_forcing = .FALSE., &
     604                large_scale_forcing = .FALSE., &
    607605                large_scale_subsidence = .FALSE., lsf_surf = .TRUE., &
    608606                lsf_vert = .TRUE., lptnudge = .FALSE., lqnudge = .FALSE., &
    609607                lunudge = .FALSE., lvnudge = .FALSE., lwnudge = .FALSE., &
    610608                masking_method = .FALSE., mg_switch_to_pe0 = .FALSE., &
    611                 netcdf_output = .FALSE., neutral = .FALSE., nudging = .FALSE., &
     609                neutral = .FALSE., nudging = .FALSE., &
    612610                ocean = .FALSE., on_device = .FALSE., &
    613611                outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., &
     
    632630                data_output_yz(0:1) = .FALSE.
    633631
    634     REAL(wp) ::  advected_distance_x = 0.0, advected_distance_y = 0.0, &
    635                  alpha_surface = 0.0, atmos_ocean_sign = 1.0, &
    636                  averaging_interval = 0.0, averaging_interval_pr = 9999999.9, &
    637                  averaging_interval_sp = 9999999.9, bc_pt_t_val, bc_q_t_val, &
    638                  bottom_salinityflux = 0.0, &
    639                  building_height = 50.0, building_length_x = 50.0, &
    640                  building_length_y = 50.0, building_wall_left = 9999999.9, &
    641                  building_wall_south = 9999999.9, canyon_height = 50.0, &
    642                  canyon_width_x = 9999999.9, canyon_width_y = 9999999.9, &
    643                  canyon_wall_left = 9999999.9, canyon_wall_south = 9999999.9, &
    644                  cthf = 0.0, cfl_factor = -1.0, cos_alpha_surface, &
    645                  coupling_start_time = 0.0, disturbance_amplitude = 0.25, &
    646                  disturbance_energy_limit = 0.01, &
    647                  disturbance_level_b = -9999999.9, &
    648                  disturbance_level_t = -9999999.9, &
    649                  dp_level_b = 0.0, drag_coefficient = 0.0, &
    650                  dt = -1.0, dt_averaging_input = 0.0, &
    651                  dt_averaging_input_pr = 9999999.9, dt_coupling = 9999999.9, &
    652                  dt_data_output = 9999999.9, &
    653                  dt_data_output_av = 9999999.9, dt_disturb = 9999999.9, &
    654                  dt_dopr = 9999999.9, dt_dopr_listing = 9999999.9, &
    655                  dt_dopts = 9999999.9, dt_dosp = 9999999.9, dt_dots = 9999999.9, &
    656                  dt_do2d_xy = 9999999.9, dt_do2d_xz = 9999999.9, &
    657                  dt_do2d_yz = 9999999.9, dt_do3d = 9999999.9, dt_dvrp = 9999999.9, &
    658                  dt_max = 20.0, dt_micro = -1.0, dt_restart = 9999999.9, &
    659                  dt_run_control = 60.0, dt_3d = -1.0, dz = -1.0, &
    660                  dz_max = 9999999.9, dz_stretch_factor = 1.08, &
    661                  dz_stretch_level = 100000.0, e_init = 0.0, e_min = 0.0, &
    662                  end_time = 0.0, &
    663                  f = 0.0, fs = 0.0, g = 9.81, inflow_damping_height = 9999999.9, &
    664                  inflow_damping_width = 9999999.9, kappa = 0.4, km_constant = -1.0,&
    665                  lad_surface = 0.0, leaf_surface_concentration = 0.0, &
    666                  mask_scale_x = 1.0, mask_scale_y = 1.0, mask_scale_z = 1.0, &
    667                  maximum_cpu_time_allowed = 0.0,  &
    668                  molecular_viscosity = 1.461E-5, &
    669                  old_dt = 1.0E-10, omega = 7.29212E-5, omega_sor = 1.8, &
    670                  particle_maximum_age = 9999999.9, &
    671                  phi = 55.0, prandtl_number = 1.0, &
    672                  precipitation_amount_interval = 9999999.9, prho_reference, &
    673                  pt_damping_factor = 0.0, pt_damping_width = 0.0, &
    674                  pt_reference = 9999999.9, pt_slope_offset = 0.0, &
    675                  pt_surface = 300.0, pt_surface_initial_change = 0.0, &
    676                  q_surface = 0.0, q_surface_initial_change = 0.0, &
    677                  rayleigh_damping_factor = -1.0, rayleigh_damping_height = -1.0, &
    678                  recycling_width = 9999999.9, residual_limit = 1.0E-4, &
    679                  restart_time = 9999999.9, rho_reference, rho_surface, &
    680                  rif_max = 1.0, rif_min = -5.0, roughness_length = 0.1, &
    681                  sa_surface = 35.0, scalar_exchange_coefficient = 0.0, &
    682                  simulated_time = 0.0, simulated_time_at_begin, sin_alpha_surface, &
    683                  skip_time_data_output = 0.0, skip_time_data_output_av = 9999999.9,&
    684                  skip_time_dopr = 9999999.9, skip_time_dosp = 9999999.9, &
    685                  skip_time_do2d_xy = 9999999.9, skip_time_do2d_xz = 9999999.9, &
    686                  skip_time_do2d_yz = 9999999.9, skip_time_do3d = 9999999.9, &
    687                  surface_heatflux = 9999999.9, surface_pressure = 1013.25, &
    688                  surface_scalarflux = 9999999.9, surface_waterflux = 9999999.9, &
    689                  s_surface = 0.0, s_surface_initial_change = 0.0, &
    690                  termination_time_needed = -1.0, time_coupling = 0.0, &
    691                  time_disturb = 0.0, time_dopr = 0.0, time_dopr_av = 0.0, &
    692                  time_dopr_listing = 0.0, time_dopts = 0.0, time_dosp = 0.0, &
    693                  time_dosp_av = 0.0, time_dots = 0.0, time_do2d_xy = 0.0, &
    694                  time_do2d_xz = 0.0, time_do2d_yz = 0.0, time_do3d = 0.0, &
    695                  time_do_av = 0.0, time_do_sla = 0.0, time_dvrp = 0.0, &
    696                  time_restart = 9999999.9, time_run_control = 0.0,&
    697                  time_since_reference_point, top_heatflux = 9999999.9, &
    698                  top_momentumflux_u = 9999999.9, &
    699                  top_momentumflux_v = 9999999.9, top_salinityflux = 9999999.9, &
    700                  ug_surface = 0.0, u_bulk = 0.0, u_gtrans = 0.0, &
    701                  vg_surface = 0.0, vpt_reference = 9999999.9, &
    702                  v_bulk = 0.0, v_gtrans = 0.0, wall_adjustment_factor = 1.8, &
    703                  z_max_do2d = -1.0, z0h_factor = 1.0
    704 
    705     REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0, do2d_xz_last_time(0:1) = -1.0, &
    706                  do2d_yz_last_time(0:1) = -1.0, dpdxy(1:2) = 0.0, &
    707                  dt_domask(max_masks) = 9999999.9, lad_vertical_gradient(10) = 0.0,&
    708                  lad_vertical_gradient_level(10) = -9999999.9, &
     632    REAL(wp) ::  advected_distance_x = 0.0_wp, advected_distance_y = 0.0_wp, &
     633                 alpha_surface = 0.0_wp, atmos_ocean_sign = 1.0_wp, &
     634                 averaging_interval = 0.0_wp, averaging_interval_pr = 9999999.9_wp, &
     635                 averaging_interval_sp = 9999999.9_wp, bc_pt_t_val, bc_q_t_val, &
     636                 bottom_salinityflux = 0.0_wp, &
     637                 building_height = 50.0_wp, building_length_x = 50.0_wp, &
     638                 building_length_y = 50.0_wp, building_wall_left = 9999999.9_wp, &
     639                 building_wall_south = 9999999.9_wp, canyon_height = 50.0_wp, &
     640                 canyon_width_x = 9999999.9_wp, canyon_width_y = 9999999.9_wp, &
     641                 canyon_wall_left = 9999999.9_wp, canyon_wall_south = 9999999.9_wp, &
     642                 cthf = 0.0_wp, cfl_factor = -1.0_wp, cos_alpha_surface, &
     643                 coupling_start_time = 0.0_wp, disturbance_amplitude = 0.25_wp, &
     644                 disturbance_energy_limit = 0.01_wp, &
     645                 disturbance_level_b = -9999999.9_wp, &
     646                 disturbance_level_t = -9999999.9_wp, &
     647                 dp_level_b = 0.0_wp, drag_coefficient = 0.0_wp, &
     648                 dt = -1.0_wp, dt_averaging_input = 0.0_wp, &
     649                 dt_averaging_input_pr = 9999999.9_wp, dt_coupling = 9999999.9_wp, &
     650                 dt_data_output = 9999999.9_wp, &
     651                 dt_data_output_av = 9999999.9_wp, dt_disturb = 9999999.9_wp, &
     652                 dt_dopr = 9999999.9_wp, dt_dopr_listing = 9999999.9_wp, &
     653                 dt_dopts = 9999999.9_wp, dt_dosp = 9999999.9_wp, dt_dots = 9999999.9_wp, &
     654                 dt_do2d_xy = 9999999.9_wp, dt_do2d_xz = 9999999.9_wp, &
     655                 dt_do2d_yz = 9999999.9_wp, dt_do3d = 9999999.9_wp, dt_dvrp = 9999999.9_wp, &
     656                 dt_max = 20.0_wp, dt_micro = -1.0_wp, dt_restart = 9999999.9_wp, &
     657                 dt_run_control = 60.0_wp, dt_3d = -1.0_wp, dz = -1.0_wp, &
     658                 dz_max = 9999999.9_wp, dz_stretch_factor = 1.08_wp, &
     659                 dz_stretch_level = 100000.0_wp, e_init = 0.0_wp, e_min = 0.0_wp, &
     660                 end_time = 0.0_wp, &
     661                 f = 0.0_wp, fs = 0.0_wp, g = 9.81_wp, inflow_damping_height = 9999999.9_wp, &
     662                 inflow_damping_width = 9999999.9_wp, kappa = 0.4_wp, km_constant = -1.0_wp,&
     663                 lad_surface = 0.0_wp, leaf_surface_concentration = 0.0_wp, &
     664                 mask_scale_x = 1.0_wp, mask_scale_y = 1.0_wp, mask_scale_z = 1.0_wp, &
     665                 maximum_cpu_time_allowed = 0.0_wp,  &
     666                 molecular_viscosity = 1.461E-5_wp, &
     667                 old_dt = 1.0E-10_wp, omega = 7.29212E-5_wp, omega_sor = 1.8_wp, &
     668                 particle_maximum_age = 9999999.9_wp, &
     669                 phi = 55.0_wp, prandtl_number = 1.0_wp, &
     670                 precipitation_amount_interval = 9999999.9_wp, prho_reference, &
     671                 pt_damping_factor = 0.0_wp, pt_damping_width = 0.0_wp, &
     672                 pt_reference = 9999999.9_wp, pt_slope_offset = 0.0_wp, &
     673                 pt_surface = 300.0_wp, pt_surface_initial_change = 0.0_wp, &
     674                 q_surface = 0.0_wp, q_surface_initial_change = 0.0_wp, &
     675                 rayleigh_damping_factor = -1.0_wp, rayleigh_damping_height = -1.0_wp, &
     676                 recycling_width = 9999999.9_wp, residual_limit = 1.0E-4_wp, &
     677                 restart_time = 9999999.9_wp, rho_reference, rho_surface, &
     678                 rif_max = 1.0_wp, rif_min = -5.0_wp, roughness_length = 0.1_wp, &
     679                 sa_surface = 35.0_wp, scalar_exchange_coefficient = 0.0_wp, &
     680                 simulated_time = 0.0_wp, simulated_time_at_begin, sin_alpha_surface, &
     681                 skip_time_data_output = 0.0_wp, skip_time_data_output_av = 9999999.9_wp,&
     682                 skip_time_dopr = 9999999.9_wp, skip_time_dosp = 9999999.9_wp, &
     683                 skip_time_do2d_xy = 9999999.9_wp, skip_time_do2d_xz = 9999999.9_wp, &
     684                 skip_time_do2d_yz = 9999999.9_wp, skip_time_do3d = 9999999.9_wp, &
     685                 surface_heatflux = 9999999.9_wp, surface_pressure = 1013.25_wp, &
     686                 surface_scalarflux = 9999999.9_wp, surface_waterflux = 9999999.9_wp, &
     687                 s_surface = 0.0_wp, s_surface_initial_change = 0.0_wp, &
     688                 termination_time_needed = -1.0_wp, time_coupling = 0.0_wp, &
     689                 time_disturb = 0.0_wp, time_dopr = 0.0_wp, time_dopr_av = 0.0_wp, &
     690                 time_dopr_listing = 0.0_wp, time_dopts = 0.0_wp, time_dosp = 0.0_wp, &
     691                 time_dosp_av = 0.0_wp, time_dots = 0.0_wp, time_do2d_xy = 0.0_wp, &
     692                 time_do2d_xz = 0.0_wp, time_do2d_yz = 0.0_wp, time_do3d = 0.0_wp, &
     693                 time_do_av = 0.0_wp, time_do_sla = 0.0_wp, time_dvrp = 0.0_wp, &
     694                 time_restart = 9999999.9_wp, time_run_control = 0.0_wp,&
     695                 time_since_reference_point, top_heatflux = 9999999.9_wp, &
     696                 top_momentumflux_u = 9999999.9_wp, &
     697                 top_momentumflux_v = 9999999.9_wp, top_salinityflux = 9999999.9_wp, &
     698                 ug_surface = 0.0_wp, u_bulk = 0.0_wp, u_gtrans = 0.0_wp, &
     699                 vg_surface = 0.0_wp, vpt_reference = 9999999.9_wp, &
     700                 v_bulk = 0.0_wp, v_gtrans = 0.0_wp, wall_adjustment_factor = 1.8_wp, &
     701                 z_max_do2d = -1.0_wp, z0h_factor = 1.0_wp
     702
     703    REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0_wp, do2d_xz_last_time(0:1) = -1.0_wp, &
     704                 do2d_yz_last_time(0:1) = -1.0_wp, dpdxy(1:2) = 0.0_wp, &
     705                 dt_domask(max_masks) = 9999999.9_wp, lad_vertical_gradient(10) = 0.0_wp,&
     706                 lad_vertical_gradient_level(10) = -9999999.9_wp, &
    709707                 mask_scale(3), &
    710                  pt_vertical_gradient(10) = 0.0, &
    711                  pt_vertical_gradient_level(10) = -9999999.9, &
    712                  q_vertical_gradient(10) = 0.0, &
    713                  q_vertical_gradient_level(10) = -1.0, &
    714                  s_vertical_gradient(10) = 0.0, &
    715                  s_vertical_gradient_level(10) = -1.0, &
    716                  sa_vertical_gradient(10) = 0.0, &
    717                  sa_vertical_gradient_level(10) = -9999999.9, &
    718                  skip_time_domask(max_masks) = 9999999.9, threshold(20) = 0.0, &
    719                  time_domask(max_masks) = 0.0, &
    720                  tsc(10) = (/ 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /), &
    721                  u_profile(100) = 9999999.9, uv_heights(100) = 9999999.9, &
    722                  v_profile(100) = 9999999.9, &
    723                  ug_vertical_gradient(10) = 0.0, &
    724                  ug_vertical_gradient_level(10) = -9999999.9, &
    725                  vg_vertical_gradient(10) = 0.0, &
    726                  vg_vertical_gradient_level(10) = -9999999.9, &
    727                  volume_flow(1:2) = 0.0, volume_flow_area(1:2) = 0.0, &
    728                  volume_flow_initial(1:2) = 0.0, wall_heatflux(0:4) = 0.0, &
    729                  wall_humidityflux(0:4) = 0.0, wall_nrflux(0:4) = 0.0, &
    730                  wall_qflux(0:4) = 0.0, wall_qrflux(0:4) = 0.0, &
    731                  wall_salinityflux(0:4) = 0.0, wall_scalarflux(0:4) = 0.0, &
    732                  subs_vertical_gradient(10) = 0.0, &
    733                  subs_vertical_gradient_level(10) = -9999999.9
     708                 pt_vertical_gradient(10) = 0.0_wp, &
     709                 pt_vertical_gradient_level(10) = -9999999.9_wp, &
     710                 q_vertical_gradient(10) = 0.0_wp, &
     711                 q_vertical_gradient_level(10) = -1.0_wp, &
     712                 s_vertical_gradient(10) = 0.0_wp, &
     713                 s_vertical_gradient_level(10) = -1.0_wp, &
     714                 sa_vertical_gradient(10) = 0.0_wp, &
     715                 sa_vertical_gradient_level(10) = -9999999.9_wp, &
     716                 skip_time_domask(max_masks) = 9999999.9_wp, threshold(20) = 0.0_wp, &
     717                 time_domask(max_masks) = 0.0_wp, &
     718                 tsc(10) = (/ 1.0_wp, 1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp /), &
     719                 u_profile(100) = 9999999.9_wp, uv_heights(100) = 9999999.9_wp, &
     720                 v_profile(100) = 9999999.9_wp, &
     721                 ug_vertical_gradient(10) = 0.0_wp, &
     722                 ug_vertical_gradient_level(10) = -9999999.9_wp, &
     723                 vg_vertical_gradient(10) = 0.0_wp, &
     724                 vg_vertical_gradient_level(10) = -9999999.9_wp, &
     725                 volume_flow(1:2) = 0.0_wp, volume_flow_area(1:2) = 0.0_wp, &
     726                 volume_flow_initial(1:2) = 0.0_wp, wall_heatflux(0:4) = 0.0_wp, &
     727                 wall_humidityflux(0:4) = 0.0_wp, wall_nrflux(0:4) = 0.0_wp, &
     728                 wall_qflux(0:4) = 0.0_wp, wall_qrflux(0:4) = 0.0_wp, &
     729                 wall_salinityflux(0:4) = 0.0_wp, wall_scalarflux(0:4) = 0.0_wp, &
     730                 subs_vertical_gradient(10) = 0.0_wp, &
     731                 subs_vertical_gradient_level(10) = -9999999.9_wp
    734732
    735733    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor
    736734
    737735    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) :: &
    738             mask_x = -1.0, mask_y = -1.0, mask_z = -1.0
     736            mask_x = -1.0_wp, mask_y = -1.0_wp, mask_z = -1.0_wp
    739737    REAL(wp), DIMENSION(max_masks,3) ::                  &
    740             mask_x_loop = -1.0, mask_y_loop = -1.0, mask_z_loop = -1.0
     738            mask_x_loop = -1.0_wp, mask_y_loop = -1.0_wp, mask_z_loop = -1.0_wp
    741739   
    742740!
     
    787785                use_seperate_pe_for_dvrp_output = .FALSE.
    788786
    789     REAL(wp)    ::  clip_dvrp_l = 9999999.9, clip_dvrp_n = 9999999.9, &
    790                     clip_dvrp_r = 9999999.9, clip_dvrp_s = 9999999.9, &
    791                     superelevation = 1.0, superelevation_x = 1.0,     &
    792                     superelevation_y = 1.0, vc_alpha = 38.0
    793 
    794     REAL(wp), DIMENSION(2) ::  color_interval = (/ 0.0, 1.0 /), &
    795                                dvrpsize_interval = (/ 0.0, 1.0 /)
    796 
    797     REAL(wp), DIMENSION(3) ::  groundplate_color = (/ 0.0, 0.6, 0.0 /), &
    798                                topography_color = (/ 0.8, 0.7, 0.6 /)
     787    REAL(wp)    ::  clip_dvrp_l = 9999999.9_wp, clip_dvrp_n = 9999999.9_wp, &
     788                    clip_dvrp_r = 9999999.9_wp, clip_dvrp_s = 9999999.9_wp, &
     789                    superelevation = 1.0_wp, superelevation_x = 1.0_wp,     &
     790                    superelevation_y = 1.0_wp, vc_alpha = 38.0_wp
     791
     792    REAL(wp), DIMENSION(2) ::  color_interval = (/ 0.0_wp, 1.0_wp /), &
     793                               dvrpsize_interval = (/ 0.0_wp, 1.0_wp /)
     794
     795    REAL(wp), DIMENSION(3) ::  groundplate_color = (/ 0.0_wp, 0.6_wp, 0.0_wp /), &
     796                               topography_color = (/ 0.8_wp, 0.7_wp, 0.6_wp /)
    799797
    800798#if defined( __decalpha )
    801799    REAL(wp), DIMENSION(2,10)  ::  slicer_range_limits_dvrp = RESHAPE( (/      &
    802                                    -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
    803                                    -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
    804                                    -1.0, 1.0, -1.0, 1.0 /), (/ 2, 10 /) )
     800                                   -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     801                                   -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     802                                   -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp /), (/ 2, 10 /) )
    805803
    806804    REAL(wp), DIMENSION(3,10)  ::  isosurface_color = RESHAPE( (/                 &
    807                                    0.9, 0.9, 0.9,  0.8, 0.1, 0.1,  0.1, 0.1, 0.8, &
    808                                    0.1, 0.8, 0.1,  0.6, 0.1, 0.1,  0.1, 0.1, 0.6, &
    809                                    0.1, 0.6, 0.1,  0.4, 0.1, 0.1,  0.1, 0.1, 0.4, &
    810                                    0.1, 0.4, 0.1 /), (/ 3, 10 /) )
     805                                   0.9_wp, 0.9_wp, 0.9_wp,  0.8_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.8_wp, &
     806                                   0.1_wp, 0.8_wp, 0.1_wp,  0.6_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.6_wp, &
     807                                   0.1_wp, 0.6_wp, 0.1_wp,  0.4_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.4_wp, &
     808                                   0.1_wp, 0.4_wp, 0.1_wp /), (/ 3, 10 /) )
    811809
    812810    REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp, interval_h_dvrp =      &
    813                                    RESHAPE( (/ 270.0, 225.0, 225.0, 180.0,      &
    814                                                 70.0,  25.0,  25.0, -25.0,      &
    815                                                ( 0.0, i9 = 1, 192 ) /),         &
     811                                   RESHAPE( (/ 270.0_sp, 225.0_sp, 225.0_sp, 180.0_sp,      &
     812                                                70.0_sp,  25.0_sp,  25.0_sp, -25.0_sp,      &
     813                                               ( 0.0_sp, i9 = 1, 192 ) /),         &
    816814                                            (/ 2, 100 /) ),                     &
    817                                    interval_l_dvrp = 0.5, interval_s_dvrp = 1.0,&
    818                                    interval_a_dvrp = 0.0,                       &
     815                                   interval_l_dvrp = 0.5_sp, interval_s_dvrp = 1.0_sp,&
     816                                   interval_a_dvrp = 0.0_sp,                       &
    819817                                   interval_values_dvrp_prt,                    &
    820818                                   interval_h_dvrp_prt = RESHAPE(               &
    821                                    (/ 270.0, 225.0, 225.0, 180.0, 70.0, 25.0,   &
    822                                       25.0, -25.0, ( 0.0, i9 = 1, 192 ) /),     &
     819                                   (/ 270.0_sp, 225.0_sp, 225.0_sp, 180.0_sp, 70.0_sp, 25.0_sp,   &
     820                                      25.0_sp, -25.0_sp, ( 0.0_sp, i9 = 1, 192 ) /),     &
    823821                                                   (/ 2, 100 /) ),              &
    824                                    interval_l_dvrp_prt = 0.5,                   &
    825                                    interval_s_dvrp_prt = 1.0,                   &
    826                                    interval_a_dvrp_prt = 0.0
     822                                   interval_l_dvrp_prt = 0.5_sp,                   &
     823                                   interval_s_dvrp_prt = 1.0_sp,                   &
     824                                   interval_a_dvrp_prt = 0.0_sp
    827825#else
    828826    REAL(wp), DIMENSION(2,10)     ::  slicer_range_limits_dvrp
     
    832830    REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp,                       &
    833831                                   interval_values_dvrp_prt, interval_h_dvrp,  &
    834                                    interval_h_dvrp_prt, interval_l_dvrp = 0.5, &
    835                                    interval_l_dvrp_prt = 0.5, interval_s_dvrp = 1.0, &
    836                                    interval_s_dvrp_prt = 1.0, interval_a_dvrp = 0.0, &
    837                                    interval_a_dvrp_prt = 0.0
    838 
    839     DATA  slicer_range_limits_dvrp / -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
    840                                      -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
    841                                      -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
    842                                      -1.0, 1.0 /
    843 
    844     DATA  isosurface_color / 0.9, 0.9, 0.9,  0.8, 0.1, 0.1,  0.1, 0.1, 0.8, &
    845                              0.1, 0.8, 0.1,  0.6, 0.1, 0.1,  0.1, 0.1, 0.6, &
    846                              0.1, 0.6, 0.1,  0.4, 0.1, 0.1,  0.1, 0.1, 0.4, &
    847                              0.1, 0.4, 0.1 /
    848 
    849     DATA  interval_h_dvrp / 270.0, 225.0, 225.0, 180.0, 70.0, 25.0, &
    850                             25.0, -25.0, 192 * 0.0 /
    851 
    852     DATA  interval_h_dvrp_prt / 270.0, 225.0, 225.0, 180.0, 70.0, 25.0, &
    853                                 25.0, -25.0, 192 * 0.0 /
     832                                   interval_h_dvrp_prt, interval_l_dvrp = 0.5_sp, &
     833                                   interval_l_dvrp_prt = 0.5_sp, interval_s_dvrp = 1.0_sp, &
     834                                   interval_s_dvrp_prt = 1.0_sp, interval_a_dvrp = 0.0_sp, &
     835                                   interval_a_dvrp_prt = 0.0_sp
     836
     837    DATA  slicer_range_limits_dvrp / -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     838                                     -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     839                                     -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     840                                     -1.0_wp, 1.0_wp /
     841
     842    DATA  isosurface_color / 0.9_wp, 0.9_wp, 0.9_wp,  0.8_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.8_wp, &
     843                             0.1_wp, 0.8_wp, 0.1_wp,  0.6_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.6_wp, &
     844                             0.1_wp, 0.6_wp, 0.1_wp,  0.4_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.4_wp, &
     845                             0.1_wp, 0.4_wp, 0.1_wp /
     846
     847    DATA  interval_h_dvrp / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &
     848                            25.0_wp, -25.0_wp, 192 * 0.0_wp /
     849
     850    DATA  interval_h_dvrp_prt / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &
     851                                25.0_wp, -25.0_wp, 192 * 0.0_wp /
    854852#endif
    855853
     
    10241022    LOGICAL ::  run_control_header_1d = .FALSE., stop_dt_1d = .FALSE.
    10251023
    1026     REAL(wp) ::     damp_level_1d = -1.0, dt_1d = 60.0, dt_max_1d = 300.0, &
    1027                     dt_pr_1d = 9999999.9, dt_run_control_1d = 60.0, &
    1028                     end_time_1d = 864000.0, old_dt_1d = 1.0E-10, &
    1029                     qs1d, simulated_time_1d = 0.0, time_pr_1d = 0.0, &
    1030                     time_run_control_1d = 0.0, ts1d, us1d, usws1d, &
     1024    REAL(wp) ::     damp_level_1d = -1.0_wp, dt_1d = 60.0_wp, dt_max_1d = 300.0_wp, &
     1025                    dt_pr_1d = 9999999.9_wp, dt_run_control_1d = 60.0_wp, &
     1026                    end_time_1d = 864000.0_wp, old_dt_1d = 1.0E-10_wp, &
     1027                    qs1d, simulated_time_1d = 0.0_wp, time_pr_1d = 0.0_wp, &
     1028                    time_run_control_1d = 0.0_wp, ts1d, us1d, usws1d, &
    10311029                    vsws1d, z01d, z0h1d
    10321030
     
    12331231    LOGICAL, DIMENSION(:), ALLOCATABLE ::  particle_mask, tail_mask
    12341232
    1235     REAL(wp)    ::  c_0 = 3.0, dt_min_part = 0.0002, dt_prel = 9999999.9,          &
    1236                     dt_sort_particles = 0.0, dt_write_particle_data = 9999999.9,   &
    1237                     dvrp_psize = 9999999.9, end_time_prel = 9999999.9,             &
    1238                     initial_weighting_factor = 1.0,                                &
    1239                     maximum_tailpoint_age = 100000.0,                              &
    1240                     minimum_tailpoint_distance = 0.0,                              &
    1241                     particle_advection_start = 0.0, sgs_wfu_part = 0.3333333,      &
    1242                     sgs_wfv_part = 0.3333333, sgs_wfw_part = 0.3333333,            &
    1243                     time_prel = 0.0, time_sort_particles = 0.0,                    &
    1244                     time_write_particle_data = 0.0, z0_av_global
     1233    REAL(wp)    ::  c_0 = 3.0_wp, dt_min_part = 0.0002_wp, dt_prel = 9999999.9_wp,          &
     1234                    dt_sort_particles = 0.0_wp, dt_write_particle_data = 9999999.9_wp,   &
     1235                    dvrp_psize = 9999999.9_wp, end_time_prel = 9999999.9_wp,             &
     1236                    initial_weighting_factor = 1.0_wp,                                &
     1237                    maximum_tailpoint_age = 100000.0_wp,                              &
     1238                    minimum_tailpoint_distance = 0.0_wp,                              &
     1239                    particle_advection_start = 0.0_wp, sgs_wfu_part = 0.3333333_wp,      &
     1240                    sgs_wfv_part = 0.3333333_wp, sgs_wfw_part = 0.3333333_wp,            &
     1241                    time_prel = 0.0_wp, time_sort_particles = 0.0_wp,                    &
     1242                    time_write_particle_data = 0.0_wp, z0_av_global
    12451243
    12461244    REAL(wp), DIMENSION(max_number_of_particle_groups) ::  &
    1247                     density_ratio = 9999999.9, pdx = 9999999.9, pdy = 9999999.9, &
    1248                     pdz = 9999999.9, psb = 9999999.9, psl = 9999999.9,           &
    1249                     psn = 9999999.9, psr = 9999999.9, pss = 9999999.9,           &
    1250                     pst = 9999999.9, radius = 9999999.9
     1245                    density_ratio = 9999999.9_wp, pdx = 9999999.9_wp, pdy = 9999999.9_wp, &
     1246                    pdz = 9999999.9_wp, psb = 9999999.9_wp, psl = 9999999.9_wp,           &
     1247                    psn = 9999999.9_wp, psr = 9999999.9_wp, pss = 9999999.9_wp,           &
     1248                    pst = 9999999.9_wp, radius = 9999999.9_wp
    12511249
    12521250    REAL(wp), DIMENSION(:), ALLOCATABLE     ::  log_z_z0
     
    13931391
    13941392    REAL(wp) ::  cross_ts_uymax(20) = &
    1395                              (/ 999.999, 999.999, 999.999, 999.999, 999.999,   &
    1396                                 999.999, 999.999, 999.999, 999.999, 999.999,   &
    1397                                 999.999, 999.999, 999.999, 999.999, 999.999,   &
    1398                                 999.999, 999.999, 999.999, 999.999, 999.999 /),&
    1399                  cross_ts_uymax_computed(20) = 999.999, &
     1393                             (/ 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
     1394                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
     1395                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
     1396                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /),&
     1397                 cross_ts_uymax_computed(20) = 999.999_wp, &
    14001398                 cross_ts_uymin(20) = &
    1401                              (/ 999.999, 999.999, 999.999,  -5.000, 999.999,   &
    1402                                 999.999,   0.000, 999.999, 999.999, 999.999,   &
    1403                                 999.999, 999.999, 999.999, 999.999, 999.999,   &
    1404                                 999.999, 999.999, 999.999, 999.999, 999.999 /),&
    1405                  cross_ts_uymin_computed(20) = 999.999
     1399                             (/ 999.999_wp, 999.999_wp, 999.999_wp,  -5.000_wp, 999.999_wp,   &
     1400                                999.999_wp,   0.000_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
     1401                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
     1402                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /),&
     1403                 cross_ts_uymin_computed(20) = 999.999_wp
    14061404
    14071405    SAVE
     
    14541452                     plot_spectra_level(100) = 999999
    14551453
    1456     REAL(wp)    ::  time_to_start_sp = 0.0
     1454    REAL(wp)    ::  time_to_start_sp = 0.0_wp
    14571455
    14581456    SAVE
  • palm/trunk/SOURCE/parin.f90

    r1321 r1327  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! -data_output_format, do3d_compress, do3d_comp_prec
    2323!
    2424! Former revisions:
     
    145145               conserve_volume_flow, conserve_volume_flow_mode,                &
    146146               coupling_start_time, create_disturbances, cthf, cycle_mg,       &
    147                data_output, data_output_format, data_output_masks,             &
     147               data_output, data_output_masks,                                 &
    148148               data_output_pr, data_output_2d_on_each_pe,                      &
    149149               disturbance_amplitude, disturbance_energy_limit,                &
    150150               disturbance_level_b, disturbance_level_t, dissipation_1d,       &
    151                do2d_at_begin, do3d_at_begin, do3d_compress, do3d_comp_prec,    &
     151               do2d_at_begin, do3d_at_begin,                                   &
    152152               dp_external, dp_level_b, dp_smooth, dpdxy, drag_coefficient,    &
    153153               drizzle, dt, dz, dt_averaging_input, dt_averaging_input_pr,     &
     
    292292             cpu_log_barrierwait, create_disturbances, &
    293293             cross_profiles, cross_ts_uymax, cross_ts_uymin, &
    294              data_output, data_output_format, data_output_masks, &
     294             data_output, data_output_masks,                                  &
    295295             data_output_pr, data_output_2d_on_each_pe, disturbance_amplitude, &
    296296             disturbance_energy_limit, disturbance_level_b, &
    297              disturbance_level_t, do2d_at_begin, do3d_at_begin, do3d_compress, &
    298              do3d_comp_prec, dt, dt_averaging_input, dt_averaging_input_pr, &
     297             disturbance_level_t, do2d_at_begin, do3d_at_begin,               &
     298             dt, dt_averaging_input, dt_averaging_input_pr, &
    299299             dt_coupling, dt_data_output, dt_data_output_av, dt_disturb, &
    300300             dt_domask, dt_dopr, dt_dopr_listing, dt_dots, dt_do2d_xy, &
Note: See TracChangeset for help on using the changeset viewer.