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.
trdini.F90 in branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD – NEMO

source: branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trdini.F90 @ 3325

Last change on this file since 3325 was 3325, checked in by gm, 12 years ago

Ediag branche: #927 add Kinetic Energy trend diagnostics (trdken.F90)

  • Property svn:keywords set to Id
File size: 5.2 KB
Line 
1MODULE trdini
2   !!======================================================================
3   !!                       ***  MODULE  trdini  ***
4   !! Ocean diagnostics:  ocean tracers and dynamic trends
5   !!=====================================================================
6   !! History :   3.5  !  2012-02  (G. Madec) add 3D trends output for T, S, U, V, PE and KE
7   !!----------------------------------------------------------------------
8
9   !!----------------------------------------------------------------------
10   !!   trd_init      : initialization step
11   !!----------------------------------------------------------------------
12   USE trd_oce        ! trends: ocean variables
13   USE trdken         ! trends: 3D kinetic energy
14   USE trdglo         ! trends: global domain integral constraints properties
15   USE trdmld         ! ocean active mixed layer tracers trends
16   USE trdvor         ! ocean vorticity trends
17   USE in_out_manager ! I/O manager
18   USE lib_mpp        ! MPP library
19
20   IMPLICIT NONE
21   PRIVATE
22
23   PUBLIC   trd_init   ! called by nemogcm.F90 module
24
25   !! * Substitutions
26#  include "domzgr_substitute.h90"
27#  include "vectopt_loop_substitute.h90"
28   !!----------------------------------------------------------------------
29   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
30   !! $Id$
31   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
32   !!----------------------------------------------------------------------
33CONTAINS
34
35   SUBROUTINE trd_init
36      !!----------------------------------------------------------------------
37      !!                  ***  ROUTINE trd_init  ***
38      !!
39      !! ** Purpose :   Initialization of trend diagnostics
40      !!----------------------------------------------------------------------
41      NAMELIST/namtrd/ ln_dyn_trd, ln_KE_trd, ln_vor_trd, ln_dyn_mld,   &
42         &             ln_tra_trd, ln_PE_trd, ln_glo_trd, ln_tra_mld,   &
43         &             nn_trd , cn_trdrst_in , ln_trdmld_restart,       &
44         &             nn_ctls, cn_trdrst_out, ln_trdmld_instant, rn_ucf
45      !!----------------------------------------------------------------------
46
47      REWIND( numnam )
48      READ  ( numnam, namtrd )      ! namelist namtrd : trends diagnostic
49
50      IF(lwp) THEN                  ! control print
51         WRITE(numout,*)
52         WRITE(numout,*) ' trd_init : Momentum/Tracers trends'
53         WRITE(numout,*) ' ~~~~~~~~~~'
54         WRITE(numout,*) '   Namelist namtrd : set trends parameters'
55         WRITE(numout,*) '      global domain averaged dyn & tra trends        ln_glo_trd  = ', ln_glo_trd
56         WRITE(numout,*) '      U & V trends: 3D output                        ln_dyn_trd  = ', ln_dyn_trd
57         WRITE(numout,*) '      U & V trends: Mixed Layer averaged             ln_dyn_mld  = ', ln_dyn_mld
58         WRITE(numout,*) '      T & S trends: 3D output                        ln_tra_trd  = ', ln_tra_trd
59         WRITE(numout,*) '      T & S trends: Mixed Layer averaged             ln_tra_mld  = ', ln_tra_mld
60         WRITE(numout,*) '      Kinetic   Energy trends                        ln_KE_trd   = ', ln_KE_trd
61         WRITE(numout,*) '      Potential Energy trends                        ln_PE_trd   = ', ln_PE_trd
62         WRITE(numout,*) '      Barotropic vorticity trends                    ln_vor_trd  = ', ln_vor_trd
63         !
64         WRITE(numout,*) '      frequency of trends diagnostics (glo)   nn_trd             = ', nn_trd
65         WRITE(numout,*) '      control surface type            (mld)   nn_ctls            = ', nn_ctls
66         WRITE(numout,*) '      restart for ML diagnostics              ln_trdmld_restart  = ', ln_trdmld_restart
67         WRITE(numout,*) '      instantaneous or mean ML T/S            ln_trdmld_instant  = ', ln_trdmld_instant
68         WRITE(numout,*) '      unit conversion factor                  rn_ucf             = ', rn_ucf
69      ENDIF
70      !
71      !                             ! trend extraction flags 
72      l_trdtra = .FALSE.                                                       ! tracers 
73      IF ( ln_tra_trd .OR. ln_PE_trd .OR. ln_tra_mld .OR.   &
74         & ln_glo_trd                                       )   l_trdtra = .TRUE. 
75      !
76      l_trddyn = .FALSE.                                                       ! momentum
77      IF ( ln_dyn_trd .OR. ln_KE_trd .OR. ln_dyn_mld .OR.   &
78         & ln_vor_trd .OR. ln_glo_trd                       )   l_trddyn = .TRUE.
79      !
80     
81      IF( ln_PE_trd .OR. ln_dyn_mld )   &
82         CALL ctl_stop( 'PE, or ML on momentum are not yet coded we stop' )
83
84      !
85      IF( ln_glo_trd )   CALL trd_glo_init      ! integral constraints trends
86      IF( ln_tra_mld )   CALL trd_mld_init      ! mixed-layer trends (active  tracers) 
87      IF( ln_vor_trd )   CALL trd_vor_init      ! vorticity trends
88      IF( ln_KE_trd  )   CALL trd_ken_init      ! 3D Kinetic energy diagnostics
89
90      !
91!!gm  : Potential BUG : 3D output only for vector invariant form!  add a ctl_stop or code the flux form case
92!!gm  : bug/pb for vertical advection of tracer in vvl case: add T.dt[eta] in the output...
93      !
94      !
95   END SUBROUTINE trd_init
96
97   !!======================================================================
98END MODULE trdini
Note: See TracBrowser for help on using the repository browser.