1 | MODULE sao_intp |
---|
2 | !!====================================================================== |
---|
3 | !! *** MODULE sao_intp *** |
---|
4 | !! ** Purpose : Run NEMO observation operator in offline mode |
---|
5 | !!====================================================================== |
---|
6 | !! History : 3.6 ! 2015-12 (A. Ryan) Original code |
---|
7 | !!---------------------------------------------------------------------- |
---|
8 | ! ! NEMO modules |
---|
9 | USE in_out_manager |
---|
10 | USE diaobs |
---|
11 | ! ! Stand Alone Observation operator modules |
---|
12 | USE sao_read |
---|
13 | USE sao_data |
---|
14 | |
---|
15 | IMPLICIT NONE |
---|
16 | PRIVATE |
---|
17 | |
---|
18 | PUBLIC sao_interp |
---|
19 | |
---|
20 | !!---------------------------------------------------------------------- |
---|
21 | !! NEMO/OCE 4.0 , NEMO Consortium (2018) |
---|
22 | !! $Id: sao_intp.F90 10069 2018-08-28 14:12:24Z nicolasmartin $ |
---|
23 | !! Software governed by the CeCILL license (see ./LICENSE) |
---|
24 | !!---------------------------------------------------------------------- |
---|
25 | CONTAINS |
---|
26 | |
---|
27 | SUBROUTINE sao_interp |
---|
28 | !!---------------------------------------------------------------------- |
---|
29 | !! *** SUBROUTINE sao_interp *** |
---|
30 | !! |
---|
31 | !! ** Purpose : To interpolate the model as if it were running online. |
---|
32 | !! |
---|
33 | !! ** Method : 1. Populate model counterparts |
---|
34 | !! 2. Call dia_obs at appropriate time steps |
---|
35 | !!---------------------------------------------------------------------- |
---|
36 | INTEGER :: istp ! time step index |
---|
37 | INTEGER :: ifile ! file index |
---|
38 | !!---------------------------------------------------------------------- |
---|
39 | istp = nit000 - 1 |
---|
40 | nstop = 0 |
---|
41 | ifile = 1 |
---|
42 | CALL sao_rea_dri(ifile) |
---|
43 | ! |
---|
44 | DO WHILE ( istp <= nitend .AND. nstop == 0 ) |
---|
45 | IF (ifile <= n_files + 1) THEN |
---|
46 | IF ( MOD(istp, nn_sao_freq) == nit000 ) THEN |
---|
47 | CALL sao_rea_dri(ifile) |
---|
48 | ifile = ifile + 1 |
---|
49 | ENDIF |
---|
50 | CALL dia_obs(istp) |
---|
51 | ENDIF |
---|
52 | istp = istp + 1 |
---|
53 | END DO |
---|
54 | ! |
---|
55 | END SUBROUTINE sao_interp |
---|
56 | |
---|
57 | !!====================================================================== |
---|
58 | END MODULE sao_intp |
---|