Changeset 1310


Ignore:
Timestamp:
Jul 10, 2014, 5:59:16 PM (10 years ago)
Author:
slebonnois
Message:

SL: VENUS VERTICAL EXTENSION. NLTE and thermospheric processes, to be run with 78 levels and specific inputs.

Location:
trunk/LMDZ.VENUS
Files:
29 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/deftank/physiq.def

    r1305 r1310  
    22#
    33# PARAMETRES ANCIENNEMENT DANS gcm.def
     4##~~~~~~~~~~~~~~~~~~~~~~~~~
    45##  Cycle diurne  ou non                 
    56cycle_diurne=y
     
    2122#
    2223# Parametres fichiers de sortie
     24##~~~~~~~~~~~~~~~~~~~~~~~~~
    2325#
    2426### OK_journe= y sortir fichier journalier histday.nc, =n pas de fichier histday.nc
     
    4951#
    5052# parametres climatiques
     53##~~~~~~~~~~~~~~~~~~~~~~~~~
    5154#
    5255# VENUS ##
     
    6063#
    6164# parameters for the tracers
     65##~~~~~~~~~~~~~~~~~~~~~~~~~
    6266#
    6367# 0: nothing (passive tracers)
     
    6872#
    6973# parameters for chemistry and microphysics
     74##~~~~~~~~~~~~~~~~~~~~~~~~~
    7075#
    7176reinit_trac=n
     
    7580#
    7681# parametres boundary layer
     82##~~~~~~~~~~~~~~~~~~~~~~~~~
    7783#
    7884iflag_pbl=8
     
    8591#
    8692# parametre convection seche
     93##~~~~~~~~~~~~~~~~~~~~~~~~~
    8794#
    8895iflag_ajs = 1
     96#
     97# parametres nlte
     98##~~~~~~~~~~~~~~~~~~~~~~~~~
     99#
     100##Pour avoir acces a tmoy
     101moyzon_ch=y
     102##Physique non-LTE ou non
     103callnlte=n
     104## choix pour profil des especes
     105nltemodel=2
     106##Absorption IR du CO2 ou non
     107callnirco2=n
     108##Choix modele absorption IR du CO2
     109nircorr=0
     110##Thermosphere ou non
     111callthermos=n
    89112
     113## Thermospheric options
     114##~~~~~~~~~~~~~~~~~~~~~~~~~
     115#Method to include solar variability?
     116#0-> Old method   1-> Variability with E10.7 as observed
     117solvarmod=0
     118
     119## (Solar min=1996.4 ave=1993.4 max=1990.6) ; Only used if solvarmod=0
     120solarcondate = 1993.4
     121
     122# value for the UV heating efficiency
     123##(experimental values between 0.19 and 0.23, lower values may
     124## be used to compensate for low 15 um cooling)
     125euveff = 0.21       
     126
  • trunk/LMDZ.VENUS/libf/phyvenus/clesphys.h

    r1305 r1310  
    11!
    22!  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
    3 !                 veillez  n'utiliser que des ! pour les commentaires
     3!                 veillez  n utiliser que des ! pour les commentaires
    44!                 et  bien positionner les & des lignes de continuation
    55!                 (les placer en colonne 6 et en colonne 73)
     
    1111       LOGICAL ok_orodr,ok_orolf,ok_gw_nonoro
    1212       LOGICAL ok_kzmin
     13       LOGICAL callnlte,callnirco2,callthermos
    1314       LOGICAL ok_cloud, ok_chem, reinit_trac, ok_sedim
    1415       INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs
    1516       INTEGER lev_histins, lev_histday, lev_histmth
    1617       INTEGER tr_scheme
     18       INTEGER nircorr, nltemodel, solvarmod
    1719       REAL    ecriphy
    1820       REAL    solaire
    1921       REAL    z0, lmixmin
    2022       REAL    ksta, inertie
     23       REAL    euveff, solarcondate
    2124
    2225       COMMON/clesphys_l/ cycle_diurne, soil_model,                     &
    2326     &     ok_orodr, ok_orolf, ok_gw_nonoro, ok_kzmin,                  &
     27     &     callnlte,callnirco2,callthermos,                             &
    2428     &     ok_cloud, ok_chem, reinit_trac, ok_sedim
    2529
    2630       COMMON/clesphys_i/ nbapp_rad, nbapp_chim,                        &
    2731     &     iflag_con, iflag_ajs,                                        &
    28      &     lev_histins, lev_histday, lev_histmth, tr_scheme
     32     &     lev_histins, lev_histday, lev_histmth, tr_scheme,            &
     33     &     nircorr, nltemodel, solvarmod
    2934
    3035       COMMON/clesphys_r/ ecriphy, solaire, z0, lmixmin,                &
    31      &     ksta, inertie
     36     &     ksta, inertie, euveff, solarcondate
    3237
  • trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90

    r1305 r1310  
    362362  call getin('ok_sedim',ok_sedim)
    363363 
     364!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     365! PARAMETER FOR NLTE PHYSICS
     366!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     367
     368!
     369!Config Key  = callnlte
     370!Config Desc =
     371!Config Def  = .false.
     372!Config Help =
     373!
     374  callnlte = .false.
     375  call getin('callnlte',callnlte)
     376
     377!
     378!Config Key  = callnirco2
     379!Config Desc =
     380!Config Def  = .false.
     381!
     382  callnirco2 = .false.
     383  call getin('callnirco2',callnirco2)
     384
     385!
     386!Config Key  = nircorr
     387!Config Desc =
     388!Config Def  = 0
     389!Config Help =
     390!
     391  nircorr = 0
     392  call getin('nircorr',nircorr)
     393
     394!
     395!Config Key  = callthermos
     396!Config Desc =
     397!Config Def  = .false.
     398!Config Help =
     399!
     400  callthermos = .false.
     401  call getin('callthermos',callthermos)
     402
     403!
     404!Config Key  = nltemodel
     405!Config Desc =
     406!Config Def  = 0
     407!Config Help =
     408!
     409  nltemodel = 0
     410  call getin('nltemodel',nltemodel)
     411
     412!
     413!Config Key  = solvarmod
     414!Config Desc =
     415!Config Def  = 1
     416!Config Help =
     417!
     418  solvarmod = 1
     419  call getin('solvarmod',solvarmod)
     420
     421!
     422!Config Key  = solarcondate
     423!Config Desc =
     424!Config Def  = 1993.4
     425!Config Help =
     426!
     427  solarcondate = 1993.4
     428  call getin('solarcondate',solarcondate)
     429
     430!
     431!Config Key  = euveff
     432!Config Desc =
     433!Config Def  = 0.21
     434!Config Help =
     435!
     436  euveff = 0.21
     437  call getin('euveff',euveff)
     438
    364439!
    365440!
     
    409484  write(numout,*)' ok_chem = ',ok_chem
    410485  write(numout,*)' ok_sedim = ',ok_sedim
     486  write(numout,*)' callnlte = ',callnlte
     487  write(numout,*)' nltemodel = ',nltemodel
     488  write(numout,*)' callnirco2 = ',callnirco2
     489  write(numout,*)' nircorr = ',nircorr
     490  write(numout,*)' callthermos = ',callthermos
     491  write(numout,*)' solvarmod = ',solvarmod
     492  write(numout,*)' solarcondate = ',solarcondate
     493  write(numout,*)' euveff = ',euveff
    411494
    412495  return
  • trunk/LMDZ.VENUS/libf/phyvenus/phys_state_var_mod.F90

    r973 r1310  
    4343!$OMP THREADPRIVATE(zuthe,zvthe)
    4444!
     45! composition for upper atmosphere
     46      REAL,ALLOCATABLE,SAVE :: co2vmr_gcm(:,:)   
     47!$OMP THREADPRIVATE(co2vmr_gcm)
     48      REAL,ALLOCATABLE,SAVE :: ovmr_gcm(:,:)   
     49!$OMP THREADPRIVATE(ovmr_gcm)
     50      REAL,ALLOCATABLE,SAVE :: n2vmr_gcm(:,:)   
     51!$OMP THREADPRIVATE(n2vmr_gcm)
     52      REAL,ALLOCATABLE,SAVE :: nvmr_gcm(:,:)   
     53!$OMP THREADPRIVATE(nvmr_gcm)
     54      REAL,ALLOCATABLE,SAVE :: covmr_gcm(:,:)   
     55!$OMP THREADPRIVATE(covmr_gcm)
     56
     57! Tendencies due to radiative scheme   [K/s]
    4558! heat : chauffage solaire
    4659! heat0: chauffage solaire ciel clair
    4760! cool : refroidissement infrarouge
    4861! cool0 : refroidissement infrarouge ciel clair
     62      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
     63!$OMP THREADPRIVATE(heat)
     64      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
     65!$OMP THREADPRIVATE(heat0)
     66      REAL,ALLOCATABLE,SAVE :: cool(:,:)
     67!$OMP THREADPRIVATE(cool)
     68      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
     69!$OMP THREADPRIVATE(cool0)
     70     REAL,ALLOCATABLE,SAVE :: dtsw(:,:)   
     71!$OMP THREADPRIVATE(dtsw)
     72     REAL,ALLOCATABLE,SAVE :: dtlw(:,:)   
     73!$OMP THREADPRIVATE(dtlw)
     74     REAL,ALLOCATABLE,SAVE :: d_t_rad(:,:),d_t_euv(:,:)   
     75!$OMP THREADPRIVATE(d_t_rad,d_t_euv)
     76     REAL,ALLOCATABLE,SAVE :: d_t_nirco2(:,:),d_t_nlte(:,:)
     77!$OMP THREADPRIVATE(d_t_nirco2,d_t_nlte)
     78
     79! Fluxes (W/m2)
    4980! sollwdown : downward LW flux at surface
    5081! sollwdownclr : downward CS LW flux at surface
     
    5586      REAL,ALLOCATABLE,SAVE :: lwnet(:,:)   
    5687!$OMP THREADPRIVATE(lwnet)
    57       REAL,ALLOCATABLE,SAVE :: heat(:,:)   
    58 !$OMP THREADPRIVATE(heat)
    59       REAL,ALLOCATABLE,SAVE :: heat0(:,:)
    60 !$OMP THREADPRIVATE(heat0)
    61       REAL,ALLOCATABLE,SAVE :: cool(:,:)
    62 !$OMP THREADPRIVATE(cool)
    63       REAL,ALLOCATABLE,SAVE :: cool0(:,:)
    64 !$OMP THREADPRIVATE(cool0)
    65       REAL,ALLOCATABLE,SAVE :: dtrad(:,:)   
    66 !$OMP THREADPRIVATE(dtrad)
    6788      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
    6889!$OMP THREADPRIVATE(topsw,toplw)
     
    117138      ALLOCATE(zuthe(klon),zvthe(klon))
    118139!
    119       ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1))
    120140      ALLOCATE(heat(klon,klev), heat0(klon,klev))
    121141      ALLOCATE(cool(klon,klev), cool0(klon,klev))
    122       ALLOCATE(dtrad(klon,klev))
     142      ALLOCATE(dtlw(klon,klev),dtsw(klon,klev))
     143      ALLOCATE(d_t_rad(klon,klev),d_t_euv(klon,klev))
     144      ALLOCATE(d_t_nirco2(klon,klev),d_t_nlte(klon,klev))
     145
     146      ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1))
    123147      ALLOCATE(topsw(klon), toplw(klon))
    124148      ALLOCATE(solsw(klon), sollw(klon))
     
    143167      deallocate(        u_ancien, v_ancien)
    144168      deallocate(zuthe, zvthe)
    145       deallocate(swnet, lwnet)
     169
    146170      deallocate(heat, heat0)
    147171      deallocate(cool, cool0)
    148       deallocate(dtrad)
     172      deallocate(dtlw,dtsw)
     173      deallocate(d_t_rad,d_t_euv)
     174      deallocate(d_t_nirco2,d_t_nlte)
     175
     176      deallocate(swnet, lwnet)
    149177      deallocate(solsw, sollw, radsol)
    150178      deallocate(topsw, toplw)
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq.F

    r1306 r1310  
    5656      USE ioipsl
    5757!      USE histcom ! not needed; histcom is included in ioipsl
    58       USE chemparam_mod
    5958      USE infotrac
    6059      USE control_mod
     
    6665      USE iophy
    6766      use cpdet_mod, only: cpdet, t2tpot
     67      USE chemparam_mod
     68      USE conc
     69      USE compo_hedin83_mod2
     70      use moyzon_mod, only: tmoy
    6871      use ieee_arithmetic
    6972      IMPLICIT none
     
    8689#include "logic.h"
    8790#include "tabcontrol.h"
     91#include "nirdata.h"
     92#include "hedin.h"
    8893c======================================================================
    8994      LOGICAL ok_journe ! sortir le fichier journalier
     
    223228      EXTERNAL mucorr
    224229      EXTERNAL phytrac
     230      EXTERNAL nirco2abs
     231      EXTERNAL nir_leedat
     232      EXTERNAL nltecool
     233      EXTERNAL nlte_tcool
     234      EXTERNAL nlte_setup
     235      EXTERNAL blendrad
     236      EXTERNAL nlthermeq
     237      EXTERNAL euvheat
     238      EXTERNAL param_read
     239      EXTERNAL param_read_e107
     240      EXTERNAL conduction
     241      EXTERNAL molvis
    225242c
    226243c Variables locales
     
    247264      REAL zphi(klon,klev)
    248265      REAL zzlev(klon,klev+1),zzlay(klon,klev),z1,z2
     266      real tsurf(klon)
     267
     268c va avec nlte_tcool
     269      INTEGER ierr_nlte
     270      REAL    varerr
    249271
    250272c Variables du changement
     
    268290      REAL d_u_hin(klon,klev), d_v_hin(klon,klev)
    269291      REAL d_t_hin(klon,klev)
     292
     293c Tendencies due to radiative scheme   [K/s]
     294c     d_t_rad,dtsw,dtlw,d_t_nirco2,d_t_nlte,d_t_euv
     295c are not computed at each physical timestep
     296c therefore, they are defined and saved in phys_state_var_mod
     297
     298c Tendencies due to molecular viscosity and conduction
     299      real d_t_conduc(klon,klev)     ! [K/s]
     300      real d_u_molvis(klon,klev)     ! (m/s) /s
     301      real d_v_molvis(klon,klev)     ! (m/s) /s
    270302
    271303c
     
    386418         call phys_state_var_init
    387419c
     420c Initialising Hedin model for upper atm
     421c   (to be revised when coupled to chemistry) :
     422         call conc_init
     423c
    388424c Initialiser les compteurs:
    389425c
     
    458494C source dans couche limite
    459495         source = 0.0 ! pas de source, pour l'instant
    460 C
    461496c---------
     497
     498c---------
     499c INITIALIZE THERMOSPHERIC PARAMETERS
     500c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     501
     502         if (callthermos) then
     503            if(solvarmod.eq.0) call param_read
     504            if(solvarmod.eq.1) call param_read_e107
     505         endif
     506
     507c Initialisation (recomputed in concentration2)
     508       do ig=1,klon
     509         do j=1,klev
     510            rnew(ig,j)=R
     511            cpnew(ig,j)=cpdet(tmoy(j))
     512c            print*, ' physique  l503'
     513c            print*,  j, cpdet(tmoy(j))
     514             mmean(ig,j)=RMD
     515            akknew(ig,j)=1.e-4
     516          enddo
     517c        stop
     518
     519        enddo 
     520     
     521      IF(callthermos.or.callnlte.or.callnirco2) THEN 
     522         call compo_hedin83_init2
     523      ENDIF
     524      if (callnlte) call nlte_setup
     525      if(callnirco2.and.(nircorr.eq.1)) call nir_leedat         
     526c---------
     527     
    462528c
    463529c Verifications:
     
    684750      DO k=1,klev
    685751         DO i=1,klon
    686             zzlay(i,k)=zphi(i,k)/RG
     752            zzlay(i,k)=zphi(i,k)/RG        ! [m]
    687753         ENDDO
    688754      ENDDO
    689755      DO i=1,klon
    690          zzlev(i,1)=pphis(i)/RG
     756         zzlev(i,1)=pphis(i)/RG            ! [m]
    691757      ENDDO
    692758      DO k=2,klev
     
    10421108c====================================================================
    10431109
     1110c-----------------------------------------------------------------------
     1111c    . Compute radiative tendencies :
     1112c------------------------------------
     1113c====================================================================
    10441114      IF (MOD(itaprad,radpas).EQ.0) THEN
    1045 c             print*,'RAYONNEMENT ',
    1046 c    $             ' (itaprad=',itaprad,'/radpas=',radpas,')'
     1115c====================================================================
    10471116
    10481117      dtimerad = dtime*REAL(radpas)  ! pas de temps du rayonnement (s)
    10491118c     PRINT*,'dtimerad,dtime,radpas',dtimerad,dtime,radpas
    10501119           
     1120c Calcul pour Cp rnew et mmean avec traceurs (Cp independant de T !! )
     1121       IF(callnlte.or.callthermos) THEN                                 
     1122         call compo_hedin83_mod(pplay,rmu0,   
     1123     &           co2vmr_gcm,covmr_gcm,ovmr_gcm,n2vmr_gcm,nvmr_gcm)
     1124       ENDIF   
     1125
     1126      if(callthermos) then
     1127         call concentrations2(pplay,t_seri,d_t,co2vmr_gcm, n2vmr_gcm,
     1128     &          covmr_gcm, ovmr_gcm,nvmr_gcm,pdtphys)
     1129      endif
     1130
     1131
     1132c          NLTE cooling from CO2 emission
     1133c          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1134
     1135        IF(callnlte) THEN                                 
     1136            if(nltemodel.eq.0.or.nltemodel.eq.1) then
     1137                CALL nltecool(klon, klev, pplay*9.869e-6, t_seri,
     1138     $                    co2vmr_gcm,n2vmr_gcm, covmr_gcm, ovmr_gcm,
     1139     $                    d_t_nlte)
     1140            else if(nltemodel.eq.2) then                               
     1141                CALL nlte_tcool(klon,klev,pplay*9.869e-6,             
     1142     $               t_seri,zzlay,co2vmr_gcm, n2vmr_gcm, covmr_gcm,
     1143     $               ovmr_gcm,d_t_nlte,ierr_nlte,varerr )
     1144                  if(ierr_nlte.gt.0) then
     1145                     write(*,*)
     1146     $                'WARNING: nlte_tcool output with error message',
     1147     $                'ierr_nlte=',ierr_nlte,'varerr=',varerr
     1148                     write(*,*)'I will continue anyway'
     1149                  endif
     1150
     1151             endif
     1152             
     1153        ELSE
     1154 
     1155          d_t_nlte(:,:)=0.
     1156
     1157        ENDIF   
     1158
     1159c      Find number of layers for LTE radiation calculations
     1160
     1161      IF(callnlte .or. callnirco2)
     1162     $        CALL nlthermeq(klon, klev, paprs, pplay)
     1163
     1164
     1165c          LTE radiative transfert / solar / IR matrix
     1166c          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1167
    10511168      CALL radlwsw
    10521169     e            (dist, rmu0, fract, zzlev,
    1053      e             paprs, pplay,ftsol, t_seri,
    1054      s             heat,cool,radsol,
    1055      s             topsw,toplw,solsw,sollw,
    1056      s             sollwdown,
    1057      s             lwnet, swnet)
    1058 
    1059       itaprad = 0
     1170     e             paprs, pplay,ftsol, t_seri)
     1171
     1172
     1173c          CO2 near infrared absorption
     1174c          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1175
     1176        d_t_nirco2(:,:)=0.
     1177        if (callnirco2) then
     1178           call nirco2abs (klon, klev, pplay, dist, nqmax, qx,
     1179     .                 rmu0, fract, d_t_nirco2,
     1180     .                 co2vmr_gcm, ovmr_gcm)
     1181        endif
     1182
     1183
     1184c          Net atmospheric radiative heating rate (K.s-1)
     1185c          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1186
     1187        IF(callnlte.or.callnirco2) THEN
     1188           CALL blendrad(klon, klev, pplay,heat,
     1189     &          cool, d_t_nirco2,d_t_nlte, dtsw, dtlw)
     1190        ELSE
     1191           dtsw(:,:)=heat(:,:)
     1192           dtlw(:,:)=-1*cool(:,:)
     1193        ENDIF
     1194
     1195         DO k=1,klev
     1196            DO i=1,klon
     1197               d_t_rad(i,k) = dtsw(i,k) + dtlw(i,k)   ! K/s
     1198            ENDDO
     1199         ENDDO
     1200
     1201
     1202cc---------------------------------------------
     1203
     1204c          EUV heating rate (K.s-1)
     1205c          ~~~~~~~~~~~~~~~~~~~~~~~~
     1206
     1207        d_t_euv(:,:)=0.
     1208
     1209        IF (callthermos) THEN
     1210
     1211c        call thermosphere(zplev,zplay,dist_sol,
     1212c     $     mu0,ptimestep,ptime,zday,tsurf,zzlev,zzlay,
     1213c     &     pt,pq,pu,pv,pdt,pdq,
     1214c     $     zdteuv,zdtconduc,zdumolvis,zdvmolvis,zdqmoldiff)
     1215
     1216           call euvheat(klon, klev, t_seri,paprs,pplay,zzlay,
     1217     $          rmu0,pdtphys,gmtime,rjourvrai,
     1218C     $                 pq,pdq,zdteuv)
     1219     $          co2vmr_gcm, n2vmr_gcm, covmr_gcm,
     1220     $          ovmr_gcm,nvmr_gcm,d_t_euv )
     1221
     1222           DO k=1,klev
     1223              DO ig=1,klon
     1224                 d_t_rad(ig,k)=d_t_rad(ig,k)+d_t_euv(ig,k)
     1225               
     1226              ENDDO
     1227           ENDDO
     1228
     1229        ENDIF  ! callthermos
     1230
     1231c====================================================================
     1232        itaprad = 0
     1233      ENDIF    ! radpas
     1234c====================================================================
     1235c
     1236c Ajouter la tendance des rayonnements (tous les pas)
     1237c
    10601238      DO k = 1, klev
    10611239      DO i = 1, klon
    1062          dtrad(i,k) = heat(i,k)-cool(i,k)  !K/s
    1063       ENDDO
    1064       ENDDO
    1065 
    1066       ENDIF
    1067       itaprad = itaprad + 1
    1068 c====================================================================
    1069 c
    1070 c Ajouter la tendance des rayonnements (tous les pas)
    1071 c
    1072       DO k = 1, klev
    1073       DO i = 1, klon
    1074          t_seri(i,k) = t_seri(i,k) + dtrad(i,k) * dtime
    1075       ENDDO
    1076       ENDDO
    1077 
     1240         t_seri(i,k) = t_seri(i,k) + d_t_rad(i,k) * dtime
     1241      ENDDO
     1242      ENDDO
     1243
     1244! CONDUCTION  and  MOLECULAR VISCOSITY
     1245c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1246
     1247        d_t_conduc(:,:)=0.
     1248        d_u_molvis(:,:)=0.
     1249        d_v_molvis(:,:)=0.
     1250
     1251        IF (callthermos) THEN
     1252
     1253           tsurf(:)=t_seri(:,1)
     1254           call conduction(klon, klev,pdtphys,
     1255     $            pplay,paprs,t_seri,
     1256     $            tsurf,zzlev,zzlay,d_t_conduc)
     1257
     1258            call molvis(klon, klev,pdtphys,
     1259     $            pplay,paprs,t_seri,
     1260     $            u,tsurf,zzlev,zzlay,d_u_molvis)
     1261
     1262            call molvis(klon, klev, pdtphys,
     1263     $            pplay,paprs,t_seri,
     1264     $            v,tsurf,zzlev,zzlay,d_u_molvis)
     1265
     1266            DO k=1,klev
     1267               DO ig=1,klon
     1268                  t_seri(ig,k)= t_seri(ig,k)+ d_t_conduc(ig,k)*dtime ! [K]
     1269                  u_seri(ig,k)= u_seri(ig,k)+ d_u_molvis(ig,k)*dtime ! m/s
     1270                  v_seri(ig,k)= v_seri(ig,k)+ d_v_molvis(ig,k)*dtime ! m/s
     1271               ENDDO
     1272            ENDDO
     1273
     1274         ENDIF  ! callthermos
     1275
     1276c====================================================================
    10781277      ! tests: output tendencies
    10791278!      call writefield_phy('physiq_dtrad',dtrad,klev)
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F

    r1301 r1310  
    33!
    44      SUBROUTINE radlwsw(dist, rmu0, fract, zzlev,
    5      .                  paprs, pplay,tsol, t,
    6      .                  heat,cool,radsol,
    7      .                  topsw,toplw,solsw,sollw,
    8      .                  sollwdown,
    9      .                  lwnet, swnet)
     5     .                  paprs, pplay,tsol, t)
    106c     
    117c======================================================================
     
    1612c rmu0-----input-R- cosinus de l'angle zenithal
    1713c fract----input-R- duree d'ensoleillement normalisee
    18 c solaire--input-R- constante solaire (W/m**2) (dans clesphys.h)
    1914c zzlev----input-R- altitude a inter-couche (m)
    2015c paprs----input-R- pression a inter-couche (Pa)
     
    2217c tsol-----input-R- temperature du sol (en K)
    2318c t--------input-R- temperature (K)
    24 c heat-----output-R- echauffement atmospherique (visible) (K/s)
    25 c cool-----output-R- refroidissement dans l'IR (K/s)
    26 c radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
    27 c topsw----output-R- flux solaire net au sommet de l'atm. (+ vers le bas)
    28 c toplw----output-R- ray. IR net au sommet de l'atmosphere (+ vers le haut)
    29 c solsw----output-R- flux solaire net a la surface (+ vers le bas)
    30 c sollw----output-R- ray. IR net a la surface (+ vers le bas)
    31 c sollwdown-output-R- ray. IR descendant a la surface (+ vers le bas)
    32 c lwnet____output-R- flux IR net (+ vers le haut)
    33 c swnet____output-R- flux solaire net (+ vers le bas)
    34 c
    3519     
    3620c MODIFS pour multimatrices ksi SPECIFIQUE VENUS
     
    3923c   New ksi matrix: possibility of different cloud model fct of lat   05/2014
    4024
     25c With extension NLTE (G. Gilli, 2014)
     26
    4127c======================================================================
    4228      use dimphy
    4329      USE comgeomphy
     30      USE phys_state_var_mod, only: heat,cool,radsol,
     31     .      topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet
    4432      use write_field_phy
    4533      IMPLICIT none
     
    4836#include "clesphys.h"
    4937#include "comcstVE.h"
     38#include "nlteparams.h"
    5039
    5140!===========
     
    5847      real tsol(klon)
    5948      real t(klon,klev)
    60       real heat(klon,klev), cool(klon,klev)
    61       real radsol(klon), topsw(klon), toplw(klon)
    62       real solsw(klon), sollw(klon)
    63       real sollwdown(klon)
    64       REAL swnet(klon,klev+1),lwnet(klon,klev+1)
    6549
    6650!===========
     
    293277         ENDDO
    294278
    295       DO k = 1, klev
    296          heat (j,k) = zheat(k)
    297          cool (j,k) = zcool(k)
    298       ENDDO
    299279c
     280C heat/cool with upper atmosphere
     281C
     282      IF(callnlte) THEN
     283         DO k = 1,nlaylte
     284           heat(j,k) = zheat(k)
     285           cool(j,k) = zcool(k)
     286         ENDDO
     287c     Zero tendencies for any remaining layers between nlaylte and klev
     288       if (klev.gt.nlaylte) then
     289         do k = nlaylte+1,  klev
     290           heat(j,k) = 0.
     291           cool(j,k) = 0.
     292         enddo
     293       endif   
     294      ELSE
     295         DO k = 1, klev
     296           heat(j,k) = zheat(k)
     297           cool(j,k) = zcool(k)
     298         ENDDO
     299      ENDIF ! callnlte
     300
    300301      ENDDO ! of DO j = 1, klon
    301302c+++++++ FIN BOUCLE SUR LA GRILLE +++++++++++++++++++++++++
     303
    302304! for tests: write output fields...
    303305!      call writefield_phy('radlwsw_heat',heat,klev)
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.NewtonCool

    r1301 r1310  
    33!
    44      SUBROUTINE radlwsw(dist, rmu0, fract, zzlev,
    5      .                  paprs, pplay,tsol, pt, nq, nmicro, pq,qaer)
     5     .                  paprs, pplay,tsol, pt)
    66     
    77c======================================================================
     
    2525      use dimphy
    2626      USE comgeomphy
    27       USE phys_state_var_mod, only: falbe,heat,cool,radsol,
     27      USE phys_state_var_mod, only: heat,cool,radsol,
    2828     .      topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet
    2929      USE write_field_phy
     
    3434
    3535c ARGUMENTS
    36       INTEGER nq,nmicro
    3736      real rmu0(klon), fract(klon), dist
    3837 
     
    4039      real tsol(klon)
    4140      real pt(klon,klev)
    42       real pq(klon,klev,nq)
    43       REAL qaer(klon,klev,nq)
    4441 
    4542c LOCAL VARIABLES
  • trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_dc.F

    r1301 r1310  
    1       SUBROUTINE SW_venus_dc( PRMU0, PFRAC,
     1      SUBROUTINE SW_venus_dc(PRMU0, PFRAC,
    22     S              PPB, pt,
    33     S              PHEAT,
     
    2727C     --------------
    2828C        ORIGINAL : 27/07/2005
     29c        L.Salmi  : june 2013 astuce to reduce the excess of  NIR
     30c                   in the transition region LTE/LTE
     31c
     32c        G.Gilli  : feb  2014         
    2933C     ------------------------------------------------------------------
    3034C
     
    6468      real   zldn                    ! downward IR flux (W/m**2) ?
    6569      real   zlup                    !   upward IR flux (W/m**2) ?
    66       real   zsolnet(nldc         ! for testing mean net solar flux in DC
     70      real   zsolnet(nldc+1)         ! for testing mean net solar flux in DC
    6771      character*22 nullchar
    6872      real   sza0,factsza,factflux
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histday.h

    r1301 r1310  
    8787      call histwrite_phy(nid_day,.false.,"dtajs",itau_w,d_t_ajs)
    8888c en K/s     
    89       call histwrite_phy(nid_day,.false.,"dtswr",itau_w,heat)
     89      call histwrite_phy(nid_day,.false.,"dtswr",itau_w,dtsw)
    9090c en K/s     
    91       call histwrite_phy(nid_day,.false.,"dtlwr",itau_w,-1.*cool)
     91      call histwrite_phy(nid_day,.false.,"dtlwr",itau_w,dtlw)
    9292c en K/s     
    9393c     call histwrite_phy(nid_day,.false.,"dtec",itau_w,d_t_ec)
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histins.h

    r1305 r1310  
    104104      call histwrite_phy(nid_ins,.false.,"dtajs",itau_w,d_t_ajs)
    105105c en K/s     
    106       call histwrite_phy(nid_ins,.false.,"dtswr",itau_w,heat)
     106      call histwrite_phy(nid_ins,.false.,"dtswr",itau_w,dtsw)
    107107c en K/s     
    108       call histwrite_phy(nid_ins,.false.,"dtlwr",itau_w,-1.*cool)
     108      call histwrite_phy(nid_ins,.false.,"dtlwr",itau_w,dtlw)
    109109c en K/s     
    110110c     call histwrite_phy(nid_ins,.false.,"dtec",itau_w,d_t_ec)
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histmth.h

    r1301 r1310  
    8787      call histwrite_phy(nid_mth,.false.,"dtajs",itau_w,d_t_ajs)
    8888c en K/s     
    89       call histwrite_phy(nid_mth,.false.,"dtswr",itau_w,heat)
     89      call histwrite_phy(nid_mth,.false.,"dtswr",itau_w,dtsw)
    9090c en K/s     
    91       call histwrite_phy(nid_mth,.false.,"dtlwr",itau_w,-1.*cool)
     91      call histwrite_phy(nid_mth,.false.,"dtlwr",itau_w,dtlw)
    9292c en K/s     
    9393c     call histwrite_phy(nid_mth,.false.,"dtec",itau_w,d_t_ec)
Note: See TracChangeset for help on using the changeset viewer.