Ignore:
Timestamp:
Nov 30, 2018, 12:55:49 AM (6 years ago)
Author:
jvatant
Message:

Major radiative transfer contribution : Add the 'corrk_recombin' option that allows to use
correlated-k for single species instead of pre-mix and enables more flexiblity for variable species.
-> Algorithm inspired from Lacis and Oinas 1991 and Amundsen et al 2016

+ Added 'recombin_corrk.F90' - Important improvements in 'sugas_corrk.90' and 'callcork.F90'

  • Must have the desired variable species as tracers -> TBD : Enable to force composition even if no tracers
  • To have decent CPU time recombining is not done on all gridpoints and wavelenghts but we calculate a gasi/v_recomb variable on the reference corrk-k T,P grid (only for T,P values who match the atmospheric conditions ) which is then processed as a standard pre-mix in optci/v routines, but updated every time tracers on the ref P grid have varied > 1%.


READ CAREFULY :

  • In case of 'corrk_recombin', the variable L_NREFVAR doesn't have the same meaning as before and doesn't stand for the different mixing ratios but the different species.
  • Input corr-k should be found in corrkdir within 'corrk_gcm_IR/VI_XXX.dat' and can contain a 'fixed' specie ( compulsory if you include self-broadening ) that MUST have been created with correct mixing ratios, or a variable specie for which mixing ratio MUST have been set to 1 ( no self-broadening then, assume it's a trace sepecie ) -> You can't neither have CIA of variable species included upstream in the corr-k
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/optcv.F90

    r2046 r2050  
    1 SUBROUTINE OPTCV(PQO,NLAY,PLEV,TMID,PMID,  &
     1SUBROUTINE OPTCV(PQMO,NLAY,PLEV,TMID,PMID,  &
    22     DTAUV,TAUV,TAUCUMV,WBARV,COSBV,TAURAY,TAUGSURF,SEASHAZEFACT)
    33
    44  use radinc_h
    5   use radcommon_h, only: gasv,tlimit,Cmk,gzlat_ig,tgasref,pfgasref,wnov,scalep,indv,gweight
     5  use radcommon_h, only: gasv,gasv_recomb,tlimit,Cmk,gzlat_ig, &
     6                         tgasref,pfgasref,wnov,scalep,indv,gweight
    67  use gases_h
    78  use comcstfi_mod, only: r
    8   use callkeys_mod, only: continuum,graybody,callgasvis,callclouds,callmufi,seashaze,uncoupl_optic_haze
     9  use callkeys_mod, only: continuum,graybody,callgasvis,corrk_recombin,  &
     10                          callclouds,callmufi,seashaze,uncoupl_optic_haze
    911  use tracer_h, only: nmicro,nice
    1012  use MMP_OPTICS
     
    4345  ! Input/Output
    4446  !==========================================================
    45   REAL*8, INTENT(IN)  :: PQO(nlay,nmicro) ! Tracers (X/m2).
    46   INTEGER, INTENT(IN) :: NLAY             ! Number of pressure layers (for pqo)
     47  REAL*8, INTENT(IN)  :: PQMO(nlay,nmicro)  ! Tracers for microphysics optics (X/m2).
     48  INTEGER, INTENT(IN) :: NLAY               ! Number of pressure layers (for pqmo)
    4749  REAL*8, INTENT(IN)  :: PLEV(L_LEVELS)
    4850  REAL*8, INTENT(IN)  :: TMID(L_LEVELS), PMID(L_LEVELS)
     
    167169        ! as long as the microphysics only isn't fully debugged -- JVO 01/18
    168170        IF (callmufi .AND. (.NOT. uncoupl_optic_haze)) THEN
    169           m0as = pqo(ilay,1)
    170           m3as = pqo(ilay,2)
    171           m0af = pqo(ilay,3)
    172           m3af = pqo(ilay,4)
     171          m0as = pqmo(ilay,1)
     172          m3as = pqmo(ilay,2)
     173          m0af = pqmo(ilay,3)
     174          m3af = pqmo(ilay,4)
    173175
    174176          IF (.NOT.mmp_sph_optics_vis(m0as,m3as,nw,ext_s,sca_s,ssa_s,asf_s)) &
     
    267269           ! transfer on the tested simulations !
    268270
    269            tmpk = GASV(MT(K):MT(K)+1,MP(K):MP(K)+1,1,NW,NG)
     271           if (corrk_recombin) then
     272             tmpk = GASV_RECOMB(MT(K):MT(K)+1,MP(K):MP(K)+1,NW,NG)
     273           else
     274             tmpk = GASV(MT(K):MT(K)+1,MP(K):MP(K)+1,1,NW,NG)
     275           endif
    270276             
    271277           KCOEF(1) = tmpk(1,1) ! KCOEF(1) = GASV(MT(K),MP(K),1,NW,NG)
     
    302308  !     Now the full treatment for the layers, where besides the opacity
    303309  !     we need to calculate the scattering albedo and asymmetry factors
     310  ! ======================================================================
    304311
    305312  ! Haze scattering
Note: See TracChangeset for help on using the changeset viewer.