! { dg-do compile } ! { dg-options "-O2 -funroll-loops" } SUBROUTINE EFPGRD(IFCM,NAT,NVIB,NPUN,FCM, * DEN,GRD,ENG,DIP,NVST,NFTODO,LIST) IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION DEN(*),GRD(*),ENG(*),DIP(*),LIST(*) PARAMETER (MXPT=100, MXFRG=50, MXFGPT=MXPT*MXFRG) COMMON /FGRAD / DEF(3,MXFGPT),DEFT(3,MXFRG),TORQ(3,MXFRG), * ATORQ(3,MXFRG) IF(NVST.EQ.0) THEN CALL PUVIB(IFCM,IW,.FALSE.,NCOORD,IVIB,IATOM,ICOORD, * ENG(IENG),GRD(IGRD),DIP(IDIP)) END IF DO 290 IVIB=1,NVIB DO 220 IFRG=1,NFRG DO 215 J=1,3 DEFT(J,IFRG)=GRD(INDX+J-1) 215 CONTINUE INDX=INDX+6 220 CONTINUE 290 CONTINUE END