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/>.
|
||||
#
|
||||
# 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>
|
||||
|
||||
|
||||
|
@ -362,8 +362,8 @@ class PhagenParameters(BaseParameters):
|
|||
Parameter('l2h', types=(int,), fmt='d', default=4),
|
||||
|
||||
Parameter('ionicity', types=dict, default={}),
|
||||
Parameter('noproto', allowed_values=('.true.', '.false.'),
|
||||
types=(str,), fmt='>7s', default='.true.'),
|
||||
#Parameter('noproto', allowed_values=('.true.', '.false.'),
|
||||
# types=(str,), fmt='>7s', default='.true.'),
|
||||
#Parameter('absorber', types=(int,), limits=(1, None), fmt='d', default=1),
|
||||
#Parameter('nosym', types=(str,), allowed_values=('.true.', '.false.'), fmt='s', default='.true.'),
|
||||
#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
|
||||
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 .. ..
|
||||
|
@ -148,6 +152,14 @@ C
|
|||
C... Starting to write in the check file IWR
|
||||
C
|
||||
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... Opening the Fortran files
|
||||
C
|
||||
|
@ -301,6 +313,10 @@ C
|
|||
CLOSE(46)
|
||||
CLOSE(IWF)
|
||||
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 Formats:
|
||||
C
|
||||
|
@ -329,6 +345,7 @@ C
|
|||
complex*16 eelsme,p1,p2,p3,ramfsr1,ramfsr2,ramfsr3
|
||||
complex*16 p3irreg,p2irreg
|
||||
C
|
||||
C
|
||||
C.....................................................................
|
||||
C
|
||||
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 each prototypical atom is followed by its sym-equivalent atoms
|
||||
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
|
||||
ipha=1
|
||||
coef=1.d0
|
||||
|
@ -1098,7 +1119,10 @@ c open (10,file='clus/clus.out',status='unknown')
|
|||
ipha=2
|
||||
coef=0.529177d0
|
||||
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)
|
||||
write(7,10) (neqat(i),i=1,nat)
|
||||
10 format (/,16i5,//)
|
||||
|
@ -1116,14 +1140,21 @@ c
|
|||
no = no + 1
|
||||
write(7,20) no,nsymbl(k),nzeq(k),xv(k)-x0,
|
||||
& 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)
|
||||
endif
|
||||
continue
|
||||
enddo
|
||||
enddo
|
||||
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
|
||||
20 format (i5,6x,a4,i5,3f10.4,i5)
|
||||
c
|
||||
|
@ -1667,9 +1698,10 @@ c
|
|||
common/transform/trans
|
||||
logical shift_cc
|
||||
c
|
||||
c data zero,thrs/0.0d0,-0.001d0/ !if thrs is negative, all cluster atoms
|
||||
c are considered prototypical
|
||||
data zero/0.0d0/
|
||||
CST ==> Phagen to python shared object modifications
|
||||
CST data zero,thrs/0.0d0,0.001d0/ !if thrs is negative, all cluster atoms are considered prototypical
|
||||
data zero/0.0d0/
|
||||
CST Phagen to python shared object modifications <==
|
||||
c
|
||||
data jtape/21/
|
||||
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 passc and rho0 contain 4*pi*r^2*rho(r)
|
||||
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
|
||||
dimension dum1(mp), dum2(mp)
|
||||
dimension vcoul(mp), rho0(mp), enp(ms)
|
||||
|
@ -3325,6 +3360,11 @@ C
|
|||
5004 FORMAT(8(I5,1X,F7.2))
|
||||
WRITE(6,5003)
|
||||
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
|
||||
IF(NWR1.NE.' PCH') GO TO 999
|
||||
WRITE(7,*)
|
||||
|
@ -7548,7 +7588,14 @@ c.....this subroutine calculates the radial matrix elements
|
|||
c.....necessary for eels cross-section
|
||||
c.....using a linear-log mesh
|
||||
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
|
||||
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
||||
& 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.....linear-log mesh
|
||||
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
|
||||
common/mtxelex/ dmxx(2),dmxx1(2),dmxxa(2),dmxxa1(2),
|
||||
& 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 .. Scalar Arguments ..
|
||||
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 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