Changeset 169
- Timestamp:
- 2004-11-05T14:52:19+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/mppini_2.h90
r128 r169 43 43 44 44 !! Local variables 45 CHARACTER (len=25) :: clexp,& ! temporary name45 CHARACTER (len=25) :: & ! temporary name 46 46 clname , clvar ! filename and cdf variable name for bathy 47 47 LOGICAL :: llbon ! check the existence of bathy files … … 50 50 INTEGER :: & 51 51 ii, ij, ifreq, il1, il2, & ! temporary integers 52 i im, ijm, icont, ili, ilj,& ! " "52 icont, ili, ilj, & ! " " 53 53 isurf, ijm1, imil, & ! " " 54 54 iino, ijno, iiso, ijso, & ! " " … … 71 71 INTEGER, DIMENSION (1) :: istep 72 72 73 INTEGER, DIMENSION(jpidta,jpjdta) :: &74 idata ! temporary data workspace75 73 INTEGER, DIMENSION(jpiglo,jpjglo) :: & 76 74 imask ! temporary global workspace … … 82 80 REAL(wp) :: zidom , zjdom, & ! temporary scalars 83 81 zdt, zdate0 84 82 85 83 !!---------------------------------------------------------------------- 86 84 !! OPA 8.5, LODYC-IPSL (2002) … … 140 138 ELSE 141 139 IF(lwp) WRITE(numout,cform_err) 142 IF(lwp) WRITE(numout,*)' mppini_2 : unable to read the file ', clname140 IF(lwp) WRITE(numout,*)' mppini_2 : unable to read the file ', clname 143 141 nstop = nstop + 1 144 142 ENDIF … … 146 144 ! land/sea mask over the global/zoom domain 147 145 148 WHERE ( zdta(jpizoom:jpiglo+jpizoom-1, jpjzoom:jpjglo+jpjzoom-1) == 0. ) imask = 0 146 imask(:,:)=1 147 WHERE ( zdta(jpizoom:jpiglo+jpizoom-1, jpjzoom:jpjglo+jpjzoom-1) <== 0. ) imask = 0 149 148 150 149 … … 157 156 ! dimensions divided by the number of processors minus the overlap 158 157 ! array. 159 158 160 159 nreci=2*jpreci 161 160 nrecj=2*jprecj … … 166 165 ilci(iresti+1:jpni ,:) = jpi-1 167 166 168 ilcj( 1:irestj ,:) = jpj169 ilcj( irestj+1:jpnj ,:) = jpj-1167 ilcj(:, 1:irestj) = jpj 168 ilcj(:, irestj+1:jpnj) = jpj-1 170 169 171 170 IF(lwp) WRITE(numout,*) … … 192 191 ijmppt(:,:) = 1 193 192 ipproc(:,:) = -1 194 193 195 194 IF( jpni > 1 )THEN 196 195 DO jj = 1, jpnj … … 208 207 END DO 209 208 ENDIF 210 211 209 210 212 211 ! 3. Subdomain description in the Regular Case 213 212 ! -------------------------------------------- 214 213 215 214 nperio = 0 216 215 icont = -1 … … 220 219 ili = ilci(ii,ij) 221 220 ilj = ilcj(ii,ij) 222 221 223 222 ibondj(ii,ij) = -1 224 223 IF( jarea > jpni ) ibondj(ii,ij) = 0 225 224 IF( jarea > (jpnj-1)*jpni ) ibondj(ii,ij) = 1 226 225 IF( jpnj == 1 ) ibondj(ii,ij) = 2 227 226 228 227 ibondi(ii,ij) = 0 229 228 IF( MOD(jarea,jpni) == 1 ) ibondi(ii,ij) = -1 230 229 IF( MOD(jarea,jpni) == 0 ) ibondi(ii,ij) = 1 231 230 IF( jpni == 1 ) ibondi(ii,ij) = 2 232 231 233 232 ! 2.4 Subdomain neighbors 234 233 235 234 iproc = jarea - 1 236 235 ioso(ii,ij) = iproc - jpni … … 270 269 IF( ibondj(ii,ij) == -1 .OR. ibondj(ii,ij) == 2 ) ildj(ii,ij) = 1 271 270 IF( ibondj(ii,ij) == 1 .OR. ibondj(ii,ij) == 2 ) ilej(ii,ij) = ilj 272 271 273 272 ! warning ii*ij (zone) /= nproc (processors)! 274 273 275 274 IF( jperio == 1 .OR. jperio == 4 .OR. jperio == 6 ) THEN 276 275 IF( jpni == 1 )THEN … … 303 302 ENDIF 304 303 ENDIF 305 ipolj(ii, jj) = 0304 ipolj(ii,ij) = 0 306 305 IF( jperio == 3 .OR. jperio == 4 ) THEN 307 306 ijm1 = jpni*(jpnj-1) … … 318 317 IF( ipolj(ii,ij) == 5) iono(ii,ij) = jpni*jpnj-jarea+ijm1 319 318 ENDIF 320 319 321 320 isurf = 0 322 321 DO jj = 1, ilj … … 332 331 ENDIF 333 332 END DO 334 333 335 334 ! Control 336 335 IF(icont+1 /= jpnij) THEN … … 347 346 STOP 'mpp_init2' 348 347 ENDIF 349 350 348 349 351 350 ! 4. Subdomain print 352 351 ! ------------------ 353 352 354 353 IF(lwp) THEN 355 354 ifreq = 4 … … 381 380 ! 5. neighbour treatment 382 381 ! ---------------------- 383 382 384 383 DO jarea = 1, jpni*jpnj 385 384 iproc = jarea-1 … … 435 434 ENDIF 436 435 END DO 437 438 436 437 439 438 ! 6. Change processor name 440 439 ! ------------------------ 441 440 442 441 nproc = narea-1 443 442 ii = iin(narea) … … 527 526 528 527 ! FETI method 529 528 530 529 IF( nperio == 1 .AND. nsolv == 3 ) THEN 531 530 532 531 ! general CASE : Earth == infinite tube 533 532 534 533 nbnw = 1 535 534 npnw = narea … … 540 539 nbse = 1 541 540 npse = (narea-2) 542 541 543 542 ! REAL boundary condition 544 543 545 544 IF( nbondj == -1 .OR. nbondj == 2 ) THEN 546 545 nbsw = 0 547 546 nbse = 0 548 547 ENDIF 549 548 550 549 IF( nbondj == -1 .OR. nbondj == 2 ) THEN 551 550 nbsw = 0 552 551 nbse = 0 553 552 ENDIF 554 553 555 554 IF( nbondj == 1 .OR. nbondj == 2 ) THEN 556 555 nbnw = 0 … … 558 557 ENDIF 559 558 ENDIF 560 559 561 560 ! Periodicity : no corner if nbondi = 2 and nperio != 1 562 561 563 562 IF(lwp) WRITE(numout,*) ' nproc= ',nproc 564 563 IF(lwp) WRITE(numout,*) ' nowe= ',nowe
Note: See TracChangeset
for help on using the changeset viewer.