FV3 Bundle
oda_core_mod Module Reference

Data Types

interface  adjust_obs_error
 
interface  assign_forward_model
 
interface  backward_obs
 
interface  copy_obs
 
interface  diff_obs
 
interface  forward_obs
 
interface  mult_obs_i_mse
 
interface  nullify_obs
 

Functions/Subroutines

subroutine, public open_profile_dataset (filename, localize)
 
subroutine, public get_obs (model_time, Prof, Sfc, nprof, nsfc)
 
subroutine, public oda_core_init (Domain, Grid, localize)
 
subroutine, public purge_obs ()
 
subroutine forward_obs_profile (Model_obs, fg_t, fg_s)
 
subroutine forward_obs_sfc (Sfc, Guess, Diff)
 
subroutine backward_obs_profile (Obs, model_t, model_s)
 
subroutine backward_obs_sfc (Obs, model)
 
subroutine assign_forward_model_profile (Obs1, Obs2)
 
subroutine assign_forward_model_sfc (Obs1, Obs2)
 
subroutine diff_obs_profile (prof1, prof2, Diff)
 
subroutine diff_obs_sfc (prof1, prof2, Diff)
 
subroutine copy_obs_prof (obs_in, obs_out)
 
subroutine copy_obs_sfc (Obs_in, Obs_out)
 
subroutine adjust_obs_error_profile (Prof)
 
subroutine adjust_obs_error_sfc (Diff)
 
subroutine mult_obs_i_mse_profile (Obs)
 
subroutine mult_obs_i_mse_sfc (a, Obs)
 
character(len=len(cs)) function lowercase (cs)
 
subroutine init_observations (localize)
 
subroutine add_tidal_error (Prof)
 
subroutine create_ideal_profiles (localize)
 
subroutine nullify_obs_prof (profile)
 

Variables

real, private max_misfit = 5.0
 
real, parameter, private depth_min =0.0
 
real, parameter, private depth_max =10000.
 
real, parameter, private temp_min =-3.0
 
real, parameter, private temp_max =40.
 
real, parameter, private salt_min =0.0
 
real, parameter, private salt_max =45.
 
integer max_profiles = 250000
 
integer max_sfc_obs = 1
 
integer, parameter, private max_files =100
 
integer, parameter, private profile_file = 1
 
integer, parameter, private sfc_file = 2
 
integer, parameter, private idealized_profiles =3
 
real, private min_obs_err_t = 0.5
 
real, private min_obs_err_s =0.1
 
real, private eta_tide_const = 7.0
 
type(ocean_profile_type), dimension(:), allocatable, target, save, private profiles
 
type(ocean_surface_type), dimension(:), allocatable, target, save, private sfc_obs
 
integer, save, private num_profiles
 
integer, save, private num_sfc_obs
 
integer, save, private isc
 
integer, save, private iec
 
integer, save, private jsc
 
integer, save, private jec
 
integer, save, private isd
 
integer, save, private ied
 
integer, save, private jsd
 
integer, save, private jed
 
integer, save, private isg
 
integer, save, private ieg
 
integer, save, private jsg
 
integer, save, private jeg
 
integer, save, private nk
 
real, save, private min_prof_depth = 200.0
 
real, save, private max_prof_spacing = 1.e5
 
real, dimension(:,:,:), allocatable, save, private sum_wgt
 
real, dimension(:,:,:), allocatable, save, private nobs
 
type(time_type), dimension(0:100), public time_window
 
type(grid_type), pointer grd
 
real, dimension(:), allocatable x_grid
 
real, dimension(:), allocatable y_grid
 
real temp_obs_rmse = 0.7071
 
real salt_obs_rmse = 0.1
 
logical add_tidal_aliasing =.false.
 
logical localize_data = .true.
 
logical debug =.false.
 
integer ndebug =10
 
integer, dimension(:), allocatable nprof_in_comp_domain
 

Function/Subroutine Documentation

◆ add_tidal_error()

subroutine oda_core_mod::add_tidal_error ( type(ocean_profile_type), intent(inout)  Prof)

Definition at line 1544 of file oda_core.F90.

◆ adjust_obs_error_profile()

subroutine oda_core_mod::adjust_obs_error_profile ( type(ocean_profile_type), dimension(:), intent(inout)  Prof)
private

Definition at line 1344 of file oda_core.F90.

Here is the call graph for this function:

◆ adjust_obs_error_sfc()

subroutine oda_core_mod::adjust_obs_error_sfc ( type(ocean_surface_type), intent(inout)  Diff)

Definition at line 1370 of file oda_core.F90.

◆ assign_forward_model_profile()

subroutine oda_core_mod::assign_forward_model_profile ( type(ocean_profile_type), dimension(:), intent(in), target  Obs1,
type(ocean_profile_type), dimension(:), intent(inout)  Obs2 
)
private

Definition at line 1194 of file oda_core.F90.

◆ assign_forward_model_sfc()

subroutine oda_core_mod::assign_forward_model_sfc ( type(ocean_surface_type), intent(in), target  Obs1,
type(ocean_surface_type), intent(inout)  Obs2 
)
private

Definition at line 1213 of file oda_core.F90.

◆ backward_obs_profile()

subroutine oda_core_mod::backward_obs_profile ( type(ocean_profile_type), dimension(:), intent(in)  Obs,
real, dimension(isd:ied,jsd:jed,nk), intent(inout)  model_t,
real, dimension(isd:ied,jsd:jed,nk), intent(inout), optional  model_s 
)
private

Definition at line 1107 of file oda_core.F90.

◆ backward_obs_sfc()

subroutine oda_core_mod::backward_obs_sfc ( type(ocean_surface_type), dimension(:), intent(in)  Obs,
real, dimension(isd:ied,jsd:jed,nk), intent(inout)  model 
)
private

Definition at line 1186 of file oda_core.F90.

◆ copy_obs_prof()

subroutine oda_core_mod::copy_obs_prof ( type(ocean_profile_type), dimension(:), intent(in)  obs_in,
type(ocean_profile_type), dimension(:), intent(inout)  obs_out 
)
private

Definition at line 1269 of file oda_core.F90.

◆ copy_obs_sfc()

subroutine oda_core_mod::copy_obs_sfc ( type(ocean_surface_type), dimension(:), intent(in)  Obs_in,
type(ocean_surface_type), dimension(:), intent(inout)  Obs_out 
)
private

Definition at line 1335 of file oda_core.F90.

◆ create_ideal_profiles()

subroutine oda_core_mod::create_ideal_profiles ( logical, intent(in), optional  localize)
private

Definition at line 1573 of file oda_core.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ diff_obs_profile()

subroutine oda_core_mod::diff_obs_profile ( type(ocean_profile_type), dimension(:), intent(in)  prof1,
type(ocean_profile_type), dimension(:), intent(in)  prof2,
type(ocean_profile_type), dimension(:), intent(inout)  Diff 
)
private

Definition at line 1222 of file oda_core.F90.

◆ diff_obs_sfc()

subroutine oda_core_mod::diff_obs_sfc ( type(ocean_surface_type), dimension(:), intent(in)  prof1,
type(ocean_surface_type), dimension(:), intent(in)  prof2,
type(ocean_surface_type), dimension(:), intent(inout)  Diff 
)
private

Definition at line 1261 of file oda_core.F90.

◆ forward_obs_profile()

subroutine oda_core_mod::forward_obs_profile ( type(ocean_profile_type), dimension(:), intent(inout)  Model_obs,
real, dimension(isd:ied,jsd:jed,nk), intent(in)  fg_t,
real, dimension(isd:ied,jsd:jed,nk), intent(in), optional  fg_s 
)
private

Definition at line 971 of file oda_core.F90.

◆ forward_obs_sfc()

subroutine oda_core_mod::forward_obs_sfc ( type(ocean_surface_type), intent(in)  Sfc,
type(ocean_dist_type), intent(in)  Guess,
type(ocean_surface_type), intent(inout)  Diff 
)
private

Definition at line 1097 of file oda_core.F90.

◆ get_obs()

subroutine, public oda_core_mod::get_obs ( type(time_type), intent(in)  model_time,
type(ocean_profile_type), dimension(:)  Prof,
type(ocean_surface_type), dimension(:)  Sfc,
integer, intent(inout)  nprof,
integer, intent(inout)  nsfc 
)

Definition at line 835 of file oda_core.F90.

Here is the call graph for this function:

◆ init_observations()

subroutine oda_core_mod::init_observations ( logical, intent(in), optional  localize)
private

Definition at line 1428 of file oda_core.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lowercase()

character(len=len(cs)) function oda_core_mod::lowercase ( character(len=*), intent(in)  cs)
private

Definition at line 1415 of file oda_core.F90.

Here is the caller graph for this function:

◆ mult_obs_i_mse_profile()

subroutine oda_core_mod::mult_obs_i_mse_profile ( type(ocean_profile_type), dimension(:), intent(inout)  Obs)
private

Definition at line 1379 of file oda_core.F90.

◆ mult_obs_i_mse_sfc()

subroutine oda_core_mod::mult_obs_i_mse_sfc ( real, dimension(:), intent(in)  a,
type(ocean_surface_type), intent(inout)  Obs 
)
private

Definition at line 1399 of file oda_core.F90.

◆ nullify_obs_prof()

subroutine oda_core_mod::nullify_obs_prof ( type(ocean_profile_type), intent(inout)  profile)

Definition at line 1834 of file oda_core.F90.

◆ oda_core_init()

subroutine, public oda_core_mod::oda_core_init ( type(domain2d), intent(in)  Domain,
type(grid_type), intent(in), target  Grid,
logical, intent(in), optional  localize 
)

Definition at line 922 of file oda_core.F90.

Here is the call graph for this function:

◆ open_profile_dataset()

subroutine, public oda_core_mod::open_profile_dataset ( character(len=*), intent(in)  filename,
logical, intent(in), optional  localize 
)

Definition at line 236 of file oda_core.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ purge_obs()

subroutine, public oda_core_mod::purge_obs ( )

Definition at line 964 of file oda_core.F90.

Variable Documentation

◆ add_tidal_aliasing

logical oda_core_mod::add_tidal_aliasing =.false.
private

Definition at line 152 of file oda_core.F90.

◆ debug

logical oda_core_mod::debug =.false.
private

Definition at line 156 of file oda_core.F90.

◆ depth_max

real, parameter, private oda_core_mod::depth_max =10000.
private

Definition at line 105 of file oda_core.F90.

◆ depth_min

real, parameter, private oda_core_mod::depth_min =0.0
private

Definition at line 105 of file oda_core.F90.

◆ eta_tide_const

real, private oda_core_mod::eta_tide_const = 7.0
private

Definition at line 117 of file oda_core.F90.

◆ grd

type(grid_type), pointer oda_core_mod::grd
private

Definition at line 143 of file oda_core.F90.

◆ idealized_profiles

integer, parameter, private oda_core_mod::idealized_profiles =3
private

Definition at line 111 of file oda_core.F90.

◆ iec

integer, save, private oda_core_mod::iec
private

Definition at line 124 of file oda_core.F90.

◆ ied

integer, save, private oda_core_mod::ied
private

Definition at line 124 of file oda_core.F90.

◆ ieg

integer, save, private oda_core_mod::ieg
private

Definition at line 125 of file oda_core.F90.

◆ isc

integer, save, private oda_core_mod::isc
private

Definition at line 124 of file oda_core.F90.

◆ isd

integer, save, private oda_core_mod::isd
private

Definition at line 124 of file oda_core.F90.

◆ isg

integer, save, private oda_core_mod::isg
private

Definition at line 125 of file oda_core.F90.

◆ jec

integer, save, private oda_core_mod::jec
private

Definition at line 124 of file oda_core.F90.

◆ jed

integer, save, private oda_core_mod::jed
private

Definition at line 124 of file oda_core.F90.

◆ jeg

integer, save, private oda_core_mod::jeg
private

Definition at line 125 of file oda_core.F90.

◆ jsc

integer, save, private oda_core_mod::jsc
private

Definition at line 124 of file oda_core.F90.

◆ jsd

integer, save, private oda_core_mod::jsd
private

Definition at line 124 of file oda_core.F90.

◆ jsg

integer, save, private oda_core_mod::jsg
private

Definition at line 125 of file oda_core.F90.

◆ localize_data

logical oda_core_mod::localize_data = .true.
private

Definition at line 154 of file oda_core.F90.

◆ max_files

integer, parameter, private oda_core_mod::max_files =100
private

Definition at line 110 of file oda_core.F90.

◆ max_misfit

real, private oda_core_mod::max_misfit = 5.0
private

Definition at line 102 of file oda_core.F90.

◆ max_prof_spacing

real, save, private oda_core_mod::max_prof_spacing = 1.e5
private

Definition at line 132 of file oda_core.F90.

◆ max_profiles

integer oda_core_mod::max_profiles = 250000
private

Definition at line 109 of file oda_core.F90.

◆ max_sfc_obs

integer oda_core_mod::max_sfc_obs = 1
private

Definition at line 109 of file oda_core.F90.

◆ min_obs_err_s

real, private oda_core_mod::min_obs_err_s =0.1
private

Definition at line 117 of file oda_core.F90.

◆ min_obs_err_t

real, private oda_core_mod::min_obs_err_t = 0.5
private

Definition at line 117 of file oda_core.F90.

◆ min_prof_depth

real, save, private oda_core_mod::min_prof_depth = 200.0
private

Definition at line 129 of file oda_core.F90.

◆ ndebug

integer oda_core_mod::ndebug =10
private

Definition at line 158 of file oda_core.F90.

◆ nk

integer, save, private oda_core_mod::nk
private

Definition at line 126 of file oda_core.F90.

◆ nobs

real, dimension(:,:,:), allocatable, save, private oda_core_mod::nobs
private

Definition at line 137 of file oda_core.F90.

◆ nprof_in_comp_domain

integer, dimension(:), allocatable oda_core_mod::nprof_in_comp_domain
private

Definition at line 160 of file oda_core.F90.

◆ num_profiles

integer, save, private oda_core_mod::num_profiles
private

Definition at line 122 of file oda_core.F90.

◆ num_sfc_obs

integer, save, private oda_core_mod::num_sfc_obs
private

Definition at line 122 of file oda_core.F90.

◆ profile_file

integer, parameter, private oda_core_mod::profile_file = 1
private

Definition at line 111 of file oda_core.F90.

◆ profiles

type(ocean_profile_type), dimension(:), allocatable, target, save, private oda_core_mod::profiles
private

Definition at line 119 of file oda_core.F90.

◆ salt_max

real, parameter, private oda_core_mod::salt_max =45.
private

Definition at line 107 of file oda_core.F90.

◆ salt_min

real, parameter, private oda_core_mod::salt_min =0.0
private

Definition at line 107 of file oda_core.F90.

◆ salt_obs_rmse

real oda_core_mod::salt_obs_rmse = 0.1
private

Definition at line 150 of file oda_core.F90.

◆ sfc_file

integer, parameter, private oda_core_mod::sfc_file = 2
private

Definition at line 111 of file oda_core.F90.

◆ sfc_obs

type(ocean_surface_type), dimension(:), allocatable, target, save, private oda_core_mod::sfc_obs
private

Definition at line 120 of file oda_core.F90.

◆ sum_wgt

real, dimension(:,:,:), allocatable, save, private oda_core_mod::sum_wgt
private

Definition at line 137 of file oda_core.F90.

◆ temp_max

real, parameter, private oda_core_mod::temp_max =40.
private

Definition at line 106 of file oda_core.F90.

◆ temp_min

real, parameter, private oda_core_mod::temp_min =-3.0
private

Definition at line 106 of file oda_core.F90.

◆ temp_obs_rmse

real oda_core_mod::temp_obs_rmse = 0.7071
private

Definition at line 149 of file oda_core.F90.

◆ time_window

type(time_type), dimension(0:100), public oda_core_mod::time_window

Definition at line 139 of file oda_core.F90.

◆ x_grid

real, dimension(:), allocatable oda_core_mod::x_grid
private

Definition at line 147 of file oda_core.F90.

◆ y_grid

real, dimension(:), allocatable oda_core_mod::y_grid
private

Definition at line 147 of file oda_core.F90.