source: trunk/LMDZ.COMMON/libf/dyn3dpar/writehist_p.F @ 3452

Last change on this file since 3452 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.3 KB
Line 
1!
2! $Id: writehist_p.F 1279 2009-12-10 09:02:56Z fairhead $
3!
4      subroutine writehist_p( histid, histvid, time, vcov,
5     ,                          ucov,teta,phi,q,masse,ps,phis)
6
7#ifdef CPP_IOIPSL
8! This routine needs IOIPSL
9      USE ioipsl
10#endif
11      USE parallel_lmdz
12      USE misc_mod
13      USE infotrac
14      USE temps_mod, ONLY: itau_dyn
15      implicit none
16
17C
18C   Ecriture du fichier histoire au format IOIPSL
19C
20C   Appels succesifs des routines: histwrite
21C
22C   Entree:
23C      histid: ID du fichier histoire
24C      histvid:ID du fichier histoire pour les vents V (appele a disparaitre)
25C      time: temps de l'ecriture
26C      vcov: vents v covariants
27C      ucov: vents u covariants
28C      teta: temperature potentielle
29C      phi : geopotentiel instantane
30C      q   : traceurs
31C      masse: masse
32C      ps   :pression au sol
33C      phis : geopotentiel au sol
34C     
35C
36C   Sortie:
37C      fileid: ID du fichier netcdf cree
38C
39C   L. Fairhead, LMD, 03/99
40C
41C =====================================================================
42C
43C   Declarations
44#include "dimensions.h"
45#include "paramet.h"
46#include "comgeom.h"
47#include "iniprint.h"
48
49C
50C   Arguments
51C
52
53      INTEGER histid, histvid
54      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
55      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm)                   
56      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
57      REAL phis(ip1jmp1)                 
58      REAL q(ip1jmp1,llm,nqtot)
59      integer time
60
61#ifdef CPP_IOIPSL
62! This routine needs IOIPSL
63C   Variables locales
64C
65      integer iq, ii, ll
66      integer ndexu(ip1jmp1*llm),ndexv(ip1jm*llm),ndex2d(ip1jmp1)
67      logical ok_sync
68      integer itau_w
69      integer :: ijb,ije,jjn
70C
71C  Initialisations
72C
73      if (adjust) return
74     
75   
76      ndexu = 0
77      ndexv = 0
78      ndex2d = 0
79      ok_sync =.TRUE.
80      itau_w = itau_dyn + time
81C
82C  Appels a histwrite pour l'ecriture des variables a sauvegarder
83C
84C  Vents U
85C
86      ijb=ij_begin
87      ije=ij_end
88      jjn=jj_nb
89         
90      call histwrite(histid, 'ucov', itau_w, ucov(ijb:ije,:),
91     .               iip1*jjn*llm, ndexu)
92
93C
94C  Vents V
95C
96      if (pole_sud) ije=ij_end-iip1
97      if (pole_sud) jjn=jj_nb-1
98     
99      call histwrite(histvid, 'vcov', itau_w, vcov(ijb:ije,:),
100     .               iip1*jjn*llm, ndexv)
101
102C
103C  Temperature potentielle
104C
105      ijb=ij_begin
106      ije=ij_end
107      jjn=jj_nb
108
109      call histwrite(histid, 'teta', itau_w, teta(ijb:ije,:),
110     .                iip1*jjn*llm, ndexu)
111C
112C  Geopotentiel
113C
114      call histwrite(histid, 'phi', itau_w, phi(ijb:ije,:),
115     .                iip1*jjn*llm, ndexu)
116C
117C  Traceurs
118C
119        DO iq=1,nqtot
120          call histwrite(histid, ttext(iq), itau_w, q(ijb:ije,:,iq),
121     .                   iip1*jjn*llm, ndexu)
122        enddo
123C
124C  Masse
125C
126      call histwrite(histid, 'masse', itau_w, masse(ijb:ije,1),
127     .               iip1*jjn, ndex2d)
128C
129C  Pression au sol
130C
131      call histwrite(histid, 'ps', itau_w, ps(ijb:ije),
132     .               iip1*jjn, ndex2d)
133C
134C  Geopotentiel au sol
135C
136      call histwrite(histid, 'phis', itau_w, phis(ijb:ije),
137     .               iip1*jjn, ndex2d)
138C
139C  Fin
140C
141      if (ok_sync) then
142        call histsync(histid)
143        call histsync(histvid)
144      endif
145#else
146      write(lunout,*)'writehist_p: Needs IOIPSL to function'
147#endif
148! #endif of #ifdef CPP_IOIPSL
149      return
150      end
Note: See TracBrowser for help on using the repository browser.