Changeset 13229 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_interp.F90
- Timestamp:
- 2020-07-02T17:33:41+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_interp.F90
r13130 r13229 95 95 ! 96 96 ! --- West --- ! 97 ibdy1 = nn_hls + 2 ! halo + land + 1 98 ibdy2 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 99 ! 100 IF( .NOT.ln_dynspg_ts ) THEN ! Store tangential transport 97 IF( lk_west ) THEN 98 ibdy1 = nn_hls + 2 ! halo + land + 1 99 ibdy2 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 100 ! 101 IF( .NOT.ln_dynspg_ts ) THEN ! Store tangential transport 102 DO ji = mi0(ibdy1), mi1(ibdy2) 103 uu_b(ji,:,Krhs_a) = 0._wp 104 105 DO jk = 1, jpkm1 106 DO jj = 1, jpj 107 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 108 END DO 109 END DO 110 111 DO jj = 1, jpj 112 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) * r1_hu(ji,jj,Krhs_a) 113 END DO 114 END DO 115 ENDIF 116 ! 101 117 DO ji = mi0(ibdy1), mi1(ibdy2) 102 uu_b(ji,:,Krhs_a) = 0._wp 103 118 zub(ji,:) = 0._wp ! Correct tangential transport 104 119 DO jk = 1, jpkm1 105 120 DO jj = 1, jpj 106 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 107 END DO 108 END DO 109 110 DO jj = 1, jpj 111 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) * r1_hu(ji,jj,Krhs_a) 112 END DO 113 END DO 114 ENDIF 115 ! 116 DO ji = mi0(ibdy1), mi1(ibdy2) 117 zub(ji,:) = 0._wp ! Correct tangential transport 118 DO jk = 1, jpkm1 119 DO jj = 1, jpj 120 zub(ji,jj) = zub(ji,jj) & 121 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a)*umask(ji,jj,jk) 122 END DO 123 END DO 124 DO jj=1,jpj 125 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 126 END DO 121 zub(ji,jj) = zub(ji,jj) & 122 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a)*umask(ji,jj,jk) 123 END DO 124 END DO 125 DO jj=1,jpj 126 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 127 END DO 127 128 128 DO jk = 1, jpkm1129 DO jj = 1, jpj130 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) + uu_b(ji,jj,Krhs_a)-zub(ji,jj)) * umask(ji,jj,jk)131 END DO132 END DO133 END DO134 135 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate136 DO ji = mi0(ibdy1), mi1(ibdy2)137 zvb(ji,:) = 0._wp138 129 DO jk = 1, jpkm1 139 130 DO jj = 1, jpj 140 zvb(ji,jj) = zvb(ji,jj) + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 141 END DO 142 END DO 143 DO jj = 1, jpj 144 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 145 END DO 131 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) + uu_b(ji,jj,Krhs_a)-zub(ji,jj)) * umask(ji,jj,jk) 132 END DO 133 END DO 134 END DO 135 136 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 137 DO ji = mi0(ibdy1), mi1(ibdy2) 138 zvb(ji,:) = 0._wp 139 DO jk = 1, jpkm1 140 DO jj = 1, jpj 141 zvb(ji,jj) = zvb(ji,jj) + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 142 END DO 143 END DO 144 DO jj = 1, jpj 145 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 146 END DO 147 DO jk = 1, jpkm1 148 DO jj = 1, jpj 149 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) + vv_b(ji,jj,Krhs_a)-zvb(ji,jj))*vmask(ji,jj,jk) 150 END DO 151 END DO 152 END DO 153 ENDIF 154 ENDIF 155 156 ! --- East --- ! 157 IF( lk_east ) THEN 158 ibdy1 = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 159 ibdy2 = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 160 ! 161 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 162 DO ji = mi0(ibdy1), mi1(ibdy2) 163 uu_b(ji,:,Krhs_a) = 0._wp 164 DO jk = 1, jpkm1 165 DO jj = 1, jpj 166 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) & 167 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 168 END DO 169 END DO 170 DO jj = 1, jpj 171 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) * r1_hu(ji,jj,Krhs_a) 172 END DO 173 END DO 174 ENDIF 175 ! 176 DO ji = mi0(ibdy1), mi1(ibdy2) 177 zub(ji,:) = 0._wp ! Correct transport 146 178 DO jk = 1, jpkm1 147 179 DO jj = 1, jpj 148 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) + vv_b(ji,jj,Krhs_a)-zvb(ji,jj))*vmask(ji,jj,jk) 149 END DO 150 END DO 151 END DO 152 ENDIF 153 154 ! --- East --- ! 155 ibdy1 = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 156 ibdy2 = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 157 ! 158 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 159 DO ji = mi0(ibdy1), mi1(ibdy2) 160 uu_b(ji,:,Krhs_a) = 0._wp 180 zub(ji,jj) = zub(ji,jj) & 181 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 182 END DO 183 END DO 184 DO jj=1,jpj 185 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 186 END DO 187 161 188 DO jk = 1, jpkm1 162 189 DO jj = 1, jpj 163 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) & 164 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 165 END DO 166 END DO 167 DO jj = 1, jpj 168 uu_b(ji,jj,Krhs_a) = uu_b(ji,jj,Krhs_a) * r1_hu(ji,jj,Krhs_a) 169 END DO 170 END DO 171 ENDIF 172 ! 173 DO ji = mi0(ibdy1), mi1(ibdy2) 174 zub(ji,:) = 0._wp ! Correct transport 175 DO jk = 1, jpkm1 176 DO jj = 1, jpj 177 zub(ji,jj) = zub(ji,jj) & 178 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 179 END DO 180 END DO 181 DO jj=1,jpj 182 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 190 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 191 & + uu_b(ji,jj,Krhs_a)-zub(ji,jj))*umask(ji,jj,jk) 192 END DO 193 END DO 183 194 END DO 184 195 185 DO jk = 1, jpkm1 186 DO jj = 1, jpj 187 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 188 & + uu_b(ji,jj,Krhs_a)-zub(ji,jj))*umask(ji,jj,jk) 189 END DO 190 END DO 191 END DO 192 193 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 194 ibdy1 = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 195 ibdy2 = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 196 DO ji = mi0(ibdy1), mi1(ibdy2) 197 zvb(ji,:) = 0._wp 198 DO jk = 1, jpkm1 196 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 197 ibdy1 = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 198 ibdy2 = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 199 DO ji = mi0(ibdy1), mi1(ibdy2) 200 zvb(ji,:) = 0._wp 201 DO jk = 1, jpkm1 202 DO jj = 1, jpj 203 zvb(ji,jj) = zvb(ji,jj) & 204 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 205 END DO 206 END DO 199 207 DO jj = 1, jpj 200 zvb(ji,jj) = zvb(ji,jj) & 208 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 209 END DO 210 DO jk = 1, jpkm1 211 DO jj = 1, jpj 212 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 213 & + vv_b(ji,jj,Krhs_a)-zvb(ji,jj)) * vmask(ji,jj,jk) 214 END DO 215 END DO 216 END DO 217 ENDIF 218 ENDIF 219 220 ! --- South --- ! 221 IF( lk_south ) THEN 222 jbdy1 = nn_hls + 2 ! halo + land + 1 223 jbdy2 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 224 ! 225 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 226 DO jj = mj0(jbdy1), mj1(jbdy2) 227 vv_b(:,jj,Krhs_a) = 0._wp 228 DO jk = 1, jpkm1 229 DO ji = 1, jpi 230 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) & 231 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 232 END DO 233 END DO 234 DO ji=1,jpi 235 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) * r1_hv(ji,jj,Krhs_a) 236 END DO 237 END DO 238 ENDIF 239 ! 240 DO jj = mj0(jbdy1), mj1(jbdy2) 241 zvb(:,jj) = 0._wp ! Correct transport 242 DO jk=1,jpkm1 243 DO ji=1,jpi 244 zvb(ji,jj) = zvb(ji,jj) & 201 245 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 202 246 END DO 203 247 END DO 204 DO j j = 1, jpj248 DO ji = 1, jpi 205 249 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 206 250 END DO 207 DO jk = 1, jpkm1 208 DO jj = 1, jpj 209 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 210 & + vv_b(ji,jj,Krhs_a)-zvb(ji,jj)) * vmask(ji,jj,jk) 211 END DO 212 END DO 213 END DO 214 ENDIF 215 216 ! --- South --- ! 217 jbdy1 = nn_hls + 2 ! halo + land + 1 218 jbdy2 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 219 ! 220 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 221 DO jj = mj0(jbdy1), mj1(jbdy2) 222 vv_b(:,jj,Krhs_a) = 0._wp 251 223 252 DO jk = 1, jpkm1 224 253 DO ji = 1, jpi 225 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) & 226 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 227 END DO 228 END DO 229 DO ji=1,jpi 230 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) * r1_hv(ji,jj,Krhs_a) 231 END DO 232 END DO 233 ENDIF 234 ! 235 DO jj = mj0(jbdy1), mj1(jbdy2) 236 zvb(:,jj) = 0._wp ! Correct transport 237 DO jk=1,jpkm1 238 DO ji=1,jpi 239 zvb(ji,jj) = zvb(ji,jj) & 240 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 241 END DO 242 END DO 243 DO ji = 1, jpi 244 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 245 END DO 246 247 DO jk = 1, jpkm1 254 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 255 & + vv_b(ji,jj,Krhs_a) - zvb(ji,jj) ) * vmask(ji,jj,jk) 256 END DO 257 END DO 258 END DO 259 260 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 261 DO jj = mj0(jbdy1), mj1(jbdy2) 262 zub(:,jj) = 0._wp 263 DO jk = 1, jpkm1 264 DO ji = 1, jpi 265 zub(ji,jj) = zub(ji,jj) & 266 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 267 END DO 268 END DO 269 DO ji = 1, jpi 270 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 271 END DO 272 273 DO jk = 1, jpkm1 274 DO ji = 1, jpi 275 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 276 & + uu_b(ji,jj,Krhs_a) - zub(ji,jj) ) * umask(ji,jj,jk) 277 END DO 278 END DO 279 END DO 280 ENDIF 281 ENDIF 282 283 ! --- North --- ! 284 IF( lk_north ) THEN 285 jbdy1 = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 286 jbdy2 = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 287 ! 288 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 289 DO jj = mj0(jbdy1), mj1(jbdy2) 290 vv_b(:,jj,Krhs_a) = 0._wp 291 DO jk = 1, jpkm1 292 DO ji = 1, jpi 293 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) & 294 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 295 END DO 296 END DO 297 DO ji=1,jpi 298 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) * r1_hv(ji,jj,Krhs_a) 299 END DO 300 END DO 301 ENDIF 302 ! 303 DO jj = mj0(jbdy1), mj1(jbdy2) 304 zvb(:,jj) = 0._wp ! Correct transport 305 DO jk=1,jpkm1 306 DO ji=1,jpi 307 zvb(ji,jj) = zvb(ji,jj) & 308 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 309 END DO 310 END DO 248 311 DO ji = 1, jpi 249 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 250 & + vv_b(ji,jj,Krhs_a) - zvb(ji,jj) ) * vmask(ji,jj,jk) 251 END DO 252 END DO 253 END DO 254 255 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 256 DO jj = mj0(jbdy1), mj1(jbdy2) 257 zub(:,jj) = 0._wp 312 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 313 END DO 314 258 315 DO jk = 1, jpkm1 259 316 DO ji = 1, jpi 260 zub(ji,jj) = zub(ji,jj) & 261 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 262 END DO 263 END DO 264 DO ji = 1, jpi 265 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 266 END DO 317 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 318 & + vv_b(ji,jj,Krhs_a) - zvb(ji,jj) ) * vmask(ji,jj,jk) 319 END DO 320 END DO 321 END DO 322 323 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 324 jbdy1 = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 325 jbdy2 = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 326 DO jj = mj0(jbdy1), mj1(jbdy2) 327 zub(:,jj) = 0._wp 328 DO jk = 1, jpkm1 329 DO ji = 1, jpi 330 zub(ji,jj) = zub(ji,jj) & 331 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 332 END DO 333 END DO 334 DO ji = 1, jpi 335 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 336 END DO 267 337 268 DO jk = 1, jpkm1 269 DO ji = 1, jpi 270 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 271 & + uu_b(ji,jj,Krhs_a) - zub(ji,jj) ) * umask(ji,jj,jk) 272 END DO 273 END DO 274 END DO 275 ENDIF 276 277 ! --- North --- ! 278 jbdy1 = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 279 jbdy2 = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 280 ! 281 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 282 DO jj = mj0(jbdy1), mj1(jbdy2) 283 vv_b(:,jj,Krhs_a) = 0._wp 284 DO jk = 1, jpkm1 285 DO ji = 1, jpi 286 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) & 287 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 288 END DO 289 END DO 290 DO ji=1,jpi 291 vv_b(ji,jj,Krhs_a) = vv_b(ji,jj,Krhs_a) * r1_hv(ji,jj,Krhs_a) 292 END DO 293 END DO 294 ENDIF 295 ! 296 DO jj = mj0(jbdy1), mj1(jbdy2) 297 zvb(:,jj) = 0._wp ! Correct transport 298 DO jk=1,jpkm1 299 DO ji=1,jpi 300 zvb(ji,jj) = zvb(ji,jj) & 301 & + e3v(ji,jj,jk,Krhs_a) * vv(ji,jj,jk,Krhs_a) * vmask(ji,jj,jk) 302 END DO 303 END DO 304 DO ji = 1, jpi 305 zvb(ji,jj) = zvb(ji,jj) * r1_hv(ji,jj,Krhs_a) 306 END DO 307 308 DO jk = 1, jpkm1 309 DO ji = 1, jpi 310 vv(ji,jj,jk,Krhs_a) = ( vv(ji,jj,jk,Krhs_a) & 311 & + vv_b(ji,jj,Krhs_a) - zvb(ji,jj) ) * vmask(ji,jj,jk) 312 END DO 313 END DO 314 END DO 315 316 IF( ln_dynspg_ts ) THEN ! Set tangential velocities to time splitting estimate 317 jbdy1 = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 318 jbdy2 = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 319 DO jj = mj0(jbdy1), mj1(jbdy2) 320 zub(:,jj) = 0._wp 321 DO jk = 1, jpkm1 322 DO ji = 1, jpi 323 zub(ji,jj) = zub(ji,jj) & 324 & + e3u(ji,jj,jk,Krhs_a) * uu(ji,jj,jk,Krhs_a) * umask(ji,jj,jk) 325 END DO 326 END DO 327 DO ji = 1, jpi 328 zub(ji,jj) = zub(ji,jj) * r1_hu(ji,jj,Krhs_a) 329 END DO 330 331 DO jk = 1, jpkm1 332 DO ji = 1, jpi 333 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 334 & + uu_b(ji,jj,Krhs_a) - zub(ji,jj) ) * umask(ji,jj,jk) 335 END DO 336 END DO 337 END DO 338 DO jk = 1, jpkm1 339 DO ji = 1, jpi 340 uu(ji,jj,jk,Krhs_a) = ( uu(ji,jj,jk,Krhs_a) & 341 & + uu_b(ji,jj,Krhs_a) - zub(ji,jj) ) * umask(ji,jj,jk) 342 END DO 343 END DO 344 END DO 345 ENDIF 338 346 ENDIF 339 347 ! … … 354 362 ! 355 363 !--- West ---! 356 istart = nn_hls + 2 ! halo + land + 1 357 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 358 DO ji = mi0(istart), mi1(iend) 359 DO jj=1,jpj 360 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 361 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 362 END DO 363 END DO 364 IF( lk_west ) THEN 365 istart = nn_hls + 2 ! halo + land + 1 366 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 367 DO ji = mi0(istart), mi1(iend) 368 DO jj=1,jpj 369 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 370 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 371 END DO 372 END DO 373 ENDIF 364 374 ! 365 375 !--- East ---! 366 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 367 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 368 DO ji = mi0(istart), mi1(iend) 369 DO jj=1,jpj 370 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 371 END DO 372 END DO 373 istart = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 374 iend = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 375 DO ji = mi0(istart), mi1(iend) 376 DO jj=1,jpj 377 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 378 END DO 379 END DO 376 IF( lk_east ) THEN 377 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 378 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 379 DO ji = mi0(istart), mi1(iend) 380 DO jj=1,jpj 381 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 382 END DO 383 END DO 384 istart = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 385 iend = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 386 DO ji = mi0(istart), mi1(iend) 387 DO jj=1,jpj 388 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 389 END DO 390 END DO 391 ENDIF 380 392 ! 381 393 !--- South ---! 382 jstart = nn_hls + 2 ! halo + land + 1 383 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 384 DO jj = mj0(jstart), mj1(jend) 385 DO ji=1,jpi 386 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 387 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 388 END DO 389 END DO 394 IF( lk_south ) THEN 395 jstart = nn_hls + 2 ! halo + land + 1 396 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 397 DO jj = mj0(jstart), mj1(jend) 398 DO ji=1,jpi 399 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 400 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 401 END DO 402 END DO 403 ENDIF 390 404 ! 391 405 !--- North ---! 392 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 393 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 394 DO jj = mj0(jstart), mj1(jend) 395 DO ji=1,jpi 396 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 397 END DO 398 END DO 399 jstart = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 400 jend = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 401 DO jj = mj0(jstart), mj1(jend) 402 DO ji=1,jpi 403 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 404 END DO 405 END DO 406 IF( lk_north ) THEN 407 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 408 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 409 DO jj = mj0(jstart), mj1(jend) 410 DO ji=1,jpi 411 ua_e(ji,jj) = ubdy(ji,jj) * hur_e(ji,jj) 412 END DO 413 END DO 414 jstart = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 415 jend = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 416 DO jj = mj0(jstart), mj1(jend) 417 DO ji=1,jpi 418 va_e(ji,jj) = vbdy(ji,jj) * hvr_e(ji,jj) 419 END DO 420 END DO 421 ENDIF 406 422 ! 407 423 END SUBROUTINE Agrif_dyn_ts … … 421 437 ! 422 438 !--- West ---! 423 istart = nn_hls + 2 ! halo + land + 1 424 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 425 DO ji = mi0(istart), mi1(iend) 426 DO jj=1,jpj 427 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 428 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 429 END DO 430 END DO 439 IF( lk_west ) THEN 440 istart = nn_hls + 2 ! halo + land + 1 441 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 442 DO ji = mi0(istart), mi1(iend) 443 DO jj=1,jpj 444 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 445 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 446 END DO 447 END DO 448 ENDIF 431 449 ! 432 450 !--- East ---! 433 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 434 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 435 DO ji = mi0(istart), mi1(iend) 436 DO jj=1,jpj 437 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 438 END DO 439 END DO 440 istart = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 441 iend = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 442 DO ji = mi0(istart), mi1(iend) 443 DO jj=1,jpj 444 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 445 END DO 446 END DO 451 IF( lk_east ) THEN 452 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 453 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 454 DO ji = mi0(istart), mi1(iend) 455 DO jj=1,jpj 456 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 457 END DO 458 END DO 459 istart = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 460 iend = jpiglo - ( nn_hls + 2 ) ! halo + land + 1 461 DO ji = mi0(istart), mi1(iend) 462 DO jj=1,jpj 463 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 464 END DO 465 END DO 466 ENDIF 447 467 ! 448 468 !--- South ---! 449 jstart = nn_hls + 2 ! halo + land + 1 450 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 451 DO jj = mj0(jstart), mj1(jend) 452 DO ji=1,jpi 453 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 454 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 455 END DO 456 END DO 469 IF( lk_south ) THEN 470 jstart = nn_hls + 2 ! halo + land + 1 471 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 472 DO jj = mj0(jstart), mj1(jend) 473 DO ji=1,jpi 474 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 475 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 476 END DO 477 END DO 478 ENDIF 457 479 ! 458 480 !--- North ---! 459 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 460 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 461 DO jj = mj0(jstart), mj1(jend) 462 DO ji=1,jpi 463 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 464 END DO 465 END DO 466 jstart = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 467 jend = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 468 DO jj = mj0(jstart), mj1(jend) 469 DO ji=1,jpi 470 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 471 END DO 472 END DO 481 IF( lk_north ) THEN 482 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 483 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 484 DO jj = mj0(jstart), mj1(jend) 485 DO ji=1,jpi 486 zu(ji,jj) = ubdy(ji,jj) * e2u(ji,jj) 487 END DO 488 END DO 489 jstart = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells 490 jend = jpjglo - ( nn_hls + 2 ) ! halo + land + 1 491 DO jj = mj0(jstart), mj1(jend) 492 DO ji=1,jpi 493 zv(ji,jj) = vbdy(ji,jj) * e1v(ji,jj) 494 END DO 495 END DO 496 ENDIF 473 497 ! 474 498 END SUBROUTINE Agrif_dyn_ts_flux … … 489 513 ! 490 514 ! Enforce volume conservation if no time refinement: 491 IF ( Agrif_rhot()==1 ) ll_int_cons=.TRUE.515 IF ( Agrif_rhot()==1 ) ll_int_cons=.TRUE. 492 516 ! 493 517 ! Interpolate barotropic fluxes … … 542 566 ! 543 567 ! --- West --- ! 544 istart = nn_hls + 2 ! halo + land + 1 545 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 546 DO ji = mi0(istart), mi1(iend) 547 DO jj = 1, jpj 548 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 568 IF( lk_west ) THEN 569 istart = nn_hls + 2 ! halo + land + 1 570 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 571 DO ji = mi0(istart), mi1(iend) 572 DO jj = 1, jpj 573 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 574 ENDDO 549 575 ENDDO 550 END DO576 ENDIF 551 577 ! 552 578 ! --- East --- ! 553 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 554 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 555 DO ji = mi0(istart), mi1(iend) 556 DO jj = 1, jpj 557 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 579 IF( lk_east ) THEN 580 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 581 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 582 DO ji = mi0(istart), mi1(iend) 583 DO jj = 1, jpj 584 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 585 ENDDO 558 586 ENDDO 559 END DO587 ENDIF 560 588 ! 561 589 ! --- South --- ! 562 jstart = nn_hls + 2 ! halo + land + 1 563 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 564 DO jj = mj0(jstart), mj1(jend) 565 DO ji = 1, jpi 566 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 590 IF( lk_south ) THEN 591 jstart = nn_hls + 2 ! halo + land + 1 592 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 593 DO jj = mj0(jstart), mj1(jend) 594 DO ji = 1, jpi 595 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 596 ENDDO 567 597 ENDDO 568 END DO598 ENDIF 569 599 ! 570 600 ! --- North --- ! 571 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 572 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 573 DO jj = mj0(jstart), mj1(jend) 574 DO ji = 1, jpi 575 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 601 IF( lk_north ) THEN 602 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 603 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 604 DO jj = mj0(jstart), mj1(jend) 605 DO ji = 1, jpi 606 ssh(ji,jj,Krhs_a) = hbdy(ji,jj) 607 ENDDO 576 608 ENDDO 577 END DO609 ENDIF 578 610 ! 579 611 END SUBROUTINE Agrif_ssh … … 593 625 ! 594 626 ! --- West --- ! 595 istart = nn_hls + 2 ! halo + land + 1 596 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 597 DO ji = mi0(istart), mi1(iend) 598 DO jj = 1, jpj 599 ssha_e(ji,jj) = hbdy(ji,jj) 627 IF( lk_west ) THEN 628 istart = nn_hls + 2 ! halo + land + 1 629 iend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 630 DO ji = mi0(istart), mi1(iend) 631 DO jj = 1, jpj 632 ssha_e(ji,jj) = hbdy(ji,jj) 633 ENDDO 600 634 ENDDO 601 END DO635 ENDIF 602 636 ! 603 637 ! --- East --- ! 604 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 605 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 606 DO ji = mi0(istart), mi1(iend) 607 DO jj = 1, jpj 608 ssha_e(ji,jj) = hbdy(ji,jj) 638 IF( lk_east ) THEN 639 istart = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 640 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 641 DO ji = mi0(istart), mi1(iend) 642 DO jj = 1, jpj 643 ssha_e(ji,jj) = hbdy(ji,jj) 644 ENDDO 609 645 ENDDO 610 END DO646 ENDIF 611 647 ! 612 648 ! --- South --- ! 613 jstart = nn_hls + 2 ! halo + land + 1 614 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 615 DO jj = mj0(jstart), mj1(jend) 616 DO ji = 1, jpi 617 ssha_e(ji,jj) = hbdy(ji,jj) 649 IF( lk_south ) THEN 650 jstart = nn_hls + 2 ! halo + land + 1 651 jend = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 652 DO jj = mj0(jstart), mj1(jend) 653 DO ji = 1, jpi 654 ssha_e(ji,jj) = hbdy(ji,jj) 655 ENDDO 618 656 ENDDO 619 END DO657 ENDIF 620 658 ! 621 659 ! --- North --- ! 622 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 623 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 624 DO jj = mj0(jstart), mj1(jend) 625 DO ji = 1, jpi 626 ssha_e(ji,jj) = hbdy(ji,jj) 660 IF( lk_north ) THEN 661 jstart = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 662 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 663 DO jj = mj0(jstart), mj1(jend) 664 DO ji = 1, jpi 665 ssha_e(ji,jj) = hbdy(ji,jj) 666 ENDDO 627 667 ENDDO 628 END DO668 ENDIF 629 669 ! 630 670 END SUBROUTINE Agrif_ssh_ts
Note: See TracChangeset
for help on using the changeset viewer.