macro multi_h HID1=101 HID2=0 horizon=0 Hori_i=0 IF ([1] = i) THEN IF ( [2] = 0 .or. [3] = 0) THEN mess mess 'Warning! Input HID1, Number of Histograms!' mess stopm ENDIF IF ([3] = 1) THEN Horizon = [4] + 1 Hnumber = [3] + 1 exec multi_h#DefZone [Horizon] [Hnumber] DO i = 1, [3] exec h_org [2] ENDDO mess 'test' stopm ENDIF Hnumber = [3] - 1 exec multi_h#DefZone [4] [Hnumber] exec h_org [2] DO i = 1, [Hnumber] exec n_org ENDDO stopm ENDIF IF ([1] <= 100 ) THEN IF ( [2] = 0 .or. [3] = 0 ) THEN mess mess 'Warning! Input HID1,HID2,...' mess stopm ENDIF Hnumber = [#] - 1 exec multi_h#DefZone [1] [Hnumber] DO i = 2, [Hnumber] + 1 exec h_org [[i]] ENDDO ELSE IF ([HID2] .eq. 0) THEN HID2 = [HID1] ENDIF IF ([HID2] <= 100) THEN HID2 = [HID1] + [HID2] - 1 ENDIF Hnumber = [HID2] - [HID1] + 1 exec multi_h#DefZone [horizon] [Hnumber] DO i = [HID1], [HID2] exec h_org [i] ENDDO ENDIF return macro DefZone horizon Hnumber IF ([horizon] .eq. 1) THEN zone [horizon] [Hnumber] ELSEIF ([horizon] .ne. 0) THEN vertical = $sigma(int([Hnumber]/[horizon])) vertical_mod = mod([Hnumber],[horizon]) IF ([vertical_mod] .ne. 0) THEN vertical = [vertical] + 1 ENDIF zone [horizon] [vertical] ENDIF return