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

📄 mater_loi.f90

📁 国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码
💻 F90
字号:
!------------------------------------------------------------------------------!! MODULE : MATER_LOI                          Auteur : J. Gressier!                                             Date   : Aout 2002! Fonction                                    Modif  : Jullet 2003!   Structures pour la definition de loi!     - constante!     - polynomiale!     - fichier de points!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!module MATER_LOIuse TYPHMAKE ! Definition de la precision couranteuse STRING!------------------------------------------------------------------------------!!    DECLARATIONS!------------------------------------------------------------------------------!character, parameter :: LOI_CST  = 'K'character, parameter :: LOI_POLY = 'P'character, parameter :: LOI_PTS  = 'F'!------------------------------------------------------------------------------!! ST_LOI_POLY : structure de definition  d'une loi polynomiale!------------------------------------------------------------------------------!type st_loi_poly  integer                          :: ordre  ! ordre du polynome  real(krp), dimension(:), pointer :: coef   ! val. des coef (0:ordre)endtype st_loi_poly!------------------------------------------------------------------------------!! ST__LOI_PTS : structure de definition  d'une loi ptsnomiale!------------------------------------------------------------------------------!type st_loi_pts  integer                            :: nb   ! nb de points de def.  real(krp), dimension(:,:), pointer :: val  ! val. des couples (1:nb,1:2)endtype st_loi_pts!------------------------------------------------------------------------------!! ST__LOI : structure de definition generale d'une loi!------------------------------------------------------------------------------!type st_loi  character         :: type  real(krp)         :: valeur  type(st_loi_poly) :: poly       type(st_loi_pts)  :: ptsendtype st_loi! -- INTERFACES -------------------------------------------------------------interface delete  module procedure delete_loiendinterface! -- Procedures, Fonctions et Operateurs ------------------------------------! -- IMPLEMENTATION ---------------------------------------------------------contains!------------------------------------------------------------------------------!! Procedure : desallocation d'une structure LOI!------------------------------------------------------------------------------!subroutine delete_loi(loi)implicit nonetype(st_loi)  :: loi     if (samestring(loi%type, LOI_POLY)) then  print*, 'desallocation de loi polynomiale'  !!DEBUG  deallocate(loi%poly%coef)endifif (samestring(loi%type, LOI_PTS)) then  print*, 'desallocation de loi ptsnomiale'  !!DEBUG  deallocate(loi%pts%val)endif endsubroutine delete_loi!------------------------------------------------------------------------------!! Fonction : Calcul de la valeur de la loi au point t de la variable!------------------------------------------------------------------------------!real(krp) function valeur_loi(loi, t)implicit none! -- Entrees --type(st_loi) :: loireal(krp)           :: t! -- variables internes --integer      :: i! Debut de procedureselect case(loi%type)  case(LOI_CST)    valeur_loi = loi%valeur    !print*, "module MATER_LOI cst : ", i, valeur_loi  case(LOI_POLY)    valeur_loi = 0    do i=1, loi%poly%ordre+1      valeur_loi = valeur_loi + loi%poly%coef(i)*(t**(i-1))    !print*, "module MATER_LOI poly : ", i, loi%poly%ordre, loi%poly%coef(i), valeur_loi    enddo  case(LOI_PTS)    print*, "module MATER_LOI : type de loi non implemente"    stop  case default    print*, "module MATER_LOI : type de loi inconnu"    stopendselectendfunction valeur_loi!------------------------------------------------------------------------------!endmodule MATER_LOI!------------------------------------------------------------------------------!! Historique des modifications!! aout 2002 (v0.0.1b): creation de la procedure! juillet 2003       : conductivite polynomiale!------------------------------------------------------------------------------!

⌨️ 快捷键说明

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