Ocean mixed layer calculation (internal to sea ice model).
Open ocean has stability based flux calculations for uncoupled
runs. Uses monthly mean ocean forcing data from external file to
drive the ocean mixed layer. Initial sst either from the ice
restart file or set to 1 Jan from external file data./initial
List of ocean forcing fields: Note that order is important!
(order is determined by field list in vname).
For ocean mixed layer---------------units
1 sst---temperature--------------(C)
2 sss---salinity---------------(ppt)
3 hbl---depth-----------------(m)
4 u----surface u current-----------(m/s)
5 v----surface v current-----------(m/s)
6 dhdx---surface tilt x direction-------(m/m)
7 dhdy---surface tilt y direction-------(m/m)
8 qdp---ocean sub-mixed layer heat flux----(W/m2)
REVISION HISTORY:
original authors John Weatherly, C.M. Bitz, Elizabeth C. Hunke, Bruce P. Briegleb significantly modified by Bruce P. BrieglebINTERFACE:
module ice_oceanUSES:
use ice_flux use ice_calendar use ice_prnpnt
INTERFACE:
subroutine init_oceanmixed_iceDESCRIPTION:
Initialize ocean forcing data for the mixed layer. Check netCDF
file for correct dimensions, fields and other attributes, and then
read in all 12 months of forcing data.
Assumes 12 months of ocean forcing data, ordered from mean
January to mean December; dates of these months are ignored.
Note the assumption that if lat/lon dimensions of the netCDF files
are identical to those in the code, then the grids of the netCDF
file and the code are also.
REVISION HISTORY:
author Bruce P. Briegleb, NCARUSES:
use ice_mpi_internal use shr_sys_mod, only : shr_sys_flush, shr_sys_abort include "netcdf.inc"INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine time_intrplt_ocean_forcingDESCRIPTION:
Finds two months of ocean forcing data that bracket current date (for which year is ignored), and interpolate linearly in time between those two values.
REVISION HISTORY:
author Bruce P. Briegleb, NCARUSES:
use ice_mpi_internal use ice_grid use shr_sys_mod, only : shr_sys_flush, shr_sys_abort include "netcdf.inc"INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine set_oceanmixed_iceDESCRIPTION:
Sets sst and frzmlt with ocean mixed layer values
REVISION HISTORY:
author Bruce P. Briegleb, NCARUSES:
use shr_sys_mod, only : shr_sys_flushINPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine compute_oceanmixed_iceDESCRIPTION:
Update sst and other ocean state fields
REVISION HISTORY:
author Bruce P. Briegleb, NCARUSES:
use shr_sys_mod, only : shr_sys_flushINPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine mixed_layer(i,j)DESCRIPTION:
Calculate flux exchange over open ocean and update mixed layer sst
REVISION HISTORY:
author Elizabeth Hunke, LANL, and Bruce P. Briegleb, NCARUSES:
use ice_grid use ice_atmo use ice_constants, only : TTTocn, qqqocnINPUT/OUTPUT PARAMETERS:
integer (kind=int_kind), intent(in) :: i,j
INTERFACE:
subroutine ocnheat(i,j, delt, delq)DESCRIPTION:
Update sst and freezing/melting potential; set other ocean fields from forcing data; thermal effect of ice/ocn heat will be included in the sst change after this routine is called.
REVISION HISTORY:
Modified by Bruce P. BrieglebUSES:
use ice_constants use ice_state use ice_albedoINPUT/OUTPUT PARAMETERS:
integer (kind=int_kind) :: i,j real (kind=dbl_kind), intent(in) :: & delt ! potential T difference (K) &, delq ! humidity difference (kg/kg)