...

source: xc_derivatives.FLoading...

...

...

get the information about the given functional

...

TYPE(section_vals_type), |
POINTER |
:: | functionals | a section containing the functional combination to be applied | |

LOGICAL, |
INTENT(in) |
:: | lsd | if a local spin desnity is performed | |

TYPE(xc_rho_set_type), |
POINTER |
:: | rho_set | a rho set where all the arguments needed by this functional should be valid (which argument are needed can be found with xc_functional_get_info) | |

TYPE(xc_derivative_set_type), |
POINTER |
:: | deriv_set | place where to store the functional derivatives (they are added to the derivatives) | |

INTEGER, |
INTENT(in) |
:: | deriv_order | degree of the derivative that should be evalated, if positive all the derivatives up to the given degree are evaluated, if negative only the given degree is requested (but to simplify the code all the derivatives might be calculated, you should ignore them when adding derivatives of various functionals they might contain the derivative of just one functional) |

...

Return Value :: TYPE(xc_rho_cflags_type)

TYPE(section_vals_type), |
POINTER |
:: | functionals | a section containing the functional combination to be applied | |

LOGICAL, |
INTENT(in) |
:: | lsd | if a local spin desnity is performed | |

LOGICAL, |
INTENT(in), |
OPTIONAL |
:: | add_basic_components | makes sure that if some gradient combination is needed also the gradient components are requested, and if lsd is true rho_spin is requested. Defaults to false. |

get the information about the given functional

TYPE(section_vals_type), |
POINTER |
:: | functional | the functional you want info about | |

LOGICAL, |
INTENT(in) |
:: | lsd | if you are using lsd or lda | |

CHARACTER(*), |
INTENT(out), |
OPTIONAL |
:: | reference | the reference to the acticle where the functional is explained |

CHARACTER(*), |
INTENT(out), |
OPTIONAL |
:: | shortform | the short definition of the functional |

TYPE(xc_rho_cflags_type), |
INTENT(inout), |
OPTIONAL |
:: | needs | the flags corresponding to the inputs needed by this functional are set to true (the flags not needed aren't touched) |

INTEGER, |
INTENT(out), |
OPTIONAL |
:: | max_deriv | the maximal derivative available |