Changeset 4586 for palm/trunk/SOURCE/header.f90
- Timestamp:
- Jul 1, 2020 4:16:43 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/header.f90
r4573 r4586 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 23 ! 22 ! 23 ! 24 24 ! Former revisions: 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Renamed rif to Ri (gradient Richardson number, 1D model) 28 ! and zeta (= z_mo / ol, stability parameter, 3D model) 29 ! 30 ! 4573 2020-06-24 13:08:47Z oliver.maas 27 31 ! added statement for pt_surface_heating_rate 28 ! 32 ! 29 33 ! 4536 2020-05-17 17:24:13Z raasch 30 34 ! output of restart data format added 31 ! 35 ! 32 36 ! 4473 2020-03-25 21:04:07Z gronemeier 33 37 ! revised message if wall_adjustment is used 34 ! 38 ! 35 39 ! 4444 2020-03-05 15:59:50Z raasch 36 40 ! bugfix: cpp-directives for serial mode added 37 ! 41 ! 38 42 ! 4360 2020-01-07 11:25:50Z suehring 39 43 ! Bugfix, character length too short, caused crash on NEC. 40 ! 44 ! 41 45 ! 4309 2019-11-26 18:49:59Z suehring 42 46 ! replaced recycling_yshift by y_shift 43 ! 47 ! 44 48 ! 4301 2019-11-22 12:09:09Z oliver.maas 45 49 ! 46 50 ! 4297 2019-11-21 10:37:50Z oliver.maas 47 51 ! Adjusted format for simulated time and related quantities 48 ! 52 ! 49 53 ! 4297 2019-11-21 10:37:50Z oliver.maas 50 54 ! adjusted message to the changed parameter recycling_yshift 51 ! 55 ! 52 56 ! 4227 2019-09-10 18:04:34Z gronemeier 53 57 ! implement new palm_date_time_mod 54 ! 58 ! 55 59 ! 4223 2019-09-10 09:20:47Z gronemeier 56 60 ! Write information about rotation angle 57 ! 61 ! 58 62 ! 4182 2019-08-22 15:20:23Z scharf 59 63 ! Corrected "Former revisions" section 60 ! 64 ! 61 65 ! 4168 2019-08-16 13:50:17Z suehring 62 66 ! Replace function get_topography_top_index by topo_top_ind 63 ! 67 ! 64 68 ! 4069 2019-07-01 14:05:51Z Giersch 65 ! Masked output running index mid has been introduced as a local variable to 66 ! avoid runtime error (Loop variable has been modified) in time_integration 67 ! 69 ! Masked output running index mid has been introduced as a local variable to 70 ! avoid runtime error (Loop variable has been modified) in time_integration 71 ! 68 72 ! 4023 2019-06-12 13:20:01Z maronga 69 73 ! Renamed "coupling start time" to "spinup time" 70 ! 74 ! 71 75 ! 4017 2019-06-06 12:16:46Z schwenkel 72 76 ! unused variable removed 73 ! 77 ! 74 78 ! 3655 2019-01-07 16:51:22Z knoop 75 79 ! Implementation of the PALM module interface … … 82 86 ! ------------ 83 87 !> Writing a header with all important information about the current run. 84 !> This subroutine is called three times, two times at the beginning 88 !> This subroutine is called three times, two times at the beginning 85 89 !> (writing information on files RUN_CONTROL and HEADER) and one time at the 86 90 !> end of the run, then writing additional information about CPU-usage on file … … 88 92 !-----------------------------------------------------------------------------! 89 93 SUBROUTINE header 90 94 91 95 92 96 USE arrays_3d, & … … 148 152 IMPLICIT NONE 149 153 150 154 151 155 CHARACTER (LEN=2) :: do2d_mode !< mode of 2D data output (xy, xz, yz) 152 156 153 157 CHARACTER (LEN=5) :: section_chr !< string indicating grid information where to output 2D slices 154 158 155 159 CHARACTER (LEN=10) :: host_chr !< string for hostname 156 160 157 161 CHARACTER (LEN=16) :: begin_chr !< string indication start time for the data output 158 162 CHARACTER (LEN=16) :: coor_chr !< dummy string 159 163 160 164 CHARACTER (LEN=26) :: ver_rev !< string for run identification 161 165 162 166 #if defined( __parallel ) 163 CHARACTER (LEN=32) :: cpl_name !< name of child domain (nesting mode only) 167 CHARACTER (LEN=32) :: cpl_name !< name of child domain (nesting mode only) 164 168 #endif 165 169 166 170 CHARACTER (LEN=40) :: output_format !< netcdf format 167 171 168 172 CHARACTER (LEN=70) :: char1 !< dummy varialbe used for various strings 169 173 CHARACTER (LEN=70) :: char2 !< string containing informating about the advected distance in case of Galilei transformation … … 175 179 CHARACTER (LEN=70) :: do3d_chr !< string indicating 3D output variables 176 180 CHARACTER (LEN=70) :: domask_chr !< string indicating masked output variables 177 CHARACTER (LEN=70) :: run_classification !< string classifying type of run, e.g. nested, coupled, etc. 178 181 CHARACTER (LEN=70) :: run_classification !< string classifying type of run, e.g. nested, coupled, etc. 182 179 183 CHARACTER (LEN=85) :: r_upper !< string indicating model top boundary condition for various quantities 180 184 CHARACTER (LEN=85) :: r_lower !< string indicating bottom boundary condition for various quantities 181 185 182 186 CHARACTER (LEN=86) :: coordinates !< string indicating height coordinates for profile-prescribed variables 183 187 CHARACTER (LEN=86) :: gradients !< string indicating gradients of profile-prescribed variables between the prescribed height coordinates … … 218 222 INTEGER(iwp) :: npe_total !< number of total PEs in a coupler (parent + child) 219 223 #endif 220 224 221 225 222 226 REAL(wp) :: cpuseconds_per_simulated_second !< CPU time (in s) per simulated second … … 506 510 IF ( .NOT. ocean_mode ) THEN 507 511 WRITE ( io, 250 ) dx, dy 508 512 509 513 DO i = 1, number_stretch_level_start+1 510 514 WRITE ( io, 253 ) i, dz(i) 511 515 ENDDO 512 516 513 517 WRITE( io, 251 ) (nx+1)*dx, (ny+1)*dy, zu(nzt+1) 514 518 515 519 IF ( ANY( dz_stretch_level_start_index < nzt+1 ) ) THEN 516 520 WRITE( io, '(A)', advance='no') ' Vertical stretching starts at height:' … … 535 539 ENDDO 536 540 ENDIF 537 541 538 542 ELSE 539 543 WRITE ( io, 250 ) dx, dy … … 541 545 WRITE ( io, 253 ) i, dz(i) 542 546 ENDDO 543 547 544 548 WRITE ( io, 251 ) (nx+1)*dx, (ny+1)*dy, zu(0) 545 549 546 550 IF ( ANY( dz_stretch_level_start_index > 0 ) ) THEN 547 551 WRITE( io, '(A)', advance='no') ' Vertical stretching starts at height:' … … 603 607 ENDDO 604 608 605 609 606 610 IF ( .NOT. large_scale_forcing ) THEN 607 611 WRITE ( io, 426 ) TRIM( coordinates ), TRIM( temperatures ), & … … 620 624 i = 1 621 625 DO WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 ) 622 626 623 627 WRITE (coor_chr,'(F6.2,1X)') ug(ug_vertical_gradient_level_ind(i)) 624 628 ugcomponent = TRIM( ugcomponent ) // ' ' // TRIM( coor_chr ) … … 672 676 i = i + 1 673 677 ENDIF 674 678 675 679 ENDDO 676 680 … … 782 786 !-- Complex terrain 783 787 IF ( complex_terrain ) THEN 784 WRITE( io, 280 ) 788 WRITE( io, 280 ) 785 789 IF ( turbulent_inflow ) THEN 786 790 WRITE( io, 281 ) zu(topo_top_ind(0,0,0)) … … 846 850 r_upper = 'e(nzt+1) = e(nzt) = e(nzt-1)' 847 851 848 WRITE ( io, 301 ) 'e', r_lower, r_upper 852 WRITE ( io, 301 ) 'e', r_lower, r_upper 849 853 850 854 ENDIF … … 953 957 WRITE ( io, 317 ) bc_lr, bc_ns 954 958 IF ( .NOT. bc_lr_cyc .OR. .NOT. bc_ns_cyc ) THEN 955 WRITE ( io, 318 ) use_cmax, pt_damping_width, pt_damping_factor 959 WRITE ( io, 318 ) use_cmax, pt_damping_width, pt_damping_factor 956 960 IF ( turbulent_inflow ) THEN 957 961 IF ( y_shift == 0 ) THEN … … 1009 1013 TRIM( gradients ), TRIM( slices ) 1010 1014 ELSE 1011 WRITE ( io, 428 ) 1015 WRITE ( io, 428 ) 1012 1016 ENDIF 1013 1017 … … 1022 1026 i = 1 1023 1027 DO WHILE ( q_vertical_gradient_level_ind(i) /= -9999 ) 1024 1028 1025 1029 WRITE (coor_chr,'(E8.1,4X)') q_init(q_vertical_gradient_level_ind(i)) 1026 1030 temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr ) … … 1028 1032 WRITE (coor_chr,'(E8.1,4X)') q_vertical_gradient(i) 1029 1033 gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr ) 1030 1034 1031 1035 WRITE (coor_chr,'(I8,4X)') q_vertical_gradient_level_ind(i) 1032 1036 slices = TRIM( slices ) // ' ' // TRIM( coor_chr ) 1033 1037 1034 1038 WRITE (coor_chr,'(F8.1,4X)') q_vertical_gradient_level(i) 1035 1039 coordinates = TRIM( coordinates ) // ' ' // TRIM( coor_chr ) … … 1058 1062 i = 1 1059 1063 DO WHILE ( s_vertical_gradient_level_ind(i) /= -9999 ) 1060 1064 1061 1065 WRITE (coor_chr,'(E8.1,4X)') s_init(s_vertical_gradient_level_ind(i)) 1062 1066 temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr ) … … 1064 1068 WRITE (coor_chr,'(E8.1,4X)') s_vertical_gradient(i) 1065 1069 gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr ) 1066 1070 1067 1071 WRITE (coor_chr,'(I8,4X)') s_vertical_gradient_level_ind(i) 1068 1072 slices = TRIM( slices ) // ' ' // TRIM( coor_chr ) 1069 1073 1070 1074 WRITE (coor_chr,'(F8.1,4X)') s_vertical_gradient_level(i) 1071 1075 coordinates = TRIM( coordinates ) // ' ' // TRIM( coor_chr ) … … 1081 1085 WRITE ( io, 422 ) TRIM( coordinates ), TRIM( temperatures ), & 1082 1086 TRIM( gradients ), TRIM( slices ) 1083 ENDIF 1087 ENDIF 1084 1088 1085 1089 ! … … 1586 1590 ENDIF 1587 1591 IF ( humidity .AND. q_surface_initial_change /= 0.0_wp ) THEN 1588 WRITE ( io, 477 ) q_surface_initial_change 1592 WRITE ( io, 477 ) q_surface_initial_change 1589 1593 ENDIF 1590 1594 IF ( passive_scalar .AND. q_surface_initial_change /= 0.0_wp ) THEN 1591 WRITE ( io, 478 ) q_surface_initial_change 1595 WRITE ( io, 478 ) q_surface_initial_change 1592 1596 ENDIF 1593 1597 … … 1727 1731 ' Tunnel width: ', F6.2 ) 1728 1732 274 FORMAT ( ' Tunnel in ', A, ' direction.' / & 1729 ' Tunnel height: ', F6.2, / & 1733 ' Tunnel height: ', F6.2, / & 1730 1734 ' Tunnel-wall depth: ', F6.2 / & 1731 1735 ' Tunnel width: ', F6.2, / & … … 1756 1760 ' z_mo = ',F6.2,' m z0 =',F7.4,' m z0h =',F8.5,& 1757 1761 ' m kappa =',F5.2/ & 1758 ' Rif value range: ',F8.2,' <= rif<=',F6.2)1762 ' zeta value range: ',F8.2,' <= zeta <=',F6.2) 1759 1763 306 FORMAT (' Predefined constant heatflux: ',F9.6,' K m/s') 1760 1764 307 FORMAT (' Heatflux has a random normal distribution') … … 1762 1766 309 FORMAT (' Predefined constant salinityflux: ',F9.6,' psu m/s') 1763 1767 310 FORMAT (//' 1D-Model:'// & 1764 ' Ri f value range: ',F6.2,' <= rif<=',F6.2)1768 ' Ri value range: ',F6.2,' <= Ri <=',F6.2) 1765 1769 311 FORMAT (' Predefined constant humidity flux: ',E10.3,' kg/kg m/s') 1766 1770 312 FORMAT (' Predefined surface humidity')
Note: See TracChangeset
for help on using the changeset viewer.