MOM6
user_revise_forcing.F90
1
!> Provides a template for users to code updating the forcing fluxes.
2
module
user_revise_forcing
3
4
! This file is part of MOM6. See LICENSE.md for the license.
5
6
use
mom_domains
,
only
:
pass_var
,
pass_vector
, agrid
7
use
mom_error_handler
,
only
: mom_error, fatal, warning, is_root_pe
8
use
mom_file_parser
,
only
:
get_param
,
log_version
,
param_file_type
9
use
mom_forcing_type
,
only
:
forcing
10
use
mom_grid
,
only
:
ocean_grid_type
11
use
mom_io
,
only
:
file_exists
, read_data
12
use
mom_restart
,
only
:
register_restart_field
,
mom_restart_cs
13
use
mom_time_manager
,
only
: time_type,
operator
(+),
operator
(/)
14
use
mom_tracer_flow_control
,
only
: call_tracer_set_forcing
15
use
mom_tracer_flow_control
,
only
:
tracer_flow_control_cs
16
use
mom_variables
,
only
:
surface
17
18
implicit none
;
private
19
20
public
user_alter_forcing, user_revise_forcing_init
21
22
!> Control structure for user_revise_forcing
23
type
,
public
::
user_revise_forcing_cs
;
private
24
real
:: cdrag
!< The quadratic bottom drag coefficient.
25
end type
user_revise_forcing_cs
26
27
! This include declares and sets the variable "version".
28
#include "version_variable.h"
29
character(len=40)
:: mdl =
"user_revise_forcing"
!< This module's name.
30
contains
31
32
!> This subroutine sets the surface wind stresses.
33
subroutine
user_alter_forcing(state, fluxes, day, G, CS)
34
type
(
surface
),
intent(in)
:: state
!< A structure containing fields that
35
!! describe the surface state of the ocean.
36
type
(
forcing
),
intent(inout)
:: fluxes
!< A structure containing pointers to any
37
!! possible forcing fields. Unused fields
38
!! have NULL ptrs.
39
type
(time_type),
intent(in)
:: day
!< Time of the fluxes.
40
type
(
ocean_grid_type
),
intent(in)
:: g
!< The ocean's grid structure.
41
type
(
user_revise_forcing_cs
),
pointer
:: cs
!< A pointer to the control structure
42
!! returned by a previous call to
43
!! surface_forcing_init.
44
45
end subroutine
user_alter_forcing
46
47
!> Initialize the user_revise_forcing control structure
48
subroutine
user_revise_forcing_init(param_file,CS)
49
type
(
param_file_type
),
intent(in)
:: param_file
!< A structure indicating the open file to
50
!! parse for model parameter values.
51
type
(
user_revise_forcing_cs
),
pointer
:: cs
!< A pointer to the control structure
52
!! returned by a previous call to
53
!! surface_forcing_init.
54
55
call
log_version
(param_file, mdl, version)
56
57
end subroutine
user_revise_forcing_init
58
59
end module
user_revise_forcing
user_revise_forcing::user_revise_forcing_cs
Control structure for user_revise_forcing.
Definition:
user_revise_forcing.F90:23
mom_time_manager
Wraps the FMS time manager functions.
Definition:
MOM_time_manager.F90:2
mom_variables::surface
Pointers to various fields which may be used describe the surface state of MOM, and which will be ret...
Definition:
MOM_variables.F90:38
mom_file_parser::log_version
An overloaded interface to log version information about modules.
Definition:
MOM_file_parser.F90:109
user_revise_forcing
Provides a template for users to code updating the forcing fluxes.
Definition:
user_revise_forcing.F90:2
mom_domains::pass_var
Do a halo update on an array.
Definition:
MOM_domains.F90:49
mom_file_parser::param_file_type
A structure that can be parsed to read and document run-time parameters.
Definition:
MOM_file_parser.F90:54
mom_file_parser::get_param
An overloaded interface to read and log the values of various types of parameters.
Definition:
MOM_file_parser.F90:102
mom_io
This module contains I/O framework code.
Definition:
MOM_io.F90:2
mom_restart::mom_restart_cs
A restart registry and the control structure for restarts.
Definition:
MOM_restart.F90:72
mom_domains::pass_vector
Do a halo update on a pair of arrays representing the two components of a vector.
Definition:
MOM_domains.F90:54
mom_forcing_type
This module implements boundary forcing for MOM6.
Definition:
MOM_forcing_type.F90:2
mom_restart
The MOM6 facility for reading and writing restart files, and querying what has been read.
Definition:
MOM_restart.F90:2
mom_domains
Describes the decomposed MOM domain and has routines for communications across PEs.
Definition:
MOM_domains.F90:2
mom_variables
Provides transparent structures with groups of MOM6 variables and supporting routines.
Definition:
MOM_variables.F90:2
mom_file_parser
The MOM6 facility to parse input files for runtime parameters.
Definition:
MOM_file_parser.F90:2
mom_tracer_flow_control
Orchestrates the registration and calling of tracer packages.
Definition:
MOM_tracer_flow_control.F90:2
mom_grid
Provides the ocean grid type.
Definition:
MOM_grid.F90:2
mom_restart::register_restart_field
Register fields for restarts.
Definition:
MOM_restart.F90:107
mom_tracer_flow_control::tracer_flow_control_cs
The control structure for orchestrating the calling of tracer packages.
Definition:
MOM_tracer_flow_control.F90:75
mom_forcing_type::forcing
Structure that contains pointers to the boundary forcing used to drive the liquid ocean simulated by ...
Definition:
MOM_forcing_type.F90:49
mom_io::file_exists
Indicate whether a file exists, perhaps with domain decomposition.
Definition:
MOM_io.F90:68
mom_error_handler
Routines for error handling and I/O management.
Definition:
MOM_error_handler.F90:2
mom_grid::ocean_grid_type
Ocean grid type. See mom_grid for details.
Definition:
MOM_grid.F90:25
src
user
user_revise_forcing.F90
Generated by
1.8.16