/[MITgcm]/MITgcm/pkg/fizhi/do_fizhi.F
ViewVC logotype

Diff of /MITgcm/pkg/fizhi/do_fizhi.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.18 by molod, Wed Jul 7 19:33:48 2004 UTC revision 1.19 by molod, Tue Jul 13 18:26:45 2004 UTC
# Line 3  C $Name$ Line 3  C $Name$
3  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
4         subroutine do_fizhi(myid,uphy,vphy,thphy,sphy,pephy,lons,lats,         subroutine do_fizhi(myid,uphy,vphy,thphy,sphy,pephy,lons,lats,
5       .   ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,       .   ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
6       .   tgz,sice,phis_var,landtype,fracland,emiss,albnidr,albnirdf,       .   tgz,sice,phis_var,landtype,fracland,emiss,albnirdr,albnirdf,
7       .   albvisdr,albvisdf,ityp,chfr,alai,agrn,igrd,chlat,chlon,       .   albvisdr,albvisdf,ityp,chfr,alai,agrn,igrd,chlat,chlon,
8       .   tcanopy,tdeep,ecanopy,swetshal,swetroot,swetdeep,snodep,capac,       .   tcanopy,tdeep,ecanopy,swetshal,swetroot,swetdeep,snodep,capac,
9       .   o3,qstr,co2,cfc11,cfc12,cfc22,n2o,methane,       .   o3,qstr,co2,cfc11,cfc12,cfc22,n2o,methane,
# Line 21  c Note: routine is called from inside a Line 21  c Note: routine is called from inside a
21  c  c
22  c-----------------------------------------------------------------------  c-----------------------------------------------------------------------
23        implicit none        implicit none
24    #include "chronos.h"
25    
26  C Argument list declarations  C Argument list declarations
27        integer myid,im1,im2,jm1,jm2,idim1,idim2,jdim1,jdim2        integer myid,im1,im2,jm1,jm2,idim1,idim2,jdim1,jdim2
28        integer Nrphys,Nsx,Nsy,bi,bj,nchp,nchpland,        integer Nrphys,Nsx,Nsy,bi,bj,nchp,nchpland
29        _RL uphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)        _RL uphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)
30        _RL vphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)        _RL vphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)
31        _RL thphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)        _RL thphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)
# Line 48  C Argument list declarations Line 49  C Argument list declarations
49        _RL tcanopy(nchp,Nsx,Nsy),tdeep(nchp,Nsx,Nsy)        _RL tcanopy(nchp,Nsx,Nsy),tdeep(nchp,Nsx,Nsy)
50        _RL ecanopy(nchp,Nsx,Nsy),swetshal(nchp,Nsx,Nsy)        _RL ecanopy(nchp,Nsx,Nsy),swetshal(nchp,Nsx,Nsy)
51        _RL swetroot(nchp,Nsx,Nsy),swetdeep(nchp,Nsx,Nsy)        _RL swetroot(nchp,Nsx,Nsy),swetdeep(nchp,Nsx,Nsy)
52        _RL snodep(nchp,Nsx,Nsy),capac(nchp,Nsx,Nsy),        _RL snodep(nchp,Nsx,Nsy),capac(nchp,Nsx,Nsy)
53        _RL o3(im2,jm2,Nsx,Nsy),qstr(im2,jm2,Nsx,Nsy)        _RL o3(im2,jm2,Nsx,Nsy),qstr(im2,jm2,Nsx,Nsy)
54        _RL co2,cfc11,cfc12,cfc22,n2o(Nrphys),methane(Nrphys)        _RL co2,cfc11,cfc12,cfc22,n2o(Nrphys),methane(Nrphys)
55        _RL duphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)        _RL duphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)
# Line 57  C Argument list declarations Line 58  C Argument list declarations
58        _RL dsphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)        _RL dsphy(idim1:idim2,jdim1:jdim2,Nrphys,Nsx,Nsy)
59  c  c
60        integer ptracer,ntracer        integer ptracer,ntracer
61          parameter (ptracer = 1)
62          parameter (ntracer = 1)
63        integer iras,nlwcld,nlwlz,nswcld,nswlz        integer iras,nlwcld,nlwlz,nswcld,nswlz
64        integer imstturbsw,imstturblw        integer imstturbsw,imstturblw
65    
# Line 70  c Line 73  c
73        real lwdt(im2,jm2,Nrphys,Nsx,Nsy),lwdtclr(im2,jm2,Nrphys,Nsx,Nsy)        real lwdt(im2,jm2,Nrphys,Nsx,Nsy),lwdtclr(im2,jm2,Nrphys,Nsx,Nsy)
74        real swdt(im2,jm2,Nrphys,Nsx,Nsy),swdtclr(im2,jm2,Nrphys,Nsx,Nsy)        real swdt(im2,jm2,Nrphys,Nsx,Nsy),swdtclr(im2,jm2,Nrphys,Nsx,Nsy)
75        real turbu(im2,jm2,Nrphys,Nsx,Nsy),turbv(im2,jm2,Nrphys,Nsx,Nsy)        real turbu(im2,jm2,Nrphys,Nsx,Nsy),turbv(im2,jm2,Nrphys,Nsx,Nsy)
76        real turbt(im2,jm2,Nrphys,Nsx,Nsy),turbq(im2,jm2,Nrphys,Nsx,Nsy)        real turbt(im2,jm2,Nrphys,Nsx,Nsy)
77          real turbq(im2,jm2,Nrphys,ntracer,Nsx,Nsy)
78        real moistu(im2,jm2,Nrphys,Nsx,Nsy),moistv(im2,jm2,Nrphys,Nsx,Nsy)        real moistu(im2,jm2,Nrphys,Nsx,Nsy),moistv(im2,jm2,Nrphys,Nsx,Nsy)
79        real moistt(im2,jm2,Nrphys,Nsx,Nsy),moistq(im2,jm2,Nrphys,Nsx,Nsy)        real moistt(im2,jm2,Nrphys,Nsx,Nsy)
80          real moistq(im2,jm2,Nrphys,ntracer,Nsx,Nsy)
81        real radswt(im2,jm2,Nsx,Nsy),radswg(im2,jm2,Nsx,Nsy)        real radswt(im2,jm2,Nsx,Nsy),radswg(im2,jm2,Nsx,Nsy)
82        real swgclr(im2,jm2,Nsx,Nsy)        real swgclr(im2,jm2,Nsx,Nsy)
83        real fdirpar(im2,jm2,Nsx,Nsy),fdifpar(im2,jm2,Nsx,Nsy)        real fdirpar(im2,jm2,Nsx,Nsy),fdifpar(im2,jm2,Nsx,Nsy)
84        real osr(im2,jm2,Nsx,Nsy),osrclr(im2,jm2,Nsx,Nsy)        real osr(im2,jm2,Nsx,Nsy),osrclr(im2,jm2,Nsx,Nsy)
85        real tg0(im2,jm2,Nsx,Nsy),radlwg(im2,jm2,Nsx,Nsy)        real tg0(im2,jm2,Nsx,Nsy),radlwg(im2,jm2,Nsx,Nsy)
86        real st4(im2,jm2,Nsx,Nsy)        real lwgclr(im2,jm2,Nsx,Nsy),st4(im2,jm2,Nsx,Nsy)
87        real dst4(im2,jm2,Nsx,Nsy),dlwdtg(im2,jm2,Nrphys,Nsx,Nsy)        real dst4(im2,jm2,Nsx,Nsy),dlwdtg(im2,jm2,Nrphys,Nsx,Nsy)
88        real rainlsp(im2,jm2,Nsx,Nsy),raincon(im2,jm2,Nsx,Nsy)        real rainlsp(im2,jm2,Nsx,Nsy),raincon(im2,jm2,Nsx,Nsy)
89        real snowfall(im2,jm2,Nsx,Nsy)        real snowfall(im2,jm2,Nsx,Nsy)
# Line 103  c Line 108  c
108        logical alarm        logical alarm
109        external alarm        external alarm
110    
111        save lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq  c     save lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq
112        save moistu,moistv,moistt,moistq  c     save moistu,moistv,moistt,moistq
113        save radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg  c     save radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg
114        save st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras  c     save st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras
115        save nlwcld,cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz  c     save nlwcld,cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz
116        save nswcld,cldtot_sw,clras_sw,cldlsp_sw,nswlz,swlz,  c     save nswcld,cldtot_sw,clras_sw,cldlsp_sw,nswlz,swlz,
117        save imstturbsw,imstturblw,qliqavesw,qliqavelw,fccavesw,fccavelw  c     save imstturbsw,imstturblw,qliqavesw,qliqavelw,fccavesw,fccavelw
118        save qq  c     save qq
119        save pl,ple,dpres,pkle,pkl  c     save pl,ple,dpres,pkle,pkl
120    
121  C***********************************************************************  C***********************************************************************
122  C Unshadow input arrays (and make 'fizhi theta' from true theta)  C Unshadow input arrays (and make 'fizhi theta' from true theta)
# Line 124  C*************************************** Line 129  C***************************************
129        call astro ( nymd,nhms, xlats,xlons, im2*jm2, cosz,ra )        call astro ( nymd,nhms, xlats,xlons, im2*jm2, cosz,ra )
130        do j=jm1,jm2        do j=jm1,jm2
131        do i=im1,im2        do i=im1,im2
132         radswt(i,j) = S0*(1.0/ra**2)*cosz(i,j)         radswt(i,j,bi,bj) = S0*(1.0/ra**2)*cosz(i,j)
133        enddo        enddo
134        enddo        enddo
135    
       ptracer = 1  
       ntracer = 1  
136    
137        if( alarm('moist') .or. alarm('turb')   .or.        if( alarm('moist') .or. alarm('turb')   .or.
138       .    alarm('radsw') .or. alarm('radlw') ) then       .    alarm('radsw') .or. alarm('radlw') ) then
# Line 152  C compute pressures - all pressure are c Line 155  C compute pressures - all pressure are c
155         v(i,j,L) = vphy(i,j,L,bi,bj)         v(i,j,L) = vphy(i,j,L,bi,bj)
156         t(i,j,L) = thphy(i,j,L,bi,bj)/p0kappa         t(i,j,L) = thphy(i,j,L,bi,bj)/p0kappa
157         q(i,j,L,1) = sphy(i,j,L,bi,bj)         q(i,j,L,1) = sphy(i,j,L,bi,bj)
158         pl(i,j,L,bi,bj) = (pephy(i,j,L,bi,bj)+pephy(i,j,L+1))/200.         pl(i,j,L,bi,bj) = (pephy(i,j,L,bi,bj)+pephy(i,j,L+1,bi,bj))/200.
159         dpres(i,j,L,bi,bj) = (pephy(i,j,L+1,bi,bj)-pephy(i,j,L))/100.         dpres(i,j,L,bi,bj)=(pephy(i,j,L+1,bi,bj)-pephy(i,j,L,bi,bj))/100.
160         ple(i,j,L,bi,bj) = pephy(i,j,L,bi,bj)/100.         ple(i,j,L,bi,bj) = pephy(i,j,L,bi,bj)/100.
161         pkle(i,j,L,bi,bj) = (ple(i,j,L) /100.) **kappa         pkle(i,j,L,bi,bj) = (ple(i,j,L,bi,bj) /100.) **kappa
162        enddo        enddo
163        enddo        enddo
164        enddo        enddo
# Line 166  C compute pressures - all pressure are c Line 169  C compute pressures - all pressure are c
169        call fizhi_driver(myid,im2,jm2,Nrphys,bi,bj,ptracer,ntracer,xlats,        call fizhi_driver(myid,im2,jm2,Nrphys,bi,bj,ptracer,ntracer,xlats,
170       . xlons,p(1,1,bi,bj),u,v,t,q,pl(1,1,1,bi,bj),ple(1,1,1,bi,bj),       . xlons,p(1,1,bi,bj),u,v,t,q,pl(1,1,1,bi,bj),ple(1,1,1,bi,bj),
171       . dpres(1,1,1,bi,bj),pkle(1,1,1,bi,bj),pkl(1,1,1,bi,bj),       . dpres(1,1,1,bi,bj),pkle(1,1,1,bi,bj),pkl(1,1,1,bi,bj),
172       . fracland(1,1,bi,bj),landtype(1,1,bi,bj),radswt,       . fracland(1,1,bi,bj),landtype(1,1,bi,bj),radswt(1,1,bi,bj),
173       . phis_var(1,1,bi,bj),tgz(1,1,bi,bj),sea_ice,       . phis_var(1,1,bi,bj),tgz(1,1,bi,bj),sea_ice,nchp,chlat(1,bi,bj),
174       . nchp,chlat(1,bi,bj),chlon(1,bi,bj),igrd(1,bi,bj),nchpland,       . chlon(1,bi,bj),igrd(1,bi,bj),nchpland,chfr(1,bi,bj),ityp(1,bi,bj)
175       . chfr(1,bi,bj),ityp(1,bi,bj),       . ,tcanopy(1,bi,bj),tdeep(1,bi,bj),ecanopy(1,bi,bj),
      . tcanopy(1,bi,bj),tdeep(1,bi,bj),ecanopy(1,bi,bj),  
176       . swetshal(1,bi,bj),swetroot(1,bi,bj),swetdeep(1,bi,bj),       . swetshal(1,bi,bj),swetroot(1,bi,bj),swetdeep(1,bi,bj),
177       . capac(1,bi,bj),snodep(1,bi,bj),       . capac(1,bi,bj),snodep(1,bi,bj),
178       . ctmt(1,bi,bj),xxmt(1,bi,bj),yymt(1,bi,bj),zetamt(1,bi,bj),       . ctmt(1,bi,bj),xxmt(1,bi,bj),yymt(1,bi,bj),zetamt(1,bi,bj),
179       . xlmt(1,1,bi,bj),khmt(1,1,bi,bj),tke(1,1,bi,bj),       . xlmt(1,1,bi,bj),khmt(1,1,bi,bj),tke(1,1,bi,bj),
180       . albvisdr(1,bi,bj),albvisdf(1,bi,bj),albnirdr(1,bi,bj),       . albvisdr(1,1,bi,bj),albvisdf(1,1,bi,bj),albnirdr(1,1,bi,bj),
181       . albnirdf(1,bi,bj),emiss(1,bi,bj),alai(1,bi,bj),agrn(1,bi,bj),       . albnirdf(1,1,bi,bj),emiss(1,1,1,bi,bj),alai(1,bi,bj),
182         . agrn(1,bi,bj),
183       . qstr(1,1,bi,bj),o3(1,1,bi,bj),co2,cfc11,cfc12,cfc22,methane,n2o,       . qstr(1,1,bi,bj),o3(1,1,bi,bj),co2,cfc11,cfc12,cfc22,methane,n2o,
184       . lwdt(1,1,1,bi,bj),lwdtclr(1,1,1,bi,bj),swdt(1,1,1,bi,bj),       . lwdt(1,1,1,bi,bj),lwdtclr(1,1,1,bi,bj),swdt(1,1,1,bi,bj),
185       . swdtclr(1,1,1,bi,bj),turbu(1,1,1,bi,bj),turbv(1,1,1,bi,bj),       . swdtclr(1,1,1,bi,bj),turbu(1,1,1,bi,bj),turbv(1,1,1,bi,bj),
186       . turbt(1,1,1,bi,bj),turbq(1,1,1,bi,bj),       . turbt(1,1,1,bi,bj),turbq(1,1,1,1,bi,bj),moistu(1,1,1,bi,bj),
187       . moistu(1,1,1,bi,bj),moistv(1,1,1,bi,bj),moistt(1,1,1,bi,bj),       . moistv(1,1,1,bi,bj),moistt(1,1,1,bi,bj),moistq(1,1,1,1,bi,bj),
      . moistq(1,1,1,bi,bj),  
188       . radswg(1,1,bi,bj),swgclr(1,1,bi,bj),fdirpar(1,1,bi,bj),       . radswg(1,1,bi,bj),swgclr(1,1,bi,bj),fdirpar(1,1,bi,bj),
189       . fdifpar(1,1,bi,bj),osr(1,1,bi,bj),osrclr(1,1,bi,bj),       . fdifpar(1,1,bi,bj),osr(1,1,bi,bj),osrclr(1,1,bi,bj),
190       . tg0(1,1,bi,bj),radlwg(1,1,bi,bj),       . tg0(1,1,bi,bj),radlwg(1,1,bi,bj),lwgclr(1,1,bi,bj),
191       . st4(1,1,bi,bj),dst4(1,1,bi,bj),dlwdtg(1,1,1,bi,bj),       . st4(1,1,bi,bj),dst4(1,1,bi,bj),dlwdtg(1,1,1,bi,bj),
192       . rainlsp(1,1,bi,bj),raincon(1,1,bi,bj),snowfall(1,1,bi,bj),iras,       . rainlsp(1,1,bi,bj),raincon(1,1,bi,bj),snowfall(1,1,bi,bj),iras,
193       . nlwcld,cldtot_lw(1,1,1,bi,bj),clras_lw(1,1,1,bi,bj),       . nlwcld,cldtot_lw(1,1,1,bi,bj),clras_lw(1,1,1,bi,bj),
# Line 213  C compute pressures - all pressure are c Line 215  C compute pressures - all pressure are c
215        enddo        enddo
216        enddo        enddo
217    
218        call fizhi_step_diag(myThid,p,uphy,vphy,thphy,sphy,qq,pkl,dpres,        call fizhi_step_diag(myid,p,uphy,vphy,thphy,sphy,qq,pkl,dpres,
219       .  radswt,radswg,swgclr,osr,osrclr,st4,dst4,tgz,tg0,radlwg,lwgclr,       .  radswt,radswg,swgclr,osr,osrclr,st4,dst4,tgz,tg0,radlwg,lwgclr,
220       .  turbu,turbv,turbt,turbq,moistu,moistv,moistt,moistq,       .  turbu,turbv,turbt,turbq,moistu,moistv,moistt,moistq,
221       .  lwdt,swdt,lwdtclr,swdtclr,im1,im2,jm1,jm2,Nrphys,Nsx,Nsy,bi,bj)       .  lwdt,swdt,lwdtclr,swdtclr,im1,im2,jm1,jm2,Nrphys,Nsx,Nsy,bi,bj)

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

  ViewVC Help
Powered by ViewVC 1.1.22