| 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 | |