📄 reorder_ustconnect.f90
字号:
!------------------------------------------------------------------------------!! Procedure : reorder_ustconnect.f90 Auteur : J. Gressier! Date : Fevrier 2003! Fonction Modif :! Renumerotation des faces (faces internes puis faces limites)! et des connectivites associees!! Defauts/Limitations/Divers :! choix des actions a effectuer par (iaction)! O: action sur les connectivites, pas le maillage! 1: action sur connectivites et maillage!!------------------------------------------------------------------------------!subroutine reorder_ustconnect(iaction, mesh) use USTMESH ! Definition des structures maillage non structureimplicit none ! -- Entrees --integer :: iaction! -- Entrees/Sorties --type(st_ustmesh) :: mesh ! maillage non structure et connectivite! -- Variables internes --type(st_connect) :: f_vtex, f_cell ! conn. Typhon intermediaire : face -> sommetsinteger, dimension(:), allocatable & :: trans_index ! nouvelle renumerotationinteger :: nface_int ! nombre de faces internesinteger :: nface_lim ! nombre de faces limitesinteger :: ntotface ! nombre total de facesinteger :: if, oldf, newf! -- Debut de procedureif (iaction /= 0) then call erreur("Developpement","cas inattendu dans 'reorder_ustconnect'")endifntotface = mesh%facecell%nbnodesallocate(trans_index(ntotface))! -- renumerotation des faces (faces limites en dernier) --nface_int = 0nface_lim = 0! calcul des nombres de faces et de la transposition d'indexdo if = 1, ntotface if (mesh%facecell%fils(if,2) == 0) then ! si face(if) est face limite nface_lim = nface_lim + 1 trans_index(ntotface+1-nface_lim) = if else nface_int = nface_int + 1 trans_index(nface_int) = if endifenddo! copie des connectivitesf_vtex = copy(mesh%facevtex)f_cell = copy(mesh%facecell)!print*,"!! DEBUG f_vtex :",transpose(f_vtex%fils(:,:))!print*,"!! DEBUG face_vtex :",transpose(mesh%facevtex%fils(:,:))! transposition d'indexdo if = 1, ntotface oldf = trans_index(if) newf = if mesh%facecell%fils(newf,:) = f_cell%fils(oldf,:) mesh%facevtex%fils(newf,:) = f_vtex%fils(oldf,:) !print*,"!! DEBUG trans ",oldf, newf,":", mesh%facevtex%fils(newf,:),"<=",f_vtex%fils(oldf,:)enddomesh%nface_int = nface_intmesh%nface_lim = nface_lim!print*,"!! DEBUG trans index :",trans_index(:)!print*,"!! DEBUG f_vtex :",transpose(f_vtex%fils(:,:))!print*,"!! DEBUG face_vtex :",transpose(mesh%facevtex%fils(:,:))! desallocationcall delete(f_vtex)call delete(f_cell)deallocate(trans_index)!-------------------------endsubroutine reorder_ustconnect!------------------------------------------------------------------------------!! Historique des modifications!! fev 2003 (v0.0.1b): creation de la procedure!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -