Numérotation des lignes :

ddotpv
C DDOTPV    SOURCE    PV090527  24/04/16    21:15:03     11902                function ddotpv(lon,val1,val2)**  unrolling pour ameliorer la performance*  et ameliorer la precision*         IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8 (A-H,O-Z)      dimension val1(*),val2(*),resu(8)      if (lon.eq.0) then       ddotpv=0.d0       return      endif      resu(1)=0.d0      resu(2)=0.d0      resu(3)=0.d0      resu(4)=0.d0      resu(5)=0.d0      resu(6)=0.d0      resu(7)=0.d0      resu(8)=0.d0      do  i=0,lon-8,8       resu(1)=resu(1)+val1(i+1)*val2(i+1)       resu(2)=resu(2)+val1(i+2)*val2(i+2)       resu(3)=resu(3)+val1(i+3)*val2(i+3)       resu(4)=resu(4)+val1(i+4)*val2(i+4)       resu(5)=resu(5)+val1(i+5)*val2(i+5)       resu(6)=resu(6)+val1(i+6)*val2(i+6)       resu(7)=resu(7)+val1(i+7)*val2(i+7)       resu(8)=resu(8)+val1(i+8)*val2(i+8)      enddo           if (i.le.lon-4) then       resu(1)=resu(1)+val1(i+1)*val2(i+1)       resu(2)=resu(2)+val1(i+2)*val2(i+2)       resu(3)=resu(3)+val1(i+3)*val2(i+3)       resu(4)=resu(4)+val1(i+4)*val2(i+4)       i=i+4      endif      if (i.le.lon-2) then       resu(1)=resu(1)+val1(i+1)*val2(i+1)       resu(2)=resu(2)+val1(i+2)*val2(i+2)       i=i+2      endif      if (i.le.lon-1) then       resu(1)=resu(1)+val1(i+1)*val2(i+1)      endif      ddotpv=resu(1)+resu(2)+resu(3)+resu(4)+     > resu(5)+resu(6)+resu(7)+resu(8)      return      end     

© Cast3M 2003 - Tous droits réservés.
Mentions légales