⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readcgnszone.f90

📁 国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码
💻 F90
字号:
!------------------------------------------------------------------------------!! Procedure : readcgnszone                Auteur : J. Gressier!                                         Date   : Novembre 2002! Fonction                                Modif  :!   Lecture d'une zone d'un fichier CGNS!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine readcgnszone(unit, ib, iz, zone) 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, iz     ! numero de base et de zone! -- Sorties --type(st_cgns_zone)  :: zone       ! structure CGNS : zone! -- Variables internes --integer       :: size(3,3)        ! tableau d'informations de la zoneinteger       :: ier              ! code d'erreurinteger       :: i, ibc           ! indice courantinteger       :: nmax_elem        ! nombre total d'elements! -- Debut de procedure   ! --- Lecture du type de zone ---          call cg_zone_type_f(unit, ib, iz, zone%type, ier)if (ier /= 0) call erreur("Lecture CGNS","Probleme a la lecture du type de zone")select case(zone%type)  case(Structured,Unstructured)    write(str_w,'(a,i3,a,a)') "- Zone",iz,": type",ZoneTypeName(zone%type)    call print_info(5, adjustl(str_w))  case default    call erreur("Lecture CGNS","zone "//trim(ZoneTypeName(zone%type))//" inconnue")endselect! --- Lecture des informations de la zone ---call cg_zone_read_f(unit, ib, iz, zone%nom, size, ier)if (ier /= 0)   call erreur("Lecture CGNS","Probleme a la lecture de la zone")select case(zone%type)  case(Structured)     ! cas STRUCTURE    ! size(1:3, 1:3) contient             (cf CGNS Mid-level Library)    !     (1:3, 1) le nombre de sommets ni,nj,nk    !     (1:3, 2) le nombre de cellules    !     (1:3, 3) ?    zone%mesh%ni = size(1,1)    zone%mesh%nj = size(2,1)    zone%mesh%nk = size(3,1)  case(Unstructured)   ! cas NON STRUCTURE    ! size(1:3, 1) contient             (cf CGNS Mid-level Library)    !     (1, 1) le nombre de sommets    !     (2, 1) le nombre de cellules    !     (3, 1) le nombre de sommets aux limites    ! ce sont en fait les trois premiers entiers du tableau sous forme lineaire    zone%mesh%ni = size(1,1)    zone%mesh%nj = 1    zone%mesh%nk = 1    nmax_elem    = size(2,1)  case default    call erreur("Gestion CGNS","type non reconnu")endselect! --- Allocation et Lecture des sommets du maillage ---allocate(zone%mesh%vertex(zone%mesh%ni, zone%mesh%nj, zone%mesh%nk)) call readcgnsvtex(unit, ib, iz, zone%mesh)   ! --- Lecture des connectivites  ---select case(zone%type)case(Structured)  call erreur("Developpement",&              "la lecture de connectivite multibloc n'est pas implementee")  !call readcgns_strconnect(unit, ib, iz, zone, nmax_elem)case(Unstructured)  call readcgns_ustconnect(unit, ib, iz, zone, nmax_elem)case default  call erreur("Developpement", "incoherence de programmation (zone%imesh)")endselect! --- Lecture des conditions aux limites ---call cg_nbocos_f(unit, ib, iz, zone%nboco, ier)if (ier /= 0) call erreur("Lecture CGNS","Probleme a la lecture du nombre BoCo")write(str_w,'(a,i3,a)') ". lecture de ",zone%nboco," conditions aux limites"call print_info(5, adjustl(str_w))allocate(zone%boco(zone%nboco))do ibc = 1, zone%nboco  select case(zone%type)  case(Structured)    call erreur("Developpement",&                "la lecture de connectivite multibloc n'est pas implementee")    !call readcgns_strboco(unit, ib, iz, ibc, zone%boco(ibc))  case(Unstructured)    call readcgns_ustboco(unit, ib, iz, ibc, zone%boco(ibc))  case default    call erreur("Developpement", "incoherence de programmation (zone%imesh)")  endselectenddo! --- fermeture du fichier ---call cg_close_f(unit, ier)!-------------------------endsubroutine readcgnszone

⌨️ 快捷键说明

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