Add phagen version 2.3 support.
This commit is contained in:
parent
9167d613d6
commit
e356fbfbf4
|
@ -19,7 +19,7 @@
|
||||||
# along with this msspec. If not, see <http://www.gnu.org/licenses/>.
|
# along with this msspec. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# Source file : src/msspec/parameters.py
|
# Source file : src/msspec/parameters.py
|
||||||
# Last modified: Thu, 13 Mar 2025 11:20:31 +0100
|
# Last modified: Tue, 29 Apr 2025 11:49:20 +0200
|
||||||
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes.fr>
|
# Committed by : Sylvain Tricot <sylvain.tricot@univ-rennes.fr>
|
||||||
|
|
||||||
|
|
||||||
|
@ -362,8 +362,8 @@ class PhagenParameters(BaseParameters):
|
||||||
Parameter('l2h', types=(int,), fmt='d', default=4),
|
Parameter('l2h', types=(int,), fmt='d', default=4),
|
||||||
|
|
||||||
Parameter('ionicity', types=dict, default={}),
|
Parameter('ionicity', types=dict, default={}),
|
||||||
Parameter('noproto', allowed_values=('.true.', '.false.'),
|
#Parameter('noproto', allowed_values=('.true.', '.false.'),
|
||||||
types=(str,), fmt='>7s', default='.true.'),
|
# types=(str,), fmt='>7s', default='.true.'),
|
||||||
#Parameter('absorber', types=(int,), limits=(1, None), fmt='d', default=1),
|
#Parameter('absorber', types=(int,), limits=(1, None), fmt='d', default=1),
|
||||||
#Parameter('nosym', types=(str,), allowed_values=('.true.', '.false.'), fmt='s', default='.true.'),
|
#Parameter('nosym', types=(str,), allowed_values=('.true.', '.false.'), fmt='s', default='.true.'),
|
||||||
#Parameter('outersph', types=(str,), allowed_values=('.true.', '.false.'), fmt='s', default='.false.'),
|
#Parameter('outersph', types=(str,), allowed_values=('.true.', '.false.'), fmt='s', default='.false.'),
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
phagen_2.2_dp/msxas3.inc
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
c.. dimensions for the program
|
||||||
|
integer ua_
|
||||||
|
parameter ( nat_ = 100,
|
||||||
|
$ ua_ = 100,
|
||||||
|
$ neq_ = 48,
|
||||||
|
$ thrs = -0.001d0 )
|
||||||
|
C
|
||||||
|
C where :
|
||||||
|
c
|
||||||
|
c nat_ maximum number of atoms expected in any
|
||||||
|
c molecule of interest (including an outer
|
||||||
|
c sphere. an even number is suggested).
|
||||||
|
c
|
||||||
|
c ua_ maximum number of nda's (unique, or
|
||||||
|
c symmetry-distinct atoms) expected in any
|
||||||
|
c molecule (including an outer sphere).
|
||||||
|
c
|
||||||
|
c neq_ maximum number of atoms expected in
|
||||||
|
c any symmetry-equivalent set (including
|
||||||
|
c the nda of the set)
|
||||||
|
c
|
||||||
|
c thrs threshold within which atoms with the same
|
||||||
|
c atomic number are considered equivalent.
|
||||||
|
c If negative, all atoms are considered prototypical.
|
||||||
|
c
|
||||||
|
c Warning: This version of msxas3.inc with program
|
||||||
|
c phagen_scf_2.3_dp.f
|
||||||
|
c
|
||||||
|
c...................................................................
|
||||||
|
c dimensioning cont and cont_sub source program
|
||||||
|
c...................................................................
|
||||||
|
c
|
||||||
|
integer fl_, rdx_
|
||||||
|
c
|
||||||
|
parameter ( rdx_ = 1600,
|
||||||
|
$ lmax_ = 50,
|
||||||
|
$ npss = lmax_ + 2,
|
||||||
|
$ fl_ = 2*npss + 1,
|
||||||
|
$ nef_ = 10,
|
||||||
|
$ lexp_ = 10,
|
||||||
|
$ nep_ = 500 )
|
||||||
|
c
|
||||||
|
c where :
|
||||||
|
c
|
||||||
|
c rdx_ number of points of the linear-log mesh
|
||||||
|
c
|
||||||
|
c lmax_ the maximum l-value used on any sphere
|
||||||
|
c (suggested value 5 or less if running valence dos section of
|
||||||
|
c phagen, 60 when calculating atomic t_l)
|
||||||
|
c
|
||||||
|
c nef_ effective number of atoms used in the transition
|
||||||
|
c matrix elements of eels. Put = 1 if not doing a eels
|
||||||
|
c calculation (suggested value 12)
|
||||||
|
c
|
||||||
|
c lexp_ lmax in the expansion of coulomb interaction plus one! temporary
|
||||||
|
c
|
||||||
|
c nep_ the maximum number of energy points for which phase
|
||||||
|
c shifts will be computed.
|
||||||
|
c
|
||||||
|
c.......................................................................
|
||||||
|
c multiple scattering paths, xn programs dimensioning
|
||||||
|
c.......................................................................
|
||||||
|
c
|
||||||
|
c
|
||||||
|
parameter (natoms=nat_)
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c where:
|
||||||
|
c
|
||||||
|
c natoms = number of centers in the system
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c...................................................................
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
phagen_2.2_dp/msxasc3.inc
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
logical vinput, nosym, tdl
|
||||||
|
character*5 potype
|
||||||
|
character*1 optrsh
|
||||||
|
character*2 edge,charelx,edge1,edge2,potgen,relc
|
||||||
|
character*3 calctype,expmode,eikappr,enunit
|
||||||
|
character*4 coor
|
||||||
|
character*6 norman
|
||||||
|
character*7 ionzst
|
||||||
|
integer absorber,hole,l2h,hole1,hole2
|
||||||
|
dimension nz(natoms)
|
||||||
|
dimension c(natoms,3), rad(natoms), redf(natoms)
|
||||||
|
dimension neqat(natoms)
|
||||||
|
dimension nk0(0:lmax_)
|
||||||
|
c.....Warning: when reordering common/options/, reorder also the same common in
|
||||||
|
c.....subroutine inpot
|
||||||
|
common/options/rsh,ovlpfac,vc0,rs0,vinput,absorber,hole,mode,
|
||||||
|
& ionzst,potype,norman,coor,charelx,edge,potgen,lmax_mode,
|
||||||
|
& lmaxt,relc,eikappr,optrsh,nosym,tdl
|
||||||
|
common/atoms/c,rad,redf,charge_ion(100),nat,nz,neqat
|
||||||
|
c common/azimuth/lin,lmax
|
||||||
|
common/auger/calctype,expmode,edge1,edge2
|
||||||
|
common/auger1/lin1,lin2,hole1,hole2,l2h
|
||||||
|
common/funit/idat,iwr,iphas,iedl0,iwf
|
||||||
|
common/constant/antoau,ev,pi,pi4,pif,zero,thresh,nk0
|
||||||
|
c....................................................................
|
||||||
|
c rpot = if real potential is to be used
|
||||||
|
c.....................................................................
|
|
@ -0,0 +1,74 @@
|
||||||
|
c.. dimensions for the program
|
||||||
|
integer ua_
|
||||||
|
parameter ( nat_ = 100,
|
||||||
|
$ ua_ = 100,
|
||||||
|
$ neq_ = 48,
|
||||||
|
$ thrs = -0.001d0 )
|
||||||
|
C
|
||||||
|
C where :
|
||||||
|
c
|
||||||
|
c nat_ maximum number of atoms expected in any
|
||||||
|
c molecule of interest (including an outer
|
||||||
|
c sphere. an even number is suggested).
|
||||||
|
c
|
||||||
|
c ua_ maximum number of nda's (unique, or
|
||||||
|
c symmetry-distinct atoms) expected in any
|
||||||
|
c molecule (including an outer sphere).
|
||||||
|
c
|
||||||
|
c neq_ maximum number of atoms expected in
|
||||||
|
c any symmetry-equivalent set (including
|
||||||
|
c the nda of the set)
|
||||||
|
c
|
||||||
|
c thrs threshold within which atoms with the same
|
||||||
|
c atomic number are considered equivalent.
|
||||||
|
c If negative, all atoms are considered prototypical.
|
||||||
|
c
|
||||||
|
c Warning: This version of msxas3.inc with program
|
||||||
|
c phagen_scf_2.3_dp.f
|
||||||
|
c
|
||||||
|
c...................................................................
|
||||||
|
c dimensioning cont and cont_sub source program
|
||||||
|
c...................................................................
|
||||||
|
c
|
||||||
|
integer fl_, rdx_
|
||||||
|
c
|
||||||
|
parameter ( rdx_ = 1600,
|
||||||
|
$ lmax_ = 50,
|
||||||
|
$ npss = lmax_ + 2,
|
||||||
|
$ fl_ = 2*npss + 1,
|
||||||
|
$ nef_ = 10,
|
||||||
|
$ lexp_ = 10,
|
||||||
|
$ nep_ = 500 )
|
||||||
|
c
|
||||||
|
c where :
|
||||||
|
c
|
||||||
|
c rdx_ number of points of the linear-log mesh
|
||||||
|
c
|
||||||
|
c lmax_ the maximum l-value used on any sphere
|
||||||
|
c (suggested value 5 or less if running valence dos section of
|
||||||
|
c phagen, 60 when calculating atomic t_l)
|
||||||
|
c
|
||||||
|
c nef_ effective number of atoms used in the transition
|
||||||
|
c matrix elements of eels. Put = 1 if not doing a eels
|
||||||
|
c calculation (suggested value 12)
|
||||||
|
c
|
||||||
|
c lexp_ lmax in the expansion of coulomb interaction plus one! temporary
|
||||||
|
c
|
||||||
|
c nep_ the maximum number of energy points for which phase
|
||||||
|
c shifts will be computed.
|
||||||
|
c
|
||||||
|
c.......................................................................
|
||||||
|
c multiple scattering paths, xn programs dimensioning
|
||||||
|
c.......................................................................
|
||||||
|
c
|
||||||
|
c
|
||||||
|
parameter (natoms=nat_)
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c where:
|
||||||
|
c
|
||||||
|
c natoms = number of centers in the system
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c...................................................................
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
C
|
C
|
||||||
PROGRAM PHAGEN
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST Phagen becomes a subroutine in a library
|
||||||
|
CST PROGRAM PHAGEN
|
||||||
|
subroutine phagen()
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
C
|
C
|
||||||
C ....................................
|
C ....................................
|
||||||
C .. ..
|
C .. ..
|
||||||
|
@ -148,6 +152,14 @@ C
|
||||||
C... Starting to write in the check file IWR
|
C... Starting to write in the check file IWR
|
||||||
C
|
C
|
||||||
WRITE(IWR,1000)
|
WRITE(IWR,1000)
|
||||||
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST Create output folders and open input file
|
||||||
|
CALL SYSTEM('mkdir -p div/wf')
|
||||||
|
CALL SYSTEM('mkdir -p plot')
|
||||||
|
CALL SYSTEM('mkdir -p tl')
|
||||||
|
CALL SYSTEM('mkdir -p clus')
|
||||||
|
OPEN(idat, FILE='../input/input.ms', STATUS='old')
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
C
|
C
|
||||||
C... Opening the Fortran files
|
C... Opening the Fortran files
|
||||||
C
|
C
|
||||||
|
@ -301,6 +313,10 @@ C
|
||||||
CLOSE(46)
|
CLOSE(46)
|
||||||
CLOSE(IWF)
|
CLOSE(IWF)
|
||||||
CLOSE(IPHAS)
|
CLOSE(IPHAS)
|
||||||
|
CST ==> Phagen to python shared object modifications <==
|
||||||
|
CST explicitely close fort.55
|
||||||
|
CLOSE(55)
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
C
|
C
|
||||||
C Formats:
|
C Formats:
|
||||||
C
|
C
|
||||||
|
@ -329,6 +345,7 @@ C
|
||||||
complex*16 eelsme,p1,p2,p3,ramfsr1,ramfsr2,ramfsr3
|
complex*16 eelsme,p1,p2,p3,ramfsr1,ramfsr2,ramfsr3
|
||||||
complex*16 p3irreg,p2irreg
|
complex*16 p3irreg,p2irreg
|
||||||
C
|
C
|
||||||
|
C
|
||||||
C.....................................................................
|
C.....................................................................
|
||||||
C
|
C
|
||||||
common /continuum/ emin,emax,delta,cip,gamma,eftri,iexcpot,db
|
common /continuum/ emin,emax,delta,cip,gamma,eftri,iexcpot,db
|
||||||
|
@ -1089,7 +1106,11 @@ c
|
||||||
c.....Write out atomic coordinates in symmetry-program order:
|
c.....Write out atomic coordinates in symmetry-program order:
|
||||||
c each prototypical atom is followed by its sym-equivalent atoms
|
c each prototypical atom is followed by its sym-equivalent atoms
|
||||||
c
|
c
|
||||||
c open (10,file='clus/clus.out',status='unknown')
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST The clus.out file needs to be opened, so I uncommented the
|
||||||
|
CSR line below
|
||||||
|
open (10,file='clus/clus.out',status='unknown')
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
if( coor.eq.'au ') then
|
if( coor.eq.'au ') then
|
||||||
ipha=1
|
ipha=1
|
||||||
coef=1.d0
|
coef=1.d0
|
||||||
|
@ -1098,7 +1119,10 @@ c open (10,file='clus/clus.out',status='unknown')
|
||||||
ipha=2
|
ipha=2
|
||||||
coef=0.529177d0
|
coef=0.529177d0
|
||||||
endif
|
endif
|
||||||
c write(10,888) ipha
|
CST ==> Phagen to python shared object modifications <==
|
||||||
|
CST I uncommented the line below
|
||||||
|
write(10,888) ipha
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
888 format(30x,i1)
|
888 format(30x,i1)
|
||||||
write(7,10) (neqat(i),i=1,nat)
|
write(7,10) (neqat(i),i=1,nat)
|
||||||
10 format (/,16i5,//)
|
10 format (/,16i5,//)
|
||||||
|
@ -1116,14 +1140,21 @@ c
|
||||||
no = no + 1
|
no = no + 1
|
||||||
write(7,20) no,nsymbl(k),nzeq(k),xv(k)-x0,
|
write(7,20) no,nsymbl(k),nzeq(k),xv(k)-x0,
|
||||||
& yv(k)-y0,zv(k)-z0,neqat(k-1)
|
& yv(k)-y0,zv(k)-z0,neqat(k-1)
|
||||||
write(7,20) no,nsymbl(k),nzeq(k),(xv(k)-x0)*coef,
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST I changed the unit to 10
|
||||||
|
CST write(7,20) no,nsymbl(k),nzeq(k),(xv(k)-x0)*coef,
|
||||||
|
CST & (yv(k)-y0)*coef,(zv(k)-z0)*coef,neqat(k-1)
|
||||||
|
write(10,20) no,nsymbl(k),nzeq(k),(xv(k)-x0)*coef,
|
||||||
& (yv(k)-y0)*coef,(zv(k)-z0)*coef,neqat(k-1)
|
& (yv(k)-y0)*coef,(zv(k)-z0)*coef,neqat(k-1)
|
||||||
endif
|
endif
|
||||||
continue
|
continue
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
c
|
c
|
||||||
c close(10)
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST I uncommented the line below
|
||||||
|
close(10)
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
c
|
c
|
||||||
20 format (i5,6x,a4,i5,3f10.4,i5)
|
20 format (i5,6x,a4,i5,3f10.4,i5)
|
||||||
c
|
c
|
||||||
|
@ -1667,9 +1698,10 @@ c
|
||||||
common/transform/trans
|
common/transform/trans
|
||||||
logical shift_cc
|
logical shift_cc
|
||||||
c
|
c
|
||||||
c data zero,thrs/0.0d0,-0.001d0/ !if thrs is negative, all cluster atoms
|
CST ==> Phagen to python shared object modifications
|
||||||
c are considered prototypical
|
CST data zero,thrs/0.0d0,0.001d0/ !if thrs is negative, all cluster atoms are considered prototypical
|
||||||
data zero/0.0d0/
|
data zero/0.0d0/
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
c
|
c
|
||||||
data jtape/21/
|
data jtape/21/
|
||||||
data lunout/7/
|
data lunout/7/
|
||||||
|
@ -2137,7 +2169,10 @@ c dgc contains large component radial functions
|
||||||
c common /deux/ dvn(251), dvf(251), d(251), dc(251), dgc(251,30)
|
c common /deux/ dvn(251), dvf(251), d(251), dc(251), dgc(251,30)
|
||||||
c passc and rho0 contain 4*pi*r^2*rho(r)
|
c passc and rho0 contain 4*pi*r^2*rho(r)
|
||||||
c
|
c
|
||||||
dimension r(mp),r_hs(440),rho0_hs(440)
|
CST ==> Phagen to python shared object modifications
|
||||||
|
CST dimension r(mp),r_hs(440),rho0_hs(440)
|
||||||
|
dimension r(mp),r_hs(*),rho0_hs(*)
|
||||||
|
CST Phagen to python shared object modifications <==
|
||||||
C
|
C
|
||||||
dimension dum1(mp), dum2(mp)
|
dimension dum1(mp), dum2(mp)
|
||||||
dimension vcoul(mp), rho0(mp), enp(ms)
|
dimension vcoul(mp), rho0(mp), enp(ms)
|
||||||
|
@ -3325,6 +3360,11 @@ C
|
||||||
5004 FORMAT(8(I5,1X,F7.2))
|
5004 FORMAT(8(I5,1X,F7.2))
|
||||||
WRITE(6,5003)
|
WRITE(6,5003)
|
||||||
WRITE(6,*)
|
WRITE(6,*)
|
||||||
|
ELSE
|
||||||
|
WRITE(6,5003)
|
||||||
|
WRITE(6,*) ' External radii read in as: '
|
||||||
|
WRITE(6,*) ' i rs(i) i=1,natoms '
|
||||||
|
WRITE(6,5004) (I, RS(I), I=1,NATOMSM)
|
||||||
END IF
|
END IF
|
||||||
IF(NWR1.NE.' PCH') GO TO 999
|
IF(NWR1.NE.' PCH') GO TO 999
|
||||||
WRITE(7,*)
|
WRITE(7,*)
|
||||||
|
@ -7548,7 +7588,14 @@ c.....this subroutine calculates the radial matrix elements
|
||||||
c.....necessary for eels cross-section
|
c.....necessary for eels cross-section
|
||||||
c.....using a linear-log mesh
|
c.....using a linear-log mesh
|
||||||
c
|
c
|
||||||
common/mtxele/ nstart,nlast
|
CST ==> Phagen to Python shared object modifications
|
||||||
|
CST I replaced the line below
|
||||||
|
CST common/mtxele/ nstart,nlast
|
||||||
|
common/mtxele/ nstart,nlast,dmx(2),dmx1(2),qmx(3),qmx1(3),
|
||||||
|
$ dxdir,dxexc,nfis,nfis1,nfis2
|
||||||
|
real*8 nfis,nfis2,nfis1
|
||||||
|
complex*16 dmx,dmx1,qmx,qmx1,dxdir,dxexc
|
||||||
|
CST Phagen to Python shared object modifications <==
|
||||||
c
|
c
|
||||||
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
||||||
& qmxx(3),qmxx1(3),qmxxa(3),qmxxa1(3),
|
& qmxx(3),qmxx1(3),qmxxa(3),qmxxa1(3),
|
||||||
|
@ -16871,7 +16918,14 @@ c.....(i=1,2) for lfin=l0i-1 (i=1) and lfin=l0i+1 (i=2) both for
|
||||||
c.....the regular (dmxx) and irregular solution (dmxx1) using a
|
c.....the regular (dmxx) and irregular solution (dmxx1) using a
|
||||||
c.....linear-log mesh
|
c.....linear-log mesh
|
||||||
c
|
c
|
||||||
common/mtxele/ nstart,nlast
|
CST ==> Phagen to Python shared object modifications
|
||||||
|
CST I replaced the line below
|
||||||
|
CST common/mtxele/ nstart,nlast
|
||||||
|
common/mtxele/ nstart,nlast,dmx(2),dmx1(2),qmx(3),qmx1(3),
|
||||||
|
$ dxdir,dxexc,nfis,nfis1,nfis2
|
||||||
|
real*8 nfis,nfis2,nfis1
|
||||||
|
complex*16 dmx,dmx1,qmx,qmx1,dxdir,dxexc
|
||||||
|
CST Phagen to Python shared object modifications <==
|
||||||
c
|
c
|
||||||
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
||||||
& qmxx(3),qmxx1(3),qmxxa(3),qmxxa1(3),
|
& qmxx(3),qmxx1(3),qmxxa(3),qmxxa1(3),
|
||||||
|
@ -20060,7 +20114,11 @@ C MARK 12 RELEASE. NAG COPYRIGHT 1986.
|
||||||
C MARK 15 REVISED. IER-915 (APR 1991).
|
C MARK 15 REVISED. IER-915 (APR 1991).
|
||||||
C .. Scalar Arguments ..
|
C .. Scalar Arguments ..
|
||||||
INTEGER INFO
|
INTEGER INFO
|
||||||
CHARACTER*13 SRNAME
|
CST ==> Phagen to Python shared object modifications
|
||||||
|
CST I changed the dimension to automatic
|
||||||
|
CST CHARACTER*13 SRNAME
|
||||||
|
CHARACTER(*) SRNAME
|
||||||
|
CST Phagen to Python shared object modifications <==
|
||||||
C ..
|
C ..
|
||||||
C
|
C
|
||||||
C Purpose
|
C Purpose
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
phagen_2.2_dp/phagen_scf_2.2_dp.f
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue