Last Update: Oct. 20, 1997 Modification: Feb. 14. 1998: added commnet on CERN lib version 97a : Nov. 15. 2000: added comment on IBM AIX 4.3 : Sep. 4. 2001: added comment on small modification : Sep. 30. 2010: poted to Llinux (gfortran)
STRUCTURE /structure_name/ INTEGER aaa REAL bbb .... END STRUCTURE ...というDEC Fortranの拡張形式をサポートしていないようなので、( LX Fortran User's Guideの ここ )
TYPE structure_name INTEGER aaa REAL bbb .... END TYOE TYPE (structure_name) val_nameにかえた。 これは、Cで
typedef struct structure_name{ int aaa; float bbb; ... } struct structure_name val_nameと宣言すれば、相互に参照できる。
f77 -qextnameを陽に指定した。
FERA Bus ┌─────┐ VDC ┌─────┼ L3377 ┼─── │ └─────┘ │ ┌─────┐ Schinchi HSM8170│┌────┼ 4300B ┼─── ┌─────┐ ┌──┼┼─┐ └─────┘ │ MARI ┼──┼ VME05 ┼───........ └──┼──┘ └──┼──┘ TCP/IP│ RFM5570 │ FDDI │ │ .................. │ │ : ┌─────┐ ┌────┼────┐ └─────┼ J11 │ ┌──┼──┐┌┼────┐ : └──┼──┘ │ KASUGA ││ ....... │ : ┌──┼──┐ └─────┘└─────┘ : │ CAMAC │ : │ ┼─ SSD.... : └─────┘
wn_ana_shm ( -f file_name | -h host_name )[ -k shared_memory_ID ] [ -g global_section_name ] [ -nt ntuple_output_file_name ] [ -hb hbook_output_file_name ] [ -s STDIN ]
CERN= -L/usr/local/cern/96a/libを
CERN= -L/usr/local/cern/97a/libに変更し、 .chsrcなどで コマンドサーチパス、
set path = (....... /usr/local/cern/96a/bin ....)を
set path = (....... /usr/local/cern/97a/bin ....)に 変更する。
i(n) == int_prm_name(1)
r(n) == real_prm_name(1)
int_prm_name(m) := int_value real_prm_name(m) := real_value
COMMON/ANAI/iprm(5000),rprm(5000)
integer ic_map(2,10), num_ch, cont(10) EQUIVALENCE (ic_map(1,1),iprm(1)), (num_ch, iprm(21)), 1 (cont(1),iprm(22)) real space(10),x1(3),u1(3),x2(3),u2(3),nx1(3),nu1(3), 1 nx2(3),nu2(3),px1(3),pu1(3),px2(3),pu2(3), 1 fp_z(10),fp_n(3),fp_a(20),offset(300,4), 1 tdc_cor(40),tdc_cor2(40),tdc_cor3(40), 1 a_t(20,4),cont_r(10) EQUIVALENCE (space(1),rprm(1)), 1 ( x1(1),rprm(11)),( u1(1),rprm(14)),( x2(1),rprm(17)), 1 ( u2(1),rprm(20)),(nx1(1),rprm(23)),(nu1(1),rprm(26)), 1 (nx2(1),rprm(29)),(nu2(1),rprm(32)),(px1(1),rprm(35)), 1 (pu1(1),rprm(38)),(px2(1),rprm(41)),(pu2(1),rprm(44)), 1 (fp_z(1),rprm(47)),(fp_n(1),rprm(57)),(fp_a(1),rprm(60)), 1 (tdc_cor(1),rprm(100)), (tdc_cor2(1),rprm(140)), 1 (tdc_cor3(1),rprm(180)), (a_t(1,1),rprm(220)), 1 (cont_r(1),rprm(300)),
COMMON /ANA1/rev(5000),iev(5000)
(number_of_array)number_of_arayはhist.inpでの/BLに相当する。
1 (number_of_array)[low_edge,high_edge]ただし値が指定した領域を越えるとエラーとなる。 例: /FORM (10)[0,63] この場合、10個の要素からなる配列で、値の取り得る範囲は 0から63すなわち6bitで表せる整数。
2 (number_of_array)::number_of_bit例: /FORM (3)::16 この場合、3個の要素からなる配列で、16bitで表せる整数。 値の取り得る範囲は0から65535までのあたい。 省略時は一つ前の定義と同じ。
tam.h typedef struct scaler_block{ unsigned int hard[200]; unsigned int soft[200]; ..... }