📄 update_champ.f90
字号:
!------------------------------------------------------------------------------!! Procedure : update_champ Auteur : J. Gressier! Date : Mai 2003! Fonction Modif : cf historique! Mise a jour des champs conservatifs dans les equations de bilan! Calcul eventuel d'informations!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine update_champ(info, field, ncell)use TYPHMAKEuse MODINFOuse VARCOMuse OUTPUTuse DEFFIELDimplicit none! -- Declaration des entrees --integer :: ncell ! nombre de cellules a mettre a jour! -- Declaration des entrees/sorties --type(st_infozone) :: info ! champ d'etat et de gradientstype(st_field) :: field ! champ d'etat et de gradients! -- Declaration des variables internes --integer :: nc, ip, ic! -- Debut de la procedure --nc = ncelldo ip = 1, field%nscal field%etatcons%tabscal(ip)%scal(1:nc) = field%etatcons%tabscal(ip)%scal(1:nc) & + field%residu%tabscal(ip)%scal(1:nc) enddodo ip = 1, field%nvect do ic = 1, nc field%etatcons%tabvect(ip)%vect(ic) = field%etatcons%tabvect(ip)%vect(ic) & + field%residu%tabvect(ip)%vect(ic) enddoenddo! -- Calcul de residus dans le cas pseudo-stationnaireif (info%typ_temps == stationnaire) then info%cur_res = 0._krp do ip = 1, field%nscal info%cur_res = info%cur_res + sum(abs(field%residu%tabscal(ip)%scal(1:nc))) enddo do ip = 1, field%nvect do ic = 1, nc ! ATTENTION : le residu est calcule sur la norme du vecteur, non ses composantes info%cur_res = info%cur_res + abs(field%residu%tabvect(ip)%vect(ic)) enddo enddo endifendsubroutine update_champ!------------------------------------------------------------------------------!! Historique des modifications!! mai 2003 : creation de la procedure! sept 2003 : calcul des residus!------------------------------------------------------------------------------!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -