Changes between Version 3 and Version 4 of ExternalModelLoop


Ignore:
Timestamp:
Feb 22, 2023, 2:17:20 PM (14 months ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ExternalModelLoop

    v3 v4  
    3535
    3636     ! Check whether forecast has to be performed
    37      ifcontrol: IF (doexit /= 1) THEN
     37     checkforeast: IF (doexit /= 1 .AND. status_pdaf == 0) THEN
    3838     
    3939        IF (nsteps > 0) THEN
     
    4545        CALL PDAFomi_put_state_global(...)
    4646
    47      ELSE ifcontrol
     47     ELSE checkforecast
    4848
    4949        ! No more assimilation work; exit loop
    5050        EXIT pdaf_modelloop
    5151
    52      END IF ifcontrol
     52     END IF checkforecast
    5353
    5454  END DO pdaf_modelloop
    5555}}}
    56 In this example, which is taken from the example implementation in `testsuite/src/dummymodel_1D`, we use an unconditional DO loop (while loop). The exit flag `doexit` for this loop is set within `PDAF_get_state`. In addition, the variable `nsteps` is initialized, which defines the number of time steps to be performed during the current forecast phase. Thus, we only execute the time stepping code if `nsteps>0`. (If this has to be implemented using an IF-clause as in the example should be checked for the particular code).
     56In this example, which is taken from the example implementation in `templates/online_omi_flexible/`, we use an unconditional DO loop (while loop). The exit flag `doexit` for this loop is set within `PDAF_get_state`. In addition, the variable `nsteps` is initialized, which defines the number of time steps to be performed during the current forecast phase. Thus, we only execute the time stepping code if `nsteps>0`. (If this has to be implemented using an IF-clause as in the example should be checked for the particular code).
    5757
    5858== `PDAF_get_state` ==
     
    9696Here, only the user-supplied routines are discussed that are required at this stage of the implementation (that is, the ensemble integration). For testing (see [#Compilationandtesting 'Compilation and testing']), all routines need to exist, but only those described here in detail need to be implemented with functionality.
    9797
    98 To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` as well as in the example implementation in `testsuite/src/dummymodel_1D` these routines exist without the prefix, but with the extension `_pdaf.F90`. In the section titles below we provide the name of the template file in parentheses.
     98To indicate user-supplied routines we use the prefix `U_`. In the tutorials in `tutorial/` and in the template directory `templates/` these routines exist without the prefix, but with the extension `_pdaf`. The files are named correspondingly. In the section titles below we provide the name of the template file in parentheses.
    9999
    100100=== `U_next_observation` (next_observation_pdaf.F90) ===