Ignore:
Timestamp:
Apr 30, 2021, 11:45:23 PM (4 years ago)
Author:
Laurent Fairhead
Message:

By request, re-introduction of two 'bugs' so that running without the iflag_new_t2mq2m
gives exactly the same results as CMIP6 previous simulations

Location:
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cdrag_mod.F90

    r3826 r3886  
    130130  INTEGER, SAVE :: iflag_corr_insta
    131131  !$OMP THREADPRIVATE(iflag_corr_insta)
     132
     133  integer, save :: iflag_new_t2mq2m
     134  !$OMP THREADPRIVATE(iflag_new_t2mq2m)
    132135
    133136!===================================================================c
     
    201204   iflag_corr_sta=2
    202205   iflag_corr_insta=2
    203  
     206   iflag_new_t2mq2m=0
     207
    204208   CALL getin_p('iflag_corr_sta',iflag_corr_sta)
    205209   CALL getin_p('iflag_corr_insta',iflag_corr_insta)
    206 
     210   CALL getin_p('iflag_new_t2mq2m',iflag_new_t2mq2m)
    207211   firstcall = .FALSE.
    208212 ENDIF
     
    221225                 (1.+ RETV * max(q1(i),0.0))))           ! negative q1 set to zero
    222226     ztsolv = tsurf(i) * (1.0+RETV*max(qsurf(i),0.0))    ! negative qsurf set to zero
    223      ztvd = (t1(i)+zgeop1(i)/RCPD/(1.+RVTMP2*max(q1(i),0.0))) &
    224           *(1.+RETV*max(q1(i),0.0))                      ! negative q1 set to zero
     227     IF (iflag_new_t2mq2m==0) THEN
     228        ztvd = (t1(i)+zgeop1(i)/RCPD/(1.+RVTMP2*q1(i))) &
     229             *(1.+RETV*max(q1(i),0.0))                   ! negative q1 set to zero
     230     ELSE
     231        ztvd = (t1(i)+zgeop1(i)/RCPD/(1.+RVTMP2*max(q1(i),0.0))) &
     232             *(1.+RETV*max(q1(i),0.0))                   ! negative q1 set to zero
     233     ENDIF
     234     
    225235     zri(i) = zgeop1(i)*(ztvd-ztsolv)/(zdu2*ztvd)
    226236
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/pbl_surface_mod.F90

    r3837 r3886  
    31143114    DO nsrf = 1, nbsrf
    31153115       DO i = 1, klon
    3116           zxqsurf(i) = zxqsurf(i) + MAX(qsurf(i,nsrf),0.0) * pctsrf(i,nsrf)
     3116          IF (iflag_new_t2mq2m==0) THEN
     3117             zxqsurf(i) = zxqsurf(i) + qsurf(i,nsrf) * pctsrf(i,nsrf)
     3118          ELSE
     3119             zxqsurf(i) = zxqsurf(i) + MAX(qsurf(i,nsrf),0.0) * pctsrf(i,nsrf)
     3120          ENDIF
     3121         
    31173122          zxsnow(i)  = zxsnow(i)  + snow(i,nsrf)  * pctsrf(i,nsrf)
    31183123       END DO
Note: See TracChangeset for help on using the changeset viewer.