7 . zrec,zklono,zklevo,
airefi,phisfi,
8 . t,mfu,mfd,en_u,de_u,en_d,de_d,coefh,
10 . frac_impa,frac_nucl,pyu1,pyv1,ftsol,psrf)
27 #include "dimensions.h"
34 #include "description.h"
36 #include "indicesol.h"
39 integer klono,klevo,imo,jmo
43 REAL phisfi2(imo,jmo+1),airefi2(imo,jmo+1)
45 REAL mfu(klono,klevo), mfd(klono,klevo)
46 REAL en_u(klono,klevo), de_u(klono,klevo)
47 REAL en_d(klono,klevo), de_d(klono,klevo)
48 REAL coefh(klono,klevo)
49 REAL fm_therm(klono,klevo),en_therm(klono,klevo)
51 REAL mfu2(imo,jmo+1,klevo), mfd2(imo,jmo+1,klevo)
52 REAL en_u2(imo,jmo+1,klevo), de_u2(imo,jmo+1,klevo)
53 REAL en_d2(imo,jmo+1,klevo), de_d2(imo,jmo+1,klevo)
54 REAL coefh2(imo,jmo+1,klevo)
55 REAL fm_therm2(imo,jmo+1,klevo)
56 REAL en_therm2(imo,jmo+1,klevo)
60 integer xid,yid,zid,tid
61 real zrec,zklono,zklevo,zim,zjm
62 integer ncrec,ncklono,ncklevo,ncim,ncjm
72 REAL frac_impa(klono,klevo), frac_nucl(klono,klevo)
73 REAL frac_impa2(imo,jmo+1,klevo),
74 . frac_nucl2(imo,jmo+1,klevo)
75 REAL pyu1(klono), pyv1(klono)
76 REAL pyu12(imo,jmo+1), pyv12(imo,jmo+1)
77 REAL ftsol(klono,nbsrf)
78 REAL psrf(klono,nbsrf)
79 REAL ftsol1(klono),ftsol2(klono),ftsol3(klono),ftsol4(klono)
80 REAL psrf1(klono),psrf2(klono),psrf3(klono),psrf4(klono)
81 REAL ftsol12(imo,jmo+1),ftsol22(imo,jmo+1),
84 REAL psrf12(imo,jmo+1),psrf22(imo,jmo+1),psrf32(imo,jmo+1),
87 REAL t2(imo,jmo+1,klevo)
91 integer varidmfu, varidmfd, varidps, varidenu, variddeu
92 integer varidend,varidded,varidch,varidfi,varidfn
93 integer varidfmth,varidenth
94 integer varidyu1,varidyv1,varidpl,varidai,varididvt
95 integer varidfts1,varidfts2,varidfts3,varidfts4
96 integer varidpsr1,varidpsr2,varidpsr3,varidpsr4
97 save varidmfu, varidmfd, varidps, varidenu, variddeu
98 save varidend,varidded,varidch,varidfi,varidfn
99 save varidfmth,varidenth
100 save varidyu1,varidyv1,varidpl,varidai,varididvt
101 save varidfts1,varidfts2,varidfts3,varidfts4
102 save varidpsr1,varidpsr2,varidpsr3,varidpsr4
106 integer start(4),count(4),status
118 if (
irec .eq. 0)
then
120 rcode=nf90_open(
'phystoke.nc',nf90_nowrite,ncidp)
122 rcode = nf90_inq_varid(ncidp,
'phis', varidps)
123 print*,
'ncidp,varidps',ncidp,varidps
125 rcode = nf90_inq_varid(ncidp,
'sig_s', varidpl)
126 print*,
'ncidp,varidpl',ncidp,varidpl
128 rcode = nf90_inq_varid(ncidp,
'aire', varidai)
129 print*,
'ncidp,varidai',ncidp,varidai
132 rcode = nf90_inq_varid(ncidp,
't', varidt)
133 print*,
'ncidp,varidt',ncidp,varidt
135 rcode = nf90_inq_varid(ncidp,
'mfu', varidmfu)
136 print*,
'ncidp,varidmfu',ncidp,varidmfu
138 rcode = nf90_inq_varid(ncidp,
'mfd', varidmfd)
139 print*,
'ncidp,varidmfd',ncidp,varidmfd
141 rcode = nf90_inq_varid(ncidp,
'en_u', varidenu)
142 print*,
'ncidp,varidenu',ncidp,varidenu
144 rcode = nf90_inq_varid(ncidp,
'de_u', variddeu)
145 print*,
'ncidp,variddeu',ncidp,variddeu
147 rcode = nf90_inq_varid(ncidp,
'en_d', varidend)
148 print*,
'ncidp,varidend',ncidp,varidend
150 rcode = nf90_inq_varid(ncidp,
'de_d', varidded)
151 print*,
'ncidp,varidded',ncidp,varidded
153 rcode = nf90_inq_varid(ncidp,
'coefh', varidch)
154 print*,
'ncidp,varidch',ncidp,varidch
157 rcode = nf90_inq_varid(ncidp,
'fm_th', varidfmth)
158 print*,
'ncidp,varidfmth',ncidp,varidfmth
160 rcode = nf90_inq_varid(ncidp,
'en_th', varidenth)
161 print*,
'ncidp,varidenth',ncidp,varidenth
163 rcode = nf90_inq_varid(ncidp,
'frac_impa', varidfi)
164 print*,
'ncidp,varidfi',ncidp,varidfi
166 rcode = nf90_inq_varid(ncidp,
'frac_nucl', varidfn)
167 print*,
'ncidp,varidfn',ncidp,varidfn
169 rcode = nf90_inq_varid(ncidp,
'pyu1', varidyu1)
170 print*,
'ncidp,varidyu1',ncidp,varidyu1
172 rcode = nf90_inq_varid(ncidp,
'pyv1', varidyv1)
173 print*,
'ncidp,varidyv1',ncidp,varidyv1
175 rcode = nf90_inq_varid(ncidp,
'ftsol1', varidfts1)
176 print*,
'ncidp,varidfts1',ncidp,varidfts1
178 rcode = nf90_inq_varid(ncidp,
'ftsol2', varidfts2)
179 print*,
'ncidp,varidfts2',ncidp,varidfts2
181 rcode = nf90_inq_varid(ncidp,
'ftsol3', varidfts3)
182 print*,
'ncidp,varidfts3',ncidp,varidfts3
184 rcode = nf90_inq_varid(ncidp,
'ftsol4', varidfts4)
185 print*,
'ncidp,varidfts4',ncidp,varidfts4
187 rcode = nf90_inq_varid(ncidp,
'psrf1', varidpsr1)
188 print*,
'ncidp,varidpsr1',ncidp,varidpsr1
190 rcode = nf90_inq_varid(ncidp,
'psrf2', varidpsr2)
191 print*,
'ncidp,varidpsr2',ncidp,varidpsr2
193 rcode = nf90_inq_varid(ncidp,
'psrf3', varidpsr3)
194 print*,
'ncidp,varidpsr3',ncidp,varidpsr3
196 rcode = nf90_inq_varid(ncidp,
'psrf4', varidpsr4)
197 print*,
'ncidp,varidpsr4',ncidp,varidpsr4
201 status = nf_inq_dimid(ncidp,
'y',yid)
202 status = nf_inq_dimid(ncidp,
'x',xid)
203 status = nf_inq_dimid(ncidp,
'sig_s',zid)
204 status = nf_inq_dimid(ncidp,
'time_counter',tid)
208 status = nf_inq_dim(ncidp,yid,namedim,ncjm)
209 status = nf_inq_dim(ncidp,xid,namedim,ncim)
210 status = nf_inq_dim(ncidp,zid,namedim,ncklevo)
211 status = nf_inq_dim(ncidp,tid,namedim,ncrec)
220 write(*,*)
'read_pstoke : zrec = ', zrec
221 write(*,*)
'read_pstoke : zklevo = ', zklevo
222 write(*,*)
'read_pstoke : zim = ', zim
223 write(*,*)
'read_pstoke : zjm = ', zjm
224 write(*,*)
'read_pstoke : zklono = ', zklono
228 status=nf_get_vara_double(ncidp,varidpl,1,zklevo,pl)
230 status=nf_get_vara_real(ncidp,varidpl,1,zklevo,pl)
247 status=nf_get_vara_double(ncidp,varidps,start,count,phisfi2)
249 status=nf_get_vara_real(ncidp,varidps,start,count,phisfi2)
251 call gr_ecrit_fi(1,klono,imo,jmo+1,phisfi2,phisfi)
255 status=nf_get_vara_double(ncidp,varidai,start,count,airefi2)
257 status=nf_get_vara_real(ncidp,varidai,start,count,airefi2)
259 call gr_ecrit_fi(1,klono,imo,jmo+1,airefi2,
airefi)
268 print*,
'WARNING!!! Il n y a pas de test de coherence'
269 print*,
'sur le nombre de niveaux verticaux dans le fichier nc'
285 status=nf_get_vara_double(ncidp,varidfi,start,count,frac_impa2)
287 status=nf_get_vara_real(ncidp,varidfi,start,count,frac_impa2)
289 call gr_ecrit_fi(klevo,klono,imo,jmo+1,frac_impa2,frac_impa)
293 status=nf_get_vara_double(ncidp,varidfn,start,count,frac_nucl2)
295 status=nf_get_vara_real(ncidp,varidfn,start,count,frac_nucl2)
297 call gr_ecrit_fi(klevo,klono,imo,jmo+1,frac_nucl2,frac_nucl)
302 status=nf_get_vara_double(ncidp,varidt,start,count,t2)
304 status=nf_get_vara_real(ncidp,varidt,start,count,t2)
306 call gr_ecrit_fi(klevo,klono,imo,jmo+1,t2,t)
311 status=nf_get_vara_double(ncidp,varidmfu,start,count,mfu2)
313 status=nf_get_vara_real(ncidp,varidmfu,start,count,mfu2)
315 call gr_ecrit_fi(klevo,klono,imo,jmo+1,mfu2,mfu)
319 status=nf_get_vara_double(ncidp,varidmfd,start,count,mfd2)
321 status=nf_get_vara_real(ncidp,varidmfd,start,count,mfd2)
323 call gr_ecrit_fi(klevo,klono,imo,jmo+1,mfd2,mfd)
327 status=nf_get_vara_double(ncidp,varidenu,start,count,en_u2)
329 status=nf_get_vara_real(ncidp,varidenu,start,count,en_u2)
331 call gr_ecrit_fi(klevo,klono,imo,jmo+1,en_u2,en_u)
335 status=nf_get_vara_double(ncidp,variddeu,start,count,de_u2)
337 status=nf_get_vara_real(ncidp,variddeu,start,count,de_u2)
339 call gr_ecrit_fi(klevo,klono,imo,jmo+1,de_u2,de_u)
343 status=nf_get_vara_double(ncidp,varidend,start,count,en_d2)
345 status=nf_get_vara_real(ncidp,varidend,start,count,en_d2)
347 call gr_ecrit_fi(klevo,klono,imo,jmo+1,en_d2,en_d)
351 status=nf_get_vara_double(ncidp,varidded,start,count,de_d2)
353 status=nf_get_vara_real(ncidp,varidded,start,count,de_d2)
355 call gr_ecrit_fi(klevo,klono,imo,jmo+1,de_d2,de_d)
360 status=nf_get_vara_double(ncidp,varidch,start,count,coefh2)
362 status=nf_get_vara_real(ncidp,varidch,start,count,coefh2)
364 call gr_ecrit_fi(klevo,klono,imo,jmo+1,coefh2,coefh)
369 status=nf_get_vara_double(ncidp,varidfmth,start,count,fm_therm2)
371 status=nf_get_vara_real(ncidp,varidfmth,start,count,fm_therm2)
373 call gr_ecrit_fi(klevo,klono,imo,jmo+1,fm_therm2,fm_therm)
376 status=nf_get_vara_double(ncidp,varidenth,start,count,en_therm2)
378 status=nf_get_vara_real(ncidp,varidenth,start,count,en_therm2)
380 call gr_ecrit_fi(klevo,klono,imo,jmo+1,en_therm2,en_therm)
389 status=nf_get_vara_double(ncidp,varidyu1,start,count,pyu12)
391 status=nf_get_vara_real(ncidp,varidyu1,start,count,pyu12)
393 call gr_ecrit_fi(1,klono,imo,jmo+1,pyu12,pyu1)
397 status=nf_get_vara_double(ncidp,varidyv1,start,count,pyv12)
399 status=nf_get_vara_real(ncidp,varidyv1,start,count,pyv12)
401 call gr_ecrit_fi(1,klono,imo,jmo+1,pyv12,pyv1)
406 status=nf_get_vara_double(ncidp,varidfts1,start,count,ftsol12)
408 status=nf_get_vara_real(ncidp,varidfts1,start,count,ftsol12)
410 call gr_ecrit_fi(1,klono,imo,jmo+1,ftsol12,ftsol1)
414 status=nf_get_vara_double(ncidp,varidfts2,start,count,ftsol22)
416 status=nf_get_vara_real(ncidp,varidfts2,start,count,ftsol22)
418 call gr_ecrit_fi(1,klono,imo,jmo+1,ftsol22,ftsol2)
422 status=nf_get_vara_double(ncidp,varidfts3,start,count,ftsol32)
424 status=nf_get_vara_real(ncidp,varidfts3,start,count,ftsol32)
426 call gr_ecrit_fi(1,klono,imo,jmo+1,ftsol32,ftsol3)
430 status=nf_get_vara_double(ncidp,varidfts4,start,count,ftsol42)
432 status=nf_get_vara_real(ncidp,varidfts4,start,count,ftsol42)
434 call gr_ecrit_fi(1,klono,imo,jmo+1,ftsol42,ftsol4)
439 status=nf_get_vara_double(ncidp,varidpsr1,start,count,psrf12)
441 status=nf_get_vara_real(ncidp,varidpsr1,start,count,psrf12)
443 call gr_ecrit_fi(1,klono,imo,jmo+1,psrf12,psrf1)
447 status=nf_get_vara_double(ncidp,varidpsr2,start,count,psrf22)
449 status=nf_get_vara_real(ncidp,varidpsr2,start,count,psrf22)
451 call gr_ecrit_fi(1,klono,imo,jmo+1,psrf22,psrf2)
455 status=nf_get_vara_double(ncidp,varidpsr3,start,count,psrf32)
457 status=nf_get_vara_real(ncidp,varidpsr3,start,count,psrf32)
459 call gr_ecrit_fi(1,klono,imo,jmo+1,psrf32,psrf3)
463 status=nf_get_vara_double(ncidp,varidpsr4,start,count,psrf42)
465 status=nf_get_vara_real(ncidp,varidpsr4,start,count,psrf42)
467 call gr_ecrit_fi(1,klono,imo,jmo+1,psrf42,psrf4)
476 ftsol(
i,1) = ftsol1(
i)
477 ftsol(
i,2) = ftsol2(
i)
478 ftsol(
i,3) = ftsol3(
i)
479 ftsol(
i,4) = ftsol4(
i)