Ignore:
Timestamp:
Nov 30, 2016, 1:28:41 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2664:2719 into testing branch

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/dyn1d/1DUTILS.h

    r2641 r2720  
    5555
    5656!Config  Key  = prt_level
    57 !Config  Desc = niveau d'impressions de débogage
     57!Config  Desc = niveau d'impressions de debogage
    5858!Config  Def  = 0
    59 !Config  Help = Niveau d'impression pour le débogage
     59!Config  Help = Niveau d'impression pour le debogage
    6060!Config         (0 = minimum d'impression)
    6161!      prt_level = 0
     
    118118!             use geostrophic wind ug=10m/s vg=0m/s. Duration of the case 53100s
    119119!             Radiation to be switched off
     120!         > 100 ==> forcing_case = .true. or forcing_case2 = .true.
     121!             initial profiles from case.nc file
    120122!
    121123       forcing_type = 0
     
    134136        ENDIF
    135137
    136 !Paramètres de forçage
     138!Parametres de forcage
    137139!Config  Key  = tend_t
    138140!Config  Desc = forcage ou non par advection de T
     
    303305       CALL getin('rugos',rugos)
    304306
     307!Config  Key  = rugosh
     308!Config  Desc = coefficient de frottement
     309!Config  Def  = rugos
     310!Config  Help = calcul du Cdrag
     311       rugosh = rugos
     312       CALL getin('rugosh',rugosh)
     313
     314
     315
     316!Config  Key  = snowmass
     317!Config  Desc = mass de neige de la surface en kg/m2
     318!Config  Def  = 0.0000
     319!Config  Help = snowmass
     320       snowmass = 0.0000
     321       CALL getin('snowmass',snowmass)
     322
    305323!Config  Key  = wtsurf et wqsurf
    306324!Config  Desc = ???
     
    342360!Config  Key  = zpicinp
    343361!Config  Desc = denivellation orographie
    344 !Config  Def  = 300.
     362!Config  Def  = 0.
    345363!Config  Help =  input brise
    346        zpicinp = 300.
     364       zpicinp = 0.
    347365       CALL getin('zpicinp',zpicinp)
    348366!Config key = nudge_tsoil
     
    378396       CALL getin('tau_soil_nudge',tau_soil_nudge)
    379397
     398!----------------------------------------------------------
     399! Param??tres de for??age pour les forcages communs:
     400! Pour les forcages communs: ces entiers valent 0 ou 1
     401! tadv= advection tempe, tadvv= adv tempe verticale, tadvh= adv tempe horizontale
     402! qadv= advection q, qadvv= adv q verticale, qadvh= adv q horizontale
     403! trad= 0 (rayonnement actif) ou 1 (prescrit par tend_rad) ou adv (prescir et contenu dans les tadv)
     404! forcages en omega, w, vent geostrophique ou ustar
     405! Parametres de nudging en u,v,t,q valent 0 ou 1 ou le temps de nudging
     406!----------------------------------------------------------
     407
     408!Config  Key  = tadv
     409!Config  Desc = forcage ou non par advection totale de T
     410!Config  Def  = false
     411!Config  Help = forcage ou non par advection totale de T
     412       tadv =0
     413       CALL getin('tadv',tadv)
     414
     415!Config  Key  = tadvv
     416!Config  Desc = forcage ou non par advection verticale de T
     417!Config  Def  = false
     418!Config  Help = forcage ou non par advection verticale de T
     419       tadvv =0
     420       CALL getin('tadvv',tadvv)
     421
     422!Config  Key  = tadvh
     423!Config  Desc = forcage ou non par advection horizontale de T
     424!Config  Def  = false
     425!Config  Help = forcage ou non par advection horizontale de T
     426       tadvh =0
     427       CALL getin('tadvh',tadvh)
     428
     429!Config  Key  = thadv
     430!Config  Desc = forcage ou non par advection totale de Theta
     431!Config  Def  = false
     432!Config  Help = forcage ou non par advection totale de Theta
     433       thadv =0
     434       CALL getin('thadv',thadv)
     435
     436!Config  Key  = thadvv
     437!Config  Desc = forcage ou non par advection verticale de Theta
     438!Config  Def  = false
     439!Config  Help = forcage ou non par advection verticale de Theta
     440       thadvv =0
     441       CALL getin('thadvv',thadvv)
     442
     443!Config  Key  = thadvh
     444!Config  Desc = forcage ou non par advection horizontale de Theta
     445!Config  Def  = false
     446!Config  Help = forcage ou non par advection horizontale de Theta
     447       thadvh =0
     448       CALL getin('thadvh',thadvh)
     449
     450!Config  Key  = qadv
     451!Config  Desc = forcage ou non par advection totale de Q
     452!Config  Def  = false
     453!Config  Help = forcage ou non par advection totale de Q
     454       qadv =0
     455       CALL getin('qadv',qadv)
     456
     457!Config  Key  = qadvv
     458!Config  Desc = forcage ou non par advection verticale de Q
     459!Config  Def  = false
     460!Config  Help = forcage ou non par advection verticale de Q
     461       qadvv =0
     462       CALL getin('qadvv',qadvv)
     463
     464!Config  Key  = qadvh
     465!Config  Desc = forcage ou non par advection horizontale de Q
     466!Config  Def  = false
     467!Config  Help = forcage ou non par advection horizontale de Q
     468       qadvh =0
     469       CALL getin('qadvh',qadvh)
     470
     471!Config  Key  = trad
     472!Config  Desc = forcage ou non par tendance radiative
     473!Config  Def  = false
     474!Config  Help = forcage ou non par tendance radiative
     475       trad =0
     476       CALL getin('trad',trad)
     477
     478!Config  Key  = forc_omega
     479!Config  Desc = forcage ou non par omega
     480!Config  Def  = false
     481!Config  Help = forcage ou non par omega
     482       forc_omega =0
     483       CALL getin('forc_omega',forc_omega)
     484
     485!Config  Key  = forc_w
     486!Config  Desc = forcage ou non par w
     487!Config  Def  = false
     488!Config  Help = forcage ou non par w
     489       forc_w =0
     490       CALL getin('forc_w',forc_w)
     491
     492!Config  Key  = forc_geo
     493!Config  Desc = forcage ou non par geo
     494!Config  Def  = false
     495!Config  Help = forcage ou non par geo
     496       forc_geo =0
     497       CALL getin('forc_geo',forc_geo)
     498
     499! Meme chose que ok_precr_ust
     500!Config  Key  = forc_ustar
     501!Config  Desc = forcage ou non par ustar
     502!Config  Def  = false
     503!Config  Help = forcage ou non par ustar
     504       forc_ustar =0
     505       CALL getin('forc_ustar',forc_ustar)
     506       IF (forc_ustar .EQ. 1) ok_prescr_ust=.true.
     507
     508!Config  Key  = nudging_u
     509!Config  Desc = forcage ou non par nudging sur u
     510!Config  Def  = false
     511!Config  Help = forcage ou non par nudging sur u
     512       nudging_u =0
     513       CALL getin('nudging_u',nudging_u)
     514
     515!Config  Key  = nudging_v
     516!Config  Desc = forcage ou non par nudging sur v
     517!Config  Def  = false
     518!Config  Help = forcage ou non par nudging sur v
     519       nudging_v =0
     520       CALL getin('nudging_v',nudging_v)
     521
     522!Config  Key  = nudging_w
     523!Config  Desc = forcage ou non par nudging sur w
     524!Config  Def  = false
     525!Config  Help = forcage ou non par nudging sur w
     526       nudging_w =0
     527       CALL getin('nudging_w',nudging_w)
     528
     529!Config  Key  = nudging_q
     530!Config  Desc = forcage ou non par nudging sur q
     531!Config  Def  = false
     532!Config  Help = forcage ou non par nudging sur q
     533       nudging_q =0
     534       CALL getin('nudging_q',nudging_q)
     535
     536!Config  Key  = nudging_t
     537!Config  Desc = forcage ou non par nudging sur t
     538!Config  Def  = false
     539!Config  Help = forcage ou non par nudging sur t
     540       nudging_t =0
     541       CALL getin('nudging_t',nudging_t)
    380542
    381543
     
    395557      write(lunout,*)' zsurf = ', zsurf
    396558      write(lunout,*)' rugos = ', rugos
     559      write(lunout,*)' snowmass=', snowmass
    397560      write(lunout,*)' wtsurf = ', wtsurf
    398561      write(lunout,*)' wqsurf = ', wqsurf
     
    406569      write(lunout,*)' Tsoil_nudge = ', Tsoil_nudge
    407570      write(lunout,*)' tau_soil_nudge = ', tau_soil_nudge
     571      write(lunout,*)' tadv =      ', tadv
     572      write(lunout,*)' tadvv =     ', tadvv
     573      write(lunout,*)' tadvh =     ', tadvh
     574      write(lunout,*)' thadv =     ', thadv
     575      write(lunout,*)' thadvv =    ', thadvv
     576      write(lunout,*)' thadvh =    ', thadvh
     577      write(lunout,*)' qadv =      ', qadv
     578      write(lunout,*)' qadvv =     ', qadvv
     579      write(lunout,*)' qadvh =     ', qadvh
     580      write(lunout,*)' trad =      ', trad
     581      write(lunout,*)' forc_omega = ', forc_omega
     582      write(lunout,*)' forc_w     = ', forc_w
     583      write(lunout,*)' forc_geo   = ', forc_geo
     584      write(lunout,*)' forc_ustar = ', forc_ustar
     585      write(lunout,*)' nudging_u  = ', nudging_u
     586      write(lunout,*)' nudging_v  = ', nudging_v
     587      write(lunout,*)' nudging_t  = ', nudging_t
     588      write(lunout,*)' nudging_q  = ', nudging_q
    408589      IF (forcing_type .eq.40) THEN
    409590        write(lunout,*) '--- Forcing type GCSS Old --- with:'
     
    11061287!----------------------------------------------------------------------
    11071288!   Calcul de l'advection verticale (ascendance et subsidence) de
    1108 !   température et d'humidité. Hypothèse : ce qui rentre de l'extérieur
    1109 !   a les mêmes caractéristiques que l'air de la colonne 1D (WTG) ou
     1289!   temperature et d'humidite. Hypothese : ce qui rentre de l'exterieur
     1290!   a les memes caracteristiques que l'air de la colonne 1D (WTG) ou
    11101291!   sans WTG rajouter une advection horizontale
    11111292!---------------------------------------------------------------------- 
     
    11801361!----------------------------------------------------------------------
    11811362!   Calcul de l'advection verticale (ascendance et subsidence) de
    1182 !   température et d'humidité. Hypothèse : ce qui rentre de l'extérieur
    1183 !   a les mêmes caractéristiques que l'air de la colonne 1D (WTG) ou
     1363!   temperature et d'humidite. Hypothese : ce qui rentre de l'exterieur
     1364!   a les memes caracteristiques que l'air de la colonne 1D (WTG) ou
    11841365!   sans WTG rajouter une advection horizontale
    11851366!---------------------------------------------------------------------- 
     
    29343115       endif
    29353116       if (annee_ref.eq.1992 .and. day1.lt.day_ini_toga) then
    2936         print*,'TOGA-COARE a débuté le 1er Nov 1992 (jour julien=306)'
     3117        print*,'TOGA-COARE a debute le 1er Nov 1992 (jour julien=306)'
    29373118        print*,'Changer dayref dans run.def'
    29383119        stop
     
    31413322
    31423323!======================================================================
     3324        SUBROUTINE interp_gabls4_time(day,day1,annee_ref                              &
     3325     &             ,year_ini_gabls4,day_ini_gabls4,nt_gabls4,dt_gabls4,nlev_gabls4    &
     3326     &             ,ug_gabls4,vg_gabls4,ht_gabls4,hq_gabls4,tg_gabls4                          &
     3327     &             ,ug_prof,vg_prof,ht_prof,hq_prof,tg_prof)
     3328        implicit none
     3329
     3330!---------------------------------------------------------------------------------------
     3331! Time interpolation of a 2D field to the timestep corresponding to day
     3332!
     3333! day: current julian day
     3334! day1: first day of the simulation
     3335! nt_gabls4: total nb of data in the forcing (e.g. 37 for gabls4)
     3336! dt_gabls4: total time interval (in sec) between 2 forcing data (e.g. 60min. for gabls4)
     3337!---------------------------------------------------------------------------------------
     3338
     3339#include "compar1d.h"
     3340
     3341! inputs:
     3342        integer annee_ref
     3343        integer nt_gabls4,nlev_gabls4
     3344        integer year_ini_gabls4
     3345        real day, day1,day_ini_gabls4,dt_gabls4
     3346        real ug_gabls4(nlev_gabls4,nt_gabls4),vg_gabls4(nlev_gabls4,nt_gabls4)
     3347        real ht_gabls4(nlev_gabls4,nt_gabls4),hq_gabls4(nlev_gabls4,nt_gabls4)
     3348        real tg_gabls4(nt_gabls4), tg_prof
     3349! outputs:
     3350        real ug_prof(nlev_gabls4),vg_prof(nlev_gabls4)
     3351        real ht_prof(nlev_gabls4),hq_prof(nlev_gabls4)
     3352! local:
     3353        integer it_gabls41, it_gabls42,k
     3354        real timeit,time_gabls41,time_gabls42,frac
     3355
     3356
     3357
     3358! Check that initial day of the simulation consistent with gabls4 period:
     3359       if (forcing_type.eq.8 ) then
     3360       print *,'annee_ref=',annee_ref
     3361       print *,'day1=',day1
     3362       print *,'day_ini_gabls4=',day_ini_gabls4
     3363       if (annee_ref.ne.2009) then
     3364        print*,'Pour gabls4, annee_ref doit etre 2009'
     3365        print*,'Changer annee_ref dans run.def'
     3366        stop
     3367       endif
     3368       if (annee_ref.eq.2009 .and. day1.gt.day_ini_gabls4) then
     3369        print*,'gabls4 a debute le 11 dec 2009 (jour julien=345)'
     3370        print*,'Changer dayref dans run.def',day1,day_ini_gabls4
     3371        stop
     3372       endif
     3373       if (annee_ref.eq.2009 .and. day1.gt.day_ini_gabls4+2) then
     3374        print*,'gabls4 a fini le 12 dec 2009 (jour julien=346)'
     3375        print*,'Changer dayref ou nday dans run.def',day1,day_ini_gabls4
     3376        stop
     3377       endif
     3378       endif
     3379
     3380      timeit=(day-day_ini_gabls4)*86400
     3381       print *,'day,day_ini_gabls4=',day,day_ini_gabls4
     3382       print *,'nt_gabls4,dt,timeit=',nt_gabls4,dt_gabls4,timeit
     3383
     3384! Determine the closest observation times:
     3385       it_gabls41=INT(timeit/dt_gabls4)+1
     3386       it_gabls42=it_gabls41 + 1
     3387       time_gabls41=(it_gabls41-1)*dt_gabls4
     3388       time_gabls42=(it_gabls42-1)*dt_gabls4
     3389
     3390       if (it_gabls41 .ge. nt_gabls4) then
     3391        write(*,*) 'PB-stop: day, it_gabls41, it_gabls42, timeit: ',day,it_gabls41,it_gabls42,timeit/86400.
     3392        stop
     3393       endif
     3394
     3395! time interpolation:
     3396       frac=(time_gabls42-timeit)/(time_gabls42-time_gabls41)
     3397       frac=max(frac,0.0)
     3398
     3399
     3400       do k=1,nlev_gabls4
     3401        ug_prof(k) = ug_gabls4(k,it_gabls42)-frac*(ug_gabls4(k,it_gabls42)-ug_gabls4(k,it_gabls41))
     3402        vg_prof(k) = vg_gabls4(k,it_gabls42)-frac*(vg_gabls4(k,it_gabls42)-vg_gabls4(k,it_gabls41))
     3403        ht_prof(k) = ht_gabls4(k,it_gabls42)-frac*(ht_gabls4(k,it_gabls42)-ht_gabls4(k,it_gabls41))
     3404        hq_prof(k) = hq_gabls4(k,it_gabls42)-frac*(hq_gabls4(k,it_gabls42)-hq_gabls4(k,it_gabls41))
     3405        enddo
     3406        tg_prof=tg_gabls4(it_gabls42)-frac*(tg_gabls4(it_gabls42)-tg_gabls4(it_gabls41))
     3407        return
     3408        END
     3409
     3410!======================================================================
    31433411        SUBROUTINE interp_armcu_time(day,day1,annee_ref                    &
    31443412     &             ,year_ini_armcu,day_ini_armcu,nt_armcu,dt_armcu         &
     
    36793947!=====================================================================
    36803948      subroutine read_dice(fich_dice,nlevel,ntime                         &
    3681      &     ,zz,pres,th,qv,u,v,o3                                          &
     3949     &     ,zz,pres,t,qv,u,v,o3                                          &
    36823950     &     ,shf,lhf,lwup,swup,tg,ustar,psurf,ug,vg                        &
    36833951     &     ,hadvt,hadvq,hadvu,hadvv,w,omega)
     
    36893957
    36903958#include "netcdf.inc"
     3959#include "YOMCST.h"
    36913960
    36923961      integer ntime,nlevel
     
    36963965      real*8 zz(nlevel)
    36973966
    3698       real*8 th(nlevel),pres(nlevel)
     3967      real*8 th(nlevel),pres(nlevel),t(nlevel)
    36993968      real*8 qv(nlevel),u(nlevel),v(nlevel),o3(nlevel)
    37003969      real*8 shf(ntime),lhf(ntime),lwup(ntime),swup(ntime),tg(ntime)
     
    37023971      real*8 hadvt(nlevel,ntime),hadvq(nlevel,ntime),hadvu(nlevel,ntime)
    37033972      real*8 hadvv(nlevel,ntime),w(nlevel,ntime),omega(nlevel,ntime)
     3973      real*8 pzero
    37043974
    37053975      integer nid, ierr
     
    37083978      integer var3didin(nbvar3d)
    37093979
     3980      pzero=100000.
    37103981      ierr = NF_OPEN(fich_dice,NF_NOWRITE,nid)
    37113982      if (ierr.NE.NF_NOERR) then
     
    38824153         endif
    38834154!          write(*,*)'lecture th ok',th
     4155           do k=1,nlevel
     4156             t(k)=th(k)*(pres(k)/pzero)**rkappa
     4157           enddo
    38844158
    38854159#ifdef NC_DOUBLE
     
    40954369         end subroutine read_dice
    40964370!=====================================================================
     4371      subroutine read_gabls4(fich_gabls4,nlevel,ntime,nsol                    &
     4372     &     ,zz,depth_sn,ug,vg,pf,th,t,qv,u,v,hadvt,hadvq,tg,tsnow,snow_dens)
     4373
     4374!program reading initial profils and forcings of the Gabls4 case study
     4375
     4376
     4377      implicit none
     4378
     4379#include "netcdf.inc"
     4380
     4381      integer ntime,nlevel,nsol
     4382      integer l,k
     4383      character*80 :: fich_gabls4
     4384      real*8 time(ntime)
     4385
     4386!  ATTENTION: visiblement quand on lit gabls4_driver.nc on recupere les donnees
     4387! dans un ordre inverse par rapport a la convention LMDZ
     4388! ==> il faut tout inverser  (MPL 20141024)
     4389! les variables indexees "_i" sont celles qui sont lues dans gabls4_driver.nc
     4390      real*8 zz_i(nlevel),th_i(nlevel),pf_i(nlevel),t_i(nlevel)
     4391      real*8 qv_i(nlevel),u_i(nlevel),v_i(nlevel),ug_i(nlevel,ntime),vg_i(nlevel,ntime)
     4392      real*8 hadvt_i(nlevel,ntime),hadvq_i(nlevel,ntime)
     4393
     4394      real*8 zz(nlevel),th(nlevel),pf(nlevel),t(nlevel)
     4395      real*8 qv(nlevel),u(nlevel),v(nlevel),ug(nlevel,ntime),vg(nlevel,ntime)
     4396      real*8 hadvt(nlevel,ntime),hadvq(nlevel,ntime)
     4397
     4398      real*8 depth_sn(nsol),tsnow(nsol),snow_dens(nsol)
     4399      real*8 tg(ntime)
     4400      integer nid, ierr
     4401      integer nbvar3d
     4402      parameter(nbvar3d=30)
     4403      integer var3didin(nbvar3d)
     4404
     4405      ierr = NF_OPEN(fich_gabls4,NF_NOWRITE,nid)
     4406      if (ierr.NE.NF_NOERR) then
     4407         write(*,*) 'ERROR: Pb opening forcings nc file '
     4408         write(*,*) NF_STRERROR(ierr)
     4409         stop ""
     4410      endif
     4411
     4412
     4413       ierr=NF_INQ_VARID(nid,"height",var3didin(1))
     4414         if(ierr/=NF_NOERR) then
     4415           write(*,*) NF_STRERROR(ierr)
     4416           stop 'height'
     4417         endif
     4418
     4419      ierr=NF_INQ_VARID(nid,"depth_sn",var3didin(2))
     4420         if(ierr/=NF_NOERR) then
     4421           write(*,*) NF_STRERROR(ierr)
     4422           stop 'depth_sn'
     4423      endif
     4424
     4425      ierr=NF_INQ_VARID(nid,"Ug",var3didin(3))
     4426         if(ierr/=NF_NOERR) then
     4427           write(*,*) NF_STRERROR(ierr)
     4428           stop 'Ug'
     4429      endif
     4430
     4431      ierr=NF_INQ_VARID(nid,"Vg",var3didin(4))
     4432         if(ierr/=NF_NOERR) then
     4433           write(*,*) NF_STRERROR(ierr)
     4434           stop 'Vg'
     4435      endif
     4436       ierr=NF_INQ_VARID(nid,"pf",var3didin(5))
     4437         if(ierr/=NF_NOERR) then
     4438           write(*,*) NF_STRERROR(ierr)
     4439           stop 'pf'
     4440         endif
     4441
     4442      ierr=NF_INQ_VARID(nid,"theta",var3didin(6))
     4443         if(ierr/=NF_NOERR) then
     4444           write(*,*) NF_STRERROR(ierr)
     4445           stop 'theta'
     4446         endif
     4447
     4448      ierr=NF_INQ_VARID(nid,"tempe",var3didin(7))
     4449         if(ierr/=NF_NOERR) then
     4450           write(*,*) NF_STRERROR(ierr)
     4451           stop 'tempe'
     4452         endif
     4453
     4454      ierr=NF_INQ_VARID(nid,"qv",var3didin(8))
     4455         if(ierr/=NF_NOERR) then
     4456           write(*,*) NF_STRERROR(ierr)
     4457           stop 'qv'
     4458         endif
     4459
     4460      ierr=NF_INQ_VARID(nid,"u",var3didin(9))
     4461         if(ierr/=NF_NOERR) then
     4462           write(*,*) NF_STRERROR(ierr)
     4463           stop 'u'
     4464         endif
     4465
     4466      ierr=NF_INQ_VARID(nid,"v",var3didin(10))
     4467         if(ierr/=NF_NOERR) then
     4468           write(*,*) NF_STRERROR(ierr)
     4469           stop 'v'
     4470         endif
     4471
     4472      ierr=NF_INQ_VARID(nid,"hadvT",var3didin(11))
     4473         if(ierr/=NF_NOERR) then
     4474           write(*,*) NF_STRERROR(ierr)
     4475           stop 'hadvt'
     4476         endif
     4477
     4478      ierr=NF_INQ_VARID(nid,"hadvQ",var3didin(12))
     4479         if(ierr/=NF_NOERR) then
     4480           write(*,*) NF_STRERROR(ierr)
     4481           stop 'hadvq'
     4482      endif
     4483
     4484      ierr=NF_INQ_VARID(nid,"Tsnow",var3didin(14))
     4485         if(ierr/=NF_NOERR) then
     4486           write(*,*) NF_STRERROR(ierr)
     4487           stop 'tsnow'
     4488      endif
     4489
     4490      ierr=NF_INQ_VARID(nid,"snow_density",var3didin(15))
     4491         if(ierr/=NF_NOERR) then
     4492           write(*,*) NF_STRERROR(ierr)
     4493           stop 'snow_density'
     4494      endif
     4495
     4496      ierr=NF_INQ_VARID(nid,"Tg",var3didin(16))
     4497         if(ierr/=NF_NOERR) then
     4498           write(*,*) NF_STRERROR(ierr)
     4499           stop 'Tg'
     4500      endif
     4501
     4502
     4503!dimensions lecture
     4504!      call catchaxis(nid,ntime,nlevel,time,z,ierr)
     4505 
     4506#ifdef NC_DOUBLE
     4507         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(1),zz_i)
     4508#else
     4509         ierr = NF_GET_VAR_REAL(nid,var3didin(1),zz_i)
     4510#endif
     4511         if(ierr/=NF_NOERR) then
     4512            write(*,*) NF_STRERROR(ierr)
     4513            stop "getvarup"
     4514         endif
     4515 
     4516#ifdef NC_DOUBLE
     4517         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(2),depth_sn)
     4518#else
     4519         ierr = NF_GET_VAR_REAL(nid,var3didin(2),depth_sn)
     4520#endif
     4521         if(ierr/=NF_NOERR) then
     4522            write(*,*) NF_STRERROR(ierr)
     4523            stop "getvarup"
     4524         endif
     4525 
     4526#ifdef NC_DOUBLE
     4527         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(3),ug_i)
     4528#else
     4529         ierr = NF_GET_VAR_REAL(nid,var3didin(3),ug_i)
     4530#endif
     4531         if(ierr/=NF_NOERR) then
     4532            write(*,*) NF_STRERROR(ierr)
     4533            stop "getvarup"
     4534         endif
     4535 
     4536#ifdef NC_DOUBLE
     4537         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(4),vg_i)
     4538#else
     4539         ierr = NF_GET_VAR_REAL(nid,var3didin(4),vg_i)
     4540#endif
     4541         if(ierr/=NF_NOERR) then
     4542            write(*,*) NF_STRERROR(ierr)
     4543            stop "getvarup"
     4544         endif
     4545 
     4546#ifdef NC_DOUBLE
     4547         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(5),pf_i)
     4548#else
     4549         ierr = NF_GET_VAR_REAL(nid,var3didin(5),pf_i)
     4550#endif
     4551         if(ierr/=NF_NOERR) then
     4552            write(*,*) NF_STRERROR(ierr)
     4553            stop "getvarup"
     4554         endif
     4555
     4556#ifdef NC_DOUBLE
     4557         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(6),th_i)
     4558#else
     4559         ierr = NF_GET_VAR_REAL(nid,var3didin(6),th_i)
     4560#endif
     4561         if(ierr/=NF_NOERR) then
     4562            write(*,*) NF_STRERROR(ierr)
     4563            stop "getvarup"
     4564         endif
     4565
     4566#ifdef NC_DOUBLE
     4567         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(7),t_i)
     4568#else
     4569         ierr = NF_GET_VAR_REAL(nid,var3didin(7),t_i)
     4570#endif
     4571         if(ierr/=NF_NOERR) then
     4572            write(*,*) NF_STRERROR(ierr)
     4573            stop "getvarup"
     4574         endif
     4575
     4576#ifdef NC_DOUBLE
     4577         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(8),qv_i)
     4578#else
     4579         ierr = NF_GET_VAR_REAL(nid,var3didin(8),qv_i)
     4580#endif
     4581         if(ierr/=NF_NOERR) then
     4582            write(*,*) NF_STRERROR(ierr)
     4583            stop "getvarup"
     4584         endif
     4585 
     4586#ifdef NC_DOUBLE
     4587         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(9),u_i)
     4588#else
     4589         ierr = NF_GET_VAR_REAL(nid,var3didin(9),u_i)
     4590#endif
     4591         if(ierr/=NF_NOERR) then
     4592            write(*,*) NF_STRERROR(ierr)
     4593            stop "getvarup"
     4594         endif
     4595 
     4596#ifdef NC_DOUBLE
     4597         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(10),v_i)
     4598#else
     4599         ierr = NF_GET_VAR_REAL(nid,var3didin(10),v_i)
     4600#endif
     4601         if(ierr/=NF_NOERR) then
     4602            write(*,*) NF_STRERROR(ierr)
     4603            stop "getvarup"
     4604         endif
     4605 
     4606#ifdef NC_DOUBLE
     4607         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(11),hadvt_i)
     4608#else
     4609         ierr = NF_GET_VAR_REAL(nid,var3didin(11),hadvt_i)
     4610#endif
     4611         if(ierr/=NF_NOERR) then
     4612            write(*,*) NF_STRERROR(ierr)
     4613            stop "getvarup"
     4614         endif
     4615 
     4616#ifdef NC_DOUBLE
     4617         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(12),hadvq_i)
     4618#else
     4619         ierr = NF_GET_VAR_REAL(nid,var3didin(12),hadvq_i)
     4620#endif
     4621         if(ierr/=NF_NOERR) then
     4622            write(*,*) NF_STRERROR(ierr)
     4623            stop "getvarup"
     4624         endif
     4625 
     4626#ifdef NC_DOUBLE
     4627         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(14),tsnow)
     4628#else
     4629         ierr = NF_GET_VAR_REAL(nid,var3didin(14),tsnow)
     4630#endif
     4631         if(ierr/=NF_NOERR) then
     4632            write(*,*) NF_STRERROR(ierr)
     4633            stop "getvarup"
     4634         endif
     4635 
     4636#ifdef NC_DOUBLE
     4637         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(15),snow_dens)
     4638#else
     4639         ierr = NF_GET_VAR_REAL(nid,var3didin(15),snow_dens)
     4640#endif
     4641         if(ierr/=NF_NOERR) then
     4642            write(*,*) NF_STRERROR(ierr)
     4643            stop "getvarup"
     4644         endif
     4645
     4646#ifdef NC_DOUBLE
     4647         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(16),tg)
     4648#else
     4649         ierr = NF_GET_VAR_REAL(nid,var3didin(16),tg)
     4650#endif
     4651         if(ierr/=NF_NOERR) then
     4652            write(*,*) NF_STRERROR(ierr)
     4653            stop "getvarup"
     4654         endif
     4655
     4656! On remet les variables lues dans le bon ordre des niveaux (MPL 20141024)
     4657         do k=1,nlevel
     4658           zz(k)=zz_i(nlevel+1-k)
     4659           ug(k,:)=ug_i(nlevel+1-k,:)
     4660           vg(k,:)=vg_i(nlevel+1-k,:)
     4661           pf(k)=pf_i(nlevel+1-k)
     4662           print *,'pf=',pf(k)
     4663           th(k)=th_i(nlevel+1-k)
     4664           t(k)=t_i(nlevel+1-k)
     4665           qv(k)=qv_i(nlevel+1-k)
     4666           u(k)=u_i(nlevel+1-k)
     4667           v(k)=v_i(nlevel+1-k)
     4668           hadvt(k,:)=hadvt_i(nlevel+1-k,:)
     4669           hadvq(k,:)=hadvq_i(nlevel+1-k,:)
     4670         enddo
     4671         return
     4672 end subroutine read_gabls4
     4673!=====================================================================
     4674
    40974675!     Reads CIRC input files     
    40984676
     
    43904968!
    43914969!  Cette formule remplace d_q = (1/tau) [rh_targ - rh] qsat(T_new)
    4392 !   qui n'était pas correcte.
     4970!   qui n'etait pas correcte.
    43934971!
    43944972            IF (tnew.LT.RTT) THEN
     
    44655043      END
    44665044
     5045!=====================================================================
     5046       SUBROUTINE interp2_case_vertical(play,nlev_cas,plev_prof_cas                                    &
     5047     &         ,t_prof_cas,th_prof_cas,thv_prof_cas,thl_prof_cas                                       &
     5048     &         ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas                              &
     5049     &         ,ug_prof_cas,vg_prof_cas,vitw_prof_cas,omega_prof_cas                                   &
     5050     &         ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas                &
     5051     &         ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &
     5052     &         ,dth_prof_cas,hth_prof_cas,vth_prof_cas                                                 &
     5053!
     5054     &         ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas                                        &
     5055     &         ,qv_mod_cas,ql_mod_cas,qi_mod_cas,u_mod_cas,v_mod_cas                                   &
     5056     &         ,ug_mod_cas,vg_mod_cas,w_mod_cas,omega_mod_cas                                          &
     5057     &         ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas                      &
     5058     &         ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas        &
     5059     &         ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc)
     5060 
     5061       implicit none
     5062 
     5063#include "dimensions.h"
     5064
     5065!-------------------------------------------------------------------------
     5066! Vertical interpolation of generic case forcing data onto mod_casel levels
     5067!-------------------------------------------------------------------------
     5068 
     5069       integer nlevmax
     5070       parameter (nlevmax=41)
     5071       integer nlev_cas,mxcalc
     5072!       real play(llm), plev_prof(nlevmax)
     5073!       real t_prof(nlevmax),q_prof(nlevmax)
     5074!       real u_prof(nlevmax),v_prof(nlevmax), w_prof(nlevmax)
     5075!       real ht_prof(nlevmax),vt_prof(nlevmax)
     5076!       real hq_prof(nlevmax),vq_prof(nlevmax)
     5077 
     5078       real play(llm), plev_prof_cas(nlev_cas)
     5079       real t_prof_cas(nlev_cas),th_prof_cas(nlev_cas),thv_prof_cas(nlev_cas),thl_prof_cas(nlev_cas)
     5080       real qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas)
     5081       real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas)
     5082       real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas), vitw_prof_cas(nlev_cas),omega_prof_cas(nlev_cas)
     5083       real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas)
     5084       real dv_prof_cas(nlev_cas),hv_prof_cas(nlev_cas),vv_prof_cas(nlev_cas)
     5085       real dt_prof_cas(nlev_cas),ht_prof_cas(nlev_cas),vt_prof_cas(nlev_cas),dtrad_prof_cas(nlev_cas)
     5086       real dth_prof_cas(nlev_cas),hth_prof_cas(nlev_cas),vth_prof_cas(nlev_cas)
     5087       real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas)
     5088 
     5089       real t_mod_cas(llm),theta_mod_cas(llm),thv_mod_cas(llm),thl_mod_cas(llm)
     5090       real qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm)
     5091       real u_mod_cas(llm),v_mod_cas(llm)
     5092       real ug_mod_cas(llm),vg_mod_cas(llm), w_mod_cas(llm),omega_mod_cas(llm)
     5093       real du_mod_cas(llm),hu_mod_cas(llm),vu_mod_cas(llm)
     5094       real dv_mod_cas(llm),hv_mod_cas(llm),vv_mod_cas(llm)
     5095       real dt_mod_cas(llm),ht_mod_cas(llm),vt_mod_cas(llm),dtrad_mod_cas(llm)
     5096       real dth_mod_cas(llm),hth_mod_cas(llm),vth_mod_cas(llm)
     5097       real dq_mod_cas(llm),hq_mod_cas(llm),vq_mod_cas(llm)
     5098 
     5099       integer l,k,k1,k2
     5100       real frac,frac1,frac2,fact
     5101 
     5102       do l = 1, llm
     5103       print *,'debut interp2, play=',l,play(l)
     5104       enddo
     5105!      do l = 1, nlev_cas
     5106!      print *,'debut interp2, plev_prof_cas=',l,play(l),plev_prof_cas(l)
     5107!      enddo
     5108
     5109       do l = 1, llm
     5110
     5111        if (play(l).ge.plev_prof_cas(nlev_cas)) then
     5112 
     5113        mxcalc=l
     5114        print *,'debut interp2, mxcalc=',mxcalc
     5115         k1=0
     5116         k2=0
     5117
     5118         if (play(l).le.plev_prof_cas(1)) then
     5119
     5120         do k = 1, nlev_cas-1
     5121          if (play(l).le.plev_prof_cas(k).and. play(l).gt.plev_prof_cas(k+1)) then
     5122            k1=k
     5123            k2=k+1
     5124          endif
     5125         enddo
     5126
     5127         if (k1.eq.0 .or. k2.eq.0) then
     5128          write(*,*) 'PB! k1, k2 = ',k1,k2
     5129          write(*,*) 'l,play(l) = ',l,play(l)/100
     5130         do k = 1, nlev_cas-1
     5131          write(*,*) 'k,plev_prof_cas(k) = ',k,plev_prof_cas(k)/100
     5132         enddo
     5133         endif
     5134
     5135         frac = (plev_prof_cas(k2)-play(l))/(plev_prof_cas(k2)-plev_prof_cas(k1))
     5136         t_mod_cas(l)= t_prof_cas(k2) - frac*(t_prof_cas(k2)-t_prof_cas(k1))
     5137         theta_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1))
     5138         thv_mod_cas(l)= thv_prof_cas(k2) - frac*(thv_prof_cas(k2)-thv_prof_cas(k1))
     5139         thl_mod_cas(l)= thl_prof_cas(k2) - frac*(thl_prof_cas(k2)-thl_prof_cas(k1))
     5140         qv_mod_cas(l)= qv_prof_cas(k2) - frac*(qv_prof_cas(k2)-qv_prof_cas(k1))
     5141         ql_mod_cas(l)= ql_prof_cas(k2) - frac*(ql_prof_cas(k2)-ql_prof_cas(k1))
     5142         qi_mod_cas(l)= qi_prof_cas(k2) - frac*(qi_prof_cas(k2)-qi_prof_cas(k1))
     5143         u_mod_cas(l)= u_prof_cas(k2) - frac*(u_prof_cas(k2)-u_prof_cas(k1))
     5144         v_mod_cas(l)= v_prof_cas(k2) - frac*(v_prof_cas(k2)-v_prof_cas(k1))
     5145         ug_mod_cas(l)= ug_prof_cas(k2) - frac*(ug_prof_cas(k2)-ug_prof_cas(k1))
     5146         vg_mod_cas(l)= vg_prof_cas(k2) - frac*(vg_prof_cas(k2)-vg_prof_cas(k1))
     5147         w_mod_cas(l)= vitw_prof_cas(k2) - frac*(vitw_prof_cas(k2)-vitw_prof_cas(k1))
     5148         omega_mod_cas(l)= omega_prof_cas(k2) - frac*(omega_prof_cas(k2)-omega_prof_cas(k1))
     5149         du_mod_cas(l)= du_prof_cas(k2) - frac*(du_prof_cas(k2)-du_prof_cas(k1))
     5150         hu_mod_cas(l)= hu_prof_cas(k2) - frac*(hu_prof_cas(k2)-hu_prof_cas(k1))
     5151         vu_mod_cas(l)= vu_prof_cas(k2) - frac*(vu_prof_cas(k2)-vu_prof_cas(k1))
     5152         dv_mod_cas(l)= dv_prof_cas(k2) - frac*(dv_prof_cas(k2)-dv_prof_cas(k1))
     5153         hv_mod_cas(l)= hv_prof_cas(k2) - frac*(hv_prof_cas(k2)-hv_prof_cas(k1))
     5154         vv_mod_cas(l)= vv_prof_cas(k2) - frac*(vv_prof_cas(k2)-vv_prof_cas(k1))
     5155         dt_mod_cas(l)= dt_prof_cas(k2) - frac*(dt_prof_cas(k2)-dt_prof_cas(k1))
     5156         ht_mod_cas(l)= ht_prof_cas(k2) - frac*(ht_prof_cas(k2)-ht_prof_cas(k1))
     5157         vt_mod_cas(l)= vt_prof_cas(k2) - frac*(vt_prof_cas(k2)-vt_prof_cas(k1))
     5158         dth_mod_cas(l)= dth_prof_cas(k2) - frac*(dth_prof_cas(k2)-dth_prof_cas(k1))
     5159         hth_mod_cas(l)= hth_prof_cas(k2) - frac*(hth_prof_cas(k2)-hth_prof_cas(k1))
     5160         vth_mod_cas(l)= vth_prof_cas(k2) - frac*(vth_prof_cas(k2)-vth_prof_cas(k1))
     5161         dq_mod_cas(l)= dq_prof_cas(k2) - frac*(dq_prof_cas(k2)-dq_prof_cas(k1))
     5162         hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1))
     5163         vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1))
     5164     
     5165         else !play>plev_prof_cas(1)
     5166
     5167         k1=1
     5168         k2=2
     5169         print *,'interp2_vert, k1,k2=',plev_prof_cas(k1),plev_prof_cas(k2)
     5170         frac1 = (play(l)-plev_prof_cas(k2))/(plev_prof_cas(k1)-plev_prof_cas(k2))
     5171         frac2 = (play(l)-plev_prof_cas(k1))/(plev_prof_cas(k1)-plev_prof_cas(k2))
     5172         t_mod_cas(l)= frac1*t_prof_cas(k1) - frac2*t_prof_cas(k2)
     5173         theta_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2)
     5174         thv_mod_cas(l)= frac1*thv_prof_cas(k1) - frac2*thv_prof_cas(k2)
     5175         thl_mod_cas(l)= frac1*thl_prof_cas(k1) - frac2*thl_prof_cas(k2)
     5176         qv_mod_cas(l)= frac1*qv_prof_cas(k1) - frac2*qv_prof_cas(k2)
     5177         ql_mod_cas(l)= frac1*ql_prof_cas(k1) - frac2*ql_prof_cas(k2)
     5178         qi_mod_cas(l)= frac1*qi_prof_cas(k1) - frac2*qi_prof_cas(k2)
     5179         u_mod_cas(l)= frac1*u_prof_cas(k1) - frac2*u_prof_cas(k2)
     5180         v_mod_cas(l)= frac1*v_prof_cas(k1) - frac2*v_prof_cas(k2)
     5181         ug_mod_cas(l)= frac1*ug_prof_cas(k1) - frac2*ug_prof_cas(k2)
     5182         vg_mod_cas(l)= frac1*vg_prof_cas(k1) - frac2*vg_prof_cas(k2)
     5183         w_mod_cas(l)= frac1*vitw_prof_cas(k1) - frac2*vitw_prof_cas(k2)
     5184         omega_mod_cas(l)= frac1*omega_prof_cas(k1) - frac2*omega_prof_cas(k2)
     5185         du_mod_cas(l)= frac1*du_prof_cas(k1) - frac2*du_prof_cas(k2)
     5186         hu_mod_cas(l)= frac1*hu_prof_cas(k1) - frac2*hu_prof_cas(k2)
     5187         vu_mod_cas(l)= frac1*vu_prof_cas(k1) - frac2*vu_prof_cas(k2)
     5188         dv_mod_cas(l)= frac1*dv_prof_cas(k1) - frac2*dv_prof_cas(k2)
     5189         hv_mod_cas(l)= frac1*hv_prof_cas(k1) - frac2*hv_prof_cas(k2)
     5190         vv_mod_cas(l)= frac1*vv_prof_cas(k1) - frac2*vv_prof_cas(k2)
     5191         dt_mod_cas(l)= frac1*dt_prof_cas(k1) - frac2*dt_prof_cas(k2)
     5192         ht_mod_cas(l)= frac1*ht_prof_cas(k1) - frac2*ht_prof_cas(k2)
     5193         vt_mod_cas(l)= frac1*vt_prof_cas(k1) - frac2*vt_prof_cas(k2)
     5194         dth_mod_cas(l)= frac1*dth_prof_cas(k1) - frac2*dth_prof_cas(k2)
     5195         hth_mod_cas(l)= frac1*hth_prof_cas(k1) - frac2*hth_prof_cas(k2)
     5196         vth_mod_cas(l)= frac1*vth_prof_cas(k1) - frac2*vth_prof_cas(k2)
     5197         dq_mod_cas(l)= frac1*dq_prof_cas(k1) - frac2*dq_prof_cas(k2)
     5198         hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2)
     5199         vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2)
     5200
     5201         endif ! play.le.plev_prof_cas(1)
     5202
     5203        else ! above max altitude of forcing file
     5204 
     5205!jyg
     5206         fact=20.*(plev_prof_cas(nlev_cas)-play(l))/plev_prof_cas(nlev_cas) !jyg
     5207         fact = max(fact,0.)                                           !jyg
     5208         fact = exp(-fact)                                             !jyg
     5209         t_mod_cas(l)= t_prof_cas(nlev_cas)                            !jyg
     5210         theta_mod_cas(l)= th_prof_cas(nlev_cas)                       !jyg
     5211         thv_mod_cas(l)= thv_prof_cas(nlev_cas)                        !jyg
     5212         thl_mod_cas(l)= thl_prof_cas(nlev_cas)                        !jyg
     5213         qv_mod_cas(l)= qv_prof_cas(nlev_cas)*fact                     !jyg
     5214         ql_mod_cas(l)= ql_prof_cas(nlev_cas)*fact                     !jyg
     5215         qi_mod_cas(l)= qi_prof_cas(nlev_cas)*fact                     !jyg
     5216         u_mod_cas(l)= u_prof_cas(nlev_cas)*fact                       !jyg
     5217         v_mod_cas(l)= v_prof_cas(nlev_cas)*fact                       !jyg
     5218         ug_mod_cas(l)= ug_prof_cas(nlev_cas)*fact                     !jyg
     5219         vg_mod_cas(l)= vg_prof_cas(nlev_cas)*fact                     !jyg
     5220         w_mod_cas(l)= 0.0                                             !jyg
     5221         du_mod_cas(l)= du_prof_cas(nlev_cas)*fact
     5222         hu_mod_cas(l)= hu_prof_cas(nlev_cas)*fact                     !jyg
     5223         vu_mod_cas(l)= vu_prof_cas(nlev_cas)*fact                     !jyg
     5224         dv_mod_cas(l)= dv_prof_cas(nlev_cas)*fact
     5225         hv_mod_cas(l)= hv_prof_cas(nlev_cas)*fact                     !jyg
     5226         vv_mod_cas(l)= vv_prof_cas(nlev_cas)*fact                     !jyg
     5227         dt_mod_cas(l)= dt_prof_cas(nlev_cas)
     5228         ht_mod_cas(l)= ht_prof_cas(nlev_cas)                          !jyg
     5229         vt_mod_cas(l)= vt_prof_cas(nlev_cas)                          !jyg
     5230         dth_mod_cas(l)= dth_prof_cas(nlev_cas)
     5231         hth_mod_cas(l)= hth_prof_cas(nlev_cas)                        !jyg
     5232         vth_mod_cas(l)= vth_prof_cas(nlev_cas)                        !jyg
     5233         dq_mod_cas(l)= dq_prof_cas(nlev_cas)*fact
     5234         hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact                     !jyg
     5235         vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact                     !jyg
     5236 
     5237        endif ! play
     5238 
     5239       enddo ! l
     5240
     5241!       do l = 1,llm
     5242!       print *,'t_mod_cas(l),q_mod_cas(l),ht_mod_cas(l),hq_mod_cas(l) ',
     5243!     $        l,t_mod_cas(l),q_mod_cas(l),ht_mod_cas(l),hq_mod_cas(l)
     5244!       enddo
     5245 
     5246          return
     5247          end
     5248!*****************************************************************************
     5249
     5250
Note: See TracChangeset for help on using the changeset viewer.