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.
usrdef_nam.F90 in NEMO/branches/2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles/tests/LOCK_EXCHANGE/MY_SRC – NEMO

source: NEMO/branches/2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles/tests/LOCK_EXCHANGE/MY_SRC/usrdef_nam.F90 @ 11671

Last change on this file since 11671 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: 4.7 KB
Line 
1MODULE usrdef_nam
2   !!======================================================================
3   !!                       ***  MODULE usrdef_nam  ***
4   !!
5   !!                  ===  LOCK_EXCHANGE configuration  ===
6   !!
7   !! User defined : set the domain characteristics of a user configuration
8   !!======================================================================
9   !! History :  NEMO ! 2016-03  (S. Flavoni, G. Madec)  Original code
10   !!----------------------------------------------------------------------
11
12   !!----------------------------------------------------------------------
13   !!   usr_def_nam   : read user defined namelist and set global domain size
14   !!   usr_def_hgr   : initialize the horizontal mesh
15   !!----------------------------------------------------------------------
16   USE dom_oce  , ONLY: nimpp , njmpp            ! i- & j-indices of the local domain
17   USE par_oce        ! ocean space and time domain
18   USE phycst         ! physical constants
19   !
20   USE in_out_manager ! I/O manager
21   USE lib_mpp        ! MPP library
22   USE timing         ! Timing
23   
24   IMPLICIT NONE
25   PRIVATE
26
27   PUBLIC   usr_def_nam   ! called by nemogcm.F90
28
29   !                              !!* namusr_def namelist *!!
30   REAL(wp), PUBLIC ::   rn_dx     ! resolution in meters defining the horizontal domain size
31   REAL(wp), PUBLIC ::   rn_dz     ! resolution in meters defining the vertical   domain size
32
33   !!----------------------------------------------------------------------
34   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
35   !! $Id$
36   !! Software governed by the CeCILL license (see ./LICENSE)
37   !!----------------------------------------------------------------------
38CONTAINS
39
40   SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )
41      !!----------------------------------------------------------------------
42      !!                     ***  ROUTINE dom_nam  ***
43      !!                   
44      !! ** Purpose :   read user defined namelist and define the domain size
45      !!
46      !! ** Method  :   read in namusr_def containing all the user specific namelist parameter
47      !!
48      !!                Here LOCK_EXCHANGE configuration
49      !!
50      !! ** input   : - namusr_def namelist found in namelist_cfg
51      !!----------------------------------------------------------------------
52      CHARACTER(len=*)              , INTENT(out) ::   cd_cfg          ! configuration name
53      INTEGER                       , INTENT(out) ::   kk_cfg          ! configuration resolution
54      INTEGER                       , INTENT(out) ::   kpi, kpj, kpk   ! global domain sizes
55      INTEGER                       , INTENT(out) ::   kperio          ! lateral global domain b.c.
56      !
57      INTEGER ::   ios   ! Local integer
58      !!
59      NAMELIST/namusr_def/ rn_dx, rn_dz
60      !!----------------------------------------------------------------------
61      !
62      READ  ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 )
63902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namusr_def in configuration namelist' )
64      !
65      IF(lwm)   WRITE( numond, namusr_def )
66      !
67      !
68      cd_cfg = 'LOCK_EXCHANGE'      ! name & resolution (not used)
69      kk_cfg = INT( rn_dx )
70      !
71      ! Global Domain size:  LOCK_EXCHANGE domain is 64 km x 3 grid-points x 20 m
72      kpi = INT(  64.e3 / rn_dx ) + 2
73      kpj = 3
74      kpk = INT(  20.  / rn_dz ) + 1
75      !                             ! Set the lateral boundary condition of the global domain
76      kperio = 0                    ! LOCK_EXCHANGE configuration : closed domain
77      !
78      !                             ! control print
79      IF(lwp) THEN
80         WRITE(numout,*) '   '
81         WRITE(numout,*) 'usr_def_nam  : read the user defined namelist (namusr_def) in namelist_cfg'
82         WRITE(numout,*) '~~~~~~~~~~~ '
83         WRITE(numout,*) '   Namelist namusr_def : LOCK_EXCHANGE test case'
84         WRITE(numout,*) '      horizontal resolution                    rn_dx  = ', rn_dx, ' meters'
85         WRITE(numout,*) '      vertical   resolution                    rn_dz  = ', rn_dz, ' meters'
86         WRITE(numout,*) '      LOCK_EXCHANGE domain = 64 km  x  3 grid-points  x  20 m'
87         WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi
88         WRITE(numout,*) '                                               jpjglo = ', kpj
89         WRITE(numout,*) '                                               jpkglo = ', kpk
90         WRITE(numout,*) '   '
91         WRITE(numout,*) '   Lateral boundary condition of the global domain'
92         WRITE(numout,*) '      closed                                   jperio = ', kperio
93      ENDIF
94      !
95   END SUBROUTINE usr_def_nam
96
97   !!======================================================================
98END MODULE usrdef_nam
Note: See TracBrowser for help on using the repository browser.