/[lmdze]/trunk/dyn3d/bilan_dyn.f
ViewVC logotype

Diff of /trunk/dyn3d/bilan_dyn.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3 by guez, Wed Feb 27 13:16:39 2008 UTC revision 20 by guez, Wed Oct 15 16:19:57 2008 UTC
# Line 178  c       initialisation des fichiers Line 178  c       initialisation des fichiers
178  c   ncum est la frequence de stokage en pas de temps  c   ncum est la frequence de stokage en pas de temps
179          ncum=dt_cum/dt_app          ncum=dt_cum/dt_app
180          if (abs(ncum*dt_app-dt_cum).gt.1.e-5*dt_app) then          if (abs(ncum*dt_app-dt_cum).gt.1.e-5*dt_app) then
181             WRITE(lunout,*)             print *,
182       .            'Pb : le pas de cumule doit etre multiple du pas'       .            'Pb : le pas de cumule doit etre multiple du pas'
183             WRITE(lunout,*)'dt_app=',dt_app             print *,'dt_app=',dt_app
184             WRITE(lunout,*)'dt_cum=',dt_cum             print *,'dt_cum=',dt_cum
185             stop             stop
186          endif          endif
187    
188          if (i_sortie.eq.1) then          if (i_sortie.eq.1) then
189           file='dynzon'           file='dynzon'
190           call inigrads(ifile           call inigrads(ifile ,(/0./),180./pi,0.,0.,rlatv,-90.,90.,
191       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 ')  
192          endif          endif
193    
194          nom(itemp)='T'          nom(itemp)='T'
# Line 223  c   ------------------------------------ Line 221  c   ------------------------------------
221        rlong=0.        rlong=0.
222        rlatg=rlatv*180./pi        rlatg=rlatv*180./pi
223                
224        call histbeg_totreg(infile, 1, rlong(:1), jjm, rlatg,        call histbeg_totreg(infile, rlong(:1), rlatg,
225       .             1, 1, 1, jjm,       .             1, 1, 1, jjm,
226       .             tau0, zjulian, dt_cum, thoriid, fileid)       .             tau0, zjulian, dt_cum, thoriid, fileid)
227    
# Line 253  c      print*,'1HISTDEF' Line 251  c      print*,'1HISTDEF'
251        do iQ=1,nQ        do iQ=1,nQ
252           do itr=1,ntr           do itr=1,ntr
253        IF (prt_level > 5)        IF (prt_level > 5)
254       . WRITE(lunout,*)'var ',itr,iQ       . print *,'var ',itr,iQ
255       .      ,znom(itr,iQ),znoml(itr,iQ),zunites(itr,iQ)       .      ,znom(itr,iQ),znoml(itr,iQ),zunites(itr,iQ)
256              call histdef(fileid,znom(itr,iQ),znoml(itr,iQ),              call histdef(fileid,znom(itr,iQ),znoml(itr,iQ),
257       .        zunites(itr,iQ),1,jjm,thoriid,llm,1,llm,zvertiid,       .        zunites(itr,iQ),1,jjm,thoriid,llm,1,llm,zvertiid,
258       .        32,'ave(X)',dt_cum,dt_cum)       .        'ave(X)',dt_cum,dt_cum)
259           enddo           enddo
260  c   Declarations pour les fonctions de courant  c   Declarations pour les fonctions de courant
261  c      print*,'2HISTDEF'  c      print*,'2HISTDEF'
262            call histdef(fileid,'psi'//nom(iQ)            call histdef(fileid,'psi'//nom(iQ)
263       .      ,'stream fn. '//znoml(itot,iQ),       .      ,'stream fn. '//znoml(itot,iQ),
264       .      zunites(itot,iQ),1,jjm,thoriid,llm,1,llm,zvertiid,       .      zunites(itot,iQ),1,jjm,thoriid,llm,1,llm,zvertiid,
265       .      32,'ave(X)',dt_cum,dt_cum)       .      'ave(X)',dt_cum,dt_cum)
266        enddo        enddo
267    
268    
# Line 272  c   Declarations pour les champs de tran Line 270  c   Declarations pour les champs de tran
270  c      print*,'3HISTDEF'  c      print*,'3HISTDEF'
271        call histdef(fileid, 'masse', 'masse',        call histdef(fileid, 'masse', 'masse',
272       .             'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid,       .             'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid,
273       .             32, 'ave(X)', dt_cum, dt_cum)       .             'ave(X)', dt_cum, dt_cum)
274        call histdef(fileid, 'v', 'v',        call histdef(fileid, 'v', 'v',
275       .             'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid,       .             'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid,
276       .             32, 'ave(X)', dt_cum, dt_cum)       .             'ave(X)', dt_cum, dt_cum)
277  c   Declarations pour les fonctions de courant  c   Declarations pour les fonctions de courant
278  c      print*,'4HISTDEF'  c      print*,'4HISTDEF'
279            call histdef(fileid,'psi','stream fn. MMC ','mega t/s',            call histdef(fileid,'psi','stream fn. MMC ','mega t/s',
280       .      1,jjm,thoriid,llm,1,llm,zvertiid,       .      1,jjm,thoriid,llm,1,llm,zvertiid,
281       .      32,'ave(X)',dt_cum,dt_cum)       .      'ave(X)',dt_cum,dt_cum)
282    
283    
284  c   Declaration des champs 1D de transport en latitude  c   Declaration des champs 1D de transport en latitude
# Line 289  c      print*,'5HISTDEF' Line 287  c      print*,'5HISTDEF'
287           do itr=2,ntr           do itr=2,ntr
288              call histdef(fileid,'a'//znom(itr,iQ),znoml(itr,iQ),              call histdef(fileid,'a'//znom(itr,iQ),znoml(itr,iQ),
289       .        zunites(itr,iQ),1,jjm,thoriid,1,1,1,-99,       .        zunites(itr,iQ),1,jjm,thoriid,1,1,1,-99,
290       .        32,'ave(X)',dt_cum,dt_cum)       .        'ave(X)',dt_cum,dt_cum)
291           enddo           enddo
292        enddo        enddo
293    
# Line 340  c Line 338  c
338        endif        endif
339    
340        IF (prt_level > 5)        IF (prt_level > 5)
341       . WRITE(lunout,*)'dans bilan_dyn ',icum,'->',icum+1       . print *,'dans bilan_dyn ',icum,'->',icum+1
342        icum=icum+1        icum=icum+1
343    
344  c   accumulation des flux de masse horizontaux  c   accumulation des flux de masse horizontaux
# Line 406  c   calcul de la vitesse verticale Line 404  c   calcul de la vitesse verticale
404           enddo           enddo
405        enddo        enddo
406        IF (prt_level > 5)        IF (prt_level > 5)
407       . WRITE(lunout,*)'Apres les calculs fait a chaque pas'       . print *,'Apres les calculs fait a chaque pas'
408  c=====================================================================  c=====================================================================
409  c   PAS DE TEMPS D'ECRITURE  c   PAS DE TEMPS D'ECRITURE
410  c=====================================================================  c=====================================================================
# Line 414  c======================================= Line 412  c=======================================
412  c=====================================================================  c=====================================================================
413    
414        IF (prt_level > 5)        IF (prt_level > 5)
415       . WRITE(lunout,*)'Pas d ecriture'       . print *,'Pas d ecriture'
416    
417  c   Normalisation  c   Normalisation
418        do iQ=1,nQ        do iQ=1,nQ
# Line 534  c   sorties proprement dites Line 532  c   sorties proprement dites
532        if (i_sortie.eq.1) then        if (i_sortie.eq.1) then
533        do iQ=1,nQ        do iQ=1,nQ
534           do itr=1,ntr           do itr=1,ntr
535              call histwrite(fileid,znom(itr,iQ),itau,zvQ(:,:,itr,iQ)              call histwrite(fileid,znom(itr,iQ),itau,zvQ(:,:,itr,iQ))
      s      ,jjm*llm,ndex3d)  
536           enddo           enddo
537           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)  
538        enddo        enddo
539    
540        call histwrite(fileid,'masse',itau,zmasse        call histwrite(fileid,'masse',itau,zmasse)
541       s   ,jjm*llm,ndex3d)        call histwrite(fileid,'v',itau,zv)
       call histwrite(fileid,'v',itau,zv  
      s   ,jjm*llm,ndex3d)  
542        psi=psi*1.e-9        psi=psi*1.e-9
543        call histwrite(fileid,'psi',itau,psi(:,1:llm),jjm*llm,ndex3d)        call histwrite(fileid,'psi',itau,psi(:,1:llm))
544    
545        endif        endif
546    
# Line 566  c   ----------------- Line 560  c   -----------------
560                 zavQ(:,itr,iQ)=zavQ(:,itr,iQ)+zvQ(:,l,itr,iQ)*zmasse(:,l)                 zavQ(:,itr,iQ)=zavQ(:,itr,iQ)+zvQ(:,l,itr,iQ)*zmasse(:,l)
561              enddo              enddo
562              zavQ(:,itr,iQ)=zavQ(:,itr,iQ)/zamasse(:)              zavQ(:,itr,iQ)=zavQ(:,itr,iQ)/zamasse(:)
563              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)  
564           enddo           enddo
565        enddo        enddo
566    

Legend:
Removed from v.3  
changed lines
  Added in v.20

  ViewVC Help
Powered by ViewVC 1.1.21