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 trunk/NEMOGCM/NEMO/TOP_SRC/C14b – NEMO

source: trunk/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90 @ 2715

Last change on this file since 2715 was 2715, checked in by rblod, 13 years ago

First attempt to put dynamic allocation on the trunk

  • Property svn:keywords set to Id
File size: 6.2 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
19   IMPLICIT NONE
20   PRIVATE
21
22   PUBLIC   trc_nam_c14b   ! called by trcnam.F90 module
23
24   !!----------------------------------------------------------------------
25   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
26   !! $Id$
27   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
28   !!----------------------------------------------------------------------
29
30CONTAINS
31
32   SUBROUTINE trc_nam_c14b
33      !!-------------------------------------------------------------------
34      !!                  ***  ROUTINE trc_nam_c14b  ***
35      !!                 
36      !! ** Purpose :   Definition some run parameter for C14 model
37      !!
38      !! ** Method  :   Read the namc14 namelist and check the parameter
39      !!       values called at the first timestep (nit000)
40      !!
41      !! ** input   :   Namelist namelist_c14b
42      !!----------------------------------------------------------------------
43      INTEGER ::   numnatb
44
45#if defined key_diatrc && ! defined key_iomput
46      ! definition of additional diagnostic as a structure
47      INTEGER ::   jl, jn
48      TYPE DIAG
49         CHARACTER(len = 20)  :: snamedia   !: short name
50         CHARACTER(len = 80 ) :: lnamedia   !: long name
51         CHARACTER(len = 20 ) :: unitdia    !: unit
52      END TYPE DIAG
53
54      TYPE(DIAG) , DIMENSION(jp_c14b_2d) :: c14dia2d
55      TYPE(DIAG) , DIMENSION(jp_c14b_3d) :: c14dia3d
56#endif
57      !!
58      NAMELIST/namc14date/ ndate_beg_b, nyear_res_b
59#if defined key_diatrc && ! defined key_iomput
60      NAMELIST/namc14dia/nn_writedia, c14dia2d, c14dia3d     ! additional diagnostics
61#endif
62      !!-------------------------------------------------------------------
63
64      ndate_beg_b = 650101            ! default namelist value
65      nyear_res_b = 1955
66
67      !                             ! Open namelist file
68      CALL ctl_opn( numnatb, 'namelist_c14b', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
69         
70      READ( numnatb , namc14date )     ! read namelist
71
72      IF(lwp) THEN                  ! control print
73         WRITE(numout,*)
74         WRITE(numout,*) ' trc_nam: Read namdates, namelist for C14 chemical model'
75         WRITE(numout,*) ' ~~~~~~~'
76         WRITE(numout,*) '    initial calendar date (aammjj) for C14  ndate_beg_b = ', ndate_beg_b
77         WRITE(numout,*) '    restoring time constant (year)          nyear_res_b = ', nyear_res_b
78      ENDIF
79      nyear_beg_b = ndate_beg_b / 10000
80      IF(lwp) WRITE(numout,*) '    initial year (aa)                  nyear_beg_b = ', nyear_beg_b
81      !
82#if defined key_diatrc && ! defined key_iomput
83
84      ! Namelist namc14dia
85      ! -------------------
86      nn_writedia = 10                   ! default values
87
88      DO jl = 1, jp_c14b_2d
89         jn = jp_c14b0_2d + jl - 1
90         WRITE(ctrc2d(jn),'("2D_",I1)') jn                      ! short name
91         WRITE(ctrc2l(jn),'("2D DIAGNOSTIC NUMBER ",I2)') jn    ! long name
92         ctrc2u(jn) = ' '                                       ! units
93      END DO
94      !                                 ! 3D output arrays
95      DO jl = 1, jp_c14b_3d
96         jn = jp_c14b0_3d + jl - 1
97         WRITE(ctrc3d(jn),'("3D_",I1)') jn                      ! short name
98         WRITE(ctrc3l(jn),'("3D DIAGNOSTIC NUMBER ",I2)') jn    ! long name
99         ctrc3u(jn) = ' '                                       ! units
100      END DO
101
102      REWIND( numnatb )               ! read natrtd
103      READ  ( numnatb, namc14dia )
104
105      DO jl = 1, jp_c14b_2d
106         jn = jp_c14b0_2d + jl - 1
107         ctrc2d(jn) = c14dia2d(jl)%snamedia
108         ctrc2l(jn) = c14dia2d(jl)%lnamedia
109         ctrc2u(jn) = c14dia2d(jl)%unitdia
110      END DO
111
112      DO jl = 1, jp_c14b_3d
113         jn = jp_c14b0_3d + jl - 1
114         ctrc3d(jn) = c14dia3d(jl)%snamedia
115         ctrc3l(jn) = c14dia3d(jl)%lnamedia
116         ctrc3u(jn) = c14dia3d(jl)%unitdia
117      END DO
118
119      IF(lwp) THEN                   ! control print
120         WRITE(numout,*)
121         WRITE(numout,*) ' Namelist : natadd'
122         WRITE(numout,*) '    frequency of outputs for additional arrays nn_writedia = ', nn_writedia
123         DO jl = 1, jp_c14b_3d
124            jn = jp_c14b0_3d + jl - 1
125            WRITE(numout,*) '   3d output field No : ',jn
126            WRITE(numout,*) '   short name         : ', TRIM(ctrc3d(jn))
127            WRITE(numout,*) '   long name          : ', TRIM(ctrc3l(jn))
128            WRITE(numout,*) '   unit               : ', TRIM(ctrc3u(jn))
129            WRITE(numout,*) ' '
130         END DO
131
132         DO jl = 1, jp_c14b_2d
133            jn = jp_c14b0_2d + jl - 1
134            WRITE(numout,*) '   2d output field No : ',jn
135            WRITE(numout,*) '   short name         : ', TRIM(ctrc2d(jn))
136            WRITE(numout,*) '   long name          : ', TRIM(ctrc2l(jn))
137            WRITE(numout,*) '   unit               : ', TRIM(ctrc2u(jn))
138            WRITE(numout,*) ' '
139         END DO
140      ENDIF
141
142#endif
143
144   END SUBROUTINE trc_nam_c14b
145   
146#else
147   !!----------------------------------------------------------------------
148   !!  Dummy module :                                                No 14C
149   !!----------------------------------------------------------------------
150CONTAINS
151   SUBROUTINE trc_nam_c14b                      ! Empty routine
152   END  SUBROUTINE  trc_nam_c14b
153#endif 
154
155   !!======================================================================
156END MODULE trcnam_c14b
Note: See TracBrowser for help on using the repository browser.