- Timestamp:
- Mar 5, 2024, 9:48:28 PM (9 months ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_wake.F90
r4842 r4845 395 395 ! ------------------------------------------------------------------------- 396 396 397 delta_t_min = 0.2 398 ! delta_t_min = 0.001 397 delta_t_min = 0.2 399 398 400 399 ! 1. - Save initial values, initialize tendencies, initialize output fields … … 2416 2415 2417 2416 SUBROUTINE pkupper (klon, klev, ptop, ph, p, pupper, kupper, & 2418 dth, hw_, rho, delta_t_min , &2417 dth, hw_, rho, delta_t_min_in, & 2419 2418 ktop, wk_adv, h_zzz, ptop1, ktop1) 2420 2419 … … 2422 2421 USE lmdz_wake_ini , ONLY : RG 2423 2422 USE lmdz_wake_ini , ONLY : hwmin 2424 USE lmdz_wake_ini , ONLY : iflag_wk_new_ptop 2423 USE lmdz_wake_ini , ONLY : iflag_wk_new_ptop, wk_delta_t_min, wk_frac_int_delta_t 2425 2424 2426 2425 IMPLICIT NONE … … 2431 2430 LOGICAL, DIMENSION (klon) , INTENT(IN) :: wk_adv 2432 2431 REAL, DIMENSION (klon,klev+1) , INTENT(IN) :: dth 2433 REAL, INTENT(IN) :: delta_t_min 2432 REAL, INTENT(IN) :: delta_t_min_in 2433 2434 2434 2435 2435 REAL, DIMENSION (klon) , INTENT(OUT) :: hw_ … … 2444 2444 INTEGER :: i,k 2445 2445 2446 REAL :: delta_t_min 2446 2447 REAL, DIMENSION (klon) :: dthmin 2447 2448 REAL, DIMENSION (klon) :: ptop_provis,ptop_new … … 2455 2456 REAL, DIMENSION (klon,klev+1) :: zzz !! 2456 2457 REAL, DIMENSION (klon) :: frac_int_dth !! 2457 REAL :: epsil !!2458 2458 REAL :: ddd!! 2459 2459 … … 2476 2476 ! - 1/ Pressure of the level where dth changes sign. 2477 2477 !print*,'WAKE LJYF' 2478 2479 2480 if (iflag_wk_new_ptop==0) then 2481 delta_t_min=delta_t_min_in 2482 else 2483 delta_t_min=wk_delta_t_min 2484 endif 2478 2485 2479 2486 DO i = 1, klon … … 2493 2500 END DO 2494 2501 END DO 2502 2495 2503 2496 2504 ! - 2/ dth integral … … 2586 2594 ! nouveau calcul de hw et ptop 2587 2595 ! ----------------------------------------------------------------------- 2588 if (iflag_wk_new_ptop>0) then2596 !if (iflag_wk_new_ptop>0) then 2589 2597 2590 epsil = 0.05 ! 5 pour cent 2591 ! epsil = 0.20 2598 IF (iflag_wk_new_ptop/=0) THEN 2599 2592 2600 2593 2601 DO i = 1, klon … … 2603 2611 IF (wk_adv(i)) THEN 2604 2612 if (k<=k_ptop_provis(i)) then 2605 ddd=dth(i,k-1)*(ph(i,k-1) - min(ptop_provis(i),ph(i,k))) 2613 ! ddd=dth(i,k-1)*(ph(i,k-1) - min(ptop_provis(i),ph(i,k))) 2614 ddd=dth(i,k-1)*(ph(i,k-1) - ph(i,k)) 2606 2615 else 2607 2616 ddd=0. … … 2619 2628 DO i=1,klon 2620 2629 IF (wk_adv(i)) THEN 2621 frac_int_dth(i)= (1.-epsil)*int_dth(i,k_ptop_provis(i))2630 frac_int_dth(i)=wk_frac_int_delta_t*int_dth(i,k_ptop_provis(i)) 2622 2631 !ELSE 2623 2632 ! frac_int_dth(i)=0. … … 2681 2690 END DO 2682 2691 2683 endif 2684 2685 if (iflag_wk_new_ptop==2) then 2692 ENDIF 2693 2694 !if (iflag_wk_new_ptop==2) then 2695 IF (iflag_wk_new_ptop>0) THEN 2686 2696 do i=1,klon 2687 2697 ptop(i)=ptop1(i) … … 2689 2699 hw_(i)=h_zzz(i) 2690 2700 enddo 2691 endif 2692 2701 2702 !endif 2703 ENDIF 2693 2704 2694 2705 kupper = 0 -
LMDZ6/trunk/libf/phylmd/lmdz_wake_ini.F90
r4842 r4845 31 31 REAL, SAVE, PROTECTED :: tau_cv 32 32 !$OMP THREADPRIVATE(tau_cv) 33 34 REAL, SAVE, PROTECTED :: wk_delta_t_min 35 !$OMP THREADPRIVATE(wk_delta_t_min) 36 37 REAL, SAVE, PROTECTED :: wk_frac_int_delta_t 38 !$OMP THREADPRIVATE(wk_frac_int_delta_t) 39 33 40 REAL, SAVE, PROTECTED :: rzero, aa0 ! minimal wake radius and area 34 41 !$OMP THREADPRIVATE(rzero, aa0) … … 215 222 CALL getin_p('iflag_wk_profile',iflag_wk_profile) ! switch between wdens prescribed 216 223 ! and wdens prognostic 217 iflag_wk_profile = 0 224 ! iflag_wk_profile = 0 225 iflag_wk_new_ptop = 0 218 226 CALL getin_p('iflag_wk_new_ptop',iflag_wk_new_ptop) 219 227 220 228 tau_cv = 4000. 221 229 CALL getin_p('tau_cv', tau_cv) 230 231 wk_delta_t_min = 0. 232 CALL getin_p('wk_delta_t_min', wk_delta_t_min) 233 234 wk_frac_int_delta_t = 0.9 235 CALL getin_p('wk_frac_int_delta_t', wk_frac_int_delta_t) 236 222 237 223 238 !------------------------------------------------------------------------ … … 245 260 CALL getin_p('iflag_wk_check_trgl ', iflag_wk_check_trgl) 246 261 WRITE(*,*) 'iflag_wk_check_trgl=', iflag_wk_check_trgl 262 263 WRITE(*,*) 'wk_delta_t_min=', wk_delta_t_min 264 WRITE(*,*) 'wk_frac_int_delta_t=', wk_frac_int_delta_t 265 WRITE(*,*) 'iflag_wk_new_ptop=', iflag_wk_new_ptop 247 266 248 267 RETURN
Note: See TracChangeset
for help on using the changeset viewer.