Download bloqu2.eso

Back to the list

   1 : C BLOQU2    SOURCE    KICH      07/11/15    21:15:02     5970           
   2 :       SUBROUTINE BLOQU2(IPT)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : -INC SMTABLE
   6 : -INC CCOPTIO
   7 :       segment lispoi
   8 :        INTEGER pilpoi(mpoin),pilmul(mpoin)
   9 :       endsegment
  10 :       CHARACTER*4 MOTPV(3),charre          
  11 :       CHARACTER*4 MODEPL(6),MODEDU(6)
  12 :       CHARACTER*4 MOPRIN(10),MODUAL(10)
  13 :       CHARACTER*4 MOROTA(5),MORODU(5)
  14 :       DATA MODEPL / 'UX  ','UY  ','UZ  ','UR  ','UZ  ','UT  ' /
  15 :       DATA MODEDU / 'FX  ','FY  ','FZ  ','FR  ','FZ  ','FT  ' /
  16 :       DATA MOROTA / 'RX  ','RY  ','RZ  ','RT  ','RS  ' /
  17 :       DATA MORODU / 'MX  ','MY  ','MZ  ','MT  ','MS  ' /
  18 : 
  19 :       do ii = 1,4
  20 :         moprin(ii) = modepl(ii)
  21 :         modual(ii) = modedu(ii)
  22 :       enddo
  23 :         moprin(5) = modepl(6) 
  24 :         modual(5) = modedu(6) 
  25 :       do ii = 1,5
  26 :         moprin(5+ii) = morota(ii)
  27 :         modual(5+ii) = morodu(ii)
  28 :       enddo
  29 :       krig = 0
  30 :       mtable = ipt
  31 :       segact mtable
  32 :       ima = mlotab - 1 
  33 :       if (ima.eq.1) RETURN 
  34 :       DO kmo = 1,10
  35 :         mpoin = 50
  36 :         kpoin = 0
  37 :         segini lispoi
  38 :         do im = 1,ima
  38 :            CALL ACCTAB(IPT,'ENTIER',IM,0.d0,' ',.true.,IP0,
  39 :      &                   'TABLE',I1,X1,CHARRE,.true.,ITMOD)
  40 :            if (ierr.ne.0) return
  40 :            CALL ACCTAB(ITMOD,'MOT',I0,X0,'DDL_LIAISON',.true.,IP0,
  41 :      &                      'MOT',I1,X1,charre,.true.,IPTS)
  42 :            if (ierr.ne.0) return
  43 :           IF (charre.eq.moprin(kmo)) THEN
  43 :            CALL ACCTAB(ITMOD,'MOT',I0,X0,'POINT_LIAISON',.true.,IP0,
  44 :      &                      'POINT',I1,X1,charre,.true.,IPTS)
  45 :            if (ierr.ne.0) return
  46 : c
  47 : c
  48 :             do ik = 1,kpoin
  49 :               if (ipts.eq.pilpoi(ik)) then
  50 : c          write(6,*)'combinaison point -ddl déjà traitée', ipts,charre
  51 :                goto 1120
  52 :               endif
  53 :             enddo 
  54 :             kpoin = kpoin + 1
  55 : 
  56 :             if (kpoin.gt.mpoin) then
  57 :               mpoin = mpoin + 50
  58 :               segadj lispoi
  59 :             endif
  60 :             pilpoi(kpoin) = IPTS
  61 : 
  61 :            call ecrcha(charre)
  61 :            call ecrobj('POINT',IPTS)
  61 :            call bloque
  61 :            call lirobj('RIGIDITE',ir1, 1,iretou)
  62 :            if(ierr.ne.0) return
  62 :            CALL ECCTAB(ITMOD,'MOT',0,0.0D0,'BLOCAGE',.TRUE.,IPO,
  63 :      &        'RIGIDITE',0,0.0D0,' ',.TRUE.,ir1)
  64 :            krig = krig + 1
  65 :            if (krig.eq.1) then 
  66 :               ir2 = ir1
  67 :            else
  67 :               call fusrig(ir1,ir2,irt)
  68 :               if (ierr.ne.0) return
  69 :              ir2 = irt
  70 :            endif    
  71 : 
  72 :           ENDIF 
  73 :  1120     continue
  74 :         enddo
  75 :         if (kpoin.eq.0) goto 1130
  76 :  
  77 :  1130   segsup lispoi
  78 :       ENDDO
  79 : 
  80 : 
  80 :       CALL ECROBJ('RIGIDITE',ir2)
  81 : 
  82 :       RETURN
  83 :      
  84 :       END
  85 :  

© Cast3M 2003 - All rights reserved.
Disclaimer