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_r11943_MERGE_2019/src/SAO – NEMO

source: NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAO/sao_data.F90 @ 11960

Last change on this file since 11960 was 11960, checked in by acc, 4 years ago

Branch 2019/dev_r11943_MERGE_2019. Merge in changes from 2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles. (svn merge -r 11614:11954). Resolved tree conflicts and one actual conflict. Sette tested(these changes alter the ext/AGRIF reference; remember to update). See ticket #2341

  • 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.