seek_bcface_face.f90

来自「国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码」· F90 代码 · 共 98 行

F90
98
字号
!------------------------------------------------------------------------------!! 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 + =
减小字号Ctrl + -
显示快捷键?