Download s0ajno.eso

Back to the list

   1 : C S0AJNO    SOURCE    CHAT      06/03/29    21:32:42     5360           
   2 : C     *****************************************************************
   3 : C     MODULE  : ST (STRUCTURE DES DONNEES)
   4 : C     FICHIER : ST_0DSTRUCT.F
   5 : C     OBJET   : AJOUT DE POINTS DANS UN MAILLAGE
   6 : C     FONCT.  : 
   7 : C               S0AJNO  : AJOUTE UN POINT ISOLE OU LIBRE
   8 : C               S0DTNO  : SUPPRIME LE POINT ISOLE OU LIBRE 
   9 : C
  10 : C     AUTEUR  : O. STAB  
  11 : C     DATE    : 03.95
  12 : C     TESTS   : A FAIRE
  13 : C     MODIFICATIONS :
  14 : C      AUTEUR, DATE, OBJET :
  15 : C
  16 : C
  17 : C     *****************************************************************
  18 : C
  19 : C
  20 :       SUBROUTINE S0AJNO(XYZ,COORD,IDIMC,NBN,NBNMAX,
  21 :      >                     NOETRI,NOEMAX,NNEW,iarr)
  22 : C     *****************************************************************
  23 : C     OBJET : AJOUTE UN POINT ISOLE OU LIBRE
  24 : C     EN ENTREE :
  25 : C        XYZ   : TABLEAU DES COORDONNEES DU POINT
  26 : C        COORD : TABLEAU DES COORDONNEES DE TOUS LES POINTS
  27 : C        IDIMC : DIMENSION DE L'ESPACE
  28 : C        NBN   : NOMBRE DE NOEUDS DEJA EXISTANT
  29 : C        NBNMAX: NOMBRE MAXIMUM DE NOEUD DANS COORD
  30 : C        NOEMAX : SI = 0 NOETRI N'EST PAS MIS A JOUR
  31 : C                   SINON NOEMAX = TAILLE DE NOETRI
  32 : C     EN SORTIE : 
  33 : C        COORD, NOETRI ET NBN MODIFIES
  34 : C        NNEW  : NUMERO DU NOEUD AJOUTE
  35 : C        iarr  : CODE D'ERREUR 0 SI OK, -2 SI COORD EST TROP PETIT
  36 : C     *****************************************************************
  37 :       IMPLICIT INTEGER(I-N)
  38 :       REAL*8 XYZ(*),COORD(*)
  39 :       INTEGER IDIMC,NBN,NBNMAX,iarr
  40 :       INTEGER NOETRI(*),NOEMAX,NNEW
  41 : C
  42 :       INTEGER J
  43 : C
  44 :       IF( NBN.GE.NBNMAX )THEN
  45 :         iarr = -2
  45 :         CALL DSERRE(1,iarr,'ST','DANS S0AJNO : TROP DE POINTS')
  46 :         GOTO 999
  47 :       ENDIF
  48 :       NBN = NBN + 1
  49 :       DO 10 J=1,IDIMC    
  50 :         COORD((NBN-1)*IDIMC+J) = XYZ(J)
  51 :    10 CONTINUE
  52 :       NNEW = NBN
  53 :       IF( NOEMAX.GT. 0 )THEN
  54 :         IF( NOEMAX.LT.NNEW )THEN
  55 :           iarr =-2
  55 :           CALL DSERRE(1,iarr,'ST','DANS S0AJNO : NOETRI TROP PETIT')
  56 :           GOTO 999
  57 :         ENDIF
  58 :         NOETRI(NNEW) = 0
  59 :       ENDIF
  60 :       iarr = 0
  61 :   999 END
  62 :  
  63 :  
  64 :  

© Cast3M 2003 - All rights reserved.
Disclaimer