source: LMDZ4/trunk/libf/phy_IPCC_AR4/write_paramLMDZ_phy.h @ 1068

Last change on this file since 1068 was 957, checked in by lmdzadmin, 17 years ago

Nettoyage du controle des parametres physiques.

Les parametres cycle_diurne, soil_model, new_oliq, ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad et iflag_con
sont maintenant geres par la physique uniquement.
ecritphy est elimine.
dimphy.F90 et clesphys.h ne sont plus utilises par le code dynamique.
Le test academique obtenu en compilant avec
makegcm -p nophys gcm
fonctionne. FH
IM

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 11.7 KB
Line 
1c
2      IF (is_sequential) THEN
3     
4      ndex2d = 0
5      itau_w = itau_phy + itap
6c
7c Variables type caractere : plusieurs valeurs possibles
8c
9      IF(ocean.EQ.'force ') THEN
10       zx_tmp_2d(1:iim,1:jjmp1)=1.
11      ELSE IF(ocean.EQ.'slab  ') THEN
12       zx_tmp_2d(1:iim,1:jjmp1)=2.
13      ELSE IF(ocean.EQ.'couple') THEN
14       zx_tmp_2d(1:iim,1:jjmp1)=3.
15      ENDIF
16      CALL histwrite(nid_ctesGCM,"ocean",itau_w,
17     .               zx_tmp_2d,iim*jjmp1,ndex2d)
18c
19      IF(ok_slab_sicOBS) THEN
20       zx_tmp_2d(1:iim,1:jjmp1)=1.
21      ELSE
22       zx_tmp_2d(1:iim,1:jjmp1)=0.
23      ENDIF
24      CALL histwrite(nid_ctesGCM,"ok_slab_sicOBS",itau_w,
25     .               zx_tmp_2d,iim*jjmp1,ndex2d)
26c
27      IF(type_run.EQ.'CLIM'.OR.type_run.EQ.'ENSP') THEN
28       zx_tmp_2d(1:iim,1:jjmp1)=1.
29      ELSE IF(type_run.EQ.'AMIP'.OR.type_run.EQ.'CFMI') THEN
30       zx_tmp_2d(1:iim,1:jjmp1)=2.
31      ENDIF
32      CALL histwrite(nid_ctesGCM,"type_run",itau_w,
33     .               zx_tmp_2d,iim*jjmp1,ndex2d)
34c
35c Variables logiques (1=true, 2=false)
36c
37      IF(ok_veget) THEN
38       zx_tmp_2d(1:iim,1:jjmp1)=1.
39      ELSE
40       zx_tmp_2d(1:iim,1:jjmp1)=0.
41      ENDIF
42      CALL histwrite(nid_ctesGCM,"ok_veget",itau_w,
43     .               zx_tmp_2d,iim*jjmp1,ndex2d)
44c
45      IF(ok_journe) THEN
46       zx_tmp_2d(1:iim,1:jjmp1)=1.
47      ELSE
48       zx_tmp_2d(1:iim,1:jjmp1)=0.
49      ENDIF
50      CALL histwrite(nid_ctesGCM,"ok_journe",itau_w,
51     .               zx_tmp_2d,iim*jjmp1,ndex2d)
52c
53      IF(ok_mensuel) THEN
54       zx_tmp_2d(1:iim,1:jjmp1)=1.
55      ELSE
56       zx_tmp_2d(1:iim,1:jjmp1)=0.
57      ENDIF
58      CALL histwrite(nid_ctesGCM,"ok_mensuel",itau_w,
59     .               zx_tmp_2d,iim*jjmp1,ndex2d)
60c
61      IF(ok_instan) THEN
62       zx_tmp_2d(1:iim,1:jjmp1)=1.
63      ELSE
64       zx_tmp_2d(1:iim,1:jjmp1)=0.
65      ENDIF
66      CALL histwrite(nid_ctesGCM,"ok_instan",itau_w,
67     .               zx_tmp_2d,iim*jjmp1,ndex2d)
68c
69      IF(ok_ade) THEN
70       zx_tmp_2d(1:iim,1:jjmp1)=1.
71      ELSE
72       zx_tmp_2d(1:iim,1:jjmp1)=0.
73      ENDIF
74      CALL histwrite(nid_ctesGCM,"ok_ade",itau_w,
75     .               zx_tmp_2d,iim*jjmp1,ndex2d)
76c
77      IF(ok_aie) THEN
78       zx_tmp_2d(1:iim,1:jjmp1)=1.
79      ELSE
80       zx_tmp_2d(1:iim,1:jjmp1)=0.
81      ENDIF
82      CALL histwrite(nid_ctesGCM,"ok_aie",itau_w,
83     .               zx_tmp_2d,iim*jjmp1,ndex2d)
84c
85
86c
87c Champs 2D:
88c
89      zx_tmp_2d(1:iim,1:jjmp1)=bl95_b0
90      CALL histwrite(nid_ctesGCM,"bl95_b0",itau_w,
91     .               zx_tmp_2d,iim*jjmp1,ndex2d)
92c
93      zx_tmp_2d(1:iim,1:jjmp1)=bl95_b1
94      CALL histwrite(nid_ctesGCM,"bl95_b1",itau_w,
95     .               zx_tmp_2d,iim*jjmp1,ndex2d)
96c
97      zx_tmp_2d(1:iim,1:jjmp1)=ip_ebil_phy
98      CALL histwrite(nid_ctesGCM,"ip_ebil_phy",itau_w,
99     .               zx_tmp_2d,iim*jjmp1,ndex2d)
100c
101      zx_tmp_2d(1:iim,1:jjmp1)=R_ecc
102      CALL histwrite(nid_ctesGCM,"R_ecc",itau_w,
103     .               zx_tmp_2d,iim*jjmp1,ndex2d)
104c
105      zx_tmp_2d(1:iim,1:jjmp1)=R_peri
106      CALL histwrite(nid_ctesGCM,"R_peri",itau_w,
107     .               zx_tmp_2d,iim*jjmp1,ndex2d)
108c
109      zx_tmp_2d(1:iim,1:jjmp1)=R_incl
110      CALL histwrite(nid_ctesGCM,"R_incl",itau_w,
111     .               zx_tmp_2d,iim*jjmp1,ndex2d)
112c
113      zx_tmp_2d(1:iim,1:jjmp1)=solaire
114      CALL histwrite(nid_ctesGCM,"solaire",itau_w,
115     .               zx_tmp_2d,iim*jjmp1,ndex2d)
116c
117      zx_tmp_2d(1:iim,1:jjmp1)=co2_ppm
118      CALL histwrite(nid_ctesGCM,"co2_ppm",itau_w,
119     .               zx_tmp_2d,iim*jjmp1,ndex2d)
120c
121      zx_tmp_2d(1:iim,1:jjmp1)=CH4_ppb
122      CALL histwrite(nid_ctesGCM,"CH4_ppb",itau_w,
123     .               zx_tmp_2d,iim*jjmp1,ndex2d)
124c
125      zx_tmp_2d(1:iim,1:jjmp1)=N2O_ppb
126      CALL histwrite(nid_ctesGCM,"N2O_ppb",itau_w,
127     .               zx_tmp_2d,iim*jjmp1,ndex2d)
128c
129      zx_tmp_2d(1:iim,1:jjmp1)=CFC11_ppt
130      CALL histwrite(nid_ctesGCM,"CFC11_ppt",itau_w,
131     .               zx_tmp_2d,iim*jjmp1,ndex2d)
132c
133      zx_tmp_2d(1:iim,1:jjmp1)=CFC12_ppt
134      CALL histwrite(nid_ctesGCM,"CFC12_ppt",itau_w,
135     .               zx_tmp_2d,iim*jjmp1,ndex2d)
136c
137      zx_tmp_2d(1:iim,1:jjmp1)=epmax
138      CALL histwrite(nid_ctesGCM,"epmax",itau_w,
139     .               zx_tmp_2d,iim*jjmp1,ndex2d)
140c
141!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
142! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
143! Mais est-il bien raisonable de stoker ces fichiers comme des
144! champs 2D...
145! WARNING :
146! Il faudrait ici ajoute l'ecriture des champs
147!      cycle_diurne = cycle_diurne_omp
148!   soil_model = soil_model_omp
149!   new_oliq = new_oliq_omp
150!   ok_orodr = ok_orodr_omp
151!   ok_orolf = ok_orolf_omp
152!   ok_limitvrai = ok_limitvrai_omp
153!   nbapp_rad = nbapp_rad_omp
154!   iflag_con = iflag_con_omp
155! qui se trouvaient auparavant dans gcm.def et maintenant dans
156! physiq.def.
157! Mais regarder d'abord a quoi ca sert ...
158!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
159
160
161c
162      IF(ok_adj_ema) THEN
163       zx_tmp_2d(1:iim,1:jjmp1)=1.
164      ELSE
165       zx_tmp_2d(1:iim,1:jjmp1)=0.
166      ENDIF
167      CALL histwrite(nid_ctesGCM,"ok_adj_ema",itau_w,
168     .               zx_tmp_2d,iim*jjmp1,ndex2d)
169c
170      zx_tmp_2d(1:iim,1:jjmp1)=iflag_clw
171      CALL histwrite(nid_ctesGCM,"iflag_clw",itau_w,
172     .               zx_tmp_2d,iim*jjmp1,ndex2d)
173c
174      zx_tmp_2d(1:iim,1:jjmp1)=cld_lc_lsc
175      CALL histwrite(nid_ctesGCM,"cld_lc_lsc",itau_w,
176     .               zx_tmp_2d,iim*jjmp1,ndex2d)
177c
178      zx_tmp_2d(1:iim,1:jjmp1)=cld_lc_con
179      CALL histwrite(nid_ctesGCM,"cld_lc_con",itau_w,
180     .               zx_tmp_2d,iim*jjmp1,ndex2d)
181c
182      zx_tmp_2d(1:iim,1:jjmp1)=cld_tau_lsc
183      CALL histwrite(nid_ctesGCM,"cld_tau_lsc",itau_w,
184     .               zx_tmp_2d,iim*jjmp1,ndex2d)
185c
186      zx_tmp_2d(1:iim,1:jjmp1)=cld_tau_con
187      CALL histwrite(nid_ctesGCM,"cld_tau_con",itau_w,
188     .               zx_tmp_2d,iim*jjmp1,ndex2d)
189c
190      zx_tmp_2d(1:iim,1:jjmp1)=ffallv_lsc
191      CALL histwrite(nid_ctesGCM,"ffallv_lsc",itau_w,
192     .               zx_tmp_2d,iim*jjmp1,ndex2d)
193c
194      zx_tmp_2d(1:iim,1:jjmp1)=ffallv_con
195      CALL histwrite(nid_ctesGCM,"ffallv_con",itau_w,
196     .               zx_tmp_2d,iim*jjmp1,ndex2d)
197c
198      zx_tmp_2d(1:iim,1:jjmp1)=coef_eva
199      CALL histwrite(nid_ctesGCM,"coef_eva",itau_w,
200     .               zx_tmp_2d,iim*jjmp1,ndex2d)
201c
202      IF(reevap_ice) THEN
203       zx_tmp_2d(1:iim,1:jjmp1)=1.
204      ELSE
205       zx_tmp_2d(1:iim,1:jjmp1)=0.
206      ENDIF
207      CALL histwrite(nid_ctesGCM,"reevap_ice",itau_w,
208     .               zx_tmp_2d,iim*jjmp1,ndex2d)
209c
210      zx_tmp_2d(1:iim,1:jjmp1)=iflag_cldcon
211      CALL histwrite(nid_ctesGCM,"iflag_cldcon",itau_w,
212     .               zx_tmp_2d,iim*jjmp1,ndex2d)
213c
214      zx_tmp_2d(1:iim,1:jjmp1)=iflag_pdf
215      CALL histwrite(nid_ctesGCM,"iflag_pdf",itau_w,
216     .               zx_tmp_2d,iim*jjmp1,ndex2d)
217c
218      zx_tmp_2d(1:iim,1:jjmp1)=fact_cldcon
219      CALL histwrite(nid_ctesGCM,"fact_cldcon",itau_w,
220     .               zx_tmp_2d,iim*jjmp1,ndex2d)
221c
222      zx_tmp_2d(1:iim,1:jjmp1)=facttemps
223      CALL histwrite(nid_ctesGCM,"facttemps",itau_w,
224     .               zx_tmp_2d,iim*jjmp1,ndex2d)
225c
226      IF(ok_newmicro) THEN
227       zx_tmp_2d(1:iim,1:jjmp1)=1.
228      ELSE
229       zx_tmp_2d(1:iim,1:jjmp1)=0.
230      ENDIF
231      CALL histwrite(nid_ctesGCM,"ok_newmicro",itau_w,
232     .               zx_tmp_2d,iim*jjmp1,ndex2d)
233c
234      zx_tmp_2d(1:iim,1:jjmp1)=ratqsbas
235      CALL histwrite(nid_ctesGCM,"ratqsbas",itau_w,
236     .               zx_tmp_2d,iim*jjmp1,ndex2d)
237c
238      zx_tmp_2d(1:iim,1:jjmp1)=ratqshaut
239      CALL histwrite(nid_ctesGCM,"ratqshaut",itau_w,
240     .               zx_tmp_2d,iim*jjmp1,ndex2d)
241c
242      zx_tmp_2d(1:iim,1:jjmp1)=rad_froid
243      CALL histwrite(nid_ctesGCM,"rad_froid",itau_w,
244     .               zx_tmp_2d,iim*jjmp1,ndex2d)
245c
246      zx_tmp_2d(1:iim,1:jjmp1)=rad_chau1
247      CALL histwrite(nid_ctesGCM,"rad_chau1",itau_w,
248     .               zx_tmp_2d,iim*jjmp1,ndex2d)
249c
250      zx_tmp_2d(1:iim,1:jjmp1)=rad_chau2
251      CALL histwrite(nid_ctesGCM,"rad_chau2",itau_w,
252     .               zx_tmp_2d,iim*jjmp1,ndex2d)
253c
254      zx_tmp_2d(1:iim,1:jjmp1)=top_height
255      CALL histwrite(nid_ctesGCM,"top_height",itau_w,
256     .               zx_tmp_2d,iim*jjmp1,ndex2d)
257c
258      zx_tmp_2d(1:iim,1:jjmp1)=overlap
259      CALL histwrite(nid_ctesGCM,"overlap",itau_w,
260     .               zx_tmp_2d,iim*jjmp1,ndex2d)
261c
262      zx_tmp_2d(1:iim,1:jjmp1)=cdmmax
263      CALL histwrite(nid_ctesGCM,"cdmmax",itau_w,
264     .               zx_tmp_2d,iim*jjmp1,ndex2d)
265c
266      zx_tmp_2d(1:iim,1:jjmp1)=cdhmax
267      CALL histwrite(nid_ctesGCM,"cdhmax",itau_w,
268     .               zx_tmp_2d,iim*jjmp1,ndex2d)
269c
270      zx_tmp_2d(1:iim,1:jjmp1)=ksta
271      CALL histwrite(nid_ctesGCM,"ksta",itau_w,
272     .               zx_tmp_2d,iim*jjmp1,ndex2d)
273c
274      zx_tmp_2d(1:iim,1:jjmp1)=ksta_ter
275      CALL histwrite(nid_ctesGCM,"ksta_ter",itau_w,
276     .               zx_tmp_2d,iim*jjmp1,ndex2d)
277c
278      IF(ok_kzmin) THEN
279       zx_tmp_2d(1:iim,1:jjmp1)=1.
280      ELSE
281       zx_tmp_2d(1:iim,1:jjmp1)=0.
282      ENDIF
283      CALL histwrite(nid_ctesGCM,"ok_kzmin",itau_w,
284     .               zx_tmp_2d,iim*jjmp1,ndex2d)
285c
286      zx_tmp_2d(1:iim,1:jjmp1)=iflag_pbl
287      CALL histwrite(nid_ctesGCM,"iflag_pbl",itau_w,
288     .               zx_tmp_2d,iim*jjmp1,ndex2d)
289c
290      zx_tmp_2d(1:iim,1:jjmp1)=lev_histhf
291      CALL histwrite(nid_ctesGCM,"lev_histhf",itau_w,
292     .               zx_tmp_2d,iim*jjmp1,ndex2d)
293c
294      zx_tmp_2d(1:iim,1:jjmp1)=lev_histday
295      CALL histwrite(nid_ctesGCM,"lev_histday",itau_w,
296     .               zx_tmp_2d,iim*jjmp1,ndex2d)
297c
298      zx_tmp_2d(1:iim,1:jjmp1)=lev_histmth
299      CALL histwrite(nid_ctesGCM,"lev_histmth",itau_w,
300     .               zx_tmp_2d,iim*jjmp1,ndex2d)
301c
302      IF(ok_isccp) THEN
303       zx_tmp_2d(1:iim,1:jjmp1)=1.
304      ELSE
305       zx_tmp_2d(1:iim,1:jjmp1)=0.
306      ENDIF
307      CALL histwrite(nid_ctesGCM,"ok_isccp",itau_w,
308     .               zx_tmp_2d,iim*jjmp1,ndex2d)
309c
310      zx_tmp_2d(1:iim,1:jjmp1)=lonmin_ins
311      CALL histwrite(nid_ctesGCM,"lonmin_ins",itau_w,
312     .               zx_tmp_2d,iim*jjmp1,ndex2d)
313c
314      zx_tmp_2d(1:iim,1:jjmp1)=lonmax_ins
315      CALL histwrite(nid_ctesGCM,"lonmax_ins",itau_w,
316     .               zx_tmp_2d,iim*jjmp1,ndex2d)
317c
318      zx_tmp_2d(1:iim,1:jjmp1)=latmin_ins
319      CALL histwrite(nid_ctesGCM,"latmin_ins",itau_w,
320     .               zx_tmp_2d,iim*jjmp1,ndex2d)
321c
322      zx_tmp_2d(1:iim,1:jjmp1)=latmax_ins
323      CALL histwrite(nid_ctesGCM,"latmax_ins",itau_w,
324     .               zx_tmp_2d,iim*jjmp1,ndex2d)
325c
326      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_ins
327      CALL histwrite(nid_ctesGCM,"ecrit_ins",itau_w,
328     .               zx_tmp_2d,iim*jjmp1,ndex2d)
329c
330      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_hf
331      CALL histwrite(nid_ctesGCM,"ecrit_hf",itau_w,
332     .               zx_tmp_2d,iim*jjmp1,ndex2d)
333c
334      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_day
335      CALL histwrite(nid_ctesGCM,"ecrit_day",itau_w,
336     .               zx_tmp_2d,iim*jjmp1,ndex2d)
337c
338      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_mth
339      CALL histwrite(nid_ctesGCM,"ecrit_mth",itau_w,
340     .               zx_tmp_2d,iim*jjmp1,ndex2d)
341c
342      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_tra
343      CALL histwrite(nid_ctesGCM,"ecrit_tra",itau_w,
344     .               zx_tmp_2d,iim*jjmp1,ndex2d)
345c
346      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_reg
347      CALL histwrite(nid_ctesGCM,"ecrit_reg",itau_w,
348     .               zx_tmp_2d,iim*jjmp1,ndex2d)
349c
350      zx_tmp_2d(1:iim,1:jjmp1)=freq_ISCCP
351      CALL histwrite(nid_ctesGCM,"freq_ISCCP",itau_w,
352     .               zx_tmp_2d,iim*jjmp1,ndex2d)
353c
354      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_ISCCP
355      CALL histwrite(nid_ctesGCM,"ecrit_ISCCP",itau_w,
356     .               zx_tmp_2d,iim*jjmp1,ndex2d)
357c
358c=================================================================
359c=================================================================
360c=================================================================
361c
362      if (ok_sync) then
363        call histsync(nid_ctesGCM)
364      endif
365c
366      ENDIF ! mono_cpu
Note: See TracBrowser for help on using the repository browser.