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 |