source: LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read.F90 @ 5073

Last change on this file since 5073 was 5073, checked in by abarral, 2 months ago

Remove all NC_DOUBLE uses outside of lmdz_netcdf.F90 (except in obsolete/, which I hope we'll ditch soon...)
Note: make sure to check convergence at some point, it's possible that we've messed up some when replacing nf_* by nf90_* calls
(lint) replace obsolete logical operators along the way

  • Property svn:keywords set to Id
File size: 34.6 KB
RevLine 
[2307]1!
2! $Id: mod_1D_cases_read.F90 5073 2024-07-18 14:57:05Z abarral $
3!
[2118]4MODULE mod_1D_cases_read
5
6!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[2191]7!Declarations specifiques au cas standard
8        character*80 :: fich_cas
[2332]9! Discr?tisation
[2191]10        integer nlev_cas, nt_cas
[2118]11
12
[2332]13!       integer year_ini_cas, day_ini_cas, mth_ini_cas
14!       real heure_ini_cas
15!       real day_ju_ini_cas   ! Julian day of case first day
[2307]16!       parameter (year_ini_cas=2011)
[2332]17!       parameter (year_ini_cas=1969)
[2307]18!       parameter (mth_ini_cas=10)
[2332]19!       parameter (mth_ini_cas=6)
[2307]20!       parameter (day_ini_cas=1)  ! 10 = 10Juil2006
[2332]21!       parameter (day_ini_cas=24)  ! 24 = 24 juin 1969
22!       parameter (heure_ini_cas=0.) !0h en secondes
23!       real pdt_cas
24!       parameter (pdt_cas=3.*3600)
[2118]25
[2191]26!CR ATTENTION TEST AMMA
27!        parameter (year_ini_cas=2006)
28!        parameter (mth_ini_cas=7)
29!        parameter (day_ini_cas=10)  ! 10 = 10Juil2006
30!        parameter (heure_ini_cas=0.) !0h en secondes
31!        parameter (pdt_cas=1800.)
[2118]32
[2191]33!profils environnementaux
34        real, allocatable::  plev_cas(:,:)
[2118]35
[2191]36        real, allocatable::  z_cas(:,:)
37        real, allocatable::  t_cas(:,:),q_cas(:,:),rh_cas(:,:)
38        real, allocatable::  th_cas(:,:),rv_cas(:,:)
39        real, allocatable::  u_cas(:,:)
40        real, allocatable::  v_cas(:,:)
[2118]41
[2191]42!forcing
43        real, allocatable::  ht_cas(:,:),vt_cas(:,:),dt_cas(:,:),dtrad_cas(:,:)
44        real, allocatable::  hth_cas(:,:),vth_cas(:,:),dth_cas(:,:)
45        real, allocatable::  hq_cas(:,:),vq_cas(:,:),dq_cas(:,:)
46        real, allocatable::  hr_cas(:,:),vr_cas(:,:),dr_cas(:,:)
47        real, allocatable::  hu_cas(:,:),vu_cas(:,:),du_cas(:,:)
48        real, allocatable::  hv_cas(:,:),vv_cas(:,:),dv_cas(:,:)
49        real, allocatable::  vitw_cas(:,:)
50        real, allocatable::  ug_cas(:,:),vg_cas(:,:)
[2307]51        real, allocatable::  lat_cas(:),sens_cas(:),ts_cas(:),ustar_cas(:)
[2332]52        real, allocatable::  uw_cas(:,:),vw_cas(:,:),q1_cas(:,:),q2_cas(:,:)
[2118]53
54!champs interpoles
[2191]55        real, allocatable::  plev_prof_cas(:)
56        real, allocatable::  t_prof_cas(:)
57        real, allocatable::  q_prof_cas(:)
58        real, allocatable::  u_prof_cas(:)
59        real, allocatable::  v_prof_cas(:)       
[2118]60
[2191]61        real, allocatable::  vitw_prof_cas(:)
62        real, allocatable::  ug_prof_cas(:)
63        real, allocatable::  vg_prof_cas(:)
64        real, allocatable::  ht_prof_cas(:)
65        real, allocatable::  hq_prof_cas(:)
66        real, allocatable::  vt_prof_cas(:)
67        real, allocatable::  vq_prof_cas(:)
68        real, allocatable::  dt_prof_cas(:)
69        real, allocatable::  dtrad_prof_cas(:)
70        real, allocatable::  dq_prof_cas(:)
71        real, allocatable::  hu_prof_cas(:)
72        real, allocatable::  hv_prof_cas(:)
73        real, allocatable::  vu_prof_cas(:)
74        real, allocatable::  vv_prof_cas(:)
75        real, allocatable::  du_prof_cas(:)
76        real, allocatable::  dv_prof_cas(:)
[2332]77        real, allocatable::  uw_prof_cas(:)
78        real, allocatable::  vw_prof_cas(:)
79        real, allocatable::  q1_prof_cas(:)
80        real, allocatable::  q2_prof_cas(:)
[2118]81
[2191]82
[2307]83        real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas
[2191]84     
85
86
[2118]87CONTAINS
88
[2191]89SUBROUTINE read_1D_cas
[2118]90      implicit none
91
[4593]92      INCLUDE "netcdf.inc"
[2118]93
94      INTEGER nid,rid,ierr
[2191]95      INTEGER ii,jj
[2118]96
[2191]97      fich_cas='setup/cas.nc'
98      print*,'fich_cas ',fich_cas
99      ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
100      print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
[5073]101      if (ierr/=NF_NOERR) then
[2118]102         write(*,*) 'ERROR: GROS Pb opening forcings nc file '
103         write(*,*) NF_STRERROR(ierr)
104         stop ""
105      endif
106!.......................................................................
[2191]107      ierr=NF_INQ_DIMID(nid,'lat',rid)
[5073]108      IF (ierr/=NF_NOERR) THEN
[2191]109         print*, 'Oh probleme lecture dimension lat'
110      ENDIF
111      ierr=NF_INQ_DIMLEN(nid,rid,ii)
[2332]112      print*,'OK1 nid,rid,lat',nid,rid,ii
[2191]113!.......................................................................
114      ierr=NF_INQ_DIMID(nid,'lon',rid)
[5073]115      IF (ierr/=NF_NOERR) THEN
[2191]116         print*, 'Oh probleme lecture dimension lon'
117      ENDIF
118      ierr=NF_INQ_DIMLEN(nid,rid,jj)
[2332]119      print*,'OK2 nid,rid,lat',nid,rid,jj
[2191]120!.......................................................................
[2118]121      ierr=NF_INQ_DIMID(nid,'lev',rid)
[5073]122      IF (ierr/=NF_NOERR) THEN
[2118]123         print*, 'Oh probleme lecture dimension zz'
124      ENDIF
[2191]125      ierr=NF_INQ_DIMLEN(nid,rid,nlev_cas)
[2332]126      print*,'OK3 nid,rid,nlev_cas',nid,rid,nlev_cas
[2118]127!.......................................................................
128      ierr=NF_INQ_DIMID(nid,'time',rid)
129      print*,'nid,rid',nid,rid
[2191]130      nt_cas=0
[5073]131      IF (ierr/=NF_NOERR) THEN
[2118]132        stop 'probleme lecture dimension sens'
133      ENDIF
[2191]134      ierr=NF_INQ_DIMLEN(nid,rid,nt_cas)
[2332]135      print*,'OK4 nid,rid,nt_cas',nid,rid,nt_cas
[2118]136
137!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[2191]138!profils moyens:
139        allocate(plev_cas(nlev_cas,nt_cas))       
140        allocate(z_cas(nlev_cas,nt_cas))
141        allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas))
142        allocate(th_cas(nlev_cas,nt_cas),rv_cas(nlev_cas,nt_cas))
143        allocate(u_cas(nlev_cas,nt_cas))
144        allocate(v_cas(nlev_cas,nt_cas))
[2118]145
[2191]146!forcing
147        allocate(ht_cas(nlev_cas,nt_cas),vt_cas(nlev_cas,nt_cas),dt_cas(nlev_cas,nt_cas),dtrad_cas(nlev_cas,nt_cas))
148        allocate(hq_cas(nlev_cas,nt_cas),vq_cas(nlev_cas,nt_cas),dq_cas(nlev_cas,nt_cas))
149        allocate(hth_cas(nlev_cas,nt_cas),vth_cas(nlev_cas,nt_cas),dth_cas(nlev_cas,nt_cas))
150        allocate(hr_cas(nlev_cas,nt_cas),vr_cas(nlev_cas,nt_cas),dr_cas(nlev_cas,nt_cas))
151        allocate(hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas),du_cas(nlev_cas,nt_cas))
152        allocate(hv_cas(nlev_cas,nt_cas),vv_cas(nlev_cas,nt_cas),dv_cas(nlev_cas,nt_cas))
153        allocate(vitw_cas(nlev_cas,nt_cas))
154        allocate(ug_cas(nlev_cas,nt_cas))
155        allocate(vg_cas(nlev_cas,nt_cas))
[2307]156        allocate(lat_cas(nt_cas),sens_cas(nt_cas),ts_cas(nt_cas),ustar_cas(nt_cas))
[2332]157        allocate(uw_cas(nlev_cas,nt_cas),vw_cas(nlev_cas,nt_cas),q1_cas(nlev_cas,nt_cas),q2_cas(nlev_cas,nt_cas))
[2118]158
159
160!champs interpoles
[2191]161        allocate(plev_prof_cas(nlev_cas))
162        allocate(t_prof_cas(nlev_cas))
163        allocate(q_prof_cas(nlev_cas))
164        allocate(u_prof_cas(nlev_cas))
165        allocate(v_prof_cas(nlev_cas))
[2118]166
[2191]167        allocate(vitw_prof_cas(nlev_cas))
168        allocate(ug_prof_cas(nlev_cas))
169        allocate(vg_prof_cas(nlev_cas))
170        allocate(ht_prof_cas(nlev_cas))
171        allocate(hq_prof_cas(nlev_cas))
172        allocate(hu_prof_cas(nlev_cas))
173        allocate(hv_prof_cas(nlev_cas))
174        allocate(vt_prof_cas(nlev_cas))
175        allocate(vq_prof_cas(nlev_cas))
176        allocate(vu_prof_cas(nlev_cas))
177        allocate(vv_prof_cas(nlev_cas))
178        allocate(dt_prof_cas(nlev_cas))
179        allocate(dtrad_prof_cas(nlev_cas))
180        allocate(dq_prof_cas(nlev_cas))
181        allocate(du_prof_cas(nlev_cas))
182        allocate(dv_prof_cas(nlev_cas))
[2332]183        allocate(uw_prof_cas(nlev_cas))
184        allocate(vw_prof_cas(nlev_cas))
185        allocate(q1_prof_cas(nlev_cas))
186        allocate(q2_prof_cas(nlev_cas))
[2191]187
[2118]188        print*,'Allocations OK'
[2332]189        call read_cas(nid,nlev_cas,nt_cas                                       &
190     &     ,z_cas,plev_cas,t_cas,q_cas,rh_cas,th_cas,rv_cas,u_cas,v_cas         &
191     &     ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas,dv_cas,hv_cas,vv_cas    &
192     &     ,dt_cas,dtrad_cas,ht_cas,vt_cas,dq_cas,hq_cas,vq_cas                 &
193     &     ,dth_cas,hth_cas,vth_cas,dr_cas,hr_cas,vr_cas,sens_cas,lat_cas,ts_cas&
194     &     ,ustar_cas,uw_cas,vw_cas,q1_cas,q2_cas)
195        print*,'Read cas OK'
[2118]196
197
[2191]198END SUBROUTINE read_1D_cas
[2118]199
200
[2191]201
[2118]202!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
203SUBROUTINE deallocate_1D_cases
[2191]204!profils environnementaux:
205        deallocate(plev_cas)
[2118]206       
[2191]207        deallocate(z_cas)
208        deallocate(t_cas,q_cas,rh_cas)
209        deallocate(th_cas,rv_cas)
210        deallocate(u_cas)
211        deallocate(v_cas)
[2118]212       
[2191]213!forcing
214        deallocate(ht_cas,vt_cas,dt_cas,dtrad_cas)
215        deallocate(hq_cas,vq_cas,dq_cas)
216        deallocate(hth_cas,vth_cas,dth_cas)
217        deallocate(hr_cas,vr_cas,dr_cas)
218        deallocate(hu_cas,vu_cas,du_cas)
219        deallocate(hv_cas,vv_cas,dv_cas)
220        deallocate(vitw_cas)
221        deallocate(ug_cas)
222        deallocate(vg_cas)
[2332]223        deallocate(lat_cas,sens_cas,ts_cas,ustar_cas,uw_cas,vw_cas,q1_cas,q2_cas)
[2118]224
225!champs interpoles
[2191]226        deallocate(plev_prof_cas)
227        deallocate(t_prof_cas)
228        deallocate(q_prof_cas)
229        deallocate(u_prof_cas)
230        deallocate(v_prof_cas)
231
232        deallocate(vitw_prof_cas)
233        deallocate(ug_prof_cas)
234        deallocate(vg_prof_cas)
235        deallocate(ht_prof_cas)
236        deallocate(hq_prof_cas)
237        deallocate(hu_prof_cas)
238        deallocate(hv_prof_cas)
239        deallocate(vt_prof_cas)
240        deallocate(vq_prof_cas)
241        deallocate(vu_prof_cas)
242        deallocate(vv_prof_cas)
243        deallocate(dt_prof_cas)
244        deallocate(dtrad_prof_cas)
245        deallocate(dq_prof_cas)
246        deallocate(du_prof_cas)
247        deallocate(dv_prof_cas)
248        deallocate(t_prof_cas)
249        deallocate(q_prof_cas)
250        deallocate(u_prof_cas)
251        deallocate(v_prof_cas)
[2332]252        deallocate(uw_prof_cas)
253        deallocate(vw_prof_cas)
254        deallocate(q1_prof_cas)
255        deallocate(q2_prof_cas)
[2191]256
[2118]257END SUBROUTINE deallocate_1D_cases
258
259
260END MODULE mod_1D_cases_read
261!=====================================================================
[2191]262      subroutine read_cas(nid,nlevel,ntime                          &
263     &     ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w,                   &
264     &     du,hu,vu,dv,hv,vv,dt,dtrad,ht,vt,dq,hq,vq,                     &
[2332]265     &     dth,hth,vth,dr,hr,vr,sens,flat,ts,ustar,uw,vw,q1,q2)
[2118]266
[2191]267!program reading forcing of the case study
[2118]268      implicit none
[4593]269      INCLUDE "netcdf.inc"
[2118]270
271      integer ntime,nlevel
272
[2191]273      real zz(nlevel,ntime)
274      real pp(nlevel,ntime)
275      real temp(nlevel,ntime),qv(nlevel,ntime),rh(nlevel,ntime)
276      real theta(nlevel,ntime),rv(nlevel,ntime)
277      real u(nlevel,ntime)
278      real v(nlevel,ntime)
279      real ug(nlevel,ntime)
280      real vg(nlevel,ntime)
281      real w(nlevel,ntime)
282      real du(nlevel,ntime),hu(nlevel,ntime),vu(nlevel,ntime)
283      real dv(nlevel,ntime),hv(nlevel,ntime),vv(nlevel,ntime)
284      real dt(nlevel,ntime),ht(nlevel,ntime),vt(nlevel,ntime)
285      real dtrad(nlevel,ntime)
286      real dq(nlevel,ntime),hq(nlevel,ntime),vq(nlevel,ntime)
287      real dth(nlevel,ntime),hth(nlevel,ntime),vth(nlevel,ntime)
288      real dr(nlevel,ntime),hr(nlevel,ntime),vr(nlevel,ntime)
[2307]289      real flat(ntime),sens(ntime),ts(ntime),ustar(ntime)
[2332]290      real uw(nlevel,ntime),vw(nlevel,ntime),q1(nlevel,ntime),q2(nlevel,ntime)
[2118]291
292
293      integer nid, ierr,rid
294      integer nbvar3d
[2307]295      parameter(nbvar3d=39)
[2118]296      integer var3didin(nbvar3d)
297
298       ierr=NF_INQ_VARID(nid,"zz",var3didin(1))
299         if(ierr/=NF_NOERR) then
300           write(*,*) NF_STRERROR(ierr)
301           stop 'lev'
302         endif
[2191]303     
304      ierr=NF_INQ_VARID(nid,"pp",var3didin(2))
305         if(ierr/=NF_NOERR) then
306           write(*,*) NF_STRERROR(ierr)
307           stop 'plev'
308         endif
[2118]309
310
[2191]311      ierr=NF_INQ_VARID(nid,"temp",var3didin(3))
[2118]312         if(ierr/=NF_NOERR) then
313           write(*,*) NF_STRERROR(ierr)
314           stop 'temp'
315         endif
316
[2191]317      ierr=NF_INQ_VARID(nid,"qv",var3didin(4))
[2118]318         if(ierr/=NF_NOERR) then
319           write(*,*) NF_STRERROR(ierr)
320           stop 'qv'
321         endif
322
[2191]323      ierr=NF_INQ_VARID(nid,"rh",var3didin(5))
[2118]324         if(ierr/=NF_NOERR) then
325           write(*,*) NF_STRERROR(ierr)
[2191]326           stop 'rh'
327         endif
328
329      ierr=NF_INQ_VARID(nid,"theta",var3didin(6))
330         if(ierr/=NF_NOERR) then
331           write(*,*) NF_STRERROR(ierr)
332           stop 'theta'
333         endif
334
335      ierr=NF_INQ_VARID(nid,"rv",var3didin(7))
336         if(ierr/=NF_NOERR) then
337           write(*,*) NF_STRERROR(ierr)
338           stop 'rv'
339         endif
340
341
342      ierr=NF_INQ_VARID(nid,"u",var3didin(8))
343         if(ierr/=NF_NOERR) then
344           write(*,*) NF_STRERROR(ierr)
[2118]345           stop 'u'
346         endif
347
[2191]348      ierr=NF_INQ_VARID(nid,"v",var3didin(9))
[2118]349         if(ierr/=NF_NOERR) then
350           write(*,*) NF_STRERROR(ierr)
351           stop 'v'
352         endif
353
[2191]354       ierr=NF_INQ_VARID(nid,"ug",var3didin(10))
[2118]355         if(ierr/=NF_NOERR) then
356           write(*,*) NF_STRERROR(ierr)
[2191]357           stop 'ug'
[2118]358         endif
359
[2191]360      ierr=NF_INQ_VARID(nid,"vg",var3didin(11))
[2118]361         if(ierr/=NF_NOERR) then
362           write(*,*) NF_STRERROR(ierr)
[2191]363           stop 'vg'
[2118]364         endif
365
[2191]366      ierr=NF_INQ_VARID(nid,"w",var3didin(12))
[2118]367         if(ierr/=NF_NOERR) then
368           write(*,*) NF_STRERROR(ierr)
[2191]369           stop 'w'
[2118]370         endif
[2191]371
372      ierr=NF_INQ_VARID(nid,"advu",var3didin(13))
373         if(ierr/=NF_NOERR) then
374           write(*,*) NF_STRERROR(ierr)
375           stop 'advu'
376         endif
377
378      ierr=NF_INQ_VARID(nid,"hu",var3didin(14))
379         if(ierr/=NF_NOERR) then
380           write(*,*) NF_STRERROR(ierr)
381           stop 'hu'
382         endif
383
384       ierr=NF_INQ_VARID(nid,"vu",var3didin(15))
385         if(ierr/=NF_NOERR) then
386           write(*,*) NF_STRERROR(ierr)
387           stop 'vu'
388         endif
389
390       ierr=NF_INQ_VARID(nid,"advv",var3didin(16))
391         if(ierr/=NF_NOERR) then
392           write(*,*) NF_STRERROR(ierr)
393           stop 'advv'
394         endif
395
396      ierr=NF_INQ_VARID(nid,"hv",var3didin(17))
397         if(ierr/=NF_NOERR) then
398           write(*,*) NF_STRERROR(ierr)
399           stop 'hv'
400         endif
401
402       ierr=NF_INQ_VARID(nid,"vv",var3didin(18))
403         if(ierr/=NF_NOERR) then
404           write(*,*) NF_STRERROR(ierr)
405           stop 'vv'
406         endif
407
408      ierr=NF_INQ_VARID(nid,"advT",var3didin(19))
409         if(ierr/=NF_NOERR) then
410           write(*,*) NF_STRERROR(ierr)
411           stop 'advT'
412         endif
413
414      ierr=NF_INQ_VARID(nid,"hT",var3didin(20))
415         if(ierr/=NF_NOERR) then
416           write(*,*) NF_STRERROR(ierr)
417           stop 'hT'
418         endif
419
420      ierr=NF_INQ_VARID(nid,"vT",var3didin(21))
421         if(ierr/=NF_NOERR) then
422           write(*,*) NF_STRERROR(ierr)
423           stop 'vT'
424         endif
425
426      ierr=NF_INQ_VARID(nid,"advq",var3didin(22))
427         if(ierr/=NF_NOERR) then
428           write(*,*) NF_STRERROR(ierr)
429           stop 'advq'
430         endif
[2118]431     
[2191]432      ierr=NF_INQ_VARID(nid,"hq",var3didin(23))
[2118]433         if(ierr/=NF_NOERR) then
434           write(*,*) NF_STRERROR(ierr)
[2191]435           stop 'hq'
436         endif
437
438      ierr=NF_INQ_VARID(nid,"vq",var3didin(24))
439         if(ierr/=NF_NOERR) then
440           write(*,*) NF_STRERROR(ierr)
441           stop 'vq'
442         endif
443
444      ierr=NF_INQ_VARID(nid,"advth",var3didin(25))
445         if(ierr/=NF_NOERR) then
446           write(*,*) NF_STRERROR(ierr)
447           stop 'advth'
448         endif
449
450      ierr=NF_INQ_VARID(nid,"hth",var3didin(26))
451         if(ierr/=NF_NOERR) then
452           write(*,*) NF_STRERROR(ierr)
453           stop 'hth'
454         endif
455
456      ierr=NF_INQ_VARID(nid,"vth",var3didin(27))
457         if(ierr/=NF_NOERR) then
458           write(*,*) NF_STRERROR(ierr)
459           stop 'vth'
460         endif
461
462      ierr=NF_INQ_VARID(nid,"advr",var3didin(28))
463         if(ierr/=NF_NOERR) then
464           write(*,*) NF_STRERROR(ierr)
465           stop 'advr'
466         endif
467     
468      ierr=NF_INQ_VARID(nid,"hr",var3didin(29))
469         if(ierr/=NF_NOERR) then
470           write(*,*) NF_STRERROR(ierr)
471           stop 'hr'
472         endif
473
474      ierr=NF_INQ_VARID(nid,"vr",var3didin(30))
475         if(ierr/=NF_NOERR) then
476           write(*,*) NF_STRERROR(ierr)
477           stop 'vr'
478         endif
479
480      ierr=NF_INQ_VARID(nid,"radT",var3didin(31))
481         if(ierr/=NF_NOERR) then
482           write(*,*) NF_STRERROR(ierr)
483           stop 'radT'
484         endif
485
486      ierr=NF_INQ_VARID(nid,"sens",var3didin(32))
487         if(ierr/=NF_NOERR) then
488           write(*,*) NF_STRERROR(ierr)
[2118]489           stop 'sens'
490         endif
491
[2191]492      ierr=NF_INQ_VARID(nid,"flat",var3didin(33))
[2118]493         if(ierr/=NF_NOERR) then
494           write(*,*) NF_STRERROR(ierr)
495           stop 'flat'
496         endif
497
[2191]498      ierr=NF_INQ_VARID(nid,"ts",var3didin(34))
[2118]499         if(ierr/=NF_NOERR) then
500           write(*,*) NF_STRERROR(ierr)
[2191]501           stop 'ts'
502         endif
[2307]503
504      ierr=NF_INQ_VARID(nid,"ustar",var3didin(35))
505         if(ierr/=NF_NOERR) then
506           write(*,*) NF_STRERROR(ierr)
507           stop 'ustar'
508         endif
[2332]509
510      ierr=NF_INQ_VARID(nid,"uw",var3didin(36))
511         if(ierr/=NF_NOERR) then
512           write(*,*) NF_STRERROR(ierr)
513           stop 'uw'
514         endif
515
516      ierr=NF_INQ_VARID(nid,"vw",var3didin(37))
517         if(ierr/=NF_NOERR) then
518           write(*,*) NF_STRERROR(ierr)
519           stop 'vw'
520         endif
521
522      ierr=NF_INQ_VARID(nid,"q1",var3didin(38))
523         if(ierr/=NF_NOERR) then
524           write(*,*) NF_STRERROR(ierr)
525           stop 'q1'
526         endif
527
528      ierr=NF_INQ_VARID(nid,"q2",var3didin(39))
529         if(ierr/=NF_NOERR) then
530           write(*,*) NF_STRERROR(ierr)
531           stop 'q2'
532         endif
[2118]533 
[5073]534         ierr = nf90_get_var(nid,var3didin(1),zz)
[2118]535         if(ierr/=NF_NOERR) then
536            write(*,*) NF_STRERROR(ierr)
537            stop "getvarup"
538         endif
539!          write(*,*)'lecture z ok',zz
540
[5073]541         ierr = nf90_get_var(nid,var3didin(2),pp)
[2118]542         if(ierr/=NF_NOERR) then
543            write(*,*) NF_STRERROR(ierr)
544            stop "getvarup"
545         endif
[2191]546!          write(*,*)'lecture pp ok',pp
[2118]547
[2191]548
[5073]549         ierr = nf90_get_var(nid,var3didin(3),temp)
[2118]550         if(ierr/=NF_NOERR) then
551            write(*,*) NF_STRERROR(ierr)
552            stop "getvarup"
553         endif
[2191]554!          write(*,*)'lecture T ok',temp
555
[5073]556         ierr = nf90_get_var(nid,var3didin(4),qv)
[2191]557         if(ierr/=NF_NOERR) then
558            write(*,*) NF_STRERROR(ierr)
559            stop "getvarup"
560         endif
[2118]561!          write(*,*)'lecture qv ok',qv
562 
[5073]563         ierr = nf90_get_var(nid,var3didin(5),rh)
[2118]564         if(ierr/=NF_NOERR) then
565            write(*,*) NF_STRERROR(ierr)
566            stop "getvarup"
567         endif
[2191]568!          write(*,*)'lecture rh ok',rh
569
[5073]570         ierr = nf90_get_var(nid,var3didin(6),theta)
[2191]571         if(ierr/=NF_NOERR) then
572            write(*,*) NF_STRERROR(ierr)
573            stop "getvarup"
574         endif
575!          write(*,*)'lecture theta ok',theta
576
[5073]577         ierr = nf90_get_var(nid,var3didin(7),rv)
[2191]578         if(ierr/=NF_NOERR) then
579            write(*,*) NF_STRERROR(ierr)
580            stop "getvarup"
581         endif
582!          write(*,*)'lecture rv ok',rv
583
[5073]584         ierr = nf90_get_var(nid,var3didin(8),u)
[2191]585         if(ierr/=NF_NOERR) then
586            write(*,*) NF_STRERROR(ierr)
587            stop "getvarup"
588         endif
[2118]589!          write(*,*)'lecture u ok',u
590
[5073]591         ierr = nf90_get_var(nid,var3didin(9),v)
[2118]592         if(ierr/=NF_NOERR) then
593            write(*,*) NF_STRERROR(ierr)
594            stop "getvarup"
595         endif
596!          write(*,*)'lecture v ok',v
597
[5073]598         ierr = nf90_get_var(nid,var3didin(10),ug)
[2118]599         if(ierr/=NF_NOERR) then
600            write(*,*) NF_STRERROR(ierr)
601            stop "getvarup"
602         endif
[2191]603!          write(*,*)'lecture ug ok',ug
[2118]604
[5073]605         ierr = nf90_get_var(nid,var3didin(11),vg)
[2118]606         if(ierr/=NF_NOERR) then
607            write(*,*) NF_STRERROR(ierr)
608            stop "getvarup"
609         endif
[2191]610!          write(*,*)'lecture vg ok',vg
611
[5073]612         ierr = nf90_get_var(nid,var3didin(12),w)
[2191]613         if(ierr/=NF_NOERR) then
614            write(*,*) NF_STRERROR(ierr)
615            stop "getvarup"
616         endif
617!          write(*,*)'lecture w ok',w
618
[5073]619         ierr = nf90_get_var(nid,var3didin(13),du)
[2191]620         if(ierr/=NF_NOERR) then
621            write(*,*) NF_STRERROR(ierr)
622            stop "getvarup"
623         endif
624!          write(*,*)'lecture du ok',du
625
[5073]626         ierr = nf90_get_var(nid,var3didin(14),hu)
[2191]627         if(ierr/=NF_NOERR) then
628            write(*,*) NF_STRERROR(ierr)
629            stop "getvarup"
630         endif
631!          write(*,*)'lecture hu ok',hu
632
[5073]633         ierr = nf90_get_var(nid,var3didin(15),vu)
[2191]634         if(ierr/=NF_NOERR) then
635            write(*,*) NF_STRERROR(ierr)
636            stop "getvarup"
637         endif
638!          write(*,*)'lecture vu ok',vu
639
[5073]640         ierr = nf90_get_var(nid,var3didin(16),dv)
[2191]641         if(ierr/=NF_NOERR) then
642            write(*,*) NF_STRERROR(ierr)
643            stop "getvarup"
644         endif
645!          write(*,*)'lecture dv ok',dv
646
[5073]647         ierr = nf90_get_var(nid,var3didin(17),hv)
[2191]648         if(ierr/=NF_NOERR) then
649            write(*,*) NF_STRERROR(ierr)
650            stop "getvarup"
651         endif
652!          write(*,*)'lecture hv ok',hv
653
[5073]654         ierr = nf90_get_var(nid,var3didin(18),vv)
[2191]655         if(ierr/=NF_NOERR) then
656            write(*,*) NF_STRERROR(ierr)
657            stop "getvarup"
658         endif
659!          write(*,*)'lecture vv ok',vv
660
[5073]661         ierr = nf90_get_var(nid,var3didin(19),dt)
[2191]662         if(ierr/=NF_NOERR) then
663            write(*,*) NF_STRERROR(ierr)
664            stop "getvarup"
665         endif
[2118]666!          write(*,*)'lecture dt ok',dt
667
[5073]668         ierr = nf90_get_var(nid,var3didin(20),ht)
[2118]669         if(ierr/=NF_NOERR) then
670            write(*,*) NF_STRERROR(ierr)
671            stop "getvarup"
672         endif
[2191]673!          write(*,*)'lecture ht ok',ht
674
[5073]675         ierr = nf90_get_var(nid,var3didin(21),vt)
[2191]676         if(ierr/=NF_NOERR) then
677            write(*,*) NF_STRERROR(ierr)
678            stop "getvarup"
679         endif
680!          write(*,*)'lecture vt ok',vt
681
[5073]682         ierr = nf90_get_var(nid,var3didin(22),dq)
[2191]683         if(ierr/=NF_NOERR) then
684            write(*,*) NF_STRERROR(ierr)
685            stop "getvarup"
686         endif
[2118]687!          write(*,*)'lecture dq ok',dq
688
[5073]689         ierr = nf90_get_var(nid,var3didin(23),hq)
[2118]690         if(ierr/=NF_NOERR) then
691            write(*,*) NF_STRERROR(ierr)
692            stop "getvarup"
693         endif
[2191]694!          write(*,*)'lecture hq ok',hq
695
[5073]696         ierr = nf90_get_var(nid,var3didin(24),vq)
[2191]697         if(ierr/=NF_NOERR) then
698            write(*,*) NF_STRERROR(ierr)
699            stop "getvarup"
700         endif
701!          write(*,*)'lecture vq ok',vq
702
[5073]703         ierr = nf90_get_var(nid,var3didin(25),dth)
[2191]704         if(ierr/=NF_NOERR) then
705            write(*,*) NF_STRERROR(ierr)
706            stop "getvarup"
707         endif
708!          write(*,*)'lecture dth ok',dth
709
[5073]710         ierr = nf90_get_var(nid,var3didin(26),hth)
[2191]711         if(ierr/=NF_NOERR) then
712            write(*,*) NF_STRERROR(ierr)
713            stop "getvarup"
714         endif
715!          write(*,*)'lecture hth ok',hth
716
[5073]717         ierr = nf90_get_var(nid,var3didin(27),vth)
[2191]718         if(ierr/=NF_NOERR) then
719            write(*,*) NF_STRERROR(ierr)
720            stop "getvarup"
721         endif
722!          write(*,*)'lecture vth ok',vth
723
[5073]724         ierr = nf90_get_var(nid,var3didin(28),dr)
[2191]725         if(ierr/=NF_NOERR) then
726            write(*,*) NF_STRERROR(ierr)
727            stop "getvarup"
728         endif
729!          write(*,*)'lecture dr ok',dr
730
[5073]731         ierr = nf90_get_var(nid,var3didin(29),hr)
[2191]732         if(ierr/=NF_NOERR) then
733            write(*,*) NF_STRERROR(ierr)
734            stop "getvarup"
735         endif
736!          write(*,*)'lecture hr ok',hr
737
[5073]738         ierr = nf90_get_var(nid,var3didin(30),vr)
[2191]739         if(ierr/=NF_NOERR) then
740            write(*,*) NF_STRERROR(ierr)
741            stop "getvarup"
742         endif
743!          write(*,*)'lecture vr ok',vr
744
[5073]745         ierr = nf90_get_var(nid,var3didin(31),dtrad)
[2191]746         if(ierr/=NF_NOERR) then
747            write(*,*) NF_STRERROR(ierr)
748            stop "getvarup"
749         endif
750!          write(*,*)'lecture dtrad ok',dtrad
751
[5073]752         ierr = nf90_get_var(nid,var3didin(32),sens)
[2191]753         if(ierr/=NF_NOERR) then
754            write(*,*) NF_STRERROR(ierr)
755            stop "getvarup"
756         endif
[2118]757!          write(*,*)'lecture sens ok',sens
758
[5073]759         ierr = nf90_get_var(nid,var3didin(33),flat)
[2118]760         if(ierr/=NF_NOERR) then
761            write(*,*) NF_STRERROR(ierr)
762            stop "getvarup"
763         endif
764!          write(*,*)'lecture flat ok',flat
765
[5073]766         ierr = nf90_get_var(nid,var3didin(34),ts)
[2118]767         if(ierr/=NF_NOERR) then
768            write(*,*) NF_STRERROR(ierr)
769            stop "getvarup"
770         endif
[2191]771!          write(*,*)'lecture ts ok',ts
[2118]772
[5073]773         ierr = nf90_get_var(nid,var3didin(35),ustar)
[2307]774         if(ierr/=NF_NOERR) then
775            write(*,*) NF_STRERROR(ierr)
776            stop "getvarup"
777         endif
778!         write(*,*)'lecture ustar ok',ustar
779
[5073]780         ierr = nf90_get_var(nid,var3didin(36),uw)
[2332]781         if(ierr/=NF_NOERR) then
782            write(*,*) NF_STRERROR(ierr)
783            stop "getvarup"
784         endif
785!         write(*,*)'lecture uw ok',uw
[2307]786
[5073]787         ierr = nf90_get_var(nid,var3didin(37),vw)
[2332]788         if(ierr/=NF_NOERR) then
789            write(*,*) NF_STRERROR(ierr)
790            stop "getvarup"
791         endif
792!         write(*,*)'lecture vw ok',vw
793
[5073]794         ierr = nf90_get_var(nid,var3didin(38),q1)
[2332]795         if(ierr/=NF_NOERR) then
796            write(*,*) NF_STRERROR(ierr)
797            stop "getvarup"
798         endif
799!         write(*,*)'lecture q1 ok',q1
800
[5073]801         ierr = nf90_get_var(nid,var3didin(39),q2)
[2332]802         if(ierr/=NF_NOERR) then
803            write(*,*) NF_STRERROR(ierr)
804            stop "getvarup"
805         endif
806!         write(*,*)'lecture q2 ok',q2
807
808
[2118]809         return
[2191]810         end subroutine read_cas
[2118]811!======================================================================
[2191]812        SUBROUTINE interp_case_time(day,day1,annee_ref                &
[2332]813!    &         ,year_cas,day_cas,nt_cas,pdt_forc,nlev_cas      &
814     &         ,nt_cas,nlev_cas                                       &
[2191]815     &         ,ts_cas,plev_cas,t_cas,q_cas,u_cas,v_cas               &
816     &         ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas           &
817     &         ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas   &
[2307]818     &         ,dq_cas,hq_cas,vq_cas,lat_cas,sens_cas,ustar_cas       &
[2332]819     &         ,uw_cas,vw_cas,q1_cas,q2_cas                           &
[2191]820     &         ,ts_prof_cas,plev_prof_cas,t_prof_cas,q_prof_cas       &
821     &         ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas         &
822     &         ,vitw_prof_cas,du_prof_cas,hu_prof_cas,vu_prof_cas     &
823     &         ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas       &
824     &         ,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas    &
[2332]825     &         ,hq_prof_cas,vq_prof_cas,lat_prof_cas,sens_prof_cas    &
826     &         ,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas)
[2191]827         
828
[2118]829        implicit none
830
831!---------------------------------------------------------------------------------------
832! Time interpolation of a 2D field to the timestep corresponding to day
833!
834! day: current julian day (e.g. 717538.2)
835! day1: first day of the simulation
[2191]836! nt_cas: total nb of data in the forcing
837! pdt_cas: total time interval (in sec) between 2 forcing data
[2118]838!---------------------------------------------------------------------------------------
839
[4593]840        INCLUDE "compar1d.h"
841        INCLUDE "date_cas.h"
[2118]842
843! inputs:
844        integer annee_ref
[2191]845        integer nt_cas,nlev_cas
[2332]846        real day, day1,day_cas
[2191]847        real ts_cas(nt_cas)
848        real plev_cas(nlev_cas,nt_cas)
849        real t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas)
850        real u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas)
851        real ug_cas(nlev_cas,nt_cas),vg_cas(nlev_cas,nt_cas)
852        real vitw_cas(nlev_cas,nt_cas)
853        real du_cas(nlev_cas,nt_cas),hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas)
854        real dv_cas(nlev_cas,nt_cas),hv_cas(nlev_cas,nt_cas),vv_cas(nlev_cas,nt_cas)
855        real dt_cas(nlev_cas,nt_cas),ht_cas(nlev_cas,nt_cas),vt_cas(nlev_cas,nt_cas)
856        real dtrad_cas(nlev_cas,nt_cas)
857        real dq_cas(nlev_cas,nt_cas),hq_cas(nlev_cas,nt_cas),vq_cas(nlev_cas,nt_cas)
858        real lat_cas(nt_cas)
859        real sens_cas(nt_cas)
[2332]860        real ustar_cas(nt_cas),uw_cas(nlev_cas,nt_cas),vw_cas(nlev_cas,nt_cas)
861        real q1_cas(nlev_cas,nt_cas),q2_cas(nlev_cas,nt_cas)
[2191]862
[2118]863! outputs:
[2191]864        real plev_prof_cas(nlev_cas)
865        real t_prof_cas(nlev_cas),q_prof_cas(nlev_cas)
866        real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas)
867        real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas)
868        real vitw_prof_cas(nlev_cas)
869        real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas)
870        real dv_prof_cas(nlev_cas),hv_prof_cas(nlev_cas),vv_prof_cas(nlev_cas)
871        real dt_prof_cas(nlev_cas),ht_prof_cas(nlev_cas),vt_prof_cas(nlev_cas)
872        real dtrad_prof_cas(nlev_cas)
873        real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas)
[2307]874        real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas
[2332]875        real uw_prof_cas(nlev_cas),vw_prof_cas(nlev_cas),q1_prof_cas(nlev_cas),q2_prof_cas(nlev_cas)
[2118]876! local:
[2191]877        integer it_cas1, it_cas2,k
878        real timeit,time_cas1,time_cas2,frac
[2118]879
880
[2332]881        print*,'Check time',day1,day_ju_ini_cas,day_deb+1,pdt_cas
[2191]882
[2310]883! On teste si la date du cas AMMA est correcte.
884! C est pour memoire car en fait les fichiers .def
885! sont censes etre corrects.
886! A supprimer a terme (MPL 20150623)
[2332]887!     if ((forcing_type.eq.10).and.(1.eq.0)) then
[2118]888! Check that initial day of the simulation consistent with AMMA case:
[2332]889!      if (annee_ref.ne.2006) then
890!       print*,'Pour AMMA, annee_ref doit etre 2006'
891!       print*,'Changer annee_ref dans run.def'
892!       stop
893!      endif
894!      if (annee_ref.eq.2006 .and. day1.lt.day_cas) then
895!       print*,'AMMA a debute le 10 juillet 2006',day1,day_cas
896!       print*,'Changer dayref dans run.def'
897!       stop
898!      endif
899!      if (annee_ref.eq.2006 .and. day1.gt.day_cas+1) then
900!       print*,'AMMA a fini le 11 juillet'
901!       print*,'Changer dayref ou nday dans run.def'
902!       stop
903!      endif
904!      endif
[2118]905
[2191]906! Determine timestep relative to the 1st day:
[2118]907!       timeit=(day-day1)*86400.
908!       if (annee_ref.eq.1992) then
[2332]909!        timeit=(day-day_cas)*86400.
[2118]910!       else
911!        timeit=(day+61.-1.)*86400. ! 61 days between Nov01 and Dec31 1992
912!       endif
[2332]913      timeit=(day-day_ju_ini_cas)*86400
914      print *,'day=',day
915      print *,'day_ju_ini_cas=',day_ju_ini_cas
916      print *,'pdt_cas=',pdt_cas
917      print *,'timeit=',timeit
918      print *,'nt_cas=',nt_cas
[2118]919
920! Determine the closest observation times:
[2191]921!       it_cas1=INT(timeit/pdt_cas)+1
922!       it_cas2=it_cas1 + 1
923!       time_cas1=(it_cas1-1)*pdt_cas
924!       time_cas2=(it_cas2-1)*pdt_cas
[2118]925
[2191]926       it_cas1=INT(timeit/pdt_cas)+1
[5073]927       IF (it_cas1 == nt_cas) THEN
[2191]928       it_cas2=it_cas1
[2118]929       ELSE
[2191]930       it_cas2=it_cas1 + 1
[2118]931       ENDIF
[2191]932       time_cas1=(it_cas1-1)*pdt_cas
933       time_cas2=(it_cas2-1)*pdt_cas
[2332]934      print *,'it_cas1=',it_cas1
935      print *,'it_cas2=',it_cas2
936      print *,'time_cas1=',time_cas1
937      print *,'time_cas2=',time_cas2
[2118]938
[5073]939       if (it_cas1 > nt_cas) then
[2332]940        write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: '            &
941     &        ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit
[2118]942        stop
943       endif
944
945! time interpolation:
[5073]946       IF (it_cas1 == it_cas2) THEN
[2373]947          frac=0.
948       ELSE
949          frac=(time_cas2-timeit)/(time_cas2-time_cas1)
950          frac=max(frac,0.0)
951       ENDIF
[2118]952
[2191]953       lat_prof_cas = lat_cas(it_cas2)                                       &
954     &          -frac*(lat_cas(it_cas2)-lat_cas(it_cas1))
955       sens_prof_cas = sens_cas(it_cas2)                                     &
956     &          -frac*(sens_cas(it_cas2)-sens_cas(it_cas1))
[2307]957       ts_prof_cas = ts_cas(it_cas2)                                         &
[2191]958     &          -frac*(ts_cas(it_cas2)-ts_cas(it_cas1))
[2307]959       ustar_prof_cas = ustar_cas(it_cas2)                                   &
960     &          -frac*(ustar_cas(it_cas2)-ustar_cas(it_cas1))
[2118]961
[2191]962       do k=1,nlev_cas
963        plev_prof_cas(k) = plev_cas(k,it_cas2)                               &
964     &          -frac*(plev_cas(k,it_cas2)-plev_cas(k,it_cas1))
965        t_prof_cas(k) = t_cas(k,it_cas2)                               &
966     &          -frac*(t_cas(k,it_cas2)-t_cas(k,it_cas1))
967        q_prof_cas(k) = q_cas(k,it_cas2)                               &
968     &          -frac*(q_cas(k,it_cas2)-q_cas(k,it_cas1))
969        u_prof_cas(k) = u_cas(k,it_cas2)                               &
970     &          -frac*(u_cas(k,it_cas2)-u_cas(k,it_cas1))
971        v_prof_cas(k) = v_cas(k,it_cas2)                               &
972     &          -frac*(v_cas(k,it_cas2)-v_cas(k,it_cas1))
973        ug_prof_cas(k) = ug_cas(k,it_cas2)                               &
974     &          -frac*(ug_cas(k,it_cas2)-ug_cas(k,it_cas1))
975        vg_prof_cas(k) = vg_cas(k,it_cas2)                               &
976     &          -frac*(vg_cas(k,it_cas2)-vg_cas(k,it_cas1))
977        vitw_prof_cas(k) = vitw_cas(k,it_cas2)                               &
978     &          -frac*(vitw_cas(k,it_cas2)-vitw_cas(k,it_cas1))
979        du_prof_cas(k) = du_cas(k,it_cas2)                                   &
980     &          -frac*(du_cas(k,it_cas2)-du_cas(k,it_cas1))
981        hu_prof_cas(k) = hu_cas(k,it_cas2)                                   &
982     &          -frac*(hu_cas(k,it_cas2)-hu_cas(k,it_cas1))
983        vu_prof_cas(k) = vu_cas(k,it_cas2)                                   &
984     &          -frac*(vu_cas(k,it_cas2)-vu_cas(k,it_cas1))
985        dv_prof_cas(k) = dv_cas(k,it_cas2)                                   &
986     &          -frac*(dv_cas(k,it_cas2)-dv_cas(k,it_cas1))
987        hv_prof_cas(k) = hv_cas(k,it_cas2)                                   &
988     &          -frac*(hv_cas(k,it_cas2)-hv_cas(k,it_cas1))
989        vv_prof_cas(k) = vv_cas(k,it_cas2)                                   &
990     &          -frac*(vv_cas(k,it_cas2)-vv_cas(k,it_cas1))
991        dt_prof_cas(k) = dt_cas(k,it_cas2)                                   &
992     &          -frac*(dt_cas(k,it_cas2)-dt_cas(k,it_cas1))
993        ht_prof_cas(k) = ht_cas(k,it_cas2)                                   &
994     &          -frac*(ht_cas(k,it_cas2)-ht_cas(k,it_cas1))
995        vt_prof_cas(k) = vt_cas(k,it_cas2)                                   &
996     &          -frac*(vt_cas(k,it_cas2)-vt_cas(k,it_cas1))
997        dtrad_prof_cas(k) = dtrad_cas(k,it_cas2)                                   &
998     &          -frac*(dtrad_cas(k,it_cas2)-dtrad_cas(k,it_cas1))
999        dq_prof_cas(k) = dq_cas(k,it_cas2)                                   &
1000     &          -frac*(dq_cas(k,it_cas2)-dq_cas(k,it_cas1))
1001        hq_prof_cas(k) = hq_cas(k,it_cas2)                                   &
1002     &          -frac*(hq_cas(k,it_cas2)-hq_cas(k,it_cas1))
1003        vq_prof_cas(k) = vq_cas(k,it_cas2)                                   &
1004     &          -frac*(vq_cas(k,it_cas2)-vq_cas(k,it_cas1))
[2332]1005       uw_prof_cas(k) = uw_cas(k,it_cas2)                                   &
1006     &          -frac*(uw_cas(k,it_cas2)-uw_cas(k,it_cas1))
1007       vw_prof_cas(k) = vw_cas(k,it_cas2)                                   &
1008     &          -frac*(vw_cas(k,it_cas2)-vw_cas(k,it_cas1))
1009       q1_prof_cas(k) = q1_cas(k,it_cas2)                                   &
1010     &          -frac*(q1_cas(k,it_cas2)-q1_cas(k,it_cas1))
1011       q2_prof_cas(k) = q2_cas(k,it_cas2)                                   &
1012     &          -frac*(q2_cas(k,it_cas2)-q2_cas(k,it_cas1))
[2118]1013        enddo
1014
1015        return
1016        END
1017
[2191]1018!**********************************************************************************************
Note: See TracBrowser for help on using the repository browser.