CALPUFF and Postprocessors

CALPUFF and Postprocessors CALPUFF and Postprocessors

29.01.2015 Views

c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- c --- Header record #1 - File Declaration -- 24 words write(iomet) DATASET,DATAVER,DATAMOD Header record #2 - Number of comment lines -- 1 word write(iomet) NCOM Header record #3 to NCOM+2 (Comment record section) -- 33 words each write(iomet) COMMENT Header record #NCOM+3 - run control parameters -- 37 words write(iomet) IBYR,IBMO,IBDY,IBHR,IBTZ,IRLG,IRTYPE, 1 NX,NY,NZ,DGRID,XORIGR,YORIGR, IWFCOD,NSSTA, 2 NUSTA,NPSTA,NOWSTA,NLU,IWAT1,IWAT2,LCALGRD 3 PMAP,DATUM,DATEN,FEAST,FNORTH,UTMHEM,IUTMZN, 4 RNLAT0,RELON0,XLAT1,XLAT2 Header record #NCOM+4 - cell face heights (NZ + 1 words) write(iomet)CLAB1,IDUM,ZFACEM Header records #NCOM+5 & 6 - x, y coordinates of surface stations (NSSTA words each record) if(nssta.ge.1)then write(iomet)CLAB2,IDUM,XSSTA write(iomet)CLAB3,IDUM,YSSTA endif Header records #NCOM+7 & 8 - x, y coordinates of upper air stations (NUSTA words each record) if(nusta.ge.1)then write(iomet)CLAB4,IDUM,XUSTA write(iomet)CLAB5,IDUM,YUSTA endif Header records #NCOM+9 & 10 - x, y coordinates of precipitation stations (NPSTA words each record) if(npsta.ge.1)then write(iomet)CLAB6,IDUM,XPSTA write(iomet)CLAB7,IDUM,YPSTA endif Header record #NCOM+11 - surface roughness lengths (NX * NY words) write(iomet)CLAB8,IDUM,Z0 Header record #NCOM+12 - land use categories (NX * NY words) write(iomet)CLAB9,IDUM,ILANDU Header record #NCOM+13 - elevations (NX * NY words) write(iomet)CLAB10,IDUM,ELEV Header record #NCOM+14 - leaf area index (NX * NY words) call wrtr2d(iomet,xlai,xbuf,mxnx,mxny,nx,ny,clabel,idum) write(iomet)CLAB11,IDUM,XLAI Header record #NCOM+15 - nearest surface station no. to each grid point (NX * NY words) if(nssta.ge.1)then write(iomet)CLAB12,IDUM,NEARS endif where the following declarations apply: real ZFACEM(nz+1),XSSTA(nssta),YSSTA(nssta),XUSTA(nusta),YUSTA(nusta) real XPSTA(npsta),YPSTA(npsta) real Z0(nx,ny),ELEV(nx,ny),XLAI(nx,ny) MAR 2006 – CALPUFF F-91

integer ILANDU(nx,ny),NEARS(nx,ny) character*132 COMMENT(ncom) character*64 DATAMOD character*16 DATASET,DATAVER character*12 DATEN character*8 PMAP,DATUM character*8 CLAB1,CLAB2,CLAB3,CLAB4,CLAB5,CLAB6 character*8 CLAB7,CLAB8,CLAB9,CLAB10,CLAB11,CLAB12 character*4 UTMHEM logical LCALGRD CALMET.DAT File - Data Records The CALMET.DAT data records include hourly fields of winds and meteorological variables. In addition to the regular CALMET output variables, both CALGRID and CALPUFF require additional threedimensional fields of air temperature and vertical velocity. The presence of these fields in the CALMET output file is flagged by the header record logical variable, LCALGRD, having a value of TRUE. The data records contain three-dimensional gridded fields of U, V, and W wind components and air temperature, and two-dimensional fields of PGT stability class, surface friction velocity, mixing height, Monin-Obukhov length, convective velocity scale, precipitation rate (not used by CALGRID), nearsurface temperature, air density, short-wave solar radiation, relative humidity, and precipitation type codes (not used by CALGRID). A description of each variable in the data records is provided in Table F- 5. Sample FORTRAN write statements for the CALMET.DAT data records are: c --- c --- c --- Write U, V, W wind components +))) Loop over vertical layers, k * * write(iunit)CLABU,NDATHR,((U(i,j,k),i=1,nx),j=1,ny) * write(iunit)CLABV,NDATHR,((V(i,j,k),i=1,nx),j=1,ny) * if(LCALGRD)write(iunit)CLABW,NDATHR((W(i,j,k+1),i=1,nx),j=1,ny) * .))) End loop over vertical layers Write 3-D temperature field if(LCALGRD.and.irtype.eq.1) then +))) Loop over vertical layers, k * * write(iunit)CLABT,NDATHR,((ZTEMP(i,j,k),i=1,nxm),j=1,nym) * .))) End loop over vertical layers endif Write 2-D meteorological fields if(irtype.eq.1) then write(iunit)CLABSC,NDATHR,IPGT write(iunit)CLABUS,NDATHR,USTAR write(iunit)CLABZI,NDATHR,ZI write(iunit)CLABL,NDATHR,EL write(iunit)CLABWS,NDATHR,WSTAR write(iunit)CLABRMM,NDATHR,RMM MAR 2006 – CALPUFF F-92

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

c ---<br />

Header record #1 - File Declaration -- 24 words<br />

write(iomet) DATASET,DATAVER,DATAMOD<br />

Header record #2 - Number of comment lines -- 1 word<br />

write(iomet) NCOM<br />

Header record #3 to NCOM+2 (Comment record section) -- 33 words each<br />

write(iomet) COMMENT<br />

Header record #NCOM+3 - run control parameters -- 37 words<br />

write(iomet) IBYR,IBMO,IBDY,IBHR,IBTZ,IRLG,IRTYPE,<br />

1 NX,NY,NZ,DGRID,XORIGR,YORIGR, IWFCOD,NSSTA,<br />

2 NUSTA,NPSTA,NOWSTA,NLU,IWAT1,IWAT2,LCALGRD<br />

3 PMAP,DATUM,DATEN,FEAST,FNORTH,UTMHEM,IUTMZN,<br />

4 RNLAT0,RELON0,XLAT1,XLAT2<br />

Header record #NCOM+4 - cell face heights (NZ + 1 words)<br />

write(iomet)CLAB1,IDUM,ZFACEM<br />

Header records #NCOM+5 & 6 - x, y coordinates of surface stations<br />

(NSSTA words each record)<br />

if(nssta.ge.1)then<br />

write(iomet)CLAB2,IDUM,XSSTA<br />

write(iomet)CLAB3,IDUM,YSSTA<br />

endif<br />

Header records #NCOM+7 & 8 - x, y coordinates of upper air stations<br />

(NUSTA words each record)<br />

if(nusta.ge.1)then<br />

write(iomet)CLAB4,IDUM,XUSTA<br />

write(iomet)CLAB5,IDUM,YUSTA<br />

endif<br />

Header records #NCOM+9 & 10 - x, y coordinates of precipitation stations<br />

(NPSTA words each record)<br />

if(npsta.ge.1)then<br />

write(iomet)CLAB6,IDUM,XPSTA<br />

write(iomet)CLAB7,IDUM,YPSTA<br />

endif<br />

Header record #NCOM+11 - surface roughness lengths (NX * NY words)<br />

write(iomet)CLAB8,IDUM,Z0<br />

Header record #NCOM+12 - l<strong>and</strong> use categories (NX * NY words)<br />

write(iomet)CLAB9,IDUM,ILANDU<br />

Header record #NCOM+13 - elevations (NX * NY words)<br />

write(iomet)CLAB10,IDUM,ELEV<br />

Header record #NCOM+14 - leaf area index (NX * NY words)<br />

call wrtr2d(iomet,xlai,xbuf,mxnx,mxny,nx,ny,clabel,idum)<br />

write(iomet)CLAB11,IDUM,XLAI<br />

Header record #NCOM+15 - nearest surface station no. to each<br />

grid point (NX * NY words)<br />

if(nssta.ge.1)then<br />

write(iomet)CLAB12,IDUM,NEARS<br />

endif<br />

where the following declarations apply:<br />

real ZFACEM(nz+1),XSSTA(nssta),YSSTA(nssta),XUSTA(nusta),YUSTA(nusta)<br />

real XPSTA(npsta),YPSTA(npsta)<br />

real Z0(nx,ny),ELEV(nx,ny),XLAI(nx,ny)<br />

MAR 2006 – <strong>CALPUFF</strong><br />

F-91

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!