| 1 | = PDAF_alloc = |
| 2 | |
| 3 | This page documents the routine `PDAF_alloc` which is part of the module `PDAF_utils`. |
| 4 | |
| 5 | `PDAF_alloc` is used by each DA method in its routine `PDAF_X_alloc` to allocate the arrays provided by PDAF's framework infrastructure. |
| 6 | |
| 7 | The interface is: |
| 8 | {{{ |
| 9 | SUBROUTINE PDAF_alloc(dim_p, dim_ens, dim_ens_task, dim_es, dim_bias_p, & |
| 10 | dim_lag, statetask, outflag) |
| 11 | |
| 12 | INTEGER, INTENT(in) :: dim_p !< Size of state vector |
| 13 | INTEGER, INTENT(in) :: dim_ens !< Ensemble size |
| 14 | INTEGER, INTENT(in) :: dim_ens_task !< Ensemble size handled by a model task |
| 15 | INTEGER, INTENT(in) :: dim_es !< Dimension of error space (size of Ainv) |
| 16 | INTEGER, INTENT(in) :: dim_bias_p !< Size of bias vector |
| 17 | INTEGER, INTENT(in) :: dim_lag !< Smoother lag |
| 18 | INTEGER, INTENT(in) :: statetask !< ID of model task forecasting a single state |
| 19 | INTEGER, INTENT(inout):: outflag !< Status flag |
| 20 | |
| 21 | }}} |
| 22 | |
| 23 | Notes: |
| 24 | * For consistency, PDAF's internal arrays are always allocated, but if they are not used they are allocated with minimum size |
| 25 | * If `dim_es=0`, the array `Ainv` will be allocated with size `(1,1)` |
| 26 | * If `dim_bias_p=0`, the array `bias` will be allocated with size `(1)` |
| 27 | * If `dim_lag=0`, the array `sens` will be allocated with size `(1,1,1)` |
| 28 | * The dimensions are usually set in `PDAF_X_init` and then used in `PDAF_X_alloc`. |