我有两个例程,一个叫另一个根据类型选择
matc_a
来电takano
。当我从takano
致电matc_a
时,我是否需要
所以请将takano
内的Select Type
包裹起来,或者我可以打电话给。{
如下
Case ("takano")
Call takano (a)
有两个例程
Subroutine takano &
( &
a &
)
Class (*), Intent (out) :: a
Select Type (a)
Type Is (Real (Real32))
a = atan ( Real(1,Real32) / Real(49,Real32) )
Type Is (Real (Real64))
a = atan ( Real(1,Real64) / Real(49,Real64) )
Type Is (Real (Real128))
a = atan ( Real(1,Real128) / Real(49,Real128) )
End Select
End Subroutine takano
Subroutine matc_a &
( &
a, strategy &
)
Class (*), Intent (out) :: a
Character (len=*) :: strategy
Select Case (Trim (strategy))
Case ("takano")
Select Type (a)
Type Is (Real (Real32))
Call takano (a)
Type Is (Real (Real64))
Call takano (a)
Type Is (Real (Real128))
Call takano (a)
End Select
End Select
End Subroutine matc_a
答案 0 :(得分:2)
是的,您可以使用较短的版本并避免第一种类型选择。
您是否在takano
内使用了一个并不重要。重要的是它接受多态伪参数。