141 |
c Initialisation du fichier contenant les moyennes zonales. |
c Initialisation du fichier contenant les moyennes zonales. |
142 |
c --------------------------------------------------------- |
c --------------------------------------------------------- |
143 |
|
|
|
character*10 infile |
|
|
|
|
144 |
integer fileid |
integer fileid |
145 |
integer thoriid, zvertiid |
integer thoriid, zvertiid |
146 |
save fileid |
save fileid |
149 |
|
|
150 |
C Variables locales |
C Variables locales |
151 |
C |
C |
|
integer tau0 |
|
152 |
real zjulian |
real zjulian |
153 |
character*3 str |
character*3 str |
154 |
character*10 ctrac |
character*10 ctrac |
184 |
|
|
185 |
if (i_sortie.eq.1) then |
if (i_sortie.eq.1) then |
186 |
file='dynzon' |
file='dynzon' |
187 |
call inigrads(ifile |
call inigrads(ifile ,(/0./),180./pi,0.,0.,rlatv,-90.,90., |
188 |
s ,(/0./),180./pi,0.,0.,rlatv,-90.,90.,180./pi |
$ 180./pi ,presnivs,1. ,dt_cum,file,'dyn_zon ') |
|
s ,presnivs,1. |
|
|
s ,dt_cum,file,'dyn_zon ') |
|
189 |
endif |
endif |
190 |
|
|
191 |
nom(itemp)='T' |
nom(itemp)='T' |
208 |
c Initialisation du fichier contenant les moyennes zonales. |
c Initialisation du fichier contenant les moyennes zonales. |
209 |
c --------------------------------------------------------- |
c --------------------------------------------------------- |
210 |
|
|
|
infile='dynzon' |
|
|
|
|
211 |
zan = annee_ref |
zan = annee_ref |
212 |
dayref = day_ref |
dayref = day_ref |
213 |
CALL ymds2ju(zan, 1, dayref, 0.0, zjulian) |
CALL ymds2ju(zan, 1, dayref, 0.0, zjulian) |
|
tau0 = itau_dyn |
|
214 |
|
|
215 |
rlong=0. |
rlong=0. |
216 |
rlatg=rlatv*180./pi |
rlatg=rlatv*180./pi |
217 |
|
|
218 |
call histbeg_totreg(infile, 1, rlong(:1), jjm, rlatg, |
call histbeg_totreg('dynzon', rlong(:1), rlatg, |
219 |
. 1, 1, 1, jjm, |
. 1, 1, 1, jjm, |
220 |
. tau0, zjulian, dt_cum, thoriid, fileid) |
. itau_dyn, zjulian, dt_cum, thoriid, fileid) |
221 |
|
|
222 |
C |
C |
223 |
C Appel a histvert pour la grille verticale |
C Appel a histvert pour la grille verticale |
249 |
. ,znom(itr,iQ),znoml(itr,iQ),zunites(itr,iQ) |
. ,znom(itr,iQ),znoml(itr,iQ),zunites(itr,iQ) |
250 |
call histdef(fileid,znom(itr,iQ),znoml(itr,iQ), |
call histdef(fileid,znom(itr,iQ),znoml(itr,iQ), |
251 |
. zunites(itr,iQ),1,jjm,thoriid,llm,1,llm,zvertiid, |
. zunites(itr,iQ),1,jjm,thoriid,llm,1,llm,zvertiid, |
252 |
. 32,'ave(X)',dt_cum,dt_cum) |
. 'ave(X)',dt_cum,dt_cum) |
253 |
enddo |
enddo |
254 |
c Declarations pour les fonctions de courant |
c Declarations pour les fonctions de courant |
255 |
c print*,'2HISTDEF' |
c print*,'2HISTDEF' |
256 |
call histdef(fileid,'psi'//nom(iQ) |
call histdef(fileid,'psi'//nom(iQ) |
257 |
. ,'stream fn. '//znoml(itot,iQ), |
. ,'stream fn. '//znoml(itot,iQ), |
258 |
. zunites(itot,iQ),1,jjm,thoriid,llm,1,llm,zvertiid, |
. zunites(itot,iQ),1,jjm,thoriid,llm,1,llm,zvertiid, |
259 |
. 32,'ave(X)',dt_cum,dt_cum) |
. 'ave(X)',dt_cum,dt_cum) |
260 |
enddo |
enddo |
261 |
|
|
262 |
|
|
264 |
c print*,'3HISTDEF' |
c print*,'3HISTDEF' |
265 |
call histdef(fileid, 'masse', 'masse', |
call histdef(fileid, 'masse', 'masse', |
266 |
. 'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, |
. 'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, |
267 |
. 32, 'ave(X)', dt_cum, dt_cum) |
. 'ave(X)', dt_cum, dt_cum) |
268 |
call histdef(fileid, 'v', 'v', |
call histdef(fileid, 'v', 'v', |
269 |
. 'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid, |
. 'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid, |
270 |
. 32, 'ave(X)', dt_cum, dt_cum) |
. 'ave(X)', dt_cum, dt_cum) |
271 |
c Declarations pour les fonctions de courant |
c Declarations pour les fonctions de courant |
272 |
c print*,'4HISTDEF' |
c print*,'4HISTDEF' |
273 |
call histdef(fileid,'psi','stream fn. MMC ','mega t/s', |
call histdef(fileid,'psi','stream fn. MMC ','mega t/s', |
274 |
. 1,jjm,thoriid,llm,1,llm,zvertiid, |
. 1,jjm,thoriid,llm,1,llm,zvertiid, |
275 |
. 32,'ave(X)',dt_cum,dt_cum) |
. 'ave(X)',dt_cum,dt_cum) |
276 |
|
|
277 |
|
|
278 |
c Declaration des champs 1D de transport en latitude |
c Declaration des champs 1D de transport en latitude |
281 |
do itr=2,ntr |
do itr=2,ntr |
282 |
call histdef(fileid,'a'//znom(itr,iQ),znoml(itr,iQ), |
call histdef(fileid,'a'//znom(itr,iQ),znoml(itr,iQ), |
283 |
. zunites(itr,iQ),1,jjm,thoriid,1,1,1,-99, |
. zunites(itr,iQ),1,jjm,thoriid,1,1,1,-99, |
284 |
. 32,'ave(X)',dt_cum,dt_cum) |
. 'ave(X)',dt_cum,dt_cum) |
285 |
enddo |
enddo |
286 |
enddo |
enddo |
287 |
|
|
526 |
if (i_sortie.eq.1) then |
if (i_sortie.eq.1) then |
527 |
do iQ=1,nQ |
do iQ=1,nQ |
528 |
do itr=1,ntr |
do itr=1,ntr |
529 |
call histwrite(fileid,znom(itr,iQ),itau,zvQ(:,:,itr,iQ) |
call histwrite(fileid,znom(itr,iQ),itau,zvQ(:,:,itr,iQ)) |
|
s ,jjm*llm,ndex3d) |
|
530 |
enddo |
enddo |
531 |
call histwrite(fileid,'psi'//nom(iQ),itau,psiQ(:,1:llm,iQ) |
call histwrite(fileid,'psi'//nom(iQ),itau,psiQ(:,1:llm,iQ)) |
|
s ,jjm*llm,ndex3d) |
|
532 |
enddo |
enddo |
533 |
|
|
534 |
call histwrite(fileid,'masse',itau,zmasse |
call histwrite(fileid,'masse',itau,zmasse) |
535 |
s ,jjm*llm,ndex3d) |
call histwrite(fileid,'v',itau,zv) |
|
call histwrite(fileid,'v',itau,zv |
|
|
s ,jjm*llm,ndex3d) |
|
536 |
psi=psi*1.e-9 |
psi=psi*1.e-9 |
537 |
call histwrite(fileid,'psi',itau,psi(:,1:llm),jjm*llm,ndex3d) |
call histwrite(fileid,'psi',itau,psi(:,1:llm)) |
538 |
|
|
539 |
endif |
endif |
540 |
|
|
554 |
zavQ(:,itr,iQ)=zavQ(:,itr,iQ)+zvQ(:,l,itr,iQ)*zmasse(:,l) |
zavQ(:,itr,iQ)=zavQ(:,itr,iQ)+zvQ(:,l,itr,iQ)*zmasse(:,l) |
555 |
enddo |
enddo |
556 |
zavQ(:,itr,iQ)=zavQ(:,itr,iQ)/zamasse(:) |
zavQ(:,itr,iQ)=zavQ(:,itr,iQ)/zamasse(:) |
557 |
call histwrite(fileid,'a'//znom(itr,iQ),itau,zavQ(:,itr,iQ) |
call histwrite(fileid,'a'//znom(itr,iQ),itau,zavQ(:,itr,iQ)) |
|
s ,jjm*llm,ndex3d) |
|
558 |
enddo |
enddo |
559 |
enddo |
enddo |
560 |
|
|