File indexing completed on 2023-09-21 05:10:47 UTC
view on githubraw file Latest commit 96b00645 on 2023-09-20 15:15:14 UTC
5ca83cd8f7 Dani*0001 #include "STREAMICE_OPTIONS.h"
4f9d447bf7 Jean*0002 #ifdef ALLOW_AUTODIFF
0003 # include "AUTODIFF_OPTIONS.h"
0004 #endif
5ca83cd8f7 Dani*0005
0006
0007
0008
0009 SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step )
0010
73e21ff944 Jean*0011
0012
5ca83cd8f7 Dani*0013
73e21ff944 Jean*0014
5ca83cd8f7 Dani*0015
73e21ff944 Jean*0016
5ca83cd8f7 Dani*0017 IMPLICIT NONE
0018
0019
0020 #include "SIZE.h"
0021 #include "GRID.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
0024 #include "STREAMICE.h"
0025 #include "STREAMICE_ADV.h"
0026 #ifdef ALLOW_AUTODIFF_TAMC
0027 # include "tamc.h"
0028 #endif
e005a328fc Dani*0029 #ifdef ALLOW_SHELFICE
0030 # include "SHELFICE.h"
0031 #endif
5ca83cd8f7 Dani*0032
0033 INTEGER myThid, myIter
0034 _RL time_step
0035
0036 #ifdef ALLOW_STREAMICE
0037
96b006450c dngo*0038 INTEGER i, j, bi, bj, Gi, Gj
0039 _RL uflux, vflux, max_icfl, loc_icfl
5ca83cd8f7 Dani*0040 _RL time_step_full, time_step_rem
e005a328fc Dani*0041 _RL sec_per_year, time_step_loc, MR, SMB, TMB, irho
96b006450c dngo*0042 _RL bdot_depth, bdot_max
5ca83cd8f7 Dani*0043 _RL BCVALX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0044 _RL BCVALY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0045 _RS BCMASKX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0046 _RS BCMASKY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0047 _RL utrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0048 _RL vtrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0049 _RL h_after_uflux_SI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0050 _RL h_after_vflux_SI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0051 _RL hflux_x_SI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0052 _RL hflux_y_SI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
73e21ff944 Jean*0053
5ca83cd8f7 Dani*0054 CHARACTER*(MAX_LEN_MBUF) msgBuf
0055
615a93f300 Dani*0056 CALL TIMER_START ('STREAMICE_ADVECT_THICKNESS',myThid)
0057
5ca83cd8f7 Dani*0058 sec_per_year = 365.*86400.
0059
0060 time_step_loc = time_step / sec_per_year
0061 time_step_full = time_step_loc
0062 time_step_rem = time_step_loc
0063 PRINT *, "time_step_loc ", time_step_loc
0064
0065 #ifdef ALLOW_AUTODIFF_TAMC
96b006450c dngo*0066
0067
0068
5ca83cd8f7 Dani*0069 #endif
0070
d82c08285f Dani*0071 #ifdef ALLOW_OPENAD
0072 DO k=1,streamice_smooth_thick_adjoint
0073 CALL STREAMICE_SMOOTH_ADJOINT_FIELD (
0074 O H_streamice,
0075 I myThid)
0076 ENDDO
0077 #endif
0078
96b006450c dngo*0079 #ifdef ALLOW_AUTODIFF_TAMC
0080
0081 #endif
5ca83cd8f7 Dani*0082 DO bj=myByLo(myThid),myByHi(myThid)
0083 DO bi=myBxLo(myThid),myBxHi(myThid)
0084 DO j=1,sNy+1
0085 DO i=1,sNx+1
0086
73e21ff944 Jean*0087 H_streamice_prev(i,j,bi,bj) =
5ca83cd8f7 Dani*0088 & H_streamice(i,j,bi,bj)
0089
0090 hflux_x_SI (i,j,bi,bj) = 0. _d 0
0091 hflux_y_SI (i,j,bi,bj) = 0. _d 0
0fbff46b46 dngo*0092
c2f4034916 Dani*0093 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
0094 h_after_uflux_SI(i,j,bi,bj) = 0. _d 0
0095 h_after_vflux_SI(i,j,bi,bj) = 0. _d 0
0096 ELSE
0097 h_after_uflux_SI(i,j,bi,bj) = H_streamice(i,j,bi,bj)
0098 h_after_vflux_SI(i,j,bi,bj) = H_streamice(i,j,bi,bj)
0099 ENDIF
5ca83cd8f7 Dani*0100
0101 IF (STREAMICE_ufacemask(i,j,bi,bj).eq.3.0) THEN
0102 BCMASKX(i,j,bi,bj) = 3.0
0103 BCVALX(i,j,bi,bj) = h_ubdry_values_SI(i,j,bi,bj)
0fbff46b46 dngo*0104 IF (STREAMICE_vel_ext_cgrid) THEN
0105 utrans(i,j,bi,bj) = u_streamice_ext(i,j,bi,bj)
0106 ELSEIF (STREAMICE_vel_ext) THEN
0107 utrans(i,j,bi,bj) = .5 * (
0108 & u_streamice_ext(i,j,bi,bj)+u_streamice_ext(i,j+1,bi,bj))
0109 ELSE
0110 utrans(i,j,bi,bj) = .5 * (
0111 & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj))
0112 ENDIF
5ca83cd8f7 Dani*0113 ELSEIF (STREAMICE_ufacemask(i,j,bi,bj).eq.4.0) THEN
d0c49e8a51 Dani*0114 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
0115 uflux = u_flux_bdry_SI(i,j,bi,bj)
0116 BCMASKX(i,j,bi,bj) = 3.0
0117 BCVALX(i,j,bi,bj) = uflux
0118 utrans(i,j,bi,bj) = 1.0
8c63934cfa Dani*0119 ELSEIF (STREAMICE_hmask(i-1,j,bi,bj).eq.1.0) THEN
d0c49e8a51 Dani*0120 uflux = u_flux_bdry_SI(i,j,bi,bj)
0121 BCMASKX(i,j,bi,bj) = 3.0
0122 BCVALX(i,j,bi,bj) = uflux
0123 utrans(i,j,bi,bj) = -1.0
0124 ENDIF
5ca83cd8f7 Dani*0125 ELSEIF (.not.(
0126 & STREAMICE_hmask(i,j,bi,bj).eq.1.0.OR.
0127 & STREAMICE_hmask(i-1,j,bi,bj).eq.1.0)) THEN
0128 BCMASKX(i,j,bi,bj) = 0.0
0129 BCVALX(i,j,bi,bj) = 0. _d 0
0130 utrans(i,j,bi,bj) = 0. _d 0
0131 ELSE
0132 BCMASKX(i,j,bi,bj) = 0.0
0133 BCVALX(i,j,bi,bj) = 0. _d 0
0fbff46b46 dngo*0134 IF (STREAMICE_vel_ext_cgrid) THEN
0135 utrans(i,j,bi,bj) = u_streamice_ext(i,j,bi,bj)
0136 ELSEIF (STREAMICE_vel_ext) THEN
0137 utrans(i,j,bi,bj) = .5 * (
0138 & u_streamice_ext(i,j,bi,bj)+u_streamice_ext(i,j+1,bi,bj))
0139 ELSE
0140 utrans(i,j,bi,bj) = .5 * (
0141 & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj))
0142 ENDIF
5ca83cd8f7 Dani*0143 ENDIF
0144
0145 IF (STREAMICE_vfacemask(i,j,bi,bj).eq.3.0) THEN
0146 BCMASKy(i,j,bi,bj) = 3.0
0147 BCVALy(i,j,bi,bj) = h_vbdry_values_SI(i,j,bi,bj)
0fbff46b46 dngo*0148 IF (STREAMICE_vel_ext_cgrid) THEN
0149 vtrans(i,j,bi,bj) = v_streamice_ext(i,j,bi,bj)
0150 ELSEIF (STREAMICE_vel_ext) THEN
0151 vtrans(i,j,bi,bj) = .5 * (
0152 & v_streamice_ext(i,j,bi,bj)+v_streamice_ext(i+1,j,bi,bj))
0153 ELSE
0154 vtrans(i,j,bi,bj) = .5 * (
0155 & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj))
0156 ENDIF
5ca83cd8f7 Dani*0157 ELSEIF (STREAMICE_vfacemask(i,j,bi,bj).eq.4.0) THEN
d0c49e8a51 Dani*0158 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
0159 vflux = v_flux_bdry_SI(i,j,bi,bj)
0160 BCMASKY(i,j,bi,bj) = 3.0
0161 BCVALY(i,j,bi,bj) = vflux
0162 vtrans(i,j,bi,bj) = 1.0
8c63934cfa Dani*0163 ELSEIF (STREAMICE_hmask(i,j-1,bi,bj).eq.1.0) THEN
d0c49e8a51 Dani*0164 vflux = v_flux_bdry_SI(i,j,bi,bj)
0165 BCMASKY(i,j,bi,bj) = 3.0
0166 BCVALY(i,j,bi,bj) = vflux
0167 vtrans(i,j,bi,bj) = -1.0
0168 ENDIF
5ca83cd8f7 Dani*0169 ELSEIF (.not.(
0170 & STREAMICE_hmask(i,j,bi,bj).eq.1.0.OR.
0171 & STREAMICE_hmask(i,j-1,bi,bj).eq.1.0)) THEN
0172 BCMASKY(i,j,bi,bj) = 0.0
0173 BCVALY(i,j,bi,bj) = 0. _d 0
0174 vtrans(i,j,bi,bj) = 0. _d 0
0175 ELSE
0176 BCMASKy(i,j,bi,bj) = 0.0
0177 BCVALy(i,j,bi,bj) = 0. _d 0
0fbff46b46 dngo*0178 IF (STREAMICE_vel_ext_cgrid) THEN
0179 vtrans(i,j,bi,bj) = v_streamice_ext(i,j,bi,bj)
0180 ELSEIF (STREAMICE_vel_ext) THEN
0181 vtrans(i,j,bi,bj) = .5 * (
0182 & v_streamice_ext(i,j,bi,bj)+v_streamice_ext(i+1,j,bi,bj))
0183 ELSE
0184 vtrans(i,j,bi,bj) = .5 * (
0185 & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj))
0186 ENDIF
5ca83cd8f7 Dani*0187 ENDIF
0188
0189 ENDDO
0190 ENDDO
0191 ENDDO
0192 ENDDO
0193
0194 _EXCH_XY_RL(utrans,myThid)
0195 _EXCH_XY_RL(vtrans,myThid)
0196 _EXCH_XY_RS(BCMASKx,myThid)
0197 _EXCH_XY_RS(BCMASKy,myThid)
0198 _EXCH_XY_RL(BCVALX,myThid)
0199 _EXCH_XY_RL(BCVALY,myThid)
bdd8102d3e Dani*0200 _EXCH_XY_RL(h_after_uflux_SI,myThid)
0201 _EXCH_XY_RL(h_after_vflux_SI,myThid)
85b328ee93 dngo*0202 _EXCH_XY_RL(hflux_x_SI,myThid)
0203 _EXCH_XY_RL(hflux_y_SI,myThid)
5ca83cd8f7 Dani*0204
96b006450c dngo*0205 #ifdef ALLOW_AUTODIFF_TAMC
0206
0207
0208
0209
0210
0211 #endif
0212
4f9d447bf7 Jean*0213 #ifndef ALLOW_AUTODIFF
5ca83cd8f7 Dani*0214
0215 max_icfl = 1.e-20
0216
0217 DO bj=myByLo(myThid),myByHi(myThid)
0218 DO bi=myBxLo(myThid),myBxHi(myThid)
0219 DO j=1,sNy
0220 DO i=1,sNx
0221 IF (streamice_hmask(i,j,bi,bj).eq.1.0) THEN
0222 loc_icfl=max(abs(utrans(i,j,bi,bj)),
0223 & abs(utrans(i+1,j,bi,bj))) / dxF(i,j,bi,bj)
0224 loc_icfl=max(loc_icfl,max(abs(vtrans(i,j,bi,bj)),
0225 & abs(vtrans(i,j+1,bi,bj))) / dyF(i,j,bi,bj))
0226 if (loc_icfl.gt.max_icfl) then
0227 max_icfl = loc_icfl
0228 ENDIF
0229 ENDIF
0230 ENDDO
0231 ENDDO
0232 ENDDO
0233 ENDDO
0234
0235 CALL GLOBAL_MAX_R8 (max_icfl, myThid)
0236
4f9d447bf7 Jean*0237 #endif /* ALLOW_AUTODIFF */
5ca83cd8f7 Dani*0238
0239 #ifdef ALLOW_AUTODIFF_TAMC
0240
0241
0242 #endif
0243
4f9d447bf7 Jean*0244 #ifndef ALLOW_AUTODIFF
73e21ff944 Jean*0245 do while (time_step_rem .gt. 1.e-15)
5ca83cd8f7 Dani*0246 time_step_loc = min (
0247 & streamice_cfl_factor / max_icfl,
0248 & time_step_rem )
0249 if (time_step_loc .lt. time_step_full) then
0250 PRINT *, "TAKING PARTIAL TIME STEP", time_step_loc
0251 endif
4f9d447bf7 Jean*0252 #endif /* ALLOW_AUTODIFF */
5ca83cd8f7 Dani*0253
0254 CALL STREAMICE_ADV_FLUX_FL_X ( myThid ,
0255 I utrans ,
0256 I H_streamice ,
0257 I BCMASKX,
0258 I BCVALX,
0259 O hflux_x_SI,
0260 I time_step_loc )
0261
0262 DO bj=myByLo(myThid),myByHi(myThid)
0263 DO bi=myBxLo(myThid),myBxHi(myThid)
0264 DO j=1-3,sNy+3
0265 DO i=1,sNx
0266 Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
0267 Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
0268 IF (((Gj .ge. 1) .and. (Gj .le. Ny))
0269 & .or.STREAMICE_NS_PERIODIC) THEN
0270
0271 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
0272 h_after_uflux_SI (i,j,bi,bj) = H_streamice(i,j,bi,bj) -
0273 & (hflux_x_SI(i+1,j,bi,bj)*dyG(i+1,j,bi,bj) -
73e21ff944 Jean*0274 & hflux_x_SI(i,j,bi,bj)*dyG(i,j,bi,bj))
5ca83cd8f7 Dani*0275 & * recip_rA (i,j,bi,bj) * time_step_loc
0276 IF ( h_after_uflux_SI (i,j,bi,bj).le.0.0) THEN
0277 PRINT *, "h neg after x", i,j,hflux_x_SI(i+1,j,bi,bj),
0278 & hflux_x_SI(i,j,bi,bj)
0279 ENDIF
0280 ENDIF
0281
0282 ENDIF
0283 ENDDO
0284 ENDDO
0285 ENDDO
0286 ENDDO
0287
0288 #ifdef ALLOW_AUTODIFF_TAMC
96b006450c dngo*0289
5ca83cd8f7 Dani*0290 #endif
0291
96b006450c dngo*0292
0293
0294
0295
5ca83cd8f7 Dani*0296
0297 CALL STREAMICE_ADV_FLUX_FL_Y ( myThid ,
0298 I vtrans ,
0299 I h_after_uflux_si ,
0300 I BCMASKY,
0301 I BCVALY,
0302 O hflux_y_SI,
0303 I time_step_loc )
0304
0305 DO bj=myByLo(myThid),myByHi(myThid)
0306 DO bi=myBxLo(myThid),myBxHi(myThid)
0307 DO j=1,sNy
0308 DO i=1,sNx
0309 Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
0310 Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
0311 IF (((Gj .ge. 1) .and. (Gj .le. Ny))
0312 & .or.STREAMICE_EW_PERIODIC) THEN
0313
0314 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
0315 h_after_vflux_SI (i,j,bi,bj) = h_after_uflux_SI(i,j,bi,bj) -
0316 & (hflux_y_SI(i,j+1,bi,bj)*dxG(i,j+1,bi,bj) -
0317 & hflux_y_SI(i,j,bi,bj)*dxG(i,j,bi,bj)) *
0318 & recip_rA (i,j,bi,bj) * time_step_loc
0319 IF ( h_after_vflux_SI (i,j,bi,bj).le.0.0) THEN
0320 PRINT *, "h neg after y", i,j,hflux_y_SI(i,j+1,bi,bj),
0321 & hflux_y_SI(i,j,bi,bj)
0322 ENDIF
0323
0324 ENDIF
0325 ENDIF
0326
0327 ENDDO
0328 ENDDO
0329 ENDDO
0330 ENDDO
0331
0332 DO bj=myByLo(myThid),myByHi(myThid)
0333 DO bi=myBxLo(myThid),myBxHi(myThid)
0334 DO j=1,sNy
0335 DO i=1,sNx
0336 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN
73e21ff944 Jean*0337 H_streamice (i,j,bi,bj) =
5ca83cd8f7 Dani*0338 & h_after_vflux_SI (i,j,bi,bj)
0339 ENDIF
0340 ENDDO
0341 ENDDO
0342 ENDDO
0343 ENDDO
0344
96b006450c dngo*0345
5ca83cd8f7 Dani*0346
51683b705c Dani*0347 if (streamice_move_front) then
f4c870d169 Dani*0348 CALL STREAMICE_ADV_FRONT (
0349 & myThid, time_step_loc,
0350 & hflux_x_SI, hflux_y_SI )
51683b705c Dani*0351 endif
96b006450c dngo*0352 #ifdef ALLOW_AUTODIFF_TAMC
0353
0354
0355
0356
0357 #endif
73e21ff944 Jean*0358
5ca83cd8f7 Dani*0359 #ifdef ALLOW_STREAMICE_2DTRACER
0360 CALL STREAMICE_ADVECT_2DTRACER(
0361 & myThid,
0362 & myIter,
0363 & time_step,
0364 & uTrans,
0365 & vTrans,
73e21ff944 Jean*0366 & BCMASKx,
0367 & BCMASKy )
5ca83cd8f7 Dani*0368 #endif
0369
4f9d447bf7 Jean*0370 #ifndef ALLOW_AUTODIFF
73e21ff944 Jean*0371 time_step_rem = time_step_rem - time_step_loc
5ca83cd8f7 Dani*0372 enddo
4f9d447bf7 Jean*0373 #endif /* ALLOW_AUTODIFF */
5ca83cd8f7 Dani*0374
96b006450c dngo*0375
0376
e005a328fc Dani*0377 irho = 1./streamice_density
5ca83cd8f7 Dani*0378 DO bj=myByLo(myThid),myByHi(myThid)
0379 DO bi=myBxLo(myThid),myBxHi(myThid)
0380 DO j=1,sNy
0381 DO i=1,sNx
bdd8102d3e Dani*0382 Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
0383 Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
96b006450c dngo*0384 #ifdef ALLOW_AUTODIFF
0385
0386
0387 MR = 0. _d 0
0388 #endif
bdd8102d3e Dani*0389 IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0 .or.
5ca83cd8f7 Dani*0390 & STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN
e005a328fc Dani*0391
0392 IF (STREAMICE_allow_cpl) THEN
0393 #ifdef ALLOW_SHELFICE
0394 MR = -1. * (1.-float_frac_streamice(i,j,bi,bj)) *
0fbff46b46 dngo*0395 & shelfIceFreshWaterFlux(i,j,bi,bj) * irho *
e005a328fc Dani*0396 & sec_per_year
0397
0398 #else
0399 STOP 'SHELFICE IS NOT ENABLED'
4f9d447bf7 Jean*0400 #endif
e005a328fc Dani*0401 ELSE
96b006450c dngo*0402
0403 IF (STREAMICEBdotConfig.EQ.'FILE' ) THEN
0404
0405 MR = (1.-float_frac_streamice(i,j,bi,bj)) *
bdd8102d3e Dani*0406 & (BDOT_STREAMICE(i,j,bi,bj) +
0407 & BDOT_pert(i,j,bi,bj))
96b006450c dngo*0408
0409 ELSEIF (STREAMICEBdotConfig.EQ.'PARAM') THEN
0410
0411 bdot_depth =
0412 & streamice_bdot_depth_maxmelt_v(i,j,bi,bj) +
0413 & streamice_bdot_depth_maxmelt
0414
0415 bdot_max =
0416 & streamice_bdot_maxmelt_v(i,j,bi,bj) +
0417 & streamice_bdot_maxmelt
0418
0419 IF (base_el_streamice(i,j,bi,bj) .lt.
0420 & streamice_bdot_depth_nomelt) THEN
0421 IF (base_el_streamice(i,j,bi,bj) .lt.
0422 & bdot_depth) THEN
0423 MR = ABS(bdot_max)**streamice_bdot_exp
0424 ELSE
0425 MR = (ABS((streamice_bdot_depth_nomelt-
0426 & base_el_streamice(i,j,bi,bj)) /
0427 & (streamice_bdot_depth_nomelt-
0428 & bdot_depth) *
0429 & bdot_max))**streamice_bdot_exp
0430 ENDIF
0431 ELSE
0432 MR = 0.0
0433 ENDIF
0434 MR = (1.-float_frac_streamice(i,j,bi,bj)) *
0435 & (MR + BDOT_pert(i,j,bi,bj))
0436 BDOT_STREAMICE(i,j,bi,bj) = MR
0437 ELSE
0438 MR = 0.
0439 BDOT_STREAMICE(i,j,bi,bj) = MR
0440 ENDIF
0441
e005a328fc Dani*0442 ENDIF
bdd8102d3e Dani*0443
e005a328fc Dani*0444 SMB = ADOT_STREAMICE(i,j,bi,bj)
0445 TMB = SMB - MR
0446 IF ((TMB.lt.0.0) .and.
5ca83cd8f7 Dani*0447 & (MR * time_step_loc .gt.
0448 & H_streamice (i,j,bi,bj))) THEN
0449 H_streamice (i,j,bi,bj) = 0. _d 0
bdd8102d3e Dani*0450 STREAMICE_hmask(i,j,bi,bj) = 0.0
0451 PRINT *, "GOT HERE melted away
e005a328fc Dani*0452 ELSE
73e21ff944 Jean*0453 H_streamice (i,j,bi,bj) =
5ca83cd8f7 Dani*0454 & H_streamice (i,j,bi,bj) + TMB * time_step_loc
e005a328fc Dani*0455 ENDIF
bdd8102d3e Dani*0456
0457 ENDIF
5ca83cd8f7 Dani*0458 ENDDO
0459 ENDDO
0460 ENDDO
73e21ff944 Jean*0461 ENDDO
0462
7b7bae94ed Mart*0463 _EXCH_XY_RL(H_streamice,myThid)
5ca83cd8f7 Dani*0464
0465 WRITE(msgBuf,'(A)') 'END STREAMICE_ADVECT_THICKNESS'
0466 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0467 & SQUEEZE_RIGHT , 1)
615a93f300 Dani*0468 CALL TIMER_STOP ('STREAMICE_ADVECT_THICKNESS',myThid)
73e21ff944 Jean*0469
5ca83cd8f7 Dani*0470 #endif
4f9d447bf7 Jean*0471 RETURN
5ca83cd8f7 Dani*0472 END