47 use vrbls4d,
only: dust, salt, suso, soot, waso, smoke, fv3dust, coarsepm, &
49 use vrbls3d,
only: t, q, uh, vh, pmid, pint, alpint, dpres, zint, zmid, o3, &
50 qqr, qqs, cwm, qqi, qqw, omga, rhomid, q2, cfr, rlwtt, rswtt, tcucn, &
51 tcucns, train, el_pbl, exch_h, vdifftt, vdiffmois, dconvmois, nradtt, &
52 o3vdiff, o3prod, o3tndy, mwpv, unknown, vdiffzacce, zgdrag,cnvctummixing, &
53 vdiffmacce, mgdrag, cnvctvmmixing, ncnvctcfrac, cnvctumflx, cnvctdmflx, &
54 cnvctzgdrag, sconvmois, cnvctmgdrag, cnvctdetmflx, duwt, duem, dusd, dudp, &
55 dusv,ssem,sssd,ssdp,sswt,sssv,bcem,bcsd,bcdp,bcwt,bcsv,ocem,ocsd,ocdp,ocwt,ocsv, &
56 wh, qqg, ref_10cm, qqnifa, qqnwfa, avgpmtf, avgozcon, aextc55, taod5503d, &
59 use vrbls2d,
only: f, pd, fis, pblh, ustar, z0, ths, qs, twbs, qwbs, avgcprate, &
60 cprate, avgprec, prec, lspa, sno, sndepac, si, cldefi, th10, q10, tshltr, pshltr, &
61 tshltr, albase, avgalbedo, avgtcdc, czen, czmean, mxsnal, landfrac, radot, sigt4, &
62 cfrach, cfracl, cfracm, avgcfrach, qshltr, avgcfracl, avgcfracm, cnvcfr, &
63 islope, cmc, grnflx, vegfrc, acfrcv, ncfrcv, acfrst, ncfrst, ssroff, &
64 bgroff, rlwin, rlwtoa, cldwork, alwin, alwout, alwtoa, rswin, rswinc, &
65 rswout, aswin, auvbin, auvbinc, aswout, aswtoa, sfcshx, sfclhx, subshx, &
66 snopcx, sfcux, sfcvx, sfcuxi, sfcvxi, sfcuvx, gtaux, gtauy, potevp, u10, v10, smstav,&
67 smstot, ivgtyp, isltyp, sfcevp, sfcexc, acsnow, acsnom, sst, thz0, qz0, &
68 uz0, vz0, ptop, htop, pbot, hbot, ptopl, pbotl, ttopl, ptopm, pbotm, ttopm, &
69 ptoph, pboth, pblcfr, ttoph, runoff, tecan, tetran, tedir, twa, maxtshltr, &
70 mintshltr, maxrhshltr, fdnsst, acgraup, graup_bucket, acfrain, frzrn_bucket, &
71 snow_acm, snow_bkt, snownc, graupelnc, qrmax, &
72 minrhshltr, dzice, smcwlt, suntime, fieldcapa, htopd, hbotd, htops, hbots, &
73 cuppt, dusmass, ducmass, dusmass25, ducmass25, aswintoa,rel_vort_maxhy1, &
74 maxqshltr, minqshltr, acond, sr, u10h, v10h,refd_max, w_up_max, w_dn_max, &
75 up_heli_max,up_heli_min,up_heli_max03,up_heli_min03,rel_vort_max01,u10max, v10max, &
76 avgedir,avgecan,paha,pahi,avgetrans,avgesnow,avgprec_cont,avgcprate_cont,rel_vort_max, &
77 avisbeamswin,avisdiffswin,airbeamswin,airdiffswin,refdm10c_max,wspd10max, &
78 alwoutc,alwtoac,aswoutc,aswtoac,alwinc,aswinc,avgpotevp,snoavg, &
79 ti,aod550,du_aod550,ss_aod550,su_aod550,oc_aod550,bc_aod550,prate_max,maod,dustpm10, &
80 dustcb,bccb,occb,sulfcb,sscb,dustallcb,ssallcb,dustpm,sspm,pp25cb,pp10cb,no3cb,nh4cb,&
81 pwat, ebb, hwp, aqm_aod550, ltg1_max,ltg2_max,ltg3_max
82 use soil,
only: sldpth, sllevel, sh2o, smc, stc
83 use masks,
only: lmv, lmh, htm, vtm, gdlat, gdlon, dx, dy, hbm2, sm, sice
84 use physcons_post,
only: grav => con_g, fv => con_fvirt, rgas => con_rd, &
85 eps => con_eps, epsm1 => con_epsm1
86 use params_mod,
only: erad, dtr, tfrz, h1, d608, rd, p1000, capa,pi
87 use lookup_mod,
only: thl, plq, ptbl, ttbl, rdq, rdth, rdp, rdthe, pl, qs0, sqs, sthe, &
88 ttblq, rdpq, rdtheq, stheq, the0q, the0
89 use ctlblk_mod,
only: me, mpi_comm_comp, icnt, idsp, jsta, jend, ihrst, idat, sdat, ifhr, &
90 ifmin, filename, tprec, tclod, trdlw, trdsw, tsrfc, tmaxmin, td3d, restrt, sdat, &
91 jend_m, imin, imp_physics, dt, spval, pdtop, pt, qmin, nbin_du, nphs, dtq2, ardlw,&
92 ardsw, asrfc, avrain, avcnvc, theat, gdsdegr, spl, lsm, alsl, im, jm, im_jm, lm, &
93 jsta_2l, jend_2u, nsoil, lp1, icu_physics, ivegsrc, novegtype, nbin_ss, nbin_bc, &
94 nbin_oc, nbin_su, nbin_no3, nbin_nh4, gocart_on,gccpp_on, nasa_on,pt_tbl,hyb_sigp,&
95 filenameflux, filenameaer, &
96 isf_surface_physics,rdaod, d2d_chem, modelname, aqf_on, &
97 ista, iend, ista_2l, iend_2u,iend_m
98 use gridspec_mod,
only: maptype, gridtype, latstart, latlast, lonstart, lonlast, cenlon, &
99 dxval, dyval, truelat2, truelat1, psmapf, cenlat,lonstartv, lonlastv, cenlonv, &
100 latstartv, latlastv,cenlatv,latstart_r,latlast_r,lonstart_r,lonlast_r, standlon, &
101 latse,lonse,latnw,lonnw
102 use upp_physics,
only: fpvsnew
107 integer,
parameter :: nvar2d=48
109 integer :: nvar3d, numDims
130 real,
parameter :: gravi = 1.0/grav
131 character(len=20) :: VarName, VcoordName
132 integer :: Status, fldsize, fldst, recn, recn_vvel
133 character startdate*19,SysDepInfo*80,cgar*1
134 character startdate2(19)*4, flatlon*40
135 logical :: read_lonlat=.true.
142 LOGICAL RUNB,SINGLRST,SUBPOST,NEST,HYDRO,IOOMG,IOALL
143 logical,
parameter :: debugprint = .false., zerout = .false.
145 logical :: convert_rad_to_deg=.false.
146 CHARACTER*32 varcharval
149 CHARACTER FNAME*255,ENVAR*50
150 INTEGER IDATE(8),JDATE(8),JPDS(200),JGDS(200),KPDS(200),KGDS(200)
166 integer ii,jj,js,je,iyear,imn,iday,itmp,ioutcount,istatus, &
167 i,j,l,ll,k,kf,irtn,igdout,n,index,nframe, &
168 nframed2,iunitd3d,ierr,idum,iret,nrec,idrt
169 integer ncid3d,ncid2d,varid,nhcas,varid_bl,iret_bl
170 real TSTART,TLMH,TSPH,ES,FACT,soilayert,soilayerb,zhour,dum, &
171 tvll,pmll,tv, tx1, tx2
173 character*20,
allocatable :: recname(:)
174 integer,
allocatable :: reclev(:), kmsk(:,:)
175 real,
allocatable :: glat1d(:), glon1d(:), qstl(:)
176 real,
allocatable :: wrk1(:,:), wrk2(:,:)
177 real,
allocatable :: p2d(:,:), t2d(:,:), q2d(:,:), &
178 qs2d(:,:), cw2d(:,:), cfr2d(:,:)
179 real,
dimension(lm+1) :: ak5, bk5
180 real*8,
allocatable :: pm2d(:,:), pi2d(:,:)
181 real,
allocatable :: tmp(:)
182 real :: buf(ista_2l:iend_2u,jsta_2l:jend_2u)
183 real :: buf2(ista_2l:iend_2u,jsta_2l:jend_2u)
184 real :: buf3d(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
185 real :: chem_2d(ista_2l:iend_2u,jsta_2l:jend_2u)
186 real :: chemT(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
187 real :: dt1(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
188 real :: dt2(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
189 real :: dt3(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
190 real :: dt4(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
191 real :: dt5(ista_2l:iend_2u,jsta_2l:jend_2u,lm)
197 integer isa, jsa, latghf, jtem, idvc, idsl, nvcoord, ip1, nn, npass
199 integer,
parameter :: npass2=5, npass3=30
200 real,
parameter :: third=1.0/3.0
201 INTEGER,
DIMENSION(2) :: ij4min, ij4max
202 REAL :: omgmin, omgmax
203 real,
allocatable :: d2d(:,:), u2d(:,:), v2d(:,:), omga2d(:,:)
204 REAL,
ALLOCATABLE :: ps2d(:,:),psx2d(:,:),psy2d(:,:)
205 real,
allocatable :: div3d(:,:,:)
206 real(kind=4),allocatable :: vcrd(:,:)
208 real,
allocatable :: ext550(:,:,:)
210 if (modelname ==
'FV3R')
then
211 allocate(ext550(ista_2l:iend_2u,jsta_2l:jend_2u,lm))
218 WRITE(6,*)
'INITPOST: ENTER INITPOST_NETCDF'
219 WRITE(6,*)
'me=',me, &
220 'jsta_2l=',jsta_2l,
'jend_2u=', &
222 'ista_2l=',ista_2l,
'iend_2u=',iend_2u, &
223 'ista=',ista,
'iend=',iend, &
227 isa = (ista+iend) / 2
228 jsa = (jsta+jend) / 2
231 do j = jsta_2l, jend_2u
232 do i= ista_2l, iend_2u
237 status=nf90_get_att(ncid3d,nf90_global,
'ak',ak5)
239 print*,
'ak not found; assigning missing value'
242 if(me==0)print*,
'ak5= ',ak5
244 status=nf90_get_att(ncid3d,nf90_global,
'idrt',idrt)
246 if(me==0)print*,
'idrt not in netcdf file,reading grid'
247 status=nf90_get_att(ncid3d,nf90_global,
'grid',varcharval)
249 if(me==0)print*,
'idrt and grid not in netcdf file, set default to latlon'
253 if(trim(varcharval)==
'rotated_latlon')
then
256 status=nf90_get_att(ncid3d,nf90_global,
'cen_lon',dum_const)
258 print*,
'cen_lon not found; assigning missing value'
262 cenlon=nint((dum_const+360.)*gdsdegr)
264 cenlon=dum_const*gdsdegr
267 status=nf90_get_att(ncid3d,nf90_global,
'cen_lat',dum_const)
269 print*,
'cen_lat not found; assigning missing value'
272 cenlat=dum_const*gdsdegr
275 status=nf90_get_att(ncid3d,nf90_global,
'lon1',dum_const)
277 print*,
'lonstart_r not found; assigning missing value'
281 lonstart_r=nint((dum_const+360.)*gdsdegr)
283 lonstart_r=dum_const*gdsdegr
286 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
288 print*,
'latstart_r not found; assigning missing value'
291 latstart_r=dum_const*gdsdegr
294 status=nf90_get_att(ncid3d,nf90_global,
'lon2',dum_const)
296 print*,
'lonlast_r not found; assigning missing value'
300 lonlast_r=nint((dum_const+360.)*gdsdegr)
302 lonlast_r=dum_const*gdsdegr
305 status=nf90_get_att(ncid3d,nf90_global,
'lat2',dum_const)
307 print*,
'latlast_r not found; assigning missing value'
310 latlast_r=dum_const*gdsdegr
313 status=nf90_get_att(ncid3d,nf90_global,
'dlon',dum_const)
315 print*,
'dlmd not found; assigning missing value'
318 dxval=dum_const*gdsdegr
320 status=nf90_get_att(ncid3d,nf90_global,
'dlat',dum_const)
322 print*,
'dphd not found; assigning missing value'
325 dyval=dum_const*gdsdegr
332 else if(trim(varcharval)==
'latlon')
then
336 status=nf90_get_att(ncid3d,nf90_global,
'lon1',dum_const)
338 print*,
'lonstart not found; assigning missing value'
342 lonstart=nint((dum_const+360.)*gdsdegr)
344 lonstart=dum_const*gdsdegr
347 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
349 print*,
'latstart not found; assigning missing value'
352 latstart=dum_const*gdsdegr
355 status=nf90_get_att(ncid3d,nf90_global,
'lon2',dum_const)
357 print*,
'lonlast not found; assigning missing value'
361 lonlast=nint((dum_const+360.)*gdsdegr)
363 lonlast=dum_const*gdsdegr
366 status=nf90_get_att(ncid3d,nf90_global,
'lat2',dum_const)
368 print*,
'latlast not found; assigning missing value'
371 latlast=dum_const*gdsdegr
374 status=nf90_get_att(ncid3d,nf90_global,
'dlon',dum_const)
376 print*,
'dlmd not found; assigning missing value'
379 dxval=dum_const*gdsdegr
381 status=nf90_get_att(ncid3d,nf90_global,
'dlat',dum_const)
383 print*,
'dphd not found; assigning missing value'
386 dyval=dum_const*gdsdegr
394 ELSE IF (trim(varcharval)==
'lambert_conformal')
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 not found; assigning missing value'
423 lonstart=nint((dum_const+360.)*gdsdegr)
425 lonstart=dum_const*gdsdegr
428 status=nf90_get_att(ncid3d,nf90_global,
'lat1',dum_const)
430 print*,
'latstart not found; assigning missing value'
433 latstart=dum_const*gdsdegr
436 status=nf90_get_att(ncid3d,nf90_global,
'stdlat1',dum_const)
438 print*,
'stdlat1 not found; assigning missing value'
441 truelat1=dum_const*gdsdegr
443 status=nf90_get_att(ncid3d,nf90_global,
'stdlat2',dum_const)
445 print*,
'stdlat2 not found; assigning missing value'
448 truelat2=dum_const*gdsdegr
451 status=nf90_get_att(ncid3d,nf90_global,
'dx',dum_const)
453 print*,
'dx not found; assigning missing value'
458 status=nf90_get_att(ncid3d,nf90_global,
'dy',dum_const)
460 print*,
'dphd not found; assigning missing value'
471 else if(trim(varcharval)==
'gaussian')
then
480 if(me==0)print*,
'idrt MAPTYPE= ',idrt,maptype
489 do j = jsta_2l, jend_2u
490 do i = ista_2l, iend_2u
500 do j = jsta_2l, jend_2u
501 do i = ista_2l, iend_2u
508 status=nf90_get_att(ncid3d,nf90_global,
'nhcas',nhcas)
510 if(me==0) print*,
'nhcas not in netcdf file, set default to nonhydro'
513 if(me==0)print*,
'nhcas= ',nhcas
514 if (nhcas == 0 )
then
516 allocate (recname(nrec))
517 recname=[
character(len=20) ::
'ugrd',
'vgrd',
'spfh',
'tmp',
'o3mr', &
518 'presnh',
'dzdt',
'clwmr',
'dpres', &
519 'delz',
'icmr',
'rwmr', &
520 'snmr',
'grle',
'smoke',
'dust', &
524 allocate (recname(nrec))
525 recname=[
character(len=20) ::
'ugrd',
'vgrd',
'tmp',
'spfh',
'o3mr', &
526 'hypres',
'clwmr',
'dpres']
531 allocate(glat1d(jm),glon1d(im))
536 status=nf90_inq_varid(ncid3d,
'time',varid)
538 print*,
'time not in netcdf file, stopping'
541 status=nf90_get_att(ncid3d,varid,
'units',varcharval)
543 if(me==0)print*,
'time unit not available'
545 if(me==0)print*,
'time unit read from netcdf file= ',varcharval
548 read(varcharval,101)idate(1),idate(2),idate(3),idate(4),idate(5)
560 101
format(t13,i4,1x,i2,1x,i2,1x,i2,1x,i2)
564 status=nf90_inq_varid(ncid3d,
'grid_xt',varid)
565 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
566 if(numdims==1.and.modelname==
"FV3R")
then
575 if (read_lonlat)
then
576 status=nf90_inq_varid(ncid3d,
'lon',varid)
577 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
578 if(debugprint)print*,
'number of dim for gdlon ',numdims
580 status=nf90_inq_varid(ncid3d,
'grid_xt',varid)
581 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
582 if(debugprint)print*,
'number of dim for gdlon ',numdims
585 status=nf90_get_var(ncid3d,varid,glon1d)
588 gdlon(i,j) = real(glon1d(i),kind=4)
591 lonstart = nint(glon1d(1)*gdsdegr)
592 lonlast = nint(glon1d(im)*gdsdegr)
595 if (maptype == 0)
then
597 lonstart=lonstart+360.*gdsdegr
600 lonlast=lonlast+360.*gdsdegr
605 else if(numdims==2)
then
606 status=nf90_get_var(ncid3d,varid,dummy)
607 if(maxval(abs(dummy))<2.0*pi)convert_rad_to_deg=.true.
608 if(convert_rad_to_deg)
then
611 gdlon(i,j) = real(dummy(i,j),kind=4)*180./pi
617 gdlon(i,j) = real(dummy(i,j),kind=4)
621 if(convert_rad_to_deg)
then
622 lonstart = nint(dummy(1,1)*gdsdegr)*180./pi
623 lonlast = nint(dummy(im,jm)*gdsdegr)*180./pi
624 lonse = nint(dummy(im,1)*gdsdegr)*180./pi
625 lonnw = nint(dummy(1,jm)*gdsdegr)*180./pi
627 lonstart = nint(dummy(1,1)*gdsdegr)
628 lonlast = nint(dummy(im,jm)*gdsdegr)
629 lonse = nint(dummy(im,1)*gdsdegr)
630 lonnw = nint(dummy(1,jm)*gdsdegr)
634 if (maptype == 0)
then
636 lonstart=lonstart+360.*gdsdegr
639 lonlast=lonlast+360.*gdsdegr
648 if (read_lonlat)
then
649 status=nf90_inq_varid(ncid3d,
'lat',varid)
650 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
651 if(debugprint)print*,
'number of dim for gdlat ',numdims
653 status=nf90_inq_varid(ncid3d,
'grid_yt',varid)
654 status=nf90_inquire_variable(ncid3d,varid,ndims = numdims)
655 if(debugprint)print*,
'number of dim for gdlat ',numdims
658 status=nf90_get_var(ncid3d,varid,glat1d)
661 gdlat(i,j) = real(glat1d(j),kind=4)
664 latstart = nint(glat1d(1)*gdsdegr)
665 latlast = nint(glat1d(jm)*gdsdegr)
666 else if(numdims==2)
then
667 status=nf90_get_var(ncid3d,varid,dummy)
668 if(maxval(abs(dummy))<pi)convert_rad_to_deg=.true.
669 if(convert_rad_to_deg)
then
672 gdlat(i,j) = real(dummy(i,j),kind=4)*180./pi
678 gdlat(i,j) = real(dummy(i,j),kind=4)
682 if(convert_rad_to_deg)
then
683 latstart = nint(dummy(1,1)*gdsdegr)*180./pi
684 latlast = nint(dummy(im,jm)*gdsdegr)*180./pi
685 latse = nint(dummy(im,1)*gdsdegr)*180./pi
686 latnw = nint(dummy(1,jm)*gdsdegr)*180./pi
688 latstart = nint(dummy(1,1)*gdsdegr)
689 latlast = nint(dummy(im,jm)*gdsdegr)
690 latse = nint(dummy(im,1)*gdsdegr)
691 latnw = nint(dummy(1,jm)*gdsdegr)
695 if(debugprint)print*,
'me sample gdlon gdlat= ' &
696 ,me,gdlon(isa,jsa),gdlat(isa,jsa)
701 if (me == 0) print *,
'maptype and gridtype is ', &
704 if(gridtype ==
'A')
then
716 print *,
'recname=',trim(recname(i))
722 deallocate(glat1d,glon1d)
733 CALL exch(gdlat(ista_2l,jsta_2l))
734 CALL exch(gdlon(ista_2l,jsta_2l))
743 dx(i,j) = erad*dxval*dtr/gdsdegr
745 dx(i,j) = erad*cos(gdlat(i,j)*dtr) *(gdlon(ip1,j)-gdlon(i,j))*dtr
748 dy(i,j)= erad*dyval*dtr/gdsdegr
750 dy(i,j) = erad*(gdlat(i,j+1)-gdlat(i,j))*dtr
757 if(debugprint)print*,
'me sample dx dy= ' &
758 ,me,dx(isa,jsa),dy(isa,jsa)
762 f(i,j) = 1.454441e-4*sin(gdlat(i,j)*dtr)
775 print*,
'start yr mo day hr min =',iyear,imn,iday,ihrst,imin
776 print*,
'processing yr mo day hr min=' &
777 ,idat(3),idat(1),idat(2),idat(4),idat(5)
797 CALL w3difdat(jdate,idate,0,rinc)
800 ifhr = nint(rinc(2)+rinc(1)*24.)
802 ifmin = nint(rinc(3))
814 IF(tstart > 1.0e-2)
THEN
815 ifhr = ifhr+nint(tstart)
819 call w3movdat(rinc,jdate,idate)
836 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
837 spval,recname(1),uh(ista_2l,jsta_2l,1),lm)
838 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
839 spval,recname(2),vh(ista_2l,jsta_2l,1),lm)
840 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
841 spval,recname(3),q(ista_2l,jsta_2l,1),lm)
842 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
843 spval,recname(4),t(ista_2l,jsta_2l,1),lm)
844 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
845 spval,recname(5),o3(ista_2l,jsta_2l,1),lm)
846 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
847 spval,recname(7),wh(ista_2l,jsta_2l,1),lm)
848 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
849 spval,recname(8),qqw(ista_2l,jsta_2l,1),lm)
850 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
851 spval,recname(9),dpres(ista_2l,jsta_2l,1),lm)
852 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
853 spval,recname(10),buf3d(ista_2l,jsta_2l,1),lm)
859 if (wh(i,j,l) < spval)
then
860 omga(i,j,l)=(-1.)*wh(i,j,l)*dpres(i,j,l)/abs(buf3d(i,j,l))
868 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
869 spval,recname(11),qqi(ista_2l,jsta_2l,1),lm)
870 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
871 spval,recname(12),qqr(ista_2l,jsta_2l,1),lm)
872 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
873 spval,recname(13),qqs(ista_2l,jsta_2l,1),lm)
874 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
875 spval,recname(14),qqg(ista_2l,jsta_2l,1),lm)
877 if (modelname ==
'FV3R')
then
878 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
879 spval,recname(15),smoke(ista_2l,jsta_2l,1,1),lm)
880 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
881 spval,recname(16),fv3dust(ista_2l,jsta_2l,1,1),lm)
882 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
883 spval,recname(17),coarsepm(ista_2l,jsta_2l,1,1),lm)
884 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
885 spval,recname(18),ext550(ista_2l,jsta_2l,1),lm)
889 do j = jsta_2l, jend_2u
890 do i = ista_2l, iend_2u
899 qrmax(i,j)=max(qrmax(i,j),qqr(i,j,l))
900 cwm(i,j,l)=qqg(i,j,l)+qqs(i,j,l)+qqr(i,j,l)+qqi(i,j,l)+qqw(i,j,l)
903 if(debugprint)print*,
'sample l,t,q,u,v,w= ',isa,jsa,l &
904 ,t(isa,jsa,l),q(isa,jsa,l),uh(isa,jsa,l),vh(isa,jsa,l) &
906 if(debugprint)print*,
'sample l cwm for FV3',l, &
911 if ( imp_physics==11)
then
913 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
914 spval,varname,cfr(ista_2l,jsta_2l,1),lm)
917 iret_bl = nf90_inq_varid(ncid2d,
'cldfra_bl',varid_bl)
918 iret = nf90_inq_varid(ncid2d,
'cldfra',varid)
920 if(iret_bl==nf90_noerr .and. iret==nf90_noerr)
then
921 write(*,*)
'WARNING: BOTH cldfra_bl AND cldfra ARE AVAILABLE. USING cldfra.'
923 else if(iret_bl==nf90_noerr)
then
925 else if(iret==nf90_noerr)
then
931 if(varname /=
'nope')
then
932 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
933 spval,varname,cfr(ista_2l,jsta_2l,1),lm)
943 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
944 spval,varname,effri(ista_2l,jsta_2l,1),lm)
948 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
949 spval,varname,effrl(ista_2l,jsta_2l,1),lm)
953 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
954 spval,varname,effrs(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,varname,avgozcon(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,varname,avgpmtf(ista_2l,jsta_2l,1),lm)
977 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
978 spval,varname,aqm_aod550(ista_2l,jsta_2l))
984 if (modelname ==
'FV3R')
then
987 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
988 spval,varname,w_up_max(ista_2l,jsta_2l))
989 if(debugprint)print*,
'sample ',varname,
' = ',w_up_max(isa,jsa)
992 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
993 spval,varname,w_dn_max(ista_2l,jsta_2l))
994 if(debugprint)print*,
'sample ',varname,
' = ',w_dn_max(isa,jsa)
997 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
998 spval,varname,up_heli_max(ista_2l,jsta_2l))
999 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_max(isa,jsa)
1002 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1003 spval,varname,up_heli_min(ista_2l,jsta_2l))
1004 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_min(isa,jsa)
1007 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1008 spval,varname,up_heli_max03(ista_2l,jsta_2l))
1009 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_max03(isa,jsa)
1012 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1013 spval,varname,up_heli_min03(ista_2l,jsta_2l))
1014 if(debugprint)print*,
'sample ',varname,
' = ',up_heli_min03(isa,jsa)
1018 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1019 spval,varname,rel_vort_max01(ista_2l,jsta_2l))
1020 if(debugprint)print*,
'sample ',varname,
' = ',rel_vort_max01(isa,jsa)
1023 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1024 spval,varname,rel_vort_max(ista_2l,jsta_2l))
1025 if(debugprint)print*,
'sample ',varname,
' =',rel_vort_max(isa,jsa)
1027 varname=
'maxvorthy1'
1028 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1029 spval,varname,rel_vort_maxhy1(ista_2l,jsta_2l))
1030 if(debugprint)print*,
'sample ',varname,
' =',rel_vort_maxhy1(isa,jsa)
1032 varname=
'ebb_smoke_hr'
1033 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1034 spval,varname,ebb(ista_2l,jsta_2l))
1035 if(debugprint)print*,
'sample ',varname,
' =',ebb(isa,jsa)
1038 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1039 spval,varname,hwp(ista_2l,jsta_2l))
1040 if(debugprint)print*,
'sample ',varname,
' =',hwp(isa,jsa)
1045 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1046 spval,varname,ltg1_max(ista_2l,jsta_2l))
1047 if(debugprint)print*,
'sample ',varname,
' =',ltg1_max(isa,jsa)
1051 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1052 spval,varname,ltg2_max(ista_2l,jsta_2l))
1053 if(debugprint)print*,
'sample ',varname,
' =',ltg2_max(isa,jsa)
1057 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1058 spval,varname,ltg3_max(ista_2l,jsta_2l))
1059 if(debugprint)print*,
'sample ',varname,
' =',ltg3_max(isa,jsa)
1063 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1064 spval,varname,pint(ista_2l,jsta_2l,lp1))
1071 if(debugprint)print*,
'sample ',varname,
' =',pint(isa,jsa,lp1)
1084 if (dpres(i,j,l-1)<spval .and. pint(i,j,l-1)<spval)
then
1085 pint(i,j,l)= pint(i,j,l-1) + dpres(i,j,l-1)
1099 if (pint(i,j,l)<spval .and. pint(i,j,l+1)<spval)
then
1100 pmid(i,j,l)=0.5*(pint(i,j,l)+pint(i,j,l+1))
1112 call read_netcdf_2d_para(ncid3d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1113 spval,varname,zint(ista_2l,jsta_2l,lp1))
1114 if(debugprint)print*,
'sample ',varname,
' =',zint(isa,jsa,lp1)
1117 if (zint(i,j,lp1) /= spval)
then
1118 fis(i,j) = zint(i,j,lp1) * grav
1128 if(zint(i,j,l+1)/=spval .and. buf3d(i,j,l)/=spval)
then
1130 zint(i,j,l)=zint(i,j,l+1)+abs(buf3d(i,j,l))
1137 if(debugprint)print*,
'sample zint= ',isa,jsa,l,zint(isa,jsa,l)
1143 alpint(i,j,l)=log(pint(i,j,l))
1151 if(zint(i,j,l+1)/=spval .and. zint(i,j,l)/=spval &
1152 .and. pmid(i,j,l)/=spval)
then
1153 zmid(i,j,l)=zint(i,j,l+1)+(zint(i,j,l)-zint(i,j,l+1))* &
1154 (log(pmid(i,j,l))-alpint(i,j,l+1))/ &
1155 (alpint(i,j,l)-alpint(i,j,l+1))
1156 if(zmid(i,j,l)>1.0e6)print*,
'bad Hmid ',i,j,l,zmid(i,j,l)
1165 if (gocart_on .or.gccpp_on .or. nasa_on)
then
1173 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1174 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1176 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1177 spval,varname,dt2(ista_2l,jsta_2l,1),lm)
1179 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1180 spval,varname,dt3(ista_2l,jsta_2l,1),lm)
1182 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1183 spval,varname,dt4(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,dt5(ista_2l,jsta_2l,1),lm)
1194 dust(i,j,l,1)=dt1(i,j,l)
1195 dust(i,j,l,2)=dt2(i,j,l)
1196 dust(i,j,l,3)=dt3(i,j,l)
1197 dust(i,j,l,4)=dt4(i,j,l)
1198 dust(i,j,l,5)=dt5(i,j,l)
1201 dustcb(i,j)=dustcb(i,j)+&
1202 (dust(i,j,l,1)+0.38*dust(i,j,l,2))* &
1206 dustallcb(i,j)=dustallcb(i,j)+ &
1207 (dust(i,j,l,1)+dust(i,j,l,2)+ &
1208 dust(i,j,l,3)+0.74*dust(i,j,l,4))* &
1220 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1221 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1224 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1225 spval,varname,dt2(ista_2l,jsta_2l,1),lm)
1228 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1229 spval,varname,dt3(ista_2l,jsta_2l,1),lm)
1232 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1233 spval,varname,dt4(ista_2l,jsta_2l,1),lm)
1236 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1237 spval,varname,dt5(ista_2l,jsta_2l,1),lm)
1245 salt(i,j,l,1)=dt1(i,j,l)
1246 salt(i,j,l,2)=dt2(i,j,l)
1247 salt(i,j,l,3)=dt3(i,j,l)
1248 salt(i,j,l,4)=dt4(i,j,l)
1249 salt(i,j,l,5)=dt5(i,j,l)
1251 sscb(i,j)=sscb(i,j)+ &
1252 (salt(i,j,l,1)+salt(i,j,l,2)+0.83*salt(i,j,l,3))* &
1256 ssallcb(i,j)=ssallcb(i,j)+ &
1257 (salt(i,j,l,1)+salt(i,j,l,2)+salt(i,j,l,3)+salt(i,j,l,4))* &
1267 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1268 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1271 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1272 spval,varname,dt2(ista_2l,jsta_2l,1),lm)
1279 soot(i,j,l,1)=dt1(i,j,l)
1280 soot(i,j,l,2)=dt2(i,j,l)
1282 bccb(i,j)=bccb(i,j)+ &
1283 (soot(i,j,l,1)+soot(i,j,l,2))* &
1293 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1294 spval,varname,dt1(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,dt2(ista_2l,jsta_2l,1),lm)
1303 waso(i,j,l,1)=dt1(i,j,l)
1304 waso(i,j,l,2)=dt2(i,j,l)
1306 occb(i,j)=occb(i,j)+ &
1307 (waso(i,j,l,1)+waso(i,j,l,2))* &
1317 if (gocart_on .or. gccpp_on)
then
1324 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1325 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1331 suso(i,j,l,1)=dt1(i,j,l)
1333 sulfcb(i,j)=sulfcb(i,j)+ &
1344 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1345 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1348 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1349 spval,varname,dt2(ista_2l,jsta_2l,1),lm)
1352 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1353 spval,varname,dt3(ista_2l,jsta_2l,1),lm)
1359 no3(i,j,l,1)=dt1(i,j,l)
1360 no3(i,j,l,2)=dt2(i,j,l)
1361 no3(i,j,l,3)=dt3(i,j,l)
1363 no3cb(i,j)=no3cb(i,j)+ &
1364 (no3(i,j,l,1)+no3(i,j,l,2)+no3(i,j,l,3))* &
1373 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1374 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1380 nh4(i,j,l,1)=dt1(i,j,l)
1382 nh4cb(i,j)=nh4cb(i,j)+ &
1395 if (gocart_on .or. gccpp_on)
then
1402 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1403 spval,varname,dt1(ista_2l,jsta_2l,1),lm)
1408 if (gocart_on .or. gccpp_on)
then
1416 call read_netcdf_3d_para(ncid3d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
1417 spval,varname,dt2(ista_2l,jsta_2l,1),lm)
1423 pp25(i,j,l,1)=dt1(i,j,l)
1424 pp10(i,j,l,1)=dt2(i,j,l)
1427 pp25cb(i,j)=pp25cb(i,j)+ &
1428 pp25(i,j,l,1)* dpres(i,j,l)/grav
1430 pp10cb(i,j)=pp10cb(i,j)+ &
1431 pp10(i,j,l,1)* dpres(i,j,l)/grav
1441 tv = t(i,j,l) * (h1+d608*max(q(i,j,l),qmin))
1442 rhomid(i,j,l) = pmid(i,j,l) / (rd*tv)
1444 IF ( dust(i,j,l,n) < spval)
THEN
1445 dust(i,j,l,n) = max(dust(i,j,l,n), 0.0)
1449 IF ( salt(i,j,l,n) < spval)
THEN
1450 salt(i,j,l,n) = max(salt(i,j,l,n), 0.0)
1454 IF ( waso(i,j,l,n) < spval)
THEN
1455 waso(i,j,l,n) = max(waso(i,j,l,n), 0.0)
1459 IF ( soot(i,j,l,n) < spval)
THEN
1460 soot(i,j,l,n) = max(soot(i,j,l,n), 0.0)
1464 IF ( suso(i,j,l,n) < spval)
THEN
1465 suso(i,j,l,n) = max(suso(i,j,l,n), 0.0)
1470 IF ( no3(i,j,l,n) < spval)
THEN
1471 no3(i,j,l,n) = max(no3(i,j,l,n), 0.0)
1475 IF ( nh4(i,j,l,n) < spval)
THEN
1476 nh4(i,j,l,n) = max(nh4(i,j,l,n), 0.0)
1487 dustcb(i,j) = max(dustcb(i,j), 0.0)
1488 dustallcb(i,j) = max(dustallcb(i,j), 0.0)
1489 sscb(i,j) = max(sscb(i,j), 0.0)
1490 ssallcb(i,j) = max(ssallcb(i,j), 0.0)
1491 bccb(i,j) = max(bccb(i,j), 0.0)
1492 occb(i,j) = max(occb(i,j), 0.0)
1493 sulfcb(i,j) = max(sulfcb(i,j), 0.0)
1495 no3cb(i,j) = max(no3cb(i,j), 0.0)
1496 nh4cb(i,j) = max(nh4cb(i,j), 0.0)
1498 pp25cb(i,j) = max(pp25cb(i,j), 0.0)
1499 pp10cb(i,j) = max(pp10cb(i,j), 0.0)
1502 dustpm(i,j)=(dust(i,j,l,1)+0.38*dust(i,j,l,2))*rhomid(i,j,l)
1503 dustpm10(i,j)=(dust(i,j,l,1)+dust(i,j,l,2)+dust(i,j,l,3)+ &
1504 0.74*dust(i,j,l,4))*rhomid(i,j,l)
1505 sspm(i,j)=(salt(i,j,l,1)+salt(i,j,l,2)+ &
1506 0.83*salt(i,j,l,3))*rhomid(i,j,l)
1508 if (gocart_on .or. gccpp_on)
then
1510 dusmass(i,j)=(dust(i,j,l,1)+dust(i,j,l,2)+dust(i,j,l,3)+ &
1511 0.74*dust(i,j,l,4)+salt(i,j,l,1)+salt(i,j,l,2)+salt(i,j,l,3)+ &
1512 salt(i,j,l,4) + soot(i,j,l,1)+soot(i,j,l,2)+waso(i,j,l,1)+ &
1513 waso(i,j,l,2) +suso(i,j,l,1)+pp25(i,j,l,1)+pp10(i,j,l,1)) &
1516 dusmass25(i,j)=(dust(i,j,l,1)+0.38*dust(i,j,l,2)+ &
1517 salt(i,j,l,1)+salt(i,j,l,2)+0.83*salt(i,j,l,3) + &
1518 soot(i,j,l,1)+soot(i,j,l,2)+waso(i,j,l,1)+ &
1519 waso(i,j,l,2) +suso(i,j,l,1)+pp25(i,j,l,1))*rhomid(i,j,l)
1522 ducmass(i,j)=dustallcb(i,j)+ssallcb(i,j)+bccb(i,j)+ &
1523 occb(i,j)+sulfcb(i,j)+pp25cb(i,j)+pp10cb(i,j)
1525 ducmass25(i,j)=dustcb(i,j)+sscb(i,j)+bccb(i,j)+occb(i,j) &
1526 +sulfcb(i,j)+pp25cb(i,j)
1531 dusmass(i,j)=pp10(i,j,l,1)*rhomid(i,j,l)
1533 dusmass25(i,j)=pp25(i,j,l,1)*rhomid(i,j,l)
1536 ducmass(i,j)=pp10cb(i,j)
1538 ducmass25(i,j)=pp25cb(i,j)
1557 status=nf90_close(ncid3d)
1562 status=nf90_get_att(ncid2d,nf90_global,
'IVEGSRC',ivegsrc)
1563 if (status /= 0)
then
1564 if(me==0)print*,varname,
' not found-Assigned 1 for IGBP as default'
1567 if (me == 0) print*,
'IVEGSRC= ',ivegsrc
1572 else if(ivegsrc==1)
then
1574 else if(ivegsrc==0)
then
1577 if (me == 0) print*,
'novegtype= ',novegtype
1579 status=nf90_get_att(ncid2d,nf90_global,
'fhzero',fhzero)
1580 if (status /= 0)
then
1581 print*,
'fhzero not found-Assigned 3 hours as default'
1584 if (me == 0) print*,
'fhzero= ',fhzero
1586 status=nf90_get_att(ncid2d,nf90_global,
'dtp',dtp)
1587 if (status /= 0)
then
1588 print*,
'dtp not found-Assigned 90s as default'
1591 if (me == 0) print*,
'dtp= ',dtp
1593 if(imp_physics==5 .or. imp_physics==85 .or. imp_physics==95)
then
1594 CALL microinit(imp_physics)
1597 tprec = float(fhzero)
1598 if(ifhr>240)tprec=12.
1609 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1610 spval,varname,ref_10cm(ista_2l,jsta_2l,1),lm)
1618 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1619 spval,varname,q2(ista_2l,jsta_2l,1),lm)
1623 q2(i,j,l)=q2(i,j,l)/2.0
1630 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1631 spval,varname,qqnifa(ista_2l,jsta_2l,1),lm)
1635 call read_netcdf_3d_para(ncid2d,im,jm,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1636 spval,varname,qqnwfa(ista_2l,jsta_2l,1),lm)
1639 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1641 if(debugprint)print*,
'sample ',varname,
' =',sm((ista+iend)/2,(jsta+jend)/2)
1646 if (sm(i,j) /= spval) sm(i,j) = 1.0 - sm(i,j)
1653 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1655 if(debugprint)print*,
'sample ',varname,
' = ',sice(isa,jsa)
1668 if (sm(i,j) /= spval .and. sm(i,j) == 0.0) sice(i,j) = 0.0
1675 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1677 if(debugprint)print*,
'sample ',varname,
' = ',pblh(isa,jsa)
1681 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1682 spval,varname,ustar)
1687 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1693 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1694 spval,varname,sfcexc)
1698 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1699 spval,varname,snow_acm)
1702 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1703 spval,varname,snow_bkt)
1707 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1708 spval,varname,acgraup)
1712 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1713 spval,varname,graup_bucket)
1717 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1718 spval,varname,acfrain)
1722 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1723 spval,varname,frzrn_bucket)
1727 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1728 spval,varname,snownc)
1732 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1733 spval,varname,graupelnc)
1737 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1738 spval,varname,acond)
1739 if(debugprint)print*,
'sample ',varname,
' = ',acond(isa,jsa)
1742 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1743 spval,varname,avgalbedo)
1747 if (avgalbedo(i,j) /= spval) avgalbedo(i,j) = avgalbedo(i,j) * 0.01
1750 if(debugprint)print*,
'sample ',varname,
' = ',avgalbedo(isa,jsa)
1754 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1762 if (ths(i,j) /= spval)
then
1764 ths(i,j) = ths(i,j) * (p1000/pint(i,j,lp1))**capa
1770 if (sm(i,j) /= 0.0 .and. ths(i,j) < spval )
then
1771 if (sice(i,j) >= 0.15)
then
1774 sst(i,j) = ths(i,j) * (pint(i,j,lp1)/p1000)**capa
1781 if(debugprint)print*,
'sample ',varname,
' = ',ths(isa,jsa)
1785 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1786 spval,varname,fdnsst)
1787 if(debugprint)print*,
'sample ',varname,
' = ',fdnsst(isa,jsa)
1802 varname=
'cpratb_ave'
1803 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1804 spval,varname,avgcprate)
1809 if (avgcprate(i,j) /= spval) avgcprate(i,j) = avgcprate(i,j) * (dtq2*0.001)
1818 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1819 spval,varname,avgcprate_cont)
1823 if (avgcprate_cont(i,j) /= spval) avgcprate_cont(i,j) = &
1824 avgcprate_cont(i,j) * (dtq2*0.001)
1832 varname=
'prateb_ave'
1833 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1834 spval,varname,avgprec)
1838 if(avgprec(i,j) /= spval)avgprec(i,j)=avgprec(i,j)*(dtq2*0.001)
1842 if(debugprint)print*,
'sample ',varname,
' = ',avgprec(isa,jsa)
1847 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1848 spval,varname,avgprec_cont)
1853 if (avgprec_cont(i,j) /=spval)avgprec_cont(i,j)=avgprec_cont(i,j) &
1858 if(debugprint)print*,
'sample ',varname,
' = ',avgprec_cont(isa,jsa)
1861 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1866 if (prec(i,j) /= spval) prec(i,j)=prec(i,j)* (dtq2*0.001) &
1873 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1874 spval,varname,cprate)
1878 if (cprate(i,j) /= spval)
then
1879 cprate(i,j) = max(0.,cprate(i,j)) * (dtq2*0.001) &
1891 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1892 spval,varname,prate_max)
1893 if(debugprint)print*,
'sample ',varname,
' = ',prate_max(isa,jsa)
1896 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1897 spval,varname,refd_max)
1898 if(debugprint)print*,
'sample ',varname,
' = ',refd_max(isa,jsa)
1900 varname=
'refdmax263k'
1901 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1902 spval,varname,refdm10c_max)
1903 if(debugprint)print*,
'sample ',varname,
' = ',refdm10c_max(isa,jsa)
1907 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1908 spval,varname,u10max)
1909 if(debugprint)print*,
'sample ',varname,
' = ',u10max(isa,jsa)
1912 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1913 spval,varname,v10max)
1914 if(debugprint)print*,
'sample ',varname,
' = ',v10max(isa,jsa)
1917 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1918 spval,varname,wspd10max)
1919 if(debugprint)print*,
'sample ',varname,
' = ',wspd10max(isa,jsa)
1923 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1929 if (sm(i,j) == 1.0 .and. sice(i,j)==0.) sno(i,j) = spval
1932 if(debugprint)print*,
'sample ',varname,
' = ',sno(isa,jsa)
1936 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1937 spval,varname,snoavg)
1941 if (sm(i,j)==1.0 .and. sice(i,j)==0.) snoavg(i,j)=spval
1942 if(snoavg(i,j)/=spval)snoavg(i,j)=snoavg(i,j)/100.
1948 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1953 if (sm(i,j)==1.0 .and. sice(i,j)==0.) si(i,j)=spval
1954 if (si(i,j) /= spval) si(i,j) = si(i,j) * 1000.0
1963 if(debugprint)print*,
'sample ',varname,
' = ',si(isa,jsa)
1967 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1968 spval,varname,tshltr)
1969 if(debugprint)print*,
'sample ',varname,
' = ',tshltr(isa,jsa)
1974 pshltr(i,j)=pint(i,j,lm+1)*exp(-0.068283/tshltr(i,j))
1975 tshltr(i,j)= tshltr(i,j)*(p1000/pshltr(i,j))**capa
1984 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1985 spval,varname,qshltr)
1986 if(debugprint)print*,
'sample ',varname,
' = ',qshltr(isa,jsa)
1989 varname=
'tcdc_aveclm'
1990 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
1991 spval,varname,avgtcdc)
1996 if (avgtcdc(i,j) /= spval) avgtcdc(i,j) = avgtcdc(i,j) * 0.01
1999 if(debugprint)print*,
'sample ',varname,
' = ',avgtcdc(isa,jsa)
2003 do j=jsta_2l,jend_2u
2004 do i=ista_2l,iend_2u
2012 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2013 spval,varname,mxsnal)
2017 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2018 spval,varname,landfrac)
2024 tlmh = t(i,j,lm) * t(i,j,lm)
2025 sigt4(i,j) = 5.67e-8 * tlmh * tlmh
2033 do j=jsta_2l,jend_2u
2034 do i=ista_2l,iend_2u
2042 varname=
'tcdc_avehcl'
2043 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2044 spval,varname,avgcfrach)
2049 if (avgcfrach(i,j) /= spval) avgcfrach(i,j) = avgcfrach(i,j) * 0.01
2052 if(debugprint)print*,
'sample ',varname,
' = ',avgcfrach(isa,jsa)
2055 varname=
'tcdc_avelcl'
2056 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2057 spval,varname,avgcfracl)
2062 if (avgcfracl(i,j) /= spval) avgcfracl(i,j) = avgcfracl(i,j) * 0.01
2065 if(debugprint)print*,
'sample ',varname,
' = ',avgcfracl(isa,jsa)
2068 varname=
'tcdc_avemcl'
2069 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2070 spval,varname,avgcfracm)
2075 if (avgcfracm(i,j) /= spval) avgcfracm(i,j) = avgcfracm(i,j) * 0.01
2078 if(debugprint)print*,
'sample ',varname,
' = ',avgcfracm(isa,jsa)
2082 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2083 spval,varname,cnvcfr)
2088 if (cnvcfr(i,j) /= spval) cnvcfr(i,j)= cnvcfr(i,j) * 0.01
2095 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2098 do j = jsta_2l, jend_2u
2100 if (buf(i,j) < spval)
then
2101 islope(i,j) = nint(buf(i,j))
2111 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2116 if (cmc(i,j) /= spval) cmc(i,j) = cmc(i,j) * 0.001
2117 if (sm(i,j) /= 0.0) cmc(i,j) = spval
2123 do j=jsta_2l,jend_2u
2124 do i=ista_2l,iend_2u
2131 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2136 if(sr(i,j) /= spval)
then
2138 sr(i,j)=min(1.,max(0.,sr(i,j)))
2145 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2150 if (sice(i,j) == spval .or. sice(i,j) == 0.) ti(i,j)=spval
2156 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2157 spval,varname,vegfrc)
2161 if (vegfrc(i,j) /= spval)
then
2162 vegfrc(i,j) = vegfrc(i,j) * 0.01
2172 if (sm(i,j) /= 0.0) vegfrc(i,j) = spval
2202 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2203 spval,varname,sh2o(ista_2l,jsta_2l,1))
2208 if (sm(i,j) /= 0.0) sh2o(i,j,1) = spval
2211 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,1)
2214 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2215 spval,varname,sh2o(ista_2l,jsta_2l,2))
2220 if (sm(i,j) /= 0.0) sh2o(i,j,2) = spval
2223 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,2)
2226 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2227 spval,varname,sh2o(ista_2l,jsta_2l,3))
2232 if (sm(i,j) /= 0.0) sh2o(i,j,3) = spval
2235 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,3)
2238 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2239 spval,varname,sh2o(ista_2l,jsta_2l,4))
2244 if (sm(i,j) /= 0.0) sh2o(i,j,4) = spval
2247 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,4)
2252 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2253 spval,varname,sh2o(ista_2l,jsta_2l,5))
2258 if (sm(i,j) /= 0.0) sh2o(i,j,5) = spval
2261 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,5)
2264 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2265 spval,varname,sh2o(ista_2l,jsta_2l,6))
2270 if (sm(i,j) /= 0.0) sh2o(i,j,6) = spval
2273 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,6)
2276 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2277 spval,varname,sh2o(ista_2l,jsta_2l,7))
2282 if (sm(i,j) /= 0.0) sh2o(i,j,7) = spval
2285 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,7)
2288 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2289 spval,varname,sh2o(ista_2l,jsta_2l,8))
2294 if (sm(i,j) /= 0.0) sh2o(i,j,8) = spval
2297 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,8)
2300 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2301 spval,varname,sh2o(ista_2l,jsta_2l,9))
2306 if (sm(i,j) /= 0.0) sh2o(i,j,9) = spval
2309 if(debugprint)print*,
'sample l',varname,
' = ',1,sh2o(isa,jsa,9)
2315 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2316 spval,varname,smc(ista_2l,jsta_2l,1))
2321 if (sm(i,j) /= 0.0) smc(i,j,1) = spval
2324 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,1)
2327 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2328 spval,varname,smc(ista_2l,jsta_2l,2))
2333 if (sm(i,j) /= 0.0) smc(i,j,2) = spval
2336 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,2)
2339 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2340 spval,varname,smc(ista_2l,jsta_2l,3))
2345 if (sm(i,j) /= 0.0) smc(i,j,3) = spval
2348 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,3)
2351 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2352 spval,varname,smc(ista_2l,jsta_2l,4))
2357 if (sm(i,j) /= 0.0) smc(i,j,4) = spval
2360 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,4)
2365 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2366 spval,varname,smc(ista_2l,jsta_2l,5))
2371 if (sm(i,j) /= 0.0) smc(i,j,5) = spval
2374 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,5)
2377 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2378 spval,varname,smc(ista_2l,jsta_2l,6))
2383 if (sm(i,j) /= 0.0) smc(i,j,6) = spval
2386 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,6)
2389 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2390 spval,varname,smc(ista_2l,jsta_2l,7))
2395 if (sm(i,j) /= 0.0) smc(i,j,7) = spval
2398 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,7)
2401 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2402 spval,varname,smc(ista_2l,jsta_2l,8))
2407 if (sm(i,j) /= 0.0) smc(i,j,8) = spval
2410 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,8)
2413 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2414 spval,varname,smc(ista_2l,jsta_2l,9))
2419 if (sm(i,j) /= 0.0) smc(i,j,9) = spval
2422 if(debugprint)print*,
'sample l',varname,
' = ',1,smc(isa,jsa,9)
2428 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2429 spval,varname,stc(ista_2l,jsta_2l,1))
2434 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,1) = spval
2438 if(debugprint)print*,
'sample l',
'stc',
' = ',1,stc(isa,jsa,1)
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,2))
2447 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,2) = spval
2451 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,2)
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,3))
2460 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,3) = spval
2464 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,3)
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,4))
2473 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,4) = spval
2477 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,4)
2482 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2483 spval,varname,stc(ista_2l,jsta_2l,5))
2488 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,5) = spval
2492 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,5)
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,6))
2501 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,6) = spval
2505 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,6)
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,7))
2514 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,7) = spval
2518 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,7)
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,8))
2527 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,8) = spval
2531 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,8)
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,9))
2540 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) stc(i,j,9) = spval
2544 if(debugprint)print*,
'sample stc = ',1,stc(isa,jsa,9)
2551 if (modelname ==
'FV3R')
then
2553 do j = jsta_2l, jend_2u
2554 do i = ista_2l, iend_2u
2555 if(ext550(i,j,l)<spval)
then
2556 taod5503d( i, j, l) = ext550( i, j, l )
2557 dz = zint( i, j, l ) - zint( i, j, l+1 )
2558 aextc55( i, j, l ) = taod5503d( i, j, l ) / dz
2560 if(debugprint.and.i==im/2.and.j==(jsta+jend)/2)print*,
'sample taod5503d= ', &
2561 i,j,l,taod5503d( i, j, l )
2562 if(debugprint.and.i==im/2.and.j==(jsta+jend)/2)print*,
'sample dz= ', &
2564 if(debugprint.and.i==im/2.and.j==(jsta+jend)/2)print*,
'sample AEXTC55= ', &
2565 i,j,l,aextc55( i, j, l )
2587 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2588 spval,varname,alwin)
2592 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2593 spval,varname,rlwin)
2597 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2598 spval,varname,alwout)
2602 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2603 spval,varname,radot)
2609 if (alwout(i,j) /= spval) alwout(i,j) = -alwout(i,j)
2615 varname=
'ulwrf_avetoa'
2616 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2617 spval,varname,alwtoa)
2622 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2623 spval,varname,rlwtoa)
2632 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2633 spval,varname,aswin)
2638 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2639 spval,varname,rswin)
2644 do j=jsta_2l,jend_2u
2645 do i=ista_2l,iend_2u
2652 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2653 spval,varname,auvbin)
2658 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2659 spval,varname,auvbinc)
2664 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2665 spval,varname,aswout)
2670 if (aswout(i,j) /= spval) aswout(i,j) = -aswout(i,j)
2677 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2678 spval,varname,rswout)
2681 varname=
'dswrf_avetoa'
2682 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2683 spval,varname,aswintoa)
2687 varname=
'uswrf_avetoa'
2688 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2689 spval,varname,aswtoa)
2695 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2696 spval,varname,sfcshx)
2701 if (sfcshx(i,j) /= spval) sfcshx(i,j) = -sfcshx(i,j)
2708 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2713 if (twbs(i,j) /= spval) twbs(i,j) = -twbs(i,j)
2724 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2725 spval,varname,sfclhx)
2730 if (sfclhx(i,j) /= spval) sfclhx(i,j) = -sfclhx(i,j)
2737 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2742 if (qwbs(i,j) /= spval) qwbs(i,j) = -qwbs(i,j)
2746 if(me==0)print*,
'rdaod= ',rdaod
2750 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2751 spval,varname,aod550)
2754 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2755 spval,varname,du_aod550)
2758 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2759 spval,varname,ss_aod550)
2762 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2763 spval,varname,su_aod550)
2766 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2767 spval,varname,oc_aod550)
2770 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2771 spval,varname,bc_aod550)
2776 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2777 spval,varname,subshx)
2782 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) subshx(i,j) = spval
2789 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2790 spval,varname,grnflx)
2795 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) grnflx(i,j) = spval
2801 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2802 spval,varname,sfcux)
2807 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2808 spval,varname,sfcvx)
2814 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2815 spval,varname,sfcuxi)
2816 if(debugprint)print*,
'sample l',varname,
' = ',1,sfcuxi(isa,jsa)
2820 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2821 spval,varname,sfcvxi)
2822 if(debugprint)print*,
'sample l',varname,
' = ',1,sfcvxi(isa,jsa)
2826 do j=jsta_2l,jend_2u
2827 do i=ista_2l,iend_2u
2834 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2835 spval,varname,gtaux)
2840 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2841 spval,varname,gtauy)
2846 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2847 spval,varname,avgpotevp)
2852 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) avgpotevp(i,j) = spval
2859 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2860 spval,varname,potevp)
2865 if (sm(i,j) == 1.0 .and. sice(i,j) ==0.) potevp(i,j) = spval
2871 do j=jsta_2l,jend_2u
2872 do i=ista_2l,iend_2u
2874 rlwtt(i,j,l) = spval
2876 rswtt(i,j,l) = spval
2878 tcucn(i,j,l) = spval
2879 tcucns(i,j,l) = spval
2881 train(i,j,l) = spval
2893 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2905 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2917 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2925 do j = jsta_2l, jend_2u
2927 if (buf(i,j) < spval)
then
2928 ivgtyp(i,j) = nint(buf(i,j))
2938 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2942 do j = jsta_2l, jend_2u
2944 if (buf(i,j) < spval)
then
2945 isltyp(i,j) = nint(buf(i,j))
2954 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2959 smstav(i,j) = buf(i,j)
2962 varname=
'snacc_land'
2963 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2966 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
2969 do j = jsta_2l, jend_2u
2971 if(buf(i,j)<spval)
then
2972 sndepac(i,j) = buf(i,j)
2973 elseif(buf2(i,j)<spval)
then
2974 sndepac(i,j) = buf2(i,j)
2976 sndepac(i,j) = spval
2981 do j=jsta_2l,jend_2u
2982 do i=ista_2l,iend_2u
2988 thz0(i,j) = ths(i,j)
2996 do j=jsta_2l,jend_2u
2997 do i=ista_2l,iend_2u
2998 el_pbl(i,j,l) = spval
2999 exch_h(i,j,l) = spval
3011 varname=
'prescnvclt'
3012 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3020 if(ptop(i,j) <= 0.0) ptop(i,j) = spval
3025 if(ptop(i,j) < spval)
then
3027 if(ptop(i,j) <= pmid(i,j,l))
then
3040 varname=
'prescnvclb'
3041 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3048 if(pbot(i,j) <= 0.0) pbot(i,j) = spval
3055 if(pbot(i,j) < spval)
then
3057 if(pbot(i,j) >= pmid(i,j,l))
then
3067 if(debugprint)print*,
'sample hbot = ',hbot(isa,jsa)
3069 varname=
'pres_avelct'
3070 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3071 spval,varname,ptopl)
3075 varname=
'pres_avelcb'
3076 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3077 spval,varname,pbotl)
3081 varname=
'tmp_avelct'
3082 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3083 spval,varname,ttopl)
3087 varname=
'pres_avemct'
3088 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3089 spval,varname,ptopm)
3093 varname=
'pres_avemcb'
3094 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3095 spval,varname,pbotm)
3099 varname=
'tmp_avemct'
3100 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3101 spval,varname,ttopm)
3105 varname=
'pres_avehct'
3106 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3107 spval,varname,ptoph)
3111 varname=
'pres_avehcb'
3112 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3113 spval,varname,pboth)
3117 varname=
'tmp_avehct'
3118 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3119 spval,varname,ttoph)
3123 varname=
'tcdc_avebndcl'
3124 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3125 spval,varname,pblcfr)
3129 do j = jsta_2l, jend_2u
3131 if (pblcfr(i,j) < spval) pblcfr(i,j) = pblcfr(i,j) * 0.01
3136 varname=
'cwork_aveclm'
3137 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3138 spval,varname,cldwork)
3143 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3144 spval,varname,runoff)
3149 if (sm(i,j) /= 0.0) runoff(i,j) = spval
3155 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3161 if (sm(i,j) /= 0.0) twa(i,j) = spval
3168 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3169 spval,varname,tecan)
3174 if (sm(i,j) /= 0.0) tecan(i,j) = spval
3180 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3181 spval,varname,tetran)
3186 if (sm(i,j) /= 0.0) tetran(i,j) = spval
3192 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3193 spval,varname,tedir)
3198 if (sm(i,j) /= 0.0) tedir(i,j) = spval
3204 if(modelname==
'GFS') varname=
'tmax_max2m'
3205 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3206 spval,varname,maxtshltr)
3210 if(modelname==
'GFS') varname=
'tmin_min2m'
3211 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3212 spval,varname,mintshltr)
3218 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3219 spval,varname,maxrhshltr)
3223 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3224 spval,varname,minrhshltr)
3229 varname=
'spfhmax_max2m'
3230 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3231 spval,varname,maxqshltr)
3236 varname=
'spfhmin_min2m'
3237 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3238 spval,varname,minqshltr)
3242 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3243 spval,varname,dzice)
3248 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3249 spval,varname,smcwlt)
3254 if (sm(i,j) /= 0.0) smcwlt(i,j) = spval
3261 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3262 spval,varname,suntime)
3266 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3267 spval,varname,fieldcapa)
3272 if (sm(i,j) /= 0.0) fieldcapa(i,j) = spval
3279 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3280 spval,varname,avisbeamswin)
3286 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3287 spval,varname,avisdiffswin)
3291 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3292 spval,varname,airbeamswin)
3296 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3297 spval,varname,airdiffswin)
3301 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3302 spval,varname,alwoutc)
3306 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3307 spval,varname,alwtoac)
3311 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3312 spval,varname,aswoutc)
3316 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3317 spval,varname,aswtoac)
3321 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3322 spval,varname,alwinc)
3326 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3327 spval,varname,aswinc)
3331 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3332 spval,varname,ssroff)
3337 if (sm(i,j) /= 0.0) ssroff(i,j) = spval
3343 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3344 spval,varname,avgedir)
3349 if (sm(i,j) /= 0.0) avgedir(i,j) = spval
3355 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3356 spval,varname,avgecan)
3361 if (sm(i,j) /= 0.0) avgecan(i,j) = spval
3367 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3373 if (sm(i,j) /= 0.0) paha(i,j) = spval
3379 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3385 if (sm(i,j) /= 0.0) pahi(i,j) = spval
3391 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3392 spval,varname,avgetrans)
3397 if (sm(i,j) /= 0.0) avgetrans(i,j) = spval
3403 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3404 spval,varname,avgesnow)
3409 if (sm(i,j)==1.0 .and. sice(i,j)==0.) avgesnow(i,j)=spval
3415 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3416 spval,varname,smstot)
3421 if (sm(i,j) /= 0.0) smstot(i,j) = spval
3427 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3428 spval,varname,snopcx)
3433 if (sm(i,j) /= 0.0) snopcx(i,j) = spval
3439 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u, &
3456 if ((gocart_on .or. gccpp_on) .and. d2d_chem)
then
3461 if ( k == 1) varname=
'duem001'
3462 if ( k == 2) varname=
'duem002'
3463 if ( k == 3) varname=
'duem003'
3464 if ( k == 4) varname=
'duem004'
3465 if ( k == 5) varname=
'duem005'
3467 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3468 spval,varname,chem_2d)
3470 duem(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3475 if ( k == 1) varname=
'dust1sd'
3476 if ( k == 2) varname=
'dust2sd'
3477 if ( k == 3) varname=
'dust3sd'
3478 if ( k == 4) varname=
'dust4sd'
3479 if ( k == 5) varname=
'dust5sd'
3480 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3481 spval,varname,chem_2d)
3482 dusd(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3487 if ( k == 1) varname=
'dust1dp'
3488 if ( k == 2) varname=
'dust2dp'
3489 if ( k == 3) varname=
'dust3dp'
3490 if ( k == 4) varname=
'dust4dp'
3491 if ( k == 5) varname=
'dust5dp'
3492 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3493 spval,varname,chem_2d)
3494 dudp(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3499 if ( k == 1) varname=
'dust1wtl'
3500 if ( k == 2) varname=
'dust2wtl'
3501 if ( k == 3) varname=
'dust3wtl'
3502 if ( k == 4) varname=
'dust4wtl'
3503 if ( k == 5) varname=
'dust5wtl'
3504 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3505 spval,varname,chem_2d)
3506 duwt(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3511 if ( k == 1) varname=
'dust1wtc'
3512 if ( k == 2) varname=
'dust2wtc'
3513 if ( k == 3) varname=
'dust3wtc'
3514 if ( k == 4) varname=
'dust4wtc'
3515 if ( k == 5) varname=
'dust5wtc'
3516 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3517 spval,varname,chem_2d)
3518 dusv(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3523 if ( k == 1) varname=
'ssem001'
3524 if ( k == 2) varname=
'ssem002'
3525 if ( k == 3) varname=
'ssem003'
3526 if ( k == 4) varname=
'ssem004'
3527 if ( k == 5) varname=
'ssem005'
3528 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3529 spval,varname,chem_2d)
3530 ssem(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3535 if ( k == 1) varname=
'seas1sd'
3536 if ( k == 2) varname=
'seas2sd'
3537 if ( k == 3) varname=
'seas3sd'
3538 if ( k == 4) varname=
'seas4sd'
3539 if ( k == 5) varname=
'seas5sd'
3540 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3541 spval,varname,chem_2d)
3542 sssd(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3547 if ( k == 1) varname=
'seas1dp'
3548 if ( k == 2) varname=
'seas2dp'
3549 if ( k == 3) varname=
'seas3dp'
3550 if ( k == 4) varname=
'seas4dp'
3551 if ( k == 5) varname=
'seas5dp'
3552 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3553 spval,varname,chem_2d)
3554 ssdp(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3559 if ( k == 1) varname=
'seas1wtl'
3560 if ( k == 2) varname=
'seas2wtl'
3561 if ( k == 3) varname=
'seas3wtl'
3562 if ( k == 4) varname=
'seas4wtl'
3563 if ( k == 5) varname=
'seas5wtl'
3564 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3565 spval,varname,chem_2d)
3566 sswt(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3571 if ( k == 1) varname=
'seas1wtc'
3572 if ( k == 2) varname=
'seas2wtc'
3573 if ( k == 3) varname=
'seas3wtc'
3574 if ( k == 4) varname=
'seas4wtc'
3575 if ( k == 5) varname=
'seas5wtc'
3576 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3577 spval,varname,chem_2d)
3578 sssv(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3583 if ( k == 1) varname=
'bceman'
3584 if ( k == 2) varname=
'bcembb'
3585 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3586 spval,varname,chem_2d)
3587 bcem(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3592 if ( k == 1) varname=
'bc1sd'
3593 if ( k == 2) varname=
'bc2sd'
3594 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3595 spval,varname,chem_2d)
3596 bcsd(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3601 if ( k == 1) varname=
'bc1dp'
3602 if ( k == 2) varname=
'bc2dp'
3603 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3604 spval,varname,chem_2d)
3605 bcdp(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3610 if ( k == 1) varname=
'bc1wtl'
3611 if ( k == 2) varname=
'bc2wtl'
3612 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3613 spval,varname,chem_2d)
3614 bcwt(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3619 if ( k == 1) varname=
'bc1wtc'
3620 if ( k == 2) varname=
'bc2wtc'
3621 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3622 spval,varname,chem_2d)
3623 bcsv(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3628 if ( k == 1) varname=
'oceman'
3629 if ( k == 2) varname=
'ocembb'
3630 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3631 spval,varname,chem_2d)
3632 ocem(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3637 if ( k == 1) varname=
'oc1sd'
3638 if ( k == 2) varname=
'oc2sd'
3639 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3640 spval,varname,chem_2d)
3641 ocsd(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3646 if ( k == 1) varname=
'oc1dp'
3647 if ( k == 2) varname=
'oc2dp'
3648 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3649 spval,varname,chem_2d)
3650 ocdp(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3655 if ( k == 1) varname=
'oc1wtl'
3656 if ( k == 2) varname=
'oc2wtl'
3657 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3658 spval,varname,chem_2d)
3659 ocwt(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3664 if ( k == 1) varname=
'oc1wtc'
3665 if ( k == 2) varname=
'oc2wtc'
3666 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3667 spval,varname,chem_2d)
3668 ocsv(1:im,jsta_2l:jend_2u,k)=chem_2d(1:im,jsta_2l:jend_2u)
3673 call read_netcdf_2d_para(ncid2d,ista,ista_2l,iend,iend_2u,jsta,jsta_2l,jend,jend_2u,&
3674 spval,varname,chem_2d)
3675 maod(1:im,jsta_2l:jend_2u)=chem_2d(1:im,jsta_2l:jend_2u)
3679 status=nf90_close(ncid2d)
3710 CALL table(ptbl,ttbl,pt_tbl, &
3711 rdq,rdth,rdp,rdthe,pl,thl,qs0,sqs,sthe,the0)
3713 CALL tableq(ttblq,rdpq,rdtheq,plq,thl,stheq,the0q)
3718 WRITE(6,*)
' SPL (POSTED PRESSURE LEVELS) BELOW: '
3719 WRITE(6,51) (spl(l),l=1,lsm)
3720 50
FORMAT(14(f4.1,1x))
3721 51
FORMAT(8(f8.1,1x))
3726 alsl(l) = log(spl(l))
3731 print*,
'writing out igds'
3735 if(maptype == 1)
THEN
3737 WRITE(6,*)
'igd(1)=',3
3740 WRITE(igdout)latstart
3741 WRITE(igdout)lonstart
3748 WRITE(igdout)truelat2
3749 WRITE(igdout)truelat1
3751 ELSE IF(maptype == 2)
THEN
3755 WRITE(igdout)latstart
3756 WRITE(igdout)lonstart
3763 WRITE(igdout)truelat2
3764 WRITE(igdout)truelat1
3770 if (truelat1 < 0.)
THEN
3776 CALL msfps (lat,truelat1*0.001,psmapf)
3778 ELSE IF(maptype == 3)
THEN
3782 WRITE(igdout)latstart
3783 WRITE(igdout)lonstart
3785 WRITE(igdout)latlast
3786 WRITE(igdout)lonlast
3787 WRITE(igdout)truelat1
3793 ELSE IF(maptype == 0 .OR. maptype == 203)
THEN
3797 WRITE(igdout)latstart
3798 WRITE(igdout)lonstart
3808 ELSE IF(maptype == 207)
THEN
3809 write(flatlon,1001)ifhr
3810 open(112,file=trim(flatlon),form=
'formatted', &
3812 write(112,1002)latstart/1000,lonstart/1000,&
3813 latse/1000,lonse/1000,latnw/1000,lonnw/1000,&
3814 latlast/1000,lonlast/1000
3815 1001
format(
'latlons_corners.txt.f',i3.3)
3816 1002
format(4(i6,i7,x))