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.
trcnam_c14b.F90 in branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/C14b – NEMO

source: branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90 @ 2819

Last change on this file since 2819 was 2819, checked in by cetlod, 13 years ago

Improvment of branch dev_r2787_LOCEAN3_TRA_TRP

  • Property svn:keywords set to Id
File size: 5.7 KB
Line 
1MODULE trcnam_c14b
2   !!======================================================================
3   !!                         ***  MODULE trcnam_c14b  ***
4   !! TOP :   initialisation of some run parameters for C14 chemical model
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.cfc.h90
7   !!----------------------------------------------------------------------
8#if defined key_c14b
9   !!----------------------------------------------------------------------
10   !!   'key_c14b'                                         C14 bomb tracer
11   !!----------------------------------------------------------------------
12   !! trc_nam_c14b      : C14 model initialisation
13   !!----------------------------------------------------------------------
14   USE oce_trc         ! Ocean variables
15   USE par_trc         ! TOP parameters
16   USE trc             ! TOP variables
17   USE trcsms_c14b     ! C14b specific variable
18   USE iom             ! I/O manager
19
20   IMPLICIT NONE
21   PRIVATE
22
23   PUBLIC   trc_nam_c14b   ! called by trcnam.F90 module
24
25   !!----------------------------------------------------------------------
26   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
27   !! $Id$
28   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
29   !!----------------------------------------------------------------------
30
31CONTAINS
32
33   SUBROUTINE trc_nam_c14b
34      !!-------------------------------------------------------------------
35      !!                  ***  ROUTINE trc_nam_c14b  ***
36      !!                 
37      !! ** Purpose :   Definition some run parameter for C14 model
38      !!
39      !! ** Method  :   Read the namc14 namelist and check the parameter
40      !!       values called at the first timestep (nit000)
41      !!
42      !! ** input   :   Namelist namelist_c14b
43      !!----------------------------------------------------------------------
44      INTEGER ::   numnatb
45
46      ! definition of additional diagnostic as a structure
47      INTEGER :: jl, jn
48      TYPE(DIAG), DIMENSION(jp_c14b_2d) :: c14dia2d
49      TYPE(DIAG), DIMENSION(jp_c14b_3d) :: c14dia3d
50      !!
51      NAMELIST/namc14date/ ndate_beg_b, nyear_res_b
52      NAMELIST/namc14dia/  c14dia2d, c14dia3d     ! additional diagnostics
53      !!-------------------------------------------------------------------
54
55      ndate_beg_b = 650101            ! default namelist value
56      nyear_res_b = 1955
57
58      !                             ! Open namelist file
59      CALL ctl_opn( numnatb, 'namelist_c14b', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
60         
61      READ( numnatb , namc14date )     ! read namelist
62
63      IF(lwp) THEN                  ! control print
64         WRITE(numout,*)
65         WRITE(numout,*) ' trc_nam: Read namdates, namelist for C14 chemical model'
66         WRITE(numout,*) ' ~~~~~~~'
67         WRITE(numout,*) '    initial calendar date (aammjj) for C14  ndate_beg_b = ', ndate_beg_b
68         WRITE(numout,*) '    restoring time constant (year)          nyear_res_b = ', nyear_res_b
69      ENDIF
70      nyear_beg_b = ndate_beg_b / 10000
71      IF(lwp) WRITE(numout,*) '    initial year (aa)                  nyear_beg_b = ', nyear_beg_b
72      !
73      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
74         !
75         ! Namelist namc14dia
76         ! -------------------
77         DO jl = 1, jp_c14b_2d
78            WRITE(c14dia2d(jl)%sname,'("2D_",I1)') jl                      ! short name
79            WRITE(c14dia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
80            c14dia2d(jl)%units = ' '                                       ! units
81         END DO
82         !                                 ! 3D output arrays
83         DO jl = 1, jp_c14b_3d
84            WRITE(c14dia3d(jl)%sname,'("3D_",I1)') jl                      ! short name
85            WRITE(c14dia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
86            c14dia3d(jl)%units = ' '                                       ! units
87         END DO
88
89         REWIND( numnatb )               !
90         READ  ( numnatb, namc14dia )
91
92         DO jl = 1, jp_c14b_2d
93            jn = jp_c14b0_2d + jl - 1
94            ctrc2d(jn) = c14dia2d(jl)%sname
95            ctrc2l(jn) = c14dia2d(jl)%lname
96            ctrc2u(jn) = c14dia2d(jl)%units
97         END DO
98
99         DO jl = 1, jp_c14b_3d
100            jn = jp_c14b0_3d + jl - 1
101            ctrc3d(jn) = c14dia3d(jl)%sname
102            ctrc3l(jn) = c14dia3d(jl)%lname
103            ctrc3u(jn) = c14dia3d(jl)%units
104         END DO
105
106         IF(lwp) THEN                   ! control print
107            WRITE(numout,*)
108            WRITE(numout,*) ' Namelist : natadd'
109            DO jl = 1, jp_c14b_3d
110               jn = jp_c14b0_3d + jl - 1
111               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
112                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
113            END DO
114            WRITE(numout,*) ' '
115
116            DO jl = 1, jp_c14b_2d
117               jn = jp_c14b0_2d + jl - 1
118               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
119                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
120            END DO
121            WRITE(numout,*) ' '
122         ENDIF
123         !
124      ENDIF
125
126   END SUBROUTINE trc_nam_c14b
127   
128#else
129   !!----------------------------------------------------------------------
130   !!  Dummy module :                                                No 14C
131   !!----------------------------------------------------------------------
132CONTAINS
133   SUBROUTINE trc_nam_c14b                      ! Empty routine
134   END  SUBROUTINE  trc_nam_c14b
135#endif 
136
137   !!======================================================================
138END MODULE trcnam_c14b
Note: See TracBrowser for help on using the repository browser.