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/trunk/tests/VORTEX/MY_SRC – NEMO

source: NEMO/trunk/tests/VORTEX/MY_SRC/usrdef_nam.F90 @ 12377

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

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

  • Property svn:keywords set to Id
File size: 5.4 KB
Line 
1MODULE usrdef_nam
2   !!======================================================================
3   !!                       ***  MODULE  usrdef_nam  ***
4   !!
5   !!                      ===  VORTEX configuration  ===
6   !!
7   !! User defined : set the domain characteristics of a user configuration
8   !!======================================================================
9   !! History :  NEMO ! 2017-10  (J. Chanut)  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_dy      ! resolution in meters defining the horizontal domain size
32   REAL(wp), PUBLIC ::   rn_dz      ! vertical resolution
33   REAL(wp), PUBLIC ::   rn_ppgphi0 ! reference latitude for beta-plane
34
35   !!----------------------------------------------------------------------
36   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
37   !! $Id$
38   !! Software governed by the CeCILL license (see ./LICENSE)
39   !!----------------------------------------------------------------------
40CONTAINS
41
42   SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )
43      !!----------------------------------------------------------------------
44      !!                     ***  ROUTINE dom_nam  ***
45      !!                   
46      !! ** Purpose :   read user defined namelist and define the domain size
47      !!
48      !! ** Method  :   read in namusr_def containing all the user specific namelist parameter
49      !!
50      !!                Here VORTEX configuration
51      !!
52      !! ** input   : - namusr_def namelist found in namelist_cfg
53      !!----------------------------------------------------------------------
54      CHARACTER(len=*)              , INTENT(out) ::   cd_cfg          ! configuration name
55      INTEGER                       , INTENT(out) ::   kk_cfg          ! configuration resolution
56      INTEGER                       , INTENT(out) ::   kpi, kpj, kpk   ! global domain sizes
57      INTEGER                       , INTENT(out) ::   kperio          ! lateral global domain b.c.
58      !
59      INTEGER ::   ios          ! Local integer
60      REAL(wp)::   zlx, zly, zh ! Local scalars
61      !!
62      NAMELIST/namusr_def/  rn_dx, rn_dy, rn_dz, rn_ppgphi0
63      !!----------------------------------------------------------------------
64      !
65      READ  ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 )
66902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namusr_def in configuration namelist' )
67      !
68#if defined key_agrif 
69      ! Domain parameters are taken from parent:
70      IF( .NOT. Agrif_Root() ) THEN
71         rn_dx = Agrif_Parent(rn_dx)/Agrif_Rhox()
72         rn_dy = Agrif_Parent(rn_dy)/Agrif_Rhoy()
73         rn_dz = Agrif_Parent(rn_dz)
74         rn_ppgphi0 = Agrif_Parent(rn_ppgphi0)
75      ENDIF
76#endif
77      !
78      IF(lwm)   WRITE( numond, namusr_def )
79      !
80      cd_cfg = 'VORTEX'             ! name & resolution (not used)
81      kk_cfg = nINT( rn_dx )
82      !
83      IF( Agrif_Root() ) THEN       ! Global Domain size:  VORTEX global domain is  1800 km x 1800 Km x 5000 m
84         kpi = NINT( 1800.e3  / rn_dx ) + 3 
85         kpj = NINT( 1800.e3  / rn_dy ) + 3 
86      ELSE
87         kpi  = nbcellsx + 2 + 2*nbghostcells
88         kpj  = nbcellsy + 2 + 2*nbghostcells
89      ENDIF
90      kpk = NINT( 5000._wp / rn_dz ) + 1
91      !
92      zlx = (kpi-2)*rn_dx*1.e-3
93      zly = (kpj-2)*rn_dy*1.e-3
94      zh  = (kpk-1)*rn_dz
95      !                             ! Set the lateral boundary condition of the global domain
96      kperio = 0                    ! VORTEX configuration : closed basin
97      !                             ! control print
98      IF(lwp) THEN
99         WRITE(numout,*) '   '
100         WRITE(numout,*) 'usr_def_nam  : read the user defined namelist (namusr_def) in namelist_cfg'
101         WRITE(numout,*) '~~~~~~~~~~~ '
102         WRITE(numout,*) '   Namelist namusr_def : VORTEX test case'
103         WRITE(numout,*) '      horizontal resolution             rn_dx  = ', rn_dx, ' m'
104         WRITE(numout,*) '      horizontal resolution             rn_dy  = ', rn_dy, ' m'
105         WRITE(numout,*) '      vertical resolution               rn_dz  = ', rn_dz, ' m'
106         WRITE(numout,*) '      VORTEX domain: '
107         WRITE(numout,*) '         LX [km]: ', zlx
108         WRITE(numout,*) '         LY [km]: ', zly
109         WRITE(numout,*) '          H [m] : ', zh
110         WRITE(numout,*) '      Reference latitude            rn_ppgphi0 = ', rn_ppgphi0
111         WRITE(numout,*) '   '
112         WRITE(numout,*) '   Lateral boundary condition of the global domain'
113         WRITE(numout,*) '      VORTEX : closed basin            jperio = ', kperio
114      ENDIF
115      !
116   END SUBROUTINE usr_def_nam
117
118   !!======================================================================
119END MODULE usrdef_nam
Note: See TracBrowser for help on using the repository browser.