回 帖 发 新 帖 刷新版面

主题:请高手帮忙看看,我想实现积分,但是为什么不行,但是可以运行,结果并不是积分

SUBROUTINE DUMP_BNDF(T,NM)

REAL(EB), INTENT(IN) :: T
REAL(FB) :: STIME
REAL(EB), SAVE :: TI_T
REAL(FB), SAVE :: PPH11(-100:100,-100:100)
INTEGER :: ISUM,IG,JG,KG,IOR,NF,IND,I,J,K,I1,I2,J1,J2,K1,K2,IC,IW,N
INTEGER, INTENT(IN) :: NM

SELECT CASE (IOR)
 CASE (-2)
            JG=JBAR
            I1 = 1
            I2 = IBAR
            K1 = 1
            K2 = KBAR
            DO K=K1,K2
               DO I=I1,I2
                  IC = CELL_INDEX(I,JG,K)
                  IW = WALL_INDEX(IC,-IOR)
                  PP(I,K) = SOLID_PHASE_OUTPUT(IW,IND)*(K*0.05_EB/0.05_EB)**0.1_EB
                  IF (BOUNDARY_TYPE(IW)/=NULL_BOUNDARY .AND. .NOT.SOLID(CELL_INDEX(I,JG,K))) IBK(I,K)=1
               ENDDO
            ENDDO
            DO K=K1-1,K2
               DO I=I1-1,I2
                  IF (IBK(I,K)==1)     PPN(I,K) = PPN(I,K) + PP(I,K)
                  IF (IBK(I+1,K)==1)   PPN(I,K) = PPN(I,K) + PP(I+1,K)
                  IF (IBK(I,K+1)==1)   PPN(I,K) = PPN(I,K) + PP(I,K+1)
                  IF (IBK(I+1,K+1)==1) PPN(I,K) = PPN(I,K) + PP(I+1,K+1)
                  ISUM = IBK(I,K)+IBK(I,K+1)+IBK(I+1,K)+IBK(I+1,K+1)
                  IF (ISUM>0) THEN
                     PPN(I,K) = PPN(I,K)/REAL(ISUM,EB)
                  ELSE
                     PPN(I,K) = SOLID_PHASE_OUTPUT(0,IND)*(K*0.05_EB/0.02_EB)**0.1_EB
                  ENDIF
               ENDDO
            ENDDO
            PPN(I,K) = PPH11(I,K)+(T-TI_T)*PPN(I,K)
            TI_T = T
            PPH11(I,K) = PPN(I,K)
            WRITE(LU_BNDF(NF,NM)) ((PPN(I,K),I=I1-1,I2),K=K1-1,K2) 
 END SELECT

回复列表 (共2个回复)

沙发

我只看到了IOR没初始化
函数体也没执行

板凳

很多变量都没初始化。

只传入了 T 和 NM ,一个整数,一个实数。

怎么积分??

我来回复

您尚未登录,请登录后再回复。点此登录或注册