next up previous
Next: pgrad.F Up: The Proudman Oceanographic Laboratory Previous: lagrange.F

Subsections


metset.F


subroutine metset

Description

This subroutine governs the reading in of new meteorological data, when required, and interpolates the data to the current timestep.

The data to be read from files are air temperature, air pressure, relative humidity, W-E and S-N wind speeds, cloud cover and (optionally) evaporation-precipitation.

The surface wind stresses are calculated using (Smith and Banke, 1975)

\begin{displaymath}
F_{s} = \frac{\rho_{a}}{\rho} \left( 0.63 + 0.066 w \right)
...
..._{a}}{\rho} \left( 0.63 + 0.066 w \right)
\times 10^{-3} w v,
\end{displaymath}

where $u, v$ are the W-E, S-N wind speeds (ms$^{-1}$) and $F_s, G_s$ are the corresponding wind stresses, $\rho_{a}$ is the air density, $\rho$ is the sea water density and $w$ is the wind speed. The wind speeds are set equal to zero for the first day of a model run and subsequently ramped up to full strength over 12 hours.

The subroutine is an alternative version of pointmet and uses meteorological data defined on 2D arrays. It is invoked using the compiler option BULKMET.

Subroutine Arguments

none

Local variables

i, j local indices.
it index of meteorological data type.
tagpr tag for use in exchanging pr data between processors.
a time interpolation factor.
roa air density = 1.25kgm$^{-3}$.
wsp wind speed (ms$^{-1}$).
cdw intermediate variable for calculating the drag coefficient.
wktom conversion factor for converting windspeeds from knots to ms$^{-1}$.
met3 array containing meteorological data interpolated to the current time.
wef, wnf variables to add a spatially constant wind fluctuation.
first .true. the first time that metset is called.

Global variables changed

we, wn, fs, gs, pr, rh, at, cl, ep, met1, met2, icloud, isalt, istress, iheat

Logical units

nrmep = 15 evaporation minus precipitation (mm/month) data (salflux=.true. only), formatted.
nrmp = 17 either unformmet=.false. and this is a formatted file containing W-E windspeed (m/s), S-N windspeed (m/s), mean-sea-level atmospheric pressure (mb), air temperature ($^{\circ }$C) at 1.5m above the sea surface and relative humidity (%) data fields or unformmet=.true. and this is an unformatted file containing mean-sea-level atmospheric pressure field (mb).
nrmw = 18 windspeed (knots) and wind direction (unformmet=.true. only), unformatted.
nrmh = 19 relative humidity (%) data field (unformmet=.true. only), unformatted.
nrma = 20 air temperature ($^{\circ }$C) at 1.5m above the sea surface (unformmet=.true. only), unformatted.
nrmc = 21 low cloud amount (%, or octets if unformmet=.true.), formatted.

Order of Things

  1. Assign logical units.
  2. Through calls to interp_met_unf or interp_met1, read in and interpolate to the model grid new meteorological data, if necessary.
  3. Linearly interpolate meteorological data to the model time.
  4. Call windfluct to calculate horizontally uniform fluctuation component of the wind (optional).
  5. Split meteorological data array into separate arrays for each component.
  6. Add wind fluctuation (optional).
  7. Calculate the surface wind stress from the wind speed.

Calls

interp_met_unf, interp_met1
windfluct
Exch3DS, Exch3DR

Called By

b3dinit
endstep

Options - Logical

unformmet use unformatted meteorological data files.
salflux read in data for salinity flux (evaporation minus precipitation) calculations.

Options - Compiler

DEBUG, DEBUG_STRSET, DEBUG_MODEL, DEBUG_B3DRUN - output variables for debugging.
WINDFLUC - add a horizontally uniform fluctuation component of the wind.

Known Issues

none


subroutine interp_met1(met,nt)

Description

Meteorological data are read in from two files. The first contains (41 $\times$ 25) arrays of two components of wind speed, pressure, temperature and humidity, arranged on a 1$^{\circ }$ grid with southwest corner point 25$^{\circ }$W, 40$^{\circ }$N, at time intervals given in parameters.dat. The second file contains low cloud cover amount either on the same grid as the other data, or a single value to cover the whole domain.

The data are interpolated on to the model grid using bilinear interpolation.

Subroutine Arguments

met array containing meteorological data interpolated to the POLCOMS grid.
nt = ntypes, defined in parameters.dat, the number of meteorological variables used.

Local variables

cldpnt single-point cloud data read in from file.
cloud cloud data array read in from file.
modata, modata1, modata2, modata3, modata4, modata5 arrays used to store the meteorological data.
metlon, metlat longitude and latitude of a meteorological data point.
chi0, phi0 longitude and latitude of the most south-westerly u-point of the POLCOM's model grid.
cslon, cslat, cscol, csrow, metcol, metrow parameters used to determine the position of the closest meteorological data point to the southwest of a particular model grid point.
x, y longitude and latitude separation between a model grid point and the closest meteorological data point to the southwest.
itype meteorological data-type counter.
i, j, k indices.

Global variables changed

icloud

Logical units

nrmp = 17 formatted file containing W-E windspeed (m/s), S-N windspeed (m/s), mean-sea-level atmospheric pressure (mb), air temperature ($^{\circ }$C) at 1.5m above the sea surface and relative humidity (%) data fields. The format is (10f8.2).
nrmc = 21 formatted file containing low cloud amount (%). The format is cloud_form given in the file parameters.dat.

Order of Things

  1. Read in wind, pressure, temperature and humidity data from file.
  2. Interpolate data to model grid.
  3. Read in new cloud data, if required.
  4. If the new cloud data is gridded, interpolate to the model grid, otherwise assign the single cloud amount value to each point of the model grid.

Calls

copy2ds, copy2dr
cloudpnt
pfinish

Called By

b3dinit
endstep

Options - Logical

cloudpoint - cloud data is available at a single point with the same value to be used over the whole domain.

Options - Compiler

none

Known Issues

none


subroutine strset0

Description

Sets cloud cover, wind speeds and wind stresses to zero at every point.

Subroutine Arguments

none

Local variables

i, j local indices.

Global variables changed

cl, fs, gs, we, wn

Logical units

none

Order of Things

  1. Set cloud cover, wind speeds and wind stresses to zero.

Calls

none

Called By

b3dinit

Options - Logical

none

Options - Compiler

none

Known Issues

none


subroutine interp_met_unf(met,nt)

Description

Meteorological data are read in from six separate files.

Four of the files contain air temperature, pressure, relative humidity and wind data in (50 $\times$ 28)-element arrays. The meteorological data grid is 0.937 $^{\circ} \times 0.75^{\circ}$ with northwest corner point 20.625$^{\circ }$W, 65.25$^{\circ }$N and the data are available at the time interval given in parameters.dat. The wind data has speed and direction data in each record. Let $W$ be the wind record, then the wind direction in degrees is the integer part of 10 $^{-3} \times W$ and the wind speed in knots is $W- 10^{3} \times$ the wind direction. The low cloud cover data are in a separate file and consist of 2$\times$2 arrays for each data time. Optionally, evaporation-precipitation data are read in from a separate file if the SALFLUX compiler option is used. The data grid is 2.5$^{\circ }$ resolution with the northwest corner point 22.5$^{\circ }$W, 67.5$^{\circ }$N.

Except for the clouds, the data are interpolated on to the model grid using bilinear interpolation. For the cloud data, the model domain is split into quarters and each point in a quarter is allocated the same cloud amount corresponding to an element of the cloud data array.

Subroutine Arguments

met array containing meteorological data interpolated to the POLCOMS grid.
nt = ntypes, defined in parameters.dat, the number of meteorological variables used.

Local variables

dtor multiplication factor to convert from degrees to radians.
modata1, modata2, modata3, modata4, modata, modatar arrays used to store the meteorological data.
cloud cloud data array read in from file.
evpr evaporation-precipitation data read in from file.
metlon, metlat longitude and latitude of a meteorological data point.
chi0, phi0 longitude and latitude of the most south-westerly u-point of the POLCOM's model grid.
cslon, cslat, cscol, csrow, metcol, metrow parameters used to determine the position of the closest meteorological data point to the northwest of a particular model grid point.
x, y longitude and latitude separation between a model grid point and the closest meteorological data point to the northwest.
pt1dir, pt2dir, pt3dir, pt4dir wind direction at four points - used during interpolation.
pt1spd, pt2spd, pt3spd, pt4spd wind speed at four points - used during interpolation.
pt1n, pt2n, pt3n, pt4n S-N component of the wind at four points - used during interpolation.
pt1e, pt2e, pt3e, pt4e W-E component of the wind at four points - used during interpolation.
itype meteorological data-type counter.
irf temporary logical unit number.
i, j, k indices.
is, js global indices.

Global variables changed

icloud, isalt

Logical units

nrmep = 15 formatted file containing evaporation minus precipitation (mm/month) data. The format is (16f8.2).
nrmp = 17 unformatted file containing mean-sea-level atmospheric pressure field (mb).
nrmw = 18 unformatted file containing windspeed (knots) and wind direction (degrees).
nrmh = 19 unformatted file containing relative humidity (%) data.
nrma = 20 unformatted file containing air temperature ($^{\circ }$C) at 1.5m above the sea surface.
nrmc = 21 formatted file containing low cloud amount (octets). The format is cloud_form given in the file parameters.dat.

Order of Things

  1. Read in air temperature, pressure, relative humidity and wind data.
  2. Interpolate data to model grid. For wind data, resolve into S-N and W-E components.
  3. If required, read in new cloud data and determine cloud amount at each model point in %.
  4. If required, read in new evaporation-precipitation data, interpolate to model grid and convert to units of mms$^{-1}$ (optional).

Calls

copy2ds, copy2dr, copy1d

Called By

metset

Options - Logical

shelfmo - shelf model application of POLCOMS.
salflux - read in evaporation-precipitation data.

Options - Compiler

none

Known Issues

none


subroutine pointmet

Description

This subroutine reads in new meteorological data, when required, and interpolates the data to the current timestep. It is an alternative version of metset and uses single-point meteorological data. It is invoked using the compiler option POINTMET.

The data read in are W-E and S-N wind speeds, mean-sea-level pressure, air temperature, relative humidity and cloud cover, respectively.

The surface wind stresses are calculated using (Smith and Banke, 1975)

\begin{displaymath}
F_{s} = \frac{\rho_{a}}{\rho} \left( 0.63 + 0.066 w \right)
...
..._{a}}{\rho} \left( 0.63 + 0.066 w \right)
\times 10^{-3} w v,
\end{displaymath}

where $u, v$ are the W-E, S-N wind speeds (ms$^{-1}$) and $F_s, G_s$ are the corresponding wind stresses, $\rho_{a}$ is the air density, $\rho$ is the sea water density and $w$ is the wind speed. The wind speeds are set equal to zero for the first day of a model run and subsequently ramped up to full strength over 12 hours.

Subroutine Arguments

none

Local variables

i, j indices.
tagpr tag for use in exchanging pr data between processors.
nt = 6 number of meteorological parameters.
met_data meteorological data array.
a time interpolation factor.
roa air density = 1.25kgm$^{-3}$.
wsp wind speed (ms$^{-1}$).
cdw intermediate variable for calculating the drag coefficient.
first .true. on first call to pointmet.

Global variables changed

we, wn, fs, gs, pr, rh, at, cl, istress

Logical units

17 formatted file containing single values of W-E and S-N wind speeds, pressure, air temperature, relative humidity and cloud cover, respectively, at the time interval given in parameters.dat.

Order of Things

  1. Read in meteorological data.
  2. Linearly interpolate the meteorological data to the model time.
  3. Assign meteorological values at each point of the model grid.
  4. Calculate the wind stress.

Calls

Exch3DS, Exch3DR
copy2ds, copy2dr

Called By

b3dinit
endstep

Options - Logical

none

Options - Compiler

DEBUG, DEBUG_MODEL, DEBUG_B3DRUN - output variables for debugging.

Known Issues

none


subroutine windfluct(wef,wnf)

Description

Reads in fluctuation component of the wind. Invoked by using the WINDFLUC compiler option.

Subroutine Arguments

wef W-E component of the wind fluctuation.
wnf S-N component of the wind fluctuation.

Local variables

ntime number of file records to skip (= one less than the model time in hours).
i index.
ntimt, itimt used to calculate when the model time is an integer number of hours and hence when new data needs to be read.
first .true. the first time that windfluct is called.

Global variables changed

none

Logical units

84 formatted file containing hourly values of W-E and S-N wind fluctuations.

Order of Things

  1. Read in the fluctuation component of the wind.

Calls

copy1d

Called By

metset

Options - Logical

none

Options - Compiler

none

Known Issues

none


subroutine cloudpnt(cldpnt)

Description

Reads in single point cloud data from a file. Invoked using the CLOUDPOINT compiler option when unformmet is false.

Subroutine Arguments

cldpnt single value of cloud cover amount (%).

Local variables

ntime number of file records to skip (= one less than the model time in days).
i index.
first .true. the first time that cloudpnt is called.

Global variables changed

none

Logical units

21 formatted file containing daily point values of the cloud cover amount. Using the samre 4 quadrant method as in
interp_met_unf

Order of Things

  1. Read in single point cloud data from a file.

Calls

copy1d

Called By

interp_met1

Options - Logical

none

Options - Compiler

none

Known Issues

none


next up previous
Next: pgrad.F Up: The Proudman Oceanographic Laboratory Previous: lagrange.F
The AMMP Project 2005-04-20