source: trunk/LMDZ.COMMON/libf/dyn3d_common/writehist.F @ 2757

Last change on this file since 2757 was 1422, checked in by milmd, 10 years ago

In GENERIC, MARS and COMMON models replace some include files by modules (usefull for decoupling physics with dynamics).

File size: 3.0 KB
Line 
1!
2! $Id: writehist.F 1403 2010-07-01 09:02:53Z fairhead $
3!
4      subroutine writehist(time,vcov,ucov,teta,phi,q,masse,ps,phis)
5
6#ifdef CPP_IOIPSL
7      USE ioipsl
8#endif
9      USE infotrac, ONLY : nqtot, ttext
10      use com_io_dyn_mod, only : histid,histvid,histuid
11      USE temps_mod, ONLY: itau_dyn
12      implicit none
13
14C
15C   Ecriture du fichier histoire au format IOIPSL
16C
17C   Appels succesifs des routines: histwrite
18C
19C   Entree:
20C      time: temps de l'ecriture
21C      vcov: vents v covariants
22C      ucov: vents u covariants
23C      teta: temperature potentielle
24C      phi : geopotentiel instantane
25C      q   : traceurs
26C      masse: masse
27C      ps   :pression au sol
28C      phis : geopotentiel au sol
29C     
30C
31C   L. Fairhead, LMD, 03/99
32C
33C =====================================================================
34C
35C   Declarations
36#include "dimensions.h"
37#include "paramet.h"
38#include "comgeom.h"
39#include "iniprint.h"
40
41C
42C   Arguments
43C
44
45      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
46      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm)                   
47      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
48      REAL phis(ip1jmp1)                 
49      REAL q(ip1jmp1,llm,nqtot)
50      integer time
51
52
53#ifdef CPP_IOIPSL
54! This routine needs IOIPSL to work
55C   Variables locales
56C
57      integer iq, ii, ll
58      integer ndexu(ip1jmp1*llm),ndexv(ip1jm*llm),ndex2d(ip1jmp1)
59      logical ok_sync
60      integer itau_w
61      REAL vnat(ip1jm,llm),unat(ip1jmp1,llm)
62
63C
64C  Initialisations
65C
66      ndexu = 0
67      ndexv = 0
68      ndex2d = 0
69      ok_sync =.TRUE.
70      itau_w = itau_dyn + time
71!  Passage aux composantes naturelles du vent
72      call covnat(llm, ucov, vcov, unat, vnat)
73C
74C  Appels a histwrite pour l'ecriture des variables a sauvegarder
75C
76C  Vents U
77C
78      call histwrite(histuid, 'u', itau_w, unat,
79     .               iip1*jjp1*llm, ndexu)
80C
81C  Vents V
82C
83      call histwrite(histvid, 'v', itau_w, vnat,
84     .               iip1*jjm*llm, ndexv)
85
86C
87C  Temperature potentielle
88C
89      call histwrite(histid, 'teta', itau_w, teta,
90     .                iip1*jjp1*llm, ndexu)
91C
92C  Geopotentiel
93C
94      call histwrite(histid, 'phi', itau_w, phi,
95     .                iip1*jjp1*llm, ndexu)
96C
97C  Traceurs
98C
99!        DO iq=1,nqtot
100!          call histwrite(histid, ttext(iq), itau_w, q(:,:,iq),
101!     .                   iip1*jjp1*llm, ndexu)
102!        enddo
103!C
104C  Masse
105C
106      call histwrite(histid,'masse',itau_w, masse,iip1*jjp1*llm,ndexu)
107C
108C  Pression au sol
109C
110      call histwrite(histid, 'ps', itau_w, ps, iip1*jjp1, ndex2d)
111C
112C  Geopotentiel au sol
113C
114!      call histwrite(histid, 'phis', itau_w, phis, iip1*jjp1, ndex2d)
115C
116C  Fin
117C
118      if (ok_sync) then
119        call histsync(histid)
120        call histsync(histvid)
121        call histsync(histuid)
122      endif
123#else
124! tell the user this routine should be run with ioipsl
125      write(lunout,*)"writehist: Warning this routine should not be",
126     &               " used without ioipsl"
127#endif
128! of #ifdef CPP_IOIPSL
129      return
130      end
Note: See TracBrowser for help on using the repository browser.