⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ech_data_kdif.f90

📁 国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码
💻 F90
字号:
!------------------------------------------------------------------------------!! Procedure : ech_data_kdif               Auteur : E. Radenac!                                         Date   : Juin 2003! Fonction                                Modif  : Juillet 2003!   Ecrire les donnees variables dans le temps dans une structure !   donnees_echange_inst, pour la diffusion de la chaleur! Defauts/Limitations/Divers :!   Limitation au cas un domaine unique par zone!------------------------------------------------------------------------------! subroutine ech_data_kdif(donnees_echange_inst1, zone1, nbc1, &                         donnees_echange_inst2, zone2, nbc2, ncoupl1, &                         ncoupl2, typcor )use TYPHMAKEuse OUTPUTuse GEO3Duse DEFZONEuse DEFFIELDuse MATER_LOIuse VARCOMimplicit none! -- Declaration des entrees --type(st_zone)           :: zone1, zone2integer                 :: nbc1, nbc2 ! indice de la condition aux limitesinteger                 :: ncoupl1, ncoupl2integer                 :: typcor! -- Declaration donnees_echange    type(st_genericfield) :: donnees_echange_inst1,  donnees_echange_inst2! -- Declaration des variables internes --integer   :: i, icl1, icl2, if1, if2real(krp) :: conduct! -- Debut de la procedure --do i=1, zone1%grid%umesh%boco(nbc1)%nface    if1 = zone1%grid%umesh%boco(nbc1)%iface(i)  if2 = zone2%grid%umesh%boco(nbc2)%iface(zone2%coupling(ncoupl2)%zcoupling%connface(i))  icl1 = zone1%grid%umesh%facecell%fils(if1,1)  icl2 = zone2%grid%umesh%facecell%fils(if2,1)  ! Calcul de conductivite de la zone 1  select case(zone1%defsolver%defkdif%materiau%type)  case(mat_LIN, mat_KNL)    conduct = valeur_loi(zone1%defsolver%defkdif%materiau%Kd, &                         zone1%grid%field_loc%etatprim%tabscal(1)%scal(icl1))  case(mat_XMAT)    call erreur("Calcul de materiau","Materiau non lineaire interdit")  endselect  ! Affectation des donnees d'echange de la zone 1  if (typcor == bocoT) then!DEBUGprint*, "correction BOCO"    donnees_echange_inst1%tabscal(1)%scal(i) = &             (zone1%grid%field_loc%etatcons%tabscal(1)%scal(icl1) - &             (zone1%coupling(ncoupl1)%zcoupling%etatcons%tabscal(2)%scal(i) / &             zone1%grid%umesh%mesh%volume(icl1,1,1)) ) / &             zone1%defsolver%defkdif%materiau%Cp    ! reste de correction nul    ! zone1%coupling(ncoupl1)%zcoupling%etatcons%tabscal(3)%scal(i) = 0  else    !donnees_echange_inst1%tabscal(1)%scal(i) = &    !                              zone1%grid%field%etatprim%tabscal(1)%scal(icl1)    donnees_echange_inst1%tabscal(1)%scal(i) = &             zone1%grid%field_loc%etatcons%tabscal(1)%scal(icl1)/ &             zone1%defsolver%defkdif%materiau%Cp  endif  donnees_echange_inst1%tabscal(2)%scal(i) = conduct  !donnees_echange_inst1%tabvect(1)%vect(if) = zone1%grid%field%gradient%tabvect(1)%vect(icl)  ! Calcul de conductivite de la zone 2  select case(zone2%defsolver%defkdif%materiau%type)  case(mat_LIN, mat_KNL)    conduct = valeur_loi(zone2%defsolver%defkdif%materiau%Kd, &                         zone2%grid%field_loc%etatprim%tabscal(1)%scal(icl2))  case(mat_XMAT)    call erreur("Calcul de materiau","Materiau non lineaire interdit")  endselect  ! Affectation des donnees d'echange de la zone 2  if (typcor == bocoT) then    donnees_echange_inst2%tabscal(1)%scal(i) = &             (zone2%grid%field_loc%etatcons%tabscal(1)%scal(icl2) - &             (zone2%coupling(ncoupl2)%zcoupling%etatcons%tabscal(2)%scal(i) / &             zone2%grid%umesh%mesh%volume(icl2,1,1)) ) / &             zone2%defsolver%defkdif%materiau%Cp    ! reste de correction nul    ! zone2%coupling(ncoupl2)%zcoupling%etatcons%tabscal(3)%scal(i) = 0  else    !donnees_echange_inst2%tabscal(1)%scal(i) = &    !                              zone2%grid%field%etatprim%tabscal(1)%scal(icl2)    donnees_echange_inst2%tabscal(1)%scal(i) = &             zone2%grid%field_loc%etatcons%tabscal(1)%scal(icl2)/ &             zone2%defsolver%defkdif%materiau%Cp  endif  donnees_echange_inst2%tabscal(2)%scal(i) = conduct  !donnees_echange_inst2%tabvect(1)%vect(if) = zone2%grid%field%gradient%tabvect(1)%vect(icl)  enddoendsubroutine ech_data_kdif!------------------------------------------------------------------------------!! Historique des modifications!! juin 2003 (v0.0.1b): creation de la procedure! juillet 2003       : conductivite non constante! oct  2004          : field chained list!------------------------------------------------------------------------------!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -