Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/airsea/airsea.F90
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ module airsea_driver
!
! Meteorological forcing variables
integer, public :: hum_method
integer, public :: back_radiation_method
character(len=PATH_MAX) :: meteo_file
type (type_scalar_input), public, target :: u10,v10
type (type_scalar_input), public, target :: airp,airt
Expand Down Expand Up @@ -262,7 +263,7 @@ subroutine init_airsea_nml(namlst, fn)
REALTYPE :: const_tx,const_ty
REALTYPE :: const_precip
REALTYPE :: precip_factor
integer :: back_radiation_method
!integer :: back_radiation_method jp--> to be used in ice must be declared as public outside of this subroutine.
integer :: heat_method

namelist /airsea/ calc_fluxes, &
Expand Down
11 changes: 8 additions & 3 deletions src/gotm/gotm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@ module gotm
use airsea_driver, only: surface_fluxes
use airsea_driver, only: set_sst,set_ssuv,integrated_fluxes
use airsea_driver, only: fluxes_method
use airsea_driver, only: wind=>w,tx,ty,I_0,cloud,heat,precip,evap,airp,albedo
use airsea_driver, only: wind=>w,tx,ty,hum,I_0,cloud,heat,precip,evap,airp,albedo
use airsea_driver, only: bio_albedo,bio_drag_scale
use airsea_driver, only: u10, v10
use airsea_driver, only: u10,v10,airt,sst,sss
use airsea_driver, only: back_radiation_method,hum_method,fluxes_method
use airsea_variables, only: qa,ta

#ifdef _ICE_
Expand Down Expand Up @@ -743,7 +744,11 @@ subroutine integrate_gotm()

#ifdef _ICE_
Qsw = I_0%value
call do_ice(h(nlev),dt,T(nlev),S(nlev),ta,precip%value,Qsw,surface_fluxes)
call do_ice(h(nlev),dt,T(nlev),S(nlev),ta,precip%value,Qsw, &
surface_fluxes,julianday,secondsofday,longitude, &
latitude,I_0%value,airt%value,airp%value,hum%value, &
u10%value,v10%value,cloud%value,sst,sss%value,rho(nlev),rho_0,back_radiation_method, &
hum_method,fluxes_method,albedo,heat%value)
#endif

! reset some quantities
Expand Down
23 changes: 15 additions & 8 deletions src/gotm/register_all_variables.F90
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,15 @@ subroutine register_stim_variables(nlev)
use stim_variables, only: Tice_surface,Tice,Tf
use stim_variables, only: Hice, Hfrazil, dHis, dHib
use stim_variables, only: surface_ice_energy,bottom_ice_energy
!use stim_variables, only: ocean_ice_flux
use stim_variables!, only: nilay, sfall_method,const_sfall, dfact , depmix, sice_method, snow_dist, const_Sice, distr_type, meltpond, Ameltmax, drainrate, hh0, ice_hi_i, ice_hs_i, albice_method, albice_f, albmelt, albsnow_f, albice_m, albsnow_m, transsf, transsm, transif, transim, transm, swkappasm, swkappasf, swkappaim, swkappaif
use stim_variables, only: ocean_ice_flux
use stim_variables, only: hsmin, PenFrac, hlaymin
use stim_variables, only: rhoscold, rhoswarm,rhowaterfresh, rhoice
use stim_variables, only: Tmelts, Tmelti, Condfi, rhoCpfi, rCpmix, Hfi, Hfw, swkappa, Tfreezi
use stim_variables, only: const_sfall, dfact, depmix, const_Sice, Ameltmax
use stim_variables, only: drainrate, hh0,ice_hi_i, ice_hs_i
use stim_variables, only: albice_f, albmelt, albsnow_f, albice_m, albsnow_m
use stim_variables, only: transsf, transsm, transif, transim, transm
use stim_variables, only: swkappasm, swkappasf, swkappaim, swkappaif

IMPLICIT NONE
!
Expand Down Expand Up @@ -228,16 +235,16 @@ subroutine register_stim_variables(nlev)
!call fm%register('rCpmix', '', 'rCpmix', standard_name='', data0d=rCpmix, category='ice')
!call fm%register('Hfi', '', 'Hfi', standard_name='', data0d=Hfi, category='ice')
call fm%register('hsmin', 'm', 'minimum snow thickness required for separate snow layer', standard_name='', data0d=hsmin, category='ice')
call fm%register('theta ', '', 'a parameter between 0.5 and 1. which determines how implicit the scheme is', standard_name='', data0d=theta, category='ice')
call fm%register('sigma ', 'W m-2 K-4)', 'Stefan-Boltzmann constant', standard_name='', data0d=sigma, category='ice')
call fm%register('epsilon', 'dimensionless', 'emissivity of ice', standard_name='', data0d=epsilon, category='ice')
!call fm%register('theta ', '', 'a parameter between 0.5 and 1. which determines how implicit the scheme is', standard_name='', data0d=theta, category='ice')
!call fm%register('sigma ', 'W m-2 K-4)', 'Stefan-Boltzmann constant', standard_name='', data0d=sigma, category='ice')
!call fm%register('epsilon', 'dimensionless', 'emissivity of ice', standard_name='', data0d=epsilon, category='ice')
call fm%register('PenFrac', '', 'fraction of incoming short wave radiation that penetrates the surface', standard_name='', data0d=PenFrac, category='ice')
call fm%register('hlaymin', 'm', 'thickness below which a linear temperature profile is assumed', standard_name='', data0d=hlaymin, category='ice')
call fm%register('rhoscold', 'kg m-3', 'specified cold snow density', standard_name='', data0d=rhoscold, category='ice')
call fm%register('rhoswarm', 'kg m-3', 'specified warm snow density', standard_name='', data0d=rhoswarm, category='ice')
call fm%register('rhowaterfresh', 'kg m-3', 'fresh water density', standard_name='', data0d=rhowaterfresh, category='ice')
call fm%register('rhoice', 'kg m-3', 'ice density', standard_name='', data0d=rhoice, category='ice')
call fm%register('kelvin', 'K', 'zero deg Celsius', standard_name='', data0d=kelvin, category='ice')
!call fm%register('kelvin', 'K', 'zero deg Celsius', standard_name='', data0d=kelvin, category='ice')
call fm%register('Tmelts', 'K', 'melting temperature of snow (fresh water)', standard_name='', data0d=Tmelts, category='ice')
call fm%register('Tmelti', 'K', 'melting temperature of sea ice', standard_name='', data0d=Tmelti, category='ice')
call fm%register('Condfi', 'W m-1 K-1', 'conductivity of pure ice', standard_name='', data0d=Condfi, category='ice')
Expand All @@ -249,8 +256,8 @@ subroutine register_stim_variables(nlev)
call fm%register('Tfreezi', 'K', 'freezing temperature of sea water', standard_name='', data0d=Tfreezi , category='ice')
!call fm%register('nlmax', '', 'Maximum snow and ice layers',category='ice')
! yaml variables
!call fm%register('nilay', '', 'number of ice layers', category='ice')
!call fm%register('sfall_method', '', '1:constant snow fall 2:calculate snowfall from precipitation', category='ice')
!call fm%register('nilay', '', 'number of ice layers', category='ice') ! com
!call fm%register('sfall_method', '', '1:constant snow fall 2:calculate snowfall from precipitation', category='ice')
call fm%register('const_sfall ', 'm d^-1', 'constant snow fall rate', standard_name='', data0d=const_sfall , category='ice')
call fm%register('dfact ', '', 'drift factor allowing a factor to increase snow fall from precipitation via drifing snow', standard_name='', data0d=dfact , category='ice')
call fm%register('depmix ', '', 'prescribed mixed layer depth', standard_name='', data0d=depmix , category='ice')
Expand Down