63 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
64 |
C == Local variables == |
C == Local variables == |
65 |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
66 |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy, phival |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy |
67 |
_RL Ucell (2,2) |
_RL Ucell (2,2) |
68 |
_RL Vcell (2,2) |
_RL Vcell (2,2) |
69 |
_RL Hcell (2,2) |
_RL Hcell (2,2) |
70 |
|
_RL phival(2,2) |
71 |
|
|
72 |
|
uret(1,1,1,1) = uret(1,1,1,1) |
73 |
|
vret(1,1,1,1) = vret(1,1,1,1) |
74 |
|
|
75 |
DO j = js, je |
DO j = js, je |
76 |
DO i = is, ie |
DO i = is, ie |
77 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
78 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
79 |
|
|
80 |
IF (STREAMICE_hmask (i,j,bi,bj) .eq. 1.0) THEN |
IF (STREAMICE_hmask (i,j,bi,bj) .eq. 1.0) THEN |
81 |
DO iq=1,2 |
DO iq = 1,2 |
82 |
DO jq = 1,2 |
DO jq = 1,2 |
83 |
|
|
84 |
n = 2*(jq-1)+iq |
n = 2*(jq-1)+iq |
117 |
|
|
118 |
m = 2*(jnode-1)+inode |
m = 2*(jnode-1)+inode |
119 |
ilq = 1 |
ilq = 1 |
120 |
jlq = 1 |
jlq = 1 |
121 |
if (inode.eq.iq) ilq = 2 |
if (inode.eq.iq) ilq = 2 |
122 |
if (jnode.eq.jq) jlq = 2 |
if (jnode.eq.jq) jlq = 2 |
123 |
phival = Xquad(ilq)*Xquad(jlq) |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
124 |
|
|
125 |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
126 |
|
|
140 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
141 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
142 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
143 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
144 |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
145 |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
146 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
147 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
148 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
149 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
150 |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
151 |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
152 |
|
|
159 |
|
|
160 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
161 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
162 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * |
163 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
164 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
165 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
166 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
167 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * |
168 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
169 |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
170 |
|
|
171 |
endif |
endif |
172 |
enddo |
enddo |
173 |
enddo |
enddo |
174 |
|
|
175 |
enddo |
enddo |
176 |
enddo |
enddo |
177 |
|
c-- STREAMICE_hmask |
178 |
endif |
endif |
179 |
|
|
180 |
enddo |
enddo |
181 |
enddo |
enddo |
182 |
enddo |
enddo |
210 |
|
|
211 |
#ifdef ALLOW_STREAMICE |
#ifdef ALLOW_STREAMICE |
212 |
|
|
213 |
|
#ifdef STREAMICE_CONSTRUCT_MATRIX |
214 |
|
|
215 |
C the linear action of the matrix on (u,v) with triangular finite elements |
C the linear action of the matrix on (u,v) with triangular finite elements |
216 |
C as of now everything is passed in so no grid pointers or anything of the sort have to be dereferenced, |
C as of now everything is passed in so no grid pointers or anything of the sort have to be dereferenced, |
217 |
C but this may change pursuant to conversations with others |
C but this may change pursuant to conversations with others |
236 |
C == Local variables == |
C == Local variables == |
237 |
INTEGER iq, jq, inodx, inody, i, j, bi, bj, ilqx, ilqy, m_i, n |
INTEGER iq, jq, inodx, inody, i, j, bi, bj, ilqx, ilqy, m_i, n |
238 |
INTEGER jlqx, jlqy, jnodx,jnody, m_j, col_y, col_x, cg_halo, k |
INTEGER jlqx, jlqy, jnodx,jnody, m_j, col_y, col_x, cg_halo, k |
239 |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy, phival |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy |
240 |
|
_RL phival(2,2) |
241 |
|
|
242 |
! do i=1,3 |
! do i=1,3 |
243 |
! do j=0,2 |
! do j=0,2 |
289 |
|
|
290 |
if (inodx.eq.iq) ilqx = 2 |
if (inodx.eq.iq) ilqx = 2 |
291 |
if (inody.eq.jq) ilqy = 2 |
if (inody.eq.jq) ilqy = 2 |
292 |
phival = Xquad(ilqx)*Xquad(ilqy) |
phival(inodx,inody) = Xquad(ilqx)*Xquad(ilqy) |
293 |
|
|
294 |
DO jnodx = 1,2 |
DO jnodx = 1,2 |
295 |
DO jnody = 1,2 |
DO jnody = 1,2 |
350 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
351 |
& .25 * |
& .25 * |
352 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
353 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inodx,inody) * |
354 |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)* |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)* |
355 |
& exx+4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& exx+4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
356 |
|
|
360 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
361 |
& .25 * |
& .25 * |
362 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
363 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inodx,inody) * |
364 |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)* |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)* |
365 |
& eyy+4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
& eyy+4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
366 |
|
|
368 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
369 |
& streamice_cg_A1 |
& streamice_cg_A1 |
370 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
371 |
& .25*phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& .25*phival(inodx,inody) * |
372 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
373 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
374 |
|
|
375 |
streamice_cg_A3 |
streamice_cg_A3 |
376 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
377 |
& streamice_cg_A3 |
& streamice_cg_A3 |
378 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
379 |
& .25*phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& .25*phival(inodx,inody) * |
380 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
381 |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
382 |
|
|
383 |
c |
c |
420 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
421 |
& .25 * |
& .25 * |
422 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
423 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inodx,inody) * |
424 |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)* |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)* |
425 |
& exx+4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& exx+4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
426 |
|
|
430 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
431 |
& .25 * |
& .25 * |
432 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
433 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inodx,inody) * |
434 |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)* |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)* |
435 |
& eyy+4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
& eyy+4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
436 |
|
|
438 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
439 |
& streamice_cg_A2 |
& streamice_cg_A2 |
440 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
441 |
& .25*phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& .25*phival(inodx,inody) * |
442 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
443 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
444 |
|
|
445 |
streamice_cg_A4 |
streamice_cg_A4 |
446 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)= |
447 |
& streamice_cg_A4 |
& streamice_cg_A4 |
448 |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
& (i-1+inodx,j-1+inody,bi,bj,col_x,col_y)+ |
449 |
& .25*phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& .25*phival(inodx,inody) * |
450 |
|
& grid_jacq_streamice(i,j,bi,bj,n) * |
451 |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
452 |
|
|
453 |
endif |
endif |
465 |
enddo |
enddo |
466 |
|
|
467 |
#endif |
#endif |
468 |
|
#endif |
469 |
RETURN |
RETURN |
470 |
END SUBROUTINE |
END SUBROUTINE |
471 |
|
|
522 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
523 |
C == Local variables == |
C == Local variables == |
524 |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
525 |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy, phival |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy |
526 |
_RL Ucell (2,2) |
_RL Ucell (2,2) |
527 |
_RL Vcell (2,2) |
_RL Vcell (2,2) |
528 |
_RL Hcell (2,2) |
_RL Hcell (2,2) |
529 |
|
_RL phival(2,2) |
530 |
|
|
531 |
|
uret(1,1,1,1) = uret(1,1,1,1) |
532 |
|
vret(1,1,1,1) = vret(1,1,1,1) |
533 |
|
|
534 |
DO j = 0, sNy+1 |
DO j = 0, sNy+1 |
535 |
DO i = 0, sNx+1 |
DO i = 0, sNx+1 |
545 |
DO jnode = 1,2 |
DO jnode = 1,2 |
546 |
|
|
547 |
m = 2*(jnode-1)+inode |
m = 2*(jnode-1)+inode |
|
ilq = 1 |
|
|
jlq = 1 |
|
|
|
|
|
if (inode.eq.iq) ilq = 2 |
|
|
if (jnode.eq.jq) jlq = 2 |
|
|
phival = Xquad(ilq)*Xquad(jlq) |
|
548 |
|
|
549 |
ux = DPhi (i,j,bi,bj,m,n,1) |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
550 |
uy = DPhi (i,j,bi,bj,m,n,2) |
|
551 |
vx = 0 |
ilq = 1 |
552 |
vy = 0 |
jlq = 1 |
|
uq = Xquad(ilq) * Xquad(jlq) |
|
|
vq = 0 |
|
|
|
|
|
exx = ux + k1AtC_str(i,j,bi,bj)*vq |
|
|
eyy = vy + k2AtC_str(i,j,bi,bj)*uq |
|
|
exy = .5*(uy+vx) + |
|
|
& k1AtC_str(i,j,bi,bj)*uq + k2AtC_str(i,j,bi,bj)*vq |
|
553 |
|
|
554 |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
if (inode.eq.iq) ilq = 2 |
555 |
|
if (jnode.eq.jq) jlq = 2 |
556 |
|
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
557 |
|
|
558 |
|
ux = DPhi (i,j,bi,bj,m,n,1) |
559 |
|
uy = DPhi (i,j,bi,bj,m,n,2) |
560 |
|
vx = 0 |
561 |
|
vy = 0 |
562 |
|
uq = Xquad(ilq) * Xquad(jlq) |
563 |
|
vq = 0 |
564 |
|
|
565 |
|
exx = ux + k1AtC_str(i,j,bi,bj)*vq |
566 |
|
eyy = vy + k2AtC_str(i,j,bi,bj)*uq |
567 |
|
exy = .5*(uy+vx) + |
568 |
|
& k1AtC_str(i,j,bi,bj)*uq + k2AtC_str(i,j,bi,bj)*vq |
569 |
|
|
570 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
571 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
572 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
577 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
578 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
579 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
580 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
581 |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
582 |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
583 |
|
|
584 |
|
|
585 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
586 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
587 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) * |
588 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
589 |
|
|
590 |
|
|
609 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
610 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
611 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
612 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
613 |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
614 |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
615 |
|
|
616 |
|
|
617 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
618 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
619 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) * |
620 |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
621 |
|
|
622 |
endif |
endif |
623 |
|
|
624 |
enddo |
enddo |
625 |
enddo |
enddo |
626 |
enddo |
enddo |
688 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
689 |
C == Local variables == |
C == Local variables == |
690 |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
INTEGER iq, jq, inode, jnode, i, j, bi, bj, ilq, jlq, m, n |
691 |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy, phival |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy |
692 |
_RL Ucell (2,2) |
_RL Ucell (2,2) |
693 |
_RL Vcell (2,2) |
_RL Vcell (2,2) |
694 |
_RL Hcell (2,2) |
_RL Hcell (2,2) |
695 |
|
_RL phival(2,2) |
696 |
|
|
697 |
|
uret(1,1,1,1) = uret(1,1,1,1) |
698 |
|
vret(1,1,1,1) = vret(1,1,1,1) |
699 |
|
|
700 |
DO j = 0, sNy+1 |
DO j = 0, sNy+1 |
701 |
DO i = 0, sNx+1 |
DO i = 0, sNx+1 |
746 |
|
|
747 |
m = 2*(jnode-1)+inode |
m = 2*(jnode-1)+inode |
748 |
ilq = 1 |
ilq = 1 |
749 |
ilq = 1 |
jlq = 1 |
750 |
if (inode.eq.iq) ilq = 2 |
if (inode.eq.iq) ilq = 2 |
751 |
if (jnode.eq.jq) jlq = 2 |
if (jnode.eq.jq) jlq = 2 |
752 |
phival = Xquad(ilq)*Xquad(jlq) |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
753 |
|
|
754 |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
755 |
|
|
769 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
770 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
771 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
772 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
773 |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
& (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+ |
774 |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
775 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
776 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
777 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
778 |
& visc_streamice(i,j,bi,bj) * phival * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
779 |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
& (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+ |
780 |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k2AtC_str(i,j,bi,bj)*exy) |
781 |
|
|
782 |
! if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then |
! if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then |
783 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
784 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
785 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) * |
786 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
787 |
vret(i-1+inode,j-1+jnode,bi,bj) = |
vret(i-1+inode,j-1+jnode,bi,bj) = |
788 |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& vret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
789 |
& phival * grid_jacq_streamice(i,j,bi,bj,n) * |
& phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) * |
790 |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
& tau_beta_eff_streamice (i,j,bi,bj) * vq |
791 |
! endif |
! endif |
792 |
endif |
endif |