source: LMDZ5/trunk/libf/dyn3dpar/writehist_p.F @ 2597

Last change on this file since 2597 was 2597, checked in by Ehouarn Millour, 8 years ago

Cleanup in the dynamics: get rid of comconst.h, make it a module comconst_mod.
EM

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1!
2! $Id: writehist_p.F 2597 2016-07-22 06:44:47Z emillour $
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      implicit none
15
16C
17C   Ecriture du fichier histoire au format IOIPSL
18C
19C   Appels succesifs des routines: histwrite
20C
21C   Entree:
22C      histid: ID du fichier histoire
23C      histvid:ID du fichier histoire pour les vents V (appele a disparaitre)
24C      time: temps de l'ecriture
25C      vcov: vents v covariants
26C      ucov: vents u covariants
27C      teta: temperature potentielle
28C      phi : geopotentiel instantane
29C      q   : traceurs
30C      masse: masse
31C      ps   :pression au sol
32C      phis : geopotentiel au sol
33C     
34C
35C   Sortie:
36C      fileid: ID du fichier netcdf cree
37C
38C   L. Fairhead, LMD, 03/99
39C
40C =====================================================================
41C
42C   Declarations
43#include "dimensions.h"
44#include "paramet.h"
45#include "comvert.h"
46#include "comgeom.h"
47#include "temps.h"
48#include "ener.h"
49#include "logic.h"
50#include "description.h"
51#include "serre.h"
52#include "iniprint.h"
53
54C
55C   Arguments
56C
57
58      INTEGER histid, histvid
59      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
60      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm)                   
61      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
62      REAL phis(ip1jmp1)                 
63      REAL q(ip1jmp1,llm,nqtot)
64      integer time
65
66#ifdef CPP_IOIPSL
67! This routine needs IOIPSL
68C   Variables locales
69C
70      integer iq, ii, ll
71      integer ndexu(ip1jmp1*llm),ndexv(ip1jm*llm),ndex2d(ip1jmp1)
72      logical ok_sync
73      integer itau_w
74      integer :: ijb,ije,jjn
75C
76C  Initialisations
77C
78      if (adjust) return
79     
80   
81      ndexu = 0
82      ndexv = 0
83      ndex2d = 0
84      ok_sync =.TRUE.
85      itau_w = itau_dyn + time
86C
87C  Appels a histwrite pour l'ecriture des variables a sauvegarder
88C
89C  Vents U
90C
91      ijb=ij_begin
92      ije=ij_end
93      jjn=jj_nb
94         
95      call histwrite(histid, 'ucov', itau_w, ucov(ijb:ije,:),
96     .               iip1*jjn*llm, ndexu)
97
98C
99C  Vents V
100C
101      if (pole_sud) ije=ij_end-iip1
102      if (pole_sud) jjn=jj_nb-1
103     
104      call histwrite(histvid, 'vcov', itau_w, vcov(ijb:ije,:),
105     .               iip1*jjn*llm, ndexv)
106
107C
108C  Temperature potentielle
109C
110      ijb=ij_begin
111      ije=ij_end
112      jjn=jj_nb
113
114      call histwrite(histid, 'teta', itau_w, teta(ijb:ije,:),
115     .                iip1*jjn*llm, ndexu)
116C
117C  Geopotentiel
118C
119      call histwrite(histid, 'phi', itau_w, phi(ijb:ije,:),
120     .                iip1*jjn*llm, ndexu)
121C
122C  Traceurs
123C
124        DO iq=1,nqtot
125          call histwrite(histid, ttext(iq), itau_w, q(ijb:ije,:,iq),
126     .                   iip1*jjn*llm, ndexu)
127        enddo
128C
129C  Masse
130C
131      call histwrite(histid, 'masse', itau_w, masse(ijb:ije,1),
132     .               iip1*jjn, ndex2d)
133C
134C  Pression au sol
135C
136      call histwrite(histid, 'ps', itau_w, ps(ijb:ije),
137     .               iip1*jjn, ndex2d)
138C
139C  Geopotentiel au sol
140C
141      call histwrite(histid, 'phis', itau_w, phis(ijb:ije),
142     .               iip1*jjn, ndex2d)
143C
144C  Fin
145C
146      if (ok_sync) then
147        call histsync(histid)
148        call histsync(histvid)
149      endif
150#else
151      write(lunout,*)'writehist_p: Needs IOIPSL to function'
152#endif
153! #endif of #ifdef CPP_IOIPSL
154      return
155      end
Note: See TracBrowser for help on using the repository browser.