| ! { dg-do run } |
| !*==CENTCM.spg processed by SPAG 6.55Dc at 09:26 on 23 Sep 2005 |
| SUBROUTINE CENTCM |
| IMPLICIT DOUBLE PRECISION(A-H,O-Z) |
| PARAMETER (NM=16384) |
| PARAMETER (NG=100) |
| PARAMETER (NH=100) |
| PARAMETER (MU=20) |
| PARAMETER (NL=1) |
| PARAMETER (LL=10*NM) |
| PARAMETER (KP=2001,KR=2001,KG=2001) |
| COMMON /LCS / X0(3,-2:NM) , X(3,-2:NM,5) , XIN(3,-2:NM) |
| COMMON /MOLEC / LPBc(3) , MOLsp , MOLsa , NBX , NBY , NBZ , NPLa ,& |
| & LPBcsm |
| cm1 = 0.D0 |
| cm2 = 0.D0 |
| cm3 = 0.D0 |
| DO i = 1 , MOLsa |
| cm1 = cm1 + X0(1,i) |
| cm2 = cm2 + X0(2,i) |
| cm3 = cm3 + X0(3,i) |
| ENDDO |
| cm1 = cm1/MOLsa |
| cm2 = cm2/MOLsa |
| cm3 = cm3/MOLsa |
| IF ( (cm1.EQ.0.D0) .AND. (cm2.EQ.0.D0) .AND. (cm3.EQ.0.D0) ) & |
| & RETURN |
| DO i = 1 , MOLsa |
| X0(1,i) = X0(1,i) - cm1 |
| X0(2,i) = X0(2,i) - cm2 |
| X0(3,i) = X0(3,i) - cm3 |
| XIN(1,i) = XIN(1,i) - cm1 |
| XIN(2,i) = XIN(2,i) - cm2 |
| XIN(3,i) = XIN(3,i) - cm3 |
| ENDDO |
| CONTINUE |
| END |
| PROGRAM test |
| IMPLICIT DOUBLE PRECISION(A-H,O-Z) |
| PARAMETER (NM=16384) |
| PARAMETER (NG=100) |
| PARAMETER (NH=100) |
| PARAMETER (MU=20) |
| PARAMETER (NL=1) |
| PARAMETER (LL=10*NM) |
| PARAMETER (KP=2001,KR=2001,KG=2001) |
| COMMON /LCS / X0(3,-2:NM) , X(3,-2:NM,5) , XIN(3,-2:NM) |
| COMMON /MOLEC / LPBc(3) , MOLsp , MOLsa , NBX , NBY , NBZ , NPLa ,& |
| & LPBcsm |
| MOLsa = 10 |
| X0 = 1. |
| CALL CENTCM |
| END |