MONC
Modules | Functions/Subroutines | Variables
forcing.F90 File Reference

Go to the source code of this file.

Modules

module  forcing_mod
 Forcing, both subsidence and large scale.
 

Functions/Subroutines

type(component_descriptor_type) function, public forcing_mod::forcing_get_descriptor ()
 Provides the component descriptor for the core to register. More...
 
subroutine forcing_mod::field_information_retrieval_callback (current_state, name, field_information)
 Field information retrieval callback, this returns information for a specific components published field. More...
 
subroutine forcing_mod::field_value_retrieval_callback (current_state, name, field_value)
 Field value retrieval callback, this returns the value of a specific published field. More...
 
subroutine forcing_mod::init_callback (current_state)
 Initialises the forcing data structures. More...
 
subroutine forcing_mod::timestep_callback (current_state)
 Called for each data column and will determine the forcing values in x and y which are then applied to the field source terms. More...
 
subroutine forcing_mod::apply_subsidence_to_flow_fields (current_state)
 
subroutine forcing_mod::apply_subsidence_to_theta (current_state)
 
subroutine forcing_mod::apply_subsidence_to_q_fields (current_state)
 
subroutine forcing_mod::apply_time_independent_forcing_to_theta (current_state)
 
subroutine forcing_mod::apply_time_independent_forcing_to_q (current_state)
 
subroutine forcing_mod::apply_time_independent_forcing_to_u (current_state)
 
subroutine forcing_mod::apply_time_independent_forcing_to_v (current_state)
 
subroutine forcing_mod::finalisation_callback (current_state)
 Finalises the component @current_state Current model state. More...
 
real(kind=default_precision) function, dimension(size(diagnostics_summed)) forcing_mod::get_averaged_diagnostics (current_state, diagnostics_summed)
 Averages some diagnostic values across all local horizontal points. More...
 
subroutine forcing_mod::save_precomponent_tendencies (current_state, cxn, cyn, txn, tyn)
 Save the 3d tendencies coming into the component. More...
 
subroutine forcing_mod::compute_component_tendencies (current_state, cxn, cyn, txn, tyn)
 Computation of component tendencies. More...
 
subroutine forcing_mod::set_published_field_value (field_value, real_1d_field, real_2d_field, real_3d_field)
 Sets the published field value from the temporary diagnostic values held by this component. More...
 
subroutine forcing_mod::check_forcing_status (status)
 Will check a NetCDF status and write to log_log error any decoded statuses. More...
 
subroutine forcing_mod::read_2d_forcing_dimensions (ncid, time_dim, z_dim)
 Reads the dimensions for forcing from the NetCDF file. This routine assumes the forcing uses only time and height. More...
 
subroutine forcing_mod::read_2d_forcing_variables (filename, ncid, time_dim, time, z_dim, z_profile, force_2d_key, force_2d_var)
 Reads the variables from the NetCDF forcing file. The 2d variables are assumed to be time and height. More...
 
subroutine forcing_mod::read_single_forcing_variable (ncid, key, data1d, data2d)
 Reads a single variable out of a NetCDF file. More...
 

Variables

character(len= *), parameter forcing_mod::time_key = "time"
 NetCDF data time key. More...
 
character(len= *), parameter forcing_mod::z_key = "z"
 NetCDF data height(z) key. More...
 
character(len= *), parameter forcing_mod::wsubs_key = "wsubs"
 NetCDF data subsidence velocity. More...
 
integer, parameter forcing_mod::max_file_len =200
 Maximum length of surface condition input filename. More...
 
character(max_file_len) forcing_mod::input_file
 
integer, parameter forcing_mod::divergence =0
 
integer, parameter forcing_mod::subsidence =1
 
integer, parameter forcing_mod::tendency =0
 
integer, parameter forcing_mod::relaxation =1
 
integer, parameter forcing_mod::increment =2
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::theta_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::q_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::u_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::v_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dtheta_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dq_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::du_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dv_profile
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::du_profile_diag
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dv_profile_diag
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dtheta_profile_diag
 
real(kind=default_precision), dimension(:,:), allocatable forcing_mod::dq_profile_diag
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::du_subs_profile_diag
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dv_subs_profile_diag
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::dtheta_subs_profile_diag
 
real(kind=default_precision), dimension(:,:), allocatable forcing_mod::dq_subs_profile_diag
 
real(kind=default_precision), dimension(:,:), allocatable forcing_mod::w_subs_varies_with_time
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::forcing_input_times
 
real(kind=default_precision) forcing_mod::forcing_timescale_theta
 
real(kind=default_precision) forcing_mod::forcing_timescale_q
 
real(kind=default_precision) forcing_mod::forcing_timescale_u
 
real(kind=default_precision) forcing_mod::forcing_timescale_v
 
logical forcing_mod::l_constant_forcing_theta
 
logical forcing_mod::l_constant_forcing_q
 
logical forcing_mod::l_constant_forcing_u
 
logical forcing_mod::l_constant_forcing_v
 
integer forcing_mod::constant_forcing_type_theta =TENDENCY
 
integer forcing_mod::constant_forcing_type_q =TENDENCY
 
integer forcing_mod::constant_forcing_type_u =RELAXATION
 
integer forcing_mod::constant_forcing_type_v =RELAXATION
 
logical forcing_mod::l_constant_forcing_theta_z2pressure
 
logical forcing_mod::relax_to_initial_u_profile
 
logical forcing_mod::relax_to_initial_v_profile
 
logical forcing_mod::relax_to_initial_theta_profile
 
logical forcing_mod::use_time_varying_subsidence
 
logical forcing_mod::l_subs_pl_theta
 
logical forcing_mod::l_subs_pl_q
 
logical forcing_mod::l_subs_local_theta
 
logical forcing_mod::l_subs_local_q
 
character(len=string_length), dimension(:), allocatable forcing_mod::names_force_pl_q
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_u
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_v
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_th
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_qv
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_ql
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_qi
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_qr
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_qs
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_qg
 
real(kind=default_precision), dimension(:,:,:), allocatable forcing_mod::tend_3d_tabs
 
logical forcing_mod::l_tend_3d_u
 
logical forcing_mod::l_tend_3d_v
 
logical forcing_mod::l_tend_3d_th
 
logical forcing_mod::l_tend_3d_qv
 
logical forcing_mod::l_tend_3d_ql
 
logical forcing_mod::l_tend_3d_qi
 
logical forcing_mod::l_tend_3d_qr
 
logical forcing_mod::l_tend_3d_qs
 
logical forcing_mod::l_tend_3d_qg
 
logical forcing_mod::l_tend_3d_tabs
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_u
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_v
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_th
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_qv
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_ql
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_qi
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_qr
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_qs
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_qg
 
real(kind=default_precision), dimension(:), allocatable forcing_mod::tend_pr_tot_tabs
 
logical forcing_mod::l_tend_pr_tot_u
 
logical forcing_mod::l_tend_pr_tot_v
 
logical forcing_mod::l_tend_pr_tot_th
 
logical forcing_mod::l_tend_pr_tot_qv
 
logical forcing_mod::l_tend_pr_tot_ql
 
logical forcing_mod::l_tend_pr_tot_qi
 
logical forcing_mod::l_tend_pr_tot_qr
 
logical forcing_mod::l_tend_pr_tot_qs
 
logical forcing_mod::l_tend_pr_tot_qg
 
logical forcing_mod::l_tend_pr_tot_tabs
 
integer forcing_mod::iqv =0
 
integer forcing_mod::iql =0
 
integer forcing_mod::iqr =0
 
integer forcing_mod::iqi =0
 
integer forcing_mod::iqs =0
 
integer forcing_mod::iqg =0
 
integer forcing_mod::diagnostic_generation_frequency