function †基本 †Fortran の function は subrountine よりもっと単純な式で戻り値が1つのときに使う. ! 風速に応じた海面抵抗係数Cdを返す関数 function dragcoef_seasurf(windvel) result(cd) implicit none real(kind=8) :: windvel real(kind=8) :: cd if (windvel < 8.0d0) then cd = (1.290d0 - 0.024d0*windvel) * 1.0d-3 else cd = (0.581d0 + 0.063d0*min(45.0d0,windvel)) * 1.0d-3 endif end function dragcoef_seasurf 上記の result(cd) という箇所を書かなかった場合は,関数名を戻り値の変数として使う. ! 風速に応じた海面抵抗係数Cdを返す関数 real(kind=8) function dragcoef_seasurf(windvel) implicit none real(kind=8) :: windvel if (windvel < 8.0d0) then dragcoef_seasurf = (1.290d0 - 0.024d0*windvel) * 1.0d-3 else dragcoef_seasurf = (0.581d0 + 0.063d0*min(45.0d0,windvel)) * 1.0d-3 endif end function dragcoef_seasurf こっちはちょっと読みにくいし,grep や検索する時も邪魔なので,result を使ったほうが良いと思う. |