📄 seek_bcface_face.f90
字号:
!------------------------------------------------------------------------------!! Procedure : seek_bcface_face.f90 Auteur : J. Gressier! Date : Juin 2004! Fonction Modif : (cf historique)! Recherche des faces a partir des listes de FACES marquees!! Defauts/Limitations/Divers :! On passe par la reconstruction d'une liste de VERTEX marques et on! utilise seek_bcface_vtex!!------------------------------------------------------------------------------!subroutine seek_bcface_face(ib, cgnsboco, nfam, facevtex, mesh, listface) use TYPHMAKE ! definitions generales use CONNECTIVITYuse CGNS_STRUCT ! Definition des structures CGNSuse USTMESH ! Definition des structures maillage non structureuse OUTPUT ! Sorties standard TYPHONimplicit none ! -- Entrees --integer :: ib ! indice de condition limiteinteger :: nfam ! nombre de connectivite facevtextype(st_cgns_boco) :: cgnsboco ! zone CGNS contenant conditions aux limitestype(st_cgns_ustconnect), dimension(1:nfam) & :: facevtex! -- Entrees/Sorties --type(st_ustmesh) :: mesh ! connectivites et conditions aux limites! -- Variables internes --integer, dimension(*) :: listface ! tableau de travailtype(st_cgns_boco) :: cgboco ! connectivite intermediairelogical, dimension(:), allocatable & :: mkvtex ! liste de vertex marquesinteger :: iface, pface, ifam, pfam, iv, ivm, dim! -- Debut de procedureallocate(mkvtex(mesh%mesh%nvtex)) ! allocation du tableau des vertex marquesmkvtex(:) = .false. ! initialisation a "non marque"!print*,"DEBUG:",nfam! -- marquage de sommets marques par la liste de faces marquees --do iface = 1, cgnsboco%list%nbfils ! boucle sur la liste de faces marquees pface = cgnsboco%list%fils(iface) ! index reel de face pfam = 0 ! recherche de famille do ifam = 1, nfam if ((pface >= facevtex(ifam)%ideb).and.(pface <= facevtex(ifam)%ifin)) pfam = ifam enddo if (pfam == 0) call erreur("Calcul de connectivite","face limite introuvable dans CGNS") ! on marque les sommets de la face trouvee do iv = 1, facevtex(pfam)%nbfils mkvtex(facevtex(pfam)%fils(pface,iv)) = .true. enddoenddo! -- construction d'une connectivite cgnsboco/vertex associee --!dim = count(mkvtex==.true.)dim = count(mkvtex)cgboco%nom = cgnsboco%nomcgboco%family = cgnsboco%familycall new(cgboco%list, dim)ivm = 0do iv = 1, size(mkvtex) if (mkvtex(iv)) then ivm = ivm+1 cgboco%list%fils(ivm) = iv endifenddodeallocate(mkvtex)! -- contruction de la connectivite boco/face de TYPHON a partir des sommets --call seek_bcface_vtex(ib, cgboco, mesh, listface)call delete(cgboco%list) !-------------------------endsubroutine seek_bcface_face!------------------------------------------------------------------------------!! Historique des modifications!! juin 2004 : creation de la procedure!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -