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.
oce_trc.F90 in branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/TOP_SRC – NEMO

source: branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90 @ 5870

Last change on this file since 5870 was 5870, checked in by acc, 8 years ago

Branch 2015/dev_r5803_NOC_WAD. Merge in trunk changes from 5803 to 5869 in preparation for merge. Also tidied and reorganised some wetting and drying code. Renamed wadlmt.F90 to wetdry.F90. Wetting drying code changes restricted to domzgr.F90, domvvl.F90 nemogcm.F90 sshwzv.F90, dynspg_ts.F90, wetdry.F90 and dynhpg.F90. Code passes full SETTE tests with ln_wd=.false.. Still awaiting test case for checking with ln_wd=.false.

  • Property svn:keywords set to Id
File size: 8.2 KB
Line 
1MODULE oce_trc
2   !!======================================================================
3   !!                      ***  MODULE  oce_trc  ***
4   !! TOP :   variables shared between ocean and passive tracers
5   !!======================================================================
6   !! History :   1.0  !  2004-03  (C. Ethe)  original code
7   !!             2.0  !  2007-12 (C. Ethe, G. Madec)  rewritting
8   !!----------------------------------------------------------------------
9#if defined key_top
10   !!----------------------------------------------------------------------
11   !!   'key_top'                                                TOP models
12   !!----------------------------------------------------------------------
13   !
14   !                                            !* Domain size *
15   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i
16   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j 
17   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels 
18   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1
19   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1
20   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1 
21   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj
22   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature
23   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity
24
25   USE in_out_manager                           !* IO manager *
26   USE wrk_nemo                                 !* Memory Allocation *
27   USE timing                                   !* Timing *
28   USE lib_mpp                                  !* MPP library                         
29   USE lib_fortran                              !* Fortran utilities                         
30   USE lbclnk                                   !* Lateral boundary conditions                         
31   USE phycst                                   !* physical constants *
32   USE c1d                                      !* 1D configuration
33   USE dom_oce                                  !* model domain *
34
35   USE domvvl, ONLY : un_td, vn_td          !: thickness diffusion transport
36   USE domvvl, ONLY : ln_vvl_ztilde         !: ztilde vertical coordinate
37   USE domvvl, ONLY : ln_vvl_layer          !: level  vertical coordinate
38
39   !* ocean fields: here now and after fields *
40   USE oce , ONLY :   un      =>    un      !: i-horizontal velocity (m s-1)
41   USE oce , ONLY :   vn      =>    vn      !: j-horizontal velocity (m s-1)
42   USE oce , ONLY :   wn      =>    wn      !: vertical velocity (m s-1) 
43   USE oce , ONLY :   tsn     =>    tsn     !: 4D array contaning ( tn, sn )
44   USE oce , ONLY :   tsb     =>    tsb     !: 4D array contaning ( tb, sb )
45   USE oce , ONLY :   tsa     =>    tsa     !: 4D array contaning ( ta, sa )
46   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3)
47   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
48   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s)
49   USE oce , ONLY :   sshn    =>    sshn    !: sea surface height at t-point [m]   
50   USE oce , ONLY :   sshb    =>    sshb    !: sea surface height at t-point [m]   
51   USE oce , ONLY :   ssha    =>    ssha    !: sea surface height at t-point [m]   
52#if defined key_offline
53   USE oce , ONLY :   rab_n   =>    rab_n   !: local thermal/haline expension ratio at T-points
54#endif
55
56   !* surface fluxes *
57   USE sbc_oce , ONLY :   utau       =>    utau       !: i-surface stress component
58   USE sbc_oce , ONLY :   vtau       =>    vtau       !: j-surface stress component
59   USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed
60   USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)
61   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s]
62   USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s]
63   USE sbc_oce , ONLY :   fmmflx     =>    fmmflx     !: freshwater budget: volume flux               [Kg/m2/s]
64   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s]
65   USE sbc_oce , ONLY :   ln_dm2dc   =>    ln_dm2dc   !: Diurnal Cycle
66   USE sbc_oce , ONLY :   ncpl_qsr_freq   =>   ncpl_qsr_freq   !: qsr coupling frequency per days from atmospher
67   USE sbc_oce , ONLY :   ln_rnf     =>    ln_rnf     !: runoffs / runoff mouths
68   USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1)
69   USE sbc_oce , ONLY :   nn_ice_embd => nn_ice_embd  !: flag for  levitating/embedding sea-ice in the ocean
70   USE traqsr  , ONLY :   rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface
71   USE traqsr  , ONLY :   rn_si0     =>    rn_si0     !: very near surface depth of extinction
72   USE traqsr  , ONLY :   ln_qsr_bio =>    ln_qsr_bio !: flag to use or not the biological fluxes for light
73   USE sbcrnf  , ONLY :   rnfmsk     =>    rnfmsk     !: mixed adv scheme in runoffs vicinity (hori.)
74   USE sbcrnf  , ONLY :   rnfmsk_z   =>    rnfmsk_z   !: mixed adv scheme in runoffs vicinity (vert.)
75   USE sbcrnf  , ONLY :   h_rnf      =>    h_rnf      !: river runoff   [Kg/m2/s]
76   USE sbcrnf  , ONLY :   nk_rnf     =>    nk_rnf     !: depth of runoff in model level
77
78   USE trc_oce
79
80!!gm : I don't understand this as ldftra (where everything is defined) is used by TRC in all cases (ON/OFF-line)
81!!gm   so the following lines should be removed....   logical should be the one of TRC namelist
82!!gm   In case off coarsening....  the ( ahtu, ahtv, aeiu, aeiv) arrays are needed that's all.
83   !* lateral diffusivity (tracers) *
84   USE ldftra , ONLY :  rn_aht_0     =>   rn_aht_0     !:   laplacian lateral eddy diffusivity [m2/s]
85   USE ldftra , ONLY :  rn_bht_0     =>   rn_bht_0     !: bilaplacian lateral eddy diffusivity [m4/s]
86   USE ldftra , ONLY :  ahtu         =>   ahtu         !: lateral diffusivity coef. at u-points
87   USE ldftra , ONLY :  ahtv         =>   ahtv         !: lateral diffusivity coef. at v-points
88   USE ldftra , ONLY :  rn_aeiv_0    =>   rn_aeiv_0    !: eddy induced velocity coefficient (m2/s)
89   USE ldftra , ONLY :  aeiu         =>   aeiu         !: eddy induced velocity coef. at u-points (m2/s)   
90   USE ldftra , ONLY :  aeiv         =>   aeiv         !: eddy induced velocity coef. at v-points (m2/s)
91   USE ldftra , ONLY :  ln_ldfeiv    =>   ln_ldfeiv    !: eddy induced velocity flag
92     
93!!gm this should be : ln_trcldf_triad (TRC namelist)
94   USE ldfslp , ONLY :  ln_traldf_triad => ln_traldf_triad   !: triad scheme (Griffies et al.)
95
96   !* direction of lateral diffusion *
97   USE ldfslp , ONLY :   l_ldfslp  =>  l_ldfslp       !: slopes flag
98   USE ldfslp , ONLY :   uslp       =>   uslp         !: i-slope at u-point
99   USE ldfslp , ONLY :   vslp       =>   vslp         !: j-slope at v-point
100   USE ldfslp , ONLY :   wslpi      =>   wslpi        !: i-slope at w-point
101   USE ldfslp , ONLY :   wslpj      =>   wslpj        !: j-slope at w-point
102!!gm end
103
104   !* vertical diffusion *
105   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp 
106# if defined key_zdfddm
107   USE zdfddm  , ONLY :   avs        =>   avs         !: salinity vertical diffusivity coeff. at w-point
108# endif
109
110   !* mixing & mixed layer depth *
111   USE zdfmxl , ONLY :   nmln        =>   nmln        !: number of level in the mixed layer
112   USE zdfmxl , ONLY :   hmld        =>   hmld        !: mixing layer depth (turbocline)
113   USE zdfmxl , ONLY :   hmlp        =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m)
114   USE zdfmxl , ONLY :   hmlpt       =>   hmlpt       !: mixed layer depth at t-points (m)
115
116   USE diaar5 , ONLY :   lk_diaar5  =>   lk_diaar5
117#else
118   !!----------------------------------------------------------------------
119   !!  Empty module :                                     No passive tracer
120   !!----------------------------------------------------------------------
121#endif
122
123   !!----------------------------------------------------------------------
124   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
125   !! $Id$
126   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
127   !!======================================================================
128END MODULE oce_trc
Note: See TracBrowser for help on using the repository browser.