source: branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_c3d.h90 @ 10774

Last change on this file since 10774 was 10774, checked in by andmirek, 19 months ago

GMED 450 add flush after prints

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