PDAFomi_obs_op_interp_lin Subroutine

public subroutine PDAFomi_obs_op_interp_lin(thisobs, nrows, state_p, obs_f_all)

Observation operator for linear interpolation

Application of observation operator for the case that the observation value is given as the interpolation using pre-computed coefficients.

For this case INIT_DIM_OBS_F will prepare the index array thisobs%id_obs_p containing the information which elements of the PE-local state vector contain the observed values. Further the array thisobs%icoeff_p is prepared which contains the interpolation coefficients. This can be prepared using a help routine like get_interp_coeff_tri.

The routine is called by all filter processes. It first selects the observed elements for a PE-local domain. Afterwards, the values are gathered into the full vector using PDAFomi_gather_obsstate.

The routine has to fill the part of the full observation vector OBS_F_ALL that represents the current observation type. The routine first applied the observation operator for the current observation type and the calls PDAFomi_gather_obsstate to gather the observation over all processes and fills OBS_F_ALL.

The routine has to be called by all filter processes.

Revision history: * 2019-12 - Lars Nerger - Initial code * Later revisions - see repository log

Arguments

Type IntentOptional Attributes Name
type(obs_f), intent(inout) :: thisobs
integer, intent(in) :: nrows
real, intent(in) :: state_p(:)
real, intent(inout) :: obs_f_all(:)