source: LMDZ5/trunk/libf/phylmd/write_histday_seri.h @ 2405

Last change on this file since 2405 was 2399, checked in by Ehouarn Millour, 9 years ago

Follow-up from commit 2395: get rid of rlon and rlat, longitude_deg and latitude_deg (from module geometry_mod) should be used instead. Longitudes and latitudes are no longer loaded from startphy.nc but inherited from dynamics (and compatibility with values in startphy.nc is checked). This will change bench results because of roundoffs differences between the two.
EM

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