Ignore:
Timestamp:
Oct 22, 2013, 11:37:11 AM (11 years ago)
Author:
idelkadi
Message:

1) Patchs for idealized terra- and aqua-planets simulations.
ablsno.F90, imposing snow albedo at albsno0 if >= 0. (default val. : -1)
pbl_surface_mod.F90 : zero evaporation if either qsol0 (for terra-planets) or

evap0 (for aqua-planets) = 0.

2) New flag iflag_fisrtilp_qsat=0/1 for fisrtilp.F90, fisrtilp.h:

temperature dependency of qsat for iterative procedure
temporary flag to switch between the old (CMIP5, =0) and new versions (=1) versions :
zcond(i) = MAX(0.0,zqn(i)-zqs(i))/(1.+iflag_fisrtilp_qsat*zdqs(i))
=1 should be avoided because it creates significant supersaturation.
Both options are wrong (ongoing work ...)

clesphys.h, conf_phys_m.F90 : new parameters, iflag_fisrtilp_qsat, albsno0 and evap0

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

Legend:

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

    r782 r1894  
    55
    66  IMPLICIT NONE
     7
     8  INCLUDE "clesphys.h"
    79
    810! Input arguments
     
    3335!****************************************************************************************
    3436
     37  if (albsno0>=0.) then
     38     init(:)=albsno0
     39     decay(:)=0.
     40  endif
     41
    3542  veget = 0.
    3643  veget(:,1) = 1.     ! desert partout
  • LMDZ5/trunk/libf/phylmd/clesphys.h

    r1877 r1894  
    4141       REAL fmagic, pmagic
    4242! Hauteur (imposee) du contenu en eau du sol
    43            REAL qsol0
     43           REAL qsol0,albsno0,evap0
    4444! Frottement au sol (Cdrag)
    4545       Real f_cdrag_ter,f_cdrag_oce
     
    101101     &     , freq_ISCCP, ecrit_ISCCP, freq_COSP, ip_ebil_phy            &
    102102     &     , ok_lic_melt, cvl_corr, aer_type                            &
    103      &     , qsol0, iflag_rrtm, ok_strato,ok_hines,ecrit_LES            &
     103     &     , qsol0,albsno0,evap0                                        &
     104     &     , iflag_rrtm, ok_strato,ok_hines,ecrit_LES                   &
    104105     &     , co2_ppm0, iflag_ice_thermo
    105106     
  • LMDZ5/trunk/libf/phylmd/conf_phys_m.F90

    r1877 r1894  
    148148  REAL,SAVE :: inertie_sol_omp,inertie_sno_omp,inertie_ice_omp
    149149  REAL,SAVE :: qsol0_omp
     150  REAL,SAVE :: evap0_omp
     151  REAL,SAVE :: albsno0_omp
    150152  REAL      :: solarlong0
    151153  REAL,SAVE :: solarlong0_omp
     
    175177  INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp
    176178  INTEGER, SAVE :: iflag_ener_conserv_omp
     179  INTEGER, SAVE :: iflag_fisrtilp_qsat_omp
    177180  LOGICAL,SAVE :: ok_strato_omp
    178181  LOGICAL,SAVE :: ok_hines_omp
     
    686689       CALL getin('iflag_ener_conserv',iflag_ener_conserv_omp)
    687690
     691!Config  Key  = iflag_fisrtilp_qsat
     692!Config  Desc = Flag de convection
     693!Config  Def  = 1
     694!Config  Help = Flag  pour la convection les options suivantes existent :
     695!Config         -1 pour Kinetic energy correction
     696!Config         1  conservation kinetic and enthalpy
     697       iflag_fisrtilp_qsat_omp = 0
     698       CALL getin('iflag_fisrtilp_qsat',iflag_fisrtilp_qsat_omp)
     699
    688700!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    689701!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    897909!
    898910!-----------------------------------------------------------------------
    899 !  Valeur imposee de l'humidite du sol pour le modele bucket.
    900 !Config Key  = qsol0
    901 !Config Desc = 
    902 !Config Def  = -1.
    903 !Config Help =
    904 !
     911!  Valeur imposee pour configuration idealisees
     912!Config Key  = qsol0 pour le bucket, evap0 pour aquaplanetes, albsno0
     913! Default value -1 to activate the full computation
    905914  qsol0_omp = -1.
    906915  call getin('qsol0',qsol0_omp)
     916  evap0_omp = -1.
     917  call getin('evap0',evap0_omp)
     918  albsno0_omp = -1.
     919  call getin('albsno0',albsno0_omp)
    907920!
    908921!-----------------------------------------------------------------------
     
    16801693    iflag_con = iflag_con_omp
    16811694    iflag_ener_conserv = iflag_ener_conserv_omp
     1695    iflag_fisrtilp_qsat = iflag_fisrtilp_qsat_omp
    16821696
    16831697    epmax = epmax_omp
     
    16951709    solarlong0 = solarlong0_omp
    16961710    qsol0 = qsol0_omp
     1711    evap0 = evap0_omp
     1712    albsno0 = albsno0_omp
    16971713    inertie_sol = inertie_sol_omp
    16981714    inertie_ice = inertie_ice_omp
     
    18951911  write(lunout,*)'iflag_con=',iflag_con
    18961912  write(lunout,*)'iflag_ener_conserv=',iflag_ener_conserv
     1913  write(lunout,*)'iflag_fisrtilp_qsat=',iflag_fisrtilp_qsat
    18971914  write(lunout,*)' epmax = ', epmax
    18981915  write(lunout,*)' ok_adj_ema = ', ok_adj_ema
     
    19661983  write(lunout,*)' solarlong0 = ', solarlong0
    19671984  write(lunout,*)' qsol0 = ', qsol0
     1985  write(lunout,*)' evap0 = ', evap0
     1986  write(lunout,*)' albsno0 = ', albsno0
    19681987  write(lunout,*)' inertie_sol = ', inertie_sol
    19691988  write(lunout,*)' inertie_ice = ', inertie_ice
  • LMDZ5/trunk/libf/phylmd/fisrtilp.F90

    r1855 r1894  
    566566              zqn(i) = zq(i)
    567567              rneb(i,k) = 1.0                 
    568               zcond(i) = MAX(0.0,zqn(i)-zqs(i))/(1+zdqs(i))
     568              zcond(i) = MAX(0.0,zqn(i)-zqs(i))/(1.+iflag_fisrtilp_qsat*zdqs(i))
    569569              rhcl(i,k)=1.0
    570570           ELSE
    571               zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)/(1+zdqs(i))
     571              zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)/(1.+iflag_fisrtilp_qsat*zdqs(i))
    572572              rhcl(i,k)=(zqs(i)+zq(i)-zdelq)/2./zqs(i)
    573573           ENDIF
  • LMDZ5/trunk/libf/phylmd/fisrtilp.h

    r793 r1894  
    1414      LOGICAL reevap_ice
    1515      INTEGER iflag_pdf
     16      INTEGER iflag_fisrtilp_qsat
    1617
    1718      common/comfisrtilp/                                               &
     
    2425     &     ,coef_eva                                                    &
    2526     &     ,reevap_ice                                                  &
     27     &     ,iflag_fisrtilp_qsat                                         &
    2628     &     ,iflag_pdf       
    2729
  • LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90

    r1887 r1894  
    269269    INCLUDE "YOETHF.h"
    270270    INCLUDE "temps.h"
    271 !****************************************************************************************
    272 ! Declarations specifiques pour le 1D. A reprendre
    273271    INCLUDE "flux_arp.h"
    274 ! Input variables
    275272!****************************************************************************************
    276273    REAL,                         INTENT(IN)        :: dtime   ! time interval (s)
     
    512509
    513510!****************************************************************************************
     511
    514512! End of declarations
    515513!****************************************************************************************
     
    562560! Force soil water content to qsol0 if qsol0>0 and VEGET=F (use bucket
    563561! instead of ORCHIDEE)
    564     IF (qsol0>0.) THEN
     562    IF (qsol0>=0.) THEN
    565563      PRINT*,'WARNING : On impose qsol=',qsol0
    566564      qsol(:)=qsol0
     
    983981!
    984982!****************************************************************************************
     983
     984       if (evap0>=0.) then
     985          yevap(:)=evap0
     986          yevap(:)=RLVTT*evap0
     987       endif
     988
     989
    985990       y_d_ts(1:knon)   = ytsurf_new(1:knon) - yts(1:knon)
    986991 
Note: See TracChangeset for help on using the changeset viewer.