Changeset 4074 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Feb 3, 2022, 10:03:11 AM (3 years ago)
Author:
oboucher
Message:

only compute contrail diagnostics in the right range of Gcontr

File:
1 edited

Legend:

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

    r4062 r4074  
    693693     !--critical T_LM below which no liquid contrail can form in exhaust
    694694     !Tcontr(i,k) = 226.69+9.43*log(Gcontr-0.053)+0.72*(log(Gcontr-0.053))**2 !--K
    695      Tcontr = 226.69+9.43*log(Gcontr-0.053)+0.72*(log(Gcontr-0.053))**2 !--K
    696      !print *,'Tcontr=',iter,i,k,eps_w,pplay,Gcontr,Tcontr(i,k)
    697      !--Psat with index 0 in FOEEW to get saturation wrt liquid water corresponding to Tcontr
    698      !qsatliqcontr = RESTT*FOEEW(Tcontr(i,k),0.)                               !--Pa
    699      qsatliqcontr = RESTT*FOEEW(Tcontr,0.)                               !--Pa
    700      !--Critical water vapour above which there is contrail formation for ambiant temperature
    701      !qcontr(i,k) = Gcontr*(t-Tcontr(i,k)) + qsatliqcontr                      !--Pa
    702      qcontr = Gcontr*(t-Tcontr) + qsatliqcontr                      !--Pa
    703      !--Conversion of qcontr in specific humidity - method 1
    704      !qcontr(i,k) = RD/RV*qcontr(i,k)/pplay      !--so as to return to something similar to R2ES*FOEEW/pplay
    705      qcontr2 = RD/RV*qcontr/pplay      !--so as to return to something similar to R2ES*FOEEW/pplay
    706      !qcontr(i,k) = min(0.5,qcontr(i,k))         !--and then we apply the same correction term as for qsat
    707      qcontr2 = min(0.5,qcontr2)         !--and then we apply the same correction term as for qsat
    708      !zcor = 1./(1.-RETV*qcontr(i,k))            !--for consistency with qsat but is it correct at all?
    709      zcor = 1./(1.-RETV*qcontr2)            !--for consistency with qsat but is it correct at all as p is dry?
    710      !zcor = 1./(1.+qcontr2)                 !--for consistency with qsat
    711      !qcontr(i,k) = qcontr(i,k)*zcor
    712      qcontr2 = qcontr2*zcor
    713      qcontr2=MAX(1.e-10,qcontr2)            !--eliminate negative values due to extrapolation on dilution curve
    714      !--Conversion of qcontr in specific humidity - method 2
    715      !qcontr(i,k) = eps_w*qcontr(i,k) / (pplay+eps_w*qcontr(i,k))
    716      !qcontr=MAX(1.E-10,qcontr)
    717      !qcontr2 = eps_w*qcontr / (pplay+eps_w*qcontr)
    718      !
    719      IF (t .LT. Tcontr) THEN !--contrail formation is possible
    720      !
    721      !--compute fractions of persistent (P) and non-persistent(N) contrail potential regions
    722      !!IF (qcontr(i,k).GE.qsat) THEN
    723      IF (qcontr2.GE.qsat) THEN
     695     IF (Gcontr .GT. 0.1) THEN
     696     !
     697       Tcontr = 226.69+9.43*log(Gcontr-0.053)+0.72*(log(Gcontr-0.053))**2 !--K
     698       !print *,'Tcontr=',iter,i,k,eps_w,pplay,Gcontr,Tcontr(i,k)
     699       !--Psat with index 0 in FOEEW to get saturation wrt liquid water corresponding to Tcontr
     700       !qsatliqcontr = RESTT*FOEEW(Tcontr(i,k),0.)                               !--Pa
     701       qsatliqcontr = RESTT*FOEEW(Tcontr,0.)                               !--Pa
     702       !--Critical water vapour above which there is contrail formation for ambiant temperature
     703       !qcontr(i,k) = Gcontr*(t-Tcontr(i,k)) + qsatliqcontr                      !--Pa
     704       qcontr = Gcontr*(t-Tcontr) + qsatliqcontr                      !--Pa
     705       !--Conversion of qcontr in specific humidity - method 1
     706       !qcontr(i,k) = RD/RV*qcontr(i,k)/pplay      !--so as to return to something similar to R2ES*FOEEW/pplay
     707       qcontr2 = RD/RV*qcontr/pplay      !--so as to return to something similar to R2ES*FOEEW/pplay
     708       !qcontr(i,k) = min(0.5,qcontr(i,k))         !--and then we apply the same correction term as for qsat
     709       qcontr2 = min(0.5,qcontr2)         !--and then we apply the same correction term as for qsat
     710       !zcor = 1./(1.-RETV*qcontr(i,k))            !--for consistency with qsat but is it correct at all?
     711       zcor = 1./(1.-RETV*qcontr2)            !--for consistency with qsat but is it correct at all as p is dry?
     712       !zcor = 1./(1.+qcontr2)                 !--for consistency with qsat
     713       !qcontr(i,k) = qcontr(i,k)*zcor
     714       qcontr2 = qcontr2*zcor
     715       qcontr2=MAX(1.e-10,qcontr2)            !--eliminate negative values due to extrapolation on dilution curve
     716       !--Conversion of qcontr in specific humidity - method 2
     717       !qcontr(i,k) = eps_w*qcontr(i,k) / (pplay+eps_w*qcontr(i,k))
     718       !qcontr=MAX(1.E-10,qcontr)
     719       !qcontr2 = eps_w*qcontr / (pplay+eps_w*qcontr)
     720       !
     721       IF (t .LT. Tcontr) THEN !--contrail formation is possible
     722       !
     723       !--compute fractions of persistent (P) and non-persistent(N) contrail potential regions
     724       !!IF (qcontr(i,k).GE.qsat) THEN
     725       IF (qcontr2.GE.qsat) THEN
    724726         !--none of the unsaturated clear sky is prone for contrail formation
    725727         !!fcontrN(i,k) = 0.0
     
    807809         fcontrP = fcontrP + MAX(0., 0.5*(1-pdf_N2)*(pdf_e1-pdf_e2))
    808810         !
    809      ELSE  !--qcontr LT qsat
     811       ELSE  !--qcontr LT qsat
    810812         !
    811813         !--all of ISSR is prone for contrail formation
     
    835837         !!fcontrN=2.0
    836838         !
    837      ENDIF
    838      !
    839      ENDIF !-- t < Tcontr
     839       ENDIF
     840       !
     841       ENDIF !-- t < Tcontr
     842     !
     843     ENDIF !-- Gcontr > 0.1
    840844
    841845  RETURN
Note: See TracChangeset for help on using the changeset viewer.