Update model input at the driver level of the multi-grid version of WAVEWATCH III. More...
Functions/Subroutines | |
| subroutine | wmupdt (IMOD, TDATA) |
| Update inputs for selected wave model grid. More... | |
| subroutine | wmupd1 (IMOD, IDSTR, J, IERR) |
| Update selected input using native input files. More... | |
| subroutine | wmupd2 (IMOD, J, JMOD, IERR) |
| Update selected input using input grids. More... | |
| subroutine | wmupdv (IMOD, VX, VY, JMOD, VXI, VYI, UNDEF, CONSTP) |
| Interpolate vector field from input grid to model grid. More... | |
| subroutine | wmupds (IMOD, FD, JMOD, FDI, UNDEF) |
| Interpolate scalar field from input grid to model grid. More... | |
| integer function | xycurvisearch (LENGTH, ARRAY, VALUE, DELTA) |
| Search the location of a point(XC,YC) in a regular grid. More... | |
| real function | interpolate (X_LEN, XARRAY, Y_LEN, YARRAY, FUNC, X, Y, DELTA) |
| Perform interpolation from regular to curvilinear grid for a scalar field. More... | |
| subroutine | interpolate2d (X_LEN, XARRAY, Y_LEN, YARRAY, FUNC1, FUNC2, X, Y, DELTA, VAL1, VAL2) |
| Perform interpolation from regular to curvilinear grid for a vector field. More... | |
| real function | averaging (X_LEN, XARRAY, Y_LEN, YARRAY, FUNC, X, Y, NPX, NPY) |
| This function uses averaging to estimate the value of a function f at point (x,y). More... | |
Variables | |
| integer, parameter | swpmax = 5 |
| SWPMAX. More... | |
Update model input at the driver level of the multi-grid version of WAVEWATCH III.
| real function wmupdtmd::averaging | ( | integer | X_LEN, |
| real, dimension(x_len) | XARRAY, | ||
| integer | Y_LEN, | ||
| real, dimension(y_len) | YARRAY, | ||
| real, dimension(x_len, y_len) | FUNC, | ||
| real | X, | ||
| real | Y, | ||
| integer | NPX, | ||
| integer | NPY | ||
| ) |
This function uses averaging to estimate the value of a function f at point (x,y).
f is assumed to be on a regular grid, with the grid x values specified by xarray with dimension x_len and the grid y values specified by yarray with dimension y_len, the number of point to be taken into account in x and y.
| X_LEN | |
| XARRAY | |
| Y_LEN | |
| YARRAY | |
| FUNC | |
| X | |
| Y | |
| NPX | |
| NPY |
Definition at line 3028 of file wmupdtmd.F90.
References xycurvisearch().
| real function wmupdtmd::interpolate | ( | integer, intent(in) | X_LEN, |
| real, dimension(x_len), intent(in) | XARRAY, | ||
| integer, intent(in) | Y_LEN, | ||
| real, dimension(y_len), intent(in) | YARRAY, | ||
| real, dimension(x_len, y_len), intent(in) | FUNC, | ||
| real, intent(in) | X, | ||
| real, intent(in) | Y, | ||
| real, intent(in), optional | DELTA | ||
| ) |
Perform interpolation from regular to curvilinear grid for a scalar field.
This function uses bilinear interpolation to estimate the value of a function f at point (x,y). f is assumed to be on a regular grid, with the grid x values specified by xarray with dimension x_len and the grid y values specified by yarray with dimension y_len.
| X_LEN | Dimension in X |
| XARRAY | 1D array for Longitudes |
| Y_LEN | Dimension in Y |
| YARRAY | 1D array for Latitudes |
| FUNC | 1D Field |
| X | Long for point in the curv grid |
| Y | Lat for point in the curv grid |
| DELTA | Threshold to determine if two values are equal |
Definition at line 2744 of file wmupdtmd.F90.
References xycurvisearch().
Referenced by wmupds().
| subroutine wmupdtmd::interpolate2d | ( | integer, intent(in) | X_LEN, |
| real, dimension(x_len), intent(in) | XARRAY, | ||
| integer, intent(in) | Y_LEN, | ||
| real, dimension(y_len), intent(in) | YARRAY, | ||
| real, dimension(x_len, y_len), intent(in) | FUNC1, | ||
| real, dimension(x_len, y_len), intent(in) | FUNC2, | ||
| real, intent(in) | X, | ||
| real, intent(in) | Y, | ||
| real, intent(in), optional | DELTA, | ||
| real, intent(out) | VAL1, | ||
| real, intent(out) | VAL2 | ||
| ) |
Perform interpolation from regular to curvilinear grid for a vector field.
This function uses bilinear interpolation to estimate the value of a function f at point (x,y). f is assumed to be on a regular grid, with the grid x values specified by xarray with dimension x_len and the grid y values specified by yarray with dimension y_len.
| [in] | X_LEN | Dimension in X |
| [in] | XARRAY | 1D array for Longitudes |
| [in] | Y_LEN | Dimension in Y |
| [in] | YARRAY | 1D array for Latitudes |
| [in] | FUNC1 | First component of the 2D array |
| [in] | FUNC2 | Second component of the 2D array |
| [in] | X | Long for point the curv grid |
| [in] | Y | Lat for point the curv grid |
| [in] | DELTA | Threshold to determine if two values are equal |
| [out] | VAL1 | Interpolated value at a point in curv grid |
| [out] | VAL2 | Interpolated value at a point in curv grid |
Definition at line 2886 of file wmupdtmd.F90.
References xycurvisearch().
Referenced by wmupdv().
| subroutine wmupdtmd::wmupd1 | ( | integer, intent(in) | IMOD, |
| character(len=3), intent(in) | IDSTR, | ||
| integer, intent(in) | J, | ||
| integer, intent(out) | IERR | ||
| ) |
Update selected input using native input files.
Reading from native grid files.
| [in] | IMOD | Model number. |
| [in] | IDSTR | ID string corresponding to J. |
| [in] | J | Input type. |
| [out] | IERR | Error indicator. |
Definition at line 516 of file wmupdtmd.F90.
References wmmdatmd::amv, wmmdatmd::data0, wmmdatmd::data1, wmmdatmd::data2, wmmdatmd::dmv, w3idatmd::dt0, w3idatmd::dtn, wmmdatmd::etime, wmmdatmd::fllsti, wmmdatmd::fllstl, wmmdatmd::fllstr, w3gdatmd::fswnd, w3idatmd::ga0, w3idatmd::gan, w3idatmd::gd0, w3idatmd::gdn, wmmdatmd::improc, w3idatmd::inflags1, wmmdatmd::mdse, wmmdatmd::mdsf, wmmdatmd::mdst, wmmdatmd::ndt, wmmdatmd::nmperr, wmmdatmd::nmv, wmmdatmd::nmvmax, w3gdatmd::nsea, w3gdatmd::nx, w3gdatmd::ny, wmmdatmd::rcld, w3servmd::strace(), w3idatmd::t0n, w3idatmd::t1n, w3idatmd::t2n, w3idatmd::tc0, w3idatmd::tcn, w3idatmd::tdn, w3idatmd::tg0, w3idatmd::tgn, w3idatmd::ti1, w3idatmd::ti2, w3idatmd::ti3, w3idatmd::ti4, w3idatmd::ti5, w3wdatmd::time, w3idatmd::tin, w3idatmd::tln, wmmdatmd::tmv, w3idatmd::tr0, w3idatmd::trn, w3idatmd::ttn, w3idatmd::tu0, w3idatmd::tun, w3idatmd::tvn, w3idatmd::tw0, w3idatmd::twn, w3idatmd::tzn, w3fldsmd::w3fldd(), w3fldsmd::w3fldg(), w3fldsmd::w3fldm(), wmmdatmd::wmdimd(), w3idatmd::wx0, w3idatmd::wxn, w3idatmd::wy0, and w3idatmd::wyn.
Referenced by wmupdt().
| subroutine wmupdtmd::wmupd2 | ( | integer, intent(in) | IMOD, |
| integer, intent(in) | J, | ||
| integer, intent(in) | JMOD, | ||
| integer, intent(out) | IERR | ||
| ) |
Update selected input using input grids.
Managing data, interpolation done in other routines.
| [in] | IMOD | Model number. |
| [in] | J | Input type. |
| [in] | JMOD | Model number source grid. |
| [out] | IERR | Error indicator. |
Definition at line 870 of file wmupdtmd.F90.
References constants::dair, wmmdatmd::etime, w3servmd::extcde(), wmmdatmd::idinp, wmmdatmd::improc, w3idatmd::inputs, wmmdatmd::mdse, wmmdatmd::mdso, wmmdatmd::mdss, wmmdatmd::mdst, wmmdatmd::nmperr, wmmdatmd::nmpscr, w3servmd::strace(), w3wdatmd::time, wmupds(), and wmupdv().
Referenced by wmupdt().
| subroutine wmupdtmd::wmupds | ( | integer, intent(in) | IMOD, |
| real, dimension(nx,ny), intent(out) | FD, | ||
| integer, intent(in) | JMOD, | ||
| real, dimension(grids(jmod)%nx,grids(jmod)%ny), intent(in) | FDI, | ||
| real, intent(in) | UNDEF | ||
| ) |
Interpolate scalar field from input grid to model grid.
Interpolating or averaging from input grid.
| [in] | IMOD | Output model number |
| [out] | FD | Output scalar field |
| [in] | JMOD | Input model number |
| [in] | FDI | Input scalar field |
| [in] | UNDEF | Value for mapped out point and points not covered. |
Definition at line 1986 of file wmupdtmd.F90.
References w3gdatmd::clgtype, w3servmd::extcde(), w3gdatmd::flagll, w3gdatmd::grids, w3gdatmd::gtype, w3gdatmd::hpfac, w3gdatmd::hqfac, w3gdatmd::iclose_none, w3gdatmd::iclose_smpl, w3gdatmd::iclose_trpl, wmmdatmd::improc, interpolate(), wmmdatmd::mdse, wmmdatmd::mdso, wmmdatmd::mdss, wmmdatmd::mdst, wmmdatmd::nmperr, wmmdatmd::nmpscr, w3gdatmd::nx, w3gdatmd::ny, w3gdatmd::rlgtype, w3servmd::strace(), swpmax, w3gdatmd::sx, w3gdatmd::sy, w3gdatmd::ungtype, w3gdatmd::x0, w3gdatmd::xgrd, w3gdatmd::y0, and w3gdatmd::ygrd.
Referenced by wmupd2().
| subroutine wmupdtmd::wmupdt | ( | integer, intent(in) | IMOD, |
| integer, dimension(2), intent(inout) | TDATA | ||
| ) |
Update inputs for selected wave model grid.
Reading from native grid files if update is needed based on time of data.
| [in] | IMOD | Model number |
| [in,out] | TDATA | Time for which all is data available. |
Definition at line 103 of file wmupdtmd.F90.
References w3timemd::dsec21(), wmmdatmd::etime, w3servmd::extcde(), w3gdatmd::filext, wmmdatmd::fllsti, wmmdatmd::fllstl, wmmdatmd::fllstr, wmmdatmd::idinp, wmmdatmd::iflsti, wmmdatmd::iflstl, wmmdatmd::iflstr, wmmdatmd::improc, w3idatmd::inflags1, wmmdatmd::inpmap, w3idatmd::jfirst, wmmdatmd::mdse, wmmdatmd::mdso, wmmdatmd::mdss, wmmdatmd::mdst, wmmdatmd::nmperr, wmmdatmd::nmpscr, w3gdatmd::nx, w3gdatmd::ny, w3timemd::stme21(), w3servmd::strace(), w3idatmd::t0n, w3idatmd::t1n, w3idatmd::t2n, w3idatmd::tc0, w3idatmd::tcn, w3idatmd::tdn, w3idatmd::tfn, w3idatmd::tg0, w3idatmd::tgn, w3idatmd::ti1, w3idatmd::ti2, w3idatmd::ti3, w3idatmd::ti4, w3idatmd::ti5, w3timemd::tick21(), w3wdatmd::time, w3idatmd::tin, w3idatmd::tln, w3idatmd::tr0, w3idatmd::trn, w3idatmd::ttn, w3idatmd::tu0, w3idatmd::tun, w3idatmd::tvn, w3idatmd::tw0, w3idatmd::twn, w3idatmd::tzn, w3gdatmd::w3setg(), w3idatmd::w3seti(), w3wdatmd::w3setw(), wmmdatmd::wmsetm(), wmupd1(), and wmupd2().
Referenced by wmwavemd::wmwave().
| subroutine wmupdtmd::wmupdv | ( | integer, intent(in) | IMOD, |
| real, dimension(nx,ny), intent(out) | VX, | ||
| real, dimension(nx,ny), intent(out) | VY, | ||
| integer, intent(in) | JMOD, | ||
| real, dimension(grids(jmod)%nx,grids(jmod)%ny), intent(in) | VXI, | ||
| real, dimension(grids(jmod)%nx,grids(jmod)%ny), intent(in) | VYI, | ||
| real, intent(in) | UNDEF, | ||
| integer, intent(in) | CONSTP | ||
| ) |
Interpolate vector field from input grid to model grid.
Interpolating or averaging from input grid.
| [in] | IMOD | Output model number |
| [out] | VX | Output vector field |
| [out] | VY | Output vector field |
| [in] | JMOD | Input model number |
| [in] | VXI | Input vector field |
| [in] | VYI | Input vector field |
| [in] | UNDEF | Value for mapped out point and points not covered. |
| [in] | CONSTP | Convervation type |
Definition at line 1305 of file wmupdtmd.F90.
References w3gdatmd::clgtype, w3servmd::extcde(), w3gdatmd::flagll, w3gdatmd::grids, w3gdatmd::gtype, w3gdatmd::hpfac, w3gdatmd::hqfac, w3gdatmd::iclose_none, w3gdatmd::iclose_smpl, w3gdatmd::iclose_trpl, wmmdatmd::improc, interpolate2d(), wmmdatmd::mdse, wmmdatmd::mdso, wmmdatmd::mdss, wmmdatmd::mdst, wmmdatmd::nmperr, wmmdatmd::nmpscr, w3gdatmd::nx, w3gdatmd::ny, w3gdatmd::rlgtype, w3servmd::strace(), swpmax, w3gdatmd::sx, w3gdatmd::sy, w3gdatmd::ungtype, w3gdatmd::x0, w3gdatmd::xgrd, w3gdatmd::y0, and w3gdatmd::ygrd.
Referenced by wmupd2().
| integer function wmupdtmd::xycurvisearch | ( | integer, intent(in) | LENGTH, |
| real, dimension(length), intent(in) | ARRAY, | ||
| real, intent(in) | VALUE, | ||
| real, intent(in), optional | DELTA | ||
| ) |
Search the location of a point(XC,YC) in a regular grid.
Given an array and a value to search, it returns the index of the element on the rectilinear grid that is closest to, but less than, the given value. "delta" is the threshold used to determine if two values are equal.
if ( abs(x1 - x2) <= delta) then
assume x1 = x2
endif| LENGTH | Dimension of input array |
| ARRAY | 1D array for lats or longs |
| VALUE | Value to located in ARRAY |
| DELTA | Threshold to determine if two values are equal |
Definition at line 2625 of file wmupdtmd.F90.
Referenced by averaging(), interpolate(), and interpolate2d().
| integer, parameter wmupdtmd::swpmax = 5 |
SWPMAX.
Definition at line 88 of file wmupdtmd.F90.