24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1630  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 专硕0854初试考材科基,求调剂 +6 3220548044 2026-04-06 9/450 2026-04-06 10:26 by barlinike
[考研] 复试调剂 +13 呼呼?~+123456 2026-04-05 13/650 2026-04-05 22:07 by 醉翁wl
[考研] 308求调剂 +3 终不似从前 2026-04-05 3/150 2026-04-05 20:07 by 啵啵啵0119
[考研] 生物与医药调剂 +4 十七sa 2026-04-05 4/200 2026-04-05 20:05 by lys0704
[考研] 348求调剂 +6 wukira 2026-04-04 6/300 2026-04-05 18:11 by 猪会飞
[考研] 298求调剂 +7 manman511 2026-04-05 7/350 2026-04-05 10:29 by 唐沐儿
[考研] +5 化工专硕323分 2026-04-04 5/250 2026-04-05 08:02 by 544594351
[考研] 材料与化工306分找调剂 +12 沧海轻舟e 2026-04-03 13/650 2026-04-04 23:45 by lqwchd
[考研] 323求调剂 +8 李佳乐1 2026-04-04 8/400 2026-04-04 22:26 by hemengdong
[考研] 341求调剂 +3 洛多罗 2026-04-02 4/200 2026-04-04 21:36 by 智能智慧
[考研] 一志愿安徽某211 0703化学总分339求调剂 +6 晚风不晚 2026-04-04 6/300 2026-04-04 20:11 by dongzh2009
[考研] 五邑大学土木工程招调剂生2026 +3 wyutj 2026-03-31 4/200 2026-04-03 18:21 by zengxj_7201
[考研] 一志愿中国科学院大学265求调剂 +9 恬淡ye 2026-03-31 10/500 2026-04-03 11:10 by txp1986
[考研] 279求调剂 +6 qazplm0852 2026-04-02 6/300 2026-04-03 10:03 by 蓝云思雨
[考研] 261求B区调剂 +5 明仔· 2026-04-01 7/350 2026-04-02 11:17 by 邹尉尉
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 13/650 2026-04-02 09:17 by olim
[考研] 材料调剂 +12 一样YWY 2026-04-01 12/600 2026-04-02 09:15 by olim
[考研] 311求调剂 +10 李芷新1 2026-03-31 10/500 2026-04-01 14:38 by chenqifeng666
[考研] 求调剂:一志愿:南京大学 专业:0705 总分320 ,本科985,四六级已过 +3 lfy760306 2026-03-31 3/150 2026-04-01 01:57 by Creta
[考研] 一志愿中海洋材料357 +4 麦恩莉. 2026-03-30 4/200 2026-03-31 14:35 by 记事本2026
信息提示
请填处理意见