subroutine init_guga_data_procPtrs() ! this subroutine initializes the procedure pointer arrays needed for ! the matrix element calculation ! -------- single excitation procedure pointers:--------------------- ! and point them to the corresponding functions -> for now write down all ! differing functions explicetly, as i can't think of somw fancy way to ! include that better ! store only procedure pointer to differing functions and convert to ! indices in such a way that correct ones get picked! ! also store weight-generator matrix element, as it may be of some use singleMatElesGUGA(1)%ptr => funZero singleMatElesGUGA(2)%ptr => funPlus1 singleMatElesGUGA(3)%ptr => funMinus1 singleMatElesGUGA(4)%ptr => funTwo singleMatElesGUGA(5)%ptr => funA_0_1 singleMatElesGUGA(6)%ptr => funA_1_0 singleMatElesGUGA(7)%ptr => funA_2_1 singleMatElesGUGA(8)%ptr => funA_1_2 singleMatElesGUGA(9)%ptr => funC_0 singleMatElesGUGA(10)%ptr => funC_1 singleMatElesGUGA(11)%ptr => funC_2 singleMatElesGUGA(12)%ptr => funOverB_0 singleMatElesGUGA(13)%ptr => funOverB_1 singleMatElesGUGA(14)%ptr => minFunOverB_1 singleMatElesGUGA(15)%ptr => minFunOverB_2 ! ----------- double excitation procedure pointer -------------------- ! ------ double excitation x0 matrix element part -------------------- ! and fill it up with all unique values needed for x=1 matrix elements doubleMatEleX1GUGA(1)%ptr => funZero doubleMatEleX1GUGA(2)%ptr => funPlus1 ! doubleMatEleX1GUGA(3)%ptr => funMinus1 doubleMatEleX1GUGA(3)%ptr => funA_3_2 doubleMatEleX1GUGA(4)%ptr => minFunA_3_2 doubleMatEleX1GUGA(5)%ptr => funA_3_2overR2 doubleMatEleX1GUGA(6)%ptr => minFunA_3_2overR2 ! doubleMatEleX1GUGA(8)%ptr => funA_0_2overR2 doubleMatEleX1GUGA(7)%ptr => minFunA_0_2_overR2 doubleMatEleX1GUGA(8)%ptr => funA_m1_0 doubleMatEleX1GUGA(9)%ptr => minFunA_m1_0 doubleMatEleX1GUGA(10)%ptr => funA_m1_0_overR2 doubleMatEleX1GUGA(11)%ptr => minFunA_m1_0_overR2 doubleMatEleX1GUGA(12)%ptr => funA_2_0_overR2 doubleMatEleX1GUGA(13)%ptr => minFunA_2_0_overR2 doubleMatEleX1GUGA(14)%ptr => funA_2_1 doubleMatEleX1GUGA(15)%ptr => minFunA_2_1 doubleMatEleX1GUGA(16)%ptr => funA_2_1_overR2 doubleMatEleX1GUGA(17)%ptr => minFunA_2_1_overR2 doubleMatEleX1GUGA(18)%ptr => funA_0_1 doubleMatEleX1GUGA(19)%ptr => minFunA_0_1 doubleMatEleX1GUGA(20)%ptr => funA_0_1_overR2 doubleMatEleX1GUGA(21)%ptr => minFunA_0_1_overR2 doubleMatEleX1GUGA(22)%ptr => funA_1_2 doubleMatEleX1GUGA(23)%ptr => minFunA_1_2 doubleMatEleX1GUGA(24)%ptr => funA_1_0 doubleMatEleX1GUGA(25)%ptr => minFunA_1_0 doubleMatEleX1GUGA(26)%ptr => funA_3_1_overR2 doubleMatEleX1GUGA(27)%ptr => minFunA_3_1_overR2 ! doubleMatEleX1GUGA(30)%ptr => funA_m1_1_overR2 doubleMatEleX1GUGA(28)%ptr => minFunA_m1_1_overR2 doubleMatEleX1GUGA(29)%ptr => funB_2_3 doubleMatEleX1GUGA(30)%ptr => funD_0 doubleMatEleX1GUGA(31)%ptr => minFunD_0 doubleMatEleX1GUGA(32)%ptr => funB_1_2 doubleMatEleX1GUGA(33)%ptr => funB_0_1 doubleMatEleX1GUGA(34)%ptr => funD_1 doubleMatEleX1GUGA(35)%ptr => minFunD_1 doubleMatEleX1GUGA(36)%ptr => funD_m1 doubleMatEleX1GUGA(37)%ptr => funB_m1_0 doubleMatEleX1GUGA(38)%ptr => funC_2 doubleMatEleX1GUGA(39)%ptr => minFunC_2 doubleMatEleX1GUGA(40)%ptr => funC_0 doubleMatEleX1GUGA(41)%ptr => minFunC_0 doubleMatEleX1GUGA(42)%ptr => minFunOverB_2_R2 doubleMatEleX1GUGA(43)%ptr => minFunB_0_2 doubleMatEleX1GUGA(44)%ptr => minFunOverB_0_R2 doubleMatEleX1GUGA(45)%ptr => funD_2 ! -------------- double excitation x0 matrix element part ------------ doubleMatEleX0GUGA(1)%ptr => funZero doubleMatEleX0GUGA(2)%ptr => funPlus1 doubleMatEleX0GUGA(3)%ptr => funMinus1 doubleMatEleX0GUGA(4)%ptr => funSqrt2 doubleMatEleX0GUGA(5)%ptr => minFunSqrt2 doubleMatEleX0GUGA(6)%ptr => funOverRoot2 doubleMatEleX0GUGA(7)%ptr => minFunOverR2 doubleMatEleX0GUGA(8)%ptr => funA_0_1 doubleMatEleX0GUGA(9)%ptr => funA_1_0 doubleMatEleX0GUGA(10)%ptr => funA_1_2 doubleMatEleX0GUGA(11)%ptr => funA_2_1 doubleMatEleX0GUGA(12)%ptr => funA_1_2overR2 doubleMatEleX0GUGA(13)%ptr => funA_1_0_overR2 doubleMatEleX0GUGA(14)%ptr => funA_0_1_overR2 doubleMatEleX0GUGA(15)%ptr => minFunA_0_1_overR2 doubleMatEleX0GUGA(16)%ptr => funA_2_1_overR2 doubleMatEleX0GUGA(17)%ptr => minFunA_2_1_overR2 ! ------ mixed generator full-stop matrix elements-------------------- mixedGenFullStopMatEle(1)%ptr => fullStop_00 mixedGenFullStopMatEle(2)%ptr => fullStop_11 mixedGenFullStopMatEle(3)%ptr => fullStop_22 mixedGenFullStopMatEle(4)%ptr => fullStop_33 mixedGenFullStopMatEle(5)%ptr => fullStop_12 ! --------- double contributions to single excitaitons---------------- doubleContribution(1)%ptr => funZero doubleContribution(2)%ptr => funPlus1 doubleContribution(3)%ptr => funMinus1 doubleContribution(4)%ptr => minFunBplus2 doubleContribution(5)%ptr => funBplus0 doubleContribution(6)%ptr => funBplus1 doubleContribution(7)%ptr => minFunBplus1 end subroutine init_guga_data_procPtrs