/[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.11 - (hide 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 molod 1.11 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.10 2004/07/12 21:33:37 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.11 . radswg,swgclr,fdirpar,fdifpar,osr,osrclr,tg0,radlwg,lwgclr,
17 molod 1.3 . st4,dst4,dlwdtg,rainlsp,raincon,snowfall,iras,nlwcld,
18 molod 1.11 . cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz,nswcld,cldtot_sw,
19     . cldras_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 molod 1.11 #include "chronos.h"
46 molod 1.1
47     c Input Parameters
48     c ----------------
49 molod 1.5 integer myid,im,jm,lm,bi,bj,ptracer,ntracer
50 molod 1.9 integer nchp,igrd(nchp),nchpland,ityp(nchp)
51 molod 1.1 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 molod 1.9 real pkl(im,jm,lm)
60 molod 1.1 real radswt(im,jm), fracland(im,jm), landtype(im,jm)
61     real phis_var(im,jm), sea_ice(im,jm)
62 molod 1.9 real chlat(nchp),chlon(nchp),chfr(nchp)
63 molod 1.1 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 molod 1.4 real radswg(im,jm),swgclr(im,jm)
79 molod 1.1 real fdirpar(im,jm),fdifpar(im,jm),osr(im,jm),osrclr(im,jm)
80 molod 1.11 real tg0(im,jm),radlwg(im,jm),lwgclr(im,jm),st4(im,jm),dst4(im,jm)
81 molod 1.3 real dlwdtg(im,jm,lm)
82 molod 1.1 real rainlsp(im,jm),raincon(im,jm),snowfall(im,jm)
83 molod 1.11 real cldtot_lw(im,jm,lm),cldras_lw(im,jm,lm),cldlsp_lw(im,jm,lm)
84 molod 1.1 real lwlz(im,jm,lm)
85 molod 1.11 real cldtot_sw(im,jm,lm),cldras_sw(im,jm,lm),cldlsp_sw(im,jm,lm)
86 molod 1.1 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 molod 1.4 real tgz(im,jm)
91 molod 1.1
92     c Local Variables
93     c ---------------
94     logical alarm
95     external alarm
96 molod 1.7 integer numpcheck
97     parameter (numpcheck = 5)
98     integer pchecklevs(numpcheck)
99     real pcheckpress(numpcheck)
100     data pcheckpress/950.,750.,700.,400.,10./
101 molod 1.1
102 molod 1.8 integer low_level,mid_level,nltop,nsubmin,nsubmax,Lup
103 molod 1.2 integer ndmoist,ndturb,ndlw,ndsw
104 molod 1.1 integer istrip,npcs
105 molod 1.11 integer i,j
106 molod 1.1 integer ndum,ndpnt
107 molod 1.11 real akap,getcon
108 molod 1.1 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 molod 1.2 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 molod 1.1 call get_alarm ( 'pnt',ndum,ndum,ndpnt,ndum )
126     lpnt = ndpnt.ne.0
127    
128 molod 1.7 C Fill array of model levels closest to a given pressure value
129    
130     call getpwhere(myid,numpcheck,pcheckpress,pchecklevs)
131 molod 1.8 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 molod 1.1
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 molod 1.5 call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
147 molod 1.8 . low_level,mid_level,
148 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
149     . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
150 molod 1.4 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
151 molod 1.1 . 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 molod 1.5 call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
170 molod 1.8 . low_level,mid_level,
171 molod 1.1 . 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 molod 1.5 call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
185 molod 1.11 . 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 molod 1.1
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 molod 1.8 . low_level,mid_level,nltop,nsubmin,nsubmax,Lup,
211 molod 1.5 . p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
212 molod 1.1 . moistu,moistv,moistt,moistq,im,jm,lm,ptop,iras,
213 molod 1.11 . rainlsp,raincon,snowfall,
214 molod 1.1 . 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