source: LMDZ4/branches/LMDZ4V5.0-dev/libf/bibio/writehist.F @ 1357

Last change on this file since 1357 was 1357, checked in by Ehouarn Millour, 14 years ago

Some cleanup and fixing the possibility to output fields in the dynamics, on the dynamical grids.

CLEANUPS:

  • arch-PW6_VARGAS.fcm : add potentially benefic compiling options
  • removed obsolete "control.h" in dyn3d/dyn3dpar (module control_mod.F90 is used instead)

OUTPUTS in the dynamics (3 sets of files, one for each grid: scalar, u, v):

  • removed "com_io_dyn.h" common; use module "com_io_dyn_mod.F90" instead
  • updated "initdynav.F","inithist.F","writehist.F" and "writedynav.F" in bibio: which field will be written is hard coded there.
  • flags "ok_dyn_ins" and "ok_dyn_ave" (loaded via conf_gcm.F) trigger output of fields in the dynamics: if ok_dyn_ins is true, then files "dyn_hist.nc", "dyn_histu.nc" and "dyn_histv.nc" are written (the frequency of the outputs is given by 'iecri' in run.def; values are written every 'iecri' dynamical step). if ok_dyn_ave is true then files "dyn_hist_ave.nc", "dyn_histu_ave.nc" and "dyn_histv_ave.nc" are written (the rate at which averages and made/written, in days, is given by 'periodav' in run.def).

EM

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