2016-04-29 12 views
0

を変え、私は関数の戻り値Iは、文字列の大文字と小文字を変更するには、FORTRANの機能を持っているその入力

s = chcase (s) 

を呼び出すことにより、同じ文字列を使用してケースを変更できるようにしたい

Function chcase (a) Result (b) 
Character (Len=:), Allocatable :: b 
Character (Len=*), Intent (In) :: a 

Create string s, upper case of string a 
... 
b = Trim (s) 

End Function chcase 

万一私はより良い私はまだ正しい結果を得る意向(In)を使用して

Character (Len=*), Intent (InOut) :: a 

使用

答えて

2

言語仕様では、構文s = chcase(s)の場合、結果参照値がsに割り当てられる前に、関数参照chcase(s)の評価が完了しています。

使用する適切なINTENT指定は、関連プロシージャの実行の存続期間中の仮引数の性質を反映するものです。 関数の省略された内容が分かりやすい場合、この場合はINTENT(IN)となる可能性があります。

割り当てが行われるまでに、関数の仮引数のインテント指定は無関係です。関数は実行を完了し、仮引数はもはや存在しません。

(Fortran 77には文字変数への自己割り当ての制限がありましたが、今日は関連しません)Fortran 77にもINTENT指定やALLOCATABLE関数の結果はありません。

関連する問題