📄 explicit_step.f90
字号:
!------------------------------------------------------------------------------!! Procedure : explicit_step Auteur : J. Gressier! Date : Avril 2004! Fonction Modif : (cf historique)! Integration explicit de domaine!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine explicit_step(dt, typtemps, defsolver, defspat, deftime, & umesh, field, coupling, ncp)use TYPHMAKEuse OUTPUTuse VARCOMuse MENU_SOLVERuse MENU_NUMuse USTMESHuse DEFFIELDuse MENU_ZONECOUPLINGimplicit none! -- Declaration des entrees --real(krp) :: dt ! pas de temps CFLcharacter :: typtemps ! type d'integration (stat, instat, period)type(mnu_solver) :: defsolver ! type d'equation a resoudretype(mnu_spat) :: defspat ! parametres d'integration spatialetype(mnu_time) :: deftime ! parametres d'integration spatialetype(st_ustmesh) :: umesh ! domaine non structure a integrerinteger :: ncp ! nombre de couplages de la zone! -- Declaration des entrees/sorties --type(st_field) :: field ! champ des valeurs et residustype(mnu_zonecoupling), dimension(1:ncp) & :: coupling ! donnees de couplage! -- Declaration des variables internes --type(st_genericfield) :: flux ! tableaux des fluxreal(krp), dimension(1) :: jacL, jacR ! tableaux FICTIFS de jacobiennes des flux! -- Debut de la procedure --! -- allocation des flux et termes sources (structure equivalente a field%etatcons) --call new(flux, umesh%nface, field%nscal, field%nvect, 0)! On peut ici decouper le maillage complet en blocs de taille fixe pour optimiser! l'encombrement memoire et la vectorisation!print*,'FLUX!'select case(defsolver%typ_solver)case(solNS) call integration_ns_ust(dt, defsolver, defspat, umesh, field, flux, .false., jacL, jacR)case(solKDIF) call integration_kdif_ust(dt, defsolver, defspat, umesh, field, flux, .false., jacL, jacR)case default call erreur("incoherence interne (explicit_step)", "solveur inconnu")endselect! -- flux surfaciques -> flux de surfaces et calcul des residus --call flux_to_res(dt, umesh, flux, field%residu, .false., jacL, jacR)! -- calcul pour correction en couplage --select case(typtemps) case(instationnaire) ! corrections de flux seulement en instationnaire ! Calcul de l'"energie" a l'interface, en vue de la correction de flux, pour ! le couplage avec echanges espaces !DVT : flux%tabscal(1) ! if (ncp>0) then call accumulfluxcorr(dt, defsolver, umesh%nboco, umesh%boco, & umesh%nface, flux%tabscal(1)%scal, ncp, & coupling) endifendselectcall delete(flux)endsubroutine explicit_step!------------------------------------------------------------------------------!! Historique des modifications!! avr 2003 : creation de la procedure! juil 2003 : ajout corrections de flux! oct 2003 : corrections de flux seulement en instationnaire! avr 2004 : changement de nom integration_ustdomaine -> integration_grid! avr 2004 : decoupage integration_grid -> explicit_step! july 2004 : call Navier-Stokes solver integration!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -