Changeset 3784 for LMDZ6/trunk


Ignore:
Timestamp:
Nov 9, 2020, 3:09:22 PM (4 years ago)
Author:
evignon
Message:

correction v3783 pour convergence et compilation ancienne physique, Etienne aide par Ehouarn

Location:
LMDZ6/trunk/libf/phylmd
Files:
4 edited

Legend:

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

    r3780 r3784  
    7676    REAL, DIMENSION(klon)       :: u1_lay, v1_lay
    7777    LOGICAL                     :: check=.FALSE.
    78     REAL, DIMENSION(klon)       :: sens_prec_liq, sens_prec_sol   
    79     REAL, DIMENSION(klon)       :: lat_prec_liq, lat_prec_sol   
     78    REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol   
     79    REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol   
    8080
    8181!****************************************************************************************
     
    112112    !beta = 1.
    113113    !dif_grnd = 0.
     114   
     115   
    114116    ! EV: use calbeta to calculate beta
    115    
    116     CALL calbeta(dtime, is_oce, knon, snow, beta*0., beta, cal, dif_grnd)
     117    ! Need to initialize qsurf for calbeta but it is not modified by this routine
     118    qsurf(:)=0.
     119    CALL calbeta(dtime, is_oce, knon, snow, qsurf, beta, cal, dif_grnd)
    117120
    118121
     
    178181    USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o
    179182
    180 !    INCLUDE "indicesol.h"
     183!   INCLUDE "indicesol.h"
    181184    INCLUDE "dimsoil.h"
    182185    INCLUDE "YOMCST.h"
     
    245248
    246249! calculate the parameters cal, beta, capsol and dif_grnd and then recalculate cal
    247     CALL calbeta(dtime, is_sic, knon, snow, qsol, beta, cal, dif_grnd)
     250    CALL calbeta(dtime, is_sic, knon, snow, qsol, beta, capsol, dif_grnd)
    248251
    249252   
     
    260263    ENDIF
    261264
    262     !beta = 1.0
     265!    beta = 1.0
    263266    sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0.
    264267
     
    315318  END SUBROUTINE ocean_forced_ice
    316319
    317 !
    318320!************************************************************************
    319 !
     321! 1D case
     322!************************************************************************
     323!  SUBROUTINE read_tsurf1d(knon,sst_out)
     324!
     325! This subroutine specifies the surface temperature to be used in 1D simulations
     326!
     327!      USE dimphy, ONLY : klon
     328!
     329!      INTEGER, INTENT(IN)                  :: knon     ! nomber of points on compressed grid
     330!      REAL, DIMENSION(klon), INTENT(OUT)   :: sst_out  ! tsurf used to force the single-column model
     331!
     332!       INTEGER :: i
     333! COMMON defined in lmdz1d.F:
     334!       real ts_cur
     335!       common /sst_forcing/ts_cur
     336!
     337!       DO i = 1, knon
     338!        sst_out(i) = ts_cur
     339!       ENDDO
     340!
     341!      END SUBROUTINE read_tsurf1d
     342!
     343!
     344!************************************************************************
    320345END MODULE ocean_forced_mod
    321346
  • LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90

    r3780 r3784  
    504504    CHARACTER(len=8), DIMENSION(nbsrf), SAVE :: cl_surf
    505505!$OMP THREADPRIVATE(cl_surf)
    506  ! EV Ne sert plus:
    507  !   REAL, SAVE                               :: beta_land         ! beta for wx_dts
    508 !!$OMP THREADPRIVATE(beta_land)
     506    REAL, SAVE                               :: beta_land         ! beta for wx_dts
     507!$OMP THREADPRIVATE(beta_land)
    509508
    510509! Other local variables
     
    848847       if (klon_glo>1) ok_forc_tsurf=.FALSE.
    849848
    850 
    851849       ! intialize beta_land
    852        !beta_land = 0.5
    853        !call getin_p('beta_land', beta_land)
     850       beta_land = 0.5
     851       call getin_p('beta_land', beta_land)
    854852       
    855853       ! Initilize debug IO
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r3780 r3784  
    37383738          ENDIF
    37393739          zx_rh(i,k) = q_seri(i,k)/zx_qs
     3740            IF (iflag_ice_thermo .GT. 0) THEN
    37403741          zx_rhl(i,k) = q_seri(i,k)/(qsatl(zx_t)/pplay(i,k))
    37413742          zx_rhi(i,k) = q_seri(i,k)/(qsats(zx_t)/pplay(i,k))
     3743            ENDIF
    37423744          zqsat(i,k)=zx_qs
    37433745       ENDDO
  • LMDZ6/trunk/libf/phylmd/yamada4.F90

    r3780 r3784  
    189189       viscom=1.46E-5
    190190       viscoh=2.06E-5
     191       !lmixmin=1.0E-3
    191192       lmixmin=0.
    192193       yamada4_num=5
     
    432433      shear(ig,k)=km(ig, k)*m2(ig, k)
    433434      buoy(ig,k)=km(ig, k)*m2(ig, k)*(-1.*rif(ig,k))
    434       dissip(ig,k)=min(max(((sqrt(q2(ig,k)))**3)/(b1*l(ig,k)),1.E-12),1.E4)
     435!      dissip(ig,k)=min(max(((sqrt(q2(ig,k)))**3)/(b1*l(ig,k)),1.E-12),1.E4)
     436      dissip(ig,k)=((sqrt(q2(ig,k)))**3)/(b1*l(ig,k))
    435437     ENDDO
    436438    ENDDO
     
    537539         tkeexp=exp(-dt*disseff/tkeprov)
    538540         tkeprov= tkeprov*tkeexp
    539          q2(ig,k)=tkeprov*ydeux       
     541         q2(ig,k)=tkeprov*ydeux
    540542         
    541543        ENDDO
     
    556558!     q2(1:ngrid, k) = q2(1:ngrid, k) + dt*km(1:ngrid, k)*m2(1:ngrid, k)*(1.-rif(1:ngrid,k))
    557559      q2(1:ngrid, k) = min(max(q2(1:ngrid,k),1.E-10), 1.E4)
    558       q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(yun*l(1:ngrid,k)*b1))
     560       q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(yun*l(1:ngrid,k)*b1))
    559561!     q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(2*l(1:ngrid,k)*b1))
    560562      q2(1:ngrid, k) = q2(1:ngrid, k)*q2(1:ngrid, k)
     
    753755! Diagnostics
    754756 tke_dissip(1:ngrid,:,nsrf)=0.
    755  DO k=2,klev
    756     DO ig=1,ngrid
    757        jg=ni(ig)
    758        tke_dissip(jg,k,nsrf)=dissip(ig,k)
    759     ENDDO
    760  ENDDO
     757! DO k=2,klev
     758!    DO ig=1,ngrid
     759!       jg=ni(ig)
     760!       tke_dissip(jg,k,nsrf)=dissip(ig,k)
     761!    ENDDO
     762! ENDDO
    761763 
    762764!=============================================================================
     
    11051107   l2(1:ngrid,:)=0.0
    11061108   l_mixmin(1:ngrid,:,nsrf)=0.
    1107    l_mix(1:ngrid,:,nsrf)=1.E-5
     1109   l_mix(1:ngrid,:,nsrf)=0.
    11081110
    11091111   IF (nsrf .EQ. 1) THEN
     
    11741176    DO ig=1,ngrid
    11751177       lmix(ig,k)=MAX(MAX(l1(ig,k), l2(ig,k)),lmixmin)
    1176        lmix(ig,k)=MAX(lmix(ig,k),1.E-5)
    11771178   ENDDO
    11781179 ENDDO
     
    11801181! Diagnostics
    11811182
    1182  DO k=2,klev+1
     1183 DO k=2,klev
    11831184    DO ig=1,ngrid
    11841185       jg=ni(ig)
Note: See TracChangeset for help on using the changeset viewer.