C PART SOURCE FANDEUR 11/04/12 21:16:18 6938 * partitionne le maillage ou le modele * SUBROUTINE PART IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC CCOPTIO -INC CCASSIS SEGMENT IPOS(0) SEGMENT ICPR(0) SEGMENT IADJ(0) SEGMENT JADJC(0) character*4 mcle(1) data mcle/'NOOP'/ call lirmot(mcle,1,iretmo,0) if (ierr.ne.0) return call lirobj('MAILLAGE',meleme,0,iretou) if (ierr.ne.0) return if( iretou.eq.0) go to 100 C partition d'un MAILLAGE nbzone=max(1,nbesc) nb=(LOG(float(nbzone))/LOG(2.))+1.e-6 nbzone=2**nb call lirent(nbzone,0,iretou) if (ierr.ne.0) return if (iretmo.ne.0) then call part5(meleme,itab,nbzone) goto 1000 endif nbzon=max(1,nbzone) nb=(LOG(float(nbzon))/LOG(2.))+1.e-6 if (2**nb.ne.nbzone) THEN interr(1)=nbzone call erreur(36) return endif * on reprend ce qui est fait dans la renumerotation en N-D call part2(meleme,IPOS,nb,ICPR,iadj,jadjc) * write(ioimp,*) ' apres part2 ierr ',ierr nodes=ipos(/1)/3 call part4(meleme,IPOS,icpr,nb,itab,iadj,jadjc) * write(ioimp,*) ' apres part4 ierr ',ierr GO TO 1000 100 CONTINUE C partition d'un MODELE call lirobj('MMODEL',ipmodl,0,iretou) if (ierr.ne.0) return if(iretou.eq.0) then call erreur (21) return endif call lirent(nzo,1,iretou) if (ierr.ne.0) return if (nzo.lt.1) then interr(1) = nzo call erreur(36) return endif c* nbzone=max(1,nbesc) c* nzo = min(nzo,nbzone) call part6(nzo,ipmodl,itab,ireter) if(ireter.ne.0) return 1000 continue * write(ioimp,*) ' avant ecrobj itab ierr ',itab,ierr call ecrobj('TABLE',itab) RETURN END