1
C===========================================================================
2
C Copyright (C) 1995-2005 European Southern Observatory (ESO)
4
C This program is free software; you can redistribute it and/or
5
C modify it under the terms of the GNU General Public License as
6
C published by the Free Software Foundation; either version 2 of
7
C the License, or (at your option) any later version.
9
C This program is distributed in the hope that it will be useful,
10
C but WITHOUT ANY WARRANTY; without even the implied warranty of
11
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
C GNU General Public License for more details.
14
C You should have received a copy of the GNU General Public
15
C License along with this program; if not, write to the Free
16
C Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
19
C Correspondence concerning ESO-MIDAS should be addressed as follows:
20
C Internet e-mail: midas@eso.org
21
C Postal address: European Southern Observatory
22
C Data Management Division
23
C Karl-Schwarzschild-Strasse 2
24
C D 85748 Garching bei Muenchen
26
C===========================================================================
28
SUBROUTINE FTINIT(NAME,ISTAT)
29
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
31
C.VERSION: 1.0 ESO-FORTRAN Conversion, AA 17:25 - 13 JAN 1988
33
C.LANGUAGE: F77+ESOext
39
C FITLIB.FOR VERSION 1.0 27 MAR 1984
43
C INTERFACE ROUTINES FOR THE FITTING STRUCTURES
45
C READ FIT FILE NAME.FIT
48
C use MIDAS I/O interfaces to frames and tables
56
C----------------------------------------------------------------
60
C NAME CHAR FIT DATA FILE NAME
63
C ISTAT INTG STATUS RETURN
67
INTEGER ISTAT,II,IP,NACT,NI,NR,N1,I1
68
INTEGER EUC,EUL,EUD,I,DNUL,DUN,ACT
71
CHARACTER WS*5,FITSPEC*7
74
INCLUDE 'MID_INCLUDE:ST_DEF.INC/NOLIST'
75
INCLUDE 'MID_INCLUDE:FITI.INC/NOLIST'
77
DOUBLE PRECISION STASTEP(2*FZINDMAX)
79
INCLUDE 'MID_INCLUDE:FITC.INC/NOLIST'
80
INCLUDE 'MID_INCLUDE:ST_DAT.INC/NOLIST'
81
DATA FITSPEC/'FIT....'/
85
II = INDEX(NAME,' ') - 1
86
FITNAME = NAME(1:II)//'.fit'
87
CALL STFOPN(FITNAME,D_R4_FORMAT,0,F_FIT_TYPE,IP,ISTAT)
88
IF (FZTYPE(1:1).EQ.' ') THEN
89
CALL STDRDC(IP,'FITCHAR',1,1,
90
+ FZNCHAR,NACT,FZCHAR,DNUL,DUN,ISTAT)
97
CALL STDRDI(IP,'FITINTG',1,NI,ACT,FZINTG,DUN,DNUL,ISTAT)
98
CALL STDRDR(IP,'FITREAL',1,NR,ACT,FZREAL,DUN,DNUL,ISTAT)
100
IF (FZNPTOT.EQ.0) THEN
105
CALL STDRDD(IP,'FITPARAM',1,N1,ACT,FZVALUE,DUN,DNUL,ISTAT)
106
CALL STDRDD(IP,'FITERROR',1,N1,ACT,FZERROR,DUN,DNUL,ISTAT)
108
CALL STECNT('GET',EUC,EUL,EUD)
109
CALL STECNT('PUT',1,0,0)
111
CALL STDRDD(IP,'FITDOUBLE',1,N1,ACT,STASTEP,DUN,DNUL,ISTAT)
118
DO 100,II=1,FZINDMAX !get start, step from FITDOUBLE
119
FZSTART(II) = STASTEP(II)
120
FZSTEP(II) = STASTEP(II+FZINDMAX)
124
CALL STDRDI(IP,'FITSELE',1,FZFUNMAX,ACT,FZSELE,DUN,DNUL,ISTAT)
125
CALL STECNT('PUT',EUC,EUL,EUD)
127
DO 1000,I = 1,FZFUNMAX
132
C ASSIGN FUNCTION NAMES
134
DO 2000,I = FZNFUN + 1,FZFUNMAX
141
WRITE (WS,9000) 10000 + I
142
FITSPEC(4:7) = WS(2:5)
143
CALL STDRDC(IP,FITSPEC,1,1,80,ACT,FZSPEC(I),DNUL,
145
CALL FTDFUN(I,FZSPEC(I),ISTAT)