output_vtk_cell.f90

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

F90
146
字号
!-----------------------------------------------------------------------------!! Procedure : output_vtk_cell             Auteur : J. Gressier!                                         Date   : Avril 2004! Fonction                                Modif  : (cf historique)!   Ecriture fichier des champs NON STRUCTURES de chaque zone au format VTK!   Valeurs au centre des cellules!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine output_vtk_cell(uf, defsolver, ust_mesh, field)use TYPHMAKEuse OUTPUTuse VARCOMuse GEO3Duse MENU_SOLVERuse USTMESHuse DEFFIELDimplicit none! -- Declaration des entrees --integer          :: uf            ! unite d'ecrituretype(mnu_solver) :: defsolver     ! parametres du solveurtype(st_ustmesh) :: ust_mesh      ! maillage a ecriretype(st_field)   :: field         ! champ de valeurs! -- Declaration des sorties --! -- Declaration des variables internes --integer   :: iinteger   :: info, ntottype(v3d) :: vtex! -- Debut de la procedure --! ecriture du maillagewrite(uf,'(a)')      'DATASET UNSTRUCTURED_GRID'write(uf,'(a,i9,a)') 'POINTS ',ust_mesh%nvtex, ' float'! coordonneesdo i = 1, ust_mesh%nvtex  vtex = ust_mesh%mesh%vertex(i,1,1)  write(uf,'(4e18.8)') vtex%x, vtex%y, vtex%zenddo! connectivite ust_mesh%ncell = ust_mesh%cellvtex%nbar   + &                 ust_mesh%cellvtex%ntri   + ust_mesh%cellvtex%nquad + &                 ust_mesh%cellvtex%ntetra + ust_mesh%cellvtex%npyra + &                 ust_mesh%cellvtex%npenta + ust_mesh%cellvtex%nhexantot =        3*ust_mesh%cellvtex%nbarntot = ntot + 4*ust_mesh%cellvtex%ntrintot = ntot + 5*ust_mesh%cellvtex%nquadntot = ntot + 5*ust_mesh%cellvtex%ntetrantot = ntot + 6*ust_mesh%cellvtex%npyrantot = ntot + 7*ust_mesh%cellvtex%npentantot = ntot + 9*ust_mesh%cellvtex%nhexawrite(uf,'(a,2i10)') 'CELLS ',ust_mesh%ncell, ntotprint*,'nbar:',ust_mesh%cellvtex%nbardo i = 1, ust_mesh%cellvtex%nbar  write(uf,'(i3,2i9)') 2, ust_mesh%cellvtex%bar%fils(i,:)-1enddodo i = 1, ust_mesh%cellvtex%ntri  write(uf,'(i3,3i9)') 3, ust_mesh%cellvtex%tri%fils(i,:)-1enddoprint*,'nquad:',ust_mesh%cellvtex%nquaddo i = 1, ust_mesh%cellvtex%nquad  write(uf,'(i3,4i9)') 4, ust_mesh%cellvtex%quad%fils(i,:)-1enddodo i = 1, ust_mesh%cellvtex%ntetra  write(uf,'(i3,4i9)') 4, ust_mesh%cellvtex%tetra%fils(i,:)-1enddodo i = 1, ust_mesh%cellvtex%npyra  write(uf,'(i3,5i9)') 5, ust_mesh%cellvtex%pyra%fils(i,:)-1enddodo i = 1, ust_mesh%cellvtex%npenta  write(uf,'(i3,6i9)') 6, ust_mesh%cellvtex%penta%fils(i,:)-1enddodo i = 1, ust_mesh%cellvtex%nhexa  write(uf,'(i3,8i9)') 8, ust_mesh%cellvtex%hexa%fils(i,:)-1enddo! type de celluleswrite(uf,'(a,i9)') 'CELL_TYPES ',ust_mesh%ncelldo i = 1, ust_mesh%cellvtex%nbar  write(uf,'(i2)') 3     ! VTK_LINEenddodo i = 1, ust_mesh%cellvtex%ntri  write(uf,'(i2)') 5     ! VTK_TRIANGLEenddodo i = 1, ust_mesh%cellvtex%nquad  write(uf,'(i2)') 9     ! VTK_QUADenddodo i = 1, ust_mesh%cellvtex%ntetra  write(uf,'(i2)') 10    ! VTK_TETRAenddodo i = 1, ust_mesh%cellvtex%npyra  write(uf,'(i2)') 14    ! VTK_PYRAMIDenddodo i = 1, ust_mesh%cellvtex%npenta  write(uf,'(i2)') 13    ! VTK_WEDGEenddodo i = 1, ust_mesh%cellvtex%nhexa  write(uf,'(i2)') 12    ! VTK_HEXAHEDRONenddo! -- donnees --call calc_varprim(defsolver, field)select case(defsolver%typ_solver)case(solNS)  write(uf,'(a,i9)') 'CELL_DATA ',ust_mesh%ncell  call output_vtk_scal(uf, ust_mesh, "DENSITY",  field%etatprim%tabscal(1))  call output_vtk_scal(uf, ust_mesh, "PRESSURE", field%etatprim%tabscal(2))  call output_vtk_vect(uf, ust_mesh, "VELOCITY", field%etatprim%tabvect(1))case(solKDIF)  write(uf,'(a,i9)') 'CELL_DATA ',ust_mesh%ncell  call output_vtk_scal(uf, ust_mesh, "TEMPERATURE",  field%etatprim%tabscal(1))case(solVORTEX)case default  call erreur("Developpement","solveur inconnu (output_vtk_cell)")endselectendsubroutine output_vtk_cell!------------------------------------------------------------------------------!! Historique des modifications!! avr  2004 : creation de la procedure! juin 2004 : ecriture de format CELL_DATA! july 2004 : extension to NS solver outputs (write scalar and vector fields)!------------------------------------------------------------------------------!

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?