readcgnsbase.f90

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

F90
83
字号
!------------------------------------------------------------------------------!! Procedure : readcgnsbase                Auteur : J. Gressier!                                         Date   : Novembre 2002! Fonction                                Modif  :!   Lecture d'une base d'un fichier CGNS!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine readcgnsbase(unit, ib,  base) use CGNSLIB       ! definition des mots-clefsuse CGNS_STRUCT   ! Definition des structures CGNSuse OUTPUT        ! Sorties standard TYPHONimplicit none ! -- Entrees --integer             :: unit       ! numero d'unite pour la lectureinteger             :: ib         ! numero de base! -- Sorties --type(st_cgns_base)  :: base       ! structure CGNS : base! -- Variables internes --integer       :: ier              ! code d'erreurinteger       :: iz               ! indice courant de zonecharacter(len=10), dimension(2:3), parameter &              :: type_maillage = (/ "surfacique", "volumique " /)! -- Debut de procedure   ! --- Lecture des infos de la base ---call cg_base_read_f(unit, ib, base%nom, base%imesh, base%igeo, ier)!!print*,unit, ib, base%nom, base%imesh, base%igeo, ier !! DEBUG!!call cg_error_exit_f                                  !! DEBUG!! BUG : test desactive car ier /= 0 meme si tout est correct!if (ier /= 0) call erreur("Lecture CGNS","Probleme a la lecture de la base")call print_info(5,"- BASE "//trim(base%nom)//" : maillage "//type_maillage(base%imesh))   ! --- Lecture du nombre de zones ---call cg_nzones_f(unit, ib, base%nzone, ier)write(str_w,'(2x,i2,a,i2)') base%nzone," zone(s) dans la base ",ibcall print_info(8, "   "//adjustl(str_w))if (ier /= 0) call erreur("Lecture CGNS","Probleme a la lecture du nombre de zones") ! --- Allocation et Lecture des zones ---base%nzone_str = 0base%nzone_ust = 0allocate(base%zone(base%nzone))do iz = 1, base%nzone  ! les maillages (2D ou 3D) sont de meme type que la base  base%zone(iz)%imesh = base%imesh     call readcgnszone(unit, ib, iz, base%zone(iz))  ! Denombrement des zones structurees et non structurees  select case(base%zone(iz)%type)  case(Structured)    base%nzone_str = base%nzone_str + 1  case(Unstructured)    base%nzone_ust = base%nzone_ust + 1  case default    call erreur("Developpement","Type de maillage non prevu")  endselectenddo !-------------------------endsubroutine readcgnsbase

⌨️ 快捷键说明

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