===================================================================== revPBE ===================================================================== To construct the revPBE functional you exchange the parameter declation in subroutine EXCHPBE: parameter(um=0.2195149727645171d0,uk=0.8040d0,ul=um/uk) with parameter(um=0.2195149727645171d0,uk=1.2450d0,ul=um/uk) ===================================================================== RPBE ===================================================================== To construct the RPBE functional you keep the parameter declaration of uk=0.8040d0 and substitute the lines in subroutine EXCHPBE: P0=1.d0+ul*S2 FxPBE = 1d0+uk-uk/P0 EX = exunif*FxPBE c---------------------------------------------------------------------- c---------------------------------------------------------------------- C ENERGY DONE. NOW THE POTENTIAL: c find first derivatives of Fx w.r.t s. c Fs=(1/s)*d FxPBE/ ds c Fss=d Fs/ds Fs=2.d0*um/(P0*P0) Fss=-4.d0*ul*S*Fs/P0 with c This is the RPBE functional P0=exp(-ul*S2) FxPBE = 1d0+uk*(1.0d0-P0) EX = exunif*FxPBE c---------------------------------------------------------------------- c---------------------------------------------------------------------- C ENERGY DONE. NOW THE POTENTIAL: c find first derivatives of Fx w.r.t s. c Fs=(1/s)*d FxPBE/ ds c Fss=d Fs/ds Fs=2.d0*um*P0 Fss=-2.d0*ul*S*Fs