!  PROGRAM: test_seq_dlls
!
!  PURPOSE:  Test the main flow2d3d_openda dll functions. Two (different) models can be run sequentially.
!  Results should be the same as standalone runs with d_hydro.exe.
!  Further, the number of instances (modes) and the number of timesteps per mode can be altered.
!  Timesteps_for_each_instance    = 1: instances are swapped after each timestep
!                                 = n: instances are swapped after n-th timestep   
! 


!  Arguments:
!   1) runid1 (for example, rot in 01-general )
!   2) runid2. If only one argument, runid2=runid1.
!   3) time_pe1. Number of timesteps per instance for run runid1.
!   4) time_pe2. Number of timesteps per instance for run runid2.
!   If less than four arguments, default values of 100000 for both time_pe are chosen. 

!   The following tests can (should) be performed:
!   1) test if a model can run in dll and gives the same results as d_hydro.exe 
!       >  test_seq_dll.exe runid1 runid1 100000 100000
!       (compare map- and his- files with references)
!   2) test if this model can be restarted each time step 
!       >   test_seq_dll.exe runid1 runid1 1 1
!       (compare map- and his- files with references)
!       (compare state dumps of both instances)
!   3) test if different models can be run dll-wise.
!      >   test_seq_dll.exe runid1 runid2 100000 100000
!     (compare map- and his- files for both models with references)

----------------------------------------------------

!
!  PROGRAM: test_dll_noise
!
!  PURPOSE:  Testing of two (or more) instances of the same model using the flow2d3d_openda dll functions. 
!            parameter timesteps_for_each_instance:
!               = infinity: the instances are performed sequentially.
!                           This is the easiest test
!               = one     : each instance performs one time step; so all instances
!                            proceed more or less in parallel. This is called the kalman0-test
!                            If instances perform the same, the restart/state swapping is perfect.
!               = (in between) : Most realistic for filtering purposes. Example: observations
!                  available each hour, while model timestep is 7.5m. So value of this parameter is 8.
!
!
!            Also, testing the effect of noise on certain exchange items.
!
!            This program should be used with the test rot in the same directory,
!            because of the required combinations of exchange-items. For other model tests,
!            different exchange-items should be chosen.
!
!  Arguments:
!   1) runid (for example, rot in 01-general 

The following can be tested:
1) baddnoise = FALSE : alle states are the same.
2) baddnoise = TRUE: instances 2..n differ from background instance 1 and are all pairwise different.