24小时热门版块排行榜    

查看: 1217  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

bohdshen

银虫 (初入文坛)

[交流] 【求助】求助 程序我问题 解决送80金币 已有3人参与

这个非常简单是我太笨 请帮忙看下  如我写有问题  请大侠帮我改写
输入DEN AC已知。 计算POR,初值PORI=0.029
公式如下:
问题:只能计算一小段的POR 再往下就不能算 函数关系表达式无误
提示错误:
run-time error M6201: MATH
- **: DOMAIN error
    未加粗体是该程序的头尾 固定部分,不用改写。粗体部分为我加的程序。


      BLOCK DATA
      IMPLICIT INTEGER*4(I-N)
      INTEGER*2 NUMLOG,IZ, IDC, IZ2
      Character*4 NameI,NameO,NameC
      COMMON /INPC/NOI,NAMEI(2)
      COMMON /OUTC/NOO,NAMEO(1)
      COMMON /CONC/NOC,NAMEC(1)
      COMMON /INP /AC  ,DEN
      COMMON /OUTP/POR
      COMMON /CON /ZZ(1)
      COMMON /UNIT/IU,JU,KU,LU,MU
      COMMON /HD  /DEP,DEPO,SDEP,EDEP,ECC,ICO(20),IWELL(20),
     & NUMLOG,IZ,LOG1(20),STDEP,ENDEP,RLEV,IDC,IZ2,FEET,
     & LOG2(20),IDUM1(118)
      DATA IU,JU,KU,LU,MU/1,2,4,3,0/
      DATA NoI,NoO,NoC/2,1,1/
      DATA NAMEI/'AC  ','DEN '/
      DATA NAMEO/'POR '/
      DATA NAMEC/'PORI'/
      DATA ZZ   /0.029/
      END
      
      Program MyProgram
      
      IMPLICIT INTEGER*4(I-N)
      INTEGER*2 NUMLOG,IZ, IDC, IZ2
      Character*4 NameI,NameO,NameC
      COMMON /INPC/NOI,NAMEI(2)
      COMMON /OUTC/NOO,NAMEO(1)
      COMMON /CONC/NOC,NAMEC(1)
      COMMON /INP /AC  ,DEN
      COMMON /OUTP/POR
      COMMON /CON /PORI
      COMMON /INPB/BUFI(25600)
      COMMON /OUTB/BUFO(25600)
      COMMON /UNIT/IU,JU,KU,LU,MU
      COMMON /HD  /DEP,DEPO,SDEP,EDEP,ECC,ICO(20),IWELL(20),
     & NUMLOG,IZ,LOG1(20),STDEP,ENDEP,RLEV,IDC,IZ2,FEET,
     & LOG2(20),IDUM1(118)
      CALL PART
      CALL RDFLNM
         
      CALL CONST
      CALL IN
      CALL OUT
1     CALL IN
      AS=92414*DEN/(AC**2)
      CALL WASAT(AS,PORI,POR)
  


      CALL OUT
      GOTO 1
      END
      SUBROUTINE WASAT(AS,PORI,POR)
9     AA=(1-PORI)**(3/(1-PORI))
      AM=10.17*((1-AA)**2)
      AN=AS-47.317*AA
      AT=(AM/AN)-PORI
      IF(ABS(AT) .LE. 0.001) THEN
      POR=PORI*100
      ELSE
      PORI=PORI+0.002
      GOTO 9
      ENDIF                                                        
      RETURN                                                                    
      END
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bohdshen

银虫 (初入文坛)

nono2009:建议通过“引用回复该帖”,以便别人收到你的message. 2010-05-10 15:12:05
您好
这个PORI是初始孔隙度
最后POR应该在0~1之间
我做的这段深度内孔隙度POR实际值已经知道在0.09到0.25之间
我开是没用wasat直接写 问题也一样是做了1米就不做了
无加深处是FoRWARD测井软件的固定部分
它是顺序结构 逐点深度计算 后来别人说我直接写怕有冲突 就让我用wasat
我现在因为下午要去开会
所以晚上来探讨您的回复
谢谢
4楼2010-05-10 14:53:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

snoopyzhao

至尊木虫 (职业作家)


resonant(金币+1):感谢回复:-) 2010-05-10 13:54:40
你的公式与你的子程序表达的似乎不是一样的东西呀……

你是求那个公式的值还是别的?
2楼2010-05-10 12:46:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


resonant(金币+1):感谢建设性指导:-) 2010-05-10 14:11:18
我猜问题可能出在 WASAT 这个子程中,也就是 PORI = PORI + 0.002 这一步,如果 PORI 等于或大于 1 时, AA 这个表达式还有意义吗?

在这一句后面加个判断好了,比如:

IF (PORI .GE. 1.0) STOP

另外,你的 WASAT 这个子程中,修改一下下面两句话:
     
      AA=(1.0-PORI)**(3.0/(1.0-PORI))
      AM=10.17*((1.0-AA)**2.0)
3楼2010-05-10 14:00:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bohdshen

银虫 (初入文坛)

resonant:nano区长已经提示过,不过朋友没有完全理解,必须引用你想要通知的人的言论,才是有效的。引用自己的发言对方还是不会知道... 2010-05-10 21:06:39
引用回帖:
Originally posted by bohdshen at 2010-05-10 14:53:23:
您好
这个PORI是初始孔隙度
最后POR应该在0~1之间
我做的这段深度内孔隙度POR实际值已经知道在0.09到0.25之间
我开是没用wasat直接写 问题也一样是做了1米就不做了
无加深处是FoRWARD测井软件的固定部分
它 ...

首先感谢你
我试验了你的方法 加了stop
确实运行了 但是结果除了开始的1米没有问题
下面的结果都是0
这说明是真的PORI超出了1了吧。。
可是这段范围在结论上应该在0.03到0.3之间才对
这我该怎么修改呢
敬请指教 非常之感谢
5楼2010-05-10 19:46:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见