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/OVERFLOW/MY_SRC – NEMO

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

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