Add phagen version 2.3 support.

This commit is contained in:
Sylvain Tricot 2025-04-29 11:49:20 +02:00
parent 9167d613d6
commit e356fbfbf4
6 changed files with 24114 additions and 18 deletions

View File

@ -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.'),

View File

@ -1 +0,0 @@
phagen_2.2_dp/msxas3.inc

View File

@ -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...................................................................

View File

@ -1 +0,0 @@
phagen_2.2_dp/msxasc3.inc

View File

@ -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.....................................................................

View File

@ -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...................................................................

View File

@ -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

View File

@ -1 +0,0 @@
phagen_2.2_dp/phagen_scf_2.2_dp.f

File diff suppressed because it is too large Load Diff