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

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

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

revision 1.3 by molod, Thu Jun 17 16:07:06 2004 UTC revision 1.9 by molod, Thu Jul 8 20:24:08 2004 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3                                                                                                                                                                    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5        subroutine fizhi_driver (myid,im,jm,lm,ptracer,ntracer,        subroutine fizhi_driver (myid,im,jm,lm,bi,bj,ptracer,ntracer,
6       . xlats,xlons,       . xlats,xlons,
7       . p,u,v,t,q,pl,ple,dpres,pkht,pkl,fracland,landtype,radswt,       . p,u,v,t,q,pl,ple,dpres,pkht,pkl,fracland,landtype,radswt,
8       . phis_var,tgz,sea_ice,       . phis_var,tgz,sea_ice,
# Line 13  C $Name$ Line 13  C $Name$
13       . chemq,chemo3,co2,cfc11,cfc12,cfc22,methane,n2o,       . chemq,chemo3,co2,cfc11,cfc12,cfc22,methane,n2o,
14       . lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq,       . lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq,
15       . moistu,moistv,moistt,moistq,       . moistu,moistv,moistt,moistq,
16       . radswg,swgclr,albedo,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,       . radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,
17       . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,       . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,
18       . cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,       . cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19       . clras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,       . clras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,
20       . qliqavelw,fccavesw,fccavelw,qq,u2m,v2m,t2m,q2m,u10m,v10m,t10m,       . qliqavelw,fccavesw,fccavelw,qq)
      . q10m,gwet,snow)  
21  C***********************************************************************          C***********************************************************************        
22  C  Purpose                                                                        C  Purpose                                                                      
23  C  -------                                                                        C  -------                                                                      
# Line 47  c ------------- Line 46  c -------------
46    
47  c Input Parameters  c Input Parameters
48  c ----------------  c ----------------
49        integer myid,im,jm,lm,ptracer,ntracer        integer myid,im,jm,lm,bi,bj,ptracer,ntracer
50        integer nchp,chlat,chlon,igrd,nchpland,chfr,ityp        integer nchp,igrd(nchp),nchpland,ityp(nchp)
       integer nwatlevs,nwatlats  
       integer nozolevs,nozolats  
51        integer iras,nlwcld,nlwlz,nswcld,nswlz        integer iras,nlwcld,nlwlz,nswcld,nswlz
52        integer imstturbsw,imstturblw        integer imstturbsw,imstturblw
53    
# Line 59  c ---------------- Line 56  c ----------------
56        real u(im,jm,lm), v(im,jm,lm), t(im,jm,lm)        real u(im,jm,lm), v(im,jm,lm), t(im,jm,lm)
57        real q(im,jm,lm,ntracer)        real q(im,jm,lm,ntracer)
58        real pl(im,jm,lm),ple(im,jm,lm+1),dpres(im,jm,lm),pkht(im,jm,lm)        real pl(im,jm,lm),ple(im,jm,lm+1),dpres(im,jm,lm),pkht(im,jm,lm)
59          real pkl(im,jm,lm)
60        real radswt(im,jm), fracland(im,jm), landtype(im,jm)        real radswt(im,jm), fracland(im,jm), landtype(im,jm)
61        real phis_var(im,jm), sea_ice(im,jm)        real phis_var(im,jm), sea_ice(im,jm)
62          real chlat(nchp),chlon(nchp),chfr(nchp)
63        real tcanopy(nchp),tdeep(nchp),ecanopy(nchp),swetshal(nchp)        real tcanopy(nchp),tdeep(nchp),ecanopy(nchp),swetshal(nchp)
64        real swetroot(nchp),swetdeep(nchp),capac(nchp),snodep(nchp)        real swetroot(nchp),swetdeep(nchp),capac(nchp),snodep(nchp)
65        real ctmt(nchp),xxmt(nchp),yymt(nchp),zetamt(nchp)        real ctmt(nchp),xxmt(nchp),yymt(nchp),zetamt(nchp)
66        real xlmt(nchp,lm),khmt(nchp,lm),tke(nchp,lm)        real xlmt(nchp,lm),khmt(nchp,lm),tke(nchp,lm)
       real stratq(nwatlats,nwatlevs )  
       real watlats(nwatlats)  
       real watlevs(nwatlevs)  
       real ozone(nozolats,nozolevs)  
       real ozolevs(nozolevs),ozolats(nozlats)  
67        real co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)        real co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)
68        real lwdt(im,jm,lm),lwdtclr(im,jm,lm)        real lwdt(im,jm,lm),lwdtclr(im,jm,lm)
69        real swdt(im,jm,lm),swdtclr(im,jm,lm)        real swdt(im,jm,lm),swdtclr(im,jm,lm)
# Line 81  c ---------------- Line 75  c ----------------
75        real albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)        real albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)
76        real albnirdf(im,jm),emiss(im,jm)        real albnirdf(im,jm),emiss(im,jm)
77        real alai(nchp),agrn(nchp)        real alai(nchp),agrn(nchp)
78        real radswg(im,jm),swgclr(im,jm),albedo(im,jm)        real radswg(im,jm),swgclr(im,jm)
79        real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)        real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
80        real tg0(im,jm),radlwg(im,jm),st4(im,jm),dst4(im,jm)        real tg0(im,jm),radlwg(im,jm),st4(im,jm),dst4(im,jm)
81        real dlwdtg(im,jm,lm)        real dlwdtg(im,jm,lm)
# Line 93  c ---------------- Line 87  c ----------------
87        real qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)        real qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)
88        real fccavesw(im,jm,lm),fccavelw(im,jm,lm)        real fccavesw(im,jm,lm),fccavelw(im,jm,lm)
89        real qq(im,jm,lm)        real qq(im,jm,lm)
90        real u2m(im,jm),v2m(im,jm),t2m(im,jm),q2m(im,jm),u10m(im,jm)        real tgz(im,jm)
       real v10m(im,jm),t10m(im,jm),q10m(im,jm),tgz(im,jm)  
       real gwet(im,jm),snow(im,jm)  
91    
92  c Local Variables  c Local Variables
93  c ---------------  c ---------------
94        logical     alarm        logical     alarm
95        external    alarm        external    alarm
96          integer numpcheck
97          parameter (numpcheck = 5)
98          integer pchecklevs(numpcheck)
99          real pcheckpress(numpcheck)
100          data pcheckpress/950.,750.,700.,400.,10./
101    
102          integer low_level,mid_level,nltop,nsubmin,nsubmax,Lup
103        integer ndmoist,ndturb,ndlw,ndsw        integer ndmoist,ndturb,ndlw,ndsw
104        integer istrip,npcs        integer istrip,npcs
105        integer i,j,L,n        integer i,j,L,n
# Line 127  C ************************************** Line 125  C **************************************
125        call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )        call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
126        lpnt = ndpnt.ne.0        lpnt = ndpnt.ne.0
127    
128  C Compute pl,ple,pkht,pkl,dpres   and pcheck for use by mini-drivers  C Fill array of model levels closest to a given pressure value
129    
130  C Make 'model theta' out of theta, ie, divide by p0**kappa        call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)
131          low_level = pchecklevs(3)
132          mid_level = pchecklevs(4)
133          nltop = pchecklevs(5)
134          nsubmin = pchecklevs(1)
135          nsubmax = pchecklevs(2)
136          Lup = pchecklevs(3)
137    
138  C **********************************************************************          C **********************************************************************        
139  C ****                  Call Physics Mini-Drivers                   ****          C ****                  Call Physics Mini-Drivers                   ****        
# Line 139  C SHORT WAVE RADIATION Line 143  C SHORT WAVE RADIATION
143  C ====================  C ====================
144        IF ( alarm('radsw') ) THEN        IF ( alarm('radsw') ) THEN
145    
146        call swrio ( nymd,nhms,ndsw,myid,istrip,npcs,        call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
147         .   low_level,mid_level,
148       .   p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,       .   p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
149       .   albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,       .   albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
150       .   radswg,swgclr,albedo,fdifpar,fdirpar,osr,osrclr,im,jm,lm,       .   radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
151       .   ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,       .   ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
152       .   .false.,imstturbsw,qliqavesw,       .   .false.,imstturbsw,qliqavesw,
153       .   fccavesw,landtype,xlats,xlons )       .   fccavesw,landtype,xlats,xlons )
# Line 161  c -------------------------------- Line 166  c --------------------------------
166        enddo        enddo
167        enddo        enddo
168    
169        call lwrio ( nymd,nhms,istrip,npcs,        call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
170         .   low_level,mid_level,
171       .   p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,       .   p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,
172       .   cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,       .   cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
173       .   lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,       .   lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,
# Line 175  C TURBULENCE Line 181  C TURBULENCE
181  C ==========  C ==========
182        IF ( alarm('turb') ) THEN        IF ( alarm('turb') ) THEN
183    
184        call turbio (im,jm,lm,1,nymd,nhms,ndturb,        call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
185       .   ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,       .   ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,
186       .   ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,       .   ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
187       .   tgz,gwet,snow,fracland,landtype,       .   tgz,fracland,landtype,
188       .   tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,       .   tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
189       .   nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,       .   nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
190       .   turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,       .   turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
191       .   fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,       .   fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,
192       .   imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,       .   imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
193       .   u2m ,v2m ,t2m ,q2m,u10m,v10m,t10m,q10m,myid,comm )       .   myid,comm )
194    
195  c Add Gravity-Wave Drag Tendency  c Add Gravity-Wave Drag Tendency
196  c ------------------------------  c ------------------------------
# Line 201  C MOIST PROCESSES Line 207  C MOIST PROCESSES
207  C ===============  C ===============
208        if ( alarm('moist') ) then        if ( alarm('moist') ) then
209        call moistio (ndmoist,istrip,npcs,        call moistio (ndmoist,istrip,npcs,
210       .    p,pl,ple,dpres,pkht,pkl,t,q,ntracer,ptracer,qq,       .    low_level,mid_level,nltop,nsubmin,nsubmax,Lup,
211         .    p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
212       .    moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,       .    moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
213       .    rainlsp,rainconv,snowfall,       .    rainlsp,rainconv,snowfall,
214       .    nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,       .    nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22