📄 def_model_ns.f90
字号:
!------------------------------------------------------------------------------!! Procedure : def_model_ns Auteur : J. Gressier! Date : Septembre 2003! Fonction Modif : (cf historique)! Traitement des parametres du fichier menu principal! Parametres de definition du modele de conduction de la chaleur!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine def_model_ns(block, defsolver)use RPMuse TYPHMAKEuse OUTPUTuse VARCOMuse MENU_SOLVERuse MENU_NSimplicit none! -- Declaration des entrees --type(rpmblock), target :: block! -- Declaration des sorties --type(mnu_solver) :: defsolver! -- Declaration des variables internes --type(rpmblock), pointer :: pblock, pcour ! pointeur de bloc RPMinteger :: nkey ! nombre de clefsinteger :: icharacter(len=dimrpmlig) :: str ! chaine RPM intermediaire! -- Debut de la procedure --call print_info(5,"- Definition du modele fluide")! -- Recherche du BLOCK:MODELpblock => blockcall seekrpmblock(pblock, "MODEL", 0, pcour, nkey)if (nkey /= 1) call erreur("lecture de menu", & "bloc MODEL inexistant ou surnumeraire")defsolver%nequat = 5! -- lecture du type de modelisationcall rpmgetkeyvalstr(pcour, "DYNAMICS", str)if (samestring(str, "EULER")) defsolver%defns%typ_fluid = eqEULERif (samestring(str, "PERFECT")) defsolver%defns%typ_fluid = eqEULERif (samestring(str, "LAMINAR")) defsolver%defns%typ_fluid = eqNSLAMif (samestring(str, "RANS")) defsolver%defns%typ_fluid = eqRANSselect case(defsolver%defns%typ_fluid)case(eqEULER) call print_info(10," equations de fluide parfait (Euler)")case(eqNSLAM) call print_info(10," equations de Navier-Stokes laminaires") call erreur("Developpement", "Pas d'implementation des termes visqueux")case(eqRANS) call print_info(10," equations de Navier-Stokes moyennees (RANS)") call erreur("Developpement", "Pas d'implementation de la turbulence")case default call erreur("lecture de menu", "modelisation de la dynamique inconnue (DYNAMICS)")endselect! -- lecture des proprietes du gazcall rpmgetkeyvalstr(pcour, "GAS", str, "AIR")if (samestring(str, "AIR")) defsolver%defns%typ_gas = gas_AIRselect case(defsolver%defns%typ_gas)case(gas_AIR) call print_info(10," gaz ideal 'AIR'") defsolver%defns%nb_species = 1 allocate(defsolver%defns%properties(defsolver%defns%nb_species)) ! -- definition d'espece 1 defsolver%defns%properties(1)%gamma = 1.40_krp defsolver%defns%properties(1)%r_const = 287.14_krp defsolver%defns%properties(1)%prandtl = 0.72_krp defsolver%defns%properties(1)%visc_dyn = 0.00_krpcase default call erreur("lecture de menu", "modelisation du gas inconnue (GAS)")endselectendsubroutine def_model_ns!------------------------------------------------------------------------------!! Historique des modifications!! sept 2003 : creation de la procedure! nov 2003 : definition du fluide (Euler) et du gaz (AIR mono espece)!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -