SUN to Digital fortran

SUN-FORTRANからDigital Fortran 5.2への移植

Tru64UNIX (Alphaマシン)の導入に伴い,SUN-WSから移植した際の問題点を示す.

<H編集記述子>

結晶解析プログラム (UNICS3) には多用されているので細心の注意が必要である.

X** DECODE (78,100,DAT(1)) (SPG(J),J=1,2) 00034660

→ decode文は使えない.内部ファイルでFORMATを指定して読む.

READ (D80,100) (SPG(J),J=1,2)

WRITE (6,200) (SPG(J),J=1,2)

J=1

X** IF (SPG(1).EQ.4HP1 ) GO TO 10

→ H編集記述子は宣言文以外は使えない.下記のように''を用いる.

(SPG(1).EQ.'P1 ') GO TO 10

J=J+1

X** IF (SPG(1).EQ.4HP1- ) GO TO 10

→ IF (SPG(1).EQ.'P1- ') GO TO 10

J=J+1

X** IF (SPG(1).EQ.4HP21 ) GO TO 10

→ IF (SPG(1).EQ.4' ') GO TO 10

以下同様に修正する.

J=J+1

IF (SPG(1).EQ.4HP21/) GO TO 3

J=J+3

IF (SPG(1).EQ.4HC2/C) GO TO 10

J=J+1

IF (SPG(1).EQ.4HP212) GO TO 5

J=J+1

<ファイルの指定>

下記の例はSUNでは動くがエラーになる例である.

open(5, file='FILE80.IN', status='old')

open(6, file='FILE80.OUT')

open(3, status='scratch')

open(4, status='scratch')

open(1, file='CRYSTAL')

以下のように書き換える

open(5, file='FILE80.IN', status='old')

open(6, file='FILE80.OUT')

open(3, status='scratch', form='unformatted')

open(4, status='scratch')

open(1, file='CRYSTAL', form='unformatted')

<時間ルーチン>

警告がでるが問題ない.

<組み込み関数>

ARCOS -> ACOS

<BDLS80実行時の問題点>

最小二乗法の演算後,距離,角度が印刷されるが,欠落するデータがあることが分かった.SUNワークステーションでは問題はない.他のプログラムを参考に書き換えた.

<FOUT80の問題点>

本プログラムには,サブルーチン集SUB80がすでに組み込まれており,BLOCK DATAが二重に定義されているため,コンパイルできない.整理してひとつにまとめた.

<MULTANの問題点>

本プログラムは,4本のプログラムから構成されている.H編集記述子を全般的に修正した.SUN WSで実現していたグラフィックスによる分子構造表示はパソコン環境の発達で不要と考え,削除した.一昔前と異なり.最近のマルチウインドウパソコン端末 上での実行では,端末ソフトのほかに,Chem3Dなどの分子表示ソフトを立ち上げておけば,打ち出された座標をコピー・ペーストすることにより簡単に表 示できる.

<修正プログラムの公開>

熊大薬学部分子機能薬学専攻のサーバ上で動いているプログラムは以下のとおりである.

直接法

norm80

newmult80

ecfft80

search80

解析プログラム

filein80

sfr80

fps80

bdls80

fout80

da80

九大センターのライブラリ責任者である河野重昭氏の了解後,公開を予定しています.

最適平面BPの計算法

下記のようなデータを作り,下記のようにソフトを起動する.結晶基礎データファイルからの入力はサポートしていない.結晶解析以外の分子計算に利用できる.

bunsi%>bp80<datin>output

pcasy -1 11.06311 11.8585 10.8454 102.1309 99.5934 99.1849 64 C1 1 0.291014 0.076459 0.683939 3.523 1.00000 0.00033 0.00031 0.00035 C2 1 0.203292 0.114602 0.778867 3.572 1.00000 0.00035 0.00034 0.00038 C3 1 0.111557 -0.002344 0.771834 3.977 1.00000 0.00037 0.00036 0.00044 C4 1 0.147122 -0.097265 0.671118 3.558 1.00000 0.00033 0.00032 0.00036 C5 1 0.277133 -0.109727 0.734260 3.608 1.00000 0.00033 0.00033 0.00034 C6 1 0.360700 -0.009862 0.741272 3.543 1.00000 0.00033 0.00032 0.00034 C7 1 0.190490 -0.019191 0.582656 3.900 1.00000 0.00035 0.00033 0.00040 O8 1 0.153313 -0.028724 0.470280 5.105 1.00000 0.00024 0.00022 0.00026 C9 1 0.365613 0.171140 0.637780 3.781 1.00000 0.00033 0.00035 0.00038 C10 1 0.400237 0.286742 0.709600 4.235 1.00000 0.00037 0.00037 0.00042 C11 1 0.472720 0.372104 0.667564 5.146 1.00000 0.00042 0.00041 0.00049 C12 1 0.513631 0.342296 0.555344 5.815 1.00000 0.00045 0.00045 0.00051 C13 1 0.481575 0.227403 0.484606 5.885 1.00000 0.00048 0.00049 0.00048 C14 1 0.406753 0.142028 0.523774 4.902 1.00000 0.00042 0.00042 0.00043 C15 1 0.048337 -0.204168 0.602003 3.973 1.00000 0.00038 0.00034 0.00039 C16 1-0.071038 -0.220864 0.626249 4.801 1.00000 0.00041 0.00039 0.00045 C17 1-0.161625 -0.318969 0.556281 5.760 1.00000 0.00045 0.00046 0.00054 C18 1-0.133828 -0.401815 0.463503 6.167 1.00000 0.00052 0.00044 0.00055 C19 1-0.016082 -0.386952 0.436142 5.613 1.00000 0.00052 0.00040 0.00049 C20 1 0.074246 -0.288533 0.505687 4.812 1.00000 0.00042 0.00039 0.00046 C21 1 0.310604 -0.201653 0.791923 3.687 1.00000 0.00035 0.00033 0.00035 C22 1 0.222009 -0.295353 0.803557 4.597 1.00000 0.00040 0.00038 0.00042 C23 1 0.258424 -0.379909 0.861960 5.359 1.00000 0.00045 0.00040 0.00046 C24 1 0.384472 -0.374387 0.908771 5.548 1.00000 0.00047 0.00044 0.00046 C25 1 0.472445 -0.283137 0.901010 4.875 1.00000 0.00043 0.00041 0.00042 C26 1 0.438960 -0.192817 0.843779 3.819 1.00000 0.00036 0.00035 0.00035 C27 1 0.492520 0.004390 0.796609 3.728 1.00000 0.00034 0.00035 0.00035 C28 1 0.584091 0.102937 0.803640 4.969 1.00000 0.00041 0.00042 0.00045 C29 1 0.708677 0.106115 0.845541 5.872 1.00000 0.00042 0.00048 0.00048 C30 1 0.746420 0.009805 0.881183 6.084 1.00000 0.00043 0.00053 0.00048 C31 1 0.659948 -0.085953 0.880410 5.153 1.00000 0.00042 0.00047 0.00042 C32 1 0.530498 -0.091951 0.840426 3.836 1.00000 0.00035 0.00035 0.00035 C33 1 0.127733 0.203242 0.739095 4.294 1.00000 0.00039 0.00039 0.00043 S34 1 0.032026 0.249625 0.852391 5.367 1.00000 0.00009 0.00010 0.00012 C35 1 0.147605 0.346927 0.978177 4.396 1.00000 0.00037 0.00034 0.00039 S36 1 0.081278 0.404166 1.106250 0.051 1.00000 0.00013 0.00016 0.00014 C37 1 0.210721 0.508566 1.206358 0.555 1.00000 0.00049 0.00051 0.00050 O38 1 0.255743 0.371659 0.975267 4.898 1.00000 0.00023 0.00022 0.00026 H1 1 0.252490 0.150434 0.865039 2.307 1.00000 0.00247 0.00233 0.00262 H2 1 0.112862 -0.022935 0.861699 4.738 1.00000 0.00286 0.00272 0.00325 H3 1 0.026676 0.007099 0.743522 3.736 1.00000 0.00284 0.00260 0.00292 H4 1 0.374018 0.311012 0.795803 3.585 1.00000 0.00276 0.00257 0.00294 H5 1 0.489984 0.450453 0.722477 4.743 1.00000 0.00300 0.00289 0.00321 H6 1 0.565542 0.401781 0.521556 7.042 1.00000 0.00345 0.00322 0.00366 H7 1 0.508477 0.206579 0.411376 5.749 1.00000 0.00347 0.00326 0.00348 H8 1 0.384543 0.065621 0.471998 5.632 1.00000 0.00328 0.00305 0.00344 H9 1-0.092054 -0.162148 0.692421 3.382 1.00000 0.00281 0.00267 0.00297 H10 1-0.243561 -0.325178 0.584063 6.705 1.00000 0.00349 0.00331 0.00373 H11 1-0.194359 -0.469441 0.410207 7.065 1.00000 0.00351 0.00325 0.00370 H12 1 0.009442 -0.445767 0.365877 7.157 1.00000 0.00343 0.00331 0.00366 H13 1 0.157933 -0.275291 0.487760 3.163 1.00000 0.00271 0.00256 0.00286 H14 1 0.131226 -0.299833 0.773191 4.004 1.00000 0.00282 0.00268 0.00305 H15 1 0.195911 -0.445903 0.866945 5.770 1.00000 0.00319 0.00304 0.00338 H16 1 0.409685 -0.432380 0.951524 5.980 1.00000 0.00324 0.00308 0.00356 H17 1 0.562354 -0.278850 0.937398 4.951 1.00000 0.00310 0.00285 0.00311 H18 1 0.565688 0.168643 0.783932 4.629 1.00000 0.00322 0.00295 0.00345 H19 1 0.772444 0.178382 0.851463 5.546 1.00000 0.00315 0.00303 0.00332 H20 1 0.828969 0.008643 0.908923 6.661 1.00000 0.00341 0.00330 0.00369 H21 1 0.689696 -0.153616 0.904562 4.089 1.00000 0.00287 0.00273 0.00306 H22 1 0.064958 0.165993 0.653900 4.196 1.00000 0.00288 0.00262 0.00300 H23 1 0.184544 0.275387 0.736451 4.408 1.00000 0.00297 0.00279 0.00313 H24 1 0.283050 0.474625 1.235194 1.098 1.00000 0.00000 0.00000 0.00000 H25 1 0.245582 0.569470 1.165657 1.098 1.00000 0.00000 0.00000 0.00000 H26 1 0.193539 0.552767 1.286313 1.098 1.00000 0.00000 0.00000 0.00000 14 5 6 21 22 23 24 25 26 27 28 29 30 31 32 6 5 6 21 26 32 27 6 21 22 23 24 25 26 6 27 28 29 30 31 32