namespace mom_controlled_forcing¶
Overview¶
Use control-theory to adjust the surface heat flux and precipitation. More…
namespace mom_controlled_forcing { // global functions subroutine, public apply_ctrl_forcing( SST_anom SST_anom, SSS_anom SSS_anom, SSS_mean SSS_mean, virt_heat virt_heat, virt_precip virt_precip, day_start day_start, dt dt, G G, US US, CS CS ); subroutine, public register_ctrl_forcing_restarts(G G, param_file param_file, CS CS, restart_CS restart_CS); subroutine, public controlled_forcing_init(Time Time, G G, param_file param_file, diag diag, CS CS); subroutine, public controlled_forcing_end(CS CS); } // namespace mom_controlled_forcing
Detailed Documentation¶
Use control-theory to adjust the surface heat flux and precipitation.
Adjustments are based on the time-mean or periodically (seasonally) varying anomalies from the observed state.
The techniques behind this are described in Hallberg and Adcroft (2018, in prep.).
By Robert Hallberg, July 2011 *
This program contains the subroutines that use control-theory * to adjust the surface heat flux and precipitation, based on the * time-mean or periodically (seasonally) varying anomalies from the * observed state. The techniques behind this are described in * Hallberg and Adcroft (2011, in prep.). *
Macros written all in capital letters are defined in
MOM_memory.h
. *A small fragment of the grid is shown below: *
j+1 x ^ x ^ x At x: q * j+1 > o > o > At ^: v, tauy * j x ^ x ^ x At >: u, taux * j > o > o > At o: h, fluxes. * j-1 x ^ x ^ x * i-1 i i+1 At x & ^: * i i+1 At > & o: *
The boundaries always run through q grid points (x). *
Global Functions¶
subroutine, public apply_ctrl_forcing( SST_anom SST_anom, SSS_anom SSS_anom, SSS_mean SSS_mean, virt_heat virt_heat, virt_precip virt_precip, day_start day_start, dt dt, G G, US US, CS CS )
This subroutine calls any of the other subroutines in this file that are needed to specify the current surface forcing fields.
Parameters:
g |
The ocean’s grid structure. |
sst_anom |
The sea surface temperature anomalies [degC]. |
sss_anom |
The sea surface salinity anomlies [ppt]. |
sss_mean |
The mean sea surface salinity [ppt]. |
virt_heat |
Virtual (corrective) heat fluxes that are augmented in this subroutine [W m-2]. |
virt_precip |
Virtual (corrective) precipitation fluxes that are augmented in this subroutine [kg m-2 s-1]. |
day_start |
Start time of the fluxes. |
dt |
Length of time over which these fluxes will be applied [s]. |
us |
A dimensional unit scaling type |
cs |
A pointer to the control structure returned by a previous call to ctrl_forcing_init. |
subroutine, public register_ctrl_forcing_restarts( G G, param_file param_file, CS CS, restart_CS restart_CS )
This subroutine is used to allocate and register any fields in this module that should be written to or read from the restart file.
Parameters:
g |
The ocean’s grid structure. |
param_file |
A structure indicating the open file to parse for model parameter values. |
cs |
A pointer that is set to point to the control structure for this module. |
restart_cs |
A pointer to the restart control structure. |
subroutine, public controlled_forcing_init( Time Time, G G, param_file param_file, diag diag, CS CS )
Set up this modules control structure.
Parameters:
time |
The current model time. |
g |
The ocean’s grid structure. |
param_file |
A structure indicating the open file to parse for model parameter values. |
diag |
A structure that is used to regulate diagnostic output. |
cs |
A pointer that is set to point to the control structure for this module. |
subroutine, public controlled_forcing_end(CS CS)
Clean up this modules control structure.
Parameters:
cs |
A pointer to the control structure returned by a previous call to controlled_forcing_init, it will be deallocated here. |