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

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

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


Revision 1.4 - (show annotations) (download)
Thu Jun 17 21:45:29 2004 UTC (20 years ago) by molod
Branch: MAIN
Changes since 1.3: +7 -10 lines
Developing

1 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.2 2004/06/16 19:19:49 molod Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5 subroutine fizhi_driver (myid,im,jm,lm,ptracer,ntracer,
6 . xlats,xlons,
7 . p,u,v,t,q,pl,ple,dpres,pkht,pkl,fracland,landtype,radswt,
8 . phis_var,tgz,sea_ice,
9 . 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 . chemq,chemo3,co2,cfc11,cfc12,cfc22,methane,n2o,
14 . lwdt,lwdtclr,swdt,swdtclr,turbu,turbv,turbt,turbq,
15 . moistu,moistv,moistt,moistq,
16 . radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,
17 . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,
18 . cldtot_lw,clras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19 . clras_sw,cldlsp_sw,nswlz,swlz,imstturbsw,imstturblw,qliqavesw,
20 . qliqavelw,fccavesw,fccavelw,qq)
21 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 integer myid,im,jm,lm,ptracer,ntracer
50 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 real radswg(im,jm),swgclr(im,jm)
84 real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
85 real tg0(im,jm),radlwg(im,jm),st4(im,jm),dst4(im,jm)
86 real dlwdtg(im,jm,lm)
87 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 real tgz(im,jm)
96
97 c Local Variables
98 c ---------------
99 logical alarm
100 external alarm
101
102 integer ndmoist,ndturb,ndlw,ndsw
103 integer istrip,npcs
104 integer i,j,L,n
105 integer ndum,ndpnt
106 real dum,akap,getcon
107 real ptop
108 logical lpnt
109
110 istrip = min( im*jm,71 )
111 npcs = ((im*jm-1)/istrip) + 1
112
113 ptop = 0.
114 akap = getcon('KAPPA')
115
116 C **********************************************************************
117 C **** Initialization ****
118 C **********************************************************************
119 call get_alarm ( 'radlw',ndum,ndum,ndlw ,ndum )
120 call get_alarm ( 'radsw',ndum,ndum,ndsw ,ndum )
121 call get_alarm ( 'turb' ,ndum,ndum,ndturb ,ndum )
122 call get_alarm ( 'moist',ndum,ndum,ndmoist,ndum )
123
124 call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
125 lpnt = ndpnt.ne.0
126
127 C Compute pl,ple,pkht,pkl,dpres and pcheck for use by mini-drivers
128
129 C Make 'model theta' out of theta, ie, divide by p0**kappa
130
131 C **********************************************************************
132 C **** Call Physics Mini-Drivers ****
133 C **********************************************************************
134
135 C SHORT WAVE RADIATION
136 C ====================
137 IF ( alarm('radsw') ) THEN
138
139 call swrio ( nymd,nhms,ndsw,myid,istrip,npcs,
140 . p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
141 . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
142 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
143 . ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
144 . .false.,imstturbsw,qliqavesw,
145 . fccavesw,landtype,xlats,xlons )
146
147 ENDIF
148
149 C LONG WAVE RADIATION
150 C ===================
151 IF ( alarm('radlw') ) THEN
152
153 c Set Reference Ground Temperature
154 c --------------------------------
155 do j=1,jm
156 do i=1,im
157 tg0(i,j) = tgz(i,j)
158 enddo
159 enddo
160
161 call lwrio ( nymd,nhms,istrip,npcs,
162 . p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,
163 . cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
164 . lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,
165 . nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,
166 . .false.,imstturblw,qliqavelw,
167 . fccavelw,landtype )
168
169 ENDIF
170
171 C TURBULENCE
172 C ==========
173 IF ( alarm('turb') ) THEN
174
175 call turbio (im,jm,lm,1,nymd,nhms,ndturb,
176 . ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,
177 . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
178 . tgz,fracland,landtype,
179 . tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
180 . nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
181 . turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
182 . fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,
183 . imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
184 . myid,comm )
185
186 c Add Gravity-Wave Drag Tendency
187 c ------------------------------
188 C Comment this out for now - run tropospheric resolutions only.
189 C Need to see how to get zonal wavelengths on the cube.
190
191 c call gwdrag (myid,p,pl,ple,dpres,pkht,pkl,u,v,t,q,phis_var,
192 c . turbu,turbv,turbt,im,jm,lm,ptop,istrip,npcs,
193 c . imglobal)
194
195 endif
196
197 C MOIST PROCESSES
198 C ===============
199 if ( alarm('moist') ) then
200 call moistio (ndmoist,istrip,npcs,
201 . p,pl,ple,dpres,pkht,pkl,t,q,ntracer,ptracer,qq,
202 . moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
203 . rainlsp,rainconv,snowfall,
204 . nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,
205 . nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,
206 . .false.,myid)
207
208 endif
209
210 return
211 end

  ViewVC Help
Powered by ViewVC 1.1.22