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.
trcsms_age.F90 in NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/AGE – NEMO

source: NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/AGE/trcsms_age.F90 @ 10325

Last change on this file since 10325 was 10325, checked in by davestorkey, 5 years ago

UKMO/NEMO4_beta_mirror branch: clear SVN keywords.

File size: 3.1 KB
Line 
1MODULE trcsms_age
2   !!======================================================================
3   !!                         ***  MODULE trcsms_age  ***
4   !! TOP :   Main module of the AGE tracers
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
7   !!----------------------------------------------------------------------
8   !! trc_sms_age       : AGE model main routine
9   !!----------------------------------------------------------------------
10   USE oce_trc         ! Ocean variables
11   USE trc             ! TOP variables
12   USE trd_oce
13   USE trdtrc
14
15   IMPLICIT NONE
16   PRIVATE
17
18   PUBLIC   trc_sms_age       ! called by trcsms.F90 module
19
20   INTEGER , PUBLIC :: nl_age             ! T level surrounding age_depth
21   INTEGER , PUBLIC :: nla_age            ! T level wholly above age_depth
22   INTEGER , PUBLIC :: nlb_age            ! T level wholly below age_depth
23
24   REAL(wp), PUBLIC :: rn_age_depth       ! = 10       depth over which age tracer reset to zero
25   REAL(wp), PUBLIC :: rn_age_kill_rate   ! = -1./7200  recip of relaxation timescale (s) for  age tracer shallower than age_depth
26   
27   REAL(wp), PUBLIC :: rryear          !: recip number of seconds in one year
28   REAL(wp), PUBLIC :: frac_kill_age   !: fraction of level nl_age above age_depth where it is relaxed towards zero
29   REAL(wp), PUBLIC :: frac_add_age    !: fraction of level nl_age below age_depth where it is incremented
30
31
32   !!----------------------------------------------------------------------
33   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
34   !! $Id$
35   !! Software governed by the CeCILL license (see ./LICENSE)
36   !!----------------------------------------------------------------------
37CONTAINS
38
39   SUBROUTINE trc_sms_age( kt )
40      !!----------------------------------------------------------------------
41      !!                     ***  trc_sms_age  ***
42      !!
43      !! ** Purpose :   main routine of AGE model
44      !!
45      !! ** Method  : -
46      !!----------------------------------------------------------------------
47      INTEGER, INTENT(in) ::   kt   ! ocean time-step index
48      INTEGER ::   jn, jk   ! dummy loop index
49      !!----------------------------------------------------------------------
50      !
51      IF( ln_timing )   CALL timing_start('trc_sms_age')
52      !
53      IF(lwp) WRITE(numout,*)
54      IF(lwp) WRITE(numout,*) ' trc_sms_age:  AGE model'
55      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
56
57
58      DO jk = 1, nla_age
59         tra(:,:,jk,jp_age) = rn_age_kill_rate * trb(:,:,jk,jp_age)
60      END DO
61      !
62      tra(:,:,nl_age,jp_age) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age)  &
63          &                   + frac_add_age  * rryear * tmask(:,:,nl_age)
64      !
65      DO jk = nlb_age, jpk
66         tra(:,:,jk,jp_age) = tmask(:,:,jk) * rryear
67      END DO
68      !
69      IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age), jn, jptra_sms, kt )   ! save trends
70      !
71      IF( ln_timing )   CALL timing_stop('trc_sms_age')
72      !
73   END SUBROUTINE trc_sms_age
74
75   !!======================================================================
76END MODULE trcsms_age
Note: See TracBrowser for help on using the repository browser.