24小时热门版块排行榜    

查看: 1674  |  回复: 0

asunshan

银虫 (著名写手)

[求助] 求助:::module中子程序与函数调用

!!!在调用module中的subroutine bezier_curve时
!!!!!为什么函数ab和函数bezier_control如果调研两次就会出现问题!!!
!!!编译时包若如下:
Error        1         error LNK2019: unresolved external symbol _AB referenced in function _FUN_SUM_mp_BEZIER_CURVE        Source1.obj       
Error        2         error LNK2019: unresolved external symbol _BEZIER_CONTROL referenced in function _FUN_SUM_mp_BEZIER_CURVE        Source1.obj       


module fun_sum
implicit none
real(8)::pz0,pz1,pz2,pz3,pz4
real(8)::pr0,pr1,pr2,pr3,pr4
real(8)::k1,k2,r1,r2,c1,c2
real(8)::a,b
real(8)::ti
real(8)::z(0:50),r(0:50)
integer::i
integer::point_num=50
real(8)::co_rz,co_p2
contains
!!!subroutine计算曲线上坐标
subroutine bezier_curve(t,zi,ri)!注意参数之中有数组元素,考虑如何书写语法
implicit none
real(8)::t,zi,ri
!real,external::zuobiao_co
!real,external::bezier_control
!real,external::ab
!real,external::mid_point
pz0=-19.21  
pz4=23.78407
pr0=68.046
pr4=170.615
k1=0.5
k2=30.0
r1=300.0
r2=5000.0
c1=0.1
c2=-0.5
!计算控制点和的坐标
co_rz=zuobiao_co(pr0,pr4,pz0,pz4,k1,k2)
pz1=pz0+c1*(co_rz-pz0)
pr1=pr0+c1*(k2*co_rz+pr4-pr0-k2*pz4)
pz3=pz4+c2*(pz4-co_rz)
pr3=pr4+c2*(k2*pz4-k2*co_rz)
!计算控制点的坐标
a=ab(pz0,pz1,pr0,pr1,r1)                  !!!为什么function_ab和function_bezier_control如果调研两次就会出现问题!!!
b=ab(pz3,pz4,pr3,pr4,r2)
co_p2=mid_point(pz0,pz1,pz3,pz4,pr0,pr1,pr3,pr4)
pz2=((pz1-pz0)*b-(pz4-pz3)*a)/co_p2
pr2=((pr1-pr0)*b-(pr4-pr3)*a)/co_p2
!计算贝塞尔曲线上从起点到终点的个点的坐标
    zi=bezier_control(pz0,pz1,pz2,pz3,pz4,t) !!!为什么function_ab和function_bezier_control如果调研两次就会出现问题!!!
    ri=bezier_control(pr0,pr1,pr2,pr3,pr4,t)
end subroutine

!!!计算控制点,中常见的部分
real function zuobiao_co(r0,r4,z0,z4,ki,kj)
implicit none
real(8)::r0,r4,z0,z4
real(8)::ki,kj
zuobiao_co=(r4-r0+ki*z0-kj*z4)/(ki-kj)
return
end function
!!!计算控制点的坐标
real function mid_point(z0,z1,z3,z4,r0,r1,r3,r4)
implicit none
real(8)::z0,z1,z3,z4,r0,r1,r3,r4
mid_point=(z1-z0)*(r4-r3)-(z4-z3)*(r1-r0)
return
end function
!!!曲线上坐标点计算公式
real function bezier_control(p0,p1,p2,p3,p4,t)!注意参数之中有数组元素,考虑如何书写语法
implicit none
real(8)::p0,p1,p2,p3,p4
real(8)::t
bezier_control=p0*((1-t)**4)+4*p1*t*((1-t)**3)+6*p2*(t**2)*((1-t)**2)+4*p3*(t**3)*(1-t)+p4*(t**4)
return
end function
!!!计算系数a,b
real function ab(zi,zj,ri,rj,r)
implicit none
real(8)::zi,zj,ri,rj,r
ab=zi*rj-zj*ri-(4*((zj-zi)**2.0+(rj-ri)**2.0)**1.5)/(3.0*r)
return
end function

end module fun_sum

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!主程序
program bezier
!use number
use fun_sum
implicit none
character(len=20)::filename="shroud.txt"
integer,parameter::fileid=10
open(fileid, file=filename)
write(fileid,"(2X'编号',4X'z坐标',7X'r坐标')"
write(*,"(2X'编号',4X'z坐标',7X'r坐标')"
do i=0,point_num
  ti=real(i)/real(point_num)
  call bezier_curve(ti,z(i),r(i))
  write(fileid,"(I5,2X,F10.5,2X,F10.5,2X)"i,z(i),r(i)
  write(*,"(I5,2X,F10.5,2X,F10.5,2X)"i,z(i),r(i)
end do
pause
end program
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 asunshan 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天基金会出结果吗?20260819 +15 kkkl_v 2026-08-19 16/800 2026-08-21 11:22 by 365372687
[基金申请] 我面上完蛋了 +6 且听虎啸 2026-08-20 6/300 2026-08-21 10:59 by Vivilian
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 让我中一个面上吧! +10 大萍1987 2026-08-20 12/600 2026-08-21 09:31 by 020100099
[基金申请] 只有每年这种时候来逛逛小木虫 +22 yaoyewhu2008 2026-08-20 24/1200 2026-08-21 07:44 by DanielDDDD
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +15 医学老男孩 2026-08-20 17/850 2026-08-20 20:35 by CaoLG
[基金申请] 时间戳又变了 +12 wuchongjun 2026-08-20 17/850 2026-08-20 20:05 by spzhao
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
信息提示
请填处理意见