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

Attachment: 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

Responder a