- Timestamp:
- 2020-11-09T16:48:35+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/test_12905_xios_restart
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/test_12905_xios_restart
- 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/ r12931_sette_ticket2462@HEADsette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/test_12905_xios_restart/src/NST/agrif_ice_interp.F90
r10069 r13751 14 14 !!---------------------------------------------------------------------- 15 15 !! agrif_interp_ice : interpolation of ice at "after" sea-ice time step 16 !! agrif_interp_u_ice : atomic routine to interpolate u_ice17 !! agrif_interp_v_ice : atomic routine to interpolate v_ice18 !! agrif_interp_tra_ice : atomic routine to interpolate ice properties16 !! interp_u_ice : atomic routine to interpolate u_ice 17 !! interp_v_ice : atomic routine to interpolate v_ice 18 !! interp_tra_ice : atomic routine to interpolate ice properties 19 19 !!---------------------------------------------------------------------- 20 20 USE par_oce … … 23 23 USE ice 24 24 USE agrif_ice 25 USE agrif_oce 25 26 USE phycst , ONLY: rt0 26 27 … … 29 30 30 31 PUBLIC agrif_interp_ice ! called by agrif_user.F90 32 PUBLIC interp_tra_ice, interp_u_ice, interp_v_ice ! called by iceistate.F90 31 33 32 34 !!---------------------------------------------------------------------- … … 68 70 Agrif_SpecialValue = -9999. 69 71 Agrif_UseSpecialValue = .TRUE. 72 73 use_sign_north = .TRUE. 74 sign_north = -1. 75 if (cd_type == 'T') use_sign_north = .FALSE. 76 70 77 SELECT CASE( cd_type ) 71 78 CASE('U') ; CALL Agrif_Bc_variable( u_ice_id , procname=interp_u_ice , calledweight=zbeta ) … … 75 82 Agrif_SpecialValue = 0._wp 76 83 Agrif_UseSpecialValue = .FALSE. 84 85 use_sign_north = .FALSE. 77 86 ! 78 87 END SUBROUTINE agrif_interp_ice … … 156 165 ! and it is ok since we conserve tracers (same as in the ocean). 157 166 ALLOCATE( ztab(SIZE(a_i,1),SIZE(a_i,2),SIZE(ptab,3)) ) 158 167 159 168 IF( before ) THEN ! parent grid 160 169 jm = 1 … … 167 176 ptab(i1:i2,j1:j2,jm+5) = a_ip(i1:i2,j1:j2,jl) 168 177 ptab(i1:i2,j1:j2,jm+6) = v_ip(i1:i2,j1:j2,jl) 169 ptab(i1:i2,j1:j2,jm+7) = t_su(i1:i2,j1:j2,jl) 170 jm = jm + 8 178 ptab(i1:i2,j1:j2,jm+7) = v_il(i1:i2,j1:j2,jl) 179 ptab(i1:i2,j1:j2,jm+8) = t_su(i1:i2,j1:j2,jl) 180 jm = jm + 9 171 181 DO jk = 1, nlay_s 172 182 ptab(i1:i2,j1:j2,jm) = e_s(i1:i2,j1:j2,jk,jl) ; jm = jm + 1 … … 197 207 a_ip(ji,jj,jl) = ptab(ji,jj,jm+5) * tmask(ji,jj,1) 198 208 v_ip(ji,jj,jl) = ptab(ji,jj,jm+6) * tmask(ji,jj,1) 199 t_su(ji,jj,jl) = ptab(ji,jj,jm+7) * tmask(ji,jj,1) 209 v_il(ji,jj,jl) = ptab(ji,jj,jm+7) * tmask(ji,jj,1) 210 t_su(ji,jj,jl) = ptab(ji,jj,jm+8) * tmask(ji,jj,1) 200 211 END DO 201 212 END DO 202 jm = jm + 8213 jm = jm + 9 203 214 ! 204 215 DO jk = 1, nlay_s … … 230 241 ! ztab(:,:,jm+5) = a_ip(:,:,jl) 231 242 ! ztab(:,:,jm+6) = v_ip(:,:,jl) 232 ! ztab(:,:,jm+7) = t_su(:,:,jl) 233 ! jm = jm + 8 243 ! ztab(:,:,jm+7) = v_il(:,:,jl) 244 ! ztab(:,:,jm+8) = t_su(:,:,jl) 245 ! jm = jm + 9 234 246 ! DO jk = 1, nlay_s 235 247 ! ztab(:,:,jm) = e_s(:,:,jk,jl) … … 260 272 ! imin = i1 ; imax = i2 ; jmin = j1 ; jmax = j2 261 273 ! IF( (nbondj == -1) .OR. (nbondj == 2) ) jmin = 3 262 ! IF( (nbondj == +1) .OR. (nbondj == 2) ) jmax = nlcj-2274 ! IF( (nbondj == +1) .OR. (nbondj == 2) ) jmax = jpj-2 263 275 ! IF( (nbondi == -1) .OR. (nbondi == 2) ) imin = 3 264 ! IF( (nbondi == +1) .OR. (nbondi == 2) ) imax = nlci-2276 ! IF( (nbondi == +1) .OR. (nbondi == 2) ) imax = jpi-2 265 277 ! 266 278 ! ! smoothed fields 267 279 ! IF( eastern_side ) THEN 268 ! ztab( nlci,j1:j2,:) = z1 * ptab(nlci,j1:j2,:) + z2 * ptab(nlci-1,j1:j2,:)280 ! ztab(jpi,j1:j2,:) = z1 * ptab(jpi,j1:j2,:) + z2 * ptab(jpi-1,j1:j2,:) 269 281 ! DO jj = jmin, jmax 270 282 ! rswitch = 0. 271 ! IF( u_ice( nlci-2,jj) > 0._wp ) rswitch = 1.272 ! ztab( nlci-1,jj,:) = ( 1. - umask(nlci-2,jj,1) ) * ztab(nlci,jj,:) &273 ! & + umask(nlci-2,jj,1) * &274 ! & ( ( 1. - rswitch ) * ( z4 * ztab(nlci,jj,:) + z3 * ztab(nlci-2,jj,:) ) &275 ! & + rswitch * ( z6 * ztab(nlci-2,jj,:) + z5 * ztab(nlci,jj,:) + z7 * ztab(nlci-3,jj,:) ) )276 ! ztab( nlci-1,jj,:) = ztab(nlci-1,jj,:) * tmask(nlci-1,jj,1)283 ! IF( u_ice(jpi-2,jj) > 0._wp ) rswitch = 1. 284 ! ztab(jpi-1,jj,:) = ( 1. - umask(jpi-2,jj,1) ) * ztab(jpi,jj,:) & 285 ! & + umask(jpi-2,jj,1) * & 286 ! & ( (1. - rswitch) * ( z4 * ztab(jpi ,jj,:) + z3 * ztab(jpi-2,jj,:) ) & 287 ! & + rswitch * ( z6 * ztab(jpi-2,jj,:) + z5 * ztab(jpi ,jj,:) + z7 * ztab(jpi-3,jj,:) ) ) 288 ! ztab(jpi-1,jj,:) = ztab(jpi-1,jj,:) * tmask(jpi-1,jj,1) 277 289 ! END DO 278 290 ! ENDIF 279 291 ! ! 280 292 ! IF( northern_side ) THEN 281 ! ztab(i1:i2, nlcj,:) = z1 * ptab(i1:i2,nlcj,:) + z2 * ptab(i1:i2,nlcj-1,:)293 ! ztab(i1:i2,jpj,:) = z1 * ptab(i1:i2,jpj,:) + z2 * ptab(i1:i2,jpj-1,:) 282 294 ! DO ji = imin, imax 283 295 ! rswitch = 0. 284 ! IF( v_ice(ji, nlcj-2) > 0._wp ) rswitch = 1.285 ! ztab(ji, nlcj-1,:) = ( 1. - vmask(ji,nlcj-2,1) ) * ztab(ji,nlcj,:) &286 ! & + vmask(ji,nlcj-2,1) * &287 ! & ( ( 1. - rswitch ) * ( z4 * ztab(ji,nlcj,:) + z3 * ztab(ji,nlcj-2,:) ) &288 ! & + rswitch * ( z6 * ztab(ji,nlcj-2,:) + z5 * ztab(ji,nlcj,:) + z7 * ztab(ji,nlcj-3,:) ) )289 ! ztab(ji, nlcj-1,:) = ztab(ji,nlcj-1,:) * tmask(ji,nlcj-1,1)296 ! IF( v_ice(ji,jpj-2) > 0._wp ) rswitch = 1. 297 ! ztab(ji,jpj-1,:) = ( 1. - vmask(ji,jpj-2,1) ) * ztab(ji,jpj,:) & 298 ! & + vmask(ji,jpj-2,1) * & 299 ! & ( (1. - rswitch) * ( z4 * ztab(ji,jpj ,:) + z3 * ztab(ji,jpj-2,:) ) & 300 ! & + rswitch * ( z6 * ztab(ji,jpj-2,:) + z5 * ztab(ji,jpj ,:) + z7 * ztab(ji,jpj-3,:) ) ) 301 ! ztab(ji,jpj-1,:) = ztab(ji,jpj-1,:) * tmask(ji,jpj-1,1) 290 302 ! END DO 291 303 ! END IF … … 318 330 ! ! 319 331 ! ! Treatment of corners 320 ! IF( (eastern_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) ) ztab( nlci-1,2,:) = ptab(nlci-1,2,:)! East south321 ! IF( (eastern_side) .AND. ((nbondj == 1).OR.(nbondj == 2)) ) ztab( nlci-1,nlcj-1,:) = ptab(nlci-1,nlcj-1,:)! East north322 ! IF( (western_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) ) ztab( 2,2,:) = ptab(2,2,:)! West south323 ! IF( (western_side) .AND. ((nbondj == 1).OR.(nbondj == 2)) ) ztab( 2,nlcj-1,:) = ptab(2,nlcj-1,:)! West north332 ! IF( (eastern_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) ) ztab(jpi-1,2 ,:) = ptab(jpi-1, 2,:) ! East south 333 ! IF( (eastern_side) .AND. ((nbondj == 1).OR.(nbondj == 2)) ) ztab(jpi-1,jpj-1,:) = ptab(jpi-1,jpj-1,:) ! East north 334 ! IF( (western_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) ) ztab( 2, 2,:) = ptab( 2, 2,:) ! West south 335 ! IF( (western_side) .AND. ((nbondj == 1).OR.(nbondj == 2)) ) ztab( 2,jpj-1,:) = ptab( 2,jpj-1,:) ! West north 324 336 ! 325 337 ! ! retrieve ice tracers … … 336 348 ! a_ip(ji,jj,jl) = ztab(ji,jj,jm+5) * tmask(ji,jj,1) 337 349 ! v_ip(ji,jj,jl) = ztab(ji,jj,jm+6) * tmask(ji,jj,1) 338 ! t_su(ji,jj,jl) = ztab(ji,jj,jm+7) * tmask(ji,jj,1) 350 ! v_il(ji,jj,jl) = ztab(ji,jj,jm+7) * tmask(ji,jj,1) 351 ! t_su(ji,jj,jl) = ztab(ji,jj,jm+8) * tmask(ji,jj,1) 339 352 ! END DO 340 353 ! END DO 341 ! jm = jm + 8354 ! jm = jm + 9 342 355 ! ! 343 356 ! DO jk = 1, nlay_s
Note: See TracChangeset
for help on using the changeset viewer.