1 | MODULE trabbc_tam |
---|
2 | #if defined key_tam |
---|
3 | !!============================================================================== |
---|
4 | !! *** MODULE trabbc *** |
---|
5 | !! Ocean active tracers: bottom boundary condition (geothermal heat flux) |
---|
6 | !!============================================================================== |
---|
7 | !! History : OPA ! 1999-10 (G. Madec) original code |
---|
8 | !! NEMO 1.0 ! 2002-08 (G. Madec) free form + modules |
---|
9 | !! - ! 2002-11 (A. Bozec) tra_bbc_init: original code |
---|
10 | !! 3.3 ! 2010-10 (G. Madec) dynamical allocation + suppression of key_trabbc |
---|
11 | !! - ! 2010-11 (G. Madec) use mbkt array (deepest ocean t-level) |
---|
12 | !!---------------------------------------------------------------------- |
---|
13 | |
---|
14 | !!---------------------------------------------------------------------- |
---|
15 | !! tra_bbc : update the tracer trend at ocean bottom |
---|
16 | !! tra_bbc_init : initialization of geothermal heat flux trend |
---|
17 | !!---------------------------------------------------------------------- |
---|
18 | USE oce ! ocean variables |
---|
19 | USE oce_tam |
---|
20 | USE dom_oce ! domain: ocean |
---|
21 | USE phycst ! physical constants |
---|
22 | USE in_out_manager ! I/O manager |
---|
23 | USE prtctl ! Print control |
---|
24 | USE wrk_nemo ! Memory Allocation |
---|
25 | USE timing ! Timing |
---|
26 | USE trabbc |
---|
27 | |
---|
28 | IMPLICIT NONE |
---|
29 | PRIVATE |
---|
30 | |
---|
31 | PUBLIC tra_bbc_tan ! routine called by step.F90 |
---|
32 | PUBLIC tra_bbc_adj ! routine called by step.F90 |
---|
33 | |
---|
34 | ! !!* Namelist nambbc: bottom boundary condition * |
---|
35 | INTEGER :: nn_geoflx = 1 ! Geothermal flux (=1:constant flux, =2:read in file ) |
---|
36 | REAL(wp) :: rn_geoflx_cst = 86.4e-3_wp ! Constant value of geothermal heat flux |
---|
37 | |
---|
38 | !! * Substitutions |
---|
39 | # include "domzgr_substitute.h90" |
---|
40 | !!---------------------------------------------------------------------- |
---|
41 | !! NEMO/OPA 3.3 , NEMO Consortium (2010) |
---|
42 | !! $Id $ |
---|
43 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
44 | !!---------------------------------------------------------------------- |
---|
45 | CONTAINS |
---|
46 | |
---|
47 | SUBROUTINE tra_bbc_tan( kt ) |
---|
48 | !!---------------------------------------------------------------------- |
---|
49 | !! *** ROUTINE tra_bbc_tan *** |
---|
50 | !! |
---|
51 | !! ** Purpose : Compute the bottom boundary contition on temperature |
---|
52 | !! associated with geothermal heating and add it to the |
---|
53 | !! general trend of temperature equations. |
---|
54 | !! |
---|
55 | !! ** Method : The geothermal heat flux set to its constant value of |
---|
56 | !! 86.4 mW/m2 (Stein and Stein 1992, Huang 1999). |
---|
57 | !! The temperature trend associated to this heat flux through the |
---|
58 | !! ocean bottom can be computed once and is added to the temperature |
---|
59 | !! trend juste above the bottom at each time step: |
---|
60 | !! ta = ta + Qsf / (rau0 rcp e3T) for k= mbkt |
---|
61 | !! Where Qsf is the geothermal heat flux. |
---|
62 | !! |
---|
63 | !! ** Action : - update the temperature trends (ta) with the trend of |
---|
64 | !! the ocean bottom boundary condition |
---|
65 | !! |
---|
66 | !! References : Stein, C. A., and S. Stein, 1992, Nature, 359, 123-129. |
---|
67 | !! Emile-Geay and Madec, 2009, Ocean Science. |
---|
68 | !!---------------------------------------------------------------------- |
---|
69 | INTEGER, INTENT(in) :: kt ! ocean time-step index |
---|
70 | !! |
---|
71 | INTEGER :: ji, jj, ik ! dummy loop indices |
---|
72 | REAL(wp) :: zqgh_trdtl ! geothermal heat flux trend |
---|
73 | REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt |
---|
74 | !!---------------------------------------------------------------------- |
---|
75 | ! |
---|
76 | !...Nothing to do... |
---|
77 | ! |
---|
78 | END SUBROUTINE tra_bbc_tan |
---|
79 | |
---|
80 | |
---|
81 | SUBROUTINE tra_bbc_adj( kt ) |
---|
82 | !!---------------------------------------------------------------------- |
---|
83 | !! *** ROUTINE tra_bbc_adj *** |
---|
84 | !! |
---|
85 | !! ** Purpose : Compute the bottom boundary contition on temperature |
---|
86 | !! associated with geothermal heating and add it to the |
---|
87 | !! general trend of temperature equations. |
---|
88 | !! |
---|
89 | !! ** Method : The geothermal heat flux set to its constant value of |
---|
90 | !! 86.4 mW/m2 (Stein and Stein 1992, Huang 1999). |
---|
91 | !! The temperature trend associated to this heat flux through the |
---|
92 | !! ocean bottom can be computed once and is added to the temperature |
---|
93 | !! trend juste above the bottom at each time step: |
---|
94 | !! ta = ta + Qsf / (rau0 rcp e3T) for k= mbkt |
---|
95 | !! Where Qsf is the geothermal heat flux. |
---|
96 | !! |
---|
97 | !! ** Action : - update the temperature trends (ta) with the trend of |
---|
98 | !! the ocean bottom boundary condition |
---|
99 | !! |
---|
100 | !! References : Stein, C. A., and S. Stein, 1992, Nature, 359, 123-129. |
---|
101 | !! Emile-Geay and Madec, 2009, Ocean Science. |
---|
102 | !!---------------------------------------------------------------------- |
---|
103 | INTEGER, INTENT(in) :: kt ! ocean time-step index |
---|
104 | !! |
---|
105 | INTEGER :: ji, jj, ik ! dummy loop indices |
---|
106 | REAL(wp) :: zqgh_trdtl ! geothermal heat flux trend |
---|
107 | REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt |
---|
108 | !!---------------------------------------------------------------------- |
---|
109 | ! |
---|
110 | !...Nothing to do... |
---|
111 | ! |
---|
112 | END SUBROUTINE tra_bbc_adj |
---|
113 | !!====================================================================== |
---|
114 | #endif |
---|
115 | END MODULE trabbc_tam |
---|