Changeset 3545 for palm/trunk
- Timestamp:
- Nov 21, 2018 11:19:41 AM (6 years ago)
- Location:
- palm/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r3529 r3545 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Call tcm_check_parameters before other modules 28 ! 29 ! 3529 2018-11-15 21:03:15Z gronemeier 27 30 ! Save time zone in variable run_zone, change date format into YYYY-MM-DD 28 31 ! … … 1513 1516 1514 1517 !-- Check the module settings 1518 CALL tcm_check_parameters 1515 1519 IF ( biometeorology ) CALL bio_check_parameters 1516 1520 IF ( bulk_cloud_model ) CALL bcm_check_parameters … … 1524 1528 IF ( calculate_spectra ) CALL spectra_check_parameters 1525 1529 CALL stg_check_parameters 1526 CALL tcm_check_parameters1527 1530 IF ( urban_surface ) CALL usm_check_parameters 1528 1531 IF ( wind_turbine ) CALL wtm_check_parameters -
palm/trunk/SOURCE/parin.f90
r3525 r3545 25 25 ! ----------------- 26 26 ! $Id$ 27 ! remove rans_mode from initialization_parameters 28 ! 29 ! 3525 2018-11-14 16:06:14Z kanani 27 30 ! Changes related to clean-up of biometeorology (dom_dwd_user) 28 31 ! … … 623 626 q_vertical_gradient, q_vertical_gradient_level, & 624 627 random_generator, random_heatflux, rans_const_c, rans_const_sigma,& 625 rans_mode, &626 628 rayleigh_damping_factor, rayleigh_damping_height, & 627 629 recycling_width, recycling_yshift, & … … 695 697 q_vertical_gradient, q_vertical_gradient_level, & 696 698 random_generator, random_heatflux, rans_const_c, rans_const_sigma,& 697 rans_mode, &698 699 rayleigh_damping_factor, rayleigh_damping_height, & 699 700 recycling_width, recycling_yshift, & -
palm/trunk/SOURCE/turbulence_closure_mod.f90
r3430 r3545 25 25 ! ----------------- 26 26 ! $Id$ 27 ! - Set rans_mode according to value of turbulence_closure 28 ! - removed debug output 29 ! 30 ! 3430 2018-10-25 13:36:23Z maronga 27 31 ! Added support for buildings in the dynamic SGS model 28 32 ! … … 160 164 !> @todo test initialization for all possibilities 161 165 !> add OpenMP directives whereever possible 162 !> remove debug output variables (dummy1, dummy2, dummy3)163 166 !> @todo Check for random disturbances 164 167 !> @note <Enter notes on the module> … … 251 254 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: l_wall !< near-wall mixing length 252 255 253 !> @todo remove debug variables254 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET :: &255 diss_prod1, diss_adve1, diss_diff1, &256 diss_prod2, diss_adve2, diss_diff2, &257 diss_prod3, diss_adve3, diss_diff3, &258 dummy1, dummy2, dummy3259 260 256 261 257 PUBLIC c_0, rans_const_c, rans_const_sigma … … 404 400 ! ------------ 405 401 !> Check parameters routine for turbulence closure module. 406 !> @todo remove rans_mode from initialization namelist and rework checks407 !> The way it is implemented at the moment, the user has to set two variables408 !> so that the RANS mode is working. It would be better if only one parameter409 !> has to be set.410 !> 2018-06-18, gronemeier411 402 !------------------------------------------------------------------------------! 412 403 SUBROUTINE tcm_check_parameters … … 419 410 ! 420 411 !-- Define which turbulence closure is going to be used 412 SELECT CASE ( TRIM( turbulence_closure ) ) 413 414 CASE ( 'dynamic' ) 415 les_dynamic = .TRUE. 416 417 CASE ( 'Moeng_Wyngaard' ) 418 les_mw = .TRUE. 419 420 CASE ( 'TKE-l' ) 421 rans_tke_l = .TRUE. 422 rans_mode = .TRUE. 423 424 CASE ( 'TKE-e' ) 425 rans_tke_e = .TRUE. 426 rans_mode = .TRUE. 427 428 CASE DEFAULT 429 message_string = 'Unknown turbulence closure: ' // & 430 TRIM( turbulence_closure ) 431 CALL message( 'tcm_check_parameters', 'PA0500', 1, 2, 0, 6, 0 ) 432 433 END SELECT 434 ! 435 !-- Set variables for RANS mode or LES mode 421 436 IF ( rans_mode ) THEN 422 423 437 ! 424 438 !-- Assign values to constants for RANS mode … … 432 446 c_4 = rans_const_c(4) 433 447 434 SELECT CASE ( TRIM( turbulence_closure ) )435 436 CASE ( 'TKE-l' )437 rans_tke_l = .TRUE.438 439 CASE ( 'TKE-e' )440 rans_tke_e = .TRUE.441 442 CASE DEFAULT443 message_string = 'Unknown turbulence closure: ' // &444 TRIM( turbulence_closure )445 CALL message( 'tcm_check_parameters', 'PA0500', 1, 2, 0, 6, 0 )446 447 END SELECT448 449 448 IF ( turbulent_inflow .OR. turbulent_outflow ) THEN 450 449 message_string = 'turbulent inflow/outflow is not yet '// & … … 459 458 460 459 ELSE 461 462 c_0 = 0.1_wp !according to Lilly (1967) and Deardorff (1980) 460 ! 461 !-- LES mode 462 c_0 = 0.1_wp !according to Lilly (1967) and Deardorff (1980) 463 463 464 464 dsig_e = 1.0_wp !assure to use K_m to calculate TKE instead 465 465 !of K_e which is used in RANS mode 466 467 SELECT CASE ( TRIM( turbulence_closure ) )468 469 CASE ( 'Moeng_Wyngaard' )470 les_mw = .TRUE.471 472 CASE ( 'dynamic' )473 les_dynamic = .TRUE.474 475 CASE DEFAULT476 !> @todo rework this part so that only one call of this error exists477 message_string = 'Unknown turbulence closure: ' // &478 TRIM( turbulence_closure )479 CALL message( 'tcm_check_parameters', 'PA0500', 1, 2, 0, 6, 0 )480 481 END SELECT482 466 483 467 ENDIF … … 502 486 CASE ( 'diss' ) 503 487 unit = 'm2/s3' 504 505 CASE ( 'diss1', 'diss2', & !> @todo remove later506 'diss_prod1', 'diss_adve1', 'diss_diff1', &507 'diss_prod2', 'diss_adve2', 'diss_diff2', &508 'diss_prod3', 'diss_adve3', 'diss_diff3', 'dummy3' )509 unit = 'debug output'510 488 511 489 CASE ( 'kh', 'km' ) … … 544 522 545 523 CASE ( 'diss', 'diss_xy', 'diss_xz', 'diss_yz' ) 546 grid_x = 'x'547 grid_y = 'y'548 grid_z = 'zu'549 550 CASE ( 'diss1', 'diss2', & !> @todo remove later551 'diss_prod1', 'diss_adve1', 'diss_diff1', &552 'diss_prod2', 'diss_adve2', 'diss_diff2', &553 'diss_prod3', 'diss_adve3', 'diss_diff3', 'dummy3' )554 524 grid_x = 'x' 555 525 grid_y = 'y' … … 741 711 INTEGER(iwp) :: nzt_do !< vertical output index (top) 742 712 743 LOGICAL :: found !< flag if output variable is found713 LOGICAL :: found !< flag if output variable is found 744 714 LOGICAL :: resorted !< flag if output is already resorted 745 715 746 REAL(wp) :: fill_value = -999 .0_wp !< value for the _FillValue attribute716 REAL(wp) :: fill_value = -9999.0_wp !< value for the _FillValue attribute 747 717 748 718 REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do) :: local_pf !< local … … 842 812 LOGICAL :: resorted !< flag if output is already resorted 843 813 844 REAL(wp) :: fill_value = -999 .0_wp !< value for the _FillValue attribute814 REAL(wp) :: fill_value = -9999.0_wp !< value for the _FillValue attribute 845 815 846 816 REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do) :: local_pf !< local … … 889 859 to_be_resorted => km_av 890 860 ENDIF 891 892 CASE ( 'dummy3' ) !> @todo remove later893 IF ( av == 0 ) THEN894 to_be_resorted => dummy3895 ENDIF896 897 CASE ( 'diss1' ) !> @todo remove later898 IF ( av == 0 ) THEN899 to_be_resorted => dummy1900 ENDIF901 902 CASE ( 'diss2' ) !> @todo remove later903 IF ( av == 0 ) THEN904 to_be_resorted => dummy2905 ENDIF906 907 CASE ( 'diss_prod1' ) !> @todo remove later908 IF ( av == 0 ) THEN909 to_be_resorted => diss_prod1910 ENDIF911 912 CASE ( 'diss_adve1' ) !> @todo remove later913 IF ( av == 0 ) THEN914 to_be_resorted => diss_adve1915 ENDIF916 917 CASE ( 'diss_diff1' ) !> @todo remove later918 IF ( av == 0 ) THEN919 to_be_resorted => diss_diff1920 ENDIF921 922 CASE ( 'diss_prod2' ) !> @todo remove later923 IF ( av == 0 ) THEN924 to_be_resorted => diss_prod2925 ENDIF926 927 CASE ( 'diss_adve2' ) !> @todo remove later928 IF ( av == 0 ) THEN929 to_be_resorted => diss_adve2930 ENDIF931 932 CASE ( 'diss_diff2' ) !> @todo remove later933 IF ( av == 0 ) THEN934 to_be_resorted => diss_diff2935 ENDIF936 937 CASE ( 'diss_prod3' ) !> @todo remove later938 IF ( av == 0 ) THEN939 to_be_resorted => diss_prod3940 ENDIF941 942 CASE ( 'diss_adve3' ) !> @todo remove later943 IF ( av == 0 ) THEN944 to_be_resorted => diss_adve3945 ENDIF946 947 CASE ( 'diss_diff3' ) !> @todo remove later948 IF ( av == 0 ) THEN949 to_be_resorted => diss_diff3950 ENDIF951 861 952 862 CASE DEFAULT … … 993 903 ALLOCATE( kh(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 994 904 ALLOCATE( km(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 995 996 ALLOCATE( dummy1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) !> @todo remove later997 ALLOCATE( dummy2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )998 ALLOCATE( dummy3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )999 ALLOCATE( diss_adve1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1000 ALLOCATE( diss_adve2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1001 ALLOCATE( diss_adve3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1002 ALLOCATE( diss_prod1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1003 ALLOCATE( diss_prod2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1004 ALLOCATE( diss_prod3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1005 ALLOCATE( diss_diff1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1006 ALLOCATE( diss_diff2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1007 ALLOCATE( diss_diff3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )1008 dummy1 = 0.0_wp1009 dummy2 = 0.0_wp1010 dummy3 = 0.0_wp1011 diss_adve1 = 0.0_wp1012 diss_adve2 = 0.0_wp1013 diss_adve3 = 0.0_wp1014 diss_prod1 = 0.0_wp1015 diss_prod2 = 0.0_wp1016 diss_prod3 = 0.0_wp1017 diss_diff1 = 0.0_wp1018 diss_diff2 = 0.0_wp1019 diss_diff3 = 0.0_wp1020 905 1021 906 #if defined( __nopointer ) … … 1095 980 !-- Initialize mixing length 1096 981 CALL tcm_init_mixing_length 1097 dummy3 = l_wall !> @todo remove later1098 982 1099 983 ! … … 1143 1027 kh = 0.01_wp ! there must exist an initial diffusion, because 1144 1028 km = 0.01_wp ! otherwise no TKE would be produced by the 1145 1146 1029 ! production terms, as long as not yet 1030 ! e = (u*/cm)**2 at k=nzb+1 1147 1031 ELSE 1148 1032 kh = 0.00001_wp … … 2335 2219 INTEGER(iwp) :: tn !< task number of openmp task 2336 2220 2337 ! INTEGER(iwp) :: pis = 32 !< debug variable, print from i=pis !> @todo remove later2338 ! INTEGER(iwp) :: pie = 32 !< debug variable, print until i=pie !> @todo remove later2339 ! INTEGER(iwp) :: pjs = 26 !< debug variable, print from j=pjs !> @todo remove later2340 ! INTEGER(iwp) :: pje = 26 !< debug variable, print until j=pje !> @todo remove later2341 ! INTEGER(iwp) :: pkb = 1 !< debug variable, print from k=pkb !> @todo remove later2342 ! INTEGER(iwp) :: pkt = 7 !< debug variable, print until k=pkt !> @todo remove later2343 2344 REAL(wp), DIMENSION(nzb:nzt+1) :: dum_adv !< debug variable !> @todo remove later2345 REAL(wp), DIMENSION(nzb:nzt+1) :: dum_pro !< debug variable !> @todo remove later2346 REAL(wp), DIMENSION(nzb:nzt+1) :: dum_dif !< debug variable !> @todo remove later2347 2348 !5555 FORMAT(A,7(1X,E12.5)) !> @todo remove later2349 2350 2221 ! 2351 2222 !-- If required, compute prognostic equation for turbulent kinetic … … 2368 2239 ENDIF 2369 2240 2370 dum_adv = tend(:,j,i) !> @todo remove later2371 2372 2241 CALL production_e( i, j, .FALSE. ) 2373 2374 dum_pro = tend(:,j,i) - dum_adv !> @todo remove later2375 2242 2376 2243 IF ( .NOT. humidity ) THEN … … 2383 2250 CALL diffusion_e( i, j, vpt, pt_reference ) 2384 2251 ENDIF 2385 2386 dum_dif = tend(:,j,i) - dum_adv - dum_pro !> @todo remove later2387 2252 2388 2253 ! … … 2423 2288 ENDIF 2424 2289 2425 ! if ( i >= pis .and. i <= pie .and. j >= pjs .and. j <= pje ) then !> @todo remove later2426 ! WRITE(9, *) '------'2427 ! WRITE(9, '(A,F8.3,1X,F8.3,1X,I2)') 't, dt, int_ts:', simulated_time, dt_3d, intermediate_timestep_count2428 ! WRITE(9, *) 'i:', i2429 ! WRITE(9, *) 'j:', j2430 ! WRITE(9, *) 'k:', pkb, ' - ', pkt2431 ! WRITE(9, *) '---'2432 ! WRITE(9, *) 'e:'2433 ! WRITE(9, 5555) 'adv :', dum_adv(pkb:pkt)2434 ! WRITE(9, 5555) 'pro :', dum_pro(pkb:pkt)2435 ! WRITE(9, 5555) 'dif :', dum_dif(pkb:pkt)2436 ! WRITE(9, 5555) 'tend:', tend(pkb:pkt,j,i)2437 ! WRITE(9, 5555) 'e_p :', e_p(pkb:pkt,j,i)2438 ! WRITE(9, 5555) 'e :', e(pkb:pkt,j,i)2439 ! FLUSH(9)2440 ! endif2441 2442 2290 ENDIF ! TKE equation 2443 2291 … … 2445 2293 !-- If required, compute prognostic equation for TKE dissipation rate 2446 2294 IF ( rans_tke_e ) THEN 2447 2448 2295 ! 2449 2296 !-- Tendency-terms for dissipation … … 2460 2307 CALL advec_s_up( i, j, diss ) 2461 2308 ENDIF 2462 2463 IF ( intermediate_timestep_count == 1 ) diss_adve1(:,j,i) = tend(:,j,i) !> @todo remove later2464 IF ( intermediate_timestep_count == 2 ) diss_adve2(:,j,i) = tend(:,j,i)2465 IF ( intermediate_timestep_count == 3 ) diss_adve3(:,j,i) = tend(:,j,i)2466 2467 2309 ! 2468 2310 !-- Production of TKE dissipation rate 2469 2311 CALL production_e( i, j, .TRUE. ) 2470 2471 IF ( intermediate_timestep_count == 1 ) diss_prod1(:,j,i) = tend(:,j,i) - diss_adve1(:,j,i) !> @todo remove later2472 IF ( intermediate_timestep_count == 2 ) diss_prod2(:,j,i) = tend(:,j,i) - diss_adve2(:,j,i)2473 IF ( intermediate_timestep_count == 3 ) diss_prod3(:,j,i) = tend(:,j,i) - diss_adve3(:,j,i)2474 2475 dum_pro = tend(:,j,i) - dum_adv !> @todo remove later2476 2477 2312 ! 2478 2313 !-- Diffusion term of TKE dissipation rate 2479 2314 CALL diffusion_diss( i, j ) 2480 2481 IF ( intermediate_timestep_count == 1 ) diss_diff1(:,j,i) = tend(:,j,i) - diss_adve1(:,j,i) - diss_prod1(:,j,i) !> @todo remove later2482 IF ( intermediate_timestep_count == 2 ) diss_diff2(:,j,i) = tend(:,j,i) - diss_adve2(:,j,i) - diss_prod2(:,j,i)2483 IF ( intermediate_timestep_count == 3 ) diss_diff3(:,j,i) = tend(:,j,i) - diss_adve3(:,j,i) - diss_prod3(:,j,i)2484 ! IF ( intermediate_timestep_count == 3 ) dummy3(:,j,i) = km(:,j,i)2485 2486 dum_dif = tend(:,j,i) - dum_adv - dum_pro !> @todo remove later2487 2488 2315 ! 2489 2316 !-- Additional sink term for flows through plant canopies … … 2522 2349 ENDIF 2523 2350 2524 IF ( intermediate_timestep_count == 1 ) dummy1(:,j,i) = diss_p(:,j,i) !> @todo remove later2525 IF ( intermediate_timestep_count == 2 ) dummy2(:,j,i) = diss_p(:,j,i)2526 2527 ! if ( i >= pis .and. i <= pie .and. j >= pjs .and. j <= pje ) then !> @todo remove later2528 ! WRITE(9, *) '---'2529 ! WRITE(9, *) 'diss:'2530 ! WRITE(9, 5555) 'adv :', dum_adv(pkb:pkt)2531 ! WRITE(9, 5555) 'pro :', dum_pro(pkb:pkt)2532 ! WRITE(9, 5555) 'dif :', dum_dif(pkb:pkt)2533 ! WRITE(9, 5555) 'tend :', tend(pkb:pkt,j,i)2534 ! WRITE(9, 5555) 'diss_p:', diss_p(pkb:pkt,j,i)2535 ! WRITE(9, 5555) 'diss :', diss(pkb:pkt,j,i)2536 ! WRITE(9, *) '---'2537 ! WRITE(9, 5555) 'km :', km(pkb:pkt,j,i)2538 ! flush(9)2539 ! endif2540 2541 2351 ENDIF ! dissipation equation 2542 2352 … … 2586 2396 INTEGER(iwp) :: flag_nr !< number of masking flag 2587 2397 2588 REAL(wp) :: def !< 2398 REAL(wp) :: def !< ( du_i/dx_j + du_j/dx_i ) * du_i/dx_j 2589 2399 REAL(wp) :: flag !< flag to mask topography 2590 REAL(wp) :: k1 !< 2591 REAL(wp) :: k2 !< 2400 REAL(wp) :: k1 !< temporary factor 2401 REAL(wp) :: k2 !< temporary factor 2592 2402 REAL(wp) :: km_neutral !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces 2593 REAL(wp) :: theta !< 2594 REAL(wp) :: temp !< 2403 REAL(wp) :: theta !< virtual potential temperature 2404 REAL(wp) :: temp !< theta * Exner-function 2595 2405 REAL(wp) :: sign_dir !< sign of wall-tke flux, depending on wall orientation 2596 2406 REAL(wp) :: usvs !< momentum flux u"v" … … 3256 3066 INTEGER(iwp) :: flag_nr !< number of masking flag 3257 3067 3258 REAL(wp) :: def !< 3068 REAL(wp) :: def !< ( du_i/dx_j + du_j/dx_i ) * du_i/dx_j 3259 3069 REAL(wp) :: flag !< flag to mask topography 3260 REAL(wp) :: k1 !< 3261 REAL(wp) :: k2 !< 3070 REAL(wp) :: k1 !< temporary factor 3071 REAL(wp) :: k2 !< temporary factor 3262 3072 REAL(wp) :: km_neutral !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces 3263 REAL(wp) :: theta !< 3264 REAL(wp) :: temp !< 3073 REAL(wp) :: theta !< virtual potential temperature 3074 REAL(wp) :: temp !< theta * Exner-function 3265 3075 REAL(wp) :: sign_dir !< sign of wall-tke flux, depending on wall orientation 3266 3076 REAL(wp) :: usvs !< momentum flux u"v" … … 3376 3186 ENDDO 3377 3187 ! 3378 !-- 3188 !-- Compute gradients at east- and west-facing walls 3379 3189 DO l = 2, 3 3380 3190 surf_s = surf_def_v(l)%start_index(j,i) … … 3395 3205 ENDDO 3396 3206 ! 3397 !-- 3207 !-- Natural surfaces 3398 3208 surf_s = surf_lsm_v(l)%start_index(j,i) 3399 3209 surf_e = surf_lsm_v(l)%end_index(j,i) … … 3413 3223 ENDDO 3414 3224 ! 3415 !-- 3225 !-- Urban surfaces 3416 3226 surf_s = surf_usm_v(l)%start_index(j,i) 3417 3227 surf_e = surf_usm_v(l)%end_index(j,i) … … 3432 3242 ENDDO 3433 3243 ! 3434 !-- 3244 !-- Compute gradients at upward-facing surfaces 3435 3245 surf_s = surf_def_h(0)%start_index(j,i) 3436 3246 surf_e = surf_def_h(0)%end_index(j,i) … … 3498 3308 IF ( .NOT. diss_production ) THEN 3499 3309 3500 !-- Compute te mdency for TKE-production from shear3310 !-- Compute tendency for TKE-production from shear 3501 3311 tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag 3502 3312 … … 3511 3321 ENDDO 3512 3322 3513 3514 3323 ! 3515 3324 !-- If required, calculate TKE production by buoyancy … … 3522 3331 !-- So far in the ocean no special treatment of density flux 3523 3332 !-- in the bottom and top surface layer 3524 3525 3333 DO k = nzb+1, nzt 3526 3334 tmp_flux(k) = kh(k,j,i) * ( prho(k+1,j,i) - prho(k-1,j,i) ) * dd2zu(k) … … 4266 4074 REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var !< temperature 4267 4075 #else 4268 REAL(wp), DIMENSION(:,:,:), POINTER :: var 4076 REAL(wp), DIMENSION(:,:,:), POINTER :: var !< temperature 4269 4077 #endif 4270 4078 … … 4323 4131 REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var !< temperature 4324 4132 #else 4325 REAL(wp), DIMENSION(:,:,:), POINTER :: var 4133 REAL(wp), DIMENSION(:,:,:), POINTER :: var !< temperature 4326 4134 #endif 4327 4135 … … 4376 4184 surf_usm_h, surf_usm_v 4377 4185 4378 INTEGER(iwp) :: i 4379 INTEGER(iwp) :: j 4380 INTEGER(iwp) :: k 4381 INTEGER(iwp) :: m 4382 INTEGER(iwp) :: n 4383 4384 REAL(wp) :: var_reference 4186 INTEGER(iwp) :: i !< loop index 4187 INTEGER(iwp) :: j !< loop index 4188 INTEGER(iwp) :: k !< loop index 4189 INTEGER(iwp) :: m !< loop index 4190 INTEGER(iwp) :: n !< loop index 4191 4192 REAL(wp) :: var_reference !< reference temperature 4385 4193 4386 4194 #if defined( __nopointer ) … … 4718 4526 REAL(wp) :: dwdz !< Gradient of w-component in z-direction 4719 4527 4720 REAL(wp) :: flag 4528 REAL(wp) :: flag !< topography flag 4721 4529 4722 4530 REAL(wp) :: uc(-1:1,-1:1) !< u on grid center -
palm/trunk/TESTS/cases/rans_tkee/INPUT/rans_tkee_p3d
r3541 r3545 27 27 time_utc_init = 0.0, 28 28 29 rans_mode = .T.,30 29 turbulence_closure = 'TKE-e', 31 30
Note: See TracChangeset
for help on using the changeset viewer.