A function name must not be declared with a * length, if the function is an internal or module function, or if it is array-valued, pointer-valued, recursive, or pure. The form CHARACTER*(*) is an obsolescent feature in Fortran 95. dat_interface ! function cmon(im) !文字型の月名を返す文字型関数. ! function cweek(iw) !文字型の曜日を返す文字型関数. この2つは不可能 tim_interface is が im になっている。 rfa_interface function の返り値が intent(in) 69行 real :: rvmax !最大値を与える関数値 uc_interface 141,147 end subroutine -> function ud_interface 220, 228 integer, intent(out), dimension(*,*) :: ibr -> (*) uw_interface 63 subroutine uwsgyz(lsetx) -> lsety -------------------------------------------------------------------- 8/31 uuQxxx が定義されていない。 umQxxx uwpack uwqgxb(uxmin,uxmax,nx), uwqgyb(uymin,uymax,ny) のnx, ny が intent(in) になっている。正しくはintent(out) ! 以下はgrph2 にはあるが ux_interface にないもの UXSFMT(CFMT) DclSetXLabelFormat UXQFMT(CFMT) DclGetXLabelFormat UYSFMT(CFMT) DclSetYLabelFormat UYQFMT(CFMT) DclGetYLabelFormat !以下はgrph1にあるがsg_interfaceにはないもの SGSTXY(TXMIN, TXMAX, TYMIN, TYMAX) --- SGQTXY(TXMIN, TXMAX, TYMIN, TYMAX) DclGetMapProjectionWindow SGTRQF(NTX,LTR) --- ISGTRC(CTR) function DclTransNameToNum ---- text ---- SGQLNI(INDEX) --- scpack: scslog, scqlog 引数は logical (マニュアルが間違っている) uupack: function ではなく subroutine subroutine uusebt(itype) !エラーバーの属性を指定する. subroutine uusebi(index) !エラーバーの属性を指定する. subroutine uusebs(rsize) !エラーバーの属性を指定する. subroutine uusbrs(rsize) !棒グラフの横巾を指定する. subroutine uusarp(itp1,itp2) !内部領域を塗るトーンパターンを指定する. sgpack: sgpmzu の upx の宣言が抜けていた。 subroutine sgpmzu(n,upx,upy,itype,index,rsize) !u 座標系でマーカー列を描く. integer, intent(in) :: n !マーカーを打つ点のU座標 real, intent(in), dimension(*) :: upx oslib intent(in) になっていた subroutine osqarn(n) !コマンドライン引数の数 N を得る. integer, intent(out) :: n !コマンドライン引数の数 end subroutine gnmlib xb は dimension(*) subroutine gnsblk(xb,nb) !きりのよい数のリストを設定/参照する. real, intent(in) :: xb !きりのよい数を昇順に納めた実数型配列. integer, intent(in) :: nb !配列の寸法 end subroutine subroutine gnqblk(xb,nb) !きりのよい数のリストを参照する. real, intent(out) :: xb !きりのよい数を昇順に納めた実数型配列 integer, intent(in) :: nb !配列の寸法 end subroutine indxlib function indxcf(cx,n,jd,ch) function indxcl(cx,n,jd,ch) function indxnf(cx,n,jd,ch) function indxnl(cx,n,jd,ch) function indxmf(cx,n,jd,ch) function indxml(cx,n,jd,ch) cx は配列 dimension(*) character(len=*), intent(in) :: cx !調べる文字列 maplib すべてintent(in) になっていた subroutine mpfazm(xlon,ylat,x,y) !正距方位図法の投影を行なう. real, intent(in) :: xlon !経度,緯度 real, intent(in) :: ylat real, intent(out) :: x !x, y座標 real, intent(out) :: y end subroutine mpicyl mpiazm in/out 逆 rnm_interface: すべて rx, ry が intent(inout) になっているが、 real, intent(in), dimension(*) :: rx !移動平均を計算する実数型の配列 real, intent(out), dimension(*) :: ry !計算結果を納める実数型の配列