/[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.9 by molod, Thu Jul 8 20:24:08 2004 UTC revision 1.20 by molod, Thu Jul 29 22:49:34 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3                                                                                                                                                                    
4  #include "CPP_OPTIONS.h"  #include "FIZHI_OPTIONS.h"
5        subroutine fizhi_driver (myid,im,jm,lm,bi,bj,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,
9       . nchp,chlat,chlon,igrd,nchpland,chfr,ityp,       . nchp,chlat,chlon,igrd,nchptot,nchpland,chfr,ityp,
10       . tcanopy,tdeep,ecanopy,swetshal,swetroot,swetdeep,capac,snodep,       . tcanopy,tdeep,ecanopy,swetshal,swetroot,swetdeep,capac,snodep,
11       . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,       . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
12       . albvisdr,albvisdf,albnirdr,albnirdf,emiss,alai,agrn,       . albvisdr,albvisdf,albnirdr,albnirdf,emiss,alai,agrn,
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,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,       . radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,lwgclr,
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,cldras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19       . clras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,       . cldras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,
20       . qliqavelw,fccavesw,fccavelw,qq)       . qliqavelw,fccavesw,fccavelw,qq)
21  C***********************************************************************          C***********************************************************************        
22  C  Purpose                                                                        C  Purpose                                                                      
# Line 37  C*************************************** Line 37  C***************************************
37  c Diagnostic Common  c Diagnostic Common
38  c -----------------  c -----------------
39  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
40  #include 'diagnostics.h'  #include "SIZE.h"
41    #include "diagnostics_SIZE.h"
42    #include "diagnostics.h"
43  #endif  #endif
44    
45  c Timers Common  c Timers Common
46  c -------------  c -------------
47  #include 'chronos.h'  #include "chronos.h"
48    
49  c Input Parameters  c Input Parameters
50  c ----------------  c ----------------
51        integer myid,im,jm,lm,bi,bj,ptracer,ntracer        integer myid,im,jm,lm,bi,bj,ptracer,ntracer
52        integer nchp,igrd(nchp),nchpland,ityp(nchp)        integer nchp,igrd(nchp),nchptot,nchpland,ityp(nchp)
53        integer iras,nlwcld,nlwlz,nswcld,nswlz        integer iras,nlwcld,nlwlz,nswcld,nswlz
54        integer imstturbsw,imstturblw        integer imstturbsw,imstturblw
55    
56        real xlats(im,jm), xlons(im,jm)        _RL xlats(im,jm), xlons(im,jm)
57        real p(im,jm)        _RL p(im,jm)
58        real u(im,jm,lm), v(im,jm,lm), t(im,jm,lm)        _RL u(im,jm,lm),v(im,jm,lm),t(im,jm,lm)
59        real q(im,jm,lm,ntracer)        _RL q(im,jm,lm,ntracer)
60        real pl(im,jm,lm),ple(im,jm,lm+1),dpres(im,jm,lm),pkht(im,jm,lm)        _RL pl(im,jm,lm),ple(im,jm,lm+1),dpres(im,jm,lm)
61        real pkl(im,jm,lm)        _RL pkht(im,jm,lm)
62        real radswt(im,jm), fracland(im,jm), landtype(im,jm)        _RL pkl(im,jm,lm)
63        real phis_var(im,jm), sea_ice(im,jm)        _RL radswt(im,jm), fracland(im,jm)
64        real chlat(nchp),chlon(nchp),chfr(nchp)        integer landtype(im,jm)
65        real tcanopy(nchp),tdeep(nchp),ecanopy(nchp),swetshal(nchp)        _RL phis_var(im,jm), sea_ice(im,jm)
66        real swetroot(nchp),swetdeep(nchp),capac(nchp),snodep(nchp)        _RL chlat(nchp),chlon(nchp),chfr(nchp)
67        real ctmt(nchp),xxmt(nchp),yymt(nchp),zetamt(nchp)        _RL tcanopy(nchp),tdeep(nchp),ecanopy(nchp),swetshal(nchp)
68        real xlmt(nchp,lm),khmt(nchp,lm),tke(nchp,lm)        _RL swetroot(nchp),swetdeep(nchp),capac(nchp),snodep(nchp)
69        real co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)        _RL ctmt(nchp),xxmt(nchp),yymt(nchp),zetamt(nchp)
70        real lwdt(im,jm,lm),lwdtclr(im,jm,lm)        _RL xlmt(nchp,lm),khmt(nchp,lm),tke(nchp,lm)
71        real swdt(im,jm,lm),swdtclr(im,jm,lm)        _RL co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)
72        real turbu(im,jm,lm),turbv(im,jm,lm),turbt(im,jm,lm)        _RL lwdt(im,jm,lm),lwdtclr(im,jm,lm)
73        real turbq(im,jm,lm)        _RL swdt(im,jm,lm),swdtclr(im,jm,lm)
74        real moistu(im,jm,lm),moistv(im,jm,lm),moistt(im,jm,lm)        _RL turbu(im,jm,lm),turbv(im,jm,lm),turbt(im,jm,lm)
75        real moistq(im,jm,lm)        _RL turbq(im,jm,lm)
76        real chemo3(im,jm,lm),chemq(im,jm,lm)        _RL moistu(im,jm,lm),moistv(im,jm,lm),moistt(im,jm,lm)
77        real albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)        _RL moistq(im,jm,lm)
78        real albnirdf(im,jm),emiss(im,jm)        _RL chemo3(im,jm,lm),chemq(im,jm,lm)
79        real alai(nchp),agrn(nchp)        _RL albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)
80        real radswg(im,jm),swgclr(im,jm)        _RL albnirdf(im,jm),emiss(im,jm)
81        real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)        _RL alai(nchp),agrn(nchp)
82        real tg0(im,jm),radlwg(im,jm),st4(im,jm),dst4(im,jm)        _RL radswg(im,jm),swgclr(im,jm)
83        real dlwdtg(im,jm,lm)        _RL fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
84        real rainlsp(im,jm),raincon(im,jm),snowfall(im,jm)        _RL tg0(im,jm),radlwg(im,jm),lwgclr(im,jm),st4(im,jm)
85        real cldtot_lw(im,jm,lm),clras_lw(im,jm,lm),cldlsp_lw(im,jm,lm)        _RL dst4(im,jm)
86        real lwlz(im,jm,lm)        _RL dlwdtg(im,jm,lm)
87        real cldtot_sw(im,jm,lm),clras_sw(im,jm,lm),cldlsp_sw(im,jm,lm)        _RL rainlsp(im,jm),raincon(im,jm),snowfall(im,jm)
88        real swlz(im,jm,lm)        _RL cldtot_lw(im,jm,lm),cldras_lw(im,jm,lm)
89        real qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)        _RL cldlsp_lw(im,jm,lm)
90        real fccavesw(im,jm,lm),fccavelw(im,jm,lm)        _RL lwlz(im,jm,lm)
91        real qq(im,jm,lm)        _RL cldtot_sw(im,jm,lm),cldras_sw(im,jm,lm)
92        real tgz(im,jm)        _RL cldlsp_sw(im,jm,lm)
93          _RL swlz(im,jm,lm)
94          _RL qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)
95          _RL fccavesw(im,jm,lm),fccavelw(im,jm,lm)
96          _RL qq(im,jm,lm)
97          _RL tgz(im,jm)
98    
99  c Local Variables  c Local Variables
100  c ---------------  c ---------------
# Line 96  c --------------- Line 103  c ---------------
103        integer numpcheck        integer numpcheck
104        parameter (numpcheck = 5)        parameter (numpcheck = 5)
105        integer pchecklevs(numpcheck)        integer pchecklevs(numpcheck)
106        real pcheckpress(numpcheck)        _RL pcheckpress(numpcheck)
107        data pcheckpress/950.,750.,700.,400.,10./        data pcheckpress/950.,750.,700.,400.,10./
108    
109        integer low_level,mid_level,nltop,nsubmin,nsubmax,Lup        integer low_level,mid_level,nltop,nsubmin,nsubmax,Lup
110        integer ndmoist,ndturb,ndlw,ndsw        integer ndmoist,ndturb,ndlw,ndsw
111        integer istrip,npcs        integer istrip,npcs
112        integer i,j,L,n        integer i,j,L
113        integer ndum,ndpnt        integer ndum,ndpnt
114        real dum,akap,getcon        _RL akap,getcon
115        real ptop        _RL ptop
116        logical lpnt        logical lpnt
117    
118        istrip = min( im*jm,71 )        _RL tempij(im,jm)
119        npcs   = ((im*jm-1)/istrip) + 1  
120          istrip = im*jm
121          npcs   = 1
122    
123        ptop   =  0.        ptop   =  0.
124        akap = getcon('KAPPA')        akap = getcon('KAPPA')
# Line 128  C ************************************** Line 137  C **************************************
137  C Fill array of model levels closest to a given pressure value  C Fill array of model levels closest to a given pressure value
138    
139        call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)        call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)
140    
141        low_level = pchecklevs(3)        low_level = pchecklevs(3)
142        mid_level = pchecklevs(4)        mid_level = pchecklevs(4)
143        nltop = pchecklevs(5)        nltop = pchecklevs(5)
# Line 138  C Fill array of model levels closest to Line 148  C Fill array of model levels closest to
148  C **********************************************************************          C **********************************************************************        
149  C ****                  Call Physics Mini-Drivers                   ****          C ****                  Call Physics Mini-Drivers                   ****        
150  C **********************************************************************          C **********************************************************************        
151                                                                                    
152  C SHORT WAVE RADIATION  C SHORT WAVE RADIATION
153  C ====================  C ====================
154        IF ( alarm('radsw') ) THEN        IF ( alarm('radsw') ) THEN
155          print *,' Time to do sw '
156    
157        call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,        call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
158       .   low_level,mid_level,       .   low_level,mid_level,im,jm,lm,
159       .   p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,       .   p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
160       .   albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,       .   albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
161       .   radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,       .   radswg,swgclr,fdifpar,fdirpar,osr,osrclr,
162       .   ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,       .   ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
163       .   .false.,imstturbsw,qliqavesw,       .   .false.,imstturbsw,qliqavesw,
164       .   fccavesw,landtype,xlats,xlons )       .   fccavesw,landtype,xlats,xlons )
# Line 157  C ==================== Line 168  C ====================
168  C LONG WAVE RADIATION  C LONG WAVE RADIATION
169  C ===================  C ===================
170        IF ( alarm('radlw') ) THEN        IF ( alarm('radlw') ) THEN
171          print *,' Time to do lw '
172    
173  c Set Reference Ground Temperature  c Set Reference Ground Temperature
174  c --------------------------------  c --------------------------------
# Line 167  c -------------------------------- Line 179  c --------------------------------
179        enddo        enddo
180    
181        call lwrio ( nymd,nhms,bi,bj,istrip,npcs,        call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
182       .   low_level,mid_level,       .   low_level,mid_level,im,jm,lm,
183       .   p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,       .   p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
184       .   cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,       .   cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
185       .   lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,       .   lwdt,dlwdtg,lwdtclr,lwgclr,ptop,
186       .   nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,       .   nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,
187       .   .false.,imstturblw,qliqavelw,       .   .false.,imstturblw,qliqavelw,
188       .   fccavelw,landtype )       .   fccavelw,landtype )
189    
190        ENDIF        ENDIF
191                                                                                    
192  C TURBULENCE  C TURBULENCE
193  C ==========  C ==========
194        IF ( alarm('turb') ) THEN        IF ( alarm('turb') ) THEN
195    
196          print *,' Time to do turb '
197          if(bi.eq.1 .and. 2.eq.1)then
198          print *,' In fizhi driver, before turb - bi = ',bi
199          do j = 1,jm
200          do i = 1,im
201           tempij(i,j) = radswt(i,j)
202          enddo
203          enddo
204          print *,' radswt ',tempij
205          do j = 1,jm
206          do i = 1,im
207           tempij(i,j) = radswg(i,j)
208          enddo
209          enddo
210          print *,' radswg ',tempij
211          do j = 1,jm
212          do i = 1,im
213           tempij(i,j) = st4(i,j)
214          enddo
215          enddo
216          print *,' st4 ',tempij
217          do j = 1,jm
218          do i = 1,im
219           tempij(i,j) = dst4(i,j)
220          enddo
221          enddo
222          print *,' dst4 ',tempij
223          do j = 1,jm
224          do i = 1,im
225           tempij(i,j) = radlwg(i,j)
226          enddo
227          enddo
228          print *,' radlwg ',tempij
229          do j = 1,jm
230          do i = 1,im
231           tempij(i,j) = fdifpar(i,j)
232          enddo
233          enddo
234          print *,' fdifpar ',tempij
235          do j = 1,jm
236          do i = 1,im
237           tempij(i,j) = fdirpar(i,j)
238          enddo
239          enddo
240          print *,' fdirpar ',tempij
241          do j = 1,jm
242          do i = 1,im
243           tempij(i,j) = tgz(i,j)
244          enddo
245          enddo
246          print *,' tgz ',tempij
247          do j = 1,jm
248          do i = 1,im
249           tempij(i,j) = tg0(i,j)
250          enddo
251          enddo
252          print *,' tg0 ',tempij
253          endif
254    
255        call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,        call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
256       .   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,
257       .   ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,       .  ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
258       .   tgz,fracland,landtype,       .  tgz,fracland,landtype,
259       .   tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,       .  tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
260       .   nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,       .  nchp,nchptot,nchpland,chfr,chlat,chlon,igrd,ityp,
261       .   turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,       .  alai,agrn,sea_ice,lpnt,
262       .   fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,       .  turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
263       .   imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,       .  fdifpar,fdirpar,rainlsp,raincon,snowfall,tg0,
264       .   myid,comm )       .  imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
265         .  myid)
266    
267  c Add Gravity-Wave Drag Tendency  c Add Gravity-Wave Drag Tendency
268  c ------------------------------  c ------------------------------
# Line 206  c    .   imglobal) Line 278  c    .   imglobal)
278  C MOIST PROCESSES  C MOIST PROCESSES
279  C ===============  C ===============
280        if ( alarm('moist') ) then        if ( alarm('moist') ) then
281          print *,' Time to do moist '
282        call moistio (ndmoist,istrip,npcs,        call moistio (ndmoist,istrip,npcs,
283       .    low_level,mid_level,nltop,nsubmin,nsubmax,Lup,       .    low_level,mid_level,nltop,nsubmin,nsubmax,Lup,
284       .    p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,       .    p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
285       .    moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,       .    moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
286       .    rainlsp,rainconv,snowfall,       .    rainlsp,raincon,snowfall,
287       .    nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,       .    nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,
288       .    nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,       .    nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,
289       .              .false.,myid)       .              .false.,myid)

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

  ViewVC Help
Powered by ViewVC 1.1.22