/[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.8 - (hide annotations) (download)
Wed Jul 7 19:33:48 2004 UTC (20 years ago) by molod
Branch: MAIN
Changes since 1.7: +11 -1 lines
Almost last code to get rid of references to sigma coordinate

1 molod 1.8 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.7 2004/07/06 20:20:51 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.8 integer low_level,mid_level,nltop,nsubmin,nsubmax,Lup
109 molod 1.2 integer ndmoist,ndturb,ndlw,ndsw
110 molod 1.1 integer istrip,npcs
111     integer i,j,L,n
112     integer ndum,ndpnt
113     real dum,akap,getcon
114     real ptop
115     logical lpnt
116    
117     istrip = min( im*jm,71 )
118     npcs = ((im*jm-1)/istrip) + 1
119    
120     ptop = 0.
121     akap = getcon('KAPPA')
122    
123     C **********************************************************************
124     C **** Initialization ****
125     C **********************************************************************
126 molod 1.2 call get_alarm ( 'radlw',ndum,ndum,ndlw ,ndum )
127     call get_alarm ( 'radsw',ndum,ndum,ndsw ,ndum )
128     call get_alarm ( 'turb' ,ndum,ndum,ndturb ,ndum )
129     call get_alarm ( 'moist',ndum,ndum,ndmoist,ndum )
130    
131 molod 1.1 call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
132     lpnt = ndpnt.ne.0
133    
134 molod 1.7 C Fill array of model levels closest to a given pressure value
135    
136     call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)
137 molod 1.8 low_level = pchecklevs(3)
138     mid_level = pchecklevs(4)
139     nltop = pchecklevs(5)
140     nsubmin = pchecklevs(1)
141     nsubmax = pchecklevs(2)
142     Lup = pchecklevs(3)
143 molod 1.1
144     C **********************************************************************
145     C **** Call Physics Mini-Drivers ****
146     C **********************************************************************
147    
148     C SHORT WAVE RADIATION
149     C ====================
150     IF ( alarm('radsw') ) THEN
151    
152 molod 1.5 call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
153 molod 1.8 . low_level,mid_level,
154 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
155     . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
156 molod 1.4 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
157 molod 1.1 . ptop,nswcld,cldtot_sw,cldras_sw,nswlz,swlz,
158     . .false.,imstturbsw,qliqavesw,
159     . fccavesw,landtype,xlats,xlons )
160    
161     ENDIF
162    
163     C LONG WAVE RADIATION
164     C ===================
165     IF ( alarm('radlw') ) THEN
166    
167     c Set Reference Ground Temperature
168     c --------------------------------
169     do j=1,jm
170     do i=1,im
171     tg0(i,j) = tgz(i,j)
172     enddo
173     enddo
174    
175 molod 1.5 call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
176 molod 1.8 . low_level,mid_level,
177 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,pkht,chemo3,co2,
178     . cfc11,cfc12,cfc22,methane,n2o,emiss,tgz,radlwg,st4,dst4,
179     . lwdt,dlwdtg,lwdtclr,lwgclr,im,jm,lm,ptop,
180     . nlwcld,cldtot_lw,cldras_lw,nlwlz,lwlz,
181     . .false.,imstturblw,qliqavelw,
182     . fccavelw,landtype )
183    
184     ENDIF
185    
186     C TURBULENCE
187     C ==========
188     IF ( alarm('turb') ) THEN
189    
190 molod 1.5 call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
191 molod 1.1 . ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,
192     . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
193 molod 1.4 . tgz,fracland,landtype,
194 molod 1.1 . tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
195 molod 1.2 . nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
196 molod 1.1 . turbu,turbv,turbt,turbq,radlwg,st4,dst4,radswg,radswt,
197     . fdifpar,fdirpar,rainlsp,rainconv,snowfall,tg0,
198     . imstturblw,imstturbsw,qliqavelw,qliqavesw,fccavelw,fccavesw,qq,
199 molod 1.4 . myid,comm )
200 molod 1.1
201     c Add Gravity-Wave Drag Tendency
202     c ------------------------------
203     C Comment this out for now - run tropospheric resolutions only.
204     C Need to see how to get zonal wavelengths on the cube.
205    
206     c call gwdrag (myid,p,pl,ple,dpres,pkht,pkl,u,v,t,q,phis_var,
207     c . turbu,turbv,turbt,im,jm,lm,ptop,istrip,npcs,
208     c . imglobal)
209    
210     endif
211    
212     C MOIST PROCESSES
213     C ===============
214     if ( alarm('moist') ) then
215     call moistio (ndmoist,istrip,npcs,
216 molod 1.8 . low_level,mid_level,nltop,nsubmin,nsubmax,Lup,
217 molod 1.5 . p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
218 molod 1.1 . moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
219     . rainlsp,rainconv,snowfall,
220     . nswcld,cldtot_sw,cldras_sw,cldlsp_sw,nswlz,swlz,
221     . nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,
222     . .false.,myid)
223    
224     endif
225    
226     return
227     end

  ViewVC Help
Powered by ViewVC 1.1.22