Changeset 2441


Ignore:
Timestamp:
Feb 12, 2016, 5:22:02 PM (8 years ago)
Author:
fhourdin
Message:

Introduction d'une longueur de mélange minimum dans Yamada4 (Cheruy)
Correction du Cd neutre pour chaleur et humidité k2/ln(z/z0m)/ln(z/z0h)

Location:
LMDZ5/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cdrag.F90

    r2311 r2441  
    114114  LOGICAL, PARAMETER    :: zxli=.FALSE. ! calcul des cdrags selon Laurent Li
    115115  REAL, DIMENSION(klon) :: zcdn_m, zcdn_h         ! Drag coefficient in neutral conditions
     116  REAL zzzcd
    116117!
    117118! Fonctions thermodynamiques et fonctions d'instabilite
     
    176177
    177178
    178 ! Coefficients CD neutres pour m et h
    179      zcdn_m(i) = (CKAP/LOG(1.+zgeop1(i)/(RG*z0m(i))))**2
    180      zcdn_h(i) = (CKAP/LOG(1.+zgeop1(i)/(RG*z0h(i))))**2
     179! Coefficients CD neutres pour m et h : k^2/ln(z/z0) et k^2/(ln(z/z0)*ln(z/z0h))
     180     zzzcd=CKAP/LOG(1.+zgeop1(i)/(RG*z0m(i)))
     181     zcdn_m(i) = zzzcd*zzzcd
     182     zcdn_h(i) = zzzcd*(CKAP/LOG(1.+zgeop1(i)/(RG*z0m(i))))
    181183
    182184     IF (zri(i) .GT. 0.) THEN      ! situation stable
  • LMDZ5/trunk/libf/phylmd/yamada4.F90

    r2346 r2441  
    66  USE dimphy
    77  USE print_control_mod, ONLY: prt_level
     8  USE ioipsl_getin_p_mod, ONLY : getin_p
     9
    810  IMPLICIT NONE
    911
     
    7577  DATA first, ipas/.FALSE., 0/
    7678  !$OMP THREADPRIVATE( first,ipas)
     79  REAL,SAVE :: lmixmin=1.
     80  !$OMP THREADPRIVATE(lmixmin)
     81
    7782
    7883  INTEGER ig, k
     
    107112  fl(zzz, zl0, zq2, zn2) = max(min(l0(ig)*kap*zlev(ig, &
    108113    k)/(kap*zlev(ig,k)+l0(ig)),0.5*sqrt(q2(ig,k))/sqrt( &
    109     max(n2(ig,k),1.E-10))), 1.)
     114    max(n2(ig,k),1.E-10))), lmixmin)
    110115
    111116
     
    116121    ALLOCATE (l0(klon))
    117122    firstcall = .FALSE.
     123    CALL getin_p('lmixmin',lmixmin)
    118124  END IF
    119125
     
    341347    DO k = 2, klev - 1
    342348      DO ig = 1, ngrid
    343         l(ig, k) = max(l(ig,k), 1.)
     349        l(ig, k) = max(l(ig,k), lmixmin)
    344350        km(ig, k) = l(ig, k)*sqrt(q2(ig,k))*sm(ig, k)
    345351        q2(ig, k) = q2(ig, k) + dt*km(ig, k)*m2(ig, k)*(1.-rif(ig,k))
Note: See TracChangeset for help on using the changeset viewer.