36 |
INTEGER i, j, bi, bj |
INTEGER i, j, bi, bj |
37 |
_RL thick_bd |
_RL thick_bd |
38 |
_RL SLOPE_LIMITER |
_RL SLOPE_LIMITER |
39 |
_RL sec_per_year, time_step_loc, MR |
_RL sec_per_year, time_step_loc, MR, SMB, TMB |
40 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
41 |
external SLOPE_LIMITER |
external SLOPE_LIMITER |
42 |
|
|
44 |
|
|
45 |
time_step_loc = time_step / sec_per_year |
time_step_loc = time_step / sec_per_year |
46 |
|
|
47 |
|
PRINT *, "time_step_loc ", time_step_loc |
48 |
|
|
49 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
50 |
CADJ STORE streamice_hmask = comlev1, key=ikey_dynamics |
CADJ STORE streamice_hmask = comlev1, key=ikey_dynamics |
51 |
#endif |
#endif |
139 |
& STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN |
& STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN |
140 |
MR = (1.-float_frac_streamice(i,j,bi,bj)) * |
MR = (1.-float_frac_streamice(i,j,bi,bj)) * |
141 |
& BDOT_STREAMICE(i,j,bi,bj) |
& BDOT_STREAMICE(i,j,bi,bj) |
142 |
IF (MR * time_step_loc .gt. |
SMB = ADOT_STREAMICE(i,j,bi,bj) |
143 |
& H_streamice (i,j,bi,bj)) THEN |
TMB = SMB - MR |
144 |
|
IF ((TMB.lt.0.0) .and. |
145 |
|
& (MR * time_step_loc .gt. |
146 |
|
& H_streamice (i,j,bi,bj))) THEN |
147 |
H_streamice (i,j,bi,bj) = 0. _d 0 |
H_streamice (i,j,bi,bj) = 0. _d 0 |
148 |
STREAMICE_hmask(i,j,bi,bj) = 0. |
STREAMICE_hmask(i,j,bi,bj) = 0. |
149 |
ELSE |
ELSE |
150 |
H_streamice (i,j,bi,bj) = |
H_streamice (i,j,bi,bj) = |
151 |
& H_streamice (i,j,bi,bj) - MR |
& H_streamice (i,j,bi,bj) + TMB * time_step_loc |
152 |
ENDIF |
ENDIF |
153 |
ENDIF |
ENDIF |
154 |
ENDDO |
ENDDO |