# 圧力・応力の単位変換 Convert Pressure Stress # 引数 圧力・応力 単位A 単位B ($PressureStress, $UnitA, $UnitB) # 戻り値 圧力・応力の単位変換 ($ConvertPressureStress) sub CONVERTPRESSURESTRESS{ my ($PressureStress, $UnitA, $UnitB) = @_; my $ConvertPressureStress = 0; my $PascalA = 0; my $PascalB = 0; # 圧力・応力の確認 if($PressureStress <= 0){ return 0; } # $UnitAのパスカル単位 $PascalA = &PASCAL($PressureStress, $UnitA); # $UnitBのパスカル単位 $PascalB = &PASCAL($PressureStress, $UnitB); # 圧力・応力の単位変換 Convert Pressure Stress $ConvertPressureStress = ($PascalA / $PascalB) * $PressureStress; return $ConvertPressureStress; } # パスカル単位 Pascal # 引数 圧力・応力 単位 ($PressureStress, $Unit) # 戻り値 パスカル単位 ($Pascal) sub PASCAL{ my ($PressureStress, $Unit) = @_; my $Pascal = 0; # パスカル if($Unit eq "Pa"){ # パスカル $Pascal = 1; }elsif($Unit eq "mPa"){ # ミリパスカル $Pascal = 0.001; }elsif($Unit eq "cPa"){ # センチパスカル $Pascal = 0.01; }elsif($Unit eq "hPa"){ # ヘクトパスカル $Pascal = 100; }elsif($Unit eq "kPa"){ # キロパスカル $Pascal = 1000; }elsif($Unit eq "MPa"){ # メガパスカル $Pascal = 1000000; } # 圧力・応力 elsif($Unit eq "N/mm2"){ # ニュートン毎平方ミリメートル $Pascal = 0.000001; }elsif($Unit eq "N/cm2"){ # ニュートン毎平方センチメートル $Pascal = 0.01; }elsif($Unit eq "N/m2"){ # ニュートン毎平方メートル $Pascal = 1; }elsif($Unit eq "kN/m2"){ # キロニュートン毎平方メートル $Pascal = 1000; }elsif($Unit eq "dyn/cm2"){ # ダイン毎平方センチメートル $Pascal = 0.1; }elsif($Unit eq "bar"){ # バール $Pascal = 100000; }elsif($Unit eq "mbar"){ # ミリバール $Pascal = 100; }elsif($Unit eq "Ba"){ # バリ $Pascal = 0.1; }elsif($Unit eq "Torr"){ # トル $Pascal = 133.322368; }elsif($Unit eq "mmHg"){ # 水銀柱ミリメートル $Pascal = 133.322368; }elsif($Unit eq "cmHg"){ # 水銀柱センチメートル $Pascal = 1333.22368; }elsif($Unit eq "mHg"){ # 水銀柱メートル $Pascal = 133322.368; }elsif($Unit eq "ftHg"){ # 水銀柱フィート $Pascal = 40636.66; }elsif($Unit eq "inHg"){ # 水銀柱インチ $Pascal = 3386.389; }elsif($Unit eq "mmH2o"){ # 水柱ミリメートル $Pascal = 9.80638; }elsif($Unit eq "cmH2o"){ # 水柱センチメートル $Pascal = 98.0638; }elsif($Unit eq "mH2o"){ # 水柱メートル $Pascal = 9806.38; }elsif($Unit eq "ftH2O"){ # 水柱フィート $Pascal = 2988.98; }elsif($Unit eq "inHg"){ # 水柱インチ $Pascal = 249.082; }elsif($Unit eq "pdl/sq"){ # パウンダル毎平方フィート $Pascal = 1.488164; }elsif($Unit eq "ksi"){ # 重量キップ毎平方インチ $Pascal = 6894757; }elsif($Unit eq "psf"){ # 重量ポンド毎平方フィート $Pascal = 47.88025; }elsif($Unit eq "psi"){ # 重量ポンド毎平方インチ $Pascal = 6894.7572931683613367226734453469; }elsif($Unit eq "kgf/mm2"){ # 重量キログラム毎平方ミリメートル $Pascal = 9806650; }elsif($Unit eq "kgf/cm2"){ # 重量キログラム毎平方センチメートル $Pascal = 98066.5; }elsif($Unit eq "kgf/m2"){ # 重量キログラム毎平方メートル $Pascal = 9.80665; }elsif($Unit eq "at"){ # 工学気圧 $Pascal = 98066.5; }elsif($Unit eq "atm"){ # 気圧 $Pascal = 101325; }elsif($Unit eq "pz"){ # ピエーズ $Pascal = 1000; }elsif($Unit eq "sh"){ # ショートトン毎平方フィート $Pascal = 95760.518; } # 他 else { $Pascal = 0; } return $Pascal; }