62 |
|
|
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,Gi,Gj |
66 |
_RL ux, vx, uy, vy, uq, vq, exx, eyy, exy |
_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) |
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 |
|
Gi = (myXGlobalLo-1)+(bi-1)*sNx+i |
81 |
|
Gj = (myYGlobalLo-1)+(bj-1)*sNy+j |
82 |
|
|
83 |
IF (STREAMICE_hmask (i,j,bi,bj) .eq. 1.0) THEN |
IF (STREAMICE_hmask (i,j,bi,bj) .eq. 1.0) THEN |
84 |
DO iq = 1,2 |
DO iq = 1,2 |
85 |
DO jq = 1,2 |
DO jq = 1,2 |
86 |
|
|
87 |
n = 2*(jq-1)+iq |
n = 2*(jq-1)+iq |
88 |
|
|
89 |
|
|
90 |
uq = u(i,j,bi,bj) * Xquad(3-iq) * Xquad(3-jq) + |
uq = u(i,j,bi,bj) * Xquad(3-iq) * Xquad(3-jq) + |
91 |
& u(i+1,j,bi,bj) * Xquad(iq) * Xquad(3-jq) + |
& u(i+1,j,bi,bj) * Xquad(iq) * Xquad(3-jq) + |
92 |
& u(i,j+1,bi,bj) * Xquad(3-iq) * Xquad(jq) + |
& u(i,j+1,bi,bj) * Xquad(3-iq) * Xquad(jq) + |
127 |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
128 |
|
|
129 |
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 |
130 |
|
|
131 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
132 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
133 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
134 |
& visc_streamice(i,j,bi,bj) * ( |
& visc_streamice(i,j,bi,bj) * ( |
135 |
& DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) + |
& DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) + |
136 |
& DPhi(i,j,bi,bj,m,n,2)*(2*exy)) |
& DPhi(i,j,bi,bj,m,n,2)*(2*exy)) |
137 |
|
|
138 |
|
|
139 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
140 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
141 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
142 |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
143 |
& (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+ |
144 |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
145 |
|
|
146 |
|
|
147 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
148 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
149 |
& phival(inode,jnode) * |
& phival(inode,jnode) * |
150 |
& grid_jacq_streamice(i,j,bi,bj,n) * |
& grid_jacq_streamice(i,j,bi,bj,n) * |
151 |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
152 |
|
|
153 |
|
|
154 |
endif |
endif |
155 |
|
|
156 |
if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
736 |
& u_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,1) + |
& u_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,1) + |
737 |
& u_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,1) + |
& u_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,1) + |
738 |
& u_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,1) |
& u_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,1) |
739 |
uy = u_bdry_values_SI(i,j,bi,bj) * DPhi(i,j,bi,bj,1,n,1) + |
uy = u_bdry_values_SI(i,j,bi,bj) * DPhi(i,j,bi,bj,1,n,2) + |
740 |
& u_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,2) + |
& u_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,2) + |
741 |
& u_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,2) + |
& u_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,2) + |
742 |
& u_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,2) |
& u_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,2) |
744 |
& v_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,1) + |
& v_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,1) + |
745 |
& v_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,1) + |
& v_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,1) + |
746 |
& v_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,1) |
& v_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,1) |
747 |
vy = v_bdry_values_SI(i,j,bi,bj) * DPhi(i,j,bi,bj,1,n,1) + |
vy = v_bdry_values_SI(i,j,bi,bj) * DPhi(i,j,bi,bj,1,n,2) + |
748 |
& v_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,2) + |
& v_bdry_values_SI(i+1,j,bi,bj) * DPhi(i,j,bi,bj,2,n,2) + |
749 |
& v_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,2) + |
& v_bdry_values_SI(i,j+1,bi,bj) * DPhi(i,j,bi,bj,3,n,2) + |
750 |
& v_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,2) |
& v_bdry_values_SI(i+1,j+1,bi,bj) * DPhi(i,j,bi,bj,4,n,2) |
764 |
if (jnode.eq.jq) jlq = 2 |
if (jnode.eq.jq) jlq = 2 |
765 |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
phival(inode,jnode) = Xquad(ilq)*Xquad(jlq) |
766 |
|
|
767 |
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 |
768 |
|
|
769 |
|
|
770 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
771 |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
& uret(i-1+inode,j-1+jnode,bi,bj) + .25 * |
781 |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
& visc_streamice(i,j,bi,bj) * phival(inode,jnode) * |
782 |
& (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+ |
783 |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
& 4*0.5*k1AtC_str(i,j,bi,bj)*exy) |
784 |
|
|
785 |
|
|
786 |
! if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then |
! if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then |
787 |
uret(i-1+inode,j-1+jnode,bi,bj) = |
uret(i-1+inode,j-1+jnode,bi,bj) = |
789 |
& phival(inode,jnode) * 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) * uq |
& tau_beta_eff_streamice (i,j,bi,bj) * uq |
791 |
|
|
792 |
|
|
793 |
! endif |
! endif |
794 |
endif |
endif |
795 |
if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |
if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then |