source: LMDZ4/tags/LMDZ4_V2/libf/phylmd/write_histday_seri.h @ 3302

Last change on this file since 3302 was 741, checked in by (none), 18 years ago

This commit was manufactured by cvs2svn to create tag 'LMDZ4_V2'.

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