source: LMDZ4/trunk/libf/phylmd/ini_histISCCP.h @ 757

Last change on this file since 757 was 684, checked in by lmdzadmin, 19 years ago

Ajout nouveaux flags (ip_ebil_phy, ok_slab_sicOBS) ds physiq.def +
Lecture freq. ecriture en nombre de jours
IM

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 8.4 KB
Line 
1!
2! $Header$
3!
4      IF (ok_isccp) THEN
5c
6      ndex2d = 0
7      ndex3d = 0
8c
9c pour les champs instantannes, il faut mettre la meme valeur pour
10c zout et zsto.
11c dtime est passe par ailleurs a histbeg
12c zstophy = frequence de stockage des champs tous les pdt physiques
13c zout = frequence d'ecriture des champs
14cIM 300505     zstophy = dtime
15c appel du simulateur toutes les 3heures
16          zcals(1) = dtime *6.  !toutes les 3h (en s)
17        DO n=1, napisccp
18          zcalh(n) = zcals(n)/3600. !stoutes les Xh (en heures)
19        ENDDO !n
20c
21c ecriture 8 fois par jour
22c       zout = dtime * REAL(NINT(86400./dtime*ecrit_isccp))
23c ecriture toutes les 2h (12 fois par jour)
24c       zout = dtime * 4.
25c ecriture toutes les 1/2 h (48 fois par jour)
26c       zout = dtime
27c
28c       IF(freqout_isccp.EQ.1.) THEN
29c ecriture jounaliere
30          zout_isccp(1) = ecrit_day !(en s)
31c ecriture mensuelle
32c         zout = dtime * ecrit_mth !(en s)
33        DO n=1, napisccp
34          zoutj(n)=zout_isccp(n)/86400. !(en jours)
35c
36c le nombre de sous-colonnes ncol : ncol=(100.*zcalh)/zoutd
37          ncol(n)=NINT((100.*zcalh(n))/zoutj(n))
38          PRINT*,'n ncol',n,ncol(n)
39c
40        DO l=1, ncol(n)
41          vertlev(l,n)=float(l)
42        ENDDO !ncol
43c
44        ENDDO !n
45
46c       PRINT*, 'La frequence de sortie ISCCP est de ', ecrit_isccp
47c
48        idayref = day_ref
49        CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
50c       write(*,*)'ISCCP ', itau_phy, zjulian
51c
52c
53c definition coordonnees lon,lat en globale
54c
55        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
56        DO i = 1, iim
57          zx_lon(i,1) = rlon(i+1)
58          zx_lon(i,jjmp1) = rlon(i+1)
59        ENDDO
60
61        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
62c
63cIM BEG region
64          imin_ins=1
65          imax_ins=iim
66          jmin_ins=1
67          jmax_ins=jjmp1
68          do i=1,iim-1
69             if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i
70             if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1
71          enddo
72          do j=1,jjmp1
73             if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j
74             if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j
75          enddo
76c
77          print*,'On stoke le fichier histISCCP instantanne sur ',
78     s   imin_ins,imax_ins,jmin_ins,jmax_ins
79          print*,'On stoke le fichier histISCCP instantanne sur ',
80     s   zx_lon(imin_ins,1),zx_lon(imax_ins,1),
81     s   zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)
82cIM END region
83c
84        IF(1.EQ.0) THEN
85         CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),jjmp1,zx_lat(1,:),
86     .                 1, iim, 1, jjmp1,
87     .                 itau_phy, zjulian, dtime,
88     .                 nhori, nid_isccp)
89        ENDIF !(1.EQ.0) THEN
90c
91         CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),
92     .                 jjmp1,zx_lat(1,:),
93     .                 imin_ins,imax_ins-imin_ins+1,
94     .                 jmin_ins,jmax_ins-jmin_ins+1,
95     .                 itau_phy, zjulian, dtime,
96     .                 nhori, nid_isccp)
97c
98        IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
99         CALL histvert(nid_isccp, "cldtopres","Cloud Top Pressure","mb",
100     .                 lmaxm1, cldtopres, nvert,'down')
101        ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
102         CALL histvert(nid_isccp,"cldtopres3","Cloud Top Pressure","mb",
103     .                 lmax3, cldtopres3, nvert3,'down')
104        ENDIF
105        DO n=1, napisccp
106         CALL histvert(nid_isccp, "Nbcol"//verticaxe(n),
107     .        "Nb of Column"//verticaxe(n),"1",
108     .        ncol(n), vertlev(:,n), nvlev(n),'up')
109        ENDDO
110c
111        IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
112c
113c variables a ecrire
114c
115         DO n=1, napisccp
116c
117         DO k=1, kmaxm1
118          CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//typinout(n),
119     .                "LMDZ ISCCP cld", "%",
120     .                iim, jjmp1,nhori,lmaxm1,1,lmaxm1,nvert,32,
121     .                "ave(X)", zcals(n),zout_isccp(n))
122         ENDDO
123c
124         CALL histdef(nid_isccp, "nsunlit"//typinout(n),
125     .                "Nb of calls with sunlit ", "%",
126     .                iim, jjmp1,nhori,1,1,1,-99,32,
127     .                "ave(X)", zcals(n),zout_isccp(n))
128c
129         ENDDO
130c
131        ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
132c
133         DO n=1, napisccp
134c
135c         print*,'n=',n,' avant histdef(..LMDZ ISCCP cld'
136c
137          DO k=1, kmaxm1
138           DO l=1, lmaxm1
139c
140           CALL histdef(nid_isccp, pclev(l)//taulev(k)//typinout(n),
141     .                "LMDZ ISCCP cld "//cnameisccp(l,k), "%",
142     .                iim, jjmp1,nhori,1,1,1,-99,32,
143     .                "ave(X)", zcals(n),zout_isccp(n))
144c
145           ENDDO
146          ENDDO
147c
148c         print*,'n=',n,' avant histdef(..Nb of calls sunlit'
149          CALL histdef(nid_isccp, "nsunlit"//typinout(n),
150     .                "Nb of calls with sunlit ", "%",
151     .                iim, jjmp1,nhori,1,1,1,-99,32,
152     .                "ave(X)", zcals(n),zout_isccp(n))
153c
154c 9types de nuages ISCCP-D2
155          CALL histdef(nid_isccp, "cirr",
156     .                "Cirrus lk ISCCP-D2", "%",
157     .                iim, jjmp1,nhori,1,1,1,-99,32,
158     .                "ave(X)", zcals(n),zout_isccp(n))
159c
160          CALL histdef(nid_isccp, "cist",
161     .                "CiSt lk ISCCP-D2", "%",
162     .                iim, jjmp1,nhori,1,1,1,-99,32,
163     .                "ave(X)", zcals(n),zout_isccp(n))
164c
165          CALL histdef(nid_isccp, "deep",
166     .                "Deep lk ISCCP-D2", "%",
167     .                iim, jjmp1,nhori,1,1,1,-99,32,
168     .                "ave(X)", zcals(n),zout_isccp(n))
169c
170          CALL histdef(nid_isccp, "alcu",
171     .                "AlCu lk ISCCP-D2", "%",
172     .                iim, jjmp1,nhori,1,1,1,-99,32,
173     .                "ave(X)", zcals(n),zout_isccp(n))
174c
175          CALL histdef(nid_isccp, "alst",
176     .                "AlSt lk ISCCP-D2", "%",
177     .                iim, jjmp1,nhori,1,1,1,-99,32,
178     .                "ave(X)", zcals(n),zout_isccp(n))
179c
180          CALL histdef(nid_isccp, "nist",
181     .                "NiSt lk ISCCP-D2", "%",
182     .                iim, jjmp1,nhori,1,1,1,-99,32,
183     .                "ave(X)", zcals(n),zout_isccp(n))
184c
185          CALL histdef(nid_isccp, "cumu",
186     .                "Cumu lk ISCCP-D2", "%",
187     .                iim, jjmp1,nhori,1,1,1,-99,32,
188     .                "ave(X)", zcals(n),zout_isccp(n))
189c
190          CALL histdef(nid_isccp, "stcu",
191     .                "StCu lk ISCCP-D2", "%",
192     .                iim, jjmp1,nhori,1,1,1,-99,32,
193     .                "ave(X)", zcals(n),zout_isccp(n))
194c
195          CALL histdef(nid_isccp, "stra",
196     .                "Stra lk ISCCP-D2", "%",
197     .                iim, jjmp1,nhori,1,1,1,-99,32,
198     .                "ave(X)", zcals(n),zout_isccp(n))
199c
200c 3_epaisseurs_optiques x3_pressions_au_sommet_des_nuages  types de nuages
201          CALL histdef(nid_isccp, "thin",
202     .                "Opt. thin ISCCP-D2 like clouds", "%",
203     .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
204     .                "ave(X)", zcals(n),zout_isccp(n))
205c
206          CALL histdef(nid_isccp, "mid",
207     .                "Opt. intermediate ISCCP-D2 like clouds", "%",
208     .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
209     .                "ave(X)", zcals(n),zout_isccp(n))
210c
211          CALL histdef(nid_isccp, "thick",
212     .                "Opt. thick ISCCP-D2 like clouds", "%",
213     .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
214     .                "ave(X)", zcals(n),zout_isccp(n))
215c
216c        IF(1.EQ.0) THEN
217c        IF(n.EQ.3) THEN
218c        IF(n.EQ.1) THEN
219c
220cIM 070905 BEG
221         IF(1.EQ.0) THEN
222          print*,'n=',n,' avant histdef(..boxptop axe'
223cIM verif boxptop
224          CALL histdef(nid_isccp,"boxptop"//verticaxe(n),
225     .                "Boxptop axe"//verticaxe(n), "mb",
226     .                iim, jjmp1,nhori,
227     .                ncol(n),1,ncol(n),nvlev(n),32,
228cIM  .                ncolmx,1,ncolmx,nvlev,32,
229cIM  .                "inst(X)",dtime,dtime)
230     .                "ave(X)",zcals(n),zout_isccp(n))
231         ENDIF !(1.EQ.0) THEN
232cIM 070905 END
233c        ENDIF !(n.EQ.3) THEN
234c       ENDIF !(1.EQ.0) THEN
235c
236c         print*,'n=',n,' avant histdef(..seed axe'
237          CALL histdef(nid_isccp, "seed"//verticaxe(n),
238     .                "seed axe"//verticaxe(n), "-",
239     .                iim, jjmp1,nhori,1,1,1,-99,32,
240cIM  .                "inst(X)", dtime,dtime)
241     .                "ave(X)", zcals(n),zout_isccp(n))
242c
243         ENDDO !n
244        ENDIF
245        CALL histend(nid_isccp)
246c
247      ENDIF ! ok_isccp
Note: See TracBrowser for help on using the repository browser.