*-----------------------------------------------------------------------
*"    GUVINT / GUVDIN / GUVOUT << 重みつき平均 >>
*-----------------------------------------------------------------------
      SUBROUTINE GUVINT(WZ,WW,IX)
      REAL      WZ(IX),X(IX)
      REAL      WW(IX)
      LOGICAL   LMISS
      SAVE

      CALL GLPGET('LMISS',LMISS)
      CALL GLPGET('RMISS',RMISS)
      CALL RSET0(WZ,IX,1,0.)
      CALL RSET0(WW,IX,1,0.)

      RETURN
*-----------------------------------------------------------------------
      ENTRY GUVDIN(WZ,WW,IX,JX,X,WT)

      J=1-JX
      DO 10 I=1,IX
        J=J+JX
        IF (.NOT.(LMISS .AND.( ( X(J).EQ.RMISS ).OR.
     &                         ( WT.EQ.RMISS   )    ) )) THEN
          WW(I)=WW(I)+WT
          WZ(I)=WZ(I)+X(J)*WT
        END IF
   10 CONTINUE

      RETURN
*-----------------------------------------------------------------------
      ENTRY GUVOUT(WZ,WW,IX)

      DO 15 I=1,IX
        IF (WW(I).NE.0.) THEN
          XAVE=WZ(I)/WW(I)
          WZ(I)=XAVE
        ELSE
          WZ(I)=RMISS
        END IF
   15 CONTINUE

      RETURN
      END
