1 | MODULE trcini_age |
---|
2 | !!====================================================================== |
---|
3 | !! *** MODULE trcini_age *** |
---|
4 | !! TOP : initialisation of the AGE tracer |
---|
5 | !!====================================================================== |
---|
6 | !! History : 2.0 ! 2007-12 (G. Nurser, G. Madec, C. Ethe ) Original code |
---|
7 | !!---------------------------------------------------------------------- |
---|
8 | !! trc_ini_age : MY_TRC model initialisation |
---|
9 | !!---------------------------------------------------------------------- |
---|
10 | USE oce_trc |
---|
11 | USE trc |
---|
12 | USE trcnam_age |
---|
13 | USE trcsms_age |
---|
14 | |
---|
15 | IMPLICIT NONE |
---|
16 | PRIVATE |
---|
17 | |
---|
18 | PUBLIC trc_ini_age ! called by trcini.F90 module |
---|
19 | |
---|
20 | !!---------------------------------------------------------------------- |
---|
21 | !! NEMO/TOP 4.0 , NEMO Consortium (2018) |
---|
22 | !! $Id$ |
---|
23 | !! Software governed by the CeCILL license (see ./LICENSE) |
---|
24 | !!---------------------------------------------------------------------- |
---|
25 | CONTAINS |
---|
26 | |
---|
27 | SUBROUTINE trc_ini_age( Kmm ) |
---|
28 | !!---------------------------------------------------------------------- |
---|
29 | !! *** trc_ini_age *** |
---|
30 | !! |
---|
31 | !! ** Purpose : initialization for AGE model |
---|
32 | !! |
---|
33 | !!---------------------------------------------------------------------- |
---|
34 | INTEGER, INTENT(in) :: Kmm ! time level indices |
---|
35 | INTEGER :: jn |
---|
36 | CHARACTER(len = 20) :: cltra |
---|
37 | !!---------------------------------------------------------------------- |
---|
38 | ! |
---|
39 | CALL trc_nam_age |
---|
40 | ! |
---|
41 | IF(lwp) WRITE(numout,*) |
---|
42 | IF(lwp) WRITE(numout,*) ' trc_ini_age: passive tracer age' |
---|
43 | IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' |
---|
44 | IF(lwp) WRITE(numout,*) |
---|
45 | |
---|
46 | rryear = 1._wp / ( nyear_len(1) * rday ) ! recip number of seconds in one year |
---|
47 | |
---|
48 | !! BUG in s-coordinate this does not work! |
---|
49 | nlb_age = MINLOC( gdepw_1d, mask = gdepw_1d > rn_age_depth, dim = 1 ) ! shallowest W level Below age_depth |
---|
50 | ! = shallowest T level wholly below age_depth |
---|
51 | nl_age = nlb_age - 1 ! deepest W level Above age_depth |
---|
52 | ! = T level surrounding age_depth |
---|
53 | |
---|
54 | nla_age = nl_age - 1 ! deepest T level wholly above age_depth |
---|
55 | |
---|
56 | frac_kill_age = ( rn_age_depth - gdepw_1d(nl_age) ) / e3t_1d(nl_age) ! fraction of level nl_age above age_depth |
---|
57 | frac_add_age = 1._wp - frac_kill_age ! fraction of level nl_age below age_depth |
---|
58 | |
---|
59 | |
---|
60 | IF( .NOT. ln_rsttr ) tr(:,:,:,jp_age,Kmm) = 0. |
---|
61 | ! |
---|
62 | END SUBROUTINE trc_ini_age |
---|
63 | |
---|
64 | !!====================================================================== |
---|
65 | END MODULE trcini_age |
---|