- Timestamp:
- 2020-11-10T12:57:08+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_12905_xios_ancil
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_ancil
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/domzgr.F90
r13016 r13766 75 75 INTEGER :: ioptio, ibat, ios ! local integer 76 76 REAL(wp) :: zrefdep ! depth of the reference level (~10m) 77 REAL(wp), DIMENSION(jpi,jpj) :: zmsk 77 78 !!---------------------------------------------------------------------- 78 79 ! … … 109 110 ! 110 111 ENDIF 112 ! 113 ! the following is mandatory 114 ! make sure that closed boundaries are correctly defined in k_top that will be used to compute all mask arrays 115 ! 116 zmsk(:,:) = 1._wp ! default: no closed boundaries 117 IF( jperio == 0 .OR. jperio == 2 .OR. jperio == 3 .OR. jperio == 5 ) THEN ! E-W closed 118 zmsk( mi0( 1+nn_hls):mi1( 1+nn_hls),:) = 0._wp ! first column of inner global domain at 0 119 zmsk( mi0(jpiglo-nn_hls):mi1(jpiglo-nn_hls),:) = 0._wp ! last column of inner global domain at 0 120 ENDIF 121 IF( .NOT. ( jperio == 2 .OR. jperio == 7 ) ) THEN ! S closed 122 zmsk(:,mj0( 1+nn_hls):mj1( 1+nn_hls) ) = 0._wp ! first line of inner global domain at 0 123 ENDIF 124 IF( jperio == 0 .OR. jperio == 1 ) THEN ! N closed 125 zmsk(:,mj0(jpjglo-nn_hls):mj1(jpjglo-nn_hls) ) = 0._wp ! last line of inner global domain at 0 126 ENDIF 127 CALL lbc_lnk( 'usrdef_zgr', zmsk, 'T', 1. ) ! set halos 128 k_top(:,:) = k_top(:,:) * NINT( zmsk(:,:) ) 111 129 ! 112 130 !!gm to be remove when removing the OLD definition of e3 scale factors so that gde3w disappears … … 150 168 ! 151 169 ! ! ice shelf draft and bathymetry 152 DO_2D _11_11170 DO_2D( 1, 1, 1, 1 ) 153 171 ikt = mikt(ji,jj) 154 172 ikb = mbkt(ji,jj) … … 164 182 !!gm end bug 165 183 ! 166 IF( nprint == 1 .AND.lwp ) THEN184 IF( lwp ) THEN 167 185 WRITE(numout,*) ' MIN val k_top ', MINVAL( k_top(:,:) ), ' MAX ', MAXVAL( k_top(:,:) ) 168 186 WRITE(numout,*) ' MIN val k_bot ', MINVAL( k_bot(:,:) ), ' MAX ', MAXVAL( k_bot(:,:) ) … … 238 256 CALL iom_get( inum, jpdom_unknown, 'e3w_1d' , pe3w_1d, ldxios = lcfg_xios ) 239 257 ! 240 CALL iom_get( inum, jpdom_ data, 'e3t_0' , pe3t , lrowattr=ln_use_jattr, ldxios = lcfg_xios) ! 3D coordinate241 CALL iom_get( inum, jpdom_ data, 'e3u_0' , pe3u , lrowattr=ln_use_jattr, ldxios = lcfg_xios)242 CALL iom_get( inum, jpdom_ data, 'e3v_0' , pe3v , lrowattr=ln_use_jattr, ldxios = lcfg_xios)243 CALL iom_get( inum, jpdom_ data, 'e3f_0' , pe3f , lrowattr=ln_use_jattr, ldxios = lcfg_xios)244 CALL iom_get( inum, jpdom_ data, 'e3w_0' , pe3w , lrowattr=ln_use_jattr, ldxios = lcfg_xios)245 CALL iom_get( inum, jpdom_ data, 'e3uw_0' , pe3uw , lrowattr=ln_use_jattr, ldxios = lcfg_xios)246 CALL iom_get( inum, jpdom_ data, 'e3vw_0' , pe3vw , lrowattr=ln_use_jattr, ldxios = lcfg_xios)258 CALL iom_get( inum, jpdom_global, 'e3t_0' , pe3t , cd_type = 'T', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) ! 3D coordinate 259 CALL iom_get( inum, jpdom_global, 'e3u_0' , pe3u , cd_type = 'U', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 260 CALL iom_get( inum, jpdom_global, 'e3v_0' , pe3v , cd_type = 'V', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 261 CALL iom_get( inum, jpdom_global, 'e3f_0' , pe3f , cd_type = 'F', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 262 CALL iom_get( inum, jpdom_global, 'e3w_0' , pe3w , cd_type = 'W', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 263 CALL iom_get( inum, jpdom_global, 'e3uw_0' , pe3uw, cd_type = 'U', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 264 CALL iom_get( inum, jpdom_global, 'e3vw_0' , pe3vw, cd_type = 'V', psgn = 1._wp, kfill = jpfillcopy, ldxios = lcfg_xios ) 247 265 ! 248 266 ! !* depths … … 256 274 CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d, ldxios = lcfg_xios ) 257 275 CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d, ldxios = lcfg_xios ) 258 CALL iom_get( inum, jpdom_ data , 'gdept_0' , pdept , lrowattr=ln_use_jattr, ldxios = lcfg_xios )259 CALL iom_get( inum, jpdom_ data , 'gdepw_0' , pdepw , lrowattr=ln_use_jattr, ldxios = lcfg_xios )276 CALL iom_get( inum, jpdom_global , 'gdept_0' , pdept, kfill = jpfillcopy, ldxios = lcfg_xios ) 277 CALL iom_get( inum, jpdom_global , 'gdepw_0' , pdepw, kfill = jpfillcopy, ldxios = lcfg_xios ) 260 278 ! 261 279 ELSE !- depths computed from e3. scale factors … … 271 289 ! 272 290 ! !* ocean top and bottom level 273 CALL iom_get( inum, jpdom_ data, 'top_level' , z2d , lrowattr=ln_use_jattr, ldxios = lcfg_xios) ! 1st wet T-points (ISF)291 CALL iom_get( inum, jpdom_global, 'top_level' , z2d, ldxios = lcfg_xios ) ! 1st wet T-points (ISF) 274 292 k_top(:,:) = NINT( z2d(:,:) ) 275 CALL iom_get( inum, jpdom_ data, 'bottom_level' , z2d , lrowattr=ln_use_jattr, ldxios = lcfg_xios) ! last wet T-points293 CALL iom_get( inum, jpdom_global, 'bottom_level' , z2d, ldxios = lcfg_xios ) ! last wet T-points 276 294 k_bot(:,:) = NINT( z2d(:,:) ) 277 295 ! … … 318 336 ! ! N.B. top k-index of W-level = mikt 319 337 ! ! bottom k-index of W-level = mbkt+1 320 DO_2D _10_10338 DO_2D( 1, 0, 1, 0 ) 321 339 miku(ji,jj) = MAX( mikt(ji+1,jj ) , mikt(ji,jj) ) 322 340 mikv(ji,jj) = MAX( mikt(ji ,jj+1) , mikt(ji,jj) ) … … 327 345 END_2D 328 346 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 329 zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1. ) ; miku(:,:) = MAX( NINT( zk(:,:) ), 1 )330 zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1. ) ; mikv(:,:) = MAX( NINT( zk(:,:) ), 1 )331 zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'F', 1. ) ; mikf(:,:) = MAX( NINT( zk(:,:) ), 1 )332 ! 333 zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1. ) ; mbku(:,:) = MAX( NINT( zk(:,:) ), 1 )334 zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1. ) ; mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 )347 zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1.0_wp ) ; miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 348 zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1.0_wp ) ; mikv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 349 zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'F', 1.0_wp ) ; mikf(:,:) = MAX( NINT( zk(:,:) ), 1 ) 350 ! 351 zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1.0_wp ) ; mbku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 352 zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1.0_wp ) ; mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 335 353 ! 336 354 END SUBROUTINE zgr_top_bot
Note: See TracChangeset
for help on using the changeset viewer.