PDAF-OMI observation operators
This module contains generic routines for several observation operators to be used after preparation with init_dim_obs_f
The observation operators are:
Adjoint observation operators:
Helper routines for the operators: * PDAFomi_get_interp_coeff_tri \n Routine to compute interpolation coefficients for triangular interpolation from barycentric coordinates. * PDAFomi_get_interp_coeff_lin1D \n Routine to comput linear interpolation in 1D * PDAFomi_get_interp_coeff_lin \n Routine to compute interpolation coefficients for linear interpolations (linear, bi-linear, tri-linear)
observation operator for data at grid points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
real, | intent(in) | :: | state_p(:) | |||
real, | intent(inout) | :: | obs_f_all(:) |
Observation operator for averaging grid point values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
integer, | intent(in) | :: | nrows | |||
real, | intent(in) | :: | state_p(:) | |||
real, | intent(inout) | :: | obs_f_all(:) |
Observation operator for linear interpolation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
integer, | intent(in) | :: | nrows | |||
real, | intent(in) | :: | state_p(:) | |||
real, | intent(inout) | :: | obs_f_all(:) |
observation operator for the case that observations belong to other compartment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
real, | intent(in) | :: | state_p(:) | |||
real, | intent(inout) | :: | obs_f_all(:) |
Helper routine: Initialize interpolation coefficients in triangle
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | gpc(:,:) | |||
real, | intent(in) | :: | oc(:) | |||
real, | intent(inout) | :: | icoeff(:) |
Helper routine: Initialize linear interpolation coefficients in 1D
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | gpc(:) | |||
real, | intent(in) | :: | oc | |||
real, | intent(inout) | :: | icoeff(:) |
Helper routine: Initialize linear interpolation coefficients
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | num_gp | |||
integer, | intent(in) | :: | n_dim | |||
real, | intent(in) | :: | gpc(:,:) | |||
real, | intent(in) | :: | oc(:) | |||
real, | intent(inout) | :: | icoeff(:) |
Adjoint observation operator for data at grid points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
real, | intent(in) | :: | obs_f_all(:) | |||
real, | intent(inout) | :: | state_p(:) |
Adjoint observation operator for averaging grid point values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
integer, | intent(in) | :: | nrows | |||
real, | intent(in) | :: | obs_f_all(:) | |||
real, | intent(inout) | :: | state_p(:) |
Observation operator for linear interpolation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
integer, | intent(in) | :: | nrows | |||
real, | intent(in) | :: | obs_f_all(:) | |||
real, | intent(inout) | :: | state_p(:) |
adjoint observation operator for the case that observations belong to other compartment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(obs_f), | intent(inout) | :: | thisobs | |||
real, | intent(inout) | :: | obs_f_all(:) | |||
real, | intent(in) | :: | state_p(:) |