C ------------------------------------------------------------------ C Here are the global internal variables of mulcp.F C ------------------------------------------------------------------ c NM: maximum number of particles c NX: maximum number of neighbours in the neighbourlist c ND: maximum number of non-vanishing components in a column of A c TOL: tolerance below which a dynamical matrix element is considered zero. #define _NM 5000 #define _NX 12 #define _ND 120 #define _TOL 0.000001 #define matrix_generation_precision_is_real #ifdef matrix_generation_precision_is_real IMPLICIT REAL (A-H,O-Z) #else IMPLICIT DOUBLE PRECISION (A-H,O-Z) #endif PARAMETER (NM=_NM,NX=_NX,ND=_ND,TOL=_TOL) COMMON /CONSTANTS/ UENERGY_IN_JOULE,ULENGTH_IN_METER,UMASS_IN_KG, A UTIME_IN_SECOND,UFREQ_IN_HZ,UFREQ_IN_THZ,AVO, A BOLZ,HBAR,PM(2),RCUT,RLIST COMMON /POTENTIAL/ PA(2), PB(2),PL1(2),PL2(2),PBT(2),PN(2), A PC(2),PWR2(2),PD(2), PH(2),PR(2),PS(2), A C2D2(2), PWR(2),PWR1(2),CHIJ(NX),RLM1(NX), A RLM2(NX),CA(NX),CB(NX),CR(NX),CS(NX),CHI_SI_C COMMON /STRUCTURE/ H(3,3),SX(NM),SY(NM),SZ(NM) COMMON /DYNAMICS/ FX(NM),FY(NM),FZ(NM),EP(NM),PMASS(NM), A RRX(2,NM),RRY(2,NM),RRZ(2,NM) COMMON /PROPERTY/ POUT(3,3),VIRIAL(3,3),VOLUME,POTE,HESS(ND,NM*3) COMMON /DOUBLE_COMPLEX/ A(ND,NM*3),DC_ZERO,DC_ONE,DC_I DOUBLE COMPLEX A,DC_ZERO,DC_ONE,DC_I COMMON /INT/ LIST2(NM,NX),N,NTYPE(NM),LIST(NM,NX),ISEED, A INDEX(NM),NC(3),IDX(NM*3),ID(ND,NM*3),INDEX2(NM) COMMON/BOOLEAN/ UPDATE, READ_FROM_CONFIG LOGICAL UPDATE, READ_FROM_CONFIG COMMON /CHAR/ BUF,NAME_OF_STRUCTURE,NAME_READ,NAME_WRITE CHARACTER *70 BUF,NAME_OF_STRUCTURE,NAME_READ,NAME_WRITE DATA LP,LP_CONFIG,LP_DOS /25,26,27/ #define D_PI (3.14159265358979323846D0) #define D_ZERO (0.d0) #define D_ONE (1.d0) #define D_HALF (1.d0/2.d0) #define D_FOURTH (1.d0/4.d0) #define D_EIGHTH (1.d0/8.d0) #define D_SIXTEENTH (1.d0/16.d0) #define D_THIRD (1.d0/3.d0) #define D_SIXTH (1.d0/6.d0) #define D_NINETH (1.d0/9.d0) #define D_FIFTH (1.d0/5.d0) #define D_SEVENTH (1.d0/7.d0) #define D_TENTH (1.d0/10.d0) #define E_PI (3.14159265358979323846E0) #define E_ZERO (0.E0) #define E_ONE (1.E0) #define E_HALF (1.E0/2.E0) #define E_FOURTH (1.E0/4.E0) #define E_EIGHTH (1.E0/8.E0) #define E_SIXTEENTH (1.E0/16.E0) #define E_THIRD (1.E0/3.E0) #define E_SIXTH (1.E0/6.E0) #define E_NINETH (1.E0/9.E0) #define E_FIFTH (1.E0/5.E0) #define E_SEVENTH (1.E0/7.E0) #define E_TENTH (1.E0/10.E0) #ifdef matrix_generation_precision_is_real PARAMETER (PI = E_PI) PARAMETER (ZERO = E_ZERO) PARAMETER (ONE = E_ONE) PARAMETER (HALF = E_HALF) PARAMETER (FOURTH = E_FOURTH) PARAMETER (EIGHTH = E_EIGHTH) PARAMETER (SIXTEENTH = E_SIXTEENTH) PARAMETER (THIRD = E_THIRD) PARAMETER (SIXTH = E_SIXTH) PARAMETER (NINETH = E_NINETH) PARAMETER (FIFTH = E_FIFTH) PARAMETER (SEVENTH = E_SEVENTH) PARAMETER (TENTH = E_TENTH) #else PARAMETER (PI = D_PI) PARAMETER (ZERO = D_ZERO) PARAMETER (ONE = D_ONE) PARAMETER (HALF = D_HALF) PARAMETER (FOURTH = D_FOURTH) PARAMETER (EIGHTH = D_EIGHTH) PARAMETER (SIXTEENTH = D_SIXTEENTH) PARAMETER (THIRD = D_THIRD) PARAMETER (SIXTH = D_SIXTH) PARAMETER (NINETH = D_NINETH) PARAMETER (FIFTH = D_FIFTH) PARAMETER (SEVENTH = D_SEVENTH) PARAMETER (TENTH = D_TENTH) #endif