source: NEMO/branches/2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles/src/SAO/sao_data.F90 @ 11671

Last change on this file since 11671 was 11671, checked in by acc, 19 months ago

Branch 2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles. Final, non-substantive changes to complete this branch. These changes remove all REWIND statements on the old namelist fortran units (now character variables for internal files). These changes have been left until last since they are easily repeated via a script and it may be preferable to use the previous revision for merge purposes and reapply these last changes separately. This branch has been fully SETTE tested.

  • Property svn:keywords set to Id
File size: 3.4 KB
Line 
1MODULE sao_data
2   !!======================================================================
3   !!                       ***  MODULE sao_data  ***
4   !!======================================================================
5   !! History :  3.6  ! 2015-12  (A. Ryan)  Original code
6   !!----------------------------------------------------------------------
7   USE par_kind, ONLY: lc
8   USE lib_mpp         ! distributed memory computing
9   USE in_out_manager
10
11   IMPLICIT NONE
12
13   INTEGER, PARAMETER :: MaxNumFiles = 1000
14
15   !! Stand Alone Observation operator settings
16   CHARACTER(len=lc) ::   sao_files(MaxNumFiles)   !: model files
17   INTEGER           ::   n_files                  !: number of files
18   INTEGER           :: nn_sao_idx(MaxNumFiles)    !: time_counter indices
19   INTEGER           :: nn_sao_freq                !: read frequency in time steps
20   
21   !!----------------------------------------------------------------------
22   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
23   !! $Id$
24   !! Software governed by the CeCILL license (see ./LICENSE)
25   !!----------------------------------------------------------------------
26CONTAINS
27
28   SUBROUTINE sao_data_init()
29      !!----------------------------------------------------------------------
30      !!                    ***  SUBROUTINE sao_data_init ***
31      !!
32      !! ** Purpose : To read namelists and initialise offline_oper run.
33      !!
34      !!----------------------------------------------------------------------
35      INTEGER ::   jf                   ! file dummy loop index
36      LOGICAL ::   lmask(MaxNumFiles)   ! Logical mask used for counting
37      INTEGER ::   ios
38      !!
39      NAMELIST/namsao/sao_files, nn_sao_idx, nn_sao_freq
40      !!----------------------------------------------------------------------
41      IF(lwp) THEN
42         WRITE(numout,*)
43         WRITE(numout,*) 'sao_data_init : offline obs operator initialization'
44         WRITE(numout,*) '~~~~~~~~~~~~~'
45      ENDIF
46
47      ! Standard offline obs_oper initialisation
48      n_files       =  0         ! number of files to cycle through
49      sao_files(:)  = ''         ! list of files to read in
50      nn_sao_idx(:) =  0         ! list of indices inside each file
51      nn_sao_freq   = -1         ! input frequency in time steps
52
53      ! Standard offline obs_oper settings
54      READ  ( numnam_ref, namsao, IOSTAT = ios, ERR = 901 )
55901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsao in reference namelist' )
56      READ  ( numnam_cfg, namsao, IOSTAT = ios, ERR = 902 )
57902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsao in configuration namelist' )
58     
59      lmask(:) = .FALSE.               ! count input files
60      WHERE( sao_files(:) /= '' )   lmask(:) = .TRUE.
61      n_files = COUNT(lmask)
62      !
63      IF(nn_sao_freq == -1) THEN      ! Initialise sub obs window frequency
64         nn_sao_freq = nitend - nit000 + 1      ! Run length
65      ENDIF
66      !
67      IF(lwp) THEN                     ! Print summary of settings
68         WRITE(numout,*) '   Namelist namsao : set stand alone obs_oper parameters'
69         DO jf = 1, n_files
70            WRITE(numout,'(1X,2A)') '      Input forecast file name         forecastfile  = ', TRIM(sao_files(jf))
71            WRITE(numout,*)         '      Input forecast file index        forecastindex = ', nn_sao_idx(jf)
72         END DO
73      END IF
74      !
75   END SUBROUTINE sao_data_init
76
77   !!======================================================================
78END MODULE sao_data
79
Note: See TracBrowser for help on using the repository browser.