nuachp
C NUACHP SOURCE CB215821 20/11/25 13:35:19 10792 * * sous routine de l'operateur nuage pour creer un objet * nuage à partir d'un champ par point. * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMNUAGE -INC SMLMOTS -INC SMCHPOI * * * IRETOU = 0 * *------------------------ Lecture du CHPOINT --------------------- * MCHPOI = ICHP SEGACT MCHPOI NSOUPO = IPCHP(/1) * *-------- Boucle créant un LISTMOT contenant les noms des variables --- *-------- contenues dans le CHPOINT. Ces noms n'apparaissent qu'une --- *-------- seule fois -------------------------------------------------- * IF (NSOUPO .EQ. 0) THEN NVAR = 0 NBCOUP = 0 SEGINI MNUAGE SEGDES MNUAGE ENDIF * DO 10 I=1,NSOUPO MSOUPO = IPCHP(I) SEGACT MSOUPO IF(I.EQ.1) THEN JGN = LOCOMP JGM = 20 SEGINI MLMOTS NC = NOCOMP(/2) IF(NC.GT.20) THEN JGM = NC + 10 SEGADJ MLMOTS ENDIF DO 20 J=1,NC 20 CONTINUE NBMO = NC ELSE NC = NOCOMP(/2) DO 30 J = 1,NC NEXIS = 0 DO 40 K = 1,NBMO NEXIS = 1 ENDIF 40 CONTINUE IF(NEXIS.EQ.0) THEN NBMO = NBMO + 1 JGM = JGM + 10 SEGADJ MLMOTS ENDIF ENDIF 30 CONTINUE ENDIF SEGDES MSOUPO 10 CONTINUE * *------------------ on redefinit la taille du LISTMOT ---------------- * JGM = NBMO SEGADJ MLMOTS * *--------------Calcul du nombre total de points------------------------- * NBPOI = 0 DO 50 I=1,NSOUPO MSOUPO = IPCHP(I) SEGACT MSOUPO MELEME = IGEOC SEGACT MELEME NBPOI = NBPOI + NUM(/2) SEGDES MELEME SEGDES MSOUPO 50 CONTINUE * * * *---------------Initialisation de l'objet nuage------------------------- * NVAR = NBMO SEGINI MNUAGE DO 60 I = 1,NVAR 60 CONTINUE NBCOUP = NBPOI DO 70 I = 1,NVAR NUATYP(I) = 'FLOTTANT' 70 CONTINUE SEGSUP MLMOTS * * *-------------------Création des n-uplets du nuage--------------- * *---------A chaque n-uplet correspond une liste de réels--------- *---------comportant les composantes contenues dans le----------- *---------champ par point---------------------------------------- * *---------Boucle sur les composantes du nuage-------------------- * DO 90 I = 1,NVAR SEGINI NUAVFL NUAPOI(I) = NUAVFL IND = 1 * *---------Boucle sur les sous-maillages-------------------------- * DO 100 J = 1,NSOUPO MSOUPO = IPCHP(J) SEGACT MSOUPO MELEME = MSOUPO.IGEOC SEGACT MELEME MPOVAL = IPOVAL SEGACT MPOVAL N = VPOCHA(/1) NC = VPOCHA(/2) * *---------Boucle sur les points du sous-maillage intégrant------- *---------une boucle sur les différentes composantes du---------- *---------point. Remplissage du tableau de valeurs-------------- * DO 110 L = 1,N DO 120 K = 1,NC IF (NUANOM(I) .EQ. NOCOMP(K)) THEN NUAFLO(IND) = VPOCHA(L,K) ENDIF 120 CONTINUE IND = IND + 1 110 CONTINUE SEGDES MPOVAL SEGDES MELEME SEGDES MSOUPO 100 CONTINUE SEGDES NUAVFL 90 CONTINUE SEGDES MCHPOI SEGDES MNUAGE * *---------------------Ecriture du nuage--------------------------- * RETURN * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales