Download ordon4.eso

Back to the list

   1 : C ORDON4    SOURCE    PV        09/11/16    21:15:14     6538           
   2 :       SUBROUTINE ORDON4  (MELEME)
   3 : ************************************************************************
   4 : *                             O R D O N N
   5 : *                             -----------
   6 : *            SOUS-PROGRAMME ASSOCIE A LA DIRECTIVE "ORDONNER"
   7 : * FONCTION:
   8 : * ---------
   9 : *   reordonner une ligne de seg2 ou seg3
  10 : *     
  11 : *   on ordonne selon la proximite au premier pt pour des POI1 (PP 97)
  12 : *     
  13 : C+PP  
  14 :       IMPLICIT INTEGER(I-N)
  15 :       IMPLICIT REAL*8 (A-H,O-Z)
  16 : C+PP  
  17 : -INC CCOPTIO
  18 : -INC SMELEME
  19 :       SEGMENT TTRAV
  20 :       INTEGER     ILIS(NNOE)
  21 :       ENDSEGMENT
  22 : C+PP  
  23 : -INC SMLREEL
  24 : -INC SMLENTI
  25 : -INC SMCOORD
  26 : -INC TMCOLAC
  27 :       DIMENSION P(3)
  28 : C+PP  
  29 : *     
  30 : * on verifie d'abord que l'objet est simple
  31 : *     
  32 :       icompl=0
  33 :       SEGACT MELEME
  34 :       IF(LISOUS(/1).NE.0.OR.ITYPEL.GT.3) then
  34 :         CALL RENUEL(MELEME)
  35 :         return
  36 :       endif
  37 : C+PP  
  38 :       IF(ITYPEL.EQ.1)THEN
  39 :          SEGACT,MELEME*MOD
  40 :          NBELEM=ICOLOR(/1)
  41 : C Si le nombre d'éléments POI1 est inférieur ou égal à 2
  42 : C Il n'y a rien à faire
  43 :          IF(NBELEM.LE.2) GOTO 9998
  44 :          IREF=NUM(1,1)
  45 :          IREF=(IDIM+1)*(IREF-1)
  46 :          DO IE1=1,IDIM
  47 :             P(IE1)=XCOOR(IREF+IE1)
  48 :          ENDDO
  49 :          JG=NBELEM-1
  50 :          SEGINI,MLREEL,MLENTI
  51 :          DO IE1=1,JG
  52 :             IREF=NUM(1,IE1+1)
  53 :             LECT(IE1)=IREF
  54 :             IREF=(IDIM+1)*(IREF-1)
  55 :             DIST2=0.D0
  56 :             DO IE2=1,IDIM
  57 :                DIST2=DIST2+(P(IE2)-XCOOR(IREF+IE2))**2
  58 :             ENDDO
  59 :             PROG(IE1)=DIST2
  60 :          ENDDO
  60 :          CALL GENOS2(PROG,LECT,JG)
  61 :          DO IE1=1,JG
  62 :             NUM(1,IE1+1)=LECT(IE1)
  63 :          ENDDO
  64 :          SEGSUP,MLREEL,MLENTI
  65 :       ELSE
  66 : C+PP  
  66 :          CALL LIGMAI(MELEME,TTRAV,0)
  67 :          IF(IERR.NE.0) RETURN
  68 :          SEGACT TTRAV
  69 :          SEGACT MELEME*MOD
  70 :          IA=1
  71 :          DO 1 I=1,NUM(/2)
  72 :             IA=IA-1
  73 :             DO 2 J=1,NUM(/1)
  74 :                IA=IA+1
  75 :                NUM(J,I)=ILIS(IA)
  76 :  2          CONTINUE
  77 :  1       CONTINUE
  78 :          SEGSUP TTRAV
  79 :       ENDIF
  80 :  9998 CONTINUE
  81 :       SEGDES,MELEME
  82 : c
  83 :       IF(IPSAUV.NE.0) THEN
  84 :         ICOLAC = IPSAUV
  85 :         SEGACT ICOLAC
  86 :         ILISSE=ILISSG
  87 :         SEGACT ILISSE*MOD
  87 :         CALL TYPFIL('MAILLAGE',ICO)
  88 :            ITLACC = KCOLA(ICO)
  89 :            SEGACT ITLACC*MOD
  89 :           CALL AJOUN0(ITLACC,MELEME,ILISSE,1) 
  90 :           SEGDES ICOLAC,ILISSE   
  91 :          ENDIF   
  92 :       RETURN
  93 :       END
  94 : 
  95 :  
  96 :  
  97 :  
  98 :  
  99 :  
 100 :  
 101 :  
 102 :  
 103 :  
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer