 Timestamp:
 Mar 9, 2020 2:43:16 PM (11 months 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 1Dmodel integration. 28 ! This is required e.g. for initial calls of calc_mean_profile. 29 ! 30 ! 4360 20200107 11:25:50Z suehring 27 31 ! Corrected "Former revisions" section 28 ! 32 ! 29 33 ! 3655 20190107 16:51:22Z knoop 30 34 ! Modularization of all bulk cloud physics code components … … 37 41 !  38 42 !> 1Dmodel to initialize the 3Darrays. 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 !> RungeKutta time differencing scheme for the 1Dmodel. 309 313 !! 310 314 311 315 SUBROUTINE time_integration_1d 312 316 … … 350 354 351 355 ! 352 ! Compute all tendency terms. If a constantflux layer is simulated, 356 ! Compute all tendency terms. If a constantflux 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 constantflux 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 Richardsonflux numbers, 629 ! first at the top of the constantflux layer using u* of the 633 ! first at the top of the constantflux layer using u* of the 630 634 ! previous time step (+1E30, if u* = 0), then in the remaining area. 631 635 ! There the rifnumbers 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 constantflux 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 constantflux 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 1Dmodel 991 998 !! 992 999 993 1000 SUBROUTINE print_1d_model 994 1001
Note: See TracChangeset
for help on using the changeset viewer.