24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2581  |  回复: 8

liangyje

银虫 (著名写手)

[求助] 求助Fortran编程

长方形图形见附件,长方形尺寸已确定1mm*2mm,网格间距10微米,图形内的弧线上点的坐标值已知,如何判定图形内的节点是属于a区域还是属于b区域呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-09-17 00:58:53
ben_ladeng: 2011-09-21 12:42:29
liangyje(金币+3): 2011-09-28 21:54:26
我参想到就是比较节点坐标与 a 和 b 之间弧线上点的坐标值……

但这个问题的关键部分与 Fortran 编程没有任何关系……
2楼2011-09-15 19:34:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangyje

银虫 (著名写手)

送鲜花一朵
谢谢
3楼2011-09-20 22:12:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sd116202

木虫 (著名写手)

【答案】应助回帖


liangyje(金币+2): 2011-09-21 09:09:43
jjdg(金币+1): 感谢你的建议 2011-09-22 00:32:42
liangyje(金币+3): 2011-09-28 21:54:34
节点坐标与相同x,或者y坐标的弧线点进行比较, 确定一个,比较另一个.

这个是算法问题
4楼2011-09-21 08:58:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superstat54

木虫 (小有名气)

【答案】应助回帖

★ ★ ★
余泽成(金币+3): 谢谢参与应助! 2011-09-24 20:18:03
liangyje(金币+20): 2011-09-25 11:21:13
liangyje(金币+5): 2011-09-28 21:54:07
!程序说明
!1 初始文件准备:把弧线上的点的坐标存在arc.txt文件里,文件的第一行为点的个数,
!  下面的每一行分别为x、y坐标值;如下:
!  3
!  0.01   0.5
!  0.02   0.49
!  0.03   0.47
!2 结果文件为result.txt,输出nw*nl的矩阵,对应各个网格,如果该网格属于a则值为1,否则为0
!
!
!
PROGRAM TEST
  implicit none
  
  integer :: i, j, k
  integer :: nw, nl, n, log
  
  real :: with, length, d
  
  integer,allocatable :: flag(:, , point(
  real,allocatable :: arc(:,
  !=============================================
  write(*, *) '程序说明'
  write(*, *) ' 1 初始文件准备:把弧线上的点的坐标存在arc.txt文件里,文件的第一行为点的个数,'
  write(*, *) '   下面的每一行分别为x、y坐标值;如下:'
  write(*, *) '   3'
  write(*, *) '   0.01   0.5 '
  write(*, *) '   0.02   0.49 '
  write(*, *) '   0.03   0.47 '
  write(*, *) ' 2 结果文件为result.txt,输出nw*nl的矩阵,对应各个网格 '
  write(*, *) '如果该网格属于a则值为1,否则为0 '
  write(*, *) '是否准备好初始文件?(是,输入1;否,输入2)'
  read(*, *) log
  if (log.eq.1) then
    continue
  else
    write(*, *) '没有进行判断!'
    goto 3000
  endif
  !=============================================
  !初始化,矩形长(length)、宽(with),网格间距(d)
  with = 1
  length = 2
  d = 0.01
  !计算nw,nl值,即共有nw*nl个网格
  nw = with/d
  nl = length/d
  allocate(flag(nw, nl), point(nl))
  !===================================
  !读取弧线上点的坐标
  open(11, file = 'arc.txt')
  read(11, *) n
  allocate(arc(n, 2))
    do i = 1, n
      read(11, *) (arc(i, j), j = 1, 2)
    enddo
  close(11)
  !=============================================
  !找到属于a的区域,point(i)表示,第i列的前point(i)行的网格属于a
  point = 0
  flag = 0
  do j = 1, n
    point(j) = arc(j, 2)/d
    !write(*, *) point(j)
    !read(*, *)
  enddo
  !属于a的网格赋值为1
  do j = 1, n
    do i = 1, point(j)
      flag(i, j) = 1
    enddo
  enddo
  !输出结果
  open(12, file ='result.txt')
    do i = 1, nw
      do j = 1, nl
        write(12, '((I4))', advance='no') flag(i, j)
      enddo
      write(12, *)
    enddo
  close(12)
  write(*, *) '结果输出完毕'
3000 continue      
END PROGRAM
5楼2011-09-24 17:01:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangyje

银虫 (著名写手)

非常感谢,你做晶粒长大模拟吗?想向你学习学习
6楼2011-09-25 12:03:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superstat54

木虫 (小有名气)

引用回帖:
6楼: Originally posted by liangyje at 2011-09-25 12:03:43:
非常感谢,你做晶粒长大模拟吗?想向你学习学习

没有做过晶粒长大模拟,和这个问题有关吗?我做过原子模拟(MC、MD)方面的,以后应该做相图计算。
你在做晶粒长大模拟吗?
相互学习!
7楼2011-09-25 19:28:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangyje

银虫 (著名写手)

引用回帖:
7楼: Originally posted by superstat54 at 2011-09-25 19:28:04:
没有做过晶粒长大模拟,和这个问题有关吗?我做过原子模拟(MC、MD)方面的,以后应该做相图计算。
你在做晶粒长大模拟吗?
相互学习!

哇,很厉害啊,我现在用MC做晶粒长大模拟,你知道怎么处理多相和相变的问题?
8楼2011-09-28 21:53:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

HXC211

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by superstat54 at 2011-09-25 19:28:04
没有做过晶粒长大模拟,和这个问题有关吗?我做过原子模拟(MC、MD)方面的,以后应该做相图计算。
你在做晶粒长大模拟吗?
相互学习!...

您好!我是刚接触模拟计算方面,想向您请教一下
如何用Fortran编写出原子配位数的程序?可以帮帮我吗?非常感谢!
9楼2017-03-27 15:13:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liangyje 的主题更新
信息提示
请填处理意见