| 125 | === Initializing covariance localization === |
| 126 | |
| 127 | The covariance localization should be initialized in `init_dim_obs_OBSTYPE`. This is achieved by calling `PDAFomi_set_localize_covar`. The routine can only be called after the call to `PDAFomi_gather_obs`. |
| 128 | |
| 129 | The interface is for isotropic localization: |
| 130 | {{{ |
| 131 | SUBROUTINE PDAFomi_set_localize_covar(thisobs, dim_p, ncoords, coords, & |
| 132 | locweight, cradius, sradius) |
| 133 | |
| 134 | TYPE(obs_f), INTENT(inout) :: thisobs ! Data type with full observation |
| 135 | INTEGER, INTENT(in) :: dim_p ! State dimension |
| 136 | INTEGER, INTENT(in) :: ncoords ! Number of coordinate directions |
| 137 | REAL, INTENT(in) :: coords_p(dim_p,ncoords) ! Coordinates of state vector elements |
| 138 | INTEGER, INTENT(in) :: locweight ! Localization weight type |
| 139 | REAL, INTENT(in) :: cradius ! localization radius |
| 140 | REAL, INTENT(in) :: sradius ! Support radius for weight functions |
| 141 | }}} |
| 142 | |
| 143 | '''Notes:''' |
| 144 | * The routine allows to specify the localization radius and support radius (`lradius`, `sradius`) and localization function (`locweight`) individually for each observation type. |
| 145 | * The coordinate array `coords_p` specifies the coordinates of each element in the state vector for the process local sub-domain. The coordinate units have to be consistent with those used to specify the coordinates of observations. |
| 146 | * The routine only supports a fixed localization radius throughout the domain. |
| 147 | * One can also directly call the routine `PDAFomi_set_localize_covar_iso`, e.g. when calling from a program coded in C. |
| 148 | |
| 149 | There is also a variant of this routine for non-isotropic localization. See the [wiki:PDAFomi_set_localize_covar Documentation on PDAFomi_set_localize_covar] for more information. |