26 #include "dimensions.h"
34 #include "description.h"
43 REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm)
44 REAL teta(ijb_u:ije_u,llm)
45 REAL q(ijb_u:ije_u,llm,nqtot),masse(ijb_u:ije_u,llm)
46 REAL ps(ijb_u:ije_u),
phis(ijb_u:ije_u)
54 REAL tab_cntrl(length)
55 INTEGER ierr, nid, nvarid
56 REAL,
ALLOCATABLE :: vcov_glo(:,:),ucov_glo(:,:),teta_glo(:,:)
57 REAL,
ALLOCATABLE :: q_glo(:,:),masse_glo(:,:),ps_glo(:)
58 REAL,
ALLOCATABLE :: phis_glo(:)
65 ierr = nf_open(fichnom, nf_nowrite,nid)
66 IF (ierr.NE.nf_noerr)
THEN
68 &
'dynetat0_loc: Pb d''ouverture du fichier start.nc'
69 write(
lunout,*)
' ierr = ', ierr
74 ierr = nf_inq_varid(nid,
"controle", nvarid)
75 IF (ierr .NE. nf_noerr)
THEN
76 write(
lunout,*)
"dynetat0_loc: Le champ <controle> est absent"
80 ierr = nf_get_var_double(nid, nvarid, tab_cntrl)
82 ierr = nf_get_var_real(nid, nvarid, tab_cntrl)
84 IF (ierr .NE. nf_noerr)
THEN
85 write(
lunout,*)
"dynetat0_loc: Lecture echoue pour <controle>"
91 if (planet_type.eq.
"generic")
then
92 print*,
'NOTE NOTE NOTE : Planeto-like start files'
96 print*,
'NOTE NOTE NOTE : Earth-like start files'
106 rad = tab_cntrl(idecal+1)
107 omeg = tab_cntrl(idecal+2)
108 g = tab_cntrl(idecal+3)
109 cpp = tab_cntrl(idecal+4)
110 kappa = tab_cntrl(idecal+5)
111 daysec = tab_cntrl(idecal+6)
112 dtvr = tab_cntrl(idecal+7)
113 etot0 = tab_cntrl(idecal+8)
114 ptot0 = tab_cntrl(idecal+9)
115 ztot0 = tab_cntrl(idecal+10)
116 stot0 = tab_cntrl(idecal+11)
117 ang0 = tab_cntrl(idecal+12)
118 pa = tab_cntrl(idecal+13)
119 preff = tab_cntrl(idecal+14)
121 clon = tab_cntrl(idecal+15)
122 clat = tab_cntrl(idecal+16)
126 IF ( tab_cntrl(idecal+19).EQ.1. )
THEN
135 IF( tab_cntrl(idecal+22).EQ.1. ) ysinus = . true.
143 write(
lunout,*)
'dynetat0_loc: rad,omeg,g,cpp,kappa',
149 ELSE IF(
jm.ne.jjm )
THEN
152 ELSE IF(
lllm.ne.llm )
THEN
157 ierr = nf_inq_varid(nid,
"rlonu", nvarid)
158 IF (ierr .NE. nf_noerr)
THEN
159 write(
lunout,*)
"dynetat0_loc: Le champ <rlonu> est absent"
163 ierr = nf_get_var_double(nid, nvarid,
rlonu)
165 ierr = nf_get_var_real(nid, nvarid,
rlonu)
167 IF (ierr .NE. nf_noerr)
THEN
168 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <rlonu>"
172 ierr = nf_inq_varid(nid,
"rlatu", nvarid)
173 IF (ierr .NE. nf_noerr)
THEN
174 write(
lunout,*)
"dynetat0_loc: Le champ <rlatu> est absent"
178 ierr = nf_get_var_double(nid, nvarid,
rlatu)
180 ierr = nf_get_var_real(nid, nvarid,
rlatu)
182 IF (ierr .NE. nf_noerr)
THEN
183 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <rlatu>"
187 ierr = nf_inq_varid(nid,
"rlonv", nvarid)
188 IF (ierr .NE. nf_noerr)
THEN
189 write(
lunout,*)
"dynetat0_loc: Le champ <rlonv> est absent"
193 ierr = nf_get_var_double(nid, nvarid,
rlonv)
195 ierr = nf_get_var_real(nid, nvarid,
rlonv)
197 IF (ierr .NE. nf_noerr)
THEN
198 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <rlonv>"
202 ierr = nf_inq_varid(nid,
"rlatv", nvarid)
203 IF (ierr .NE. nf_noerr)
THEN
204 write(
lunout,*)
"dynetat0_loc: Le champ <rlatv> est absent"
208 ierr = nf_get_var_double(nid, nvarid,
rlatv)
210 ierr = nf_get_var_real(nid, nvarid,
rlatv)
212 IF (ierr .NE. nf_noerr)
THEN
213 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour rlatv"
217 ierr = nf_inq_varid(nid,
"cu", nvarid)
218 IF (ierr .NE. nf_noerr)
THEN
219 write(
lunout,*)
"dynetat0_loc: Le champ <cu> est absent"
223 ierr = nf_get_var_double(nid, nvarid,
cu)
225 ierr = nf_get_var_real(nid, nvarid,
cu)
227 IF (ierr .NE. nf_noerr)
THEN
228 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <cu>"
232 ierr = nf_inq_varid(nid,
"cv", nvarid)
233 IF (ierr .NE. nf_noerr)
THEN
234 write(
lunout,*)
"dynetat0_loc: Le champ <cv> est absent"
238 ierr = nf_get_var_double(nid, nvarid,
cv)
240 ierr = nf_get_var_real(nid, nvarid,
cv)
242 IF (ierr .NE. nf_noerr)
THEN
243 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <cv>"
247 ierr = nf_inq_varid(nid,
"aire", nvarid)
248 IF (ierr .NE. nf_noerr)
THEN
249 write(
lunout,*)
"dynetat0_loc: Le champ <aire> est absent"
253 ierr = nf_get_var_double(nid, nvarid,
aire)
255 ierr = nf_get_var_real(nid, nvarid,
aire)
257 IF (ierr .NE. nf_noerr)
THEN
258 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <aire>"
264 ierr = nf_inq_varid(nid,
"phisinit", nvarid)
265 IF (ierr .NE. nf_noerr)
THEN
266 write(
lunout,*)
"dynetat0_loc: Le champ <phisinit> est absent"
270 ierr = nf_get_var_double(nid, nvarid, phis_glo)
272 ierr = nf_get_var_real(nid, nvarid, phis_glo)
274 IF (ierr .NE. nf_noerr)
THEN
275 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <phisinit>"
278 phis(ijb_u:ije_u)=phis_glo(ijb_u:ije_u)
281 ierr = nf_inq_varid(nid,
"temps", nvarid)
282 IF (ierr .NE. nf_noerr)
THEN
283 write(
lunout,*)
"dynetat0: Le champ <temps> est absent"
284 write(
lunout,*)
"dynetat0: J essaie <Time>"
285 ierr = nf_inq_varid(nid,
"Time", nvarid)
286 IF (ierr .NE. nf_noerr)
THEN
287 write(
lunout,*)
"dynetat0: Le champ <Time> est absent"
292 ierr = nf_get_var_double(nid, nvarid,
time)
294 ierr = nf_get_var_real(nid, nvarid,
time)
296 IF (ierr .NE. nf_noerr)
THEN
297 write(
lunout,*)
"dynetat0_loc: Lecture echouee <temps>"
301 ierr = nf_inq_varid(nid,
"ucov", nvarid)
302 IF (ierr .NE. nf_noerr)
THEN
303 write(
lunout,*)
"dynetat0_loc: Le champ <ucov> est absent"
307 ALLOCATE(ucov_glo(
ip1jmp1,llm))
310 ierr = nf_get_var_double(nid, nvarid, ucov_glo)
312 ierr = nf_get_var_real(nid, nvarid, ucov_glo)
314 IF (ierr .NE. nf_noerr)
THEN
315 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <ucov>"
319 ucov(ijb_u:ije_u,:)=ucov_glo(ijb_u:ije_u,:)
321 ALLOCATE(vcov_glo(
ip1jm,llm))
323 ierr = nf_inq_varid(nid,
"vcov", nvarid)
324 IF (ierr .NE. nf_noerr)
THEN
325 write(
lunout,*)
"dynetat0_loc: Le champ <vcov> est absent"
329 ierr = nf_get_var_double(nid, nvarid, vcov_glo)
331 ierr = nf_get_var_real(nid, nvarid, vcov_glo)
333 IF (ierr .NE. nf_noerr)
THEN
334 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <vcov>"
337 vcov(ijb_v:ije_v,:)=vcov_glo(ijb_v:ije_v,:)
339 ALLOCATE(teta_glo(
ip1jmp1,llm))
341 ierr = nf_inq_varid(nid,
"teta", nvarid)
342 IF (ierr .NE. nf_noerr)
THEN
343 write(
lunout,*)
"dynetat0_loc: Le champ <teta> est absent"
347 ierr = nf_get_var_double(nid, nvarid, teta_glo)
349 ierr = nf_get_var_real(nid, nvarid, teta_glo)
351 IF (ierr .NE. nf_noerr)
THEN
352 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <teta>"
356 teta(ijb_u:ije_u,:)=teta_glo(ijb_u:ije_u,:)
362 ierr = nf_inq_varid(nid, tname(iq), nvarid)
363 IF (ierr .NE. nf_noerr)
THEN
364 write(
lunout,*)
"dynetat0_loc: Le traceur <" &
365 & //trim(tname(iq))//
"> est absent"
366 write(
lunout,*)
"Il est donc initialise a zero"
370 ierr = nf_get_var_double(nid, nvarid, q_glo)
372 ierr = nf_get_var_real(nid, nvarid, q_glo)
374 IF (ierr .NE. nf_noerr)
THEN
376 &
"dynetat0_loc: Lecture echouee pour "//tname(iq)
380 q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
384 ALLOCATE(masse_glo(
ip1jmp1,llm))
386 ierr = nf_inq_varid(nid,
"masse", nvarid)
387 IF (ierr .NE. nf_noerr)
THEN
388 write(
lunout,*)
"dynetat0_loc: Le champ <masse> est absent"
392 ierr = nf_get_var_double(nid, nvarid, masse_glo)
394 ierr = nf_get_var_real(nid, nvarid, masse_glo)
396 IF (ierr .NE. nf_noerr)
THEN
397 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <masse>"
400 masse(ijb_u:ije_u,:)=masse_glo(ijb_u:ije_u,:)
401 DEALLOCATE(masse_glo)
404 ierr = nf_inq_varid(nid,
"ps", nvarid)
405 IF (ierr .NE. nf_noerr)
THEN
406 write(
lunout,*)
"dynetat0_loc: Le champ <ps> est absent"
410 ierr = nf_get_var_double(nid, nvarid, ps_glo)
412 ierr = nf_get_var_real(nid, nvarid, ps_glo)
414 IF (ierr .NE. nf_noerr)
THEN
415 write(
lunout,*)
"dynetat0_loc: Lecture echouee pour <ps>"
419 ps(ijb_u:ije_u)=ps_glo(ijb_u:ije_u)
427 1
FORMAT(//10
x,
'la valeur de im =',i4,2
x,
428 'lue sur le fichier de dem *arrage est differente de la valeur parametree iim =',i4//)
429 2
FORMAT(//10
x,
'la valeur de jm =',i4,2
x,
430 'lue sur le fichier de dem *arrage est differente de la valeur parametree jjm =',i4//)
431 3
FORMAT(//10
x,
'la valeur de lmax =',i4,2
x,
432 'lue sur le fichier dema *rrage est differente de la valeur parametree llm =',i4//)
433 4
FORMAT(//10
x,
'la valeur de dtrv =',i4,2
x,
434 'lue sur le fichier dema *rrage est differente de la valeur dtinteg =',i4//)