/[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.5 - (hide annotations) (download)
Thu Jun 24 19:57:02 2004 UTC (20 years ago) by molod
Branch: MAIN
CVS Tags: checkpoint53f_post
Changes since 1.4: +7 -7 lines
Add bi bj index to fizhi qdiag references

1 molod 1.5 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_driver.F,v 1.4 2004/06/17 21:45:29 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    
102 molod 1.2 integer ndmoist,ndturb,ndlw,ndsw
103 molod 1.1 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 molod 1.2 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 molod 1.1 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 molod 1.5 call swrio ( nymd,nhms,bi,bj,ndsw,myid,istrip,npcs,
140 molod 1.1 . p,pl,ple,dpres,pkht,pkl,t,chemq,chemo3,co2,
141     . albvisdr,albvisdf,albnirdr,albnirdf,swdt,swdtclr,
142 molod 1.4 . radswg,swgclr,fdifpar,fdirpar,osr,osrclr,im,jm,lm,
143 molod 1.1 . 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 molod 1.5 call lwrio ( nymd,nhms,bi,bj,istrip,npcs,
162 molod 1.1 . 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 molod 1.5 call turbio (im,jm,lm,1,nymd,nhms,bi,bj,ndturb,
176 molod 1.1 . ptop,p,u,v,t,q,ntracer,ptracer,pl,ple,dpres,pkht,pkl,
177     . ctmt,xxmt,yymt,zetamt,xlmt,khmt,tke,
178 molod 1.4 . tgz,fracland,landtype,
179 molod 1.1 . tcanopy,ecanopy,tdeep,swetshal,swetroot,swetdeep,snodep,capac,
180 molod 1.2 . nchp,nchpland,chfr,chlt,chlon,igrd,ityp,alai,agrn,sea_ice,lpnt,
181 molod 1.1 . 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 molod 1.4 . myid,comm )
185 molod 1.1
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 molod 1.5 . p,pl,ple,dpres,pkht,pkl,t,q,bi,bj,ntracer,ptracer,qq,
202 molod 1.1 . 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