Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
MODULE sms_c14
!!======================================================================
!! *** MODULE trcsms_c14 ***
!! TOP : C14 main module
!!======================================================================
!! History - ! 1994-05 ( J. Orr ) original code
!! 1.0 ! 2006-02 ( J.M. Molines ) Free form + modularity
!! 2.0 ! 2008-12 ( C. Ethe ) reorganisation
!! 4.0 ! 2011-02 ( A.R. Porter, STFC Daresbury ) Dynamic memory
!! ! 2015 (A. Mouchet) general C14 + update formulas
!!----------------------------------------------------------------------
!! sms_c14 : compute and add C14 suface forcing to C14 trends
!!----------------------------------------------------------------------
USE par_oce
USE par_trc
IMPLICIT NONE
PUBLIC
LOGICAL :: ln_chemh ! Chemical enhancement (yes/no)
INTEGER :: kc14typ ! C14 tracer type
REAL(wp) :: tyrc14_beg ! year start atmospheric scenario !! See below
REAL(wp) :: pco2at, rc14at ! atm co2, atm 14C ratio (global, reference)
REAL(wp) :: rc14init ! ocean 14C ratio for initialization
REAL(wp) :: xkwind, xdicsur ! wind coeff, ref DIC
REAL(wp) :: rlam14 ! C14 decay rate
!
CHARACTER (len=20) :: cfileco2, cfilec14 ! Name of atmospheric forcing files
!
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: c14sbc ! atmospheric c14 ratio
REAL(wp) :: co2sbc ! atmospheric co2 pressure
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: exch_c14 ! exch. vel. for C14/C
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: exch_co2 ! CO2 invasion rate
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: qtr_c14 ! flux at surface
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: qint_c14 ! cumulative flux
INTEGER , PARAMETER :: nc14zon = 3 ! number of zones for bomb c14
!
INTEGER :: nrecco2, nrecc14 ! nb record atm co2 & cc14
REAL(wp) :: tyrc14_now ! current yr for transient experiment relative to tyrc14_beg
INTEGER :: m1_co2, m1_c14 ! index of first co2 and c14 records to consider
INTEGER :: m2_co2, m2_c14 ! index of second co2 and c14 records to consider
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: bomb ! C14 atm data (bomb - 3 zones)
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: atmc14 ! C14 atm data (paleo - 1 zone)
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: tyrc14 ! Time (yr) atmospheric C14 data
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fareaz ! Spatial Interpolation Factors
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: spco2 ! Atmospheric CO2
REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: tyrco2 ! Time (yr) atmospheric CO2 data
!! * Substitutions
# include "do_loop_substitute.h90"
!!----------------------------------------------------------------------
!! NEMO/TOP 4.0 , NEMO Consortium (2018)
!! $Id: sms_c14.F90 10071 2018-08-28 14:49:04Z nicolasmartin $
!! Software governed by the CeCILL license (see ./LICENSE)
!!----------------------------------------------------------------------
CONTAINS
INTEGER FUNCTION sms_c14_alloc()
!!----------------------------------------------------------------------
!! *** ROUTINE trc_sms_c14_alloc ***
!!----------------------------------------------------------------------
sms_c14_alloc = 0
ALLOCATE( exch_c14(A2D(0)) , exch_co2(A2D(0)) , &
& qtr_c14(A2D(0)) , qint_c14(A2D(0)) , &
& c14sbc(A2D(0)) , STAT = sms_c14_alloc )
!
!
END FUNCTION sms_c14_alloc
!!======================================================================
END MODULE sms_c14