Dear users, In order to compile constr.f for my system, I follow Roberto's guidance. So, I act as bellow: 1. I have edited constr.f file which is attached. 2. I copy it to */Src
3. when I type make in the Src directory to recompile Siesta, I have faced
to the following error:
mpif90 -c -g -O2 `FoX/FoX-config --fcflags` ~/siesta-3.2/Src/constr.f
~/siesta-3.2/Src/constr.f:27.
double precision amass(na), cell(3,3), fa(3,na),
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:28.
. stress(3,3), xa(3,na)
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:34.
& +fa(3,8)+fa(3,9)+fa(3,10)+fa(
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:35.
& +fa(3,15)+fa(3,16)+fa(3,17)+
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:36.
& +fa(3,21)+fa(3,22)+fa(3,23)+
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:37.
& +fa(3,27)+fa(3,28)+fa(3,29)+
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:40.
& +amass(7)+amass(8)+amass(9)+
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:41.
& +amass(13)+amass(14)+amass(15)
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:42.
& +amass(19)+amass(20)+amass(21)
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:43.
& +amass(25)+amass(26)+amass(27)
1
Error: Invalid character in name at (1)
~/siesta-3.2/Src/constr.f:45.
fa(3,1) = fz * amass(1)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:46.
fa(3,2) = fz * amass(2)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:47.
fa(3,3) = fz * amass(3)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:48.
fa(3,4) = fz * amass(4)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:49.
fa(3,5) = fz * amass(5)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:50.
fa(3,6) = fz * amass(6)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:51.
fa(3,7) = fz * amass(7)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:52.
fa(3,8) = fz * amass(8)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:53.
fa(3,9) = fz * amass(9)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:54.
fa(3,10) = fz * amass(10)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:55.
fa(3,11) = fz * amass(11)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:56.
fa(3,12) = fz * amass(12)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:57.
fa(3,13) = fz * amass(13)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:58.
fa(3,14) = fz * amass(14)/tmass
1
Error: 'fa' at (1) is not a variable
~/siesta-3.2/Src/constr.f:59.
fa(3,15) = fz * amass(15)/tmass
1
Error: 'fa' at (1) is not a variable
Fatal Error: Error count reached limit of 25.
make: *** [constr.o] Error 1
Also, I have attached arch.make file.
I don't now how to get rid of it. Could you guide me to solve the error,
please?
Thanks in advance,
Regards,
Nadia Salami
arch.make
Description: Binary data
!
! This file is part of the SIESTA package.
!
! Copyright (c) Fundacion General Universidad Autonoma de Madrid:
! E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
! and J.M.Soler, 1996- .
!
! Use of this software constitutes agreement with the full conditions
! given in the SIESTA license, as signed by all legitimate users.
!
subroutine constr( cell, na, isa, amass, xa, stress, fa, ntcon )
c *****************************************************************
c User-written routine to implement specific geometric constraints,
c by orthogonalizing the forces and stress to undesired changes.
c Arguments:
c real*8 cell(3,3) : input lattice vectors (Ang)
c integer na : input number of atoms
c integer isa(na) : input species indexes
c real*8 amass(na) : input atomic masses
c real*8 xa(3,na) : input atomic cartesian coordinates (Ang)
c real*8 stress( 3,3) : input/output stress tensor (Ry/Ang**3)
c real*8 fa(3,na) : input/output atomic forces (Ry/Ang)
c integer ntcon : total number of positions constr. imposed
c *****************************************************************
implicit none
integer na, isa(na), ntcon, ia
double precision amass(na), cell(3,3), fa(3,na),
. stress(3,3), xa(3,na)
double precision fz, tmass
c Write here your problem-specific code.
fz = fa(3,1)+fa(3,2)+fa(3,3)+fa(3,4)+fa(3,5)+fa(3,6)+fa(3,7)
& +fa(3,8)+fa(3,9)+fa(3,10)+fa(3,11)+fa(3,12)+fa(3,13)+fa(3,14)
& +fa(3,15)+fa(3,16)+fa(3,17)+fa(3,18)+fa(3,19)+fa(3,20)
& +fa(3,21)+fa(3,22)+fa(3,23)+fa(3,24)+fa(3,25)+fa(3,26)
& +fa(3,27)+fa(3,28)+fa(3,29)+fa(3,30)
tmass = amass(1)+amass(2)+amass(3)+amass(4)+amass(5)+amass(6)
& +amass(7)+amass(8)+amass(9)+amass(10)+amass(11)+amass(12)
& +amass(13)+amass(14)+amass(15)+amass(16)+amass(17)+amass(18)
& +amass(19)+amass(20)+amass(21)+amass(22)+amass(23)+amass(24)
& +amass(25)+amass(26)+amass(27)+amass(28)+amass(29)+amass(30)
fa(3,1) = fz * amass(1)/tmass
fa(3,2) = fz * amass(2)/tmass
fa(3,3) = fz * amass(3)/tmass
fa(3,4) = fz * amass(4)/tmass
fa(3,5) = fz * amass(5)/tmass
fa(3,6) = fz * amass(6)/tmass
fa(3,7) = fz * amass(7)/tmass
fa(3,8) = fz * amass(8)/tmass
fa(3,9) = fz * amass(9)/tmass
fa(3,10) = fz * amass(10)/tmass
fa(3,11) = fz * amass(11)/tmass
fa(3,12) = fz * amass(12)/tmass
fa(3,13) = fz * amass(13)/tmass
fa(3,14) = fz * amass(14)/tmass
fa(3,15) = fz * amass(15)/tmass
fa(3,16) = fz * amass(16)/tmass
fa(3,17) = fz * amass(17)/tmass
fa(3,18) = fz * amass(18)/tmass
fa(3,19) = fz * amass(19)/tmass
fa(3,20) = fz * amass(20)/tmass
fa(3,21) = fz * amass(21)/tmass
fa(3,22) = fz * amass(22)/tmass
fa(3,23) = fz * amass(23)/tmass
fa(3,24) = fz * amass(24)/tmass
fa(3,25) = fz * amass(25)/tmass
fa(3,26) = fz * amass(26)/tmass
fa(3,27) = fz * amass(27)/tmass
fa(3,28) = fz * amass(28)/tmass
fa(3,29) = fz * amass(29)/tmass
fa(3,30) = fz * amass(30)/tmass
fa(1,1) = 0.0d0
fa(1,2) = 0.0d0
fa(1,3) = 0.0d0
fa(1,4) = 0.0d0
fa(1,5) = 0.0d0
fa(1,6) = 0.0d0
fa(1,7) = 0.0d0
fa(1,8) = 0.0d0
fa(1,9) = 0.0d0
fa(1,10) = 0.0d0
fa(1,11) = 0.0d0
fa(1,12) = 0.0d0
fa(1,13) = 0.0d0
fa(1,14) = 0.0d0
fa(1,15) = 0.0d0
fa(1,16) = 0.0d0
fa(1,17) = 0.0d0
fa(1,18) = 0.0d0
fa(1,19) = 0.0d0
fa(1,20) = 0.0d0
fa(1,21) = 0.0d0
fa(1,22) = 0.0d0
fa(1,23) = 0.0d0
fa(1,24) = 0.0d0
fa(1,25) = 0.0d0
fa(1,26) = 0.0d0
fa(1,27) = 0.0d0
fa(1,28) = 0.0d0
fa(1,29) = 0.0d0
fa(1,30) = 0.0d0
fa(2,1) = 0.0d0
fa(2,2) = 0.0d0
fa(2,3) = 0.0d0
fa(2,4) = 0.0d0
fa(2,5) = 0.0d0
fa(2,6) = 0.0d0
fa(2,7) = 0.0d0
fa(2,8) = 0.0d0
fa(2,9) = 0.0d0
fa(2,10) = 0.0d0
fa(2,11) = 0.0d0
fa(2,12) = 0.0d0
fa(2,13) = 0.0d0
fa(2,14) = 0.0d0
fa(2,15) = 0.0d0
fa(2,16) = 0.0d0
fa(2,17) = 0.0d0
fa(2,18) = 0.0d0
fa(2,19) = 0.0d0
fa(2,20) = 0.0d0
fa(2,21) = 0.0d0
fa(2,22) = 0.0d0
fa(2,23) = 0.0d0
fa(2,24) = 0.0d0
fa(2,25) = 0.0d0
fa(2,26) = 0.0d0
fa(2,27) = 0.0d0
fa(2,28) = 0.0d0
fa(2,29) = 0.0d0
fa(2,30) = 0.0d0
fz = fa(3,121)+fa(3,122)+fa(3,123)+fa(3,124)+fa(3,125)+fa(3,126)
+fa(3,127)+fa(3,128)+fa(3,129)+fa(3,130)+fa(3,131)+fa(3,132)
+fa(3,133)+fa(3,134)+fa(3,135)+fa(3,136)+fa(3,137)+fa(3,138)
+fa(3,139)+fa(3,140)+fa(3,141)+fa(3,142)+fa(3,143)+fa(3,144)
+fa(3,145)+fa(3,146)+fa(3,147)+fa(3,148)+fa(3,149)+fa(3,150)
tmassn = amass(121)+amass(122)+amass(123)+amass(124)+amass(125)
+amass(126)+amass(127)+amass(128)+amass(129)+amass(130)+amass(131)
+amass(132)+amass(133)+amass(134)+amass(135)+amass(136)+amass(137)
+amass(138)+amass(139)+amass(140)+amass(141)+amass(142)+amass(143)
+amass(144)+amass(145)+amass(146)+amass(147)+amass(148)+amass(149)
+amass(150)
fa(3,121) = fz * amass(121)/tmass
fa(3,122) = fz * amass(122)/tmass
fa(3,123) = fz * amass(123)/tmass
fa(3,124) = fz * amass(124)/tmass
fa(3,125) = fz * amass(125)/tmass
fa(3,126) = fz * amass(126)/tmass
fa(3,127) = fz * amass(127)/tmass
fa(3,128) = fz * amass(128)/tmass
fa(3,129) = fz * amass(129)/tmass
fa(3,130) = fz * amass(130)/tmass
fa(3,131) = fz * amass(131)/tmass
fa(3,132) = fz * amass(132)/tmass
fa(3,133) = fz * amass(133)/tmass
fa(3,134) = fz * amass(134)/tmass
fa(3,135) = fz * amass(135)/tmass
fa(3,136) = fz * amass(136)/tmass
fa(3,137) = fz * amass(137)/tmass
fa(3,138) = fz * amass(138)/tmass
fa(3,139) = fz * amass(139)/tmass
fa(3,140) = fz * amass(140)/tmass
fa(3,141) = fz * amass(141)/tmass
fa(3,142) = fz * amass(142)/tmass
fa(3,143) = fz * amass(143)/tmass
fa(3,144) = fz * amass(144)/tmass
fa(3,145) = fz * amass(145)/tmass
fa(3,146) = fz * amass(146)/tmass
fa(3,147) = fz * amass(147)/tmass
fa(3,148) = fz * amass(148)/tmass
fa(3,149) = fz * amass(149)/tmass
fa(3,150) = fz * amass(150)/tmass
fa(1,121) = 0.0d0
fa(1,122) = 0.0d0
fa(1,123) = 0.0d0
fa(1,124) = 0.0d0
fa(1,125) = 0.0d0
fa(1,126) = 0.0d0
fa(1,127) = 0.0d0
fa(1,128) = 0.0d0
fa(1,129) = 0.0d0
fa(1,130) = 0.0d0
fa(1,131) = 0.0d0
fa(1,132) = 0.0d0
fa(1,133) = 0.0d0
fa(1,134) = 0.0d0
fa(1,135) = 0.0d0
fa(1,136) = 0.0d0
fa(1,137) = 0.0d0
fa(1,138) = 0.0d0
fa(1,139) = 0.0d0
fa(1,140) = 0.0d0
fa(1,141) = 0.0d0
fa(1,142) = 0.0d0
fa(1,143) = 0.0d0
fa(1,144) = 0.0d0
fa(1,145) = 0.0d0
fa(1,146) = 0.0d0
fa(1,147) = 0.0d0
fa(1,148) = 0.0d0
fa(1,149) = 0.0d0
fa(1,150) = 0.0d0
fa(2,121) = 0.0d0
fa(2,122) = 0.0d0
fa(2,123) = 0.0d0
fa(2,124) = 0.0d0
fa(2,125) = 0.0d0
fa(2,126) = 0.0d0
fa(2,127) = 0.0d0
fa(2,128) = 0.0d0
fa(2,129) = 0.0d0
fa(2,130) = 0.0d0
fa(2,131) = 0.0d0
fa(2,132) = 0.0d0
fa(2,133) = 0.0d0
fa(2,134) = 0.0d0
fa(2,135) = 0.0d0
fa(2,136) = 0.0d0
fa(2,137) = 0.0d0
fa(2,138) = 0.0d0
fa(2,139) = 0.0d0
fa(2,140) = 0.0d0
fa(2,141) = 0.0d0
fa(2,142) = 0.0d0
fa(2,143) = 0.0d0
fa(2,144) = 0.0d0
fa(2,145) = 0.0d0
fa(2,146) = 0.0d0
fa(2,147) = 0.0d0
fa(2,148) = 0.0d0
fa(2,149) = 0.0d0
fa(2,150) = 0.0d0
ntcon=178
end
