In Fortran we can use INTENT(IN)
, INTENT(OUT)
, INTENT(INOUT)
to let the
program know which values should or should not be changed.
SUBROUTINE coulomb_integral(np,lp,n,l,coulomb)
USE effective_interaction_declar
USE energy_variables
USE wave_functions
IMPLICIT NONE
INTEGER, INTENT(IN) :: n, l, np, lp
INTEGER :: i
REAL(KIND=8), INTENT(INOUT) :: coulomb
REAL(KIND=8) :: z_rel, oscl_r, sum_coulomb
...
This hinders unwanted changes and increases readability.