SUBROUTINE POLEAVG(IM,JM,JSTA,JEND,SMALL,COSL,SPVAL,VAR)
! This program averages scalor fields at pole points
      implicit none

      INCLUDE 'mpif.h'
      INTEGER,intent(in) ::  IM,JM,JSTA,JEND
      REAL,intent(in) ::  SMALL,SPVAL
      REAL,intent(in) :: COSL(IM,JSTA:JEND)
      REAL,intent(inout) :: VAR(IM,JSTA:JEND)
      INTEGER I,JJ,ICOUNT
      REAL WORK
!
      JJ=1
      IF(JJ>=jsta .and. JJ<=jend)then
       IF(cosl(1,JJ)<SMALL)then
        WORK=0.
	ICOUNT=0
        DO I=1,IM
	  IF(VAR(I,JJ)/=SPVAL)THEN
            WORK=VAR(I,JJ)+WORK
	    ICOUNT=ICOUNT+1
	  END IF  
        END DO
        DO I=1,IM
          VAR(I,JJ)=WORK/ICOUNT
        END DO
       END IF	      
      END IF	
      JJ=JM
      IF(JJ>=jsta .and. JJ<=jend)then
       IF(cosl(1,JJ)<SMALL)then
        WORK=0.
	ICOUNT=0
        DO I=1,IM
	  IF(VAR(I,JJ)/=SPVAL)THEN
            WORK=VAR(I,JJ)+WORK
	    ICOUNT=ICOUNT+1
	  END IF
        END DO
        DO I=1,IM
          VAR(I,JJ)=WORK/ICOUNT
        END DO
       END IF	      
      END IF
      RETURN
      END