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

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

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


Revision 1.7 - (hide annotations) (download)
Tue Jul 6 20:20:51 2004 UTC (20 years ago) by molod
Branch: MAIN
Changes since 1.6: +9 -2 lines
Last bit of prep to get rid of sigma references in physics mini-drivers

1 molod 1.7 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.6 2004/06/28 16:12:17 molod Exp $
2 molod 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5 molod 1.5 subroutine fizhi_driver (myid,im,jm,lm,bi,bj,ptracer,ntracer,
6 molod 1.2 . xlats,xlons,
7 molod 1.1 . p,u,v,t,q,pl,ple,dpres,pkht,pkl,fracland,landtype,radswt,
8 molod 1.2 . phis_var,tgz,sea_ice,
9 molod 1.1 . nchp,chlat,chlon,igrd,nchpland,chfr,ityp,
10     . tcanopy,tdeep,ecanopy,swetshal,swetroot,swetdeep,capac,snodep,
11     . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
12     . albvisdr,albvisdf,albnirdr,albnirdf,emiss,alai,agrn,
13 molod 1.2 . chemq,chemo3,co2,cfc11,cfc12,cfc22,methane,n2o,
14 molod 1.1 . lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq,
15     . moistu,moistv,moistt,moistq,
16 molod 1.4 . radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,
17 molod 1.3 . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,
18 molod 1.1 . cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19     . clras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,
20 molod 1.4 . qliqavelw,fccavesw,fccavelw,qq)
21 molod 1.1 C***********************************************************************
22     C Purpose
23     C -------
24     C Driver for the FIZHI high-end Atmospheric Physics
25     C
26     C Arguments Description
27     C ----------------------
28     C nymd ..... Current YYMMDD
29     C nhms ..... Current HHMMSS
30     C fracland.. Land Fractions
31     C landtype.. Land Vegetation Types
32     C radswt ... Incident Solar Radiation
33     C
34     C***********************************************************************
35     implicit none
36    
37     c Diagnostic Common
38     c -----------------
39     #ifdef ALLOW_DIAGNOSTICS
40     #include 'diagnostics.h'
41     #endif
42    
43     c Timers Common
44     c -------------
45     #include 'chronos.h'
46    
47     c Input Parameters
48     c ----------------
49 molod 1.5 integer myid,im,jm,lm,bi,bj,ptracer,ntracer
50 molod 1.1 integer nchp,chlat,chlon,igrd,nchpland,chfr,ityp
51     integer nwatlevs,nwatlats
52     integer nozolevs,nozolats
53     integer iras,nlwcld,nlwlz,nswcld,nswlz
54     integer imstturbsw,imstturblw
55    
56     real xlats(im,jm), xlons(im,jm)
57     real p(im,jm)
58     real u(im,jm,lm), v(im,jm,lm), t(im,jm,lm)
59     real q(im,jm,lm,ntracer)
60     real pl(im,jm,lm),ple(im,jm,lm+1),dpres(im,jm,lm),pkht(im,jm,lm)
61     real radswt(im,jm), fracland(im,jm), landtype(im,jm)
62     real phis_var(im,jm), sea_ice(im,jm)
63     real tcanopy(nchp),tdeep(nchp),ecanopy(nchp),swetshal(nchp)
64     real swetroot(nchp),swetdeep(nchp),capac(nchp),snodep(nchp)
65     real ctmt(nchp),xxmt(nchp),yymt(nchp),zetamt(nchp)
66     real xlmt(nchp,lm),khmt(nchp,lm),tke(nchp,lm)
67     real stratq(nwatlats,nwatlevs )
68     real watlats(nwatlats)
69     real watlevs(nwatlevs)
70     real ozone(nozolats,nozolevs)
71     real ozolevs(nozolevs),ozolats(nozlats)
72     real co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)
73     real lwdt(im,jm,lm),lwdtclr(im,jm,lm)
74     real swdt(im,jm,lm),swdtclr(im,jm,lm)
75     real turbu(im,jm,lm),turbv(im,jm,lm),turbt(im,jm,lm)
76     real turbq(im,jm,lm)
77     real moistu(im,jm,lm),moistv(im,jm,lm),moistt(im,jm,lm)
78     real moistq(im,jm,lm)
79     real chemo3(im,jm,lm),chemq(im,jm,lm)
80     real albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)
81     real albnirdf(im,jm),emiss(im,jm)
82     real alai(nchp),agrn(nchp)
83 molod 1.4 real radswg(im,jm),swgclr(im,jm)
84 molod 1.1 real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
85 molod 1.3 real tg0(im,jm),radlwg(im,jm),st4(im,jm),dst4(im,jm)
86     real dlwdtg(im,jm,lm)
87 molod 1.1 real rainlsp(im,jm),raincon(im,jm),snowfall(im,jm)
88     real cldtot_lw(im,jm,lm),clras_lw(im,jm,lm),cldlsp_lw(im,jm,lm)
89     real lwlz(im,jm,lm)
90     real cldtot_sw(im,jm,lm),clras_sw(im,jm,lm),cldlsp_sw(im,jm,lm)
91     real swlz(im,jm,lm)
92     real qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)
93     real fccavesw(im,jm,lm),fccavelw(im,jm,lm)
94     real qq(im,jm,lm)
95 molod 1.4 real tgz(im,jm)
96 molod 1.1
97     c Local Variables
98     c ---------------
99     logical alarm
100     external alarm
101 molod 1.6 real massinlayer(im,jm,lm)
102 molod 1.7 integer numpcheck
103     parameter (numpcheck = 5)
104     integer pchecklevs(numpcheck)
105     real pcheckpress(numpcheck)
106     data pcheckpress/950.,750.,700.,400.,10./
107 molod 1.1
108 molod 1.2 integer ndmoist,ndturb,ndlw,ndsw
109 molod 1.1 integer istrip,npcs
110     integer i,j,L,n
111     integer ndum,ndpnt
112     real dum,akap,getcon
113     real ptop
114     logical lpnt
115    
116     istrip = min( im*jm,71 )
117     npcs = ((im*jm-1)/istrip) + 1
118    
119     ptop = 0.
120     akap = getcon('KAPPA')
121    
122     C **********************************************************************
123     C **** Initialization ****
124     C **********************************************************************
125 molod 1.2 call get_alarm ( 'radlw',ndum,ndum,ndlw ,ndum )
126     call get_alarm ( 'radsw',ndum,ndum,ndsw ,ndum )
127     call get_alarm ( 'turb' ,ndum,ndum,ndturb ,ndum )
128     call get_alarm ( 'moist',ndum,ndum,ndmoist,ndum )
129    
130 molod 1.1 call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
131     lpnt = ndpnt.ne.0
132    
133 molod 1.7 C Fill array of model levels closest to a given pressure value
134    
135     call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)
136 molod 1.1
137     C **********************************************************************
138     C **** Call Physics Mini-Drivers ****
139     C **********************************************************************
140    
141     C SHORT WAVE RADIATION
142     C ====================
143     IF ( alarm('radsw') ) THEN
144    
145 molod 1.5 call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
146 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
147     . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
148 molod 1.4 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
149 molod 1.1 . ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
150     . .false.,imstturbsw,qliqavesw,
151     . fccavesw,landtype,xlats,xlons )
152    
153     ENDIF
154    
155     C LONG WAVE RADIATION
156     C ===================
157     IF ( alarm('radlw') ) THEN
158    
159     c Set Reference Ground Temperature
160     c --------------------------------
161     do j=1,jm
162     do i=1,im
163     tg0(i,j) = tgz(i,j)
164     enddo
165     enddo
166    
167 molod 1.5 call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
168 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,
169     . cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
170     . lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,
171     . nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,
172     . .false.,imstturblw,qliqavelw,
173     . fccavelw,landtype )
174    
175     ENDIF
176    
177     C TURBULENCE
178     C ==========
179     IF ( alarm('turb') ) THEN
180    
181 molod 1.5 call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
182 molod 1.1 . ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,
183     . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
184 molod 1.4 . tgz,fracland,landtype,
185 molod 1.1 . tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
186 molod 1.2 . nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
187 molod 1.1 . turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
188     . fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,
189     . imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
190 molod 1.4 . myid,comm )
191 molod 1.1
192     c Add Gravity-Wave Drag Tendency
193     c ------------------------------
194     C Comment this out for now - run tropospheric resolutions only.
195     C Need to see how to get zonal wavelengths on the cube.
196    
197     c call gwdrag (myid,p,pl,ple,dpres,pkht,pkl,u,v,t,q,phis_var,
198     c . turbu,turbv,turbt,im,jm,lm,ptop,istrip,npcs,
199     c . imglobal)
200    
201     endif
202    
203     C MOIST PROCESSES
204     C ===============
205     if ( alarm('moist') ) then
206     call moistio (ndmoist,istrip,npcs,
207 molod 1.5 . p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
208 molod 1.1 . moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
209     . rainlsp,rainconv,snowfall,
210     . nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,
211     . nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,
212     . .false.,myid)
213    
214     endif
215    
216     return
217     end

  ViewVC Help
Powered by ViewVC 1.1.22