/[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.11 - (show annotations) (download)
Tue Jul 13 18:26:45 2004 UTC (19 years, 11 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint54c_post
Changes since 1.10: +20 -20 lines
Debugging - get routines to compile

1 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.10 2004/07/12 21:33:37 molod Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5 subroutine fizhi_driver (myid,im,jm,lm,bi,bj,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,lwgclr,
17 . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,
18 . cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19 . cldras_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,bi,bj,ptracer,ntracer
50 integer nchp,igrd(nchp),nchpland,ityp(nchp)
51 integer iras,nlwcld,nlwlz,nswcld,nswlz
52 integer imstturbsw,imstturblw
53
54 real xlats(im,jm), xlons(im,jm)
55 real p(im,jm)
56 real u(im,jm,lm), v(im,jm,lm), t(im,jm,lm)
57 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)
59 real pkl(im,jm,lm)
60 real radswt(im,jm), fracland(im,jm), landtype(im,jm)
61 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)
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 co2,cfc11,cfc12,cfc22,methane(lm),n2o(lm)
68 real lwdt(im,jm,lm),lwdtclr(im,jm,lm)
69 real swdt(im,jm,lm),swdtclr(im,jm,lm)
70 real turbu(im,jm,lm),turbv(im,jm,lm),turbt(im,jm,lm)
71 real turbq(im,jm,lm)
72 real moistu(im,jm,lm),moistv(im,jm,lm),moistt(im,jm,lm)
73 real moistq(im,jm,lm)
74 real chemo3(im,jm,lm),chemq(im,jm,lm)
75 real albvisdr(im,jm),albvisdf(im,jm),albnirdr(im,jm)
76 real albnirdf(im,jm),emiss(im,jm)
77 real alai(nchp),agrn(nchp)
78 real radswg(im,jm),swgclr(im,jm)
79 real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
80 real tg0(im,jm),radlwg(im,jm),lwgclr(im,jm),st4(im,jm),dst4(im,jm)
81 real dlwdtg(im,jm,lm)
82 real rainlsp(im,jm),raincon(im,jm),snowfall(im,jm)
83 real cldtot_lw(im,jm,lm),cldras_lw(im,jm,lm),cldlsp_lw(im,jm,lm)
84 real lwlz(im,jm,lm)
85 real cldtot_sw(im,jm,lm),cldras_sw(im,jm,lm),cldlsp_sw(im,jm,lm)
86 real swlz(im,jm,lm)
87 real qliqavesw(im,jm,lm),qliqavelw(im,jm,lm)
88 real fccavesw(im,jm,lm),fccavelw(im,jm,lm)
89 real qq(im,jm,lm)
90 real tgz(im,jm)
91
92 c Local Variables
93 c ---------------
94 logical alarm
95 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
104 integer istrip,npcs
105 integer i,j
106 integer ndum,ndpnt
107 real akap,getcon
108 real ptop
109 logical lpnt
110
111 istrip = min( im*jm,71 )
112 npcs = ((im*jm-1)/istrip) + 1
113
114 ptop = 0.
115 akap = getcon('KAPPA')
116
117 C **********************************************************************
118 C **** Initialization ****
119 C **********************************************************************
120 call get_alarm ( 'radlw',ndum,ndum,ndlw ,ndum )
121 call get_alarm ( 'radsw',ndum,ndum,ndsw ,ndum )
122 call get_alarm ( 'turb' ,ndum,ndum,ndturb ,ndum )
123 call get_alarm ( 'moist',ndum,ndum,ndmoist,ndum )
124
125 call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
126 lpnt = ndpnt.ne.0
127
128 C Fill array of model levels closest to a given pressure value
129
130 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 **********************************************************************
139 C **** Call Physics Mini-Drivers ****
140 C **********************************************************************
141
142 C SHORT WAVE RADIATION
143 C ====================
144 IF ( alarm('radsw') ) THEN
145
146 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,
149 . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
150 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
151 . ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
152 . .false.,imstturbsw,qliqavesw,
153 . fccavesw,landtype,xlats,xlons )
154
155 ENDIF
156
157 C LONG WAVE RADIATION
158 C ===================
159 IF ( alarm('radlw') ) THEN
160
161 c Set Reference Ground Temperature
162 c --------------------------------
163 do j=1,jm
164 do i=1,im
165 tg0(i,j) = tgz(i,j)
166 enddo
167 enddo
168
169 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,
172 . cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
173 . lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,
174 . nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,
175 . .false.,imstturblw,qliqavelw,
176 . fccavelw,landtype )
177
178 ENDIF
179
180 C TURBULENCE
181 C ==========
182 IF ( alarm('turb') ) THEN
183
184 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,
186 . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
187 . tgz,fracland,landtype,
188 . tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
189 . nchp,nchpland,chfr,chlat,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
190 . turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
191 . fdifpar,fdirpar,rainlsp,raincon,snowfall,tg0,
192 . imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
193 . myid)
194
195 c Add Gravity-Wave Drag Tendency
196 c ------------------------------
197 C Comment this out for now - run tropospheric resolutions only.
198 C Need to see how to get zonal wavelengths on the cube.
199
200 c call gwdrag (myid,p,pl,ple,dpres,pkht,pkl,u,v,t,q,phis_var,
201 c . turbu,turbv,turbt,im,jm,lm,ptop,istrip,npcs,
202 c . imglobal)
203
204 endif
205
206 C MOIST PROCESSES
207 C ===============
208 if ( alarm('moist') ) then
209 call moistio (ndmoist,istrip,npcs,
210 . 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,
213 . rainlsp,raincon,snowfall,
214 . nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,
215 . nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,
216 . .false.,myid)
217
218 endif
219
220 return
221 end

  ViewVC Help
Powered by ViewVC 1.1.22