Fortran Coder

查看: 10194|回复: 4
打印 上一主题 下一主题

[求助] 程序运行错误 求助大神

[复制链接]

5

帖子

2

主题

0

精华

新人

F 币
28 元
贡献
16 点
跳转到指定楼层
楼主
发表于 2019-7-19 10:15:21 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
C:\Users\ASUS\Desktop\聚宝盆\颗粒布置.png
我是初学者,想计算任意第i行第j列圆盘中心坐标,即D(i,j),半径假设0.5,偶数行有11列,奇数行只有10列,可能问题出在数组上,求大神不吝赐教,万分感谢!
program zuobiao1
    implicit none
    integer(4) ,parameter :: A = 11
    !integer(4) ,parameter :: B = 11
    integer :: D_0(3,A,B)
    integer,dimension(3) :: D(i,j)
    D(i,j) = (/D_0(1,i,j),D_0(2,i,j),D_0(3,i,j)/)
    !integer(4) ,parameter :: C = 10
    !common A,B,C
    integer :: s !方向赋值
    integer :: i !行号赋值
    integer :: j !列号赋值
    real(4) :: X(3,A,B)
   
    do s = 1,3
        !s = s+1
        do i = 1,A
            !i = i+1
            if (mod(i,2) == 0) then
                do j = 1,10
                    !j = j+1
                    X(1,i,j) = j - 0.5
                    X(2,i,j) = (i - 1)*0.866
                    X(3,i,j) = 0
                    if (j>10) exit
                    D_0(1,i,j) = X(1,i,j)
                    D_0(2,i,j) = X(2,i,j)
                    D_0(3,i,j) = X(3,i,j)
                end do
            else
                do j = 1,11
                    !j = j+1
                    X(1,i,j) = j - 1
                    X(2,i,j) = (i - 1)*0.866
                    X(3,i,j) = 0
                    D_0(1,i,j) = X(1,i,j)
                    D_0(2,i,j) = X(2,i,j)
                    D_0(3,i,j) = X(3,i,j)
                end do
            end if
        
        end do
        !X(3,i,j) = 0
    end do
   
    write(*,*) "行号:"
    read(*,*) i
    write(*,*) "列号:"
    read(*,*) j            
    write(*,*)  X(1,i,j)
    write(*,*)  X(2,i,j)
    write(*,*)  X(3,i,j)
    write(*,*)  D(i,j)
    stop
   
   
    end program
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

5

帖子

2

主题

0

精华

新人

F 币
28 元
贡献
16 点
沙发
 楼主| 发表于 2019-7-19 10:17:25 | 显示全部楼层

5

帖子

2

主题

0

精华

新人

F 币
28 元
贡献
16 点
板凳
 楼主| 发表于 2019-7-19 12:27:30 | 显示全部楼层
最好能设置循环,自动计算每一个圆盘的中心坐标并存储,便于后面直接调用

5

帖子

2

主题

0

精华

新人

F 币
28 元
贡献
16 点
地板
 楼主| 发表于 2019-7-20 00:39:22 | 显示全部楼层
li913 发表于 2019-7-19 16:46
[mw_shl_code=fortran,true]r=0.5
!第一个圆心位置
if(mod(i,2)==1) then !奇数行

谢谢,比较简洁
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-8 02:14

Powered by Tencent X3.4

© 2013-2024 Tencent

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