*----------------------------------------------------------------
* psptxx13.PRG - Programa p/ Calcular a Diferenca - 4 Men
*----------------------------------------------------------------
difer[1]=0
difer[2]=0
difer[3]=0
difer[4]=0
difer[5]=0
difer[6]=0
if .not. final
   pr=ascan(clas,1)
   sg=ascan(clas,2)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,2)
   sg=ascan(clas,3)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,3)
   sg=ascan(clas,4)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,3)
   sg=ascan(clas,5)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,3)
   sg=ascan(clas,6)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
else
   pr=ascan(clas,1)
   sg=ascan(clas,2)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,1)
   sg=ascan(clas,3)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,1)
   sg=ascan(clas,4)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,1)
   sg=ascan(clas,5)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
   *
   pr=ascan(clas,1)
   sg=ascan(clas,6)
   if pr > 0 .and. sg > 0 .and. pr <> sg
      ptosg=0
      bs=basesomas[sg]
      acopy (somas,somador,bs,20,1)
      asort (somador)
      *
      if validas = 2
         ptosg=ptosg+somador[20]
         difer[sg]=ptos[pr]-ptosg
         *                                 
         if intf[sg] > 0
            difer[sg]=difer[sg]*2.00
            *
            if difer[sg] > somador[20]
               ptosg=round(somador[20]/2.00,2)
               difer[sg]=ptos[pr]-ptosg
            endif
         endif
         *
         bp=basesomas[pr]
         acopy (somas,somadop,bp,20,1)
         asort (somadop)
         if somadop[20] >= somador[20]
            difer[sg]=difer[sg]+0.01
         endif
      else
         limite=(20-(validas-1))+intf[sg]+1
         for q = 20 to limite step -1
            ptosg=ptosg+somador[q]
         next
         difer[sg]=ptos[pr]-ptosg+0.01
      endif
      *
      if difer[sg] > 10 .and. validas-intf[sg] <= 2
         difer[sg] = ptos[pr]
      endif
   endif
endif
return
