24小时热门版块排行榜    

查看: 875  |  回复: 0

gml123456

新虫 (小有名气)

[求助] 请教各位懂Fortran的大侠!!!!!!!!!!

本人在做铁水脱硫过程的数学模型的程序设计,使用的是Fortran语言,vs2010和Intel Fortran Composer XE 2011,在调试过程中出现警告
警告        4        warning #13380 Compiler configuration problem encountered.  Compiler cannot load imf dispatching library.        D:\软件安装\My Project\Console2\Console2\Source1.f901        。本人初学,哪位大侠知道是怎么回事?不胜感激!!!
求帮助!
源代码如下:
!  主程序      
!      将原来的计算粉剂停留时间中的0.815改为0.45再改为0.37,Ps=2200
       external f
       external ff
         external taofnf
         integer  taofnn,taofnm,TN,TN1
       dimension y(1),d(1),z(1,3600),b(1),zz(1,3600)
       double precision y,d,z,t,h,b,zz
       DIMENSION TAOFNY(1),TAOFND(1),TAOFNZ(1,150*2),TAOFNB(1)
       double precision taoFNy,taoFNd,taoFNz,taoFNh,taoFNb,taoFNt    !双精度语句
      real a,A0,bei,Ip,Tao,Yi,Ps,Pm,Pz,WD,L,dm,Ws0,Wm,FeO0,CaO0,MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00,QLIU,ZT
      common a,a0,bei,Ip,Tao,Yi,Ps,Pm,Pz,WD,L,dm,Ws0,Wm,FeO0,CaO0, MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00, ZT
      common /Q1/QLIU
      open(unit=1,file='cSjladle.DAT',access='sequential',form='formatted')
      read(1,100)  a,$a
      read(1,100)  A0,$a
      read(1,110)  Ip,$a
      read(1,100)  Yi,$a
      read(1,100)  Ps,$a
      read(1,100)  Pm,$a
      read(1,100)  Pz,$a
      read(1,100)  wd,$a
      read(1,100)  L,$a
      read(1,200)  dm,$a
      read(1,300)  Ws0,$a
      read(1,300)  Wm,$a
      read(1,400)  FeO0,$a
      read(1,400)  CaO0,$a
      read(1,400)  MgO0,$a
      read(1,400)  SiO20,$a
      read(1,400)  Al2O30,$a
      read(1,400)  CaOp,$a
      read(1,400)  CaC2p,$a
      read(1,400)  Ecs,$a
      read(1,400)  Esis,$a
      read(1,400)  Eps,$a
      read(1,400)  Emns,$a
      read(1,500)  C,$a
      read(1,500)  Si,$a
      read(1,110)  P,$a
      read(1,110)  Mn,$a
      read(1,600)  S0,$a
      read(1,600)  S00,$a
           read(1,400)  qliu,$a
        read(1,700)  TN,$a
      read(1,700)  TN1,$a
100  format(F6.1,A)          !格式说明语句
110  format(F6.3,A )
200  FORMAT(F10.8,A)
300  format(F8.1,A)
400  format(F7.4,A)
500  format(F4.2,A)
600  format(F7.5,A)
700  format(I4,A)     


!         调用求粉剂停留时间子程序
        TAOFNT=0
        TAOFNY(1)=0
        TAOFNH=0.03
        TAOFNH=0.005
        TAOFNM=1
        TAOFNN=142
!        TAOFNN=257

        CALL grktTFN(TAOFNt,TAOFNY,TAOFNm,TAOFNh,TAOFNn,TAOFNz,TAOFNf,TAOFNd,TAOFNb)
      
               open(unit=3,file='mcFENtao.dat')
             do 1000 i=1,TAOFNn
                       TAOFNt=(i-1)*TAOFNh
                       write(3,2000) TAOFNT,(TAOFNz(j,i),j=1,taoFNm)
         
1000       continue
2000       format(F7.3,E18.6)
  
            tao=taoFNz(1,taoFNn)
!   调用喷粉脱硫子程序
       t=0.0
       y(1)=S00
       h=1
       m=1
       n=tn+1
       n1=tn1+1
         zt=h*n

       call grkt1(t,y,m,h,n,z,f,d,b)
       write(*,*)
       open(unit=2,file='ladlecac2csjladle01.DAT')
       do 10 i=1,n
              t=(i-1)*h+0.0
              write(2,50)t,(z(j,i),j=1,m)
  10   continue
        WRITE(*,*) Z(1,N)
!   调用喷粉之后吹气脱硫子程序  
       t=(n-1)*h
       y(1)=z(1,n)
       m1=1
      
       call grkt2(t,y,m1,h,n1,zz,ff,d,b)
       write(*,*)
       open(unit=2,file='ladlecac2csjladle01.dat')
       do 20 i=2,n1
              t=(i-2)*h+h*n
              write(2,50)t,(zz(j,i),j=1,m1)
  20   continue

! *****************************************************************  
  50  format(f7.2,e18.10,e18.10)
       close(1)
       close(2)
         close(3)
       end
  

!     粉剂停留时间子程序
         subroutine  grktTFN(TAOFNt,TAOFNY,TAOFNm,TAOFNh,&
                        TAOFNn,TAOFNz,TAOFNf,TAOFNd,TAOFNb)
       integer     TAOFNm, TAOFNn
       dimension   TAOFNy(TAOFNm),TAOFNd(TAOFNm),TAOFNz(TAOFNm,TAOFNn),A(4),TAOFNb(TAOFNm)
       double precision TAOFNy,TAOFNd,TAOFNz,a,TAOFNb,TAOFNt,TAOFNh,x,tt
       a(1)=TAOFNh/2.0
       a(2)=a(1)
       a(3)=TAOFNh
       a(4)=TAOFNh
       do 5 i=1,TAOFNm
5     TAOFNz(i,1)=TAOFNy(i)
       x=TAOFNt
       do 100 j=2,TAOFNn
          call TAOFNF(TAOFNt,TAOFNm,TAOFNd)
          do 10 i=1,TAOFNm
10       TAOFNb(i)=TAOFNy(i)
          do 30 k=1,3
              do 20 i=1,TAOFNm
                  TAOFNy(i)=TAOFNz(i,j-1)+a(k)*TAOFNd(i)
                  TAOFNb(i)=TAOFNb(i)+a(k+1)*TAOFNd(i)/3.0
20           continue
       tt=TAOFNt+a(k)
       call TAOFNf(tt,TAOFNm,TAOFNd)
30    continue
       do 40 i=1,TAOFNm
40    TAOFNy(i)=TAOFNb(i)+TAOFNh*TAOFNd(i)/6.0
       do 50 i=1,TAOFNm
  50   TAOFNz(i,j)=TAOFNy(i)
       TAOFNt=TAOFNt+TAOFNh
  100  continue
       TAOFNt=x
       return
       end



!    喷粉脱硫子程序
       subroutine  grkt1(t,y,m,h,n,z,f,d,b)
       dimension y(m),d(m),z(m,n),a(4),b(m)
       double precision y,d,z,a,b,t,h,x,tt
       a(1)=h/2.0
       a(2)=a(1)
       a(3)=h
       a(4)=h
       do 5 i=1,m
5     z(i,1)=y(i)
       x=t
       do 100 j=2,n
          call  f(t,y,m,d)
          do 10 i=1,m
10       b(i)=y(i)
          do 30 k=1,3
              do 20 i=1,m
                  y(i)=z(i,j-1)+a(k)*d(i)
                  b(i)=b(i)+a(k+1)*d(i)/3.0
                 
20           continue
       tt=t+a(k)
     
       call f(tt,y,m,d)
30    continue
       do 40 i=1,m
40    y(i)=b(i)+h*d(i)/6.0

       do 50 i=1,m
       z(i,j)=y(i)
50    continue  
       t=t+h
100   continue
       t=x
      return
       end
      

!     计算停留时间子程序的外部函数
      subroutine TAOFNf(taoFNt,taoFNm,taoFNd)
      COMMON /Q1/QLIU
      integer    taoFNm
      dimension  taoFNd(taoFNm)
      double precision taoFNd,taoFNt
             REAL QLIU
      taoFNd(1)=1.0/(4.945*(3093*QLIU/4)**0.0539563*(0.0049952-0.03896*(taoFNt+0.37)+0.12842*(taoFNt+0.37)**2-0.035039*(taoFNt+0.37)**3+0.001948*(taoFNt+0.37)**4)**0.957432)
!      鱼雷罐车参数
      taoFNd(1)=1.0/(4.945*(3093*QLIU)**0.0539563*(0.0049952-0.0824*(taoFNt+0.9)+0.5744*(taoFNt+0.9)**2-0.3314*(taoFNt+0.9)**3+0.03897*(taoFNt+0.9)**4)**0.957432)
      
      return
      end

!    计算喷粉脱硫子程序的外部函数
      subroutine f(t,y,m,d)
      dimension  y(m),d(m)
      double precision y,d,t,u,Dk,w,Re,Sc,Pe,Sh,Km,u2,Dk1,Re1,Sc1,Sh1,Km1,Q,Se,w1
        double precision XX,XXX,XXXX,VC,DP,BEILI
        DOUBLE PRECISION UUS,DDS,WWS,RES,SCS,SHS,KMS
      REAL a,A0,bei,Ip,Tao,Yi,Ps,Pm,Pz,WD,L,dm,Ws0,Wm,FeO0,CaO0,MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00,ZT,Qliu ,tm ,gqm
      DOUBLE PRECISION  Xfeo,Xsialp,Xcamnmg,Afeo,Rjd ,Ls
      
      COMMON a,a0,bei,Ip,Tao,Yi,Ps,Pm,Pz,WD,L,dm,Ws0,Wm,FeO0,CaO0,MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00,ZT
          COMMON /Q1/QLIU
! *********************************************************************
      write(*,*) yi,mn,s00,ecs,WD
! ***************************************************************
      w1=0.51967*(QLIU)**(1.0/3.0)
      Q=Ecs*C+Emns*Mn+Esis*Si+Eps*P
      Se=0.00000100
        tm=1.22*167.2*(76.12*QLIU)**(-0.22721)
        tm=167.2*(76.12*QLIU)**(-0.22721)
        tm=60.7*(76.128*qliu)**(-0.52527)

!     计算传质系数
          u=0.30805*1.0E-003*EXP(5284.6079/(wd-0.014*t))
          Dk=4.33*1.0E-008*EXP(-4281.9/(wd-0.014*t))
          w=(Pm-Ps)*9.8*dm**2/(18.0*u)
          Re=Pm*w*dm/u
          Sc=u/(Pm*Dk)
          Pe=Sc*Re
          Sh=(4.0+1.21*Pe**(2.0/3.0))**(1.0/2.0)
          Km=Sh*Dk/dm
          u2=8.0*1.0E-009*EXP(258208.6/(8.314*(wd-0.014*t)))
          Dk1=1.4*1.0E-004*EXP(-205020.0/(8.314*(wd-0.014*t)))
          Re1=Pz*w1*L/u2
          Sc1=u2/(Pz*Dk1)
          Sh1=0.664*Sc1**(1.0/3.0)*Re1**(1.0/2.0)
          Km1=Sh1*Dk1/L
                gqm=Ip/(0.62144*qliu)
        BEI=(1.2)**(gqm-10.638)*0.01*7.75858*(Ip/(0.62144*qliu))**0.40928
        BEI=0.01*7.75858*(Ip/(0.62144*qliu))**0.40928
        VC=1.2732*(QLIU+Ip/2200)/(2*0.042**2)
        VC=1.2732*(QLIU+Ip/2200)/(0.019**2)
        DP=80.207/VC**2
        BEILI=100-(-1.65745+2591.3*DP-23765.66*DP**2+78006.6*DP**3)
        BEI=0.01*(73.88724-0.39327*BEILI)
        BEI=(1.05)**(gqm-10.638)*0.01*(73.88724-0.39327*BEILI)

!          求顶渣脱硫各参数
      
      UUS=8.0*1.0E-009*EXP(258208.6/(8.314*(WD-0.014*t)))
      DDS=1.4*1.0E-004*EXP(-205020.0/(8.314*(WD-0.014*t)))
      WWS=0.51967*(QLIU)**(1.0/3.0)
      ReS=Pz*WWS*L/UUS
      ScS=UUS/(Pz*DDS)
      ShS=0.664*ScS**(1.0/3.0)*ReS**(1.0/2.0)
      KmS=ShS*DDS/L

!      求硫的分配系数与时间的关系
      Xfeo=(FeO0*Ws0/72.0)/(FeO0*Ws0/72.0+SiO20*ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40.0+(CaO0*Ws0+Ip*t*(CaOp+CaC2p*7.0/8.0))/56.0)
      XsiAlP=(SiO20*Ws0/60.0+AL2O30*Ws0/102.0)/(FeO0*Ws0/72.0+SiO20*Ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40.0+(CaO0*Ws0+Ip*t*(CaOp+CaC2p*7.0/8.0))/56.0)
      Xcamnmg=(MgO0*Ws0/40.0+(CaO0*Ws0+Ip*t*(CaOp+CaC2p*7.0/8.0))/56.0)/(FeO0*Ws0/72.0+SiO20*ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40.0+(CaO0*Ws0+Ip*t*(CaOp+CaC2p*7.0/8.0))/56.0)
      Afeo=0.14935*Xfeo**0.936719*XsiALP**(-2.83381)*Xcamnmg**0.114412
      Rjd=(CaO0*Ws0+Ip*t*(CaOp+CaC2p*7.0/8.0)+0.69*MgO0*Ws0)/(0.93*SiO20*Ws0+0.18*Al2O30*Ws0)
      Ls=10**(Q-6.929+1.39*Rjd+5384.0/(wd-0.0140*t))/(Afeo)
      xx=-((a*a0*Pz)/Wm)*KmS*Ls
      xxx=xx*(y(1)*EXP(-tm/ZT)-((S0*Ws0+(S00-Y(1)*EXP(-tm/ZT))*Wm)/(Ws0+Ip*Yi*t))/Ls)
      D(1)=-6*bei*Ip*Tao*Pm*Km*(Y(1)*EXP(-tm/ZT)-Se)/(dm*Wm*Ps)-a*A0*Pz*Km1*Ls*(Y(1)*EXP(-tm/ZT)-((S0*Ws0+(S00-Y(1)*EXP(-tm/ZT))*Wm)/(Ws0+Ip*Yi*t))/Ls)/Wm
      XXXX=-6*bei*Ip*Tao*Pm*Km*(Y(1)*EXP(-tm/ZT)-Se)/(dm*Wm*Ps)
     write(*,*) d(1),ls
      return
      end
      
!   吹气脱硫子程序        ?     
      subroutine  grkt2(t,y,m1,h,n1,zz,ff,d,b)
       dimension y(m1),d(m1),zz(m1,n1),a(4),b(m1)
       double precision y,d,zz,a,b,t,h,x,tt
       a(1)=h/2.0
       a(2)=a(1)
       a(3)=h
       a(4)=h
       do 5 i=1,m1
5     zz(i,1)=y(i)
       x=t
       do 100 j=2,n1
          call  ff(t,y,m1,d)
          do 10 i=1,m1
10       b(i)=y(i)
          do 30 k=1,3
              do 20 i=1,m1
                  y(i)=zz(i,j-1)+a(k)*d(i)
                  b(i)=b(i)+a(k+1)*d(i)/3.0
                 
20           continue
       tt=t+a(k)
     
       call ff(tt,y,m1,d)
30    continue
       do 40 i=1,m1
40    y(i)=b(i)+h*d(i)/6.0

       do 50 i=1,m1
       zz(i,j)=y(i)
50    continue  
       t=t+h
100   continue
       t=x
      return
       end
      
!  计算吹气脱硫子程序的外部函数
      subroutine ff(t,y,m1,d)
      dimension  y(m1),d(m1)
      double precision y,d,t,u2,u3,Dk1,Re1,Sc1,Sh1,Km1,Q,w1
      REAL a,A0,bei,Ip,Tao,Yi,Ps,Pm,Pz,wd,L,dm,Ws0,Wm,FeO0,CaO0,MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00,ZT,QLIU,tm
      DOUBLE PRECISION  Xfeo,Xsialp,Xcamnmg,Afeo,Rjd ,Ls,xx
      
      common a,a0,bei,Ip,Tao,Yi,Ps,Pm,Pz,WD,L,dm,Ws0,Wm,FeO0,CaO0,MgO0,SiO20,Al2O30,CaOp,CaC2p,Ecs,Esis,Eps,Emns,C,Si,P,Mn,S0,S00,ZT
      COMMON /Q1/QLIU
! *********************************************************************
      write(*,*) yi,mn,s00,ecs,wd
! ***************************************************************
      w1=0.51967*(QLIU)**(1.0/3.0)
      Q=Ecs*C+Emns*Mn+Esis*Si+Eps*P
        tm=167.2*(76.128*QLIU)**(-0.22721)
!   求顶渣脱硫参数
          u2=8.0*1.0E-009*EXP(258208.6/(8.314*(wd-0.014*t)))
          Dk1=1.4*1.0E-004*EXP(-205020.0/(8.314*(wd-0.014*t)))
          u3=0.1*u2
          Re1=Pz*w1*L/u3
          Sc1=u3/(Pz*Dk1)
          Sh1=0.664*Sc1**(1.0/3.0)*Re1**(1.0/2.0)
          Km1=Sh1*Dk1/L

      
!   求硫的分配系数与时间的关系      
      write(*,*) km1
      Xfeo=(FeO0*Ws0/72.0)/(FeO0*Ws0/72.0+SiO20*ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40+(CaO0*Ws0+Ip*ZT*(CaOp+CaC2p*7/8))/56.0)
      XsiAlP=(SiO20*Ws0/60.0+AL2O30*Ws0/102.0)/(FeO0*Ws0/72.0+SiO20*Ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40.0+(CaO0*Ws0+Ip*ZT*(CaOp+CaC2p*7.0/8.0))/56.0)
      Xcamnmg=(MgO0*Ws0/40.0+(CaO0*Ws0+Ip*ZT*(CaOp+CaC2p*7.0/8.0))/56.0)/(FeO0*Ws0/72.0+SiO20*ws0/60.0+AL2O30*WS0/102.0+MgO0*Ws0/40.0+(CaO0*Ws0+Ip*ZT*(CaOp+CaC2p*7.0/8.0))/56.0)
      Afeo=0.14935*Xfeo**0.936719*XsiALP**(-2.83381)*Xcamnmg**0.114412
      Rjd=(CaO0*Ws0+Ip*ZT*(CaOp+CaC2p*7.0/8.0)+0.69*MgO0*Ws0)/(0.93*SiO20*Ws0+0.18*Al2O30*Ws0)
      Ls=10**(Q-6.929+1.39*Rjd+5384.0/(wd-0.0140*t))/(Afeo)
      xx=-((a*a0*Pz)/Wm)*Km1*Ls
      d(1)=xx*(y(1)*EXP(-tm/ZT)-((S0*Ws0+(S00-Y(1)*EXP(-tm/ZT))*Wm)/(Ws0+Ip*Yi*t))/Ls)
     write(*,*) d(1),Rjd,LS
      end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 gml123456 的主题更新
信息提示
请填处理意见