Implementing a new Data Assimilation Observation Operator #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements a new ROMS data assimilation observation operator. The basic principles of the new IODA-type file for ROMS are as follows:
roms_obs.F, is introduced to store the input observation data, which is only read once. It has the following two CLASS objects:obs_dataandobs_pool. And theobs_poolobject is a vector, pool(:), set of TYPE (obs_data) observations separated by their type, source, or control vector variable. It can load native (old) or IODA (new) observation NetCDF files for data assimilation.unique.Fto compute the unique values of a vector, such that,Aout is a vector of the unique values, and Iout is an index vector of the first occurrence of each repeated value. It is similar to the MATLAB unique function.
The NetCDF4 schema for CODAR velocity data is as follows: momentum horizontal vector components at -2 m
A new Fortran 2003 module,$\boldsymbol{\rm{H(X^{s}_{j})}}$ where superscript s indicates background (s=b) or analysis (s=a) state vector. It also computes its transpose HT for adjoint kernel forcing. It has the following CLASS object
roms_hofx.F, is added to compute and storeobs_hofx:The design is to have several objects of TYPE
obs_hoxfto compute and store nonlinear, tangent linear, adjoint, background error, innovation, increment, and residual vectors. We can write IODA-type, showing several diagnostic Groups to analyze how the observations affected the data assimilation. Currently, we haveBackgroundError,hofxInitial,hofxFinal,Innovation,Increment, andResidual.Caution
The branch
feature/obs_operatoris still under development and is not ready for use.Issue(s) addressed
None.
Impacts
It allows complex observation operators with averaging and other filtering algorithms that are currently under development.
Dependencies
None
Checklist