1 : C PENTE5 SOURCE CHAT 05/01/13 02:12:29 5004 2 : SUBROUTINE PENTE5(NFAC,NCOMP,MELEFL,MPOCHP,MLECEN,MPOVCL,MLENCL, 3 : & MPOMIN,MPOMAX) 4 : C 5 : C************************************************************************ 6 : C 7 : C PROJET : CASTEM 2000 8 : C 9 : C NOM : PENTE5 10 : C 11 : C DESCRIPTION : Cette subroutine est appellée par la subroutine 12 : C PENTE1 (calcul du gradient d'un CHPOINT de type 13 : C CENTRE) 14 : C Elle contient la partie du calcul de max et min 15 : C sur les noeuds voisins, dans le cas de 16 : C reconstruction quadratique exacte 17 : C 18 : C LANGAGE : ESOPE 2000 avec extensions CISI 19 : C 20 : C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF 21 : C 22 : C************************************************************************ 23 : C 24 : C 25 : C APPELES (E/S) : none 26 : C 27 : C APPELES (Calcul) : none 28 : C 29 : C 30 : C************************************************************************ 31 : C 32 : C ENTREES : NFAC : nombre de faces 33 : C 34 : C NCOMP : nombre de composantes de CHPOINT dont on veut 35 : C calculer les pentes 36 : C 37 : C MELEFL : pointeur du MELEME 'FACEL' 38 : C 39 : C MPOCHP : pointeur de MPOVAL de CHPOINT dont on veut le 40 : C gradient 41 : C 42 : C MLECEN : pointeur de MLENTI qui contient la table 43 : C numerotation global/local de CENTREs 44 : C 45 : C MPOVCL : MPOVAL du CHPOINT de C.L. 46 : C 47 : C MLENCL : table numerotation global/local pour les 48 : C SPG du CHPOINT de C.L. ou 49 : C table de 0 si ce CHPOINT n'existe pas 50 : C 51 : C 52 : C SORTIES : MPOMIN : pointeur de MPOVAL du minimum sur le stencil 53 : C 54 : C MPOMAX : pointeur de MPOVAL du maximum sur le stencil 55 : C 56 : C 57 : C************************************************************************ 58 : C 59 : C HISTORIQUE (Anomalies et modifications éventuelles) 60 : C 61 : C HISTORIQUE : Cree le 12-5-2000 62 : C 63 : C 64 : C************************************************************************ 65 : C 66 : IMPLICIT INTEGER(I-N) 67 : -INC CCOPTIO 68 : C 69 : C**** Variables de CCOPTIO 70 : C 71 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR 72 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ 73 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES 74 : C & ,IECHO, IIMPI, IOSPI 75 : C & ,IDIM 76 : C & ,MCOORD 77 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE 78 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU 79 : C & ,NORINC,NORVAL,NORIND,NORVAD 80 : C & ,NUCROU, IPSAUV 81 : C 82 : C 83 : -INC SMCHPOI 84 : -INC SMELEME 85 : -INC SMLENTI 86 : POINTEUR MPOMIN.MPOVAL, MPOMAX.MPOVAL, MPOVCL.MPOVAL, 87 : & MPOCHP.MPOVAL 88 : POINTEUR MELEFL.MELEME, MLECEN.MLENTI, MLENCL.MLENTI 89 : C 90 : INTEGER NFAC, NCOMP, NLCF, NGCEG, NLCEG, NGCF, NGCED, NLCED 91 : & , NLCL, ICOMP 92 : REAL*8 VAL 93 : C 94 : C**** N.B. Tous les pointeurs ici sont déjà activés! 95 : C 96 : C**** Maillage FACEL 97 : C Boucle sur les faces 98 : C 99 : C 100 : C**** NGCEG = Numero global centre d'elt "gauche" 101 : C NLCEG = Numero local centre d'elt "gauche" 102 : C NGCF = " global centre de face 103 : C NLCF = numero local centre de face 104 : C NGCEG = Numero global centre d'elt "gauche" 105 : C NLCEG = Numero local centre d'elt "gauche" 106 : C 107 : DO NLCF = 1, NFAC 108 : NGCEG = MELEFL.NUM(1,NLCF) 109 : NLCEG = MLECEN.LECT(NGCEG) 110 : NGCF = MELEFL.NUM(2,NLCF) 111 : NGCED = MELEFL.NUM(3,NLCF) 112 : NLCED = MLECEN.LECT(NGCED) 113 : IF(NGCEG .EQ. NGCED)THEN 114 : C 115 : C********** Cas mur 116 : C 117 : NLCL = MLENCL.LECT(NGCF) 118 : IF(NLCL .NE. 0)THEN 119 : C 120 : C************* Le point face appartient au C.L. 121 : C 122 : DO ICOMP = 1, NCOMP, 1 123 : VAL = MPOVCL.VPOCHA(NLCL,ICOMP) 124 : MPOMAX.VPOCHA(NLCEG,ICOMP)= MAX(VAL, 125 : & MPOMAX.VPOCHA(NLCEG,ICOMP)) 126 : MPOMIN.VPOCHA(NLCEG,ICOMP)= MIN(VAL, 127 : & MPOMIN.VPOCHA(NLCEG,ICOMP)) 128 : ENDDO 129 : ENDIF 130 : ELSE 131 : DO ICOMP = 1, NCOMP, 1 132 : VAL = MPOCHP.VPOCHA(NLCED,ICOMP) 133 : MPOMAX.VPOCHA(NLCEG,ICOMP)= MAX(VAL, 134 : & MPOMAX.VPOCHA(NLCEG,ICOMP)) 135 : MPOMIN.VPOCHA(NLCEG,ICOMP)= MIN(VAL, 136 : & MPOMIN.VPOCHA(NLCEG,ICOMP)) 137 : C 138 : VAL = MPOCHP.VPOCHA(NLCEG,ICOMP) 139 : MPOMAX.VPOCHA(NLCED,ICOMP)= MAX(VAL, 140 : & MPOMAX.VPOCHA(NLCED,ICOMP)) 141 : MPOMIN.VPOCHA(NLCED,ICOMP)= MIN(VAL, 142 : & MPOMIN.VPOCHA(NLCED,ICOMP)) 143 : ENDDO 144 : ENDIF 145 : ENDDO 146 : RETURN 147 : END 148 : 149 : 150 :
© Cast3M 2003 - All rights reserved.
Disclaimer