====== F2003 : suppress unneeded pointers in datastructures ====== The document listing the F2003 features allowed (and recommended) in ABINITv8 can be found in a [[developers:fortran_2003|dedicated page]]. The present page describe the strategy to clean ABINIT with respect to the first recommendation of this document, namely, the replacement of "Pointer" by "Allocatable" in datastructures. Several developers, who knows quite well ABINIT, are asked to examine the definitions of structured datatypes each of which originate from a list of files. Their task is : - In each file attributed to them, detect definitions of structured datatypes in which some components have a "Pointer" attribute ; - For each such structured datatype, on the basis of the consideration of all ABINIT sources, decide whether this "Pointer" attribute can be changed to a "Allocatable" attribute ; - In such case, make the replacement, and then, also clean correspondingly the ABINIT sources, e.g. (A) possibly suppress the nullify, or the small routines that were used to contain the _nullify statements ; (B) replace "if(associated(XXX))" by "if(allocated(XXX))" ; (C) suppress the initialization to "null()"... ^ Name of files containing datatype definitions ^ Developer in charge ^ | 15_gpu_toolbox/m_initcuda.F90 | Marc T. | | 28_numeric_noabirule/m_numeric_tools.F90 | Matteo G. | | 28_numeric_noabirule/m_slk.F90 | Matteo G. | | 41_geometry/m_ab7_symmetry.F90 | Xavier G. | | 44_abitypes_defs/defs_abitypes.F90 | François J. | | 44_abitypes_defs/m_results_respfn.F90 | Xavier G. | | 45_geomoptim/m_abiimages.F90 | Xavier G. | | 45_geomoptim/m_mep.F90 | Marc T. | | 45_geomoptim/m_pimd.F90 | Marc T. | | 49_gw_toolbox_oop/m_melemts.F90 | Matteo G. | | 54_abiutil/m_results_out.F90 | Xavier G. | | 56_io_mpi/m_header.F90 | Matteo G. | | 56_mixing/m_ab7_mixing.F90 | Xavier G. | | 57_iopsp_parser/m_xml_pseudo_types.F90 | François J. | | 62_iowfdenpot/m_wfk.F90 | Matteo G. | | 62_occeig/m_ebands.F90 | Matteo G. | | 66_fock/m_fock.F90 | Marc T. | | 66_paw/m_paw_dmft.F90 | Bernard A. and/or Jordan B. | | 68_dmft/*.F90 | Bernard A. and/or Jordan B. | | 68_recursion/defs_rectypes.F90 | Xavier G. | | 70_gw/m_ppmodel.F90 | Matteo G. | | 70_gw/m_screen.F90 | Matteo G. | | 71_bse/m_hexc.F90 | Matteo G. | | 71_bse/m_interp.F90 | Matteo G. |