source: LMDZ4/branches/pre_V3/libf/phylmd/write_histday_seri.h @ 2477

Last change on this file since 2477 was 644, checked in by Laurent Fairhead, 19 years ago

Synchronisation avec tous les diagnostiques de Ionela IM
Inclusion du slab ocean IM
LF

  • 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.