/[lmdze]/trunk/phylmd/initphysto.f
ViewVC logotype

Annotation of /trunk/phylmd/initphysto.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 129 - (hide annotations)
Fri Feb 13 18:22:38 2015 UTC (9 years, 3 months ago) by guez
File size: 5835 byte(s)
Removed arguments day0, anne0 of procedures initdynav and
inithist. Use directly day_ref, annee_ref instead.

Moved variables annee_ref, day_ref of module temps to module
dynetat0_m. Deleted variables dayref and anneeref of module conf_gcm_m
and removed them from namelist conf_gcm_nml. These variables were
troubling intermediary on the way to annee_ref and day_ref. Gave as
default values to annee_ref and day_ref the default values of dayref
and anneeref. Moved the test on raz_date from main unit gcm to
procedure dynetat0. Created namelist dynetat0_nml. Read annee_ref and
day_ref from standard input in dynetat0 and redefine them from
"start.nc" if not raz_date. Rationale: 1 - Choose the best programming
from the point of view of program gcm only, forgetting program ce0l. 2
- The normal case is to define annee_ref and day_ref from "start.nc"
so put them in module dynetat0_m rather than in conf_gcm_m. 3 - Try to
always read the same namelists in the same order regardless of choices
in previous namelists. Downsides: 1 -We now need the file "dynetat0.f"
for the program ce0l, because dynetat0_m is used by dynredem0. 2 - We
need to define annee_ref and day_ref from procedure etat0.

Removed useless variable day_end of module temps.

1 guez 31 SUBROUTINE initphysto(infile,rlon,rlat,tstep,t_ops,t_wrt,nq,fileid)
2 guez 3
3 guez 31 ! From phylmd/initphysto.F,v 1.2 2004/06/22 11:45:32
4     ! Routine d'initialisation des ecritures des fichiers histoires LMDZ
5     ! au format IOIPSL
6 guez 3
7 guez 31 ! Appels succesifs des routines: histbeg
8     ! histhori
9     ! histver
10     ! histdef
11     ! histend
12 guez 3
13 guez 31 ! Entree:
14 guez 3
15 guez 31 ! infile: nom du fichier histoire a creer
16     ! day0,anne0: date de reference
17     ! tstep: duree du pas de temps en seconde
18     ! t_ops: frequence de l'operation pour IOIPSL
19     ! t_wrt: frequence d'ecriture sur le fichier
20     ! nq: nombre de traceurs
21 guez 3
22 guez 31 ! Sortie:
23     ! fileid: ID du fichier netcdf cree
24     ! filevid:ID du fichier netcdf pour la grille v
25 guez 3
26 guez 31 ! L. Fairhead, 03/99
27 guez 3
28 guez 129 use dynetat0_m, only: day_ref, annee_ref
29 guez 61 USE histbeg_totreg_m, ONLY : histbeg_totreg
30     USE histdef_m, ONLY : histdef
31     USE histend_m, ONLY : histend
32     use histsync_m, only: histsync
33     USE histvert_m, ONLY : histvert
34 guez 31 USE dimens_m
35     USE paramet_m
36     USE comconst
37     USE indicesol
38     USE dimphy
39 guez 57 use conf_gcm_m
40 guez 31 USE comgeom
41     USE serre
42 guez 39 USE nr_util, ONLY : pi
43 guez 92 USE ymds2ju_m
44 guez 3
45 guez 31 IMPLICIT NONE
46 guez 3
47 guez 31 ! Arguments
48 guez 108 CHARACTER(len=*) infile
49 guez 31 INTEGER nhoriid, i
50     REAL, INTENT (IN) :: tstep
51     REAL t_ops, t_wrt
52     INTEGER fileid, filevid
53     INTEGER nq, l
54     REAL nivsigs(llm)
55 guez 3
56 guez 31 ! Variables locales
57 guez 3
58 guez 31 INTEGER tau0
59     REAL zjulian
60 guez 108 CHARACTER(len=3) str
61     CHARACTER(len=10) ctrac
62 guez 31 INTEGER iq
63     INTEGER uhoriid, vhoriid, thoriid, zvertiid
64     INTEGER ii, jj
65     LOGICAL ok_sync
66     REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
67 guez 3
68 guez 31 REAL, INTENT (IN) :: rlon(klon), rlat(klon)
69 guez 3
70 guez 31 !-----------------------------------------------------
71 guez 3
72 guez 31 ! Initialisations
73     str = 'q '
74     ctrac = 'traceur '
75     ok_sync = .TRUE.
76 guez 3
77 guez 31 ! Appel a histbeg: creation du fichier netcdf et initialisations
78     ! diverses
79 guez 3
80 guez 129 CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)
81 guez 31 tau0 = 0
82 guez 3
83 guez 31 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
84     DO i = 1, iim
85     zx_lon(i,1) = rlon(i+1)
86     zx_lon(i,jjm+1) = rlon(i+1)
87     END DO
88     CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
89 guez 3
90    
91 guez 31 CALL histbeg_totreg(infile,zx_lon(:,1),zx_lat(1,:),1,iim,1,jjm+1,tau0, &
92     zjulian,tstep,nhoriid,fileid)
93 guez 3
94 guez 31 ! Appel a histvert pour la grille verticale
95 guez 3
96 guez 31 DO l = 1, llm
97     nivsigs(l) = float(l)
98     END DO
99 guez 3
100 guez 67 CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &
101 guez 31 zvertiid)
102 guez 3
103 guez 31 ! Appels a histdef pour la definition des variables a sauvegarder
104 guez 3
105 guez 31 CALL histdef(fileid,'phis','Surface geop. height','-',iim,jjm+1,nhoriid, &
106     1,1,1,-99,'once',t_ops,t_wrt)
107 guez 3
108 guez 31 CALL histdef(fileid,'aire','Grid area','-',iim,jjm+1,nhoriid,1,1,1,-99, &
109     'once',t_ops,t_wrt)
110 guez 3
111 guez 31 CALL histdef(fileid,'dtime','tps phys ','s',1,1,nhoriid,1,1,1,-99, &
112     'once',t_ops,t_wrt)
113 guez 3
114 guez 31 CALL histdef(fileid,'istphy','tps stock','s',1,1,nhoriid,1,1,1,-99, &
115     'once',t_ops,t_wrt)
116 guez 3
117 guez 31 ! T
118 guez 3
119 guez 31 CALL histdef(fileid,'t','Temperature','K',iim,jjm+1,nhoriid,llm,1,llm, &
120     zvertiid,'inst(X)',t_ops,t_wrt)
121 guez 3
122 guez 31 CALL histdef(fileid,'mfu','flx m. pan. mt','kg m/s',iim,jjm+1,nhoriid, &
123     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
124 guez 3
125 guez 31 CALL histdef(fileid,'mfd','flx m. pan. des','kg m/s',iim,jjm+1,nhoriid, &
126     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
127    
128    
129     ! en_u
130    
131     CALL histdef(fileid,'en_u','flx ent pan mt','kg m/s',iim,jjm+1,nhoriid, &
132     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
133    
134     CALL histdef(fileid,'de_u','flx det pan mt','kg m/s',iim,jjm+1,nhoriid, &
135     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
136    
137    
138     ! en_d
139    
140     CALL histdef(fileid,'en_d','flx ent pan dt','kg m/s',iim,jjm+1,nhoriid, &
141     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
142    
143    
144    
145     ! de_d
146    
147     CALL histdef(fileid,'de_d','flx det pan dt','kg m/s',iim,jjm+1,nhoriid, &
148     llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
149    
150     ! coefh frac_impa,frac_nucl
151    
152     CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
153     zvertiid,'inst(X)',t_ops,t_wrt)
154    
155     ! abderrahmane le 16 09 02
156     CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
157     zvertiid,'inst(X)',t_ops,t_wrt)
158    
159     CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
160     zvertiid,'inst(X)',t_ops,t_wrt)
161     ! fin aj
162    
163     CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
164     zvertiid,'inst(X)',t_ops,t_wrt)
165    
166     CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
167     zvertiid,'inst(X)',t_ops,t_wrt)
168    
169    
170     ! pyu1
171    
172     CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
173     'inst(X)',t_ops,t_wrt)
174    
175    
176     ! pyv1
177    
178     CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
179     'inst(X)',t_ops,t_wrt)
180    
181     CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
182     'inst(X)',t_ops,t_wrt)
183    
184    
185     ! ftsol2
186    
187     CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
188     'inst(X)',t_ops,t_wrt)
189    
190    
191     ! ftsol3
192    
193     CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
194     'inst(X)',t_ops,t_wrt)
195    
196    
197     ! ftsol4
198    
199     CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
200     'inst(X)',t_ops,t_wrt)
201    
202    
203     ! rain
204    
205     CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
206     'inst(X)',t_ops,t_wrt)
207    
208    
209     ! psrf1
210    
211     CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
212     'inst(X)',t_ops,t_wrt)
213    
214    
215     ! psrf2
216    
217     CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
218     'inst(X)',t_ops,t_wrt)
219    
220    
221     ! psrf3
222    
223     CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
224     'inst(X)',t_ops,t_wrt)
225    
226    
227     ! psrf4
228    
229     CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
230     'inst(X)',t_ops,t_wrt)
231    
232     CALL histend(fileid)
233     IF (ok_sync) CALL histsync
234    
235     END SUBROUTINE initphysto

  ViewVC Help
Powered by ViewVC 1.1.21