Changeset 15 for trunk/NEMO/OPA_SRC/cla_dynspg.F90
- Timestamp:
- 2004-02-17T08:25:44+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/cla_dynspg.F90
r3 r15 1 1 MODULE cla_dynspg 2 !! ----------------------------------------------------------------------3 !! *** dynspg_freesurf_cstvol.h90***4 !! ----------------------------------------------------------------------2 !!====================================================================== 3 !! *** cla_dynspg *** 4 !!====================================================================== 5 5 !! dyn_spg : update the momentum trend with the surface pressure 6 6 !! gradient in the free surface constant volume case … … 59 59 INTEGER, INTENT( in ) :: kt ! ocean time-step 60 60 !! * Local declarations 61 INTEGER :: ji, jj, jk ! dummy loop indices 61 INTEGER :: ji, jj, jk ! dummy loop indices 62 INTEGER :: ii0, ii1, ij0, ij1 ! temporary integer 62 63 REAL(wp) :: & 63 64 zempmed, zempred, & ! EMP on Med Sea ans Red Sea … … 83 84 zempmed = 0.e0 84 85 zwei = 0.e0 85 DO jj = mj0(96), mj1(110) 86 DO ji = mi0(141),mi1(181) 86 ij0 = 96 ; ij1 = 110 87 ii0 = 141 ; ii1 = 181 88 DO jj = mj0(ij0), mj1(ij1) 89 DO ji = mi0(ii0),mi1(ii1) 87 90 zwei = tmask(ji,jj,1) * e1t(ji,jj) * e2t(ji,jj) 88 91 zempmed = zempmed + emp(ji,jj) * zwei 89 92 END DO 90 93 END DO 91 92 ! mpp 93 # if defined key_mpp 94 CALL mpp_sum( zempmed ) 95 # endif 94 IF( lk_mpp ) CALL mpp_sum( zempmed ) ! sum with other processors value 96 95 97 96 ! minus 2 points in Red Sea and 3 in Atlantic 98 DO jj = mj0(96), mj1(96) 99 DO ji = mi0(148),mi1(148) 97 ij0 = 96 ; ij1 = 96 98 ii0 = 148 ; ii1 = 148 99 DO jj = mj0(ij0), mj1(ij1) 100 DO ji = mi0(ii0),mi1(ii1) 100 101 zempmed = zempmed - emp(ji ,jj) * tmask(ji ,jj,1) * e1t(ji ,jj) * e2t(ji ,jj) & 101 102 & - emp(ji+1,jj) * tmask(ji+1,jj,1) * e1t(ji+1,jj) * e2t(ji+1,jj) … … 108 109 zempred = 0.e0 109 110 zwei = 0.e0 110 DO jj = mj0(87), mj1(96) 111 DO ji = mi0(148), mi1(160) 111 ij0 = 87 ; ij1 = 96 112 ii0 = 148 ; ii1 = 160 113 DO jj = mj0(ij0), mj1(ij1) 114 DO ji = mi0(ii0),mi1(ii1) 112 115 zwei = tmask(ji,jj,1) * e1t(ji,jj) * e2t(ji,jj) 113 116 zempred = zempred + emp(ji,jj) * zwei 114 117 END DO 115 118 END DO 116 117 ! mpp 118 # if defined key_mpp 119 CALL mpp_sum( zempred ) 120 # endif 119 IF( lk_mpp ) CALL mpp_sum( zempred ) ! sum with other processors value 121 120 122 121 ! we convert in m3 … … 143 142 ! Bab el Mandeb 144 143 ! ------------- 145 DO jj = mj0(88), mj1(88) 146 DO ji = mi0(160), mi1(160) 144 ! 160,88 north point Bab el Mandeb 145 ij0 = 88 ; ij1 = 88 146 ii0 = 160 ; ii1 = 160 147 DO jj = mj0(ij0), mj1(ij1) 148 DO ji = mi0(ii0),mi1(ii1) 147 149 ua(ji,jj ,: ) = 0.e0 ! North East Bab el Mandeb 148 ua(ji,jj-1,: ) = 0.e0 ! South East Bab el Mandeb 149 END DO 150 END DO 151 152 ! 160,87 north point Bab el Mandeb 153 ! surface 150 END DO 151 END DO 152 ! ! surface 154 153 DO jk = 1, 8 155 DO jj = mj0( 88), mj1(88)156 DO ji = mi0( 160), mi1(160)154 DO jj = mj0(ij0), mj1(ij1) 155 DO ji = mi0(ii0),mi1(ii1) 157 156 ua(ji, jj,jk) = -( ( zisw_rs + zempred ) / 8. ) / ( e2u(ji, jj) * fse3t(ji, jj,jk) ) 158 157 END DO 159 158 END DO 160 159 END DO 161 162 ! deeper 163 DO jj = mj0(88), mj1(88) 164 DO ji = mi0(160), mi1(160) 160 ! ! deeper 161 DO jj = mj0(ij0), mj1(ij1) 162 DO ji = mi0(ii0),mi1(ii1) 165 163 ua(ji, jj,21) = - zbrw_rs / ( e2u(ji, jj) * fse3t(ji, jj,21) ) 166 164 END DO … … 168 166 169 167 ! 160,87 south point Bab el Mandeb 170 DO jj = mj0(87), mj1(87) 171 DO ji = mi0(160), mi1(160) 168 ij0 = 87 ; ij1 = 87 169 ii0 = 160 ; ii1 = 160 170 DO jj = mj0(ij0), mj1(ij1) 171 DO ji = mi0(ii0),mi1(ii1) 172 ua(ji,jj ,: ) = 0.e0 ! South East Bab el Mandeb 173 END DO 174 END DO 175 DO jj = mj0(ij0), mj1(ij1) 176 DO ji = mi0(ii0),mi1(ii1) 172 177 ua(ji, jj,21) = ( zisw_rs + zbrw_rs ) / ( e2u(ji,jj )*fse3t(ji, jj,21) ) 173 178 END DO … … 178 183 179 184 ! initialisation of velocity at concerned points 180 DO jj = mj0(101), mj1(101) 181 DO ji = mi0(139), mi1(139) 185 ! 139, 101 south point in Gibraltar 186 ij0 = 101 ; ij1 = 101 187 ii0 = 139 ; ii1 = 139 188 DO jj = mj0(ij0), mj1(ij1) 189 DO ji = mi0(ii0),mi1(ii1) 182 190 ua(ji,jj ,: ) = 0.e0 ! South West Gibraltar 183 191 ua(ji,jj+1,: ) = 0.e0 ! North West Gibraltar 184 192 END DO 185 193 END DO 186 187 ! 139, 101 south point in Gibraltar 188 ! surface 194 ! ! surface 189 195 DO jk = 1, 14 190 DO jj = mj0( 101), mj1(101)191 DO ji = mi0( 139), mi1(139)196 DO jj = mj0(ij0), mj1(ij1) 197 DO ji = mi0(ii0),mi1(ii1) 192 198 ua(ji,jj,jk) = ( ( zisw_ms + zempmed ) / 14. ) / ( e2u(ji,jj) * fse3t(ji,jj,jk) ) 193 199 END DO 194 200 END DO 195 201 END DO 196 197 ! middle circulation 202 ! ! middle circulation 198 203 DO jk = 15, 20 199 DO jj = mj0( 101), mj1(101)200 DO ji = mi0( 139), mi1(139)204 DO jj = mj0(ij0), mj1(ij1) 205 DO ji = mi0(ii0),mi1(ii1) 201 206 ua(ji,jj,jk) = ( zmrw_ms / 6. ) / ( e2u(ji,jj) * fse3t(ji,jj,jk) ) 202 207 END DO 203 208 END DO 204 209 END DO 205 206 ! deeper 207 DO jj = mj0(101), mj1(101) 208 DO ji = mi0(139), mi1(139) 210 ! ! deeper 211 DO jj = mj0(ij0), mj1(ij1) 212 DO ji = mi0(ii0),mi1(ii1) 209 213 ua(ji,jj,21) = zurw_ms / ( e2u(ji,jj) * fse3t(ji,jj,21) ) 210 214 ua(ji,jj,22) = ( zbrw_ms - zurw_ms ) / ( e2u(ji,jj) * fse3t(ji,jj,22) ) … … 213 217 214 218 ! 139,102 north point in Gibraltar 219 ij0 = 102 ; ij1 = 102 220 ii0 = 139 ; ii1 = 139 221 DO jj = mj0(ij0), mj1(ij1) 222 DO ji = mi0(ii0),mi1(ii1) 223 ua(ji,jj ,: ) = 0.e0 ! North West Gibraltar 224 END DO 225 END DO 215 226 DO jk = 15, 20 216 DO jj = mj0( 102), mj1(102)217 DO ji = mi0( 139), mi1(139)227 DO jj = mj0(ij0), mj1(ij1) 228 DO ji = mi0(ii0),mi1(ii1) 218 229 ua(ji,jj,jk) = -( zmrw_ms / 6. ) / ( e2u(ji,jj) * fse3t(ji,jj,jk) ) 219 230 END DO 220 231 END DO 221 232 END DO 222 223 ! deeper 224 DO jj = mj0(102), mj1(102) 225 DO ji = mi0(139), mi1(139) 233 ! ! deeper 234 DO jj = mj0(ij0), mj1(ij1) 235 DO ji = mi0(ii0),mi1(ii1) 226 236 ua(ji,jj,22) = -( zisw_ms + zbrw_ms ) / ( e2u(ji,jj) * fse3t(ji,jj,22) ) 227 237 END DO … … 229 239 230 240 END SUBROUTINE dyn_spg_cla 241 242 !!====================================================================== 231 243 END MODULE cla_dynspg
Note: See TracChangeset
for help on using the changeset viewer.