Changeset 4449 for palm/trunk
- Timestamp:
- Mar 9, 2020 2:43:16 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/model_1d_mod.f90
r4360 r4449 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Set intermediate_timestep_count back to zero after 1D-model integration. 28 ! This is required e.g. for initial calls of calc_mean_profile. 29 ! 30 ! 4360 2020-01-07 11:25:50Z suehring 27 31 ! Corrected "Former revisions" section 28 ! 32 ! 29 33 ! 3655 2019-01-07 16:51:22Z knoop 30 34 ! Modularization of all bulk cloud physics code components … … 37 41 ! ------------ 38 42 !> 1D-model to initialize the 3D-arrays. 39 !> The temperature profile is set as steady and a corresponding steady solution 43 !> The temperature profile is set as steady and a corresponding steady solution 40 44 !> of the wind profile is being computed. 41 45 !> All subroutines required can be found within this file. … … 55 59 USE basic_constants_and_equations_mod, & 56 60 ONLY: g, kappa, pi 57 61 58 62 USE control_parameters, & 59 63 ONLY: constant_diffusion, constant_flux_layer, dissipation_1d, f, & … … 66 70 USE indices, & 67 71 ONLY: nzb, nzb_diff, nzt 68 72 69 73 USE kinds 70 74 71 75 USE pegrid, & 72 76 ONLY: myid 73 77 74 78 75 79 IMPLICIT NONE … … 177 181 178 182 SUBROUTINE init_1d_model 179 183 180 184 USE grid_variables, & 181 185 ONLY: dx, dy … … 273 277 vsws1d = 0.0_wp 274 278 z01d = roughness_length 275 z0h1d = z0h_factor * z01d 279 z0h1d = z0h_factor * z01d 276 280 IF ( humidity ) qs1d = 0.0_wp 277 281 … … 308 312 !> Runge-Kutta time differencing scheme for the 1D-model. 309 313 !------------------------------------------------------------------------------! 310 314 311 315 SUBROUTINE time_integration_1d 312 316 … … 350 354 351 355 ! 352 !-- Compute all tendency terms. If a constant-flux layer is simulated, 356 !-- Compute all tendency terms. If a constant-flux layer is simulated, 353 357 !-- k starts at nzb+2. 354 358 DO k = nzb_diff, nzt … … 438 442 ! 439 443 !-- Tendency terms at the top of the constant-flux layer. 440 !-- Finite differences of the momentum fluxes are computed using half the 441 !-- normal grid length (2.0*ddzw(k)) for the sake of enhanced accuracy 444 !-- Finite differences of the momentum fluxes are computed using half the 445 !-- normal grid length (2.0*ddzw(k)) for the sake of enhanced accuracy 442 446 IF ( constant_flux_layer ) THEN 443 447 … … 574 578 ! 575 579 !-- Boundary conditions for the prognostic variables. 576 !-- At the top boundary (nzt+1) u, v, e, and diss keep their initial 580 !-- At the top boundary (nzt+1) u, v, e, and diss keep their initial 577 581 !-- values (ug(nzt+1), vg(nzt+1), 0, 0). 578 582 !-- At the bottom boundary, Dirichlet condition is used for u and v (0) … … 627 631 ! 628 632 !-- Compute the Richardson-flux numbers, 629 !-- first at the top of the constant-flux layer using u* of the 633 !-- first at the top of the constant-flux layer using u* of the 630 634 !-- previous time step (+1E-30, if u* = 0), then in the remaining area. 631 635 !-- There the rif-numbers of the previous time step are used. … … 707 711 708 712 ! 709 !-- Boundary condition for the turbulent kinetic energy and 713 !-- Boundary condition for the turbulent kinetic energy and 710 714 !-- dissipation rate at the top of the constant-flux layer. 711 715 !-- Additional Neumann condition de/dz = 0 at nzb is set to ensure … … 723 727 IF ( humidity ) THEN 724 728 ! 725 !-- Compute q* 729 !-- Compute q* 726 730 IF ( rif1d(nzb+1) >= 0.0_wp ) THEN 727 731 ! … … 857 861 858 862 ENDDO ! time loop 859 863 ! 864 !-- Set intermediate_timestep_count back to zero. This is required e.g. for 865 !-- initial calls of calc_mean_profile. 866 intermediate_timestep_count = 0 860 867 861 868 END SUBROUTINE time_integration_1d … … 867 874 !> Compute and print out quantities for run control of the 1D model. 868 875 !------------------------------------------------------------------------------! 869 876 870 877 SUBROUTINE run_control_1d 871 878 … … 874 881 875 882 INTEGER(iwp) :: k !< loop index 876 883 877 884 REAL(wp) :: alpha !< angle of wind vector at top of constant-flux layer 878 885 REAL(wp) :: energy !< kinetic energy … … 938 945 !> Compute the time step w.r.t. the diffusion criterion 939 946 !------------------------------------------------------------------------------! 940 947 941 948 SUBROUTINE timestep_1d 942 949 … … 978 985 'dt_1d = ',dt_1d,' s simulation stopped!' 979 986 CALL message( 'timestep_1d', 'PA0192', 1, 2, 0, 6, 0 ) 980 987 981 988 ENDIF 982 989 … … 990 997 !> List output of profiles from the 1D-model 991 998 !------------------------------------------------------------------------------! 992 999 993 1000 SUBROUTINE print_1d_model 994 1001
Note: See TracChangeset
for help on using the changeset viewer.