主题:哪位高手可以帮我看看这段程序错在哪?小弟感激不尽!!
!*******计算Fibonacci链DNA电子透射谱及I-V特征曲线特性**************(成功)
program main
IMPLICIT NONE
INTEGER,PARAMETER::N=14
INTEGER I,A1N,A2N,A3N,J,K
integer::m=1 !m是cache的计数器
INTEGER ORD
CHARACTER A1(1000),A2(1000),A3(1000)
REAL*8 A(1000),L11,P11,L12,P12,L21,P21,L22,P22,R11,R12,R21,R22,TE,EM,TM
REAL*8 S0,VOLT,TEMPER,FIMIL,FIMIR,EF,E,TDM ,FIMI,TD(1000)
real(kind=8)::cache(6,1000) !存储数组
ORD=100
TM=0.68 !TM为电极内格点相互作用
! TD=0.35 !TD为碱基对间相互作用
EM=0
S0=0 !S0为电流强度
EF=0 !EF为费米能级
!*******以下得到Fibonacci PolyGC DNA链**************
A3N=0
A1N=1
A2N=2
A1(1)="G"
A2(1)="G"
A2(2)="C"
! WRITE(*,*) A1N,A1(1:A1N)
! WRITE(*,*) A2N,A2(1:A2N)
DO I=3,N
A3N=A1N+A2N
DO J=1,A2N
A3(J)=A2(J)
END DO
DO K=1,A1N
A3(A2N+K)=A1(K)
END DO
A1=A2
A2=A3
A1N=A2N
A2N=A3N
END DO
!**************************************
DO I=1,ORD !在产生的总链长中取ORD个碱基的长度
IF(A3(I)=="G") A(I)=0.38
IF(A3(I)=="C") A(I)=0
! WRITE(*,*) I,A(I)
END DO
!***************************碱基对间相互作用赋值***************************
DO I=1,ORD
! IF(A(I).EQ.A(I+1)) THEN
TD=0.35 !TD为碱基对间相互作用
! ELSE
! TD=0.17
! ENDIF
ENDDO
TDM=0.17 !TDM为碱基对与电极间耦合相互作用
!***************************碱基对间相互作用赋值***************************
!***********以下为传输矩阵p的计算********
! DO TEMPER=50,300,5
DO VOLT=0,2,0.1 !VOLT为外加电压
s0=0
DO E=-2,2,0.001 !E为能量
! VOLT=2 !VOLT为外加电压
TEMPER=300 !TEMPER为绝对温度
FIMIL=1/(1+EXP((E-(VOLT/2)-EF)/(0.862E-4*TEMPER)))
FIMIR=1/(1+EXP((E+(VOLT/2)-EF)/(0.862E-4*TEMPER)))
FIMI=FIMIL-FIMIR
10 L11=(E-EM)/TDM
L12=-TDM/TD(1)
L21=1
L22=0
DO I=1,ORD
P11=((E-A(I))/TD(I))*L11-L21
P12=((E-A(I))/TD(I))*L12-L22
P21=L11
P22=L12
L11=P11
L12=P12
L21=P21
L22=P22
END DO
!****************右边界矩阵************************
R11=(E-EM)/TDM
R12=-TD(ORD)/TDM
R21=1
R22=0
!****************右边界矩阵************************
P11=P11*R11+P12*R21
P12=P11*R12+P12*R22
P21=P21*R22+P22*R21
P22=P21*R12+P22*R22
!*********最后得到以上这些传输矩阵的元
!*********最后得到以上这些传输矩阵的元
TE=(4-((E-EM)/TM)**2)/(2+P11**2+P12**2+P21**2+P22**2+(E-EM)/TM*(P11-P22)&
*(P12-P21)-((E-EM)/TM)**2*(P12*P21+1)) !计算传输系数TE
IF(TE<=0) TE=0.00001
S0=S0+TE*ABS(FIMIL-FIMIR)*0.001
! WRITE(*,*) E,TE
ENDDO
cache(1,M)=-VOLT
cache(2,M)=-S0
cache(3,M)=VOLT
cache(4,M)=S0
cache(5,M)=TEMPER
cache(6,M)=S0
M=M+1
ENDDO
! DO M=20,1,-1
! write(*,*) cache(1,M), cache(2,M)
! enddo
DO M=1,20
write(*,*) cache(3,M), cache(4,M)
enddo
! DO M=1,50
! write(*,*) cache(5,M), cache(6,M)
! enddo
END
错误信息:
Compiling Fortran...
Z:\F\毕业论文\我的资料\ 程序\保存\DNATF1.f90
f90: Severe: Invalid argument
... file is 'Z:\F\±?òμ????\?òμ?×êá?\?T 3D?? 3ìDò\±£′?\DNATF1.f90'
Error executing df.exe.
DNATF1.obj - 1 error(s), 0 warning(s)
program main
IMPLICIT NONE
INTEGER,PARAMETER::N=14
INTEGER I,A1N,A2N,A3N,J,K
integer::m=1 !m是cache的计数器
INTEGER ORD
CHARACTER A1(1000),A2(1000),A3(1000)
REAL*8 A(1000),L11,P11,L12,P12,L21,P21,L22,P22,R11,R12,R21,R22,TE,EM,TM
REAL*8 S0,VOLT,TEMPER,FIMIL,FIMIR,EF,E,TDM ,FIMI,TD(1000)
real(kind=8)::cache(6,1000) !存储数组
ORD=100
TM=0.68 !TM为电极内格点相互作用
! TD=0.35 !TD为碱基对间相互作用
EM=0
S0=0 !S0为电流强度
EF=0 !EF为费米能级
!*******以下得到Fibonacci PolyGC DNA链**************
A3N=0
A1N=1
A2N=2
A1(1)="G"
A2(1)="G"
A2(2)="C"
! WRITE(*,*) A1N,A1(1:A1N)
! WRITE(*,*) A2N,A2(1:A2N)
DO I=3,N
A3N=A1N+A2N
DO J=1,A2N
A3(J)=A2(J)
END DO
DO K=1,A1N
A3(A2N+K)=A1(K)
END DO
A1=A2
A2=A3
A1N=A2N
A2N=A3N
END DO
!**************************************
DO I=1,ORD !在产生的总链长中取ORD个碱基的长度
IF(A3(I)=="G") A(I)=0.38
IF(A3(I)=="C") A(I)=0
! WRITE(*,*) I,A(I)
END DO
!***************************碱基对间相互作用赋值***************************
DO I=1,ORD
! IF(A(I).EQ.A(I+1)) THEN
TD=0.35 !TD为碱基对间相互作用
! ELSE
! TD=0.17
! ENDIF
ENDDO
TDM=0.17 !TDM为碱基对与电极间耦合相互作用
!***************************碱基对间相互作用赋值***************************
!***********以下为传输矩阵p的计算********
! DO TEMPER=50,300,5
DO VOLT=0,2,0.1 !VOLT为外加电压
s0=0
DO E=-2,2,0.001 !E为能量
! VOLT=2 !VOLT为外加电压
TEMPER=300 !TEMPER为绝对温度
FIMIL=1/(1+EXP((E-(VOLT/2)-EF)/(0.862E-4*TEMPER)))
FIMIR=1/(1+EXP((E+(VOLT/2)-EF)/(0.862E-4*TEMPER)))
FIMI=FIMIL-FIMIR
10 L11=(E-EM)/TDM
L12=-TDM/TD(1)
L21=1
L22=0
DO I=1,ORD
P11=((E-A(I))/TD(I))*L11-L21
P12=((E-A(I))/TD(I))*L12-L22
P21=L11
P22=L12
L11=P11
L12=P12
L21=P21
L22=P22
END DO
!****************右边界矩阵************************
R11=(E-EM)/TDM
R12=-TD(ORD)/TDM
R21=1
R22=0
!****************右边界矩阵************************
P11=P11*R11+P12*R21
P12=P11*R12+P12*R22
P21=P21*R22+P22*R21
P22=P21*R12+P22*R22
!*********最后得到以上这些传输矩阵的元
!*********最后得到以上这些传输矩阵的元
TE=(4-((E-EM)/TM)**2)/(2+P11**2+P12**2+P21**2+P22**2+(E-EM)/TM*(P11-P22)&
*(P12-P21)-((E-EM)/TM)**2*(P12*P21+1)) !计算传输系数TE
IF(TE<=0) TE=0.00001
S0=S0+TE*ABS(FIMIL-FIMIR)*0.001
! WRITE(*,*) E,TE
ENDDO
cache(1,M)=-VOLT
cache(2,M)=-S0
cache(3,M)=VOLT
cache(4,M)=S0
cache(5,M)=TEMPER
cache(6,M)=S0
M=M+1
ENDDO
! DO M=20,1,-1
! write(*,*) cache(1,M), cache(2,M)
! enddo
DO M=1,20
write(*,*) cache(3,M), cache(4,M)
enddo
! DO M=1,50
! write(*,*) cache(5,M), cache(6,M)
! enddo
END
错误信息:
Compiling Fortran...
Z:\F\毕业论文\我的资料\ 程序\保存\DNATF1.f90
f90: Severe: Invalid argument
... file is 'Z:\F\±?òμ????\?òμ?×êá?\?T 3D?? 3ìDò\±£′?\DNATF1.f90'
Error executing df.exe.
DNATF1.obj - 1 error(s), 0 warning(s)