source: lmdz_wrf/trunk/WRFV3/lmdz/ini_histISCCP.h @ 354

Last change on this file since 354 was 1, checked in by lfita, 10 years ago
  • -- --- Opening of the WRF+LMDZ coupling repository --- -- -

WRF: version v3.3
LMDZ: version v1818

More details in:

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