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

📄 modworld.f90

📁 国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码
💻 F90
字号:
!------------------------------------------------------------------------------!! MODULE : MODWORLD                       Auteur : J. Gressier!                                         Date   : Novembre 2002! Fonction                                Modif  : Juin 2003!   Definition des structures de donnees generales!   Encapsulation de toutes les structures!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!module MODWORLDuse TYPHMAKE       ! Definition de la precisionuse MENU_GEN       ! Definition des parametres generauxuse MENU_COUPLING  ! Definition des parametre de couplageuse MODINFO        ! Definition des informations generalesuse DEFZONE        ! Definition des zones (maillages)implicit none! -- Variables globales du module -------------------------------------------! -- DECLARATIONS -----------------------------------------------------------!------------------------------------------------------------------------------!! Definition de la structure ST_WORLD : ensemble des donnees!------------------------------------------------------------------------------!type st_world  type(mnu_project)   :: prj        ! parametres generaux du projet  type(st_info)       :: info       ! informations generales sur le calcul  type(st_zone), dimension(:), pointer &                      :: zone       ! liste de zones  integer             :: noutput    ! nombre de definition des sorties  type(mnu_output), dimension(:), pointer &                      :: output     ! liste des sorties  !integer             :: ncoupling  ! nombre de couplages entre zones  type(mnu_coupling), dimension(:),pointer &                      :: coupling   ! parametres generaux de couplageendtype st_world! -- INTERFACES -------------------------------------------------------------interface new  module procedure new_worldendinterfaceinterface delete  module procedure delete_worldendinterface! -- Fonctions et Operateurs ------------------------------------------------! -- IMPLEMENTATION ---------------------------------------------------------contains!------------------------------------------------------------------------------!! Procedure : allocation d'une structure WORLD!------------------------------------------------------------------------------!subroutine new_world(world, nzone, noutput, ncoupling)implicit nonetype(st_world)    :: worldinteger           :: nzoneinteger, optional :: ncouplinginteger, optional :: noutput  world%prj%nzone = nzone  allocate(world%zone(nzone))  if (present(noutput) .and. (noutput /= 0)) then    world%noutput = noutput    allocate(world%output(noutput))  else    world%noutput = 0  endif  if (present(ncoupling) .and. (ncoupling /= 0)) then    world%prj%ncoupling = ncoupling    allocate(world%coupling(ncoupling))  else    world%prj%ncoupling = 0  endifendsubroutine new_world!------------------------------------------------------------------------------!! Procedure : desallocation d'une structure WORLD!------------------------------------------------------------------------------!subroutine delete_world(world)implicit nonetype(st_world)   :: worldinteger          :: i       do i = 1, world%prj%nzone    print*,"destruction de zone ",i !! DEBUG        call delete(world%zone(i))    enddo  deallocate(world%zone)  if (world%noutput > 0) deallocate(world%output)  if (world%prj%ncoupling > 0) deallocate(world%coupling)endsubroutine delete_worldendmodule MODWORLD!------------------------------------------------------------------------------!! Historique des modifications!! Nov  2002 : creation du module!------------------------------------------------------------------------------!

⌨️ 快捷键说明

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