| 41 | | INTEGER, INTENT(in) :: num_gp !< Length of thisobs%icoeff_p(:,i) |
| 42 | | INTEGER, INTENT(in) :: n_dim !< Number of dimensions in interpolation |
| 43 | | REAL, INTENT(in) :: gcoords(:,:) !< Coordinates of grid points |
| 44 | | REAL, INTENT(in) :: ocoord(:) !< Coordinates of observation (one column ocoord_p(:,i)) |
| 45 | | REAL, INTENT(inout) :: icoeff(:) !< Interpolation coefficients (one column thisobs%icoeff_p(:,i)) |
| | 43 | INTEGER, INTENT(in) :: num_gp ! Length of thisobs%icoeff_p(:,i) |
| | 44 | INTEGER, INTENT(in) :: n_dim ! Number of dimensions in interpolation |
| | 45 | REAL, INTENT(in) :: gcoords(:,:) ! Coordinates of grid points |
| | 46 | REAL, INTENT(in) :: ocoord(:) ! Coordinates of observation (one column ocoord_p(:,i)) |
| | 47 | REAL, INTENT(inout) :: icoeff(:) ! Interpolation coefficients (one column thisobs%icoeff_p(:,i)) |
| | 77 | === PDAFomi_get_interp_coeff_lin1D === |
| | 78 | |
| | 79 | This routine is a simplified variant of `PDAFomi_get_interp_coeff_lin`. It computes interpolation coefficients in 1 dimension only |
| | 80 | |
| | 81 | The call to this routine is |
| | 82 | {{{ |
| | 83 | CALL PDAFomi_get_interp_coeff_lin1D(gcoords, ocoord, icoeff) |
| | 84 | |
| | 85 | REAL, INTENT(in) :: gcoords(:) ! Coordinates of grid points; dim=2 |
| | 86 | REAL, INTENT(in) :: ocoord ! Coordinates of observation |
| | 87 | REAL, INTENT(inout) :: icoeff(:) ! Interpolation coefficients; dim=2 |
| | 88 | }}} |
| | 89 | |
| | 90 | |
| | 91 | |
| | 92 | === PDAFomi_get_interp_coeff_tri === |
| | 93 | |
| | 94 | For triangular model grid interpolation coefficients are determined as barycentric coordinates. This is performed in this routine. |
| | 95 | |
| | 96 | The call to this routine is |
| | 97 | {{{ |
| | 98 | CALL PDAFomi_get_interp_coeff_tri(gcoords, ocoord, icoeff) |
| | 99 | |
| | 100 | REAL, INTENT(in) :: gcoords(:) ! Coordinates of grid points; dim=(3,2) |
| | 101 | REAL, INTENT(in) :: ocoord(:) ! Coordinates of observation; dim=2 |
| | 102 | REAL, INTENT(inout) :: icoeff(:) ! Interpolation coefficients; dim=3 |
| | 103 | }}} |
| | 104 | |
| | 105 | '''Notes:''' |
| | 106 | - In the array `gcoords`, the first index specifies the grid point while the second specifies the coordinate, thus `gcoords(j,:)` is the list of coordinates for grid point j. |
| | 107 | - The order of the grid points in `gcoords` has to be consistent with the order of the indices specified in `thisobs%id_obs_p` |
| | 108 | |
| | 109 | I |