Fortran Coder

查看: 2273|回复: 5
打印 上一主题 下一主题

[流程控制] 为什么case语句中,没有的例子,值会很大?

[复制链接]

16

帖子

6

主题

0

精华

入门

F 币
100 元
贡献
49 点
跳转到指定楼层
楼主
发表于 2022-5-26 12:13:31 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芥子纳须弥 于 2022-5-26 12:14 编辑

[Fortran] 纯文本查看 复制代码
program select
   INTEGER medium,isal
   real ew
   
   medium=1
   isal=0
   call DIEL_WAT(medium, isal, ew)
   write(*,*) ew
   write(*,*) isal
  
  end 
  


  subroutine DIEL_WAT(medium, isal, ew)
  INTEGER medium,isal,a,b
  real ew

  SELECT CASE (isal)
  CASE ( 1 )
    a =20
  CASE ( 2 )
    a =40
  endselect
  
    SELECT CASE (medium)
  CASE ( 0 )
    b =0
  CASE ( 1 )
   b=1
  CASE ( 2 )
   b=2
  endselect
 
  ew = a+b
  end

得到的结果是

case test.f90

476 Bytes, 下载次数: 1

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

16

帖子

6

主题

0

精华

入门

F 币
100 元
贡献
49 点
沙发
 楼主| 发表于 2022-5-26 21:16:25 | 显示全部楼层
vvt 发表于 2022-5-26 15:29
如果你的 isal , medium 可能的取值是连续的。可以尝试用数组表来代替 select
[mw_shl_code=fortran,true]p ...

感谢,解决了我的问题

16

帖子

6

主题

0

精华

入门

F 币
100 元
贡献
49 点
板凳
 楼主| 发表于 2022-7-18 22:25:11 | 显示全部楼层
zjk0112 发表于 2022-5-26 23:01
我用vs2022+oneAPI的Fortran编辑器跑mkl里的例子就是遇到过这样的情况。没有转置时,索引的值是0,一转置就 ...

是的,没错
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 08:49

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表