source: dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/write_histday_seri.h @ 3819

Last change on this file since 3819 was 3819, checked in by ymipsl, 10 years ago

Removed all iim et jjm depedency. Replaced by nbp_lon and nbp_lat.
Supress gr_fi_ecrit, replaced by grid1dTo2d_glo

YM

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