fortran划分网格程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
扬州大学 网格划分 计算水力学 水研2010级 第 PAGE 10 页 共 NUMPAGES 12 页 水利学院 题目: 用Fortran语言编写程序将给定区域进行网格划分,并标出节点及单元编号。已知区域如下图,其中:x1=3.5,y1=2,r=1。 解题思路: 将x1边m等分,y1及y2边n等分,再将圆弧m0等分,最后将x2边(m-m0)等分,并找到各个边等分点的坐标。再将x1边的等分点按顺序分别与x2边和圆弧边的等分点用线段相连,并找出各条线段的n等分的等分点坐标。然后依次连接各个等分点先形成四边形网格,再依次连接四边形的一条对角线。最后输出相应的单元及整体节点编号,将整体节点编号与单元节点编号对应表及节点坐标表以txt文件输出,并将网格划分的图形以dxf格式输出,以便用cad打开。 源程序如下: program hfwg character*12 file,name,ly*8 !定义字符串变量,且file和name的长度为12,ly的长度为8 integer*2 length integer::i,j,dy,dyz,jd,jd1,jd2,jdz !定义单元、节点编号 integer::m,n,m0 !定义x,y及圆弧方向的等分数m,n,m0 integer,dimension(:,:),allocatable::zt !定义单元结点整体编号数组 integer::a,b,c real,parameter::pi=3.1415926536 !定义pi为常量,值为圆周率 real, dimension(:),allocatable::x,y !定义整体结点坐标数组 real, dimension(:),allocatable::zx,zy !定义单元中心坐标 real::x1,y1,r !定义网格划分区域 real::bcx1,bcx2,bcy1,bcx,bcy,bcyh !定义x,y方向及圆弧段计算步长 real::x0,y0, tx,ty,zxx,zyy !定义原点坐标,节点单元编号输出点坐标 print*,请输入x方向等分数m,y方向等分数n,圆弧等分数m0 read*,m,n,m0 print*,请输入网格划分部分尺寸x1,y1,r read*,x1,y1,r dyz=m*n *2 !计算单元总数 jdz=(m+1)*(n+1) !计算结点总数 allocate(x(jdz),y(jdz),zt(dyz,3)) do i=1,m !计算局部节点编号与整体节点编号的关系数组 do j=1,2*n dy=(i-1)*2*n+j if(mod(j,2)==0)then !计算偶数单元的节点对应关系数组 zt(dy,1)=j/2+n+(n+1)*(i-1)+1 zt(dy,2)=j/2+(n+1)*(i-1)+1 zt(dy,3)=j/2+n+(n+1)*(i-1)+2 else !计算奇数单元的节点对应关系数组 zt(dy,1)=j/2+(n+1)*(i-1)+1 zt(dy,2)=j/2+(n+1)*(i-1)+2 zt(dy,3)=j/2+n+(n+1)*(i-1)+2 end if end do end do open(1,file=单元中整体结点编号.txt) !将单元的整体编号保存在txt文档中 write(1,(a,i4,a,3i5)),(第,i,个单元:,(zt(i,j),j=1,3),i=1,dyz) close(1) bcx1=x1/m !定义x1边的等分步长 bcx2=(x1-r)/(m-m0) !定义x2边的等分步长 bcy1=y1/n !定义y1边的等分步长 do i=1,m-m0+1 do j=1,n+1 jd=(n+1)*(i-1)+j x(jd)=(i-1)*bcx1+(i-1)*(j-1)*(bcx2-bcx1)/n !计算x2边等分点与x1边对应等分点连线的n等分点的x坐标 y(jd)=y1-(j-1)*bcy1 !计算x2边等分点与x1边对应等分点连线的n等分点的y坐标 end do end do bcyh=pi/(2*m0) !定义圆弧段的等分角大小 do i=m-m0+2,m+1 jd1=(n+1)*(i-1)+1 jd2=(n+1)*i x(jd1)=(i-1)*bcx1 !计算与圆弧段对应的x1

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档