| | 153 | |
| | 154 | === PDAF_iau_set_ens_pointer === |
| | 155 | |
| | 156 | (This routine is added in the final PDAF V3.0 release, while it's not present in V3.0beta) |
| | 157 | |
| | 158 | This routine is a replacement for `PDAF_iau_set_pointer` clarifying that it relates to the increment ensemble array. |
| | 159 | With this routine the user can set a pointer to the PDAF-internal array of ensemble increments. This provides direct access to the increment array e.g. to analyze it or to write it into a file for restarting. The routine is different from `PDAF_iau_set_inc` in that here the user obtains access to the internal IAU array, while in `PDAF_iau_set_inc` one can only overwrite the internal array. |
| | 160 | |
| | 161 | The routine can be called by each single process, but it only provides a pointer to the process-local part of the increment array. For domain-decomposed models, this array only includes the state vector part for the process domain. In addition, it usually only contains a sub-ensemble unless one uses the flexible parallelization mode with a single model task. For the fully parallel mode, the process(es) of a single model task only hold a single ensemble state. |
| | 162 | |
| | 163 | The interface is: |
| | 164 | {{{ |
| | 165 | SUBROUTINE PDAF_iau_set_ens_pointer(iau_ens_ptr, flag) |
| | 166 | |
| | 167 | REAL, POINTER, INTENT(out) :: iau_ens_ptr(:,:) ! Pointer to IAU ensemble array |
| | 168 | INTEGER, INTENT(out) :: flag ! Status flag |
| | 169 | }}} |
| | 170 | |
| | 171 | Hints: |
| | 172 | * In Fortran user code one has to declare a pointer like [[BR]]`REAL, POINTER :: iau_ens_ptr(:,:) `[[BR]] and provide this as the first argument. One does not need to allocate this pointer. |
| | 173 | |
| | 174 | |
| | 175 | === PDAF_iau_set_state_pointer === |
| | 176 | |
| | 177 | (This routine is added in the final PDAF V3.0 release, while it's not present in V3.0beta) |
| | 178 | |
| | 179 | This routine is used in the EnOI modes (subtype 10 and 11) where only the state estimate is integrated. The routine allows the user to set a pointer to the PDAF-internal array of state vector increments. This provides direct access to the increment vector e.g. to analyze it or to write it into a file for restarting. The routine is different from `PDAF_iau_set_inc` in that here the user obtains access to the internal IAU array, while in `PDAF_iau_set_inc` one can only overwrite the internal array. |
| | 180 | |
| | 181 | The routine can be called by each single process, but it only provides a pointer to the process-local part of the increment vector. For domain-decomposed models, this array only includes the state vector part for the process domain. |
| | 182 | |
| | 183 | The interface is: |
| | 184 | {{{ |
| | 185 | SUBROUTINE PDAF_iau_set_state_pointer(iau_state_ptr, flag) |
| | 186 | |
| | 187 | REAL, POINTER, INTENT(out) :: iau_state_ptr(:) ! Pointer to IAU state vector |
| | 188 | INTEGER, INTENT(out) :: flag ! Status flag |
| | 189 | }}} |
| | 190 | |
| | 191 | Hints: |
| | 192 | * In Fortran user code one has to declare a pointer like [[BR]]`REAL, POINTER :: iau_state_ptr(:) `[[BR]] and provide this as the first argument. One does not need to allocate this pointer. |
| | 193 | |