- Timestamp:
- 2020-02-28T11:26:52+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/DOM/dom_oce.F90
r12377 r12482 2 2 !!====================================================================== 3 3 !! *** MODULE dom_oce *** 4 !! 4 !! 5 5 !! ** Purpose : Define in memory all the ocean space domain variables 6 6 !!====================================================================== 7 !! History : 1.0 ! 2005-10 (A. Beckmann, G. Madec) reactivate s-coordinate 7 !! History : 1.0 ! 2005-10 (A. Beckmann, G. Madec) reactivate s-coordinate 8 8 !! 3.3 ! 2010-11 (G. Madec) add mbk. arrays associated to the deepest ocean level 9 9 !! 3.4 ! 2011-01 (A. R. Porter, STFC Daresbury) dynamical allocation … … 13 13 !! - ! 2015-11 (G. Madec, A. Coward) time varying zgr by default 14 14 !! 4.1 ! 2019-08 (A. Coward, D. Storkey) rename prognostic variables in preparation for new time scheme. 15 !! 4.x ! 2020-02 (G. Madec, S. Techene) introduce ssh to h0 ratio 15 16 !!---------------------------------------------------------------------- 16 17 … … 72 73 ! ! = 6 cyclic East-West AND North fold F-point pivot 73 74 ! ! = 7 bi-cyclic East-West AND North-South 74 LOGICAL, PUBLIC :: l_Iperio, l_Jperio ! should we explicitely take care I/J periodicity 75 LOGICAL, PUBLIC :: l_Iperio, l_Jperio ! should we explicitely take care I/J periodicity 75 76 76 77 ! ! domain MPP decomposition parameters … … 82 83 INTEGER, ALLOCATABLE, PUBLIC :: nbondi_bdy(:) !: mark i-direction local boundaries for BDY open boundaries 83 84 INTEGER, ALLOCATABLE, PUBLIC :: nbondj_bdy(:) !: mark j-direction local boundaries for BDY open boundaries 84 INTEGER, ALLOCATABLE, PUBLIC :: nbondi_bdy_b(:) !: mark i-direction of neighbours local boundaries for BDY open boundaries 85 INTEGER, ALLOCATABLE, PUBLIC :: nbondj_bdy_b(:) !: mark j-direction of neighbours local boundaries for BDY open boundaries 85 INTEGER, ALLOCATABLE, PUBLIC :: nbondi_bdy_b(:) !: mark i-direction of neighbours local boundaries for BDY open boundaries 86 INTEGER, ALLOCATABLE, PUBLIC :: nbondj_bdy_b(:) !: mark j-direction of neighbours local boundaries for BDY open boundaries 86 87 87 88 INTEGER, PUBLIC :: npolj !: north fold mark (0, 3 or 4) … … 127 128 LOGICAL, PUBLIC :: ln_zps !: z-coordinate - partial step 128 129 LOGICAL, PUBLIC :: ln_sco !: s-coordinate or hybrid z-s coordinate 129 LOGICAL, PUBLIC :: ln_isfcav !: presence of ISF 130 LOGICAL, PUBLIC :: ln_isfcav !: presence of ISF 130 131 ! ! reference scale factors 131 132 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3t_0 !: t- vert. scale factor [m] … … 139 140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e3t, e3u, e3v, e3w, e3uw, e3vw !: vert. scale factor [m] 140 141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3f !: F-point vert. scale factor [m] 142 ! ! time-dependent ratio ssh / h_0 143 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: r3t, r3u, r3v !: [-] 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: r3f !: [-] 145 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: r3t_f, r3u_f, r3v_f !: [-] 141 146 142 147 ! ! reference depths of cells … … 145 150 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gde3w_0 !: w- depth (sum of e3w) [m] 146 151 ! ! time-dependent depths of cells 147 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: gdept, gdepw 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gde3w 149 152 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: gdept, gdepw 153 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gde3w 154 150 155 ! ! reference heights of water column 151 156 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht_0 !: t-depth [m] 152 157 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hu_0 !: u-depth [m] 153 158 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hv_0 !: v-depth [m] 159 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hf_0 !: f-depth [m] 160 ! ! reciprocal reference heights of water column 161 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: r1_ht_0, r1_hu_0, r1_hv_0, r1_hf_0 !: t-depth [1/m] 154 162 ! time-dependent heights of water column 155 163 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht !: height of water column at T-points [m] … … 157 165 158 166 INTEGER, PUBLIC :: nla10 !: deepest W level Above ~10m (nlb10 - 1) 159 INTEGER, PUBLIC :: nlb10 !: shallowest W level Bellow ~10m (nla10 + 1) 167 INTEGER, PUBLIC :: nlb10 !: shallowest W level Bellow ~10m (nla10 + 1) 160 168 161 169 !! 1D reference vertical coordinate … … 179 187 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mikt, miku, mikv, mikf !: top first wet T-, U-, V-, F-level (ISF) 180 188 181 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssmask, ssumask, ssvmask 189 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssmask, ssumask, ssvmask, ssfmask !: surface mask at T-,U-, V- and F-pts 182 190 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: tmask, umask, vmask, fmask !: land/ocean mask at T-, U-, V- and F-pts 183 191 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: wmask, wumask, wvmask !: land/ocean mask at WT-, WU- and WV-pts … … 199 207 INTEGER , PUBLIC :: nsec_monday !: seconds between 00h of the last Monday and half of the current time step 200 208 INTEGER , PUBLIC :: nsec_day !: seconds between 00h of the current day and half of the current time step 201 REAL(wp), PUBLIC :: fjulday !: current julian day 209 REAL(wp), PUBLIC :: fjulday !: current julian day 202 210 REAL(wp), PUBLIC :: fjulstartyear !: first day of the current year in julian days 203 211 REAL(wp), PUBLIC :: adatrj !: number of elapsed days since the begining of the whole simulation … … 221 229 !!---------------------------------------------------------------------- 222 230 !! NEMO/OCE 4.0 , NEMO Consortium (2018) 223 !! $Id$ 231 !! $Id$ 224 232 !! Software governed by the CeCILL license (see ./LICENSE) 225 233 !!---------------------------------------------------------------------- … … 235 243 236 244 CHARACTER(len=3) FUNCTION Agrif_CFixed() 237 Agrif_CFixed = '0' 245 Agrif_CFixed = '0' 238 246 END FUNCTION Agrif_CFixed 239 247 #endif … … 266 274 ! 267 275 ALLOCATE( e3t_0(jpi,jpj,jpk) , e3u_0(jpi,jpj,jpk) , e3v_0(jpi,jpj,jpk) , e3f_0(jpi,jpj,jpk) , e3w_0(jpi,jpj,jpk) , & 268 & e3t (jpi,jpj,jpk,jpt) , e3u (jpi,jpj,jpk,jpt) , e3v (jpi,jpj,jpk,jpt) , e3f (jpi,jpj,jpk) , e3w (jpi,jpj,jpk,jpt) , & 276 & e3t (jpi,jpj,jpk,jpt) , e3u (jpi,jpj,jpk,jpt) , e3v (jpi,jpj,jpk,jpt) , e3f (jpi,jpj,jpk) , e3w (jpi,jpj,jpk,jpt) , & 269 277 & e3uw_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) , & 270 & e3uw (jpi,jpj,jpk,jpt) , e3vw (jpi,jpj,jpk,jpt) , STAT=ierr(5) ) 271 ! 272 ALLOCATE( ht_0(jpi,jpj) , hu_0(jpi,jpj) , hv_0(jpi,jpj) , & 273 & ht (jpi,jpj) , hu( jpi,jpj,jpt), hv( jpi,jpj,jpt) , r1_hu(jpi,jpj,jpt) , r1_hv(jpi,jpj,jpt) , & 274 & STAT=ierr(6) ) 278 & e3uw (jpi,jpj,jpk,jpt) , e3vw (jpi,jpj,jpk,jpt) , & 279 & r3t (jpi,jpj,jpt) , r3u (jpi,jpj,jpt) , r3v (jpi,jpj,jpt) , r3f (jpi,jpj) , & 280 & r3t_f(jpi,jpj) , r3u_f(jpi,jpj) , r3v_f(jpi,jpj) , STAT=ierr(5) ) 281 ! 282 ALLOCATE( ht_0(jpi,jpj) , hu_0(jpi,jpj) , hv_0(jpi,jpj) , hf_0(jpi,jpj) , & 283 & ht (jpi,jpj) , hu (jpi,jpj,jpt), hv (jpi,jpj,jpt) , & 284 & r1_hu (jpi,jpj,jpt), r1_hv (jpi,jpj,jpt) , & 285 & r1_ht_0(jpi,jpj) , r1_hu_0(jpi,jpj) , r1_hv_0(jpi,jpj), r1_hf_0(jpi,jpj) , STAT=ierr(6) ) 275 286 ! 276 287 ALLOCATE( risfdep(jpi,jpj) , bathy(jpi,jpj) , STAT=ierr(7) ) … … 278 289 ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) , e3t_1d(jpk) , e3w_1d(jpk) , STAT=ierr(8) ) 279 290 ! 280 ALLOCATE( tmask_i(jpi,jpj) , tmask_h(jpi,jpj) , & 281 & ssmask (jpi,jpj) , ssumask(jpi,jpj) , ssvmask(jpi,jpj) , &291 ALLOCATE( tmask_i(jpi,jpj) , tmask_h(jpi,jpj) , & 292 & ssmask (jpi,jpj) , ssumask(jpi,jpj) , ssvmask(jpi,jpj) , ssfmask(jpi,jpj) , & 282 293 & mbkt (jpi,jpj) , mbku (jpi,jpj) , mbkv (jpi,jpj) , STAT=ierr(9) ) 283 294 ! 284 295 ALLOCATE( mikt(jpi,jpj), miku(jpi,jpj), mikv(jpi,jpj), mikf(jpi,jpj), STAT=ierr(10) ) 285 296 ! 286 ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk) , & 297 ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk) , & 287 298 & vmask(jpi,jpj,jpk) , fmask(jpi,jpj,jpk) , STAT=ierr(11) ) 288 299 !
Note: See TracChangeset
for help on using the changeset viewer.