subroutine utfaa2 ( nbtrto, nbquto, > nbtral, nbqual, > aretri, arequa, > nbfaar, posifa, facare ) c c ______________________________________________________________________ c c H O M A R D c c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D c c Version originale enregistree le 18 juin 1996 sous le numero 96036 c aupres des huissiers de justice Simart et Lavoir a Clamart c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014 c aupres des huissiers de justice c Lavoir, Silinski & Cherqui-Abrahmi a Clamart c c HOMARD est une marque deposee d'Electricite de France c c Copyright EDF 1996 c Copyright EDF 1998 c Copyright EDF 2002 c Copyright EDF 2020 c ______________________________________________________________________ c c UTilitaire - voisinage FAce-Aretes - phase 2 c -- -- - - c ______________________________________________________________________ c c determine les faces voisines de chaque arete c ______________________________________________________________________ c . . . . . c . nom . e/s . taille . description . c .____________________________________________________________________. c . nbtrto . e . 1 . nombre de triangles a examiner . c . nbquto . e . 1 . nombre de quadrangles a examiner . c . nbtral . e . 1 . nombre de triangles pour les allocations . c . nbqual . e . 1 . nombre de quadrangles pour les allocations . c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles . c . arequa . e .nbquto*4. numeros des 4 aretes des quadrangles . c . nbfaar . e . 1 . nombre cumule de faces par arete . c . posifa . e/s .0:nbaret. pointeur sur tableau facare . c . facare . s . nbfaar . liste des faces contenant une arete . c ______________________________________________________________________ c c==== c 0. declarations et dimensionnement c==== c c 0.1. ==> generalites c implicit none save c c 0.2. ==> communs c c 0.3. ==> arguments c integer nbtrto, nbquto, nbfaar integer nbtral, nbqual integer aretri(nbtral,3), arequa(nbqual,4) integer posifa(0:*), facare(nbfaar) c c 0.4. ==> variables locales c integer laface, larete c ______________________________________________________________________ c c==== c 1. on passe en revue chaque face et on indique qu'elle est voisine de c ses aretes : on incremente le pointeur posifa(i) et on c memorise la face dans facare a la place posifa(i) : c . pour un triangle, c'est le numero HOMARD du triangle c . pour un quadrangle, c'est l'oppose du numero HOMARD du quadrangle c c au depart : c posifa(0) = 0 c posifa(i) = position de la derniere voisine de l'arete i-1 c = nombre cumule de voisines pour les (i-1) 1eres aretes c c a l'arrivee : c posifa(0) = 0 c posifa(i) = position de la derniere voisine de l'arete i c = nombre cumule de voisines pour les i premieres aretes c==== c do 11 , laface = 1 , nbtrto c larete = aretri(laface,1) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = laface c larete = aretri(laface,2) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = laface c larete = aretri(laface,3) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = laface c 11 continue c do 12 , laface = 1 , nbquto c larete = arequa(laface,1) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = -laface c larete = arequa(laface,2) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = -laface c larete = arequa(laface,3) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = -laface c larete = arequa(laface,4) posifa(larete) = posifa(larete) + 1 facare(posifa(larete)) = -laface c 12 continue c end