Changeset 3994
- Timestamp:
- May 22, 2019 6:08:09 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 1 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r3988 r3994 25 25 # ----------------- 26 26 # $Id$ 27 # new module for calculation and output of diagnostic quantities added 28 # 29 # 3988 2019-05-22 11:32:37Z kanani 27 30 # Add dependencies for virtual_measurement_mod 28 31 # … … 589 592 data_output_tseries.f90 \ 590 593 date_and_time_mod.f90 \ 594 diagnostic_output_quantities_mod.f90 \ 591 595 diffusion_s.f90 \ 592 596 diffusion_u.f90 \ … … 789 793 average_3d_data.o: \ 790 794 cpulog_mod.o \ 795 diagnostic_output_quantities_mod.o \ 791 796 exchange_horiz_2d.o \ 792 797 mod_kinds.o \ … … 925 930 chemistry_model_mod.o \ 926 931 cpulog_mod.o \ 932 diagnostic_output_quantities_mod.o \ 927 933 mod_kinds.o \ 928 934 mod_particle_attributes.o \ … … 964 970 bulk_cloud_model_mod.o \ 965 971 cpulog_mod.o \ 972 diagnostic_output_quantities_mod.o \ 966 973 land_surface_model_mod.o \ 967 974 mod_kinds.o \ … … 976 983 bulk_cloud_model_mod.o \ 977 984 cpulog_mod.o \ 985 diagnostic_output_quantities_mod.o \ 978 986 land_surface_model_mod.o \ 979 987 mod_kinds.o \ … … 986 994 urban_surface_mod.o 987 995 date_and_time_mod.o: \ 996 mod_kinds.o \ 997 modules.o 998 diagnostic_output_quantities_mod.o: \ 988 999 mod_kinds.o \ 989 1000 modules.o … … 1401 1412 cpulog_mod.o \ 1402 1413 date_and_time_mod.o \ 1414 diagnostic_output_quantities_mod.o \ 1403 1415 land_surface_model_mod.o \ 1404 1416 mod_kinds.o \ … … 1563 1575 cpulog_mod.o \ 1564 1576 date_and_time_mod.o \ 1577 diagnostic_output_quantities_mod.o \ 1565 1578 mod_kinds.o \ 1566 1579 model_1d_mod.o \ … … 1616 1629 bulk_cloud_model_mod.o \ 1617 1630 cpulog_mod.o \ 1631 diagnostic_output_quantities_mod.o \ 1618 1632 mod_kinds.o \ 1619 1633 module_interface.o \ … … 1681 1695 cpulog_mod.o \ 1682 1696 data_output_flight.o \ 1697 diagnostic_output_quantities_mod.o \ 1683 1698 disturb_heatflux.o \ 1684 1699 indoor_model_mod.o \ … … 1869 1884 write_restart_data_mod.o: \ 1870 1885 date_and_time_mod.o \ 1886 diagnostic_output_quantities_mod.o \ 1871 1887 mod_kinds.o \ 1872 1888 mod_particle_attributes.o \ -
palm/trunk/SOURCE/average_3d_data.f90
r3933 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3933 2019-04-25 12:33:20Z kanani 27 30 ! Bugfix in CASE theta_2m*, removal of redundant code 28 31 ! … … 188 191 ONLY: cpu_log, log_point 189 192 193 USE diagnostic_output_quantities_mod, & 194 ONLY: ti_av 195 190 196 USE indices, & 191 197 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt … … 515 521 ENDIF 516 522 523 524 CASE ( 'ti' ) 525 IF ( ALLOCATED( ti_av ) ) THEN 526 DO i = nxl, nxr 527 DO j = nys, nyn 528 DO k = nzb, nzt+1 529 ti_av(k,j,i) = ti_av(k,j,i) / REAL( average_count_3d, KIND=wp ) 530 ENDDO 531 ENDDO 532 ENDDO 533 ENDIF 534 517 535 CASE ( 'w' ) 518 536 IF ( ALLOCATED( w_av ) ) THEN -
palm/trunk/SOURCE/check_parameters.f90
r3933 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3933 2019-04-25 12:33:20Z kanani 27 30 ! Alphabetical resorting in CASE, condense settings for theta_2m* into one IF clause 28 31 ! … … 3080 3083 CONTINUE 3081 3084 3085 CASE ( 'ti' ) 3086 unit = '1/s' 3087 3082 3088 CASE ( 'ghf*', 'lwp*', 'ol*', 'qsws*', 'r_a*', & 3083 3089 'shf*', 'ssws*', 't*', 'theta_2m*', 'tsurf*', 'us*', & -
palm/trunk/SOURCE/data_output_2d.f90
r3987 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3987 2019-05-22 09:52:13Z kanani 27 30 ! Introduce alternative switch for debug output during timestepping 28 31 ! … … 321 324 USE cpulog, & 322 325 ONLY: cpu_log, log_point 326 327 USE diagnostic_output_quantities_mod, & 328 ONLY: ti, ti_av 323 329 324 330 USE indices, & … … 1261 1267 level_z(nzb+1) = zu(nzb+1) 1262 1268 1263 1264 1269 CASE ( 'ti_xy', 'ti_xz', 'ti_yz' ) 1270 IF ( av == 0 ) THEN 1271 to_be_resorted => ti 1272 ELSE 1273 IF ( .NOT. ALLOCATED( ti_av ) ) THEN 1274 ALLOCATE( ti_av(nzb:nzt+1,nys:nyn,nxl:nxr) ) 1275 ti_av = REAL( fill_value, KIND = wp ) 1276 ENDIF 1277 to_be_resorted => ti_av 1278 ENDIF 1279 IF ( mode == 'xy' ) level_z = zu 1280 1265 1281 CASE ( 'w_xy', 'w_xz', 'w_yz' ) 1266 1282 flag_nr = 3 -
palm/trunk/SOURCE/data_output_3d.f90
r3987 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3987 2019-05-22 09:52:13Z kanani 27 30 ! Introduce alternative switch for debug output during timestepping 28 31 ! … … 272 275 USE cpulog, & 273 276 ONLY: log_point, cpu_log 277 278 USE diagnostic_output_quantities_mod, & 279 ONLY: ti, ti_av 274 280 275 281 #if defined( __parallel ) … … 697 703 ENDIF 698 704 to_be_resorted => vpt_av 705 ENDIF 706 707 CASE ( 'ti' ) 708 IF ( av == 0 ) THEN 709 to_be_resorted => ti 710 ELSE 711 IF ( .NOT. ALLOCATED( ti_av ) ) THEN 712 ALLOCATE( ti_av(nzb:nzt+1,nys:nyn,nxl:nxr) ) 713 ti_av = REAL( fill_value, KIND = wp ) 714 ENDIF 715 to_be_resorted => ti_av 699 716 ENDIF 700 717 -
palm/trunk/SOURCE/data_output_mask.f90
r3665 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3665 2019-01-10 08:28:24Z raasch 27 30 ! unused variables removed 28 31 ! … … 179 182 USE cpulog, & 180 183 ONLY: cpu_log, log_point 184 185 USE diagnostic_output_quantities_mod, & 186 ONLY: ti, ti_av 181 187 182 188 USE indices, & … … 663 669 ENDIF 664 670 671 CASE ( 'ti' ) 672 IF ( av == 0 ) THEN 673 to_be_resorted => ti 674 ELSE 675 to_be_resorted => ti_av 676 ENDIF 677 665 678 CASE ( 'w' ) 666 679 grid = 'w' -
palm/trunk/SOURCE/netcdf_data_input_mod.f90
r3987 r3994 20 20 ! Current revisions: 21 21 ! ----------------- 22 !23 22 ! 24 23 ! Former revisions: -
palm/trunk/SOURCE/netcdf_interface_mod.f90
r3966 r3994 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! output of turbulence intensity added 23 23 ! 24 24 ! Former revisions: … … 1118 1118 CASE ( 'e', 'nc', 'nr', 'p', 'pc', 'pr', 'prr', & 1119 1119 'q', 'qc', 'ql', 'ql_c', 'ql_v', 'ql_vp', 'qr', 'qv', & 1120 's', 'theta', 'thetal', 'thetav' )1120 's', 'theta', 'thetal', 'thetav', 'ti' ) 1121 1121 1122 1122 grid_x = 'x' … … 1864 1864 CASE ( 'e', 'nc', 'nr', 'p', 'pc', 'pr', 'prr', & 1865 1865 'q', 'qc', 'ql', 'ql_c', 'ql_v', 'ql_vp', 'qr', 'qv', & 1866 's', 'theta', 'thetal', 'thetav' )1866 's', 'theta', 'thetal', 'thetav', 'ti' ) 1867 1867 1868 1868 grid_x = 'x' … … 2852 2852 'ql_vp_xy', 'qr_xy', 'qv_xy', & 2853 2853 's_xy', & 2854 'theta_xy', 'thetal_xy', 'thetav_xy' )2854 'theta_xy', 'thetal_xy', 'thetav_xy', 'ti_xy' ) 2855 2855 2856 2856 grid_x = 'x' … … 3756 3756 'ql_xz', 'ql_c_xz', 'ql_v_xz', 'ql_vp_xz', 'qr_xz', & 3757 3757 'qv_xz', 's_xz', & 3758 'theta_xz', 'thetal_xz', 'thetav_xz' 3758 'theta_xz', 'thetal_xz', 'thetav_xz', 'ti_xz' ) 3759 3759 3760 3760 grid_x = 'x' … … 4615 4615 'ql_c_yz', 'ql_v_yz', 'ql_vp_yz', 'qr_yz', 'qv_yz', & 4616 4616 's_yz', & 4617 'theta_yz', 'thetal_yz', 'thetav_yz' )4617 'theta_yz', 'thetal_yz', 'thetav_yz', 'ti_yz' ) 4618 4618 4619 4619 grid_x = 'x' … … 5994 5994 'q', 'qc', 'ql', 'ql_c', 'ql_v', 'ql_vp', 'qr', 'qv', & 5995 5995 'rho_sea_water', 's', 'sa', & 5996 'theta', 'thetal', 'thetav', ' u', 'v' )5996 'theta', 'thetal', 'thetav', 'ti', 'u', 'v' ) 5997 5997 5998 5998 grid_z = 'zu' -
palm/trunk/SOURCE/palm.f90
r3885 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! new module for calculation and output of diagnostic quantities added 28 ! 29 ! 3885 2019-04-11 11:29:34Z kanani 27 30 ! Changes related to global restructuring of location messages and introduction 28 31 ! of additional debug messages … … 300 303 USE date_and_time_mod, & 301 304 ONLY: calc_date_and_time, init_date_and_time 305 306 USE diagnostic_output_quantities_mod, & 307 ONLY: diagnostic_output_quantities_calculate, & 308 timestep_number_at_prev_calc 302 309 303 310 USE indices, & … … 558 565 !-- If required, output of initial arrays 559 566 IF ( do2d_at_begin ) THEN 567 CALL diagnostic_output_quantities_calculate !TODO, will be called twice 568 560 569 CALL data_output_2d( 'xy', 0 ) 561 570 CALL data_output_2d( 'xz', 0 ) … … 564 573 565 574 IF ( do3d_at_begin ) THEN 575 CALL diagnostic_output_quantities_calculate !TODO, will be called twice 576 566 577 CALL data_output_3d( 0 ) 567 578 ENDIF -
palm/trunk/SOURCE/read_restart_data_mod.f90
r3988 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3988 2019-05-22 11:32:37Z kanani 27 30 ! + time_virtual_measurement (to enable steering of output interval) 28 31 ! … … 124 127 USE date_and_time_mod, & 125 128 ONLY: day_of_year_init, time_utc_init 129 130 USE diagnostic_output_quantities_mod, & 131 ONLY: ti_av 126 132 127 133 USE grid_variables, & … … 1093 1099 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tmp_2d !< temporary array for storing 2D data 1094 1100 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3d !< temporary array for storing 3D data 1101 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3d_noghost !< temporary array for storing 3D data without ghost points 1095 1102 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3dwul !< 1096 1103 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3dwun !< … … 1295 1302 nxl_on_file-nbgp:nxr_on_file+nbgp), & 1296 1303 tmp_3d(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp, & 1297 nxl_on_file-nbgp:nxr_on_file+nbgp) ) 1304 nxl_on_file-nbgp:nxr_on_file+nbgp), & 1305 tmp_3d_noghost(nzb:nzt+1,nys_on_file:nyn_on_file, & 1306 nxl_on_file:nxr_on_file) ) 1298 1307 1299 1308 ! … … 1576 1585 ssws_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = & 1577 1586 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 1578 1587 1588 CASE ( 'ti_av' ) 1589 IF ( .NOT. ALLOCATED( ti_av ) ) THEN 1590 ALLOCATE( ti_av(nzb:nzt+1,nys:nyn,nxl:nxr) ) 1591 ENDIF 1592 IF ( k == 1 ) READ ( 13 ) tmp_3d_noghost 1593 ti_av(:,nysc:nync,nxlc:nxrc) = & 1594 tmp_3d_noghost(:,nysf:nynf,nxlf:nxrf) 1595 1579 1596 CASE ( 'ts_av' ) 1580 1597 IF ( .NOT. ALLOCATED( ts_av ) ) THEN -
palm/trunk/SOURCE/sum_up_3d_data.f90
r3943 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3943 2019-05-02 09:50:41Z maronga 27 30 ! Added output of qsws_av for green roofs. 28 31 ! … … 283 286 USE cpulog, & 284 287 ONLY: cpu_log, log_point 288 289 USE diagnostic_output_quantities_mod, & 290 ONLY: ti, ti_av 285 291 286 292 USE indices, & … … 472 478 ENDIF 473 479 tsurf_av = 0.0_wp 480 481 CASE ( 'ti' ) 482 IF ( .NOT. ALLOCATED( ti_av ) ) THEN 483 ALLOCATE( ti_av(nzb:nzt+1,nys:nyn,nxl:nxr) ) 484 ENDIF 485 ti_av = 0.0_wp 474 486 475 487 CASE ( 'u' ) … … 1019 1031 ENDIF 1020 1032 1033 CASE ( 'ti' ) 1034 IF ( ALLOCATED( ti_av ) ) THEN 1035 DO i = nxl, nxr 1036 DO j = nys, nyn 1037 DO k = nzb, nzt+1 1038 ti_av(k,j,i) = ti_av(k,j,i) + ti(k,j,i) 1039 ENDDO 1040 ENDDO 1041 ENDDO 1042 ENDIF 1043 1021 1044 CASE ( 'u' ) 1022 1045 IF ( ALLOCATED( u_av ) ) THEN -
palm/trunk/SOURCE/time_integration.f90
r3988 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3988 2019-05-22 11:32:37Z kanani 27 30 ! Implement steerable output interval for virtual measurements 28 31 ! … … 561 564 USE date_and_time_mod, & 562 565 ONLY: calc_date_and_time, hour_call_emis, hour_of_year 566 567 USE diagnostic_output_quantities_mod, & 568 ONLY: diagnostic_output_quantities_calculate, & 569 timestep_number_at_prev_calc 563 570 564 571 USE flight_mod, & … … 1655 1662 time_do_sla = time_do_sla + dt_3d 1656 1663 IF ( time_do_sla >= dt_averaging_input ) THEN 1664 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1665 CALL diagnostic_output_quantities_calculate 1666 1657 1667 CALL sum_up_3d_data 1658 1668 average_count_3d = average_count_3d + 1 … … 1733 1743 !-- 2d-data output (cross-sections) 1734 1744 IF ( time_do2d_xy >= dt_do2d_xy .AND. time_since_reference_point >= skip_time_do2d_xy ) THEN 1745 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1746 CALL diagnostic_output_quantities_calculate 1747 1735 1748 CALL data_output_2d( 'xy', 0 ) 1736 1749 time_do2d_xy = MOD( time_do2d_xy, MAX( dt_do2d_xy, dt_3d ) ) 1737 1750 ENDIF 1738 1751 IF ( time_do2d_xz >= dt_do2d_xz .AND. time_since_reference_point >= skip_time_do2d_xz ) THEN 1752 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1753 1754 CALL diagnostic_output_quantities_calculate 1739 1755 CALL data_output_2d( 'xz', 0 ) 1740 1756 time_do2d_xz = MOD( time_do2d_xz, MAX( dt_do2d_xz, dt_3d ) ) 1741 1757 ENDIF 1742 1758 IF ( time_do2d_yz >= dt_do2d_yz .AND. time_since_reference_point >= skip_time_do2d_yz ) THEN 1759 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1760 CALL diagnostic_output_quantities_calculate 1761 1743 1762 CALL data_output_2d( 'yz', 0 ) 1744 1763 time_do2d_yz = MOD( time_do2d_yz, MAX( dt_do2d_yz, dt_3d ) ) … … 1748 1767 !-- 3d-data output (volume data) 1749 1768 IF ( time_do3d >= dt_do3d .AND. time_since_reference_point >= skip_time_do3d ) THEN 1769 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1770 CALL diagnostic_output_quantities_calculate 1771 1750 1772 CALL data_output_3d( 0 ) 1751 1773 time_do3d = MOD( time_do3d, MAX( dt_do3d, dt_3d ) ) … … 1757 1779 IF ( time_domask(mid) >= dt_domask(mid) & 1758 1780 .AND. time_since_reference_point >= skip_time_domask(mid) ) THEN 1781 IF ( current_timestep_number > timestep_number_at_prev_calc ) & 1782 CALL diagnostic_output_quantities_calculate 1783 1759 1784 CALL data_output_mask( 0 ) 1760 1785 time_domask(mid) = MOD( time_domask(mid), MAX( dt_domask(mid), dt_3d ) ) -
palm/trunk/SOURCE/write_restart_data_mod.f90
r3988 r3994 25 25 ! ----------------- 26 26 ! $Id$ 27 ! output of turbulence intensity added 28 ! 29 ! 3988 2019-05-22 11:32:37Z kanani 27 30 ! + time_virtual_measurement (to enable steering of output interval) 28 31 ! … … 92 95 ONLY: day_of_year_init, time_utc_init 93 96 97 USE diagnostic_output_quantities_mod, & 98 ONLY: ti_av 99 94 100 USE grid_variables, & 95 101 ONLY: dx, dy … … 1076 1082 ENDIF 1077 1083 1084 IF ( ALLOCATED( ti_av ) ) THEN 1085 CALL wrd_write_string( 'ti_av' ) 1086 WRITE ( 14 ) ti_av 1087 ENDIF 1088 1078 1089 IF ( ALLOCATED( ts_av ) ) THEN 1079 1090 CALL wrd_write_string( 'ts_av' )
Note: See TracChangeset
for help on using the changeset viewer.