source: LMDZ4/trunk/libf/phylmd/write_histISCCP.h @ 1033

Last change on this file since 1033 was 878, checked in by Laurent Fairhead, 17 years ago

Bascule de la physique du LMD vers la physique avec thermiques
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.3 KB
RevLine 
[524]1!
2! $Header$
3!
4      IF (ok_isccp) THEN
5c
6       ndex2d = 0
7       ndex3d = 0
8c
9       itau_w = itau_phy + itap
10c
[644]11       IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
12c
[684]13        DO n=1, napisccp
14c
[524]15        DO k=1,kmaxm1
[684]16         zx_tmp_fi3d(1:klon, 1:lmaxm1)=fq_isccp(1:klon,k,1:lmaxm1,n)*100.
[766]17cym         CALL gr_fi_ecrit(lmaxm1,klon,iim,jjmp1,zx_tmp_fi3d,
18cym     .                    zx_tmp_3d)
[524]19c
20cIM: champ 3d : (lon,lat,pres) pour un tau fixe
21c
[878]22      CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//verticaxe(n),
[766]23     .                  itau_w,zx_tmp_fi3d)
[524]24        ENDDO !k
25c
[766]26cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
[827]27        CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),itau_w,
[766]28     .                 nbsunlit(1,:,n))
[524]29c
[684]30        ENDDO ! n=1, napisccp
[644]31        ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
32c
[684]33        DO n=1, napisccp
34c        print*,'n=',n,' write_ISCCP avant fq_isccp'
[644]35         DO k=1, kmaxm1
36          DO l=1, lmaxm1
37c
[684]38         IF(top_height.LE.2) THEN
39          DO i=1, klon
40           IF(nbsunlit(1,i,n).NE.0.) THEN
41            fq_is_true(i,k,l,n)=
42     $      fq_isccp(i,k,l,n)*100./nbsunlit(1,i,n)
43           ELSE
44            fq_is_true(i,k,l,n)=0
45           ENDIF
46          ENDDO
47         ELSE IF(top_height.EQ.3) THEN
48          DO i=1, klon
49           fq_is_true(i,k,l,n) = fq_isccp(i,k,l,n)*100.
50          ENDDO
51         ENDIF
[766]52cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_is_true,
53cym     .                    zx_tmp_2d)
[644]54c
55cIM: champ 2d : (lon,lat) pour un tau et une pc fixes
56c
[827]57         CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//verticaxe(n),
58     .                  itau_w,fq_is_true(:,k,l,n))
[644]59         ENDDO !l
60        ENDDO !k
61c
[684]62c       print*,'n=',n,' write_ISCCP avant nbsunlit'
[766]63cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
[827]64        CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),
[766]65     .                 itau_w,nbsunlit(1,:,n))
[644]66c
[684]67        zx_tmp_fi2d(1:klon)=float(seed(1:klon,n))
68c
69c       print*,'n=',n,' write_ISCCP avant seed'
[766]70cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
71        CALL histwrite_phy(nid_isccp,"seed"//verticaxe(n),
72     .                 itau_w,zx_tmp_fi2d)
[684]73c
74c 9types de nuages ISCCP-D2
75c fq_isccp(1:klon,k,l,n)*100. <=> pc_tau(k)_pclev(l)
76        DO i=1, klon
77         zx_tmp_fi2d(i)=
78     $ (fq_is_true(i,1,1,n)+ fq_is_true(i,2,1,n)+ fq_is_true(i,3,1,n) +
79     $  fq_is_true(i,1,2,n)+ fq_is_true(i,2,2,n)+ fq_is_true(i,3,2,n) +
80     $  fq_is_true(i,1,3,n)+ fq_is_true(i,2,3,n)+ fq_is_true(i,3,3,n) )
81        ENDDO
[766]82cym       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
83        CALL histwrite_phy(nid_isccp,"cirr",itau_w,zx_tmp_fi2d)
[684]84c
85        DO i=1, klon
86         zx_tmp_fi2d(i)=
87     $  (fq_is_true(i,4,1,n)+ fq_is_true(i,5,1,n) +
88     $   fq_is_true(i,4,2,n)+ fq_is_true(i,5,2,n) +
89     $   fq_is_true(i,4,3,n)+ fq_is_true(i,5,3,n) )
90        ENDDO
[766]91cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
92        CALL histwrite_phy(nid_isccp,"cist",itau_w,zx_tmp_fi2d)
[684]93c
94        DO i=1, klon
95         zx_tmp_fi2d(i)=
96     $  (fq_is_true(i,6,1,n)+ fq_is_true(i,7,1,n) +
97     $   fq_is_true(i,6,2,n)+ fq_is_true(i,7,2,n) +
98     $   fq_is_true(i,6,3,n)+ fq_is_true(i,7,3,n) )
99        ENDDO
[766]100cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
101        CALL histwrite_phy(nid_isccp,"deep",itau_w,zx_tmp_fi2d)
[684]102c
103        DO i=1, klon
104         zx_tmp_fi2d(i)=
105     $ (fq_is_true(i,1,4,n)+ fq_is_true(i,2,4,n)+ fq_is_true(i,3,4,n) +
106     $  fq_is_true(i,1,5,n)+ fq_is_true(i,2,5,n)+ fq_is_true(i,3,5,n) )
107        ENDDO
[766]108cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
109        CALL histwrite_phy(nid_isccp,"alcu",itau_w,zx_tmp_fi2d)
[684]110c
111        DO i=1, klon
112         zx_tmp_fi2d(i)=
113     $  (fq_is_true(i,4,4,n)+ fq_is_true(i,5,4,n) +
114     $   fq_is_true(i,4,5,n)+ fq_is_true(i,5,5,n) )
115        ENDDO
[766]116cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
117        CALL histwrite_phy(nid_isccp,"alst",itau_w,zx_tmp_fi2d)
[684]118c
119        DO i=1, klon
120         zx_tmp_fi2d(i)=
121     $  (fq_is_true(i,6,4,n)+ fq_is_true(i,7,4,n) +
122     $   fq_is_true(i,6,5,n)+ fq_is_true(i,7,5,n) )
123        ENDDO
[766]124cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
125        CALL histwrite_phy(nid_isccp,"nist",itau_w,zx_tmp_fi2d)
[684]126c
127        DO i=1, klon
128         zx_tmp_fi2d(i)=
129     $ (fq_is_true(i,1,6,n)+ fq_is_true(i,2,6,n)+ fq_is_true(i,3,6,n) +
130     $  fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) )
131        ENDDO
[766]132cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
133        CALL histwrite_phy(nid_isccp,"cumu",itau_w,zx_tmp_fi2d)
[684]134c
135        DO i=1, klon
136         zx_tmp_fi2d(i)=
137     $  (fq_is_true(i,4,6,n)+ fq_is_true(i,5,6,n) +
138     $   fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) )
139        ENDDO
[766]140cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
141        CALL histwrite_phy(nid_isccp,"stcu",itau_w,zx_tmp_fi2d)
[684]142c
143        DO i=1, klon
144         zx_tmp_fi2d(i)=
145     $  (fq_is_true(i,6,6,n)+ fq_is_true(i,7,6,n) +
146     $   fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) )
147        ENDDO
[766]148cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
149        CALL histwrite_phy(nid_isccp,"stra",itau_w,zx_tmp_fi2d)
[684]150c
151c 3_tau_nuages x 3_levels
152c fq_is_true(1:klon,k,l,n)*100. <=> pc_tau(k)_pclev(l)
153        DO i=1, klon
154         cld_fi3d(i,1)= 
155     $ (fq_is_true(i,1,1,n)+ fq_is_true(i,2,1,n)+ fq_is_true(i,3,1,n) +
156     $  fq_is_true(i,1,2,n)+ fq_is_true(i,2,2,n)+ fq_is_true(i,3,2,n) +
157     $  fq_is_true(i,1,3,n)+ fq_is_true(i,2,3,n)+ fq_is_true(i,3,3,n) )
158         cld_fi3d(i,2)=
159     $ (fq_is_true(i,1,4,n)+ fq_is_true(i,2,4,n)+ fq_is_true(i,3,4,n) +
160     $  fq_is_true(i,1,5,n)+ fq_is_true(i,2,5,n)+ fq_is_true(i,3,5,n) )
161         cld_fi3d(i,3)=
162     $ (fq_is_true(i,1,6,n)+ fq_is_true(i,2,6,n)+ fq_is_true(i,3,6,n) +
163     $  fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) )
164        ENDDO   
[766]165cym        CALL gr_fi_ecrit(lmax3,klon,iim,jjmp1,cld_fi3d,cld_3d)
166        CALL histwrite_phy(nid_isccp,"thin",itau_w,cld_fi3d)
[684]167c
168        DO i=1, klon
169         cld_fi3d(i,1)=
170     $   (fq_is_true(i,4,1,n)+ fq_is_true(i,5,1,n) +
171     $    fq_is_true(i,4,2,n)+ fq_is_true(i,5,2,n) +
172     $    fq_is_true(i,4,3,n)+ fq_is_true(i,5,3,n) )
173         cld_fi3d(i,2)=
174     $   (fq_is_true(i,4,4,n)+ fq_is_true(i,5,4,n) +
175     $    fq_is_true(i,4,5,n)+ fq_is_true(i,5,5,n) )
176         cld_fi3d(i,3)=
177     $   (fq_is_true(i,4,6,n)+ fq_is_true(i,5,6,n) +
178     $    fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) )
179        ENDDO   
[766]180cym       CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
181        CALL histwrite_phy(nid_isccp,"mid",itau_w,cld_fi3d)
[684]182c
183        DO i=1, klon
184         cld_fi3d(i,1)=
185     $   (fq_is_true(i,6,1,n)+ fq_is_true(i,7,1,n) +
186     $    fq_is_true(i,6,2,n)+ fq_is_true(i,7,2,n) +
187     $    fq_is_true(i,6,3,n)+ fq_is_true(i,7,3,n) )
188         cld_fi3d(i,2)=
189     $   (fq_is_true(i,6,4,n)+ fq_is_true(i,7,4,n) +
190     $    fq_is_true(i,6,5,n)+ fq_is_true(i,7,5,n) )
191         cld_fi3d(i,3)=
192     $   (fq_is_true(i,6,6,n)+ fq_is_true(i,7,6,n) +
193     $    fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) )
194        ENDDO   
[766]195cym       CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
196        CALL histwrite_phy(nid_isccp,"thick",itau_w,cld_fi3d)
[684]197c
198        ENDDO ! n=1, napisccp
199c
[644]200       ENDIF
201c
[524]202       if (ok_sync) then
[766]203c$OMP MASTER
[524]204        call histsync(nid_isccp)
[766]205c$OMP END MASTER       
[524]206       endif
207
208      ENDIF !ok_isccp
Note: See TracBrowser for help on using the repository browser.