📄 zone_coupling.f90
字号:
!------------------------------------------------------------------------------!! MODULE : ZONE_COUPLING Auteur : E. Radenac / J. Gressier! Date : Juin 2003! Fonction Modif : Juillet 2003! Definition des methodes de couplage entre zones!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!module ZONE_COUPLINGuse TYPHMAKE ! Definition de la precision et des types basiquesuse DEFFIELD ! Definition des champs de valeurs physiques pour les transfertsuse VARCOM! -- DECLARATIONS -----------------------------------------------------------!------------------------------------------------------------------------------!! Definition de la structure ST_ZONECOUPLING : structures d'echanges entres zones!------------------------------------------------------------------------------!type st_zonecoupling integer :: solvercoupling ! types de solvers couples integer :: nface_int ! nb de faces c魌e interne integer :: nface_ext ! nb de faces c魌e externe type(st_genericfield) :: echdata ! donnees d'echange (champ de zone externe) type(st_genericfield) :: etatcons ! energie a l'interface integer, dimension(:), pointer & :: connface ! connectivite de face (dim = nface_int) ! connface(i) = j ! : face i interne = face j externeendtype st_zonecoupling! -- INTERFACES -------------------------------------------------------------interface new module procedure new_zcouplingendinterfaceinterface delete module procedure delete_zcouplingendinterface! -- Fonctions et Operateurs ------------------------------------------------! -- IMPLEMENTATION ---------------------------------------------------------contains!------------------------------------------------------------------------------!! Procedure : creation d'une structure ZONE_COUPLING!------------------------------------------------------------------------------!subroutine new_zcoupling(zc, nfaceint)implicit nonetype(st_zonecoupling) :: zcinteger :: nfaceintzc%nface_int = nfaceintallocate(zc%connface(nfaceint))select case(zc%solvercoupling) case(kdif_kdif) call new(zc%echdata, nfaceint, 2,1,0) call new(zc%etatcons, nfaceint, 3, 0, 0) call init_genericfield(zc%echdata, 0._krp, v3d(0._krp, 0._krp, 0._krp)) call init_genericfield(zc%etatcons, 0._krp, v3d(0._krp, 0._krp, 0._krp)) case(kdif_ns) call new(zc%echdata, nfaceint, 2,1,0) call new(zc%etatcons, nfaceint, 3, 0, 0) call init_genericfield(zc%echdata, 0._krp, v3d(0._krp, 0._krp, 0._krp)) call init_genericfield(zc%etatcons, 0._krp, v3d(0._krp, 0._krp, 0._krp)) case(ns_ns) call erreur("incoherence interne (ZONE_COUPLING)", "cas non implemente") case default call erreur("incoherence interne (ZONE_COUPLING)", & "couplage solveurs inconnu")endselectendsubroutine new_zcoupling!------------------------------------------------------------------------------!! Procedure : desallocation d'une structure ZONE_COUPLING!------------------------------------------------------------------------------!subroutine delete_zcoupling(zc)implicit nonetype(st_zonecoupling) :: zccall delete(zc%echdata)call delete(zc%etatcons)deallocate(zc%connface)endsubroutine delete_zcouplingendmodule ZONE_COUPLING!------------------------------------------------------------------------------!! Historique des modifications!! juin 2003 (v0.0.1b): creation du module! creation de new et delete! juillet 2003 : ajout de etatcons!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -