- Timestamp:
- 2010-07-13T17:14:39+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90
r1601 r2007 99 99 100 100 # elif defined key_dynspg_flt && defined key_obc 101 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries103 DO ji = 2, jpim1104 zcoef = z2dt * z2dt * grav * bmask(ji,jj)105 ! ! south coefficient106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1))108 ELSE109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)110 END IF111 gcp(ji,jj,1) = zcoefs112 !113 ! ! west coefficient114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1))116 ELSE117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)118 END IF119 gcp(ji,jj,2) = zcoefw120 !121 ! ! east coefficient122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1))124 ELSE125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)126 END IF127 gcp(ji,jj,3) = zcoefe128 !129 ! ! north coefficient130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1))132 ELSE101 IF( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 133 133 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 140 141 END DO 141 END DO142 ENDIF 142 143 #endif 143 144
Note: See TracChangeset
for help on using the changeset viewer.