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_c1d.h90 in trunk/NEMO/OPA_SRC/LDF – NEMO

source: trunk/NEMO/OPA_SRC/LDF/ldfdyn_c1d.h90 @ 3

Last change on this file since 3 was 3, checked in by opalod, 20 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1   !!----------------------------------------------------------------------
2   !!                     ***  ldfdyn_c1d.h90  ***
3   !!----------------------------------------------------------------------
4
5   !!----------------------------------------------------------------------
6   !!   OPA 9.0 , LODYC-IPSL  (2003)
7   !!----------------------------------------------------------------------
8
9   SUBROUTINE ldf_dyn_c1d( ld_print )
10      !!----------------------------------------------------------------------
11      !!                  ***  ROUTINE ldf_dyn_c1d  ***
12      !!                   
13      !! ** Purpose :   initializations of the horizontal ocean physics
14      !!
15      !! ** Method  :   1D eddy viscosity coefficients ( depth )
16      !!      ahm3, ahm4 never used
17      !!      biharmonic or harmonic operator : ahm1=ahm2 defined at T-level
18      !!      isopycnal or geopotential harmonic operator
19      !!                                      : ahm1 defined at T-level
20      !!                                      : ahm2 defined at w-level
21      !!
22      !!----------------------------------------------------------------------
23      !! * Arguments
24      LOGICAL, INTENT (in) :: ld_print   ! If true, output arrays on numout
25
26      !! * Local variables
27      REAL(wp) ::   zdam, zwam, zm00, zm01, zmhf, zmhs
28      REAL(wp) ::   zahmf, zahms
29      !!----------------------------------------------------------------------
30
31      IF(lwp) WRITE(numout,*)
32      IF(lwp) WRITE(numout,*) 'inildf: 1D eddy viscosity coefficient'
33      IF(lwp) WRITE(numout,*) '~~~~~~  --'
34      IF(lwp) WRITE(numout,*)
35
36      ! Set ahm1=ahm2   (always at t-level)
37      ! =============
38      ! (USER: modify ahm1 following your desiderata)
39
40      ! initialization of the profile
41      ! ahms, ahmf: surface and bottom values
42      zahms = ahm0
43      zahmf = ahm0/4.
44      ! zdam, zwam: depth of the inflection pt and width of inflection
45      zdam  = -300.
46      zwam  =  300.
47      ! computation coefficients
48      zm00 = TANH( (0-zdam)/zwam )
49      zm01 = TANH( (-fsdept(1,1,jpk)-zdam)/zwam )
50      zmhf = (zahms-zahmf)/(zm00-zm01)
51      zmhs = zahms-zmhf * zm00
52
53      ! set ahm1=ahm2 at T-level
54      DO jk = 1, jpk
55         ahm1(jk) = zmhs + zmhf * TANH( (-fsdept(1,1,jk)-zdam) / zwam )
56         ahm2(jk) = ahm1(jk)
57      END DO
58
59      ! Control print
60      IF(lwp .AND. ld_print ) THEN
61         WRITE(numout,*)
62         WRITE(numout,*) '         ahm profile : '
63         WRITE(numout,*)
64         WRITE(numout,9100)
65         DO jk = 1, jpk
66            WRITE(numout,9110) jk, ahm1(jk), fsdept(1,1,jk)
67         END DO
68      ENDIF
69 9100 FORMAT('  jk      ahm       ','  depth t-level ' )
70 9110 FORMAT(i6,2f12.4,3x,2f12.4)
71
72
73      ! Set ahm3=ahm4   (always defined at w-level)
74      ! =============
75
76      ! define ahm3 from the same vertical profile used for ahm4
77      ! (always defined at w-level)
78      ! (USER: modify ahm1 following your desiderata)
79
80      DO jk = 1, jpk
81         ahm3(jk) = zmhs + zmhf * TANH( (-fsdepw(1,1,jk)-zdam) / zwam )
82         ahm4(jk) = ahm3(jk)
83      END DO
84
85      ! Control print
86      IF(lwp .AND. ld_print ) THEN
87         WRITE(numout,*)
88         WRITE(numout,*) '         ahm3=ahm4 profile : '
89         WRITE(numout,*)
90         WRITE(numout,9120)
91         DO jk = 1, jpk
92            WRITE(numout,9110) jk, ahm3(jk), fsdepw(1,1,jk)
93         END DO
94      ENDIF
95 9120 FORMAT('  jk      ahm       ','  depth w-level ' )
96
97   END SUBROUTINE ldf_dyn_c1d
Note: See TracBrowser for help on using the repository browser.