Fortran interface advice

2 次查看(过去 30 天)
Chris
Chris 2012-6-12
Hi,
I want to know what would be the best way to interface the following situation: The matlab code has the following data to be passed to a fortran code for calculations:
TYPE, PUBLIC :: AeroConfig
TYPE(Marker), ALLOCATABLE :: Blade(:)
REAL(ReKi) :: BladeLength
TYPE(Marker) :: Hub
TYPE(Marker) :: RotorFurl
TYPE(Marker) :: Nacelle
TYPE(Marker) :: TailFin
TYPE(Marker) :: Tower
TYPE(Marker) :: Substructure
TYPE(Marker) :: Foundation
END TYPE AeroConfig
where type marker is:
TYPE, PUBLIC :: Marker
REAL(ReKi) :: Position(3)
REAL(ReKi) :: Orientation(3,3)
REAL(ReKi) :: TranslationVel(3)
REAL(ReKi) :: RotationVel(3)
END TYPE Marker
The matlab code will pass the above information to the fortran code to be calculated(i.e. the blade component has 4 parts of the 3d vectors position, rotationvel, translationvel, and 3x3 matrix of oreintation) and then pass back the the following loads:
TYPE, PUBLIC :: AllAeroLoads
TYPE(Load), ALLOCATABLE :: Blade(:,:)
TYPE(Load), ALLOCATABLE :: Hub(:)
TYPE(Load), ALLOCATABLE :: RotorFurl(:)
TYPE(Load), ALLOCATABLE :: Nacelle(:)
TYPE(Load), ALLOCATABLE :: Tower(:)
TYPE(Load), ALLOCATABLE :: Tail(:)
END TYPE AllAeroLoads
where ,
TYPE, PUBLIC :: Load
REAL(ReKi) :: Force(3)
REAL(ReKi) :: Moment(3)
END TYPE Load
The above will be passed back to the matlab code. Any help or ideas is appreciated. Matlab doesn't have the TYPE construct and it seems a little tricky.
  1 个评论
James Tursa
James Tursa 2012-6-13
How do you want it on the MATLAB side ... as a struct?

请先登录,再进行评论。

回答(1 个)

James Tursa
James Tursa 2012-6-14
See this package and use the fpGetPr0, fpGetPr1, and fpGetPr2 functions to copy data into and out of the mxArray:

类别

Help CenterFile Exchange 中查找有关 Fortran with MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by