Changeset 4840


Ignore:
Timestamp:
Mar 2, 2024, 7:21:43 PM (2 months ago)
Author:
fhourdin
Message:

Suite nettoyage lmdz_wake

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_wake.F90

    r4839 r4840  
    319319  REAL, DIMENSION (klon)                                :: h_zzz
    320320
    321  print*,'WAKE LJYFz'
     321! print*,'WAKE LJYFzzzzz'
    322322
    323323  ! -------------------------------------------------------------------------
     
    24222422USE lmdz_wake_ini , ONLY : RG
    24232423USE lmdz_wake_ini , ONLY : hwmin
     2424
    24242425IMPLICIT NONE
    24252426
    2426 INTEGER,  INTENT(IN)                              :: klon,klev
    2427 REAL,     INTENT(IN),   DIMENSION (klon,klev+1)   :: ph, p
    2428 REAL,     INTENT(IN),   DIMENSION (klon,klev+1)   :: rho
    2429 LOGICAL,  INTENT(IN),   DIMENSION (klon)          :: wk_adv
    2430 REAL,     INTENT(IN),   DIMENSION (klon,klev+1)   :: dth
    2431 
    2432 REAL,     INTENT(OUT),   DIMENSION (klon)         :: hw_
    2433 REAL,     INTENT(OUT),   DIMENSION (klon)         :: ptop
    2434 INTEGER,  INTENT(OUT),   DIMENSION (klon)         :: Ktop
    2435 REAL,     INTENT(OUT),   DIMENSION (klon)         :: pupper
    2436 INTEGER,  INTENT(OUT),   DIMENSION (klon)         :: kupper
    2437 INTEGER                                           :: i,k
    2438 
     2427INTEGER,                              INTENT(IN) :: klon,klev
     2428REAL,       DIMENSION (klon,klev+1) , INTENT(IN) :: ph, p
     2429REAL,       DIMENSION (klon,klev+1) , INTENT(IN) :: rho
     2430LOGICAL,    DIMENSION (klon)        , INTENT(IN) :: wk_adv
     2431REAL,       DIMENSION (klon,klev+1) , INTENT(IN) :: dth
    24392432REAL,                                 INTENT(IN) :: delta_t_min
    24402433
     2434REAL,       DIMENSION (klon)  , INTENT(OUT)        :: hw_
     2435REAL,       DIMENSION (klon)  , INTENT(OUT)        :: ptop
     2436INTEGER,    DIMENSION (klon)  , INTENT(OUT)        :: Ktop
     2437REAL,       DIMENSION (klon)  , INTENT(OUT)        :: pupper
     2438INTEGER,    DIMENSION (klon)  , INTENT(OUT)        :: kupper
    24412439REAL,       DIMENSION (klon)  , INTENT(OUT)        :: h_zzz       !!
    24422440REAL,       DIMENSION (klon)  , INTENT(OUT)        :: Ptop1      !!
    24432441INTEGER,    DIMENSION (klon)  , INTENT(OUT)        :: ktop1      !!
    24442442
     2443INTEGER :: i,k
    24452444
    24462445REAL,     DIMENSION (klon)         :: dthmin
     
    24872486    DO k = 2, klev
    24882487      DO i = 1, klon
    2489 !       if (compte==92) then
    2490 !            print*,'debug xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    2491 !            print*,'debug i =',i
    2492 !            print*,'debug k =',k
    2493 !            print*,'debug wk_adv(i) =',wk_adv(i)
    2494 !            print*,'debug ptop_provis(i) =',ptop_provis(i)
    2495 !            print*,'debug ph(i,1) =',ph(i,1)
    2496 !            print*,'debug dth(i,k) =',dth(i,k)
    2497 !            print*,'debug delta_t_min =',delta_t_min
    2498 !            print*,'debug p(i,k-1) =',p(i,k-1)
    2499 !            print*,'debug dth(i,k-1) =',dth(i,k-1)
    2500 !            print*,'debug p(i,k) =',p(i,k)
    2501 !       endif
    25022488        IF (wk_adv(i) .AND. ptop_provis(i)==ph(i,1) .AND. &
    25032489! LJYF changer :           dth(i,k)>=-delta_t_min .AND. dth(i,k-1)<-delta_t_min) THEN
     
    25972583!    PRINT *, 'wake-3, ktop(igout), kupper(igout) ', ktop(igout), kupper(igout)
    25982584!  ENDIF
    2599 
    2600  kupper = 0
    2601  
    2602 IF (wk_pupper<1.) THEN
    2603  ! Choose an integration bound well above wake top
    2604   ! -----------------------------------------------------------------
    2605 
    2606   ! Pupper = 50000.  ! melting level
    2607   ! Pupper = 60000.
    2608   ! Pupper = 80000.  ! essais pour case_e
    2609   DO i = 1, klon
    2610   !  pupper(i) = 0.6*ph(i, 1)
    2611     pupper(i) = wk_pupper*ph(i, 1)
    2612     pupper(i) = max(pupper(i), 45000.)
    2613     ! cc        Pupper(i) = 60000.
    2614   END DO
    2615 
    2616 ELSE
    2617  
    2618   DO i=1, klon
    2619      ! pupper(i) = wk_pupper*ptop(i)+(1.-wk_pupper)*ph(i, 1)
    2620      pupper(i) = min( wk_pupper*ptop(i)+(1.-wk_pupper)*ph(i, 1) , ptop(i)-5000.)
    2621   END DO
    2622 END IF
    2623  
    2624   ! -5/ Determination de kupper
    2625 
    2626   DO k = klev, 1, -1
    2627     DO i = 1, klon
    2628       IF (ph(i,k+1)<pupper(i)) kupper(i) = k
    2629     END DO
    2630   END DO
    2631 
    2632   ! On evite kupper = 1 et kupper = klev
    2633   DO i = 1, klon
    2634     kupper(i) = max(kupper(i), 2)
    2635     kupper(i) = min(kupper(i), klev-1)
    2636   END DO
    26372585
    26382586    ! -----------------------------------------------------------------------
     
    27292677
    27302678endif
     2679
     2680 kupper = 0
     2681 
     2682IF (wk_pupper<1.) THEN
     2683 ! Choose an integration bound well above wake top
     2684  ! -----------------------------------------------------------------
     2685
     2686  ! Pupper = 50000.  ! melting level
     2687  ! Pupper = 60000.
     2688  ! Pupper = 80000.  ! essais pour case_e
     2689  DO i = 1, klon
     2690  !  pupper(i) = 0.6*ph(i, 1)
     2691    pupper(i) = wk_pupper*ph(i, 1)
     2692    pupper(i) = max(pupper(i), 45000.)
     2693    ! cc        Pupper(i) = 60000.
     2694  END DO
     2695
     2696ELSE
     2697 
     2698  DO i=1, klon
     2699     ! pupper(i) = wk_pupper*ptop(i)+(1.-wk_pupper)*ph(i, 1)
     2700     pupper(i) = min( wk_pupper*ptop(i)+(1.-wk_pupper)*ph(i, 1) , ptop(i)-5000.)
     2701  END DO
     2702END IF
     2703 
     2704  ! -5/ Determination de kupper
     2705
     2706  DO k = klev, 1, -1
     2707    DO i = 1, klon
     2708      IF (ph(i,k+1)<pupper(i)) kupper(i) = k
     2709    END DO
     2710  END DO
     2711
     2712  ! On evite kupper = 1 et kupper = klev
     2713  DO i = 1, klon
     2714    kupper(i) = max(kupper(i), 2)
     2715    kupper(i) = min(kupper(i), klev-1)
     2716  END DO
    27312717  !---------- FIN nouveau calcul hw et ptop -------------------------------------
    27322718
Note: See TracChangeset for help on using the changeset viewer.