📄 trait_zoneparam.f90
字号:
!------------------------------------------------------------------------------!! Procedure : trait_zoneparam Auteur : J. Gressier! Date : Juillet 2002! Fonction Modif : (cf historique)! Traitement des parametres de definition des zones!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine trait_zoneparam(prj, block, solver, zone)use RPMuse VARCOMuse OUTPUTuse DEFZONEuse MENU_GENuse MENU_BOCOimplicit none! -- Declaration des entrees --type(mnu_project) :: prjtype(rpmblock), target :: block ! blocks RPM (parametres de la zone a lire)integer :: solver ! type de solveur! -- Declaration des sorties --type(st_zone) :: zone! -- Declaration des variables internes --type(rpmblock), pointer :: pblock, pcour ! pointeur de bloc RPMinteger :: nkey ! nombre de clefsinteger :: nboco ! nombre de conditions limitesinteger :: nzr ! nombre de couplages avec d'autres ! zonesinteger :: ib ! indice de parcours des bococharacter(len=dimrpmlig):: str ! chaine RPM intermediaire! -- Debut de la procedure --! -------------------------! definition de la modelisationcall init_mnu_solver(zone%defsolver)zone%defsolver%typ_solver = solverselect case(solver)case(solKDIF) if (.not.pass_kdif) call erreur("restriction","solveur Conduction indisponible") call def_model_kdif(block, zone%defsolver)case(solNS) if (.not.pass_ns) call erreur("restriction","solveur Navier-Stokes indisponible") call def_model_ns(block, zone%defsolver)case(solVORTEX) if (.not.pass_vort) call erreur("restriction","solveur Vortex indisponible") call def_model_vortex(block, zone%defsolver)case default call erreur("lecture de menu","solveur inconnu")endselect! -------------------------! Definition du maillagecall def_mesh(block, zone%defmesh)! -------------------------! Definition des parametres de simulationcall def_time(prj, block, solver, zone%deftime)call def_spat(block, zone%defsolver, zone%defspat)call def_amr(block, solver, zone%defsolver%defamr)! -------------------------! Definition des conditions aux limites et parametres de couplage! -- Determination du nombre de couplages avec d'autres zonescall print_info(5,"- Nombre de zones couplees")pblock => blockcall seekrpmblock(pblock, "BOCO", 0, pcour, nboco)if (nboco < 1) call erreur("lecture de menu", & "Pas de definition de conditions aux limites (BOCO)")! Initialisation du nombre de couplages avec d'autres zonesnzr = 0 do ib = 1, nboco call seekrpmblock(pblock, "BOCO", ib, pcour, nkey) ! -- Determination du type de condition aux limites call rpmgetkeyvalstr(pcour, "TYPE", str) if(samestring(str,"COUPLING")) nzr = nzr +1enddo! Allocation de couplingzone%ncoupling = nzr!if (zone%ncoupling > 0) then allocate(zone%coupling(zone%ncoupling))!endif! Conditions aux limitescall def_boco(block, solver, zone%defsolver, zone%coupling, zone%ncoupling)! -------------------------! Definition de l'initialisationcall def_init(block, solver, zone%defsolver)! -------------------------! Definition des capteurscall def_capteurs(block, solver, zone%defsolver)! -------------------------! Definition des autres parametrescall def_other(block, solver, zone%defsolver)endsubroutine trait_zoneparam!------------------------------------------------------------------------------!! Historique des modifications!! Juil 2002 : creation de la procedure! Sept 2003 : appel a la definition de solveur NS! Nov 2003 : appel a la definition de capteurs! Fev 2004 : appel a la definition de solveur VORTEX!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -