source: lmdz_wrf/WRFV3/lmdz/write_histday_seri.h @ 1

Last change on this file since 1 was 1, checked in by lfita, 10 years ago
  • -- --- Opening of the WRF+LMDZ coupling repository --- -- -

WRF: version v3.3
LMDZ: version v1818

More details in:

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