22 SUBROUTINE initpost_netcdf(ncid2d,ncid3d)
26 use vrbls4d, only: dust, salt, suso, soot, waso
27 use vrbls3d, only: t, q, uh, vh, pmid, pint, alpint, dpres, zint, zmid, o3, &
28 qqr, qqs, cwm, qqi, qqw, omga, rhomid, q2, cfr, rlwtt, rswtt, tcucn, &
29 tcucns, train, el_pbl, exch_h, vdifftt, vdiffmois, dconvmois, nradtt, &
30 o3vdiff, o3prod, o3tndy, mwpv, unknown, vdiffzacce, zgdrag,cnvctummixing, &
31 vdiffmacce, mgdrag, cnvctvmmixing, ncnvctcfrac, cnvctumflx, cnvctdmflx, &
32 cnvctzgdrag, sconvmois, cnvctmgdrag, cnvctdetmflx, duwt, duem, dusd, dudp, &
33 wh, qqg, ref_10cm, qqnifa, qqnwfa, pmtf, ozcon
35 use vrbls2d, only: f, pd, fis, pblh, ustar, z0, ths, qs, twbs, qwbs, avgcprate, &
36 cprate, avgprec, prec, lspa, sno, si, cldefi, th10, q10, tshltr, pshltr, &
37 tshltr, albase, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot, sigt4, &
38 cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, &
39 islope, cmc, grnflx, vegfrc, acfrcv, ncfrcv, acfrst, ncfrst, ssroff, &
40 bgroff, rlwin, rlwtoa, cldwork, alwin, alwout, alwtoa, rswin, rswinc, &
41 rswout, aswin, auvbin, auvbinc, aswout, aswtoa, sfcshx, sfclhx, subshx, &
42 snopcx, sfcux, sfcvx, sfcuxi, sfcvxi, sfcuvx, gtaux, gtauy, potevp, u10, v10, smstav, &
43 smstot, ivgtyp, isltyp, sfcevp, sfcexc, acsnow, acsnom, sst, thz0, qz0, &
44 uz0, vz0, ptop, htop, pbot, hbot, ptopl, pbotl, ttopl, ptopm, pbotm, ttopm, &
45 ptoph, pboth, pblcfr, ttoph, runoff, tecan, tetran, tedir, twa, maxtshltr, &
46 mintshltr, maxrhshltr, fdnsst, &
47 minrhshltr, dzice, smcwlt, suntime, fieldcapa, htopd, hbotd, htops, hbots, &
48 cuppt, dusmass, ducmass, dusmass25, ducmass25, aswintoa,rel_vort_maxhy1, &
49 maxqshltr, minqshltr, acond, sr, u10h, v10h,refd_max, w_up_max, w_dn_max, &
50 up_heli_max,up_heli_min,up_heli_max03,up_heli_min03,rel_vort_max01,u10max, v10max, &
51 avgedir,avgecan,paha,pahi,avgetrans,avgesnow,avgprec_cont,avgcprate_cont,rel_vort_max, &
52 avisbeamswin,avisdiffswin,airbeamswin,airdiffswin,refdm10c_max,wspd10max, &
53 alwoutc,alwtoac,aswoutc,aswtoac,alwinc,aswinc,avgpotevp,snoavg, &
54 ti,aod550,du_aod550,ss_aod550,su_aod550,oc_aod550,bc_aod550,prate_max, &
56 use soil, only: sldpth, sllevel, sh2o, smc, stc
57 use masks, only: lmv, lmh, htm, vtm, gdlat, gdlon, dx, dy, hbm2, sm, sice
58 use physcons_post, only: grav => con_g, fv => con_fvirt, rgas => con_rd, &
59 eps => con_eps, epsm1 => con_epsm1
60 use params_mod, only: erad, dtr, tfrz, h1, d608, rd, p1000, capa,pi
61 use lookup_mod, only: thl, plq, ptbl, ttbl, rdq, rdth, rdp, rdthe, pl, qs0, sqs, sthe, &
62 ttblq, rdpq, rdtheq, stheq, the0q, the0
63 use ctlblk_mod
, only: me, mpi_comm_comp, icnt, idsp, jsta, jend, ihrst, idat, sdat, ifhr, &
64 ifmin, filename, tprec, tclod, trdlw, trdsw, tsrfc, tmaxmin, td3d, restrt, sdat, &
65 jend_m, imin, imp_physics, dt, spval, pdtop, pt, qmin, nbin_du, nphs, dtq2, ardlw,&
66 ardsw, asrfc, avrain, avcnvc, theat, gdsdegr, spl, lsm, alsl, im, jm, im_jm, lm, &
67 jsta_2l, jend_2u, nsoil, lp1, icu_physics, ivegsrc, novegtype, nbin_ss, nbin_bc, &
68 nbin_oc, nbin_su, gocart_on, pt_tbl, hyb_sigp, filenameflux, filenameaer, &
69 isf_surface_physics,rdaod, aqfcmaq_on, modelname, &
70 ista, iend, ista_2l, iend_2u,iend_m
71 use gridspec_mod
, only: maptype, gridtype, latstart, latlast, lonstart, lonlast, cenlon, &
72 dxval, dyval, truelat2, truelat1, psmapf, cenlat,lonstartv, lonlastv, cenlonv, &
73 latstartv, latlastv, cenlatv,latstart_r,latlast_r,lonstart_r,lonlast_r, standlon
79 integer,
parameter :: nvar2d=48
81 integer :: nvar3d, numdims
102 real,
parameter :: gravi = 1.0/grav
103 character(len=20) :: varname, vcoordname
104 integer :: status, fldsize, fldst, recn, recn_vvel
105 character startdate*19,sysdepinfo*80,cgar*1
106 character startdate2(19)*4
107 logical :: read_lonlat=.true.
114 LOGICAL runb,singlrst,subpost,nest,hydro,ioomg,ioall
115 logical,
parameter :: debugprint = .false., zerout = .false.
117 logical :: convert_rad_to_deg=.false.
118 CHARACTER*32 varcharval
121 CHARACTER fname*255,envar*50
122 INTEGER idate(8),jdate(8),jpds(200),jgds(200),kpds(200),kgds(200)
137 integer ii,jj,js,je,iyear,imn,iday,itmp,ioutcount,istatus, &
138 i,j,l,ll,k,kf,irtn,igdout,n,index,nframe, &
139 nframed2,iunitd3d,ierr,idum,iret,nrec,idrt
140 integer ncid3d,ncid2d,varid,nhcas
141 real tstart,tlmh,tsph,es,fact,soilayert,soilayerb,zhour,dum, &
142 tvll,pmll,tv, tx1, tx2
144 character*20,
allocatable :: recname(:)
145 integer,
allocatable :: reclev(:), kmsk(:,:)
146 real,
allocatable :: glat1d(:), glon1d(:), qstl(:)
147 real,
allocatable :: wrk1(:,:), wrk2(:,:)
148 real,
allocatable :: p2d(:,:), t2d(:,:), q2d(:,:), &
149 qs2d(:,:), cw2d(:,:), cfr2d(:,:)
150 real,
dimension(lm+1) :: ak5, bk5
151 real*8,
allocatable :: pm2d(:,:), pi2d(:,:)
152 real,
allocatable :: tmp(:)
153 real :: buf(ista_2l:iend_2u,jsta_2l:jend_2u)
154 real :: buf3d(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
160 integer isa, jsa, latghf, jtem, idvc, idsl, nvcoord, ip1, nn, npass
162 integer,
parameter :: npass2=5, npass3=30
163 real,
parameter :: third=1.0/3.0
164 INTEGER,
DIMENSION(2) :: ij4min, ij4max
165 REAL :: omgmin, omgmax
166 real,
allocatable :: d2d(:,:), u2d(:,:), v2d(:,:), omga2d(:,:)
167 REAL,
ALLOCATABLE :: ps2d(:,:),psx2d(:,:),psy2d(:,:)
168 real,
allocatable :: div3d(:,:,:)
169 real(kind=4),
allocatable :: vcrd(:,:)
174 real,
allocatable :: aacd(:,:,:), aalj(:,:,:) &
175 ,aalk1j(:,:,:), aalk2j(:,:,:) &
176 ,abnz1j(:,:,:), abnz2j(:,:,:), abnz3j(:,:,:) &
177 ,acaj(:,:,:), acet(:,:,:) &
178 ,acli(:,:,:), aclj(:,:,:), aclk(:,:,:) &
179 ,acors(:,:,:), acro_primary(:,:,:) &
180 ,acrolein(:,:,:), aeci(:,:,:) &
181 ,aecj(:,:,:), afej(:,:,:) &
183 ,ah2oi(:,:,:), ah2oj(:,:,:), ah2ok(:,:,:) &
184 ,ah3opi(:,:,:), ah3opj(:,:,:), ah3opk(:,:,:) &
185 ,aiso1j(:,:,:), aiso2j(:,:,:), aiso3j(:,:,:) &
186 ,aivpo1j(:,:,:), akj(:,:,:) &
187 ,ald2(:,:,:), ald2_primary(:,:,:) &
189 ,alvoo1i(:,:,:), alvoo1j(:,:,:) &
190 ,alvoo2i(:,:,:), alvoo2j(:,:,:) &
191 ,alvpo1i(:,:,:), alvpo1j(:,:,:) &
192 ,amgj(:,:,:), amnj(:,:,:) &
193 ,amgk(:,:,:), akk(:,:,:), acak(:,:,:) &
194 ,anai(:,:,:), anaj(:,:,:), anak(:,:,:) &
195 ,anh4i(:,:,:), anh4j(:,:,:), anh4k(:,:,:) &
196 ,ano3i(:,:,:), ano3j(:,:,:), ano3k(:,:,:) &
197 ,aolgaj(:,:,:), aolgbj(:,:,:), aorgcj(:,:,:) &
198 ,aomi(:,:,:), aomj(:,:,:) &
199 ,aothri(:,:,:), aothrj(:,:,:) &
200 ,apah1j(:,:,:), apah2j(:,:,:), apah3j(:,:,:) &
201 ,apomi(:,:,:), apomj(:,:,:) &
202 ,apcsoj(:,:,:), aseacat(:,:,:), asij(:,:,:) &
203 ,aso4i(:,:,:), aso4j(:,:,:), aso4k(:,:,:) &
204 ,asoil(:,:,:), asqtj(:,:,:) &
205 ,asomi(:,:,:), asomj(:,:,:) &
206 ,asvoo1i(:,:,:), asvoo1j(:,:,:) &
207 ,asvoo2i(:,:,:), asvoo2j(:,:,:) &
209 ,asvpo1i(:,:,:), asvpo1j(:,:,:) &
210 ,asvpo2i(:,:,:), asvpo2j(:,:,:) &
213 ,atol1j(:,:,:), atol2j(:,:,:), atol3j(:,:,:) &
214 ,atoti(:,:,:), atotj(:,:,:), atotk(:,:,:) &
215 ,atrp1j(:,:,:), atrp2j(:,:,:) &
216 ,axyl1j(:,:,:), axyl2j(:,:,:), axyl3j(:,:,:) &
217 ,pm25ac(:,:,:), pm25at(:,:,:), pm25co(:,:,:)
220 if (me == 0) print *,
' aqfcmaq_on=', aqfcmaq_on
224 allocate(aacd(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
225 allocate(aalj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
226 allocate(aalk1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
227 allocate(aalk2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
229 allocate(abnz1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
230 allocate(abnz2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
231 allocate(abnz3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
233 allocate(acaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
234 allocate(acet(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
236 allocate(acli(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
237 allocate(aclj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
238 allocate(aclk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
240 allocate(acors(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
241 allocate(acro_primary(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
242 allocate(acrolein(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
243 allocate(aeci(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
244 allocate(aecj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
245 allocate(afej(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
246 allocate(aglyj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
248 allocate(ah2oi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
249 allocate(ah2oj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
250 allocate(ah2ok(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
252 allocate(ah3opi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
253 allocate(ah3opj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
254 allocate(ah3opk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
256 allocate(aiso1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
257 allocate(aiso2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
258 allocate(aiso3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
260 allocate(aivpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
261 allocate(akj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
263 allocate(ald2(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
264 allocate(ald2_primary(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
266 allocate(aldx(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
268 allocate(alvoo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
269 allocate(alvoo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
270 allocate(alvoo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
271 allocate(alvoo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
272 allocate(alvpo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
273 allocate(alvpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
275 allocate(amgj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
276 allocate(amnj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
278 allocate(anai(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
279 allocate(anaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
280 allocate(anak(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
282 allocate(anh4i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
283 allocate(anh4j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
284 allocate(anh4k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
286 allocate(ano3i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
287 allocate(ano3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
288 allocate(ano3k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
290 allocate(aolgaj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
291 allocate(aolgbj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
293 allocate(aomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
294 allocate(aomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
296 allocate(aorgcj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
298 allocate(aothri(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
299 allocate(aothrj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
301 allocate(apah1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
302 allocate(apah2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
303 allocate(apah3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
305 allocate(apcsoj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
307 allocate(apomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
308 allocate(apomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
310 allocate(aseacat(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
311 allocate(asij(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
313 allocate(aso4i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
314 allocate(aso4j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
315 allocate(aso4k(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
316 allocate(asoil(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
318 allocate(asomi(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
319 allocate(asomj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
321 allocate(asqtj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
323 allocate(asvoo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
324 allocate(asvoo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
325 allocate(asvoo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
326 allocate(asvoo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
327 allocate(asvoo3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
329 allocate(asvpo1i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
330 allocate(asvpo1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
331 allocate(asvpo2i(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
332 allocate(asvpo2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
333 allocate(asvpo3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
335 allocate(atij(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
337 allocate(atol1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
338 allocate(atol2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
339 allocate(atol3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
341 allocate(atoti(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
342 allocate(atotj(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
343 allocate(atotk(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
345 allocate(atrp1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
346 allocate(atrp2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
348 allocate(axyl1j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
349 allocate(axyl2j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
350 allocate(axyl3j(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
352 allocate(pm25ac(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
353 allocate(pm25at(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
354 allocate(pm25co(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
361 WRITE(6,*)
'INITPOST: ENTER INITPOST_NETCDF'
362 WRITE(6,*)
'me=',me, &
363 'jsta_2l=',jsta_2l,
'jend_2u=', &
365 'ista_2l=',ista_2l,
'iend_2u=',iend_2u, &
366 'ista=',ista,
'iend=',iend, &
369 isa = (ista+iend) / 2
370 jsa = (jsta+jend) / 2
373 do j = jsta_2l, jend_2u
374 do i= ista_2l, iend_2u
379 status=nf90_get_att(ncid3d,nf90_global,
'ak',ak5)
381 print*,
'ak not found; assigning missing value'
384 if(me==0)print*,
'ak5= ',ak5
386 status=nf90_get_att(ncid3d,nf90_global,
'idrt',idrt)
388 print*,
'idrt not in netcdf file,reading grid'
389 status=nf90_get_att(ncid3d,nf90_global,
'grid',varcharval)
391 print*,
'idrt and grid not in netcdf file, set default to latlon'
395 if(trim(varcharval)==
'rotated_latlon')
then
398 status=nf90_get_att(ncid3d,nf90_global,
'cen_lon',dum_const)
400 print*,
'cen_lon not found; assigning missing value'
404 cenlon=nint((dum_const+360.)*gdsdegr)
406 cenlon=dum_const*gdsdegr
409 status=nf90_get_att(ncid3d,nf90_global,
'cen_lat',dum_const)
411 print*,
'cen_lat not found; assigning missing value'
414 cenlat=dum_const*gdsdegr
417 status=nf90_get_att(ncid3d,nf90_global,
'lon1',dum_const)
419 print*,
'lonstart_r not found; assigning missing value'
423 lonstart_r=nint((dum_const+360.)*gdsdegr)
425 lonstart_r=dum_const*gdsdegr
428 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
430 print*,
'latstart_r not found; assigning missing value'
433 latstart_r=dum_const*gdsdegr
436 status=nf90_get_att(ncid3d,nf90_global,
'lon2',dum_const)
438 print*,
'lonlast_r not found; assigning missing value'
442 lonlast_r=nint((dum_const+360.)*gdsdegr)
444 lonlast_r=dum_const*gdsdegr
447 status=nf90_get_att(ncid3d,nf90_global,
'lat2',dum_const)
449 print*,
'latlast_r not found; assigning missing value'
452 latlast_r=dum_const*gdsdegr
455 status=nf90_get_att(ncid3d,nf90_global,
'dlon',dum_const)
457 print*,
'dlmd not found; assigning missing value'
460 dxval=dum_const*gdsdegr
462 status=nf90_get_att(ncid3d,nf90_global,
'dlat',dum_const)
464 print*,
'dphd not found; assigning missing value'
467 dyval=dum_const*gdsdegr
470 print*,
'lonstart,latstart,cenlon,cenlat,dyval,dxval', &
471 lonstart,latstart,cenlon,cenlat,dyval,dxval
474 else if(trim(varcharval)==
'latlon')
then
478 status=nf90_get_att(ncid3d,nf90_global,
'lon1',dum_const)
480 print*,
'lonstart not found; assigning missing value'
484 lonstart=nint((dum_const+360.)*gdsdegr)
486 lonstart=dum_const*gdsdegr
489 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
491 print*,
'latstart not found; assigning missing value'
494 latstart=dum_const*gdsdegr
497 status=nf90_get_att(ncid3d,nf90_global,
'lon2',dum_const)
499 print*,
'lonlast not found; assigning missing value'
503 lonlast=nint((dum_const+360.)*gdsdegr)
505 lonlast=dum_const*gdsdegr
508 status=nf90_get_att(ncid3d,nf90_global,
'lat2',dum_const)
510 print*,
'latlast not found; assigning missing value'
513 latlast=dum_const*gdsdegr
516 status=nf90_get_att(ncid3d,nf90_global,
'dlon',dum_const)
518 print*,
'dlmd not found; assigning missing value'
521 dxval=dum_const*gdsdegr
523 status=nf90_get_att(ncid3d,nf90_global,
'dlat',dum_const)
525 print*,
'dphd not found; assigning missing value'
528 dyval=dum_const*gdsdegr
531 print*,
'lonstart,latstart,dyval,dxval', &
532 lonstart,lonlast,latstart,latlast,dyval,dxval
536 ELSE IF (trim(varcharval)==
'lambert_conformal')
then
540 status=nf90_get_att(ncid3d,nf90_global,
'cen_lon',dum_const)
542 print*,
'cen_lon not found; assigning missing value'
546 cenlon=nint((dum_const+360.)*gdsdegr)
548 cenlon=dum_const*gdsdegr
551 status=nf90_get_att(ncid3d,nf90_global,
'cen_lat',dum_const)
553 print*,
'cen_lat not found; assigning missing value'
556 cenlat=dum_const*gdsdegr
559 status=nf90_get_att(ncid3d,nf90_global,
'lon1',dum_const)
561 print*,
'lonstart not found; assigning missing value'
565 lonstart=nint((dum_const+360.)*gdsdegr)
567 lonstart=dum_const*gdsdegr
570 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
572 print*,
'latstart not found; assigning missing value'
575 latstart=dum_const*gdsdegr
578 status=nf90_get_att(ncid3d,nf90_global,
'stdlat1',dum_const)
580 print*,
'stdlat1 not found; assigning missing value'
583 truelat1=dum_const*gdsdegr
585 status=nf90_get_att(ncid3d,nf90_global,
'stdlat2',dum_const)
587 print*,
'stdlat2 not found; assigning missing value'
590 truelat2=dum_const*gdsdegr
593 status=nf90_get_att(ncid3d,nf90_global,
'dx',dum_const)
595 print*,
'dx not found; assigning missing value'
600 status=nf90_get_att(ncid3d,nf90_global,
'dy',dum_const)
602 print*,
'dphd not found; assigning missing value'
609 print*,
'lonstart,latstart,cenlon,cenlat,truelat1,truelat2, &
610 stadlon,dyval,dxval', &
611 lonstart,latstart,cenlon,cenlat,truelat1,truelat2,standlon,dyval,dxval
613 else if(trim(varcharval)==
'gaussian')
then
622 if(me==0)print*,
'idrt MAPTYPE= ',idrt,maptype
631 do j = jsta_2l, jend_2u
632 do i = ista_2l, iend_2u
642 do j = jsta_2l, jend_2u
643 do i = ista_2l, iend_2u
650 status=nf90_get_att(ncid3d,nf90_global,
'nhcas',nhcas)
652 print*,
'nhcas not in netcdf file, set default to nonhydro'
655 if(me==0)print*,
'nhcas= ',nhcas
656 if (nhcas == 0 )
then
658 allocate (recname(nrec))
659 recname=[
character(len=20) ::
'ugrd',
'vgrd',
'spfh',
'tmp',
'o3mr', &
660 'presnh',
'dzdt',
'clwmr',
'dpres', &
661 'delz',
'icmr',
'rwmr', &
665 allocate (recname(nrec))
666 recname=[
character(len=20) ::
'ugrd',
'vgrd',
'tmp',
'spfh',
'o3mr', &
667 'hypres',
'clwmr',
'dpres']
672 allocate(glat1d(jm),glon1d(im))
677 status=nf90_inq_varid(ncid3d,
'time',varid)
679 print*,
'time not in netcdf file, stopping'
682 status=nf90_get_att(ncid3d,varid,
'units',varcharval)
684 print*,
'time unit not available'
686 print*,
'time unit read from netcdf file= ',varcharval
689 read(varcharval,101)idate(1),idate(2),idate(3),idate(4),idate(5)
701 101
format(t13,i4,1x,i2,1x,i2,1x,i2,1x,i2)
702 print*,
'idate= ',idate(1:5)
705 status=nf90_inq_varid(ncid3d,
'grid_xt',varid)
706 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
707 if(numdims==1.and.modelname==
"FV3R")
then
716 if (read_lonlat)
then
717 status=nf90_inq_varid(ncid3d,
'lon',varid)
718 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
719 if(debugprint)print*,
'number of dim for gdlon ',numdims
721 status=nf90_inq_varid(ncid3d,
'grid_xt',varid)
722 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
723 if(debugprint)print*,
'number of dim for gdlon ',numdims
726 status=nf90_get_var(ncid3d,varid,glon1d)
729 gdlon(i,j) =
real(glon1d(i),kind=4)
732 lonstart = nint(glon1d(1)*gdsdegr)
733 lonlast = nint(glon1d(im)*gdsdegr)
736 if (maptype == 0)
then
738 lonstart=lonstart+360.*gdsdegr
741 lonlast=lonlast+360.*gdsdegr
746 else if(numdims==2)
then
747 status=nf90_get_var(ncid3d,varid,dummy)
748 if(maxval(abs(dummy))<2.0*pi)convert_rad_to_deg=.true.
749 if(convert_rad_to_deg)
then
752 gdlon(i,j) =
real(dummy(i,j),kind=4)*180./pi
758 gdlon(i,j) =
real(dummy(i,j),kind=4)
762 if(convert_rad_to_deg)
then
763 lonstart = nint(dummy(1,1)*gdsdegr)*180./pi
764 lonlast = nint(dummy(im,jm)*gdsdegr)*180./pi
766 lonstart = nint(dummy(1,1)*gdsdegr)
767 lonlast = nint(dummy(im,jm)*gdsdegr)
771 if (maptype == 0)
then
773 lonstart=lonstart+360.*gdsdegr
776 lonlast=lonlast+360.*gdsdegr
782 print*,
'lonstart,lonlast ',lonstart,lonlast
785 if (read_lonlat)
then
786 status=nf90_inq_varid(ncid3d,
'lat',varid)
787 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
788 if(debugprint)print*,
'number of dim for gdlat ',numdims
790 status=nf90_inq_varid(ncid3d,
'grid_yt',varid)
791 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
792 if(debugprint)print*,
'number of dim for gdlat ',numdims
795 status=nf90_get_var(ncid3d,varid,glat1d)
798 gdlat(i,j) =
real(glat1d(j),kind=4)
801 latstart = nint(glat1d(1)*gdsdegr)
802 latlast = nint(glat1d(jm)*gdsdegr)
803 else if(numdims==2)
then
804 status=nf90_get_var(ncid3d,varid,dummy)
805 if(maxval(abs(dummy))<pi)convert_rad_to_deg=.true.
806 if(convert_rad_to_deg)
then
809 gdlat(i,j) =
real(dummy(i,j),kind=4)*180./pi
815 gdlat(i,j) =
real(dummy(i,j),kind=4)
819 if(convert_rad_to_deg)
then
820 latstart = nint(dummy(1,1)*gdsdegr)*180./pi
821 latlast = nint(dummy(im,jm)*gdsdegr)*180./pi
823 latstart = nint(dummy(1,1)*gdsdegr)
824 latlast = nint(dummy(im,jm)*gdsdegr)
827 print*,
'laststart,latlast = ',latstart,latlast
828 if(debugprint)print*,
'me sample gdlon gdlat= ' &
829 ,me,gdlon(isa,jsa),gdlat(isa,jsa)
834 if (me == 0) print *,
'maptype and gridtype is ', &
837 if(gridtype ==
'A')
then
849 print *,
'recname=',trim(recname(i))
855 deallocate(glat1d,glon1d)
857 print*,
'idate = ',(idate(i),i=1,7)
864 print *,me,
'max(gdlat)=', maxval(gdlat), &
865 'max(gdlon)=', maxval(gdlon)
866 CALL exch(gdlat(ista_2l,jsta_2l))
867 CALL exch(gdlon(ista_2l,jsta_2l))
868 print *,
'after call EXCH,me=',me
875 dx(i,j) = erad*cos(gdlat(i,j)*dtr) *(gdlon(ip1,j)-gdlon(i,j))*dtr
876 dy(i,j) = erad*(gdlat(i,j+1)-gdlat(i,j))*dtr
882 if(debugprint)print*,
'me sample dx dy= ' &
883 ,me,dx(isa,jsa),dy(isa,jsa)
887 f(i,j) = 1.454441e-4*sin(gdlat(i,j)*dtr)
899 print*,
'start yr mo day hr min =',iyear,imn,iday,ihrst,imin
900 print*,
'processing yr mo day hr min=' &
901 ,idat(3),idat(1),idat(2),idat(4),idat(5)
917 print *,
' idate=',idate
918 print *,
' jdate=',jdate
920 CALL w3difdat(jdate,idate,0,rinc)
922 print *,
' rinc=',rinc
923 ifhr = nint(rinc(2)+rinc(1)*24.)
924 print *,
' ifhr=',ifhr
925 ifmin = nint(rinc(3))
927 print*,
' in INITPOST ifhr ifmin fileName=',ifhr,ifmin,filename
931 print*,
'tstart= ',tstart
937 IF(tstart > 1.0e-2)
THEN
938 ifhr = ifhr+nint(tstart)
942 call w3movdat(rinc,jdate,idate)
947 print*,
'new forecast hours for restrt run= ',ifhr
948 print*,
'new start yr mo day hr min =',sdat(3),sdat(1) &
959 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
960 spval,recname(1),uh(ista_2l,jsta_2l,1),lm)
961 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
962 spval,recname(2),vh(ista_2l,jsta_2l,1),lm)
963 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
964 spval,recname(3),q(ista_2l,jsta_2l,1),lm)
965 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
966 spval,recname(4),t(ista_2l,jsta_2l,1),lm)
967 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
968 spval,recname(5),o3(ista_2l,jsta_2l,1),lm)
969 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
970 spval,recname(7),wh(ista_2l,jsta_2l,1),lm)
971 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
972 spval,recname(8),qqw(ista_2l,jsta_2l,1),lm)
973 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
974 spval,recname(9),dpres(ista_2l,jsta_2l,1),lm)
975 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
976 spval,recname(10),buf3d(ista_2l,jsta_2l,1),lm)
982 if (wh(i,j,l) < spval)
then
983 omga(i,j,l)=(-1.)*wh(i,j,l)*dpres(i,j,l)/abs(buf3d(i,j,l))
991 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
992 spval,recname(11),qqi(ista_2l,jsta_2l,1),lm)
993 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
994 spval,recname(12),qqr(ista_2l,jsta_2l,1),lm)
995 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
996 spval,recname(13),qqs(ista_2l,jsta_2l,1),lm)
997 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
998 spval,recname(14),qqg(ista_2l,jsta_2l,1),lm)
1004 cwm(i,j,l)=qqg(i,j,l)+qqs(i,j,l)+qqr(i,j,l)+qqi(i,j,l)+qqw(i,j,l)
1007 if(debugprint)print*,
'sample l,t,q,u,v,w= ',isa,jsa,l &
1008 ,t(isa,jsa,l),q(isa,jsa,l),uh(isa,jsa,l),vh(isa,jsa,l) &
1010 if(debugprint)print*,
'sample l cwm for FV3',l, &
1015 if ( imp_physics==11)
then
1017 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1018 spval,varname,cfr(ista_2l,jsta_2l,1),lm)
1021 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1022 spval,varname,cfr(ista_2l,jsta_2l,1),lm)
1033 if (aqfcmaq_on)
then
1043 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1044 spval,varname,ozcon(ista_2l,jsta_2l,1),lm)
1049 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1050 spval,varname,aacd(ista_2l,jsta_2l,1),lm)
1053 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1054 spval,varname,aalj(ista_2l,jsta_2l,1),lm)
1057 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1058 spval,varname,aalk1j(ista_2l,jsta_2l,1),lm)
1061 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1062 spval,varname,aalk2j(ista_2l,jsta_2l,1),lm)
1065 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1066 spval,varname,abnz1j(ista_2l,jsta_2l,1),lm)
1069 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1070 spval,varname,abnz2j(ista_2l,jsta_2l,1),lm)
1073 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1074 spval,varname,abnz3j(ista_2l,jsta_2l,1),lm)
1077 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1078 spval,varname,acaj(ista_2l,jsta_2l,1),lm)
1081 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1082 spval,varname,acet(ista_2l,jsta_2l,1),lm)
1085 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1086 spval,varname,acli(ista_2l,jsta_2l,1),lm)
1089 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1090 spval,varname,aclj(ista_2l,jsta_2l,1),lm)
1093 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1094 spval,varname,aclk(ista_2l,jsta_2l,1),lm)
1097 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1098 spval,varname,acors(ista_2l,jsta_2l,1),lm)
1100 varname=
'acro_primary'
1101 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1102 spval,varname,acro_primary(ista_2l,jsta_2l,1),lm)
1105 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1106 spval,varname,acrolein(ista_2l,jsta_2l,1),lm)
1109 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1110 spval,varname,aeci(ista_2l,jsta_2l,1),lm)
1113 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1114 spval,varname,aecj(ista_2l,jsta_2l,1),lm)
1117 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1118 spval,varname,afej(ista_2l,jsta_2l,1),lm)
1121 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1122 spval,varname,aglyj(ista_2l,jsta_2l,1),lm)
1125 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1126 spval,varname,ah2oi(ista_2l,jsta_2l,1),lm)
1129 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1130 spval,varname,ah2oj(ista_2l,jsta_2l,1),lm)
1133 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1134 spval,varname,ah2ok(ista_2l,jsta_2l,1),lm)
1137 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1138 spval,varname,ah3opi(ista_2l,jsta_2l,1),lm)
1141 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1142 spval,varname,ah3opj(ista_2l,jsta_2l,1),lm)
1145 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1146 spval,varname,ah3opk(ista_2l,jsta_2l,1),lm)
1149 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1150 spval,varname,aiso1j(ista_2l,jsta_2l,1),lm)
1153 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1154 spval,varname,aiso2j(ista_2l,jsta_2l,1),lm)
1157 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1158 spval,varname,aiso3j(ista_2l,jsta_2l,1),lm)
1161 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1162 spval,varname,aivpo1j(ista_2l,jsta_2l,1),lm)
1165 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1166 spval,varname,akj(ista_2l,jsta_2l,1),lm)
1169 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1170 spval,varname,ald2(ista_2l,jsta_2l,1),lm)
1172 varname=
'ald2_primary'
1173 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1174 spval,varname,ald2_primary(ista_2l,jsta_2l,1),lm)
1177 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1178 spval,varname,aldx(ista_2l,jsta_2l,1),lm)
1181 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1182 spval,varname,alvoo1i(ista_2l,jsta_2l,1),lm)
1185 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1186 spval,varname,alvoo1j(ista_2l,jsta_2l,1),lm)
1189 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1190 spval,varname,alvoo2i(ista_2l,jsta_2l,1),lm)
1193 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1194 spval,varname,alvoo2j(ista_2l,jsta_2l,1),lm)
1197 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1198 spval,varname,alvpo1i(ista_2l,jsta_2l,1),lm)
1201 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1202 spval,varname,alvpo1j(ista_2l,jsta_2l,1),lm)
1205 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1206 spval,varname,amgj(ista_2l,jsta_2l,1),lm)
1209 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1210 spval,varname,amnj(ista_2l,jsta_2l,1),lm)
1213 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1214 spval,varname,anai(ista_2l,jsta_2l,1),lm)
1217 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1218 spval,varname,anaj(ista_2l,jsta_2l,1),lm)
1221 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1222 spval,varname,anh4i(ista_2l,jsta_2l,1),lm)
1225 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1226 spval,varname,anh4j(ista_2l,jsta_2l,1),lm)
1229 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1230 spval,varname,anh4k(ista_2l,jsta_2l,1),lm)
1233 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1234 spval,varname,ano3i(ista_2l,jsta_2l,1),lm)
1237 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1238 spval,varname,ano3j(ista_2l,jsta_2l,1),lm)
1241 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1242 spval,varname,ano3k(ista_2l,jsta_2l,1),lm)
1245 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1246 spval,varname,aolgaj(ista_2l,jsta_2l,1),lm)
1249 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1250 spval,varname,aolgbj(ista_2l,jsta_2l,1),lm)
1253 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1254 spval,varname,aorgcj(ista_2l,jsta_2l,1),lm)
1257 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1258 spval,varname,aothri(ista_2l,jsta_2l,1),lm)
1261 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1262 spval,varname,aothrj(ista_2l,jsta_2l,1),lm)
1265 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1266 spval,varname,apah1j(ista_2l,jsta_2l,1),lm)
1269 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1270 spval,varname,apah2j(ista_2l,jsta_2l,1),lm)
1273 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1274 spval,varname,apah3j(ista_2l,jsta_2l,1),lm)
1277 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1278 spval,varname,apcsoj(ista_2l,jsta_2l,1),lm)
1281 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1282 spval,varname,aseacat(ista_2l,jsta_2l,1),lm)
1285 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1286 spval,varname,asij(ista_2l,jsta_2l,1),lm)
1289 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1290 spval,varname,aso4i(ista_2l,jsta_2l,1),lm)
1293 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1294 spval,varname,aso4j(ista_2l,jsta_2l,1),lm)
1297 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1298 spval,varname,aso4k(ista_2l,jsta_2l,1),lm)
1301 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1302 spval,varname,asoil(ista_2l,jsta_2l,1),lm)
1305 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1306 spval,varname,asqtj(ista_2l,jsta_2l,1),lm)
1309 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1310 spval,varname,asvoo1i(ista_2l,jsta_2l,1),lm)
1313 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1314 spval,varname,asvoo1j(ista_2l,jsta_2l,1),lm)
1317 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1318 spval,varname,asvoo2i(ista_2l,jsta_2l,1),lm)
1321 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1322 spval,varname,asvoo2j(ista_2l,jsta_2l,1),lm)
1325 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1326 spval,varname,asvoo3j(ista_2l,jsta_2l,1),lm)
1329 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1330 spval,varname,asvpo1i(ista_2l,jsta_2l,1),lm)
1333 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1334 spval,varname,asvpo1j(ista_2l,jsta_2l,1),lm)
1337 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1338 spval,varname,asvpo2i(ista_2l,jsta_2l,1),lm)
1341 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1342 spval,varname,asvpo2j(ista_2l,jsta_2l,1),lm)
1345 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1346 spval,varname,asvpo3j(ista_2l,jsta_2l,1),lm)
1349 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1350 spval,varname,atij(ista_2l,jsta_2l,1),lm)
1353 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1354 spval,varname,atol1j(ista_2l,jsta_2l,1),lm)
1357 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1358 spval,varname,atol2j(ista_2l,jsta_2l,1),lm)
1361 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1362 spval,varname,atol3j(ista_2l,jsta_2l,1),lm)
1365 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1366 spval,varname,atrp1j(ista_2l,jsta_2l,1),lm)
1369 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1370 spval,varname,atrp2j(ista_2l,jsta_2l,1),lm)
1373 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1374 spval,varname,axyl1j(ista_2l,jsta_2l,1),lm)
1377 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1378 spval,varname,axyl2j(ista_2l,jsta_2l,1),lm)
1381 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1382 spval,varname,axyl3j(ista_2l,jsta_2l,1),lm)
1385 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1386 spval,varname,pm25ac(ista_2l,jsta_2l,1),lm)
1389 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1390 spval,varname,pm25at(ista_2l,jsta_2l,1),lm)
1393 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1394 spval,varname,pm25co(ista_2l,jsta_2l,1),lm)
1437 apomi(i,j,l) = alvpo1i(i,j,l) &
1438 +asvpo1i(i,j,l) + asvpo2i(i,j,l)
1440 apomj(i,j,l) = alvpo1j(i,j,l) &
1441 +asvpo1j(i,j,l) + asvpo2j(i,j,l) + asvpo3j(i,j,l) &
1444 asomi(i,j,l) = alvoo1i(i,j,l) + alvoo2i(i,j,l) &
1445 +asvoo1i(i,j,l) + asvoo2i(i,j,l)
1447 asomj(i,j,l) = axyl1j(i,j,l) + axyl2j(i,j,l) + axyl3j(i,j,l) &
1448 +atol1j(i,j,l) + atol2j(i,j,l) + atol3j(i,j,l) &
1449 +abnz1j(i,j,l) + abnz2j(i,j,l) + abnz3j(i,j,l) &
1450 +aiso1j(i,j,l) + aiso2j(i,j,l) + aiso3j(i,j,l) &
1451 +atrp1j(i,j,l) + atrp2j(i,j,l) + asqtj(i,j,l) &
1452 +aalk1j(i,j,l) + aalk2j(i,j,l) &
1453 +apah1j(i,j,l) + apah2j(i,j,l) + apah3j(i,j,l) &
1454 +aorgcj(i,j,l) + aolgbj(i,j,l) + aolgaj(i,j,l) &
1455 +alvoo1j(i,j,l) + alvoo2j(i,j,l) &
1456 +asvoo1j(i,j,l) + asvoo2j(i,j,l) + asvoo3j(i,j,l) &
1459 aomi(i,j,l) = apomi(i,j,l) + asomi(i,j,l)
1460 aomj(i,j,l) = apomj(i,j,l) + asomj(i,j,l)
1462 atoti(i,j,l) = aso4i(i,j,l) + ano3i(i,j,l) + anh4i(i,j,l) &
1463 + anai(i,j,l) + acli(i,j,l) + aeci(i,j,l) &
1464 + aomi(i,j,l) +aothri(i,j,l)
1466 atotj(i,j,l) = aso4j(i,j,l) + ano3j(i,j,l) + anh4j(i,j,l) &
1467 + anaj(i,j,l) + aclj(i,j,l) + aecj(i,j,l) &
1468 + aomj(i,j,l) +aothrj(i,j,l) &
1469 + afej(i,j,l) + asij(i,j,l) + atij(i,j,l) &
1470 + acaj(i,j,l) + amgj(i,j,l) + amnj(i,j,l) &
1471 + aalj(i,j,l) + akj(i,j,l)
1473 atotk(i,j,l) = asoil(i,j,l) + acors(i,j,l) + aseacat(i,j,l)&
1475 +aso4k(i,j,l) + ano3k(i,j,l) + anh4k(i,j,l)
1477 pmtf(i,j,l) = atoti(i,j,l)*pm25at(i,j,l) &
1478 + atotj(i,j,l)*pm25ac(i,j,l) &
1479 + atotk(i,j,l)*pm25co(i,j,l)
1484 deallocate (aacd, aalj, aalk1j, aalk2j, abnz1j, abnz2j, abnz3j)
1485 deallocate (acaj, acet, acli, aclj, aclk)
1486 deallocate (acors, acro_primary, acrolein)
1488 deallocate (aeci, aecj, afej, aglyj, ah2oi, ah2oj, ah2ok)
1489 deallocate (ah3opi, ah3opj, ah3opk, aiso1j, aiso2j, aiso3j)
1491 deallocate (aivpo1j, akj, ald2, ald2_primary, aldx)
1492 deallocate (alvoo1i, alvoo1j, alvoo2i, alvoo2j, alvpo1i, alvpo1j)
1494 deallocate (amgj, amnj, anai, anaj, anak)
1495 deallocate (anh4i, anh4j, anh4k, ano3i, ano3j, ano3k)
1497 deallocate (aolgaj, aolgbj, aomi, aomj)
1498 deallocate (aorgcj, aothri, aothrj, apah1j, apah2j, apah3j)
1500 deallocate (apcsoj, apomi, apomj, aseacat, asij)
1501 deallocate (aso4i, aso4j, aso4k, asoil, asomi, asomj, asqtj)
1503 deallocate (asvoo1i, asvoo1j, asvoo2i, asvoo2j, asvoo3j)
1504 deallocate (asvpo1i, asvpo1j, asvpo2i, asvpo2j, asvpo3j)
1506 deallocate (atij, atol1j, atol2j, atol3j, atrp1j, atrp2j)
1507 deallocate (atoti, atotj, atotk, axyl1j, axyl2j, axyl3j)
1509 deallocate (pm25ac, pm25at, pm25co)
1515 if (modelname ==
'FV3R')
then
1518 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1519 spval,varname,w_up_max(ista_2l,jsta_2l))
1520 if(debugprint)print*,
'sample ',varname,
' = ',w_up_max(isa,jsa)
1523 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1524 spval,varname,w_dn_max(ista_2l,jsta_2l))
1525 if(debugprint)print*,
'sample ',varname,
' = ',w_dn_max(isa,jsa)
1528 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1529 spval,varname,up_heli_max(ista_2l,jsta_2l))
1530 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_max(isa,jsa)
1533 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1534 spval,varname,up_heli_min(ista_2l,jsta_2l))
1535 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_min(isa,jsa)
1538 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1539 spval,varname,up_heli_max03(ista_2l,jsta_2l))
1540 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_max03(isa,jsa)
1543 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1544 spval,varname,up_heli_min03(ista_2l,jsta_2l))
1545 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_min03(isa,jsa)
1549 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1550 spval,varname,rel_vort_max01(ista_2l,jsta_2l))
1551 if(debugprint)print*,
'sample ',varname,
' = ',rel_vort_max01(isa,jsa)
1554 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1555 spval,varname,rel_vort_max(ista_2l,jsta_2l))
1556 if(debugprint)print*,
'sample ',varname,
' =',rel_vort_max(isa,jsa)
1558 varname=
'maxvorthy1'
1559 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1560 spval,varname,rel_vort_maxhy1(ista_2l,jsta_2l))
1561 if(debugprint)print*,
'sample ',varname,
' =',rel_vort_maxhy1(isa,jsa)
1566 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1567 spval,varname,pint(ista_2l,jsta_2l,lp1))
1574 if(debugprint)print*,
'sample ',varname,
' =',pint(isa,jsa,lp1)
1587 if (dpres(i,j,l-1)<spval .and. pint(i,j,l-1)<spval)
then
1588 pint(i,j,l)= pint(i,j,l-1) + dpres(i,j,l-1)
1602 if (pint(i,j,l)<spval .and. pint(i,j,l+1)<spval)
then
1603 pmid(i,j,l)=0.5*(pint(i,j,l)+pint(i,j,l+1))
1615 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1616 spval,varname,zint(ista_2l,jsta_2l,lp1))
1617 if(debugprint)print*,
'sample ',varname,
' =',zint(isa,jsa,lp1)
1620 if (zint(i,j,lp1) /= spval)
then
1621 fis(i,j) = zint(i,j,lp1) * grav
1631 if(zint(i,j,l+1)/=spval .and. buf3d(i,j,l)/=spval)
then
1633 zint(i,j,l)=zint(i,j,l+1)+abs(buf3d(i,j,l))
1640 if(debugprint)print*,
'sample zint= ',isa,jsa,l,zint(isa,jsa,l)
1646 alpint(i,j,l)=log(pint(i,j,l))
1654 if(zint(i,j,l+1)/=spval .and. zint(i,j,l)/=spval &
1655 .and. pmid(i,j,l)/=spval)
then
1656 zmid(i,j,l)=zint(i,j,l+1)+(zint(i,j,l)-zint(i,j,l+1))* &
1657 (log(pmid(i,j,l))-alpint(i,j,l+1))/ &
1658 (alpint(i,j,l)-alpint(i,j,l+1))
1659 if(zmid(i,j,l)>1.0e6)print*,
'bad Hmid ',i,j,l,zmid(i,j,l)
1673 status=nf90_close(ncid3d)
1678 status=nf90_get_att(ncid2d,nf90_global,
'IVEGSRC',ivegsrc)
1679 if (status /= 0)
then
1680 print*,varname,
' not found-Assigned 1 for IGBP as default'
1683 if (me == 0) print*,
'IVEGSRC= ',ivegsrc
1688 else if(ivegsrc==1)
then
1690 else if(ivegsrc==0)
then
1693 if (me == 0) print*,
'novegtype= ',novegtype
1695 status=nf90_get_att(ncid2d,nf90_global,
'fhzero',fhzero)
1696 if (status /= 0)
then
1697 print*,
'fhzero not found-Assigned 3 hours as default'
1700 if (me == 0) print*,
'fhzero= ',fhzero
1702 status=nf90_get_att(ncid2d,nf90_global,
'dtp',dtp)
1703 if (status /= 0)
then
1704 print*,
'dtp not found-Assigned 90s as default'
1707 if (me == 0) print*,
'dtp= ',dtp
1709 if(imp_physics==5 .or. imp_physics==85 .or. imp_physics==95)
then
1710 CALL microinit(imp_physics)
1713 tprec = float(fhzero)
1714 if(ifhr>240)tprec=12.
1721 print*,
'tprec = ',tprec
1725 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1726 spval,varname,ref_10cm(ista_2l,jsta_2l,1),lm)
1734 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1735 spval,varname,q2(ista_2l,jsta_2l,1),lm)
1739 q2(i,j,l)=q2(i,j,l)/2.0
1746 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1747 spval,varname,qqnifa(ista_2l,jsta_2l,1),lm)
1751 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1752 spval,varname,qqnwfa(ista_2l,jsta_2l,1),lm)
1755 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1757 if(debugprint)print*,
'sample ',varname,
' =',sm((ista+iend)/2,(jsta+jend)/2)
1762 if (sm(i,j) /= spval) sm(i,j) = 1.0 - sm(i,j)
1769 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1771 if(debugprint)print*,
'sample ',varname,
' = ',sice(isa,jsa)
1784 if (sm(i,j) /= spval .and. sm(i,j) == 0.0) sice(i,j) = 0.0
1791 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1793 if(debugprint)print*,
'sample ',varname,
' = ',pblh(isa,jsa)
1797 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1798 spval,varname,ustar)
1803 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1809 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1810 spval,varname,sfcexc)
1814 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1815 spval,varname,acond)
1816 if(debugprint)print*,
'sample ',varname,
' = ',acond(isa,jsa)
1819 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1820 spval,varname,avgalbedo)
1824 if (avgalbedo(i,j) /= spval) avgalbedo(i,j) = avgalbedo(i,j) * 0.01
1827 if(debugprint)print*,
'sample ',varname,
' = ',avgalbedo(isa,jsa)
1831 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1839 if (ths(i,j) /= spval)
then
1841 ths(i,j) = ths(i,j) * (p1000/pint(i,j,lp1))**capa
1847 if (sm(i,j) /= 0.0 .and. ths(i,j) < spval )
then
1848 if (sice(i,j) >= 0.15)
then
1851 sst(i,j) = ths(i,j) * (pint(i,j,lp1)/p1000)**capa
1858 if(debugprint)print*,
'sample ',varname,
' = ',ths(isa,jsa)
1862 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1863 spval,varname,fdnsst)
1864 if(debugprint)print*,
'sample ',varname,
' = ',fdnsst(isa,jsa)
1879 varname=
'cpratb_ave'
1880 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1881 spval,varname,avgcprate)
1886 if (avgcprate(i,j) /= spval) avgcprate(i,j) = avgcprate(i,j) * (dtq2*0.001)
1895 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1896 spval,varname,avgcprate_cont)
1900 if (avgcprate_cont(i,j) /= spval) avgcprate_cont(i,j) = &
1901 avgcprate_cont(i,j) * (dtq2*0.001)
1909 varname=
'prateb_ave'
1910 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1911 spval,varname,avgprec)
1915 if(avgprec(i,j) /= spval)avgprec(i,j)=avgprec(i,j)*(dtq2*0.001)
1919 if(debugprint)print*,
'sample ',varname,
' = ',avgprec(isa,jsa)
1924 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1925 spval,varname,avgprec_cont)
1930 if (avgprec_cont(i,j) /=spval)avgprec_cont(i,j)=avgprec_cont(i,j) &
1935 if(debugprint)print*,
'sample ',varname,
' = ',avgprec_cont(isa,jsa)
1938 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1943 if (prec(i,j) /= spval) prec(i,j)=prec(i,j)* (dtq2*0.001) &
1950 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1951 spval,varname,cprate)
1955 if (cprate(i,j) /= spval)
then
1956 cprate(i,j) = max(0.,cprate(i,j)) * (dtq2*0.001) &
1968 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1969 spval,varname,prate_max)
1970 if(debugprint)print*,
'sample ',varname,
' = ',prate_max(isa,jsa)
1973 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1974 spval,varname,refd_max)
1975 if(debugprint)print*,
'sample ',varname,
' = ',refd_max(isa,jsa)
1977 varname=
'refdmax263k'
1978 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1979 spval,varname,refdm10c_max)
1980 if(debugprint)print*,
'sample ',varname,
' = ',refdm10c_max(isa,jsa)
1984 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1985 spval,varname,u10max)
1986 if(debugprint)print*,
'sample ',varname,
' = ',u10max(isa,jsa)
1989 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1990 spval,varname,v10max)
1991 if(debugprint)print*,
'sample ',varname,
' = ',v10max(isa,jsa)
1994 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1995 spval,varname,wspd10max)
1996 if(debugprint)print*,
'sample ',varname,
' = ',wspd10max(isa,jsa)
2000 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2006 if (sm(i,j) == 1.0 .and. sice(i,j)==0.) sno(i,j) = spval
2009 if(debugprint)print*,
'sample ',varname,
' = ',sno(isa,jsa)
2013 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2014 spval,varname,snoavg)
2018 if (sm(i,j)==1.0 .and. sice(i,j)==0.) snoavg(i,j)=spval
2019 if(snoavg(i,j)/=spval)snoavg(i,j)=snoavg(i,j)/100.
2025 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2030 if (sm(i,j)==1.0 .and. sice(i,j)==0.) si(i,j)=spval
2031 if (si(i,j) /= spval) si(i,j) = si(i,j) * 1000.0
2040 if(debugprint)print*,
'sample ',varname,
' = ',si(isa,jsa)
2044 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2045 spval,varname,tshltr)
2046 if(debugprint)print*,
'sample ',varname,
' = ',tshltr(isa,jsa)
2051 pshltr(i,j)=pint(i,j,lm+1)*exp(-0.068283/tshltr(i,j))
2052 tshltr(i,j)= tshltr(i,j)*(p1000/pshltr(i,j))**capa
2061 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2062 spval,varname,qshltr)
2063 if(debugprint)print*,
'sample ',varname,
' = ',qshltr(isa,jsa)
2066 varname=
'tcdc_aveclm'
2067 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2068 spval,varname,avgtcdc)
2073 if (avgtcdc(i,j) /= spval) avgtcdc(i,j) = avgtcdc(i,j) * 0.01
2076 if(debugprint)print*,
'sample ',varname,
' = ',avgtcdc(isa,jsa)
2080 do j=jsta_2l,jend_2u
2081 do i=ista_2l,iend_2u
2089 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2090 spval,varname,mxsnal)
2094 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2095 spval,varname,landfrac)
2101 tlmh = t(i,j,lm) * t(i,j,lm)
2102 sigt4(i,j) = 5.67e-8 * tlmh * tlmh
2110 do j=jsta_2l,jend_2u
2111 do i=ista_2l,iend_2u
2119 varname=
'tcdc_avehcl'
2120 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2121 spval,varname,avgcfrach)
2126 if (avgcfrach(i,j) /= spval) avgcfrach(i,j) = avgcfrach(i,j) * 0.01
2129 if(debugprint)print*,
'sample ',varname,
' = ',avgcfrach(isa,jsa)
2132 varname=
'tcdc_avelcl'
2133 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2134 spval,varname,avgcfracl)
2139 if (avgcfracl(i,j) /= spval) avgcfracl(i,j) = avgcfracl(i,j) * 0.01
2142 if(debugprint)print*,
'sample ',varname,
' = ',avgcfracl(isa,jsa)
2145 varname=
'tcdc_avemcl'
2146 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2147 spval,varname,avgcfracm)
2152 if (avgcfracm(i,j) /= spval) avgcfracm(i,j) = avgcfracm(i,j) * 0.01
2155 if(debugprint)print*,
'sample ',varname,
' = ',avgcfracm(isa,jsa)
2159 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2160 spval,varname,cnvcfr)
2165 if (cnvcfr(i,j) /= spval) cnvcfr(i,j)= cnvcfr(i,j) * 0.01
2172 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2175 do j = jsta_2l, jend_2u
2177 if (buf(i,j) < spval)
then
2178 islope(i,j) = nint(buf(i,j))
2188 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2193 if (cmc(i,j) /= spval) cmc(i,j) = cmc(i,j) * 0.001
2194 if (sm(i,j) /= 0.0) cmc(i,j) = spval
2200 do j=jsta_2l,jend_2u
2201 do i=ista_2l,iend_2u
2208 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2213 if(sr(i,j) /= spval)
then
2215 sr(i,j)=min(1.,max(0.,sr(i,j)))
2222 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2227 if (sice(i,j) == spval .or. sice(i,j) == 0.) ti(i,j)=spval
2233 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2234 spval,varname,vegfrc)
2238 if (vegfrc(i,j) /= spval)
then
2239 vegfrc(i,j) = vegfrc(i,j) * 0.01
2249 if (sm(i,j) /= 0.0) vegfrc(i,j) = spval
2279 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2280 spval,varname,sh2o(ista_2l,jsta_2l,1))
2285 if (sm(i,j) /= 0.0) sh2o(i,j,1) = spval
2288 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,1)
2291 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2292 spval,varname,sh2o(ista_2l,jsta_2l,2))
2297 if (sm(i,j) /= 0.0) sh2o(i,j,2) = spval
2300 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,2)
2303 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2304 spval,varname,sh2o(ista_2l,jsta_2l,3))
2309 if (sm(i,j) /= 0.0) sh2o(i,j,3) = spval
2312 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,3)
2315 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2316 spval,varname,sh2o(ista_2l,jsta_2l,4))
2321 if (sm(i,j) /= 0.0) sh2o(i,j,4) = spval
2324 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,4)
2328 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2329 spval,varname,smc(ista_2l,jsta_2l,1))
2334 if (sm(i,j) /= 0.0) smc(i,j,1) = spval
2337 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,1)
2340 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2341 spval,varname,smc(ista_2l,jsta_2l,2))
2346 if (sm(i,j) /= 0.0) smc(i,j,2) = spval
2349 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,2)
2352 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2353 spval,varname,smc(ista_2l,jsta_2l,3))
2358 if (sm(i,j) /= 0.0) smc(i,j,3) = spval
2361 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,3)
2364 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2365 spval,varname,smc(ista_2l,jsta_2l,4))
2370 if (sm(i,j) /= 0.0) smc(i,j,4) = spval
2373 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,4)
2378 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2379 spval,varname,smc(ista_2l,jsta_2l,5))
2384 if (sm(i,j) /= 0.0) smc(i,j,5) = spval
2387 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,5)
2390 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2391 spval,varname,smc(ista_2l,jsta_2l,6))
2396 if (sm(i,j) /= 0.0) smc(i,j,6) = spval
2399 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,6)
2402 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2403 spval,varname,smc(ista_2l,jsta_2l,7))
2408 if (sm(i,j) /= 0.0) smc(i,j,7) = spval
2411 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,7)
2414 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2415 spval,varname,smc(ista_2l,jsta_2l,8))
2420 if (sm(i,j) /= 0.0) smc(i,j,8) = spval
2423 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,8)
2426 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2427 spval,varname,smc(ista_2l,jsta_2l,9))
2432 if (sm(i,j) /= 0.0) smc(i,j,9) = spval
2435 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,9)
2441 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2442 spval,varname,stc(ista_2l,jsta_2l,1))
2447 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,1) = spval
2451 if(debugprint)print*,
'sample l',
'stc',
' = ',1,stc(isa,jsa,1)
2454 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2455 spval,varname,stc(ista_2l,jsta_2l,2))
2460 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,2) = spval
2464 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,2)
2467 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2468 spval,varname,stc(ista_2l,jsta_2l,3))
2473 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,3) = spval
2477 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,3)
2480 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2481 spval,varname,stc(ista_2l,jsta_2l,4))
2486 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,4) = spval
2490 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,4)
2495 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2496 spval,varname,stc(ista_2l,jsta_2l,5))
2501 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,5) = spval
2505 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,5)
2508 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2509 spval,varname,stc(ista_2l,jsta_2l,6))
2514 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,6) = spval
2518 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,6)
2521 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2522 spval,varname,stc(ista_2l,jsta_2l,7))
2527 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,7) = spval
2531 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,7)
2534 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2535 spval,varname,stc(ista_2l,jsta_2l,8))
2540 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,8) = spval
2544 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,8)
2547 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2548 spval,varname,stc(ista_2l,jsta_2l,9))
2553 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,9) = spval
2557 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,9)
2577 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2578 spval,varname,alwin)
2582 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2583 spval,varname,rlwin)
2587 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2588 spval,varname,alwout)
2592 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2593 spval,varname,radot)
2599 if (alwout(i,j) /= spval) alwout(i,j) = -alwout(i,j)
2605 varname=
'ulwrf_avetoa'
2606 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2607 spval,varname,alwtoa)
2616 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2617 spval,varname,aswin)
2622 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2623 spval,varname,rswin)
2628 do j=jsta_2l,jend_2u
2629 do i=ista_2l,iend_2u
2636 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2637 spval,varname,auvbin)
2642 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2643 spval,varname,auvbinc)
2648 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2649 spval,varname,aswout)
2654 if (aswout(i,j) /= spval) aswout(i,j) = -aswout(i,j)
2661 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2662 spval,varname,rswout)
2665 varname=
'dswrf_avetoa'
2666 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2667 spval,varname,aswintoa)
2671 varname=
'uswrf_avetoa'
2672 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2673 spval,varname,aswtoa)
2679 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2680 spval,varname,sfcshx)
2685 if (sfcshx(i,j) /= spval) sfcshx(i,j) = -sfcshx(i,j)
2692 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2697 if (twbs(i,j) /= spval) twbs(i,j) = -twbs(i,j)
2708 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2709 spval,varname,sfclhx)
2714 if (sfclhx(i,j) /= spval) sfclhx(i,j) = -sfclhx(i,j)
2721 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2726 if (qwbs(i,j) /= spval) qwbs(i,j) = -qwbs(i,j)
2730 if(me==0)print*,
'rdaod= ',rdaod
2734 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2735 spval,varname,aod550)
2738 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2739 spval,varname,du_aod550)
2742 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2743 spval,varname,ss_aod550)
2746 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2747 spval,varname,su_aod550)
2750 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2751 spval,varname,oc_aod550)
2754 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2755 spval,varname,bc_aod550)
2760 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2761 spval,varname,subshx)
2766 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) subshx(i,j) = spval
2773 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2774 spval,varname,grnflx)
2779 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) grnflx(i,j) = spval
2785 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2786 spval,varname,sfcux)
2791 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2792 spval,varname,sfcvx)
2798 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2799 spval,varname,sfcuxi)
2800 if(debugprint)print*,
'sample l',varname,
' = ',1,sfcuxi(isa,jsa)
2804 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2805 spval,varname,sfcvxi)
2806 if(debugprint)print*,
'sample l',varname,
' = ',1,sfcvxi(isa,jsa)
2810 do j=jsta_2l,jend_2u
2811 do i=ista_2l,iend_2u
2818 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2819 spval,varname,gtaux)
2824 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2825 spval,varname,gtauy)
2830 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2831 spval,varname,avgpotevp)
2836 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) avgpotevp(i,j) = spval
2843 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2844 spval,varname,potevp)
2849 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) potevp(i,j) = spval
2855 do j=jsta_2l,jend_2u
2856 do i=ista_2l,iend_2u
2858 rlwtt(i,j,l) = spval
2860 rswtt(i,j,l) = spval
2862 tcucn(i,j,l) = spval
2863 tcucns(i,j,l) = spval
2865 train(i,j,l) = spval
2877 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2889 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2901 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2909 do j = jsta_2l, jend_2u
2911 if (buf(i,j) < spval)
then
2912 ivgtyp(i,j) = nint(buf(i,j))
2922 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2926 do j = jsta_2l, jend_2u
2928 if (buf(i,j) < spval)
then
2929 isltyp(i,j) = nint(buf(i,j))
2938 do j=jsta_2l,jend_2u
2939 do i=ista_2l,iend_2u
2946 thz0(i,j) = ths(i,j)
2954 do j=jsta_2l,jend_2u
2955 do i=ista_2l,iend_2u
2956 el_pbl(i,j,l) = spval
2957 exch_h(i,j,l) = spval
2969 varname=
'prescnvclt'
2970 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2978 if(ptop(i,j) <= 0.0) ptop(i,j) = spval
2983 if(ptop(i,j) < spval)
then
2985 if(ptop(i,j) <= pmid(i,j,l))
then
2998 varname=
'prescnvclb'
2999 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3006 if(pbot(i,j) <= 0.0) pbot(i,j) = spval
3013 if(pbot(i,j) < spval)
then
3015 if(pbot(i,j) >= pmid(i,j,l))
then
3025 if(debugprint)print*,
'sample hbot = ',hbot(isa,jsa)
3027 varname=
'pres_avelct'
3028 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3029 spval,varname,ptopl)
3033 varname=
'pres_avelcb'
3034 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3035 spval,varname,pbotl)
3039 varname=
'tmp_avelct'
3040 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3041 spval,varname,ttopl)
3045 varname=
'pres_avemct'
3046 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3047 spval,varname,ptopm)
3051 varname=
'pres_avemcb'
3052 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3053 spval,varname,pbotm)
3057 varname=
'tmp_avemct'
3058 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3059 spval,varname,ttopm)
3063 varname=
'pres_avehct'
3064 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3065 spval,varname,ptoph)
3069 varname=
'pres_avehcb'
3070 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3071 spval,varname,pboth)
3075 varname=
'tmp_avehct'
3076 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3077 spval,varname,ttoph)
3081 varname=
'tcdc_avebndcl'
3082 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3083 spval,varname,pblcfr)
3087 do j = jsta_2l, jend_2u
3089 if (pblcfr(i,j) < spval) pblcfr(i,j) = pblcfr(i,j) * 0.01
3094 varname=
'cwork_aveclm'
3095 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3096 spval,varname,cldwork)
3101 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3102 spval,varname,runoff)
3107 if (sm(i,j) /= 0.0) runoff(i,j) = spval
3113 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3119 if (sm(i,j) /= 0.0) twa(i,j) = spval
3126 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3127 spval,varname,tecan)
3132 if (sm(i,j) /= 0.0) tecan(i,j) = spval
3138 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3139 spval,varname,tetran)
3144 if (sm(i,j) /= 0.0) tetran(i,j) = spval
3150 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3151 spval,varname,tedir)
3156 if (sm(i,j) /= 0.0) tedir(i,j) = spval
3162 if(modelname==
'GFS') varname=
'tmax_max2m'
3163 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3164 spval,varname,maxtshltr)
3168 if(modelname==
'GFS') varname=
'tmin_min2m'
3169 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3170 spval,varname,mintshltr)
3176 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3177 spval,varname,maxrhshltr)
3181 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3182 spval,varname,minrhshltr)
3187 varname=
'spfhmax_max2m'
3188 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3189 spval,varname,maxqshltr)
3194 varname=
'spfhmin_min2m'
3195 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3196 spval,varname,minqshltr)
3200 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3201 spval,varname,dzice)
3206 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3207 spval,varname,smcwlt)
3212 if (sm(i,j) /= 0.0) smcwlt(i,j) = spval
3219 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3220 spval,varname,suntime)
3224 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3225 spval,varname,fieldcapa)
3230 if (sm(i,j) /= 0.0) fieldcapa(i,j) = spval
3237 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3238 spval,varname,avisbeamswin)
3244 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3245 spval,varname,avisdiffswin)
3249 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3250 spval,varname,airbeamswin)
3254 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3255 spval,varname,airdiffswin)
3259 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3260 spval,varname,alwoutc)
3264 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3265 spval,varname,alwtoac)
3269 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3270 spval,varname,aswoutc)
3274 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3275 spval,varname,aswtoac)
3279 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3280 spval,varname,alwinc)
3284 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3285 spval,varname,aswinc)
3289 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3290 spval,varname,ssroff)
3295 if (sm(i,j) /= 0.0) ssroff(i,j) = spval
3301 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3302 spval,varname,avgedir)
3307 if (sm(i,j) /= 0.0) avgedir(i,j) = spval
3313 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3314 spval,varname,avgecan)
3319 if (sm(i,j) /= 0.0) avgecan(i,j) = spval
3325 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3331 if (sm(i,j) /= 0.0) paha(i,j) = spval
3337 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3343 if (sm(i,j) /= 0.0) pahi(i,j) = spval
3349 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3350 spval,varname,avgetrans)
3355 if (sm(i,j) /= 0.0) avgetrans(i,j) = spval
3361 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3362 spval,varname,avgesnow)
3367 if (sm(i,j)==1.0 .and. sice(i,j)==0.) avgesnow(i,j)=spval
3373 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3374 spval,varname,smstot)
3379 if (sm(i,j) /= 0.0) smstot(i,j) = spval
3385 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3386 spval,varname,snopcx)
3391 if (sm(i,j) /= 0.0) snopcx(i,j) = spval
3397 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3414 status=nf90_close(ncid2d)
3445 CALL table(ptbl,ttbl,pt_tbl, &
3446 rdq,rdth,rdp,rdthe,pl,thl,qs0,sqs,sthe,the0)
3448 CALL tableq(ttblq,rdpq,rdtheq,plq,thl,stheq,the0q)
3453 WRITE(6,*)
' SPL (POSTED PRESSURE LEVELS) BELOW: '
3454 WRITE(6,51) (spl(l),l=1,lsm)
3455 50
FORMAT(14(f4.1,1x))
3456 51
FORMAT(8(f8.1,1x))
3461 alsl(l) = log(spl(l))
3466 print*,
'writing out igds'
3470 if(maptype == 1)
THEN
3472 WRITE(6,*)
'igd(1)=',3
3475 WRITE(igdout)latstart
3476 WRITE(igdout)lonstart
3483 WRITE(igdout)truelat2
3484 WRITE(igdout)truelat1
3486 ELSE IF(maptype == 2)
THEN
3490 WRITE(igdout)latstart
3491 WRITE(igdout)lonstart
3498 WRITE(igdout)truelat2
3499 WRITE(igdout)truelat1
3505 if (truelat1 < 0.)
THEN
3511 CALL msfps(lat,truelat1*0.001,psmapf)
3513 ELSE IF(maptype == 3)
THEN
3517 WRITE(igdout)latstart
3518 WRITE(igdout)lonstart
3520 WRITE(igdout)latlast
3521 WRITE(igdout)lonlast
3522 WRITE(igdout)truelat1
3528 ELSE IF(maptype == 0 .OR. maptype == 203)
THEN
3532 WRITE(igdout)latstart
3533 WRITE(igdout)lonstart
3552 subroutine read_netcdf_3d_para(ncid,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3553 spval,varname,buf,lm)
3556 use ctlblk_mod
, only : me
3561 character(len=20),
intent(in) :: varname
3562 real,
intent(in) :: spval
3563 integer,
intent(in) :: ncid,im,jm,lm,jsta_2l,jend_2u,jsta,jend
3564 integer,
intent(in) :: ista_2l,iend_2u,ista,iend
3565 real,
intent(out) :: buf(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
3566 integer :: varid,iret,ii,jj,i,j,l,kk
3567 integer :: start(3), count(3), stride(3)
3568 real,
parameter :: spval_netcdf=9.99e+20
3571 iret = nf90_inq_varid(ncid,trim(varname),varid)
3573 if (me == 0) print*,varname,
" not found -Assigned missing values"
3583 iret = nf90_get_att(ncid,varid,
"_FillValue",fill_value)
3584 if (iret /= 0) fill_value = spval_netcdf
3585 start = (/ista,jsta,1/)
3588 count = (/ii,jj,lm/)
3589 iret = nf90_get_var(ncid,varid,buf(ista:iend,jsta:jend,1:lm),start=start,count=count)
3591 print*,
" iret /=0, Error in reading varid "
3596 if(abs(buf(i,j,l)-fill_value)<small)buf(i,j,l)=spval
3602 end subroutine read_netcdf_3d_para
3604 subroutine read_netcdf_2d_para(ncid,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3608 use ctlblk_mod
, only : me
3613 character(len=20),
intent(in) :: varname
3614 real,
intent(in) :: spval
3615 integer,
intent(in) :: ncid,jsta_2l,jend_2u,jsta,jend,ista_2l,iend_2u,ista,iend
3616 real,
intent(out) :: buf(ista_2l:iend_2u,jsta_2l:jend_2u)
3617 integer :: varid,iret,ii,jj,i,j,l,kk
3618 integer :: start(2), count(2)
3619 real,
parameter :: spval_netcdf=9.99e+20
3622 iret = nf90_inq_varid(ncid,trim(varname),varid)
3624 if (me==0) print*,varname,
" not found -Assigned missing values"
3632 iret = nf90_get_att(ncid,varid,
"_FillValue",fill_value)
3633 if (iret /= 0) fill_value = spval_netcdf
3634 start = (/ista,jsta/)
3638 iret = nf90_get_var(ncid,varid,buf(ista:iend,jsta:jend),start=start,count=count)
3640 print*,
" iret /=0, Error in reading varid "
3644 if(abs(buf(i,j)-fill_value)<small)buf(i,j)=spval
3649 end subroutine read_netcdf_2d_para
elemental real function, public fpvsnew(t)
calcape() computes CAPE/CINS and other storm related variables.