Changeset 1327 for palm/trunk
- Timestamp:
- Mar 21, 2014 11:00:16 AM (11 years ago)
- Location:
- palm/trunk
- Files:
-
- 1 added
- 2 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/.mrun.config.hlrnIII
r1308 r1327 39 39 %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 40 40 %mopts -j:4 lccrayb parallel 41 %fopts -em:- s:real64:-O3:-hnoomp:-hfp3:-hdynamic lccrayb parallel42 %lopts -em:- s:real64:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayb parallel41 %fopts -em:-O3:-hnoomp:-hfp3:-hdynamic lccrayb parallel 42 %lopts -em:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayb parallel 43 43 %remote_username <replace by your HLRN-III username> lccrayb parallel 44 44 %memory 1500 lccrayb parallel … … 52 52 %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 53 53 %mopts -j:4 lccrayh parallel 54 %fopts -em:- s:real64:-O3:-hnoomp:-hfp3:-hdynamic lccrayh parallel55 %lopts -em:- s:real64:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayh parallel54 %fopts -em:-O3:-hnoomp:-hfp3:-hdynamic lccrayh parallel 55 %lopts -em:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayh parallel 56 56 %remote_username <replace by your HLRN-III username> lccrayh parallel 57 57 %memory 1500 lccrayh parallel -
palm/trunk/SCRIPTS/.mrun.config.imuk
r1241 r1327 27 27 %netcdf_lib -L/muksoft/packages/netcdf/3.6.3/lib:-lnetcdf lcmuk 28 28 %mopts -j:4 lcmuk 29 %fopts -fltconsistency:-O3:-cpp:- r8:-nbs:-convert:little_endian:-diag-disable:8290,8291 lcmuk30 %lopts -fltconsistency:-O3:-cpp:- r8:-nbs:-lmf:-lm:-Vaxlib lcmuk29 %fopts -fltconsistency:-O3:-cpp:-nbs:-convert:little_endian:-diag-disable:8290,8291 lcmuk 30 %lopts -fltconsistency:-O3:-cpp:-nbs:-lmf:-lm:-Vaxlib lcmuk 31 31 # 32 32 # version 03/02/2013 … … 39 39 %netcdf_lib -L/muksoft/packages/netcdf/3.6.3/lib:-lnetcdf lcmuk parallel 40 40 %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 parallel42 %lopts -O3:-cpp:- r8:-fp-model:precise:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib lcmuk parallel41 %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 43 43 #%hostfile $base_directory/.hostfile lcmuk parallel 44 44 # … … 51 51 %netcdf_inc -I:/muksoft/packages/netcdf/3.6.3/include lcmuk parallel trace 52 52 %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 trace54 %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 trace53 %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 55 55 56 56 %write_binary true restart -
palm/trunk/SOURCE/check_open.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! parts concerning iso2d and avs output removed 23 23 ! 24 24 ! Former revisions: … … 76 76 77 77 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, & 80 79 message_string, mid, netcdf_data_format, nz_do3d, openfile, & 81 80 return_addres, return_username, run_description_header, runnr … … 231 230 ENDIF 232 231 233 CASE ( 27, 28, 29, 31, 3 2, 33, 71:73, 90:99 )232 CASE ( 27, 28, 29, 31, 33, 71:73, 90:99 ) 234 233 235 234 ! … … 372 371 DEALLOCATE( eta, ho, hu ) 373 372 374 !375 !-- Create output file for local parameters376 IF ( iso2d_output ) THEN377 OPEN ( 27, FILE='PLOT2D_XY_LOCAL'//coupling_char, &378 FORM='FORMATTED', DELIM='APOSTROPHE' )379 openfile(27)%opened = .TRUE.380 ENDIF381 382 373 ENDIF 383 374 … … 400 391 ENDIF 401 392 ! 402 !-- Determine and write ISO2D coordi ante header393 !-- Determine and write ISO2D coordinate header 403 394 ALLOCATE( eta(0:nz+1), ho(0:nx+1), hu(0:nx+1) ) 404 395 hu = 0.0 … … 412 403 WRITE (22) dx,eta,hu,ho 413 404 DEALLOCATE( eta, ho, hu ) 414 !415 !-- Create output file for local parameters416 OPEN ( 28, FILE='PLOT2D_XZ_LOCAL'//coupling_char, &417 FORM='FORMATTED', DELIM='APOSTROPHE' )418 openfile(28)%opened = .TRUE.419 405 420 406 ENDIF … … 450 436 WRITE (23) dx,eta,hu,ho 451 437 DEALLOCATE( eta, ho, hu ) 452 !453 !-- Create output file for local parameters454 OPEN ( 29, FILE='PLOT2D_YZ_LOCAL'//coupling_char, &455 FORM='FORMATTED', DELIM='APOSTROPHE' )456 openfile(29)%opened = .TRUE.457 438 458 439 ENDIF … … 468 449 ! 469 450 !-- 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 474 453 #endif 475 !476 !-- Write coordinate file for AVS:477 !-- First determine file names (including cyle numbers) of AVS files on478 !-- target machine (to which the files are to be transferred).479 !-- Therefore path information has to be obtained first.480 IF ( avs_output ) THEN481 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 ) line489 490 SELECT CASE ( line(1:11) )491 492 CASE ( 'PLOT3D_COOR' )493 READ ( 3, '(A/A)' ) avs_coor_file_catalog, &494 avs_coor_file_localname495 avs_coor_file_found = .TRUE.496 497 CASE ( 'PLOT3D_DATA' )498 READ ( 3, '(A/A)' ) avs_data_file_catalog, &499 avs_data_file_localname500 avs_data_file_found = .TRUE.501 502 CASE DEFAULT503 READ ( 3, '(A/A)' ) line, line504 505 END SELECT506 507 ENDDO508 !509 !-- Now the cycle numbers on the remote machine must be obtained510 !-- using batch_scp511 1 CLOSE ( 3 )512 IF ( .NOT. avs_coor_file_found .OR. &513 .NOT. avs_data_file_found ) THEN514 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 ELSE522 get_filenames = .TRUE.523 IF ( TRIM( host ) == 'hpmuk' .OR. &524 TRIM( host ) == 'lcmuk' ) THEN525 batch_scp = '/home/raasch/pub/batch_scp'526 ELSEIF ( TRIM( host ) == 'nech' ) THEN527 batch_scp = '/ipf/b/b323011/pub/batch_scp'528 ELSEIF ( TRIM( host ) == 'ibmh' .OR. &529 TRIM( host ) == 'ibmb' ) THEN530 batch_scp = '/home/h/niksiraa/pub/batch_scp'531 ELSEIF ( TRIM( host ) == 't3eb' ) THEN532 batch_scp = '/home/nhbksira/pub/batch_scp'533 ELSE534 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 ENDIF539 540 IF ( get_filenames ) THEN541 !542 !-- Determine the coordinate file name.543 !-- /etc/passwd serves as Dummy-Datei, because it is not544 !-- 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_file554 CLOSE ( 3 )555 !556 !-- Determine the data file name557 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_file566 CLOSE ( 3 )567 568 ELSE569 570 avs_coor_file = 'unknown'571 avs_data_file = 'unknown'572 573 ENDIF574 575 ENDIF576 577 !578 !-- Output of the coordinate file description for FLD-file579 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)*4584 585 586 ALLOCATE( xkoor(0:nx+1), ykoor(0:ny+1), zkoor(0:nz_do3d) )587 DO i = 0, nx+1588 xkoor(i) = i * dx589 ENDDO590 DO j = 0, ny+1591 ykoor(j) = j * dy592 ENDDO593 DO k = 0, nz_do3d594 zkoor(k) = zu(k)595 ENDDO596 597 !598 !-- Create and write on AVS coordinate file599 OPEN ( 31, FILE='PLOT3D_COOR', FORM='UNFORMATTED' )600 openfile(31)%opened = .TRUE.601 602 WRITE (31) xkoor, ykoor, zkoor603 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 mrun613 IF ( do3d_compress ) THEN614 OPEN ( 3, FILE='PLOT3D_COMPRESSED', FORM='FORMATTED' )615 WRITE ( 3, '(1X)' )616 CLOSE ( 3 )617 ENDIF618 619 ENDIF620 621 ENDIF622 623 !624 !-- In case of data compression output of the coordinates of the625 !-- corresponding partial array of a PE only once at the top of the file626 IF ( avs_output .AND. do3d_compress ) THEN627 WRITE ( 30 ) nxlg, nxrg, nysg, nyng, nzb, nz_do3d628 454 ENDIF 629 455 -
palm/trunk/SOURCE/check_parameters.f90
r1323 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 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 23 25 ! 24 26 ! Former revisions: … … 1309 1311 !-- Ocean version must use flux boundary conditions at the top 1310 1312 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' 1312 1314 CALL message( 'check_parameters', 'PA0042', 1, 2, 0, 6, 0 ) 1313 1315 ENDIF … … 1381 1383 ( ug_vertical_gradient_level(1) /= 0.0 .OR. & 1382 1384 ug_vertical_gradient(1) /= 0.0 ) ) THEN 1383 message_string = 'baroclini city (ug) not allowed simultaneously' // &1385 message_string = 'baroclinity (ug) not allowed simultaneously' // & 1384 1386 ' with galilei transformation' 1385 1387 CALL message( 'check_parameters', 'PA0046', 1, 2, 0, 6, 0 ) … … 1387 1389 ( vg_vertical_gradient_level(1) /= 0.0 .OR. & 1388 1390 vg_vertical_gradient(1) /= 0.0 ) ) THEN 1389 message_string = 'baroclini city (vg) not allowed simultaneously' // &1391 message_string = 'baroclinity (vg) not allowed simultaneously' // & 1390 1392 ' with galilei transformation' 1391 1393 CALL message( 'check_parameters', 'PA0047', 1, 2, 0, 6, 0 ) … … 1463 1465 ELSEIF ( bc_e_b == '(u*)**2+neumann' ) THEN 1464 1466 ibc_e_b = 2 1465 IF ( prandtl_layer ) THEN1466 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 ENDIF1470 1467 IF ( .NOT. prandtl_layer ) THEN 1471 1468 bc_e_b = 'neumann' … … 3011 3008 3012 3009 ! 3013 !-- Determine and check accuracy for compressed 3D plot output3014 IF ( do3d_compress ) THEN3015 !3016 !-- Compression only permissible on T3E machines3017 IF ( host(1:3) /= 't3e' ) THEN3018 message_string = 'do3d_compress = .TRUE. not allowed on host "' // &3019 TRIM( host ) // '"'3020 CALL message( 'check_parameters', 'PA0117', 1, 2, 0, 6, 0 )3021 ENDIF3022 3023 i = 13024 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' ) ) THEN3029 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 ENDIF3033 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 = 13041 CASE ( 'v' )3042 j = 23043 CASE ( 'w' )3044 j = 33045 CASE ( 'p' )3046 j = 43047 CASE ( 'pt' )3048 j = 53049 3050 CASE DEFAULT3051 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 SELECT3057 3058 plot_3d_precision(j)%precision = prec3059 i = i + 13060 3061 ENDDO3062 ENDIF3063 3064 !3065 !-- Check the data output format(s)3066 IF ( data_output_format(1) == ' ' ) THEN3067 !3068 !-- Default value3069 netcdf_output = .TRUE.3070 ELSE3071 i = 13072 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 DEFAULT3084 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 SELECT3089 3090 i = i + 13091 IF ( i > 10 ) EXIT3092 3093 ENDDO3094 ENDIF3095 3096 !3097 3010 !-- 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 3117 3026 3118 3027 #if defined( __spectra ) … … 3203 3112 ! 3204 3113 !-- Calculate fixed number of output time levels for parallel netcdf output. 3205 !-- The time dimension has to be limited for paralell output, otherwise the3206 !-- performance drops significantly.3207 IF ( netcdf_ output) THEN3208 IF ( netcdf_data_format > 4 ) THEN 3209 ntdim_3d(0)= INT( ( end_time - skip_time_do3d ) / dt_do3d )3210 3211 ntdim_3d(1)= INT( ( end_time - skip_time_data_output_av ) &3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 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 3225 3134 ENDIF 3226 3135 -
palm/trunk/SOURCE/close_file.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! parts concerning iso2d and avs output removed 23 23 ! 24 24 ! Former revisions: … … 58 58 59 59 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 n etcdf_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, & 63 63 z_max_do2d 64 64 … … 120 120 SELECT CASE ( fid ) 121 121 122 CASE ( 21 )123 !124 !-- Write ISO2D global parameters125 IF ( myid == 0 .AND. iso2d_output ) THEN126 planz = do2d_xy_n127 dimx = nx + 2128 dimy = ny + 2129 sizex = 100.0130 sizey = 100.0131 title = run_description_header132 yright = ( ny + 1.0 ) * dy133 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 't3e' ) THEN134 checkuf = .FALSE.; dbp = .TRUE.135 ENDIF136 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 'nec' ) THEN137 datform = 'big_endian'138 ENDIF139 OPEN ( 90, FILE='PLOT2D_XY_GLOBAL', FORM='FORMATTED', &140 DELIM='APOSTROPHE' )141 WRITE ( 90, GLOBAL )142 CLOSE ( 90 )143 ENDIF144 145 CASE ( 22 )146 !147 !-- Write ISO2D global parameters148 IF ( myid == 0 ) THEN149 planz = do2d_xz_n150 dimx = nx + 2151 dimy = nz + 2152 sizex = 100.0153 sizey = 65.0154 title = run_description_header155 yright = z_max_do2d156 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 't3e' ) THEN157 checkuf = .FALSE.; dbp = .TRUE.158 ENDIF159 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 'nec' ) THEN160 datform = 'big_endian'161 ENDIF162 OPEN ( 90, FILE='PLOT2D_XZ_GLOBAL', FORM='FORMATTED', &163 DELIM='APOSTROPHE' )164 WRITE ( 90, GLOBAL )165 CLOSE ( 90 )166 ENDIF167 168 CASE ( 23 )169 !170 !-- Write ISO2D global parameters171 IF ( myid == 0 ) THEN172 planz = do2d_yz_n173 dimx = ny + 2174 dimy = nz + 2175 sizex = 100.0176 sizey = 65.0177 title = run_description_header178 yright = z_max_do2d179 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 't3e' ) THEN180 checkuf = .FALSE.; dbp = .TRUE.181 ENDIF182 IF ( host(1:3) == 'ibm' .OR. host(1:3) == 'nec' ) THEN183 datform = 'big_endian'184 ENDIF185 OPEN ( 90, FILE='PLOT2D_YZ_GLOBAL', FORM='FORMATTED', &186 DELIM='APOSTROPHE' )187 WRITE ( 90, GLOBAL )188 CLOSE ( 90 )189 ENDIF190 191 CASE ( 32 )192 !193 !-- Write header for FLD-file194 IF ( do3d_compress ) THEN195 WRITE ( 32, 3200) ' compressed ', &196 TRIM( run_description_header ), nx+2, &197 ny+2, nz_do3d+1, do3d_avs_n198 ELSE199 WRITE ( 32, 3200) ' ', TRIM( run_description_header ), &200 nx+2, ny+2, nz_do3d+1, do3d_avs_n201 ENDIF202 203 122 #if defined( __netcdf ) 204 123 CASE ( 101 ) 205 124 206 IF ( netcdf_output .AND. & 207 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 125 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 208 126 nc_stat = NF90_CLOSE( id_set_xy(0) ) 209 127 CALL handle_netcdf_error( 'close_file', 44 ) … … 212 130 CASE ( 102 ) 213 131 214 IF ( netcdf_output .AND. & 215 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 132 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 216 133 nc_stat = NF90_CLOSE( id_set_xz(0) ) 217 134 CALL handle_netcdf_error( 'close_file', 45 ) … … 220 137 CASE ( 103 ) 221 138 222 IF ( netcdf_output .AND. & 223 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 139 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 224 140 nc_stat = NF90_CLOSE( id_set_yz(0) ) 225 141 CALL handle_netcdf_error( 'close_file', 46 ) … … 228 144 CASE ( 104 ) 229 145 230 IF ( myid == 0 .AND. netcdf_output) THEN146 IF ( myid == 0 ) THEN 231 147 nc_stat = NF90_CLOSE( id_set_pr ) 232 148 CALL handle_netcdf_error( 'close_file', 47 ) … … 235 151 CASE ( 105 ) 236 152 237 IF ( myid == 0 .AND. netcdf_output) THEN153 IF ( myid == 0 ) THEN 238 154 nc_stat = NF90_CLOSE( id_set_ts ) 239 155 CALL handle_netcdf_error( 'close_file', 48 ) … … 242 158 CASE ( 106 ) 243 159 244 IF ( netcdf_output .AND. & 245 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 160 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 246 161 nc_stat = NF90_CLOSE( id_set_3d(0) ) 247 162 CALL handle_netcdf_error( 'close_file', 49 ) … … 250 165 CASE ( 107 ) 251 166 252 IF ( myid == 0 .AND. netcdf_output) THEN167 IF ( myid == 0 ) THEN 253 168 nc_stat = NF90_CLOSE( id_set_sp ) 254 169 CALL handle_netcdf_error( 'close_file', 50 ) … … 257 172 CASE ( 108 ) 258 173 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 ) 263 176 264 177 CASE ( 109 ) 265 178 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 ) 270 181 271 182 CASE ( 111 ) 272 183 273 IF ( netcdf_output .AND. & 274 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 184 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 275 185 nc_stat = NF90_CLOSE( id_set_xy(1) ) 276 186 CALL handle_netcdf_error( 'close_file', 52 ) … … 279 189 CASE ( 112 ) 280 190 281 IF ( netcdf_output .AND. & 282 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 191 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 283 192 nc_stat = NF90_CLOSE( id_set_xz(1) ) 284 193 CALL handle_netcdf_error( 'close_file', 352 ) … … 287 196 CASE ( 113 ) 288 197 289 IF ( netcdf_output .AND. & 290 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 198 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 291 199 nc_stat = NF90_CLOSE( id_set_yz(1) ) 292 200 CALL handle_netcdf_error( 'close_file', 353 ) … … 295 203 CASE ( 116 ) 296 204 297 IF ( netcdf_output .AND. & 298 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 205 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 299 206 nc_stat = NF90_CLOSE( id_set_3d(1) ) 300 207 CALL handle_netcdf_error( 'close_file', 353 ) … … 303 210 CASE ( 201:200+2*max_masks ) 304 211 305 IF ( netcdf_output .AND. & 306 ( myid == 0 .OR. netcdf_data_format > 4 ) ) THEN 212 IF ( myid == 0 .OR. netcdf_data_format > 4 ) THEN 307 213 ! 308 214 !-- decompose fid into mid and av -
palm/trunk/SOURCE/data_output_2d.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! parts concerning iso2d output removed, 23 ! -netcdf output queries 23 24 ! 24 25 ! Former revisions: … … 101 102 do2d_xz_last_time, do2d_xz_n, do2d_xz_time_count, & 102 103 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, & 105 106 ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz, psolver, section, & 106 107 simulated_time, simulated_time_chr, time_since_reference_point … … 236 237 ! 237 238 !-- 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 240 240 CALL check_open( 101+av*10 ) 241 241 ENDIF … … 245 245 ELSE 246 246 IF ( myid == 0 ) THEN 247 IF ( iso2d_output ) CALL check_open( 21 )248 247 #if defined( __parallel ) 249 248 ALLOCATE( total_2d(-nbgp:nx+nbgp,-nbgp:ny+nbgp) ) … … 269 268 ! 270 269 !-- 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 273 271 CALL check_open( 102+av*10 ) 274 272 ENDIF … … 278 276 ELSE 279 277 IF ( myid == 0 ) THEN 280 IF ( iso2d_output ) CALL check_open( 22 )281 278 #if defined( __parallel ) 282 279 ALLOCATE( total_2d(-nbgp:nx+nbgp,nzb:nzt+1) ) … … 302 299 ! 303 300 !-- 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 306 302 CALL check_open( 103+av*10 ) 307 303 ENDIF … … 311 307 ELSE 312 308 IF ( myid == 0 ) THEN 313 IF ( iso2d_output ) CALL check_open( 23 )314 309 #if defined( __parallel ) 315 310 ALLOCATE( total_2d(-nbgp:ny+nbgp,nzb:nzt+1) ) … … 882 877 do2d_xy_last_time(av) = simulated_time 883 878 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 ) & 886 881 THEN 887 882 #if defined( __netcdf ) … … 921 916 922 917 #if defined( __parallel ) 923 IF ( netcdf_ output .AND. netcdf_data_format > 4 ) THEN918 IF ( netcdf_data_format > 4 ) THEN 924 919 ! 925 920 !-- Parallel output in netCDF4/HDF5 format. … … 947 942 !-- Output of partial arrays on each PE 948 943 #if defined( __netcdf ) 949 IF ( netcdf_output .AND.myid == 0 ) THEN944 IF ( myid == 0 ) THEN 950 945 WRITE ( 21 ) time_since_reference_point, & 951 946 do2d_xy_time_count(av), av … … 994 989 ENDDO 995 990 ! 996 !-- Output of the total cross-section.997 IF ( iso2d_output ) THEN998 WRITE (21) total_2d(-nbgp:nx+nbgp,-nbgp:ny+nbgp)999 ENDIF1000 !1001 991 !-- Relocate the local array for the next loop increment 1002 992 DEALLOCATE( local_2d ) … … 1004 994 1005 995 #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 /) ) 1021 1008 ENDIF 1009 CALL handle_netcdf_error( 'data_output_2d', 54 ) 1022 1010 #endif 1023 1011 … … 1043 1031 ENDIF 1044 1032 #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 /) ) 1047 1046 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 ) 1065 1048 #endif 1066 1049 #endif 1067 1050 do2d_xy_n = do2d_xy_n + 1 1068 !1069 !-- Write LOCAL parameter set for ISO2D.1070 IF ( myid == 0 .AND. iso2d_output ) THEN1071 IF ( section(is,s) /= -1 ) THEN1072 WRITE ( section_chr, '(''z = '',F7.2,'' m (GP '',I3, &1073 &'')'')' &1074 ) level_z(layer_xy), layer_xy1075 ELSE1076 section_chr = 'averaged along z'1077 ENDIF1078 IF ( av == 0 ) THEN1079 rtext = TRIM( do2d(av,if) ) // ' t = ' // &1080 TRIM( simulated_time_chr ) // ' ' // &1081 TRIM( section_chr )1082 ELSE1083 rtext = TRIM( do2d(av,if) ) // ' averaged t = ' // &1084 TRIM( simulated_time_chr ) // ' ' // &1085 TRIM( section_chr )1086 ENDIF1087 WRITE (27,LOCAL)1088 ENDIF1089 1051 ! 1090 1052 !-- For 2D-arrays (e.g. u*) only one cross-section is available. … … 1104 1066 do2d_xz_last_time(av) = simulated_time 1105 1067 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 ) & 1108 1070 THEN 1109 1071 #if defined( __netcdf ) … … 1162 1124 1163 1125 #if defined( __parallel ) 1164 IF ( netcdf_ output .AND. netcdf_data_format > 4 ) THEN1126 IF ( netcdf_data_format > 4 ) THEN 1165 1127 ! 1166 1128 !-- Output in netCDF4/HDF5 format. … … 1192 1154 !-- index values. 1193 1155 #if defined( __netcdf ) 1194 IF ( netcdf_output .AND.myid == 0 ) THEN1156 IF ( myid == 0 ) THEN 1195 1157 WRITE ( 22 ) time_since_reference_point, & 1196 1158 do2d_xz_time_count(av), av … … 1258 1220 ENDDO 1259 1221 ! 1260 !-- Output of the total cross-section.1261 IF ( iso2d_output ) THEN1262 WRITE (22) total_2d(-nbgp:nx+nbgp,nzb:nzt+1)1263 ENDIF1264 !1265 1222 !-- Relocate the local array for the next loop increment 1266 1223 DEALLOCATE( local_2d ) … … 1268 1225 1269 1226 #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 ) 1278 1233 #endif 1279 1234 … … 1310 1265 ENDIF 1311 1266 #else 1312 IF ( iso2d_output ) THEN1313 WRITE (22) local_2d(nxl:nxr+1,nzb:nzt+1)1314 ENDIF1315 1267 #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 ) 1324 1274 #endif 1325 1275 #endif 1326 1276 do2d_xz_n = do2d_xz_n + 1 1327 !1328 !-- Write LOCAL-parameter set for ISO2D.1329 IF ( myid == 0 .AND. iso2d_output ) THEN1330 IF ( section(is,s) /= -1 ) THEN1331 WRITE ( section_chr, '(''y = '',F8.2,'' m (GP '',I3, &1332 &'')'')' &1333 ) section(is,s)*dy, section(is,s)1334 ELSE1335 section_chr = 'averaged along y'1336 ENDIF1337 IF ( av == 0 ) THEN1338 rtext = TRIM( do2d(av,if) ) // ' t = ' // &1339 TRIM( simulated_time_chr ) // ' ' // &1340 TRIM( section_chr )1341 ELSE1342 rtext = TRIM( do2d(av,if) ) // ' averaged t = ' // &1343 TRIM( simulated_time_chr ) // ' ' // &1344 TRIM( section_chr )1345 ENDIF1346 WRITE (28,LOCAL)1347 ENDIF1348 1277 1349 1278 CASE ( 'yz' ) … … 1356 1285 do2d_yz_last_time(av) = simulated_time 1357 1286 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 ) & 1360 1289 THEN 1361 1290 #if defined( __netcdf ) … … 1414 1343 1415 1344 #if defined( __parallel ) 1416 IF ( netcdf_ output .AND. netcdf_data_format > 4 ) THEN1345 IF ( netcdf_data_format > 4 ) THEN 1417 1346 ! 1418 1347 !-- Output in netCDF4/HDF5 format. … … 1444 1373 !-- index values. 1445 1374 #if defined( __netcdf ) 1446 IF ( netcdf_output .AND.myid == 0 ) THEN1375 IF ( myid == 0 ) THEN 1447 1376 WRITE ( 23 ) time_since_reference_point, & 1448 1377 do2d_yz_time_count(av), av … … 1510 1439 ENDDO 1511 1440 ! 1512 !-- Output of the total cross-section.1513 IF ( iso2d_output ) THEN1514 WRITE (23) total_2d(0:ny+1,nzb:nzt+1)1515 ENDIF1516 !1517 1441 !-- Relocate the local array for the next loop increment 1518 1442 DEALLOCATE( local_2d ) … … 1520 1444 1521 1445 #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 ) 1530 1452 #endif 1531 1453 … … 1562 1484 ENDIF 1563 1485 #else 1564 IF ( iso2d_output ) THEN1565 WRITE (23) local_2d(nys:nyn+1,nzb:nzt+1)1566 ENDIF1567 1486 #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 ) 1576 1493 #endif 1577 1494 #endif 1578 1495 do2d_yz_n = do2d_yz_n + 1 1579 !1580 !-- Write LOCAL-parameter set for ISO2D.1581 IF ( myid == 0 .AND. iso2d_output ) THEN1582 IF ( section(is,s) /= -1 ) THEN1583 WRITE ( section_chr, '(''x = '',F8.2,'' m (GP '',I3, &1584 &'')'')' &1585 ) section(is,s)*dx, section(is,s)1586 ELSE1587 section_chr = 'averaged along x'1588 ENDIF1589 IF ( av == 0 ) THEN1590 rtext = TRIM( do2d(av,if) ) // ' t = ' // &1591 TRIM( simulated_time_chr ) // ' ' // &1592 TRIM( section_chr )1593 ELSE1594 rtext = TRIM( do2d(av,if) ) // ' averaged t = ' // &1595 TRIM( simulated_time_chr ) // ' ' // &1596 TRIM( section_chr )1597 ENDIF1598 WRITE (29,LOCAL)1599 ENDIF1600 1496 1601 1497 END SELECT … … 1609 1505 !-- the performance of the parallel output. 1610 1506 #if defined( __netcdf ) 1611 IF ( netcdf_ output .AND. netcdf_data_format > 4 ) THEN1507 IF ( netcdf_data_format > 4 ) THEN 1612 1508 1613 1509 SELECT CASE ( mode ) -
palm/trunk/SOURCE/data_output_3d.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! parts concerning avs output removed, 23 ! -netcdf output queries 23 24 ! 24 25 ! Former revisions: … … 87 88 88 89 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, & 92 93 nz_do3d, plot_3d_precision, psolver, simulated_time, & 93 94 simulated_time_chr, skip_do_avs, time_since_reference_point … … 164 165 !-- and/or avs). 165 166 !-- 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 ) 173 170 ELSE 174 IF ( avs_output .OR. ( numprocs > 1 ) ) CALL check_open( 30 )171 CALL check_open( 106+av*10 ) 175 172 ENDIF 176 173 … … 186 183 do3d_time_count(av) = do3d_time_count(av) + 1 187 184 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 ) 195 190 ENDIF 196 191 #endif … … 201 196 202 197 DO WHILE ( do3d(av,if)(1:1) /= ' ' ) 203 !204 !-- Set the precision for data compression.205 IF ( do3d_compress ) THEN206 DO i = 1, 100207 IF ( plot_3d_precision(i)%variable == do3d(av,if) ) THEN208 prec = plot_3d_precision(i)%precision209 EXIT210 ENDIF211 ENDDO212 ENDIF213 214 198 ! 215 199 !-- Store the array chosen on the temporary array. … … 504 488 505 489 ! 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 516 509 ENDDO 517 510 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 /) ) 522 532 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 /) ) 526 537 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 532 540 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 567 542 #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 ) 611 548 #endif 612 549 #endif 613 ENDIF614 550 615 551 if = if + 1 -
palm/trunk/SOURCE/data_output_mask.f90
r1321 r1327 75 75 mask_j, mask_k, mask_size, mask_size_l, mask_start_l, & 76 76 max_masks, message_string, mid, netcdf_data_format, & 77 n etcdf_output, nz_do3d, simulated_time77 nz_do3d, simulated_time 78 78 79 79 USE cpulog, & … … 128 128 ! 129 129 !-- 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 132 131 CALL check_open( 200+mid+av*max_masks ) 133 132 ENDIF … … 146 145 !-- Update the netCDF time axis. 147 146 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 150 148 nc_stat = NF90_PUT_VAR( id_set_mask(mid,av), id_var_time_mask(mid,av), & 151 149 (/ simulated_time /), & -
palm/trunk/SOURCE/data_output_profiles.f90
r1323 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! -netcdf output queries 23 23 ! 24 24 ! Former revisions: … … 65 65 USE control_parameters, & 66 66 ONLY: average_count_pr, averaging_interval_pr, coupling_start_time, & 67 dopr_n, dopr_time_count, n etcdf_output, normalizing_region,&67 dopr_n, dopr_time_count, normalizing_region, & 68 68 time_since_reference_point 69 69 … … 122 122 ! 123 123 !-- 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 ) 127 125 128 126 ! … … 136 134 IF ( .NOT. output_for_t0 ) THEN 137 135 138 IF ( netcdf_output ) THEN139 136 #if defined( __netcdf ) 140 137 ! 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 /), & 160 146 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 ) 192 189 193 190 #endif 194 ENDIF195 191 ! 196 192 !-- Loop over all 1D variables … … 203 199 DO sr = 0, statistic_regions 204 200 205 IF ( netcdf_output ) THEN206 201 #if defined( __netcdf ) 207 202 ! 208 !-- 209 210 211 212 213 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 ) 214 209 #endif 215 ENDIF216 210 217 211 ENDDO … … 221 215 ENDDO ! Loop over dopr_n for initial profiles 222 216 223 IF ( netcdf_output .AND.output_for_t0 ) THEN217 IF ( output_for_t0 ) THEN 224 218 dopr_time_count = dopr_time_count + 1 225 219 ENDIF … … 228 222 ENDIF ! Initial profiles 229 223 230 IF ( netcdf_output ) THEN231 224 #if defined( __netcdf ) 232 225 233 226 ! 234 !-- Store time to time axis235 236 237 238 239 240 241 ! 242 !-- 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 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 ) 286 279 #endif 287 ENDIF288 280 289 281 ! … … 295 287 DO sr = 0, statistic_regions 296 288 297 IF ( netcdf_output ) THEN298 289 #if defined( __netcdf ) 299 290 ! 300 !-- 301 302 303 304 305 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 ) 306 297 #endif 307 ENDIF308 298 309 299 ENDDO -
palm/trunk/SOURCE/data_output_ptseries.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! -netcdf output queries 23 23 ! 24 24 ! Former revisions: … … 58 58 59 59 USE control_parameters, & 60 ONLY: dopts_time_count, netcdf_output,time_since_reference_point60 ONLY: dopts_time_count, time_since_reference_point 61 61 62 62 USE cpulog, & … … 89 89 CALL cpu_log( log_point(36), 'data_output_ptseries', 'start' ) 90 90 91 IF ( myid == 0 .AND. netcdf_output) THEN91 IF ( myid == 0 ) THEN 92 92 ! 93 93 !-- Open file for time series output in NetCDF format … … 330 330 ! 331 331 !-- Output particle time series quantities in NetCDF format 332 IF ( myid == 0 .AND. netcdf_output) THEN332 IF ( myid == 0 ) THEN 333 333 DO j = 0, inum 334 334 DO i = 1, dopts_num -
palm/trunk/SOURCE/data_output_spectra.f90
r1325 r1327 19 19 ! 20 20 ! Current revisions: 21 ! ----------------- 21 ! ------------------ 22 ! -netcdf output queries 22 23 ! 23 24 ! Former revisions: … … 62 63 USE control_parameters, & 63 64 ONLY: average_count_sp, averaging_interval_sp, dosp_time_count, & 64 message_string, netcdf_output, run_description_header,&65 message_string, run_description_header, & 65 66 time_since_reference_point 66 67 … … 99 100 ! 100 101 !-- Open file for spectra output in NetCDF format 101 IF ( netcdf_output )CALL check_open( 107 )102 CALL check_open( 107 ) 102 103 103 104 ! … … 161 162 ! 162 163 !-- 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' ) 174 172 ENDIF 175 173 -
palm/trunk/SOURCE/data_output_tseries.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! -netcdf output queries 23 23 ! 24 24 ! Former revisions: … … 55 55 56 56 USE control_parameters, & 57 ONLY: dots_time_count, netcdf_output,time_since_reference_point57 ONLY: dots_time_count, time_since_reference_point 58 58 59 59 USE cpulog, & … … 90 90 ! 91 91 !-- 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 ) 95 94 #if defined( __netcdf ) 96 95 ! 97 !-- 98 99 100 101 102 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 ) 103 102 #endif 104 ENDIF105 103 106 104 ! … … 110 108 111 109 #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 121 117 #endif 122 118 -
palm/trunk/SOURCE/header.f90
r1325 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! parts concerning iso2d and avs output removed, 23 ! -netcdf output queries 22 24 ! 23 25 ! Former revisions: … … 815 817 816 818 output_format = '' 817 IF ( netcdf_output ) THEN 818 output_format = output_format_netcdf 819 ENDIF 819 output_format = output_format_netcdf 820 820 WRITE ( io, 344 ) output_format 821 821 … … 866 866 IF ( ( ( do2d_xy /= '' .AND. section(1,1) /= -9999 ) .OR. & 867 867 ( 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 870 869 871 870 IF ( av == 0 ) THEN … … 882 881 883 882 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 894 884 WRITE ( io, 344 ) output_format 895 885 … … 1048 1038 ENDIF 1049 1039 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 1061 1041 WRITE ( io, 344 ) output_format 1062 1042 … … 1079 1059 ELSE 1080 1060 WRITE ( io, 353 ) 1081 ENDIF1082 1083 IF ( do3d_compress ) THEN1084 do3d_chr = ''1085 i = 11086 DO WHILE ( do3d(av,i) /= ' ' )1087 1088 SELECT CASE ( do3d(av,i) )1089 CASE ( 'u' )1090 j = 11091 CASE ( 'v' )1092 j = 21093 CASE ( 'w' )1094 j = 31095 CASE ( 'p' )1096 j = 41097 CASE ( 'pt' )1098 j = 51099 END SELECT1100 WRITE ( prec, '(I1)' ) plot_3d_precision(j)%precision1101 do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // &1102 ':' // prec // ','1103 i = i + 11104 1105 ENDDO1106 WRITE ( io, 338 ) do3d_chr1107 1108 1061 ENDIF 1109 1062 … … 1144 1097 ENDIF 1145 1098 1146 output_format = ' ' 1147 IF ( netcdf_output ) THEN 1148 output_format = output_format_netcdf 1149 ENDIF 1099 output_format = output_format_netcdf 1150 1100 !-- Parallel output not implemented for mask data, hence 1151 1101 !-- output_format must be adjusted. … … 1202 1152 WRITE ( io, 340 ) 1203 1153 1204 output_format = '' 1205 IF ( netcdf_output ) THEN 1206 output_format = output_format_netcdf 1207 ENDIF 1154 output_format = output_format_netcdf 1208 1155 WRITE ( io, 344 ) output_format 1209 1156 WRITE ( io, 341 ) dt_dots … … 1268 1215 WRITE ( io, 370 ) 1269 1216 1270 output_format = ' ' 1271 IF ( netcdf_output ) THEN 1272 output_format = output_format_netcdf 1273 ENDIF 1217 output_format = output_format_netcdf 1274 1218 WRITE ( io, 344 ) output_format 1275 1219 WRITE ( io, 371 ) dt_dosp … … 1640 1584 IF ( dt_write_particle_data /= 9999999.9_wp ) THEN 1641 1585 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' 1649 1588 ELSE 1650 output_format = ' binary'1589 output_format = 'netcdf and binary' 1651 1590 ENDIF 1652 1591 WRITE ( io, 344 ) output_format … … 1905 1844 ' Output every ',F8.2,' s ',A/ & 1906 1845 ' Upper output limit at ',F8.2,' m (GP ',I4,')'/) 1907 338 FORMAT (' Compressed data output'/ &1908 ' Decimal precision: ',A/)1909 1846 339 FORMAT (' No output during initial ',F8.2,' s') 1910 1847 340 FORMAT (/' Time series:') -
palm/trunk/SOURCE/lpm_data_output_particles.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! -netcdf output queries 22 23 ! 23 24 ! Former revisions: … … 43 44 44 45 USE control_parameters, & 45 ONLY: netcdf_output,prt_time_count, simulated_time46 ONLY: prt_time_count, simulated_time 46 47 47 48 USE cpulog, & … … 80 81 ! 81 82 !-- Output in netCDF format 82 IF ( netcdf_output ) THEN 83 84 CALL check_open( 108 ) 83 CALL check_open( 108 ) 85 84 86 85 ! 87 !-- 88 86 !-- Update the NetCDF time axis 87 prt_time_count = prt_time_count + 1 89 88 90 91 92 93 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 ) 94 93 95 94 ! 96 !-- 97 98 99 100 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 ) 101 100 102 101 ! 103 !-- 104 105 106 107 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 ) 108 107 109 110 111 112 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 ) 113 112 114 115 116 117 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 ) 118 117 119 120 121 122 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 ) 123 122 124 125 126 127 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 ) 128 127 129 130 131 132 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 ) 133 132 134 135 136 137 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 ) 138 137 139 140 141 142 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 ) 143 142 144 145 146 147 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 ) 148 147 149 150 151 152 153 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 ) 154 153 155 156 157 158 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 ) 159 158 160 nc_stat = NF90_PUT_VAR( id_set_prt, id_var_prt(12), particles%y, &161 162 163 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 ) 164 163 165 166 167 168 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 ) 169 168 170 171 172 173 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 ) 174 173 175 176 177 178 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 ) 179 178 180 181 182 183 184 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 ) 185 184 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 ) 192 189 193 190 #endif -
palm/trunk/SOURCE/lpm_exchange_horiz.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! -netcdf output queries 23 23 ! 24 24 ! Former revisions: … … 53 53 54 54 USE control_parameters, & 55 ONLY: message_string, netcdf_ output, netcdf_data_format55 ONLY: message_string, netcdf_data_format 56 56 57 57 USE cpulog, & … … 350 350 maximum_number_of_particles ) & 351 351 THEN 352 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN352 IF ( netcdf_data_format < 3 ) THEN 353 353 message_string = 'maximum_number_of_particles ' // & 354 354 'needs to be increased ' // & … … 374 374 IF ( number_of_tails+trrpt_count_recv > maximum_number_of_tails ) & 375 375 THEN 376 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN376 IF ( netcdf_data_format < 3 ) THEN 377 377 message_string = 'maximum_number_of_tails ' // & 378 378 'needs to be increased ' // & … … 414 414 maximum_number_of_particles ) & 415 415 THEN 416 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN416 IF ( netcdf_data_format < 3 ) THEN 417 417 message_string = 'maximum_number_of_particles ' // & 418 418 'needs to be increased ' // & … … 438 438 IF ( number_of_tails+trlpt_count_recv > maximum_number_of_tails ) & 439 439 THEN 440 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN440 IF ( netcdf_data_format < 3 ) THEN 441 441 message_string = 'maximum_number_of_tails ' // & 442 442 'needs to be increased ' // & … … 723 723 maximum_number_of_particles ) & 724 724 THEN 725 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN725 IF ( netcdf_data_format < 3 ) THEN 726 726 message_string = 'maximum_number_of_particles ' // & 727 727 'needs to be increased ' // & … … 747 747 IF ( number_of_tails+trnpt_count_recv > maximum_number_of_tails ) & 748 748 THEN 749 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN749 IF ( netcdf_data_format < 3 ) THEN 750 750 message_string = 'maximum_number_of_tails ' // & 751 751 'needs to be increased ' // & … … 788 788 maximum_number_of_particles ) & 789 789 THEN 790 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN790 IF ( netcdf_data_format < 3 ) THEN 791 791 message_string = 'maximum_number_of_particles ' // & 792 792 'needs to be increased ' // & … … 812 812 IF ( number_of_tails+trspt_count_recv > maximum_number_of_tails ) & 813 813 THEN 814 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN814 IF ( netcdf_data_format < 3 ) THEN 815 815 message_string = 'maximum_number_of_tails ' // & 816 816 'needs to be increased ' // & -
palm/trunk/SOURCE/lpm_init.f90
r1323 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! -netcdf_output 23 23 ! 24 24 ! Former revisions: … … 83 83 USE control_parameters, & 84 84 ONLY: cloud_droplets, current_timestep_number, initializing_actions, & 85 message_string, netcdf_ output,netcdf_data_format, ocean,&85 message_string, netcdf_data_format, ocean, & 86 86 prandtl_layer, simulated_time 87 87 -
palm/trunk/SOURCE/lpm_release_set.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! -netcdf output queries 23 23 ! 24 24 ! Former revisions: … … 48 48 49 49 USE control_parameters, & 50 ONLY: iran, message_string, netcdf_data_format , netcdf_output50 ONLY: iran, message_string, netcdf_data_format 51 51 52 52 USE grid_variables, & … … 81 81 IF ( number_of_particles + number_of_initial_particles > & 82 82 maximum_number_of_particles ) THEN 83 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN83 IF ( netcdf_data_format < 3 ) THEN 84 84 message_string = 'maximum_number_of_particles needs to be increa' // & 85 85 'sed &but this is not allowed with netcdf_data_' // & … … 96 96 IF ( number_of_tails + number_of_initial_tails > & 97 97 maximum_number_of_tails ) THEN 98 IF ( netcdf_ output .AND. netcdf_data_format < 3 ) THEN98 IF ( netcdf_data_format < 3 ) THEN 99 99 message_string = 'maximum_number_of_tails needs to be increas' // & 100 100 'ed &but this is not allowed with netcdf_dat' // & -
palm/trunk/SOURCE/modules.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! REAL constants defined as wp-kind 23 ! -avs_output, data_output_format, do3d_compress, iso2d_output, netcdf_output 23 24 ! 24 25 ! Former revisions: … … 347 348 348 349 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. parametrization352 a_term = 9.65 , & !: coef. for terminal velocity (m s-1)353 a_vent = 0.78 , & !: coef. for ventilation effect354 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. parametrization357 b_term = 9.8 , & !: coef. for terminal velocity (m s-1)358 b_vent = 0.308 , & !: coef. for ventilation effect359 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) 360 361 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. parametrization364 c_const = 0.93 , & !: const. in Taylor-microscale Reynolds number365 c_evap = 0.7 , & !: constant in evaporation366 c_sedimentation = 2.0 , & !: Courant number of sedimentation process367 c_term = 600.0 , & !: coef. for terminal velocity (m-1)368 cof(6) = (/ 76.18009172947146 , & !: coefficients in the369 -86.50532032941677 , & !: numerical370 24.01409824083091 , & !: calculation of the371 -1.231739572450155 , & !: gamma function372 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) 376 377 effective_coll_efficiency, & !: 377 eps_ros = 1.0E-4 , & !: accuracy of Rosenbrock method378 eps_sb = 1.0E-20 , & !: threshold in two-moments scheme379 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) 387 388 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 concentration392 prec_time_const = 0.001 , & !: coef. in Kessler scheme389 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 393 394 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 scheme396 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 number399 schmidt_p_1d3, & !: schmidt**( 1.0 / 3.0 )400 sigma_gc = 1.3 , & !: log-normal geometric standard deviation401 stp = 2.5066282746310005 , & !: parameter in gamma function402 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 NaCl404 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) 409 410 410 411 REAL(wp), DIMENSION(:), ALLOCATABLE :: hyrho, pt_d_t, t_d_pt … … 511 512 CHARACTER (LEN=1000) :: message_string = ' ' 512 513 513 CHARACTER (LEN=7), DIMENSION(100) :: do3d_comp_prec = ' '514 CHARACTER (LEN=10), DIMENSION(10) :: data_output_format = ' '515 514 CHARACTER (LEN=11), DIMENSION(100) :: data_output = ' ', & 516 515 data_output_user = ' ', doav = ' ' … … 581 580 mask_i_global, mask_j_global, mask_k_global 582 581 583 LOGICAL :: avs_output = .FALSE., & 584 bc_lr_cyc =.TRUE., bc_lr_dirrad = .FALSE., & 582 LOGICAL :: bc_lr_cyc =.TRUE., bc_lr_dirrad = .FALSE., & 585 583 bc_lr_raddir = .FALSE., bc_ns_cyc = .TRUE., & 586 584 bc_ns_dirrad = .FALSE., bc_ns_raddir = .FALSE.,& … … 595 593 dissipation_control = .FALSE., disturbance_created = .FALSE., & 596 594 do2d_at_begin = .FALSE., do3d_at_begin = .FALSE., & 597 do 3d_compress = .FALSE., do_sum = .FALSE., &595 do_sum = .FALSE., & 598 596 dp_external = .FALSE., dp_smooth = .FALSE., & 599 597 drizzle = .FALSE., dt_fixed = .FALSE., & … … 604 602 inflow_l = .FALSE., inflow_n = .FALSE., & 605 603 inflow_r = .FALSE., inflow_s = .FALSE., & 606 iso2d_output = .FALSE.,large_scale_forcing = .FALSE., &604 large_scale_forcing = .FALSE., & 607 605 large_scale_subsidence = .FALSE., lsf_surf = .TRUE., & 608 606 lsf_vert = .TRUE., lptnudge = .FALSE., lqnudge = .FALSE., & 609 607 lunudge = .FALSE., lvnudge = .FALSE., lwnudge = .FALSE., & 610 608 masking_method = .FALSE., mg_switch_to_pe0 = .FALSE., & 611 ne tcdf_output = .FALSE., neutral = .FALSE., nudging = .FALSE., &609 neutral = .FALSE., nudging = .FALSE., & 612 610 ocean = .FALSE., on_device = .FALSE., & 613 611 outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., & … … 632 630 data_output_yz(0:1) = .FALSE. 633 631 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.0704 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, & 709 707 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 734 732 735 733 REAL(wp), DIMENSION(:), ALLOCATABLE :: dp_smooth_factor 736 734 737 735 REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) :: & 738 mask_x = -1.0 , mask_y = -1.0, mask_z = -1.0736 mask_x = -1.0_wp, mask_y = -1.0_wp, mask_z = -1.0_wp 739 737 REAL(wp), DIMENSION(max_masks,3) :: & 740 mask_x_loop = -1.0 , mask_y_loop = -1.0, mask_z_loop = -1.0738 mask_x_loop = -1.0_wp, mask_y_loop = -1.0_wp, mask_z_loop = -1.0_wp 741 739 742 740 ! … … 787 785 use_seperate_pe_for_dvrp_output = .FALSE. 788 786 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.0793 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 /) 799 797 800 798 #if defined( __decalpha ) 801 799 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 /) ) 805 803 806 804 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 /) ) 811 809 812 810 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 ) /), & 816 814 (/ 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, & 819 817 interval_values_dvrp_prt, & 820 818 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 ) /), & 823 821 (/ 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 827 825 #else 828 826 REAL(wp), DIMENSION(2,10) :: slicer_range_limits_dvrp … … 832 830 REAL(sp), DIMENSION(2,100) :: interval_values_dvrp, & 833 831 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 / 854 852 #endif 855 853 … … 1024 1022 LOGICAL :: run_control_header_1d = .FALSE., stop_dt_1d = .FALSE. 1025 1023 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, & 1031 1029 vsws1d, z01d, z0h1d 1032 1030 … … 1233 1231 LOGICAL, DIMENSION(:), ALLOCATABLE :: particle_mask, tail_mask 1234 1232 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_global1233 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 1245 1243 1246 1244 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.91245 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 1251 1249 1252 1250 REAL(wp), DIMENSION(:), ALLOCATABLE :: log_z_z0 … … 1393 1391 1394 1392 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, & 1400 1398 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 1406 1404 1407 1405 SAVE … … 1454 1452 plot_spectra_level(100) = 999999 1455 1453 1456 REAL(wp) :: time_to_start_sp = 0.0 1454 REAL(wp) :: time_to_start_sp = 0.0_wp 1457 1455 1458 1456 SAVE -
palm/trunk/SOURCE/parin.f90
r1321 r1327 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! -data_output_format, do3d_compress, do3d_comp_prec 23 23 ! 24 24 ! Former revisions: … … 145 145 conserve_volume_flow, conserve_volume_flow_mode, & 146 146 coupling_start_time, create_disturbances, cthf, cycle_mg, & 147 data_output, data_output_ format, data_output_masks,&147 data_output, data_output_masks, & 148 148 data_output_pr, data_output_2d_on_each_pe, & 149 149 disturbance_amplitude, disturbance_energy_limit, & 150 150 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, & 152 152 dp_external, dp_level_b, dp_smooth, dpdxy, drag_coefficient, & 153 153 drizzle, dt, dz, dt_averaging_input, dt_averaging_input_pr, & … … 292 292 cpu_log_barrierwait, create_disturbances, & 293 293 cross_profiles, cross_ts_uymax, cross_ts_uymin, & 294 data_output, data_output_ format, data_output_masks,&294 data_output, data_output_masks, & 295 295 data_output_pr, data_output_2d_on_each_pe, disturbance_amplitude, & 296 296 disturbance_energy_limit, disturbance_level_b, & 297 disturbance_level_t, do2d_at_begin, do3d_at_begin, do3d_compress,&298 d o3d_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, & 299 299 dt_coupling, dt_data_output, dt_data_output_av, dt_disturb, & 300 300 dt_domask, dt_dopr, dt_dopr_listing, dt_dots, dt_do2d_xy, &
Note: See TracChangeset
for help on using the changeset viewer.