W-NOMINATE



C************************************************************************
C************************************************************************
C*  WNOM9707.FOR     JULY 1997                                         **
C*                                                                     **
C*                 MULTI-DIMENSIONAL W-NOMINATE                        **
C*                                                                     **
C*           MULTI-DIMENSIONAL WEIGHTED NOMINAL THREE-STEP ESTIMATION  **
C*                             *        ******  *          *           **
C*           DEVELOPED BY KEITH T. POOLE AND HOWARD ROSENTHAL          **
c*           GRADUATE SCHOOL OF INDUSTRIAL ADMINISTRATION              **
C*           CARNEGIE-MELLON UNIVERSITY, PITTSBURGH, PA. 15213         **
C*                                                                     **
C*           INITIAL PROGRAM DEVELOPED 1982-1984                       **
C*           MULTIDIMENSIONAL PROGRAM DEVELOPED 1986-1987 IN           **
C*              CDC VECTOR FORTRAN                                     **
C*           OS2/SCALAR FORTRAN VERSION WRITTEN BY NOLAN McCARTY       **
C*              AND KEITH T. POOLE 1991                                **
C*           THE MODIFIED NOMINATE ALGORITHM, W-NOMINATE, DEVELOPED BY **
C*              KEITH T. POOLE SEPTEMBER-NOVEMBER 1992.                **
C*           THIS SCALAR FORTRAN W-VERSION CURRENT AS OF JULY 1997     **
C*                                                                     **
C************************************************************************
C************************************************************************
C
C     THE PARAMETERS BEING ESTIMATED ARE: A SIGNAL TO NOISE RATIO CONSTANT
C     IN UTILITY FUNCTION PHASE--THIS IS BETA AND IS ESTIMATED FOR THE FIRST
C     DIMENSION.  FOR SUBSEQUENT DIMENSIONS, A WEIGHTING PARAMETER, W, IS
C     ESTIMATED--THIS PARAMETER IS IN THE EXPONENT OF THE UTILITY FUNCTION.
C
C     LEGISLATOR COORDINATES (IN LEGISLATOR PHASE).
C
C     MIDPOINT AND DISTANCE BETWEEN THE TWO OUTCOMES IN THE ROLL CALL PHASE.
C     ALL PARAMETERS ARE HELD FIXED EXCEPT DURING THEIR RESPECTIVE PHASES.
C     DURING UTILITY PHASE, LEGISLATOR AND ROLL CALL PARAMETERS ARE HELD FIXED
C     AND ARE STORED IN XDATA(.) AND ZMID(.)/DYN(.) RESPECTIVELY.  DURING
C     ROLL CALL PHASE, THE UTILITY FUNCTION CONSTANT, STORED IN BBB(1), IS
C     HELD FIXED AND THE LEGISLATORS ARE HELD FIXED.  DURING LEGISLATOR PHASE,
C     UTILITY AND ROLL CALL PARAMETERS ARE HELD FIXED.
C
C     THE FOLLOWING TABLE SHOWS WHAT IS STORED WHERE AND WHAT IS HELD CONSTANT
C     DURING EACH PHASE.
C
C       NOBS=# OF LEGISLATORS, NRCALL=# OF ROLL CALLS.
C       NDIM = DIMENSION NUMBER
C
C                     UTILITY PHASE     LEGISLATOR PHASE   ROLL CALL PHASE
C
C     BETA (SIG/NOISE)   B(1)               BBB(1)             BBB(1)
C     WEIGHT             B(1)               BBB(2)             BBB(2)
C
C     LEGISLATOR         XDATA(1,NDIM) TO   B(1)            XDATA(1,NDIM) TO
C       COORDS           XDATA(NOBS,NDIM)                   XDATA(NOBS,NDIM)
C
C     DISTANCE BET.      DYN(1,NDIM) TO     DYN(1,NDIM) TO      B(1)
C       OUTCOMES         DYN(NRCALL,NDIM)   DYN(NRCALL,NDIM)
C
C     MID PTS.           ZMID(1,NDIM) TO    ZMID(1,NDIM) TO     B(2)
C                        ZMID(NRCALL,NDIM)  ZMID(NRCALL,NDIM)
C
C
C     IN THE ROLL CALL PHASE, SUMMING TAKES PLACE OVER THE LEGISLATORS
C     AND ONLY THE PARAMETERS OF ONE ROLL CALL AT A TIME ARE UPDATED
C     AND THESE ARE HELD IN B(1) AND B(2).  LIKEWISE, IN THE LEGISLATOR
C     PHASE SUMMING TAKES PLACE OVER THE ROLL CALLS AND ONLY ONE LEGISLATOR
C     COORDINATE (STORED IN B(1)) IS UPDATED AT A TIME.  IN THE UTILITY PHASE
C     SUMMATION IS OVER ALL THE DATA AND THE ESTIMATE OF BETA (THE SIGNAL TO
C     NOISE RATIO) OR THE WEIGHT (FOR 2ND DIMENSION AND HIGHER) IS HELD
C     IN B(1).
C
C
C
C  FLOW DIAGRAM OF W-NOMINATE PROGRAM-- * INDICATES MAIN DO - LOOP
C
C     MAIN
C      |
C      |---CLEAN
C      |
C      |---ASCORE
C      |
C      |
C      |            |--STAT 
C      |---WHOOPE---|--FOCUSW
C      |            |--FOCUS
C      |            |--STAT  
C      |
C      |---RECODE--JANICE
C      |
C      |            |--NORMZ
C     *|            |          |--FUNNEL
C     *|---MAXLIK---|--BHHH  --|--STEPR --FUNNEL--LOGLIK--ITHOBS
C     *|            |--RPRINT--GRID2
C     *|            |--CROSS
C     *|
C     *|---OUTWRT--CORR
C      |
C      |---CROSS
C      |
C
C