source: LMDZ4/trunk/libf/phylmd/write_histday_seri.h @ 777

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

Suite du merge entre la version et la HEAD: quelques modifications
de Yann sur le

LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.9 KB
Line 
1c
2c $Header$
3c
4      IF (is_sequential) THEN
5     
6      IF (monocpu) THEN
7     
8      IF (type_run.EQ."AMIP") THEN
9c
10      ndex2d = 0
11      itau_w = itau_phy + itap
12c
13c Champs 2D:
14c
15      pi = ACOS(-1.)
16      pir = 4.0*ATAN(1.0) / 180.0
17c
18      DO i=1, klon
19       zx_tmp_fi2d(i)=(topsw(i)-toplw(i))
20      ENDDO
21c
22      ok_msk=.FALSE.
23      msk(1:klon)=pctsrf(1:klon,is_ter)
24      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
25     .     ok_msk, msk, moyglo)
26      zx_tmp_fi2d(1:klon)=moyglo
27c
28      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
29      CALL histwrite(nid_day_seri,"bilTOA",itau_w,
30     .               zx_tmp_2d,iim*jjmp1,ndex2d)
31c
32      ok_msk=.FALSE.
33      CALL moyglo_pondaire(klon, bils, airephy, 
34     .     ok_msk, msk, moyglo)
35      zx_tmp_fi2d(1:klon)=moyglo
36c
37      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
38      CALL histwrite(nid_day_seri,"bils",itau_w,
39     .               zx_tmp_2d,iim*jjmp1,ndex2d)
40c
41      DO k=1, klev
42      DO i=1, klon
43cIM 080904    zx_tmp_fi3d(i,k)=u(i,k)**2+v(i,k)**2
44       zx_tmp_fi3d(i,k)=(u(i,k)**2+v(i,k)**2)/2.
45      ENDDO
46      ENDDO
47c
48      CALL moyglo_pondaima(klon, klev, zx_tmp_fi3d, 
49     .     airephy, paprs, moyglo)
50      zx_tmp_fi2d(1:klon)=moyglo
51c
52      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
53      CALL histwrite(nid_day_seri,"ecin",itau_w,
54     .               zx_tmp_2d,iim*jjmp1,ndex2d) 
55c
56cIM 151004 BEG
57      IF(1.EQ.0) THEN
58c
59      DO k=1, klev
60      DO i=1, klon
61       zx_tmp_fi3d(i,k)=u_seri(i,k)*RA*cos(pir* rlat(i))
62      ENDDO
63      ENDDO
64c
65      CALL moyglo_pondaima(klon, klev, zx_tmp_fi3d, 
66     .     airephy, paprs, moyglo)
67      zx_tmp_fi2d(1:klon)=moyglo
68c
69      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
70      CALL histwrite(nid_day_seri,"momang",itau_w,zx_tmp_2d,
71     .               iim*jjmp1,ndex2d)
72c
73c friction torque
74c
75      DO i=1, klon
76       zx_tmp_fi2d(i)=zxfluxu(i,1)*RA* cos(pir* rlat(i))
77      ENDDO
78c
79      ok_msk=.FALSE.
80      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
81     .     ok_msk, msk, moyglo)
82      zx_tmp_fi2d(1:klon)=moyglo
83c
84      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
85      CALL histwrite(nid_day_seri,"frictor",itau_w,zx_tmp_2d,
86     .               iim*jjmp1,ndex2d)
87c
88c mountain torque
89c
90cIM 190504 BEG
91      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,airephy,airedyn)
92      CALL gr_fi_dyn(klev+1,klon,iim+1,jjm+1,paprs,padyn)
93      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,rlat,rlatdyn)
94      mountor=0.
95      airetot=0.
96      DO j = 1, jjmp1
97       DO i = 1, iim+1
98        ij=i+(iim+1)*(j-1)
99        zx_tmp(ij)=0.
100        DO k = 1, klev
101         zx_tmp(ij)=zx_tmp(ij)+dudyn(i,j,k)*airedyn(i,j)*
102     $              (padyn(i,j,k+1)-padyn(i,j,k))/RG
103         airetot=airetot+airedyn(i,j)
104        ENDDO
105cIM 190504 mountor=mountor+zx_tmp(ij)*airedyn(i,j)*RA*
106        mountor=mountor+zx_tmp(ij)*RA*
107     $           cos(pir* rlatdyn(i,j))
108       ENDDO
109      ENDDO
110cIM 151004 BEG
111      IF(itap.EQ.1) PRINT*,'airetot=',airetot,airetot/klev
112cIM 151004 END
113cIM 190504      mountor=mountor/(airetot*airetot)
114      mountor=mountor/airetot
115c
116cIM 190504 END
117      zx_tmp_2d(1:iim,1:jjmp1)=mountor
118      CALL histwrite(nid_day_seri,"mountor",itau_w,zx_tmp_2d,
119     .               iim*jjmp1,ndex2d)
120c
121      ENDIF !(1.EQ.0) THEN
122c
123c
124      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,airephy,airedyn)
125      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
126      airetot=0.
127c     DO j = 1, jjmp1
128c      DO i = 1, iim+1
129c       ij=i+(iim+1)*(j-1)
130c       DO k = 1, klev
131c        airetot=airetot+airedyn(i,j)
132c        airetot=airetot+airedyn(i,j)
133c       ENDDO !k
134c      ENDDO !i
135c     ENDDO !j
136c
137      DO i=1, klon
138       airetot=airetot+airephy(i)
139      ENDDO
140c     IF(itap.EQ.1) PRINT*,'airetotphy=',airetot
141c
142      airetot=0.
143      DO j=1, jjmp1
144       DO i=1, iim
145        airetot=airetot+zx_tmp_2d(i,j)
146       ENDDO
147      ENDDO
148c
149c     IF(itap.EQ.1) PRINT*,'airetotij=',airetot,
150c    $ '4piR2',4.*pi*RA*RA
151c
152      zx_tmp_fi2d(1:klon)=aam/airetot
153      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
154      CALL histwrite(nid_day_seri,"momang",itau_w,zx_tmp_2d,
155     .               iim*jjmp1,ndex2d)
156c
157      zx_tmp_fi2d(1:klon)=torsfc/airetot
158      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
159      CALL histwrite(nid_day_seri,"torsfc",itau_w,zx_tmp_2d,
160     .               iim*jjmp1,ndex2d)
161c
162cIM 151004 END
163c
164      CALL moyglo_pondmass(klon, klev, t_seri,
165     .     airephy, paprs, moyglo)
166      zx_tmp_fi2d(1:klon)=moyglo
167c
168      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
169      CALL histwrite(nid_day_seri,"tamv",itau_w,
170     .               zx_tmp_2d,iim*jjmp1,ndex2d)
171c
172      ok_msk=.FALSE.
173      CALL moyglo_pondaire(klon, paprs(:,1), airephy, 
174     .     ok_msk, msk, moyglo)
175      zx_tmp_fi2d(1:klon)=moyglo
176c
177      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
178      CALL histwrite(nid_day_seri,"psol",itau_w,
179     .               zx_tmp_2d,iim*jjmp1,ndex2d)
180c
181      ok_msk=.FALSE.
182      CALL moyglo_pondaire(klon, evap, airephy, 
183     .     ok_msk, msk, moyglo)
184      zx_tmp_fi2d(1:klon)=moyglo
185c
186      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
187      CALL histwrite(nid_day_seri,"evap",itau_w,
188     .               zx_tmp_2d,iim*jjmp1,ndex2d)
189c
190c     DO i=1, klon
191c      zx_tmp_fi2d(i)=SnowFrac(i,is_ter)
192c     ENDDO
193c
194c     ok_msk=.TRUE.
195c     msk(1:klon)=pctsrf_new(1:klon,is_ter)
196c     CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
197c    .                     ok_msk, msk, moyglo)
198c     zx_tmp_fi2d(1:klon)=moyglo
199c
200c     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
201c     CALL histwrite(nid_day_seri,"SnowFrac",
202c    .               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 
203c
204c     DO i=1, klon
205cIM 080904    zx_tmp_fi2d(i)=zsnow_mass(i)/330.*rowl
206c      zx_tmp_fi2d(i)=zsnow_mass(i)
207c     ENDDO
208c
209cIM 140904   ok_msk=.FALSE.
210c     ok_msk=.TRUE.
211c     msk(1:klon)=pctsrf(1:klon,is_ter)
212c     CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
213c    .     ok_msk, msk, moyglo)
214c     zx_tmp_fi2d(1:klon)=moyglo
215c
216c     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
217c     CALL histwrite(nid_day_seri,"snow_depth",itau_w,
218c    .               zx_tmp_2d,iim*jjmp1,ndex2d)
219c
220      DO i=1, klon
221       zx_tmp_fi2d(i)=ftsol(i,is_oce)
222      ENDDO
223c
224      ok_msk=.TRUE.
225      msk(1:klon)=pctsrf(1:klon,is_oce)
226      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
227     .     ok_msk, msk, moyglo)
228      zx_tmp_fi2d(1:klon)=moyglo
229c
230      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
231      CALL histwrite(nid_day_seri,"tsol_"//clnsurf(is_oce),
232     $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 
233c
234c=================================================================
235c=================================================================
236c=================================================================
237c
238      if (ok_sync) then
239        call histsync(nid_day_seri)
240      endif
241c
242      ENDIF !fin test sur type_run.EQ."AMIP"
243     
244      ENDIF  ! mono_cpu
Note: See TracBrowser for help on using the repository browser.