New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
sao_data.F90 in NEMO/branches/2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles/src/SAO – NEMO

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

Last change on this file since 11954 was 11671, checked in by acc, 5 years 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
RevLine 
[4849]1MODULE sao_data
[7646]2   !!======================================================================
3   !!                       ***  MODULE sao_data  ***
4   !!======================================================================
5   !! History :  3.6  ! 2015-12  (A. Ryan)  Original code
6   !!----------------------------------------------------------------------
[4030]7   USE par_kind, ONLY: lc
[4844]8   USE lib_mpp         ! distributed memory computing
[7646]9   USE in_out_manager
[4110]10
[4030]11   IMPLICIT NONE
[4110]12
[4030]13   INTEGER, PARAMETER :: MaxNumFiles = 1000
[4048]14
[4846]15   !! Stand Alone Observation operator settings
[7646]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   !!----------------------------------------------------------------------
[9598]22   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
[10069]23   !! $Id$
[10068]24   !! Software governed by the CeCILL license (see ./LICENSE)
[7646]25   !!----------------------------------------------------------------------
[4030]26CONTAINS
[7646]27
[5063]28   SUBROUTINE sao_data_init()
[4030]29      !!----------------------------------------------------------------------
[4849]30      !!                    ***  SUBROUTINE sao_data_init ***
[4030]31      !!
32      !! ** Purpose : To read namelists and initialise offline_oper run.
33      !!
34      !!----------------------------------------------------------------------
[7646]35      INTEGER ::   jf                   ! file dummy loop index
36      LOGICAL ::   lmask(MaxNumFiles)   ! Logical mask used for counting
37      INTEGER ::   ios
38      !!
[4846]39      NAMELIST/namsao/sao_files, nn_sao_idx, nn_sao_freq
[7646]40      !!----------------------------------------------------------------------
[9169]41      IF(lwp) THEN
42         WRITE(numout,*)
43         WRITE(numout,*) 'sao_data_init : offline obs operator initialization'
44         WRITE(numout,*) '~~~~~~~~~~~~~'
45      ENDIF
[4030]46
47      ! Standard offline obs_oper initialisation
[9169]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
[4030]52
53      ! Standard offline obs_oper settings
[4846]54      READ  ( numnam_ref, namsao, IOSTAT = ios, ERR = 901 )
[11536]55901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsao in reference namelist' )
[4846]56      READ  ( numnam_cfg, namsao, IOSTAT = ios, ERR = 902 )
[11536]57902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsao in configuration namelist' )
[7646]58     
59      lmask(:) = .FALSE.               ! count input files
[9169]60      WHERE( sao_files(:) /= '' )   lmask(:) = .TRUE.
[4048]61      n_files = COUNT(lmask)
[7646]62      !
63      IF(nn_sao_freq == -1) THEN      ! Initialise sub obs window frequency
64         nn_sao_freq = nitend - nit000 + 1      ! Run length
[4048]65      ENDIF
[7646]66      !
67      IF(lwp) THEN                     ! Print summary of settings
[5063]68         WRITE(numout,*) '   Namelist namsao : set stand alone obs_oper parameters'
[4048]69         DO jf = 1, n_files
[9169]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)
[4030]72         END DO
73      END IF
[7646]74      !
[4849]75   END SUBROUTINE sao_data_init
[4030]76
[7646]77   !!======================================================================
[4849]78END MODULE sao_data
[4030]79
Note: See TracBrowser for help on using the repository browser.