c c Global header file for flxproc: c parameter + (imx=73, ! number of longitudes + glon1=-180., ! first geographic longitude + dlon=5., ! delta longitude (deg) + jmx=36, ! number of latitudes + glat1=-87.5, ! first geographic latitude + dlat=5., ! delta latitude (deg) + mxfhist=37, ! max number of fields available on history + mxfproc=42, ! number of fields available from processor + spval=1.e36, ! special value (float) + ispval=999999, ! special value (int) + zmflag=999.) ! zonal mean flag c c Geographic grid (vertical dimension determined by rdtgcm, including c kmx, zp1, and dzp): c pointer(pgcmzp,gcmzp(1)), (pgcmpmb,gcmpmb(1)) common/grid/ + gcmlon(imx), ! geographic longitudes (deg) + gcmlat(jmx), ! geographic latitudes (deg) + kmx, ! number of vertical pressure levels + zp1, ! first (lowest) pressure level + dzp, ! delta zp + p0, ! standard pressure (for t21 or maccm) + pgcmzp, ! pointer to 1d array of pressure levels + pgcmpmb ! pointer to 1d array of millibar pressures c c Fields from history (returned by rdtgcm), and related flags: c pointer(pfhist,fhist(1)) character*8 flab8 character*56 flab common/flds/ + pfhist, ! pointer to fields from current history ! (imx,kmx,jmx,nfhist) returned by rdtgcm + nfhist, ! number of fields in current history ! also returned by rdtgcm, max mxfhist + ixfhist(mxfproc), ! indices to each field in fhist, ! 0 if not defined (returned by rdtgcm) + ixfccm(mxfproc), ! indices to ccm fields ccmf ! or 0 if not available + ifproc(mxfproc), ! fields to be processed (from user) + ihtindep(mxfproc), ! if > 0 -> is height-independent field + ifdep(mxfhist,mxfproc-mxfhist), ! field dependencies (see chflds) + logplt(mxfproc), ! plot log10 or do not + flab8(mxfproc) ! 8-char field labels c c Field indices: c The first mxfhist fields (ixt->ixn2) are from the history, fields c mxfhist+1->mxfproc are derived in the processor from the history fields. c (This common also explicitly in setflab.f) c c 6/19/97: increase mxfhist from 36 to 37 for nat. c For latest rdtgcm (from ~/tgcmvis/lib/rdtgcm): c mxfhist is passed in, and should = 37 (tn->epot,ui,vi,wi,n2): c tn un vn o2 ox n4s noz co c co2 h2o h2 hox o+ ch4 ar he c nat o21d no2 no o3 o1 oh ho2 c h n2d ti te ne o2+ w z c epot ui vi wi n2 c common/findex/ + ixt ,ixu ,ixv ,ixo2 ,ixox ,ixn4s ,ixnoz ,ixco , + ixco2 ,ixh2o ,ixh2 ,ixhox ,ixop ,ixch4 ,ixar ,ixhe , + ixnat ,ixo21d ,ixno2 ,ixno ,ixo3 ,ixo1 ,ixoh ,ixho2 , + ixh ,ixn2d ,ixti ,ixte ,ixne ,ixo2p ,ixw ,ixz , + ixepot ,ixui ,ixvi ,ixwi ,ixn2 ,ixrho ,ixunvn ,ixuivi, + ixfof2 ,ixhmf2 integer ixtgcm(mxfproc) equivalence (ixtgcm,ixt) c c User input: c (these are read in both sut and mut code) c parameter(mxhvols=50,mxtms=241,mxvrange=20,mxzpht=60, + mxperimlat=jmx,mxlocs=50) character*32 histvols character*80 map_top_anno,lon_top_anno,lat_top_anno character*152 sendcgm,senddat,sendps,sendxdr,sendxdrms character*8 outplt(2),psmode,cfields character*24 flnm_cgm,flnm_ps,flnm_xdr common/inp_hist/ + histvols(mxhvols), ! history volumes (mss paths) + nhvols, ! number of volumes given by user + ivol, ! index to vol with current history + mtimes(3,mxtms), ! model times (day,hr,min) + ntms ! number of model times given by user c character*56 utvert_locname(mxlocs) common/inp_plt/ ! (see also pltopt.h) + iden,ionvel,modelhts, + iyaxright, ! right hand y-axis(es) flag + fmnmxint(4,mxfproc), ! field name, cmin, cmax, cint for each fld + cmin(mxfproc), ! field min to plot (from fmnmxint) + cmax(mxfproc), ! field max to plot (from fmnmxint) + cint(mxfproc), ! contour intervals (from fmnmxint) + cfields(mxfproc), ! user requested field name strings + nfproc, ! number of fields to process + fscale(2,mxfproc), ! fldname,scalefac for each field + scalefac(mxfproc), ! scale factor for each field (from fscale) + ivec_label, ! vector labeling (unused) + sendcgm, ! path to which cgm file is to be rcp'd + senddat, ! path to which ascii data file is to be rcp'd + sendps, ! path to which postscript file is to be rcp'd + sendxdr, ! path to which xdr data file is to be rcp'd + sendxdrms, ! mss path to send xdr data file + iwrdat, ! flag for writing data file + iwrxdr, ! flag for writing xdr file + outplt, ! 'CGM' and/or 'PS' for plot output + mkplt, ! flag to make plots (otherwise data only) + multiplt, ! flag for multiple plots per frame + multiadvfr, ! frame adv flag for multiplt + ipltrowcol(2), ! number of rows,cols of plots per frame + psmode, ! ps mode ('port' or 'land') + flnm_cgm, ! disk file name for cgm + flnm_ps, ! disk file name for ps + flnm_xdr, ! disk file name for xdr c Maps: + ipltmaps, ! make maps + fmap_zpht(mxzpht), ! zp or ht surfaces + map_continents, ! draw continental outlines on maps + map_tn_unvn, ! add un+vn vectors to tn map + map_ht_unvn, ! add un+vn vectors to ht map + map_ep_uivi, ! add ui+vi vectors to epot map + map_global, ! make cylindrical equidistant projection + map_global_cenlon, ! int center longitude for cyl equid + map_global_censlt, ! int center local time for cyl equid + map_polar, ! make polar stereographic projection + fmap_polar_perimlat(mxperimlat),! polar stereographic perimeter lats + map_satview, ! make satellite view projection + fmap_satview_latlon(2), ! float center lat and lon for satv + fmap_satview_latslt(2), ! float center lat and slt for satv + fmap_satview_eradii, ! float earth radii distance for satv + map_top_anno, ! top-of-frame annotation (80 char max) c Lat Slices: + ipltlat, ! make lat slices flag + flats(jmx), ! selected latitudes for lat slices + flat_zprange(2,mxvrange), ! zp ranges for y-axes of lat slices + flat_htscale(3,mxvrange), ! ht scales for y-axes of lat slices + ilat_log10, ! log10 flag for lat slices + lat_top_anno, ! top-of-frame annotation (80 char max) c Lon Slices: + ipltlon, ! make lon slices flag + flons(imx), ! selected longitudes for lon slices + fslts(imx), ! selected local times for ipltlon + flon_zprange(2,mxvrange), ! zp ranges for y-axes of lon slices + flon_htscale(3,mxvrange), ! ht scales for y-axes of lon slices + ilon_log10, ! log10 flag for lon slices + lon_top_anno, ! top-of-frame annotation (80 char max) c Ut vs vertical: + ipltutvert, ! flag for ut vs vertical contours + utvert_locs(2,mxlocs), ! lat,lon locations for ipltutvert + iutvertlocslt(mxlocs), ! utvert_locs(2,i) is slt if utvertlocslt(i) > 0 + utvert_locname, ! char names of locations for ipltutvert + nloc, ! number of valid locations for ipltutvert + utvert_zprange(2,mxvrange), ! zprange(s) for ipltutvert + utvert_htscale(3,mxvrange), ! htscale(s) for ipltutvert + iutvert_log10 ! log10 flag for ipltutvert c pointer(pfutvert,futvert(1)), (pfutvertz,futvertz(1)) common/mut/ + pfutvert, ! ptr to futvert(ntms,kmx,nloc,nflds) + pfutvertz ! ptr to hts futvertz(ntms,kmx,nloc) c c Proc-wide msc: c logical isdyn,istimes,issech character*80 tmpdir character*16 model common/msc/ + luhist, ! fortran logical unit for histories + isdyn, ! logical true if is dynamo history + istimes, ! logical true if is timesgcm history + issech, ! logical true if is a secondary history + tmpdir, ! temporary dir to store history files + ut, ! ut at current history (from mtimes(3,it)) + model, ! model string (tigcm, tiegcm, or time-gcm) + iframe_plt, ! current graphics frame number + iframe_dat, ! current ascii data frame number + iframe_xdr, ! current frame number for xdr data file + nppf, ! number of plots on current frame + iyd, ! yyddd of current history (emiss only) + f107a, ! f10.7a flux of current history (emiss only) + f107d ! f10.7d flux of current history (emiss only) c c Coupled parameters: c pointer (pcplzp,cplzp(1)) common/cpl/ + ncplzp, ! total number of coupled levels for plots + pcplzp, ! pointer to coupled levels (zp) + ifcpl(mxfproc) ! > 0 if field is coupled c c End main header file for flxproc c