本文の訂正と CD-ROM 収録プログラムの間違いおよび補足など
2014-06-01
本文の訂正
ページ
40515559616269100105

行14
図 3.1013234610
図 3.2412106107108116

1522414132
13594149

式(4.9)

誤

正NKL
MKL
Fh-w1
Fv-w1
接点
節点
5ii55ii55ii5接点
節点
CD-ROM 収録プログラムの訂正と補足の６を参照
平均軸受すきまepsilon=0 のときの最小軸受
すきま
ηξ
接点
節点
外形
外径
平均軸受すきまepsilon=0 のときの最小軸受
すきま
表面（入口）および表面（入口）部分および平均軸受すきま
epsilon=0 のときの最小軸受
すきま
kx , k y , kz
kx k y kz,,µ151

式(4.12)

159
160
182
1842式式式

1nµµ1n p   pa 
図 4.4d ξ dη d ξ

 1   pa 
図 4.5d ξ dη d ζP ∫∫ det [ J ]d ξ dηP∫hr

Hr+1−11+1∫ det [ J ]dξ dη−1

CD-ROM 収録プログラムの訂正と補足
目次
１．実行ファイルが生成されないコンパイル時のエラー① GAS-STAT② HS-RECT③ HS-RECT④ GS-ANNULAR⑤ GS-POROUS⑥ HYDRO-STAT⑦ HYDRO-STAT⑧ HYDRO-DYN
２．計算結果に影響する明らかな間違い① GS-ANNULAR② GS-CIRCULAR③ HYDRO-DYN④ HYDRO-DYN⑤ GS-POROUS
３．入力データ生成プログラムにおける間違い① GS-CIRCULAR② GS-CIRCULAR③ GS-POROUS④ GS-POROUS⑤ HYDRO-DYN
４．計算には影響しないが，明らかな間違い① GS-RECT② HYDRO-DYN③ HYDRO-DYN
５．計算には影響しないので直さなくてもよいが，気になるもの① HYDRO-STAT② HYDRO-STAT③ HS-RECT
６．本文図 3.24 の補足

2

１．実行ファイルが生成されないコンパイル時のエラー①GAS / STAT / HOLE / GAS-STAT / PROG-2
問題：このフォルダの中に不要なファイル clearance.f があるため，コンパイルエラーとなる．
対処：このファイルを削除する．
②LIQUID / STAT / HS-RECT / PROG-1 / hs-rect-1.f，同 / dinput.f およびPROG-2 / hs-rect-2.f，同 / dinput.f
問題：配列の宣言がなされていない変数があるため，コンパイルエラーとなる．
対処：次のコモンブロックを追加する．
common/ctrl3/ phigh(mflwpR),plow(mflwpR)③LIQUID / STAT / HS-RECT / PROG-2/ hs-rect-2.f
問題：未定義の変数があるため，コンパイルエラーとなる．
誤if(ianaltype.eq.1) thencall modify(mbandR,npoinR,nbandR,nflwpR,arrayk,arrayf,nfeed,pvalue)
end if正
call modify(mbandR,npoinR,nbandR,nflwpR,arrayk,arrayf,nfeed,pvalue)④GAS / STAT / HOLE / GS-ANNULAR / PROG-2 / gs-annular-2.f
同 flowin.f
同 writer.f
問題：それぞれに記載のコモンブロック common/flow2/の４行目の変数名の並びが dinput.f に記載のものと相違しているため，コンパイル時にエラーとなる．
誤
common/flow2/ nfeed(mflwpR), pvalue(mflwpR), nsymmeR(mflwpR),xcoord(mflwpR), rfeed(mflwpR),qin(mflwpR),qin1(mflwpR),qin2(mflwpR),
nflwpR ,dia,tolerQ正
common/flow2/ nfeed(mflwpR), pvalue(mflwpR), nsymmeR(mflwpR),
xcoord(mflwpR), rfeed(mflwpR),
qin(mflwpR),qin1(mflwpR),qin2(mflwpR),
dia,
tolerQ,
nflwpR⑤GAS / STAT / POROUS / GS-POROUS / PROG-2 / matrix2.f
問題：diminsion 文に重複して宣言された変数があるため，コンパイルエラーとなる．
誤dimension posgp(6),weigp(6),h(8),r(8),3shape(8),deriv(2,8),
djcbi(2,2),
cartp(2,8),
elemstiff(8,8), elemload(8),lnods(8),coord(8,2),h(8),r(8),正dimension posgp(6),weigp(6),shape(8),deriv(2,8),
djcbi(2,2),
cartp(2,8),
elemstiff(8,8), elemload(8),lnods(8),coord(8,2),h(8),r(8),theta(8)theta(8)⑥LIQUID / STAT / HYDRO-STAT / PROG-1 / writer.f，同 / PROG-2 / writer.f
問題：write 文で指定されたラベルが定義されていないため，コンパイルエラーとなる．
対処： write(1,1200) p1write(8,1190) ipoin,p1に対して1190 format(i5,f10.6)
1200 format(f10.6)と定義する．
⑦LIQUID / STAT / HYDRO-STAT / PROG-2 / hydro-stat-2.f
問題：編集し忘れのために定義されていない変数などがあるため，コンパイルエラーとなる．
対処： hydro-stat-1.f と同じ内容にする，すなわち以下の赤字部分を削除する．
誤iside=0cc
c***
COMBINATION OF TWO AEROSTATIC THRUST
c300
continuecif(itype.eq.2) theniside=iside+1
bhigh=0.0d0
blow=0.0d0
end if-------------------------------------------------------------------------------------------if(ianaltype.eq.1) thencall modify(mbandR,npoinR,nbandR,nflwpR,
arrayk,arrayf,nfeed,pvalue)
end if-------------------------------------------------------------------------------------------if(iside.eq.1) then4

qout11(i)=qout1(i)qout21(i)=qout2(i)qout31(i)=qout3(i)qout41(i)=qout4(i)qout10(i)=qout(i)else if(iside.eq.2) thenqout12(i)=qout1(i)qout22(i)=qout2(i)qout32(i)=qout3(i)qout42(i)=qout4(i)qout20(i)=qout(i)end if-------------------------------------------------------------------------------------------if(iside.eq.1) thenqin1(i)=qin(i)else if(iside.eq.2) thenqin2(i)=qin(i)end if-------------------------------------------------------------------------------------------if(itype.eq.1) thenwrite(7,6530) iterQ,epsilon,beta,i,pres(node),
qin(i),qout(i),changeelse if(itype.eq.2) thenwrite(7,6531) iside,iterQ,epsilon,i,pres(node),
qin(i),qout(i),change
end ifc
else
icount=0-------------------------------------------------------------------------------------------if(itype.eq.1) thenwrite(7,6520) iterQ,epsilon,beta,i,pres(node),qin(i),qout(i),changeelse if(itype.eq.2) thenwrite(7,6521) iside,iterQ,epsilon,i,pres(node),qin(i),qout(i),change
end if-------------------------------------------------------------------------------------------if(iside.eq.1) thendo 810 i=1,nelemR
elemfn1(i)=elemfn(i)810continue
fn1=fndo 815 i=1,npoinR+njoinR
pres1(i)=arrayf(i)815continueelse if(iside.eq.2) thendo 820 i=1,nelemR5

820825cc

elemfn2(i)=elemfn(i)continue
fn2=fndo 825 i=1,npoinR+njoinR
pres2(i)=arrayf(i)continueend ifif(iside.eq.1) thengo to 300
end if⑧LIQUID / DYN / HYDRO-DYN / PROG-1 / writer.f，同 / PROG-2 / writer.f
問題：write 文で指定されたラベルが定義されていないため，コンパイルエラーとなる．
対処： write(1,1200) p1write(8,1190) ipoin,p1に対して1190 format(i5,f10.6)
1200 format(f10.6)と定義する．

6

２．計算結果に影響する明らかな間違い①GAS / STAT / HOLE / GS-ANNULAR / PROG-0 / capacity.f
同 PROG-1 / capacity.f
同 PROG-2 / capacity.f
問題：入力データとしての節点の座標値(x, y)は mm 単位で，これを m 単位に変換して計算に用いているわけであるが，面積と負荷容量を算出しているこのサブルーチンにおいては，節点の x 座標値 coord(i,1) のみしかmm から m の単位に変換されていないため，軸受面積と負荷容量が1,000 倍大きく算出される．ただし，節点圧力値は正しく算出されている．
誤do 210 i=1,nnodpR
coord(i,1)=coord(i,1)/1000.0d0
pp=pp+presnew(lnods(i))
xx=xx+coord(i,1)
210 continue
正do 210 i=1,nnodpR
coord(i,1)=coord(i,1)/1000.0d0
coord(i,2)=coord(i,2)/1000.0d0
pp=pp+presnew(lnods(i))
xx=xx+coord(i,1)
210 continue②GAS / STAT / HOLE / GS-CIRCULAR / PROG-1 / clearance-gap.f
同 PROG-1 / force.f
同 PROG-2 / clearance-gap.f
同 PROG-2 / force.f
問題：common 文の記述に誤りがあるため，計算が終了しない．
誤common/ctrl1/ model,
ibalance
iwrite,iterP,iterQ,iterF,
iside
正common/ctrl1/ model,ibalance,iwrite,iterP,iterQ,iterF,
iside③ LIQUID / DYN / HYDRO-DYN / PROG-1 / clearance.f，同 / PROG-2 /clearance.f
問題：プログラミングのミスにより，軸受すきまが正しく算出されない．
誤theta=2.0d0*coord(i,1)/sdia
theta=theta-betac7

do 240 i=1,nnodpR
h(i)=h0*(1.0d0+epsilon*dcos(theta))
240 continue
正do 240 i=1,nnodpR
theta=2.0d0*coord(i,1)/sdia
theta=theta-betah(i)=h0*(1.0d0+epsilon*dcos(theta))
240 continue④LIQUID / DYN / HYDRO-DYN / PROG-2 / matrix.f
問題：変数名のタイプミスにより，軸受すきまが正しく算出されない．
誤ccc*** GENERATION OF BEARING CLEARANCE in mm
ccall clearance(coor,h)
正ccc***c

GENERATION OF BEARING CLEARANCE in mm
call clearance(coord,h)⑤GAS / STAT / POROUS / GS-POROUS / PROG-2 / matrix1.f
問題：common 文に変数名 poly が抜けているため，正しく計算されない．
誤common/props/ visco,rhoa,gasconst,gamma,ambipres,ps,permex1,permey1,permez1,permex2,permey2,permez2
正common/props/ visco,rhoa,
gasconst,gamma,ambipres,ps,permex1,permey1,permez1,permex2,permey2,permez2,poly8

３．入力データ生成プログラムにおける間違い①GAS / STAT / HOLE / GS-CIRCULAR / DAT / CIRCULAR / data1.f
問題：コモンブロック文が誤っているため，絞りが存在する節点の番号の x 座
標値が，dat1.txt に正しく出力されない．dat2.txt に出力されている当該節点の x 座標値の通りに修正すればよい．
誤
common/block1/ rr(maxline),r(maxpoin),alpha(maxline), theta(maxpoin), lnods(maxelem,8),xcoord(maxpoin), ycoord(maxpoin), h(maxpoin)
正common/block1/ rr(maxline),r(maxpoin),alpha(maxline), theta(maxpoin), lnods(maxelem,3),xcoord(maxpoin), ycoord(maxpoin)とする．
②GAS / STAT / HOLE / GS-CIRCULAR / DAT / RECTANGULAR
問題：data2.f および topology.f において，プログラムの記述に誤りがあるた
め正しいデータファイルが生成されない．
対処：プログラム GS-CIRCULAR を使用して矩形スラスト軸受に対する計算を行いたい場合は，本文に説明されている内容のデータファイルを本プログラムを使用しないで作成する．または，矩形スラスト軸受に対する計算には，プログラム GS-RECT を使用する．このプログラムでは２次要素を使用しているため計算精度は良い．
③GAS / STAT / POROUS / GS-POROUS / DAT / ANNULAR / elemdat1.f
問題：多孔質体の要素データをこのプログラムを使用して生成した場合，要素内の中間節点のｚ座標値について正しい値が得られない．
誤do 64 iz=1,nz21,2if(iz.le.limit1) thenz=dble(iz-1)*dz1/2.0d0
else if(iz.le.limit2) thenz=dz1*dble(nz1)+dble(iz-limit1-1)*dz2/2.0d0
else
z=dz1*dble(nz1)+dz2*dble(nz2)+dble(iz-limit2-1)*dz2/2.0d0
end if
正do 64 iz=1,nz21,2if(iz.le.limit1) thenz=dble(iz-1)*dz1/2.0d0
else if(iz.le.limit2) thenz=dz1*dble(nz1)+dble(iz-limit1-1)*dz2/2.0d0else
z=dz1*dble(nz1)+dz2*dble(nz2)+dble(iz-limit2-1)*dz3/2.0d0
end if9④GAS / STAT / POROUS / GS-POROUS / DAT / ANNULAR / data4.f
問題：nx が 2 以上の場合に正しい内容のデータが作成されない．
誤do 600 ix=1,nx-1
do 610 iy=1,nyielem=ix*ny*nz+iywrite(6,2000) ielem,iplane,layer
do 620 inodp=1,20ipoin=lnods1(ielem,inodp)
write(6,3010) ipoin,xcoord1(ipoin),ycoord1(ipoin),zcoord1(ipoin)
620 continue
610 continue
600 continue
正do 600 ix=1,nx
do 610 iy=1,ny
ielem=(ix-1)*ny*nz+iy
write(6,2000) ielem,iplane,layer
do 620 inodp=1,20
ipoin=lnods1(ielem,inodp)
write(6,3010) ipoin,xcoord1(ipoin),ycoord1(ipoin),zcoord1(ipoin)
620 continue
610 continue
600 continue
および 500 の do ループを削除する．
⑤LIQUID / DYN / HYDRO-DYN / DAT / data3.f
問題：プログラム hydro-dyn のサブルーチン flowout の read フォーマットに合致しないフォーマットでデータが書き出されるため，hydro-dyn 実行
時に正しくデータが読み込まれない．
誤6050 format(10i8)
正6050 format(10i5)

10４．計算には影響しないが，明らかな間違い①GAS / STAT / HOLE / GS-RECT / PROG-1 および PROG-2 / writer.f
問題：定義されていない変数名 njoinR があるため，コンパイル時に警告が出る．計算結果に影響はない．
誤c
npoinR=npoinR+njoinRc
正ccnpoinR=npoinR+njoinRcまたは，この行を削除する．
②LIQUID / DYN / HYDRO-DYN / PROG-2 / hydro-dyn-2.f
問題：メインプログラム中のみの記述のため何ら問題はないが，common /ctrl1/に定義されていない変数 itype がある．
誤
common/ctrl1/ itype,iwrite
正common/ctrl1/ iwriteとする．
②LIQUID / DYN / HYDRO-DYN / PROG-1 / capacity.f
および/ PROG-2 / capacity.f
問題：算出した角度 theta を用いて垂直方向と水平方向の負荷容量 fvv と fhhは算出されているので問題ないが，theta を配列 angle に格納していな
いため，出力ファイルには angle がすべて０で書き出されている．
誤ccc*** CAPACITY OF EACH ELEMENT FOR SUBROUTINE WRITER
celemarea(ielem)=areaelemfn(ielem)=fnnelemfv(ielem)=fvvelemfh(ielem)=fhh
正ccc*** CAPACITY OF EACH ELEMENT FOR SUBROUTINE WRITER
cangle(ielem)=thetaelemarea(ielem)=area
11elemfn(ielem)=fnnelemfv(ielem)=fvv
elemfh(ielem)=fhhとする．

12５．計算には影響しないので直さなくてもよいが，気になるもの①LIQUID / STAT / HYDRO-STAT / PROG-1/ matrix.f，同 / PROG-2 / matrix.f
write(6,600)
write(6,601)nel,(lnods(i),i=1,nnodpR)
write(6,602)lnods(i),(coord(i,j),j=1,2),h(i)をwrite(7,600)
write(7,601)nel,(lnods(i),i=1,nnodpR)
write(7,602)lnods(i),(coord(i,j),j=1,2),h(i)②LIQUID / STAT / HYDRO-STAT / PROG-1/ hydro-stat-1.fwrite(7,6530) iterQ,epsilon,beta,i,pres(node),cqin(i),qout(i),change
cを-write(7,6530) iterQ,epsilon,beta,i,pres(node),qin(i),qout(i),change③LIQUID / STAT / HS-RECT / PROG-1/ matrix.f，同 / PROG-2 / matrix.f
write(6,600)
write(6,601)nel,(lnods(i),i=1,nnodpR)
write(6,602)lnods(i),(coord(i,j),j=1,2),h(i)をwrite(7,600)
write(7,601)nel,(lnods(i),i=1,nnodpR)
write(7,602)lnods(i),(coord(i,j),j=1,2),h(i)13６．本文図 3.24 の補足
図 3.24 にある左下図は，106 ページで述べているように，全体座標系（x,y）の方向と局部座標系（ξ,η）の方向との間に規則性をもたせておけば，トポロジの指定に間違いが起こりにくい，という趣旨で例として示したものである．
したがって，要素データを自ら作成する場合には，作成者が分かりやすいように全体座標系の方向と局部座標系の方向との間に任意の規則性をもたせてやればよい．
CD-ROM 収録のデータ作成プログラムでは，全体座標系（x,y）の方向と局部座標系（ξ,η）の方向との間に局部座標系（ξ,η）の方向が右下図のような規則性をもたしてある．したがって，データ作成プログラムで生成された要素データのトポロジや流出境界辺の ID を，左下図のようにあえて修正する必要はない．

ηξξηξηηξξηηξyypsipsixx14