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

source: trunk/NEMO/OPA_SRC/LDF/ldftra_c3d.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: 5.2 KB
Line 
1   !!----------------------------------------------------------------------
2   !!                        ***  ldftra_c3d.h90  ***
3   !!----------------------------------------------------------------------
4
5   !!----------------------------------------------------------------------
6   !!   OPA 9.0 , LODYC-IPSL  (2003)
7   !!----------------------------------------------------------------------
8
9   SUBROUTINE ldf_tra_c3d( ld_print )
10      !!----------------------------------------------------------------------
11      !!                 ***  ROUTINE ldftra_c3d  ***
12      !!               
13      !! ** Purpose :
14      !!     initializations of non uniform horizontal eddy diffusivity coef.
15      !!
16      !! ** Method :
17      !!      3D eddy diffusivity coefficients ( longitude, latitude, depth )
18      !!
19      !!       biharmonic operator    : ahtt = defined at T-level
20      !!                                ahtu,ahtv,ahtw never used
21      !!
22      !!       harmonic operator (ahtt never used)
23      !!         iso-model level   : ahtu, ahtv defined at u-, v-points
24      !!         isopycnal         : ahtu, ahtv, ahtw defined at u-, v-, w-pts
25      !!         or geopotential
26      !!
27      !!       eddy induced velocity
28      !!         always harmonic   : aeiu, aeiv, aeiw defined at u-, v-, w-pts
29      !!
30      !!----------------------------------------------------------------------
31      !! * Modules used
32      USE ioipsl
33
34      !! * Arguments
35      LOGICAL, INTENT (in) :: ld_print   ! If true, output arrays on numout
36
37      !! * Local declarations
38      INTEGER ::   ji, jj, jk                   ! dummy loop indices
39      !!----------------------------------------------------------------------
40
41      IF( lk_traldf_eiv ) THEN
42         IF(lwp) WRITE(numout,*)
43         IF(lwp) WRITE(numout,*) ' inildf : 3D eddy diffusivity and eddy induced velocity coefficients'
44         IF(lwp) WRITE(numout,*) ' ~~~~~~   --  '
45         IF(lwp) WRITE(numout,*)
46      ELSE
47         IF(lwp) WRITE(numout,*)
48         IF(lwp) WRITE(numout,*) ' inildf : 3D eddy diffusivity coefficient'
49         IF(lwp) WRITE(numout,*) ' ~~~~~~   -- '
50         IF(lwp) WRITE(numout,*)
51      ENDIF
52
53
54      ! biharmonic operator   (T-point)
55      ! -------------------
56
57      ahtt(:,:,:) = aht0              ! set ahtt at T-point (here no space variation)
58
59      CALL lbc_lnk( ahtt, 'T', 1. )   ! Lateral boundary conditions on ( ahtt )
60
61      IF(lwp .AND. ld_print ) THEN                    ! Control print
62         WRITE(numout,*)
63         WRITE(numout,*) 'inildf: ahtt at k = 1'
64         CALL prihre( ahtt(:,:,1), jpi, jpj, 1, jpi, 1,   &
65            &                                1, jpj, 1, 1.e-3, numout )
66      ENDIF
67
68
69      ! harmonic operator   (U-, V-, W-points)
70      ! -----------------
71
72      ahtu(:,:,:) = aht0              ! set ahtu = ahtv at u- and v-points,
73      ahtv(:,:,:) = aht0              ! and ahtw at w-point
74      ahtw(:,:,:) = aht0              ! (here example: no space variation)
75     
76      CALL lbc_lnk( ahtu, 'U', 1. )   ! Lateral boundary conditions
77      CALL lbc_lnk( ahtv, 'V', 1. )
78      CALL lbc_lnk( ahtw, 'W', 1. )
79
80      IF(lwp .AND. ld_print ) THEN                    ! Control print
81         WRITE(numout,*)
82         WRITE(numout,*) 'inildf: ahtu at k = 1'
83         CALL prihre( ahtu(:,:,1), jpi, jpj, 1, jpi, 1,   &
84            &                                1, jpj, 1, 1.e-3, numout )
85         WRITE(numout,*)
86         WRITE(numout,*) 'inildf: ahtv at k = 1'
87         CALL prihre( ahtv(:,:,1), jpi, jpj, 1, jpi, 1,   &
88            &                                1, jpj, 1, 1.e-3, numout )
89         WRITE(numout,*)
90         WRITE(numout,*) 'inildf: ahtw at k = 1'
91         CALL prihre( ahtw(:,:,1), jpi, jpj, 1, jpi, 1,   &
92            &                                1, jpj, 1, 1.e-3, numout )
93      ENDIF
94
95# if defined key_traldf_eiv
96      aeiu(:,:,:) = aeiv0            ! set aeiu = aeiv at u- and v-points,
97      aeiv(:,:,:) = aeiv0            ! and aeiw at w-point
98      aeiw(:,:,:) = aeiv0            ! (here example: no space variation)
99
100      IF( cp_cfg == "orca" .AND. jp_cfg == 4 ) THEN
101         !                                 ! Cancel eiv in Gibraltar strait
102         aeiu( mi0(68):mi1(71) , mj0(50):mj1(53) , : ) = 0.e0
103         aeiv( mi0(68):mi1(71) , mj0(50):mj1(53) , : ) = 0.e0
104         aeiw( mi0(68):mi1(71) , mj0(50):mj1(53) , : ) = 0.e0
105         !                                 ! Cancel eiv in Mediterrannean sea
106         aeiu( mi0(70):mi1(90) , mj0(49):mj1(56) , : ) = 0.e0
107         aeiv( mi0(70):mi1(90) , mj0(49):mj1(56) , : ) = 0.e0
108         aeiw( mi0(70):mi1(90) , mj0(49):mj1(56) , : ) = 0.e0
109      ENDIF
110
111      CALL lbc_lnk( aeiu, 'U', 1. )   ! Lateral boundary conditions
112      CALL lbc_lnk( aeiv, 'V', 1. )
113      CALL lbc_lnk( aeiw, 'W', 1. )
114# endif
115
116      IF(lwp .AND. ld_print ) THEN
117         WRITE(numout,*)
118         WRITE(numout,*) 'inildf: aeiu at k = 1'
119         CALL prihre(aeiu(:,:,1),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout)
120         WRITE(numout,*)
121         WRITE(numout,*) 'inildf: aeiv at k = 1'
122         CALL prihre(aeiv(:,:,1),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout)
123         WRITE(numout,*)
124         WRITE(numout,*) 'inildf: aeiw at k = 1'
125         CALL prihre(aeiw(:,:,1),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout)
126      ENDIF
127
128END SUBROUTINE ldf_tra_c3d
Note: See TracBrowser for help on using the repository browser.