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.
ldfdyn_oce.F90 in branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LDF – NEMO

source: branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_oce.F90 @ 4409

Last change on this file since 4409 was 3211, checked in by spickles2, 12 years ago

Stephen Pickles, 11 Dec 2011

Commit to bring the rest of the DCSE NEMO development branch
in line with the latest development version. This includes
array index re-ordering of all OPA_SRC/.

  • Property svn:keywords set to Id
File size: 3.4 KB
Line 
1MODULE ldfdyn_oce
2   !!======================================================================
3   !!                  ***  MODULE  ldfdyn_oce  ***
4   !! Ocean physics:  lateral momentum mixing coefficient defined in memory
5   !!======================================================================
6   !! History :  1.0  ! 2002-11  (G. Madec)  F90: Free form and module
7   !!----------------------------------------------------------------------
8   USE par_oce        ! ocean parameters
9   USE in_out_manager ! I/O manager
10   USE lib_mpp         ! MPP library
11
12   IMPLICIT NONE
13   PUBLIC
14
15   !                                                  !!* Namelist namdyn_ldf : lateral mixing *
16   LOGICAL , PUBLIC ::   ln_dynldf_lap   = .TRUE.      !: laplacian operator
17   LOGICAL , PUBLIC ::   ln_dynldf_bilap = .FALSE.     !: bilaplacian operator
18   LOGICAL , PUBLIC ::   ln_dynldf_level = .FALSE.     !: iso-level direction
19   LOGICAL , PUBLIC ::   ln_dynldf_hor   = .TRUE.      !: horizontal (geopotential) direction
20   LOGICAL , PUBLIC ::   ln_dynldf_iso   = .FALSE.     !: iso-neutral direction
21   REAL(wp), PUBLIC ::   rn_ahm_0_lap    = 40000._wp   !: lateral laplacian eddy viscosity (m2/s)
22   REAL(wp), PUBLIC ::   rn_ahmb_0       =     0._wp   !: lateral laplacian background eddy viscosity (m2/s)
23   REAL(wp), PUBLIC ::   rn_ahm_0_blp    =     0._wp   !: lateral bilaplacian eddy viscosity (m4/s)
24   REAL(wp), PUBLIC ::   ahm0, ahmb0, ahm0_blp         !: OLD namelist names
25
26   !                                                                                  !!! eddy coeff. at U-,V-,W-pts [m2/s]
27#if defined key_dynldf_c3d
28   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ahm1, ahm2, ahm3, ahm4   !: ** 3D coefficients **
29#elif defined key_dynldf_c2d
30   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   ahm1, ahm2, ahm3, ahm4   !: ** 2D coefficients **
31#elif defined key_dynldf_c1d
32   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)     ::   ahm1, ahm2, ahm3, ahm4   !: ** 2D coefficients **
33#else
34   REAL(wp), PUBLIC                                      ::   ahm1, ahm2, ahm3, ahm4   !: ** 0D coefficients **
35#endif
36
37   !! * Control permutation of array indices
38#  include "ldfdyn_oce_ftrans.h90"
39
40   !!----------------------------------------------------------------------
41   !! NEMO/OPA 4.0 , NEMO Consortium (2011)
42   !! $Id$
43   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
44   !!----------------------------------------------------------------------
45CONTAINS
46
47   INTEGER FUNCTION ldfdyn_oce_alloc()
48      !!----------------------------------------------------------------------
49      !!                 ***  FUNCTION ldfdyn_oce_alloc  ***
50      !!----------------------------------------------------------------------
51      ldfdyn_oce_alloc = 0
52#if defined key_dynldf_c3d
53      ALLOCATE( ahm1(jpi,jpj,jpk) , ahm2(jpi,jpj,jpk) , ahm3(jpi,jpj,jpk) , ahm4(jpi,jpj,jpk) , STAT=ldfdyn_oce_alloc )
54#elif defined key_dynldf_c2d
55      ALLOCATE( ahm1(jpi,jpj    ) , ahm2(jpi,jpj    ) , ahm3(jpi,jpj    ) , ahm4(jpi,jpj    ) , STAT=ldfdyn_oce_alloc )
56#elif defined key_dynldf_c1d
57      ALLOCATE( ahm1(        jpk) , ahm2(        jpk) , ahm3(        jpk) , ahm4(        jpk) , STAT=ldfdyn_oce_alloc )
58#endif
59      IF( ldfdyn_oce_alloc /= 0 )   CALL ctl_warn('ldfdyn_oce_alloc: failed to allocate arrays')
60      !
61   END FUNCTION ldfdyn_oce_alloc
62
63   !!======================================================================
64END MODULE ldfdyn_oce
Note: See TracBrowser for help on using the repository browser.