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.
c1d.F90 in trunk/NEMOGCM/NEMO/OPA_SRC/C1D – NEMO

source: trunk/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90 @ 4624

Last change on this file since 4624 was 4624, checked in by acc, 10 years ago

#1305. Fix slow start-up problems on some systems by introducing and using lwm logical to restrict output of merged namelists to the first (or only) processor. lwm is true only on the first processor regardless of ln_ctl. Small changes to all flavours of nemogcm.F90 are also required to write namctl and namcfg after the call to mynode which now opens output.namelist.dyn and writes nammpp.

File size: 3.8 KB
Line 
1MODULE c1d
2   !!======================================================================
3   !!                     ***  MODULE  c1d  ***
4   !! Ocean domain  :  1D configuration
5   !!=====================================================================
6   !! History :   2.0  !  2004-09 (C. Ethe)     Original code
7   !!             3.0  !  2008-04 (G. Madec)    adaptation to SBC
8   !!             3.5  !  2013-10 (D. Calvert)  add namelist
9   !!----------------------------------------------------------------------
10#if defined key_c1d
11   !!----------------------------------------------------------------------
12   !!   'key_c1d'                                   1D column configuration
13   !!----------------------------------------------------------------------
14   !!   c1d_init       : read in the C1D namelist
15   !!----------------------------------------------------------------------
16   USE in_out_manager   ! I/O manager
17   USE par_kind         ! kind parameters
18   USE lib_mpp
19
20   IMPLICIT NONE
21   PRIVATE
22
23   PUBLIC   c1d_init                                 ! called by nemogcm.F90
24
25   LOGICAL , PUBLIC, PARAMETER ::  lk_c1d = .TRUE.   ! 1D config. flag
26
27   REAL(wp), PUBLIC            ::  rn_lat1d     ! Column latitude
28   REAL(wp), PUBLIC            ::  rn_lon1d     ! Column longitude
29
30   !!----------------------------------------------------------------------
31   !! NEMO/C1D 3.3 , NEMO Consortium (2010)
32   !! $Id: c1d.F90 2382 2010-11-13 13:08:12Z gm $
33   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
34   !!======================================================================
35CONTAINS
36
37   SUBROUTINE c1d_init
38      !!----------------------------------------------------------------------
39      !!                  ***  ROUTINE c1d_init  ***
40      !!
41      !! ** Purpose :   Initialization of C1D options
42      !!
43      !! ** Method  :   Read namelist namc1d
44      !!----------------------------------------------------------------------
45      INTEGER ::   ios                 ! Local integer output status for namelist read
46      NAMELIST/namc1d/ rn_lat1d, rn_lon1d
47      !!----------------------------------------------------------------------
48      !
49
50      REWIND( numnam_ref )              ! Namelist namc1d in reference namelist : Tracer advection scheme
51      READ  ( numnam_ref, namc1d, IOSTAT = ios, ERR = 901)
52901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in reference namelist', lwp )
53
54      REWIND( numnam_cfg )              ! Namelist namtra_adv in configuration namelist : Tracer advection scheme
55      READ  ( numnam_cfg, namc1d, IOSTAT = ios, ERR = 902 )
56902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in configuration namelist', lwp )
57      IF(lwm) WRITE ( numond, namc1d )
58
59      !
60      IF(lwp) THEN                    ! Control print
61         WRITE(numout,*)
62         WRITE(numout,*) 'c1d_init : Initialize 1D model configuration options'
63         WRITE(numout,*) '~~~~~~~~'
64         WRITE(numout,*) '   Namelist namc1d : set options for the C1D model'
65         WRITE(numout,*) '      column latitude                 rn_lat1d = ', rn_lat1d
66         WRITE(numout,*) '      column longitude                rn_lon1d = ', rn_lon1d
67      ENDIF
68      !
69      !
70   END SUBROUTINE c1d_init
71
72#else
73   !!----------------------------------------------------------------------
74   !!   Dummy module :                           No use of 1D configuration
75   !!----------------------------------------------------------------------
76   USE par_kind         ! kind parameters
77
78   LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated
79   REAL(wp)                   ::   rn_lat1d, rn_lon1d
80CONTAINS
81
82   SUBROUTINE c1d_init               ! Dummy routine
83   END SUBROUTINE c1d_init
84
85#endif
86
87   !!======================================================================
88END MODULE c1d
Note: See TracBrowser for help on using the repository browser.