I think you have to modify the code like you indicated. I made the attached patch. It removed the compile time errors, but I never tested it make sure it didn't have any runtime errors.
Placed gfortran.patch (for Wien2k 12.1) into $WIENROOT, and entered: $ patch -b -p0 -i gfortran.patch On 2/20/2013 11:26 PM, tasaka at affinity-science.com wrote: > Hello, > > I encountered the follwoing errors when compiling in SRC_hf > with GNU Fortran (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3. > if there are any options of gfortran to avoid these errors, please advise. > > // > gfortran -ffree-form -O2 -ffree-line-length-none -c calc_exhfvv_tmp_.F > calc_exhfvv_tmp_.F:269.22: > > igv = (/ 1:ng /) > 1 > Error: Syntax error in array constructor at (1) > calc_exhfvv_tmp_.F:272.22: > > igv = (/ 1:(igs-1),(igs+1):ng /) > 1 > Error: Syntax error in array constructor at (1) > make[1]: *** [calc_exhfvv.o] Error 1 > // > > Or, should I modify the codes as like below? > > igv = (/ (i, i=1,ng,1) /) > > > Any information would be appreciated. > > With best regards, > Tomo > > > > _______________________________________________ > Wien mailing list > Wien at zeus.theochem.tuwien.ac.at > http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien > -------------- next part -------------- diff -cr SRC_hf/calc_exhfvv.F SRC_hf/calc_exhfvv.F *** SRC_hf/calc_exhfvv.F 2012-06-13 02:53:03.000000000 -0600 --- SRC_hf/calc_exhfvv.F 2013-01-21 12:33:50.000000000 -0700 *************** *** 266,275 **** enddo if (igs .eq. 0) then allocate(igv(ng)) ! igv = (/ 1:ng /) else allocate(igv(ng-1)) ! igv = (/ 1:(igs-1),(igs+1):ng /) endif ftmp3a = (0d0,0d0) --- 266,275 ---- enddo if (igs .eq. 0) then allocate(igv(ng)) ! igv = (/ (i,i=1,ng) /) else allocate(igv(ng-1)) ! igv = (/ (i,i=1,(igs-1)),(i,i=(igs+1),ng) /) endif ftmp3a = (0d0,0d0) diff -cr SRC_hf/calc_h.F SRC_hf/calc_h.F *** SRC_hf/calc_h.F 2012-07-15 06:45:02.000000000 -0600 --- SRC_hf/calc_h.F 2013-01-21 12:37:57.000000000 -0700 *************** *** 287,293 **** elseif (diaghf .eqv. .true.) then nindexb2(1:nbf) = 1 ! indexb(1:nbf,1) = (/1:nbf/) endif --- 287,293 ---- elseif (diaghf .eqv. .true.) then nindexb2(1:nbf) = 1 ! indexb(1:nbf,1) = (/(i,i=1,nbf)/) endif *************** *** 418,427 **** enddo if (igs .eq. 0) then allocate(igv(ng)) ! igv = (/ 1:ng /) else allocate(igv(ng-1)) ! igv = (/ 1:(igs-1),(igs+1):ng /) endif nkvhf = nkvt(ik3) - nlototold --- 418,427 ---- enddo if (igs .eq. 0) then allocate(igv(ng)) ! igv = (/ (i,i=1,ng) /) else allocate(igv(ng-1)) ! igv = (/ (i,i=1,(igs-1)),(i,i=(igs+1),ng) /) endif nkvhf = nkvt(ik3) - nlototold diff -cr SRC_hf/calc_rhovalvxsl.F SRC_hf/calc_rhovalvxsl.F *** SRC_hf/calc_rhovalvxsl.F 2012-06-11 07:28:52.000000000 -0600 --- SRC_hf/calc_rhovalvxsl.F 2013-01-21 12:40:07.000000000 -0700 *************** *** 9,15 **** use struct, only : dx, iatnr, jri, mult, nat, nrad, r0, vcell implicit none ! integer :: iat, ilm, nr real*8 :: fac, result, rhovalvxsl, rhovalvxslint --- 9,15 ---- use struct, only : dx, iatnr, jri, mult, nat, nrad, r0, vcell implicit none ! integer :: i, iat, ilm, nr real*8 :: fac, result, rhovalvxsl, rhovalvxslint *************** *** 22,28 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) do ilm=1, nlmvsl(iat) --- 22,28 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) do ilm=1, nlmvsl(iat) diff -cr SRC_hf/calc_ucuchucuc.f SRC_hf/calc_ucuchucuc.f *** SRC_hf/calc_ucuchucuc.f 2012-06-05 09:21:25.000000000 -0600 --- SRC_hf/calc_ucuchucuc.f 2013-01-21 12:41:20.000000000 -0700 *************** *** 30,36 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 30,36 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uuchucu.f SRC_hf/calc_uuchucu.f *** SRC_hf/calc_uuchucu.f 2012-06-05 09:23:37.000000000 -0600 --- SRC_hf/calc_uuchucu.f 2013-01-21 12:43:16.000000000 -0700 *************** *** 30,36 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 30,36 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uuchucuh.f SRC_hf/calc_uuchucuh.f *** SRC_hf/calc_uuchucuh.f 2012-06-05 09:26:15.000000000 -0600 --- SRC_hf/calc_uuchucuh.f 2013-01-21 12:44:12.000000000 -0700 *************** *** 32,38 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 32,38 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uu.f SRC_hf/calc_uu.f *** SRC_hf/calc_uu.f 2012-06-05 10:03:01.000000000 -0600 --- SRC_hf/calc_uu.f 2013-01-21 12:42:29.000000000 -0700 *************** *** 8,14 **** implicit none include 'param.inc' ! integer :: iat, if1, if2, l, nr real*8, allocatable :: fun(:), r(:) --- 8,14 ---- implicit none include 'param.inc' ! integer :: i, iat, if1, if2, l, nr real*8, allocatable :: fun(:), r(:) *************** *** 20,26 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) do l=0, lmax2 --- 20,26 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) do l=0, lmax2 diff -cr SRC_hf/calc_uuguu.f SRC_hf/calc_uuguu.f *** SRC_hf/calc_uuguu.f 2012-07-15 06:45:58.000000000 -0600 --- SRC_hf/calc_uuguu.f 2013-01-21 12:45:27.000000000 -0700 *************** *** 30,36 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 30,36 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uuguuh.f SRC_hf/calc_uuguuh.f *** SRC_hf/calc_uuguuh.f 2012-07-15 06:46:13.000000000 -0600 --- SRC_hf/calc_uuguuh.f 2013-01-21 12:46:10.000000000 -0700 *************** *** 32,38 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 32,38 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uui.f SRC_hf/calc_uui.f *** SRC_hf/calc_uui.f 2012-07-15 06:45:32.000000000 -0600 --- SRC_hf/calc_uui.f 2013-01-21 12:46:58.000000000 -0700 *************** *** 30,36 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 30,36 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uuih.f SRC_hf/calc_uuih.f *** SRC_hf/calc_uuih.f 2012-07-15 06:45:42.000000000 -0600 --- SRC_hf/calc_uuih.f 2013-01-21 12:47:41.000000000 -0700 *************** *** 32,38 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 --- 32,38 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) if (screened .eqv. .true.) then sbi = 0d0 diff -cr SRC_hf/calc_uvxslug.f SRC_hf/calc_uvxslug.f *** SRC_hf/calc_uvxslug.f 2012-06-05 10:07:38.000000000 -0600 --- SRC_hf/calc_uvxslug.f 2013-01-21 12:48:29.000000000 -0700 *************** *** 9,15 **** use struct, only : cin, dx, jri, mult, nat, nrad, r0 implicit none ! integer :: iat, if1, if2, ilm, ivsl, l1, l2, nr real*8 :: result --- 9,15 ---- use struct, only : cin, dx, jri, mult, nat, nrad, r0 implicit none ! integer :: i, iat, if1, if2, ilm, ivsl, l1, l2, nr real*8 :: result *************** *** 23,29 **** do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/1:nr/))-1d0)) do ivsl=1, nindvsl(iat) --- 23,29 ---- do iat=1, nat nr = jri(iat) ! r(1:nr) = r0(iat)*exp(dx(iat)*(dble((/(i,i=1,nr)/))-1d0)) do ivsl=1, nindvsl(iat) diff -cr SRC_kgen/arbmsh.f SRC_kgen/arbmsh.f *** SRC_kgen/arbmsh.f 2012-04-10 07:11:13.000000000 -0600 --- SRC_kgen/arbmsh.f 2013-01-21 10:43:28.000000000 -0700 *************** *** 90,96 **** ! ------------------------------------------------------------------ ! -- CREATE FILE FOR HF -- ! ------------------------------------------------------------------ ! IF (CREATEHF .EQ. .TRUE.) & CALL CREATE_FILEHF(N,W(OISHIF),NSYM,IIO,GBAS,AAA,ORTHO) ! ------------------------------------------------------------------ ! -- PRINTOUT OF SYMMETRY OPERATIONS -- --- 90,96 ---- ! ------------------------------------------------------------------ ! -- CREATE FILE FOR HF -- ! ------------------------------------------------------------------ ! IF (CREATEHF .EQV. .TRUE.) & CALL CREATE_FILEHF(N,W(OISHIF),NSYM,IIO,GBAS,AAA,ORTHO) ! ------------------------------------------------------------------ ! -- PRINTOUT OF SYMMETRY OPERATIONS -- diff -cr SRC_lapw0/lapw0.F SRC_lapw0/lapw0.F *** SRC_lapw0/lapw0.F 2012-07-20 00:43:04.000000000 -0600 --- SRC_lapw0/lapw0.F 2013-01-21 09:44:20.000000000 -0700 *************** *** 256,267 **** if ((alphax .lt. 0d0) .or. (alphax .gt. 1d0)) stop 'error in case.inhf: & the fraction of HF exchange should be between 0 and 1' read(60,*) screening ! if ((screening .ne. .true.) .and. (screening .ne. .false.)) & stop 'error in case.inhf: screening should be true or false' ! if (screening .eq. .true.) then read(60,*) slamb if (slamb .lt. 0d0) stop 'error in case.inhf: lambda should be positive' ! elseif (screening .eq. .false.) then slamb = 0d0 endif endif --- 256,267 ---- if ((alphax .lt. 0d0) .or. (alphax .gt. 1d0)) stop 'error in case.inhf: & the fraction of HF exchange should be between 0 and 1' read(60,*) screening ! if ((screening .neqv. .true.) .and. (screening .neqv. .false.)) & stop 'error in case.inhf: screening should be true or false' ! if (screening .eqv. .true.) then read(60,*) slamb if (slamb .lt. 0d0) stop 'error in case.inhf: lambda should be positive' ! elseif (screening .eqv. .false.) then slamb = 0d0 endif endif diff -cr SRC_lapw0/vx_screened.f SRC_lapw0/vx_screened.f *** SRC_lapw0/vx_screened.f 2011-12-09 07:05:55.000000000 -0700 --- SRC_lapw0/vx_screened.f 2013-01-21 10:40:45.000000000 -0700 *************** *** 44,50 **** s3 = s**3 s4 = s**4 ! if ((screening .eq. .true.) .and. (slamb .gt. 1d-10)) then j = 1d0 - 2d0/3d0*a2 - 8d0/3d0*a*datan(1d0/a) + & 2d0/3d0*a2*(a2 + 3d0)*dlog(1d0 + 1d0/a2) --- 44,50 ---- s3 = s**3 s4 = s**4 ! if ((screening .eqv. .true.) .and. (slamb .gt. 1d-10)) then j = 1d0 - 2d0/3d0*a2 - 8d0/3d0*a*datan(1d0/a) + & 2d0/3d0*a2*(a2 + 3d0)*dlog(1d0 + 1d0/a2)