| 查看: 798 | 回复: 3 | ||
[求助]
fortran error求助
|
当我在debug mode下debug我的fortran code时,出现erro‘user breakpoint called from code 07c90120e’,同时在黑屏里出现'run-time error M6201:MATH-floor OMAIN error'. 网上查了一些资源,也没有找到解,请高手指点,多谢! |
» 猜你喜欢
职称评审没过,求安慰
已经有55人回复
最近几年招的学生写论文不引自己组发的文章
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
急求fortran运行错误原因,在线等
已经有7人回复
请教 fortran 运行错误的原因
已经有13人回复
【求助】Fortran语言赋值问题?
已经有3人回复
【求助】求助:安装abinit-6.2.3出现错误
已经有12人回复
【求助】vasp安装问题
已经有27人回复
【求助】有很多错误的程序,找不出来了
已经有18人回复
【求助】Fortran 如何读取文件中特定行的内容
已经有16人回复
【求助】VASP 编译出错
已经有24人回复
【求助】运行错误,大家看看问题在哪?
已经有7人回复
【交流】Fortran语言答疑专帖
已经有157人回复
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
2楼2012-09-13 15:00:20
|
嗯。谢谢!代码如下: module thermodynamics use global use numlib implicit none contains !******************************************************************************************* ! SUBROUTINE CONVERT_COMPOSITION ! This subroutine calculates the local phase concentrations at point (ix,iy) based on the ! equality of diffusion potential of that component in all phases and a mass balance. ! ! STATUS : ONLY FOR UP TO THREE COMPONENTS !******************************************************************************************* subroutine convert_composition(ix,iy) integer :: ix, iy, i real(8) :: r real(8), dimension(1:np*(nc-1)) :: sol, RT real(8), dimension(1:np*(nc-1),1:np*(nc-1)) :: coeff integer, dimension(1:np*(nc-1)) :: IPIV coeff = 0.d0 coeff(1,1) = dmudx(1,1,1,ix,iy) coeff(1,2) = -dmudx(1,1,2,ix,iy) coeff(1,3) = dmudx(1,2,1,ix,iy) coeff(2,1) = dmudx(1,2,1,ix,iy) coeff(2,3) = dmudx(2,2,1,ix,iy) coeff(2,4) = -dmudx(2,2,2,ix,iy) coeff(3,1) = phi(1,ix,iy) coeff(3,2) = phi(2,ix,iy) coeff(4,3) = phi(1,ix,iy) coeff(4,4) = phi(2,ix,iy) RT(1) = dmudx(1,1,1,ix,iy)*xp(1,1,ix,iy) + dmudx(1,2,1,ix,iy)*xp(2,1,ix,iy) - mu(1,1,ix,iy) - dmudx(1,1,2,ix,iy)*xp(1,2,ix,iy) - dmudx(1,2,2,ix,iy)*xp(2,2,ix,iy) + mu(1,2,ix,iy) RT(2) = dmudx(2,2,1,ix,iy)*xp(2,1,ix,iy) + dmudx(1,2,1,ix,iy)*xp(1,1,ix,iy) - mu(2,1,ix,iy) - dmudx(2,2,2,ix,iy)*xp(2,2,ix,iy) - dmudx(1,2,2,ix,iy)*xp(1,2,ix,iy) + mu(2,2,ix,iy) RT(3) = x(1,ix,iy,old) RT(4) = x(2,ix,iy,old) sol = RT( ![]() call ludcmp(coeff,np*(nc-1),np*(nc-1),IPIV,r) call lubksb(coeff,np*(nc-1),np*(nc-1),IPIV,sol) xp(1,1:2,ix,iy) = sol(1:2) xp(2,1:2,ix,iy) = sol(3:4) end subroutine convert_composition !******************************************************************************************* ! FUNCTION DMUDX ! This function retrieves the derivative of the diffusion potential mu_{iu}^{ip} with ! respect to the concentration variable x_{iv}^{ip} ! ! STATUS : FINAL FOR 3-COMPONENT SYSTEM --> only i,j !******************************************************************************************* function dmudx(iu,iv,ip,ix,iy) integer :: iu, iv, ip, ix, iy, i, j real(8) :: dmudx i = floor(xp(1,ip,ix,iy)/thermo_dx+0.5d0)+1 ! x1 j = floor(xp(2,ip,ix,iy)/thermo_dx+0.5d0)+1 ! x2 if (ip == 2) then ! Wollastonite @ 1320C if (iu == iv) then dmudx = 2.d11 else dmudx = 0.d0 end if else if (iu == iv) then dmudx = (((A(iu,thermo_p(ip),i+1,j+1)-A(iu,thermo_p(ip),i,j+1))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+A(iu,thermo_p(ip),i,j+1))-((A(iu,thermo_p(ip),i+1,j)-A(iu,thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+A(iu,thermo_p(ip),i,j)))/thermo_dx*(xp(2,ip,ix,iy)-(j-1)*thermo_dx)+((A(iu,thermo_p(ip),i+1,j)-A(iu,thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+A(iu,thermo_p(ip),i,j)) else dmudx = (((B(iu,iv,thermo_p(ip),i+1,j+1)-B(iu,iv,thermo_p(ip),i,j+1))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+B(iu,iv,thermo_p(ip),i,j+1))-((B(iu,iv,thermo_p(ip),i+1,j)-B(iu,iv,thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+B(iu,iv,thermo_p(ip),i,j)))/thermo_dx*(xp(2,ip,ix,iy)-(j-1)*thermo_dx)+((B(iu,iv,thermo_p(ip),i+1,j)-B(iu,iv,thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+B(iu,iv,thermo_p(ip),i,j)) end if end if end function dmudx !******************************************************************************************* ! FUNCTION MU ! This function retrieves the diffusion potential for component k in phase i from linear ! interpolation from the descretized tables for the chemical potential ! (CHPOT in the program and input/MU_.txt files) ! ! STATUS : FINAL FOR 3-COMPONENT SYSTEM --> only i,j !******************************************************************************************* function mu(iu,ip,ix,iy) integer :: iu, ip, ix, iy, i, j real(8) :: mu i = floor(xp(1,1,ix,iy)/thermo_dx+0.5d0)+1 ! x1 j = floor(xp(2,1,ix,iy)/thermo_dx+0.5d0)+1 ! x2 if (ip == 2) then ! Wollastonite @ 1320C if (iu == 1) then mu = dmudx(1,1,2,ix,iy)*xp(1,ip,ix,iy) - .8915873511e11 else mu = dmudx(2,2,2,ix,iy)*xp(2,ip,ix,iy) - .3652507619e11 end if else mu = (((CHPOT(iu,thermo_p(1),i+1,j+1)-CHPOT(iu,thermo_p(1),i,j+1))/(thermo_dx)*(xp(1,1,ix,iy)-(i-1)*thermo_dx)+CHPOT(iu,thermo_p(1),i,j+1))-((CHPOT(iu,thermo_p(1),i+1,j)-CHPOT(iu,thermo_p(1),i,j))/(thermo_dx)*(xp(1,1,ix,iy)-(i-1)*thermo_dx)+CHPOT(iu,thermo_p(1),i,j)))/thermo_dx*(xp(2,1,ix,iy)-(j-1)*thermo_dx)+((CHPOT(iu,thermo_p(1),i+1,j)-CHPOT(iu,thermo_p(1),i,j))/(thermo_dx)*(xp(1,1,ix,iy)-(i-1)*thermo_dx)+CHPOT(iu,thermo_p(1),i,j)) end if end function mu !******************************************************************************************* ! FUNCTION F ! This function retrieves the gibbs energy for phase i from linear interpolation from ! the descretized tables for the gibbs free energy ! ! STATUS : FINAL FOR 3-COMPONENT SYSTEM --> only i,j !******************************************************************************************* function f(ip,ix,iy) integer :: ip, ix, iy, i, j real(8) :: f i = floor(xp(1,ip,ix,iy)/thermo_dx+0.5d0)+1 ! x1 j = floor(xp(2,ip,ix,iy)/thermo_dx+0.5d0)+1 ! x2 if (ip == 2) then ! Wollastonite @ 1320C f = dmudx(1,1,2,ix,iy)/2.d0*xp(1,ip,ix,iy)**2+dmudx(2,2,2,ix,iy)/2.d0*xp(2,ip,ix,iy)**2-.8915873511e11*xp(1,ip,ix,iy)-.3652507619e11*xp(2,ip,ix,iy) - .2093397165e11 else f = (((GIBBS(thermo_p(ip),i+1,j+1)-GIBBS(thermo_p(ip),i,j+1))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+GIBBS(thermo_p(ip),i,j+1))-((GIBBS(thermo_p(ip),i+1,j)-GIBBS(thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+GIBBS(thermo_p(ip),i,j)))/thermo_dx*(xp(2,ip,ix,iy)-(j-1)*thermo_dx)+((GIBBS(thermo_p(ip),i+1,j)-GIBBS(thermo_p(ip),i,j))/(thermo_dx)*(xp(1,ip,ix,iy)-(i-1)*thermo_dx)+GIBBS(thermo_p(ip),i,j)) end if end function f end module thermodynamics |
3楼2012-09-13 15:37:41
4楼2012-09-13 15:38:45













OMAIN error'. 网上查了一些资源,也没有找到解,请高手指点,多谢!
回复此楼
