diff --git a/GX-PAW/common/AUTHORS b/GX-PAW/common/AUTHORS
new file mode 100644
index 00000000..d761957c
--- /dev/null
+++ b/GX-PAW/common/AUTHORS
@@ -0,0 +1,5 @@
+Authors of ABINIT
+=================
+
+See ~abinit/doc/developers/contributors.txt for details.
+
diff --git a/GX-PAW/common/COPYING b/GX-PAW/common/COPYING
new file mode 100644
index 00000000..9edb6a1c
--- /dev/null
+++ b/GX-PAW/common/COPYING
@@ -0,0 +1,684 @@
+Most of the source code and documents available in the ABINIT package
+are available under the GNU GENERAL PUBLIC LICENSE, Version 3, reproduced below.
+A small number of routines (e.g. those related to the NOMAD CoE project - Low-scaling GW and RPA -)
+are made available under a more liberal licence, APACHE v2.0, compatible with GPL.
+For the text of the APACHE v2.0 licence, see https://www.apache.org/licenses/LICENSE-2.0 .
+When interfacing routines from ABINIT package and non-GPL code, the developer should check
+compatibility of licencing schemes.
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
+
diff --git a/GX-PAW/common/ChangeLog b/GX-PAW/common/ChangeLog
new file mode 100644
index 00000000..04527d3a
--- /dev/null
+++ b/GX-PAW/common/ChangeLog
@@ -0,0 +1 @@
+There is currently no policy for this file. Please do not edit.
diff --git a/GX-PAW/common/Makefile b/GX-PAW/common/Makefile
new file mode 100644
index 00000000..84a6e3e8
--- /dev/null
+++ b/GX-PAW/common/Makefile
@@ -0,0 +1,1490 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-inter on 2024/03/16 21:07:39 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-inter script or its config file instead.
+#
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir distdir-am
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog NEWS \
+ README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+SUBDIRS = src
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic cscopelist-am ctags ctags-am \
+ distclean distclean-generic distclean-tags distdir dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/Makefile.am b/GX-PAW/common/Makefile.am
new file mode 100644
index 00000000..590cf346
--- /dev/null
+++ b/GX-PAW/common/Makefile.am
@@ -0,0 +1,12 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-inter on 2024/03/16 21:07:39 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-inter script or its config file instead.
+#
+
+SUBDIRS = src
diff --git a/GX-PAW/common/Makefile.in b/GX-PAW/common/Makefile.in
new file mode 100644
index 00000000..312389c9
--- /dev/null
+++ b/GX-PAW/common/Makefile.in
@@ -0,0 +1,1490 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-inter on 2024/03/16 21:07:39 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-inter script or its config file instead.
+#
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir distdir-am
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog NEWS \
+ README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+SUBDIRS = src
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic cscopelist-am ctags ctags-am \
+ distclean distclean-generic distclean-tags distdir dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/NEWS b/GX-PAW/common/NEWS
new file mode 100644
index 00000000..eac67be2
--- /dev/null
+++ b/GX-PAW/common/NEWS
@@ -0,0 +1,291 @@
+Latest news
+===========
+
+User-visible changes
+--------------------
+
+### Main binaries of Abinit ###
+
+When building Abinit 6, the greatest difference with respect to Abinit 5
+is that only one flavour of the "abinit" main binary will be built at
+once. The former "abinis" and "abinip" flavours have been replaced by
+wrapper scripts which will work only after a "make install" has been
+performed. These wrappers have been made available to facilitate the
+transition and will be removed in version 6.1 or 6.2.
+
+More precisely, this means that all occurences of "abinis" and "abinip"
+in calculation scripts will have to be replaced by calls to "abinit", or
+by symbolic links. If you wish however to continue using concurrently a
+serial and a parallel version of Abinit, you'll have to build them
+separately. In order to easily distinguish them at install-time, you may
+use the "--with-program-suffix" option of the configure script.
+
+This change was necessary to be able to run the whole test suite on any
+flavour of Abinit (e.g. with MPI, ScaLAPACK, or FFTW support), and to
+make the management of the Fortran modules possible. The main results
+are an increased modularity of the source code, an improved robustness,
+and an earlier detection of bugs and design flaws.
+
+
+
+### Parallel builds ###
+
+It is now possible to build Abinit in parallel - with "make -j" -
+using an arbitrary value of "". Tests have been performed up to 16
+processors, resulting in the very good speed-up factor of 15.1. This is
+particularly important on architectures where the build is slow, e.g.
+Itaniums with the Intel Fortran compiler.
+
+Parallel builds will nevertheless work for the core source of Abinit
+only. Convenience targets are thus provided to work around the
+limitations of the plugins: "multi" and "mj4". It is possible to tune
+the number of processors for "multi" by specifying e.g.:
+
+ make multi multi_nprocs=16
+
+on the command-line. For mj4, which is mainly used for automatic builds,
+the number of processors is fixed to 4.
+
+
+
+### Test suite ###
+
+Several improvements have been done to the test suite, in order to
+better support the various situations it can be used within. In
+particular, "make check" now properly succeeds when all tests pass.
+
+
+
+### Install ###
+
+The install prefix of Abinit is now fully left to the user's choice. The
+build system will not try anymore to add further prefixes, such as
+version numbers. This change greatly improves the flexibility of the
+install procedure and was long-awaited by packagers.
+
+
+
+### MPI ###
+
+MPI support in Abinit has been thoroughly cleaned-up, plus made more
+robust and more consistent. The build system is also much stricter about
+the way options can be specified.
+
+At configure-time, the build system now behaves the following way:
+
+ * if no option is given, the build system will take the decision
+ whether to enable MPI depending on the build environment; the
+ parallel code will be built if MPI-capable C and Fortran compilers
+ are found, as well as a working MPI runner;
+
+ * if --enable-mpi is specified, the build system will activate the
+ build of the parallel code, regardless of what has been detected;
+ it is supposed that the users know what they are doing (ahem!);
+
+ * if --with-mpi-prefix is used, the build system will set the build
+ parameters according to what if finds in the specified directory;
+ in this case, manually setting the compilers or the MPI runner is
+ strictly forbidden.
+
+
+
+### XLF ###
+
+XLF is not wrapped anymore by the build system, which allows for a
+finer-grained control of the build but may also cause some new problems.
+
+Please consult ~abinit/README.xlf for troubleshooting, and do not
+hesitate to enhance this file with your successful tricks by sending
+them to Yann Pouillon .
+
+
+
+### Config files ###
+
+The build system is now much less tolerant about obsolete options to the
+configure script. Outdated config files will thus likely cause errors.
+
+Build examples (found in ~abinit/doc/build/config-examples), as well as
+their template (~abinit/doc/build/config-template.ac9), have been
+substantially modified, to match the changes in the build system. All
+personal config files (usually found in ~/.abinit/build/) should be
+updated using this material as reference.
+
+
+
+Developer-visible changes
+-------------------------
+
+### Fortran modules ###
+
+All ".mod" files generated during the build of Abinit are now stored in
+a separate directory, src/mods/. This strategy addresses several tricky
+issues for the build system. In particular:
+
+ * it is now much simpler to access them, since there is only one
+ directory to include;
+
+ * it is much easier to clean them all, and check that they have
+ actually been removed.
+
+This option has however not been activated for the plugins, since their
+respective build systems do not support this kind of trick.
+
+
+
+### Hand-written include files ###
+
+Hand-written include files, i.e. C headers at present, should be stored
+in src/incs/ to be properly recognized by the build system.
+
+The "DBG_ASSERT" and "ABI_ASSERT" macros of abi_common.h have been
+deactivated because they were not portable enough. They should be fixed
+and improved.
+
+
+
+### Installable libraries ###
+
+The support for installable libraries, aka "exports", is still under
+heavy development. Such libraries are built in src/libs/ when the
+"--enable-exports" option of configure is used.
+
+For the moment, this feature is used to export Python bindings to the
+Abinit parser, for use in other codes usch as V_Sim. Only GCC is
+currently supported, and the full activation of this feature will
+require the implementation of Libtool support into the build system.
+
+Please contact Yann Pouillon if you are
+interested by this feature.
+
+
+
+### Compile flags ###
+
+The management of compile flags has undergone several improvements. They
+include:
+
+ * the complete separation of optimization and debug flags;
+
+ * the enhancement of debug flags (many more warnings);
+
+ * the creation of a specific flag category for tricks;
+
+ * the ability to specify additional flags via environment variables,
+ i.e. "*FLAGS_EXTRA".
+
+The extra flags provide a significant additional flexibility, since they
+do not short-circuit the build system auto-detection process, contrary
+to the use of bare flags. For instance:
+
+ FCFLAGS_EXTRA="-dummy_option"
+
+will be _appended_ to the compile flags set by the build system, while:
+
+ FCFLAGS="-dummy_option"
+
+will _replace_ them.
+
+This way of doing is also meant to minimize the interferences between
+the various steps of the configuration.
+
+
+
+### Python ###
+
+The proper detection of the Python environment is still under
+development but has improved substanitially. More efforts will be
+devoted to this part in the near future, and feature requests are now
+welcome. Please send them to Yann Pouillon .
+
+
+
+### MPI ###
+
+MPI preprocessing options are not handled anymore through external
+CPPFLAGS, but via the "config.h" include file. As a consequence, they
+have been renamed from "MPI_*" to "HAVE_MPI_*". This is to keep in mind
+when developing new parallel code.
+
+The confusing "--enable-mpi-io-buggy" option of configure has been
+replaced by "--enable-mpi-io-test", for developers who want to check and
+tune new MPI I/O related developments. It defines the HAVE_MPI_IO_TEST
+macro, which should encapsulate such experimental code.
+
+
+
+Maintainer-visible changes
+--------------------------
+
+### M4 macros ###
+
+M4 macros have been refactored and strict naming conventions have been
+adopted. See ~abinit/config/m4/ for details.
+
+
+
+### Makefiles ###
+
+The "defsinterfaces" target in config/makefiles/top.am has now
+disappeared. It was previously required by the simultaneous build of the
+serial and parallel libraries and has become completely useless.
+
+
+
+### Information for packagers ###
+
+The ~abinit/PACKAGING file contains essential information for packagers.
+All maintainers of Abinit should feel free to improve and enhance this
+file.
+
+
+
+### File naming conventions ###
+
+Legacies remaining from the prior use of TLA (an ancestor of the Bazaar
+version control system) have all been removed. All incriminated files
+have been renamed from ",,*" to "tmp-*". This is particularly visible in
+the test suite.
+
+This change was necessary because the Autotools use commas as separators
+for sed substitutions, which was resulting in spurious crashes of the
+configure script under some circumstances.
+
+
+
+### Test suite ###
+
+The timeout utility used for nightly builds has been moved from
+src/nightly/ to tests/Nightly/.
+
+The fldiff has been hacked to ignore extra output when MPI support is
+activated. The absence of ripple effects should be checked carefully.
+
+
+
+### MPI ###
+
+Several binaries have had MPI support added, so that they can be tested
+when the parallel code is built: anaddb, cut3d, lwf, mrgddb, mrgscr.
+Though this should not affect developers, these changes should
+only be considered temporary and a better solution provided.
+
+
+
+### Checker scripts ###
+
+The preprocessing option checker has been rewritten in Python and
+re-targetted at finding forbidden options. It may be updated and
+enhanced at will (see util/source/check-cpp-options.py).
+
+This script should be used on a more systematic basis, together with the
+conflict marker checker (util/source/check-conflict-markers.py).
+
+
+
+Other news
+----------
+
+More news can be found in the [release-notes directory](https://docs.abinit.org/about/release-notes),
+more specifically in the latest of the release_notes_v*.*. files.
+
diff --git a/GX-PAW/common/README b/GX-PAW/common/README
new file mode 100644
index 00000000..871e3820
--- /dev/null
+++ b/GX-PAW/common/README
@@ -0,0 +1,32 @@
+README for ABINIT
+=================
+
+ABINIT is an atomic-scale simulation software suite.
+
+Most of the relevant information can be found on the ABINIT [website](https://www.abinit.org)
+and the [Forum](https://forum.abinit.org).
+
+Many documentation files can be found in the doc directory.
+See the file [INSTALL](INSTALL) for generic compilation and installation instructions.
+Please see the file [COPYING](COPYING) for copying conditions.
+
+## LICENSE
+
+ Copyright (C) 2006-2024 ABINIT Group
+
+ This file is part of ABINIT.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
diff --git a/GX-PAW/common/README.md b/GX-PAW/common/README.md
new file mode 100644
index 00000000..871e3820
--- /dev/null
+++ b/GX-PAW/common/README.md
@@ -0,0 +1,32 @@
+README for ABINIT
+=================
+
+ABINIT is an atomic-scale simulation software suite.
+
+Most of the relevant information can be found on the ABINIT [website](https://www.abinit.org)
+and the [Forum](https://forum.abinit.org).
+
+Many documentation files can be found in the doc directory.
+See the file [INSTALL](INSTALL) for generic compilation and installation instructions.
+Please see the file [COPYING](COPYING) for copying conditions.
+
+## LICENSE
+
+ Copyright (C) 2006-2024 ABINIT Group
+
+ This file is part of ABINIT.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
diff --git a/GX-PAW/common/configure.ac b/GX-PAW/common/configure.ac
new file mode 100644
index 00000000..1cd76c18
--- /dev/null
+++ b/GX-PAW/common/configure.ac
@@ -0,0 +1,660 @@
+# -*- Autoconf -*-
+#
+# Copyright (C) 2019-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+# ---------------------------------------------------------------------------- #
+
+#
+# IMPORTANT NOTE
+#
+# Please DO NOT EDIT this file unless you REALLY know what you are doing.
+# Everything is important, in particular the order of the various commands
+# executed here. YOU HAVE BEEN WARNED !
+#
+
+# ---------------------------------------------------------------------------- #
+
+#
+# Autoconf & Automake startup
+#
+
+# Initialize Autoconf
+AC_PREREQ(2.59)
+AC_INIT([ABINIT Common],[8.11.11],
+ [https://bugs.launchpad.net/abinit/],
+ [abinit-common])
+AC_REVISION([Autotools support for ABINIT Common])
+AC_CONFIG_AUX_DIR([config/gnu])
+AC_CONFIG_MACRO_DIR([config/m4])
+AC_CONFIG_SRCDIR([src/10_defs/defs_basis.F90])
+AC_CONFIG_HEADERS([config.h])
+
+# Initial setup
+AC_CANONICAL_TARGET
+
+# Disable pax to initialize Automake because it causes 'make dist' to fail
+alias pax='/bin/false'
+AM_INIT_AUTOMAKE([1.10 tar-ustar])
+unalias pax
+
+# Early ABINIT Common setup - the order is important!
+ABI_INIT_DIRS
+ABI_INIT_VERSION
+ABI_INIT_CPU_INFO
+ABI_INIT_OS_INFO
+ABI_INIT_HEADER
+ABI_INIT_ARCH
+
+# Check for common programs
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_SED
+AC_PROG_AWK
+AC_PROG_GREP
+AC_PATH_PROG(BOURNE_SHELL, sh, /bin/sh)
+AC_PATH_PROG(MV, mv, /bin/false)
+AC_PATH_PROG(PERL, perl, /bin/false)
+AC_PATH_PROG(RM, rm, /bin/false)
+AC_CHECK_PROGS(TAR, [tar gtar star])
+
+# Workaround for the wrong path to install-sh on Mac systems
+ABI_PROG_MKDIR_P
+
+# Look for a command that provide absolute paths
+AC_CHECK_PROGS(REALPATH, [realpath readlink], [/bin/true])
+test "${REALPATH}" = "readlink" && REALPATH="${REALPATH} -f"
+
+# We might need a Python interpreter early on
+ABI_PROG_PYTHON
+
+# Define command-line arguments
+ABI_OPTIONS_DEFINE
+
+# Read config file and ensure that priorities are respected
+ABI_ENV_BACKUP
+ABI_OPTIONS_BACKUP
+ABI_LOAD_OPTIONS
+ABI_OPTIONS_CFG_TRANSFER
+ABI_OPTIONS_RECALL
+ABI_ENV_RECALL
+
+# Set still undefined options
+ABI_OPTIONS_SETUP
+
+# Initialize environment, taking options into account
+ABI_ENV_INIT
+
+AC_SUBST(CC_LDFLAGS)
+AC_SUBST(CC_LIBS)
+AC_SUBST(CXX_LDFLAGS)
+AC_SUBST(CXX_LIBS)
+AC_SUBST(FC_LDFLAGS)
+AC_SUBST(FC_LIBS)
+
+# Initialize install dirs (requires version and config options to be set)
+ABI_INIT_INSTALL_DIRS
+
+# Disable wrapping of Fortran compiler by default
+abi_fc_wrap="no"
+
+# Save user-defined CPP
+abi_cpp_user="${CPP}"
+
+# Set-up required information for core libraries
+ABI_CORELIBS_INIT
+
+# Init Steredeg core features
+SD_CORE_INIT
+
+# Prepare MPI support
+ABI_MPI_INIT
+
+# GPU support requires MPI
+if test "${abi_gpu_enable}" = "yes" -a "${abi_mpi_enable}" != "yes"; then
+ AC_MSG_ERROR([GPU support requires MPI])
+fi
+
+# Prepare GPU support
+# Note: must be done after MPI
+ABI_GPU_INIT
+
+# Set basic ABINIT Common C parameters
+# Note: advanced fetaures are set later on
+ABI_PROG_CC
+
+# Set basic ABINIT Common C++ parameters
+# Note: advanced fetaures are set later on
+ABI_PROG_CXX
+
+# Set basic ABINIT Common Fortran parameters
+# Note: advanced fetaures are set later on
+ABI_PROG_FC
+
+# Set default file extensions
+ABI_FC_EXTENSIONS
+
+# Get module file case
+ABI_FC_MOD_CASE
+
+# Determine Fortran-C name mangling scheme
+AC_FC_WRAPPERS
+
+# The IBM Fortran compiler crashes if the mpi module is included
+# more than once
+if test "${abi_fc_vendor}" = "ibm" -a "${abi_mpi_enable}" = "yes"; then
+ AC_MSG_NOTICE([activating MPI workaround for the IBM Fortran compiler])
+ AC_DEFINE([HAVE_MPI_INCLUDED_ONCE], 1,
+ [Define to 1 if you are using XLF.])
+fi
+
+# Wrap Fortran compiler calls if needed or requested
+# Note: must be the last step of basic Fortran configuration
+if test "${abi_fc_wrapper_enable}" = "yes"; then
+ abi_fc_wrap="yes"
+fi
+
+# FIXME: obsolete mechanism
+AC_SUBST(fc_mod_fcflags)
+
+# Look for a true C preprocessor
+if test "${TRUE_CPP}" = ""; then
+ AC_CHECK_PROGS([TRUE_CPP],[cpp])
+fi
+if test "${TRUE_CPP}" = ""; then
+ AC_PATH_PROG([TRUE_CPP],[cpp])
+fi
+if test "${TRUE_CPP}" = ""; then
+ if test -x "/lib/cpp"; then
+ TRUE_CPP="/lib/cpp"
+ fi
+fi
+AC_MSG_CHECKING([for a true C preprocessor])
+if test "${TRUE_CPP}" = ""; then
+ AC_MSG_RESULT([none])
+else
+ AC_MSG_RESULT([${TRUE_CPP}])
+fi
+
+# Set Fortran preprocessor when needed
+if test "${abi_fc_wrap}" = "yes"; then
+ AC_MSG_CHECKING([for a Fortran-compatible C preprocessor])
+ if test "${FPP}" = ""; then
+ if test "${abi_cpp_user}" != ""; then
+ FPP="${abi_cpp_user}"
+ else
+ if test "${TRUE_CPP}" != ""; then
+ FPP="${TRUE_CPP}"
+ else
+ FPP="${CPP}"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT([${FPP}])
+fi
+
+# FIXME: set CPP vendor
+case "${target_os}" in
+ aix*)
+ abi_cpp_vendor="ibm"
+ abi_xpp_vendor="ibm"
+ abi_fpp_vendor="ibm"
+ ;;
+ *)
+ abi_cpp_vendor="default"
+ abi_xpp_vendor="default"
+ abi_fpp_vendor="default"
+ ;;
+esac
+case "${abi_fc_vendor}" in
+ ibm)
+ abi_fpp_vendor="ibm"
+ ;;
+esac
+AC_MSG_NOTICE([setting C preprocessor vendor to '${abi_cpp_vendor}'])
+AC_MSG_NOTICE([setting C++ preprocessor vendor to '${abi_xpp_vendor}'])
+AC_MSG_NOTICE([setting Fortran preprocessor vendor to '${abi_fpp_vendor}'])
+
+# Preset flags to have the source building properly
+if test "${abi_hints_enable}" = "yes"; then
+
+ # C support
+ ABI_CPP_HINTS
+ ABI_CC_HINTS
+
+ # C++ support
+ ABI_XPP_HINTS
+ ABI_CXX_HINTS
+
+ # Fortran support
+ ABI_FPP_HINTS
+ ABI_FC_HINTS
+
+ # Library archiver support
+ #ABI_AR_HINTS
+
+fi
+
+# Adjust OpenMP flags if not used
+if test "${abi_openmp_enable}" != "yes"; then
+ FCFLAGS_OPENMP=""
+fi
+
+# Set Fortran preprocessing flags
+if test "${abi_fc_wrap}" = "yes"; then
+ test "${FPPFLAGS}" = "" && FPPFLAGS="${FPPFLAGS_HINTS_EXT}"
+fi
+
+# Display Fortran preprocessing parameters
+AC_MSG_CHECKING([which Fortran preprocessor to use])
+if test "${FPP}" = ""; then
+ AC_MSG_RESULT([none])
+else
+ AC_MSG_RESULT([${FPP}])
+fi
+AC_MSG_CHECKING([which Fortran preprocessor flags to apply])
+if test "${FPPFLAGS}" = ""; then
+ AC_MSG_RESULT([none])
+else
+ AC_MSG_RESULT([${FPPFLAGS}])
+fi
+
+# Display Fortran compiler wrapper status
+AC_MSG_CHECKING([whether to wrap Fortran compiler calls])
+AC_MSG_RESULT([${abi_fc_wrap}])
+
+# Export true CPPFLAGS (required by LibXC)
+AC_SUBST(CPPFLAGS_HINTS_EXT)
+
+# Init debug flags
+ABI_DEBUG_INIT([${abi_debug_flavor}])
+
+# Activate "design-by-contract" debugging tests when paranoid
+AC_MSG_CHECKING([whether to activate design-by-contract debugging])
+if test "${abi_debug_flavor}" = "paranoid"; then
+ AC_DEFINE([DEBUG_CONTRACT], 1,
+ [Define to 1 if you want to activate design-by-contract debugging tests.])
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+AM_CONDITIONAL(DO_BUILD_32_CONTRACT,
+ [test "${abi_debug_flavor}" = "paranoid"])
+
+# Disable optimizations if debug mode is activated in source files
+if test "${abi_debug_source}" = "yes"; then
+ if test "${abi_optim_flavor}" != "none"; then
+ AC_MSG_WARN([disabling optimizations])
+ fi
+ abi_optim_flavor="none"
+fi
+
+# Init optimization flags
+# Note: must be done only once debugging is configured
+ABI_OPTIM_INIT([${abi_optim_flavor}])
+
+# FIXME: 20_datashare does not support optimizations
+if test "${abi_optim_flavor}" != "none"; then
+ AC_MSG_NOTICE([disabling optimizations for src/20_datashare/])
+ fcflags_opt_20_datashare="-O0"
+ AC_MSG_NOTICE([disabling optimizations for src/43_ptgroups/])
+ fcflags_opt_43_ptgroups="-O0"
+fi
+
+# Set per-directory Fortran optimizations
+# Note: must be done only once FCFLAGS_OPTIM is set
+ABI_OPTFLAGS_DIRS([${FCFLAGS_OPTIM}])
+
+# ---------------------------------------------------------------------------- #
+
+# Set-up target and binary package names
+# Note: requires knowledge of Fortran compiler
+ABI_INIT_TARGET
+ABINIT_BINARY_PACKAGE="${PACKAGE}-${VERSION}_${ABINIT_TARGET}"
+AC_SUBST(ABINIT_BINARY_PACKAGE)
+
+# Preserve environment
+ABI_ENV_BACKUP
+
+# Look for archiver
+if test "${AR}" = ""; then
+ AC_CHECK_PROGS(AR,[ar xiar])
+fi
+
+# Set archiver command flag
+test "${ARFLAGS_CMD}" = "" && ARFLAGS_CMD="rc"
+AC_SUBST(ARFLAGS_CMD)
+
+# Look for ranlib
+AC_PROG_RANLIB
+
+# Restore back compile flags
+CFLAGS="${abi_env_CFLAGS}"
+CXXFLAGS="${abi_env_CXXFLAGS}"
+FCFLAGS="${abi_env_FCFLAGS}"
+
+# We want to be able access the archiver from anywhere
+AC_SUBST(AR)
+AC_SUBST(ARFLAGS)
+
+# Report the use of libtool-related options
+AC_SUBST(enable_shared)
+AC_SUBST(enable_static)
+AC_SUBST(with_gnu_ld)
+
+# Final adjustments for library archiver
+test "${ARFLAGS}" = "" && \
+ ARFLAGS="${ARFLAGS_DEBUG} ${ARFLAGS_OPTIM} ${ARFLAGS_HINTS} ${ARFLAGS_EXTRA} ${ARFLAGS_CMD}"
+
+# Final adjustments for C
+test "${CFLAGS}" = "" && \
+ CFLAGS="${CFLAGS_DEBUG} ${CFLAGS_OPTIM} ${CFLAGS_HINTS} ${CFLAGS_EXTRA}"
+test "${CC_LDFLAGS}" = "" && \
+ CC_LDFLAGS="${CC_LDFLAGS_DEBUG} ${CC_LDFLAGS_OPTIM} ${CC_LDFLAGS_HINTS} ${CC_LDFLAGS_EXTRA}"
+test "${CC_LIBS}" = "" && \
+ CC_LIBS="${CC_LIBS_DEBUG} ${CC_LIBS_OPTIM} ${CC_LIBS_HINTS} ${CC_LIBS_EXTRA}"
+
+# Final adjustments for C++
+test "${CXXFLAGS}" = "" && \
+ CXXFLAGS="${CXXFLAGS_DEBUG} ${CXXFLAGS_OPTIM} ${CXXFLAGS_HINTS} ${CXXFLAGS_EXTRA}"
+test "${CXX_LDFLAGS}" = "" && \
+ CXX_LDFLAGS="${CXX_LDFLAGS_DEBUG} ${CXX_LDFLAGS_OPTIM} ${CXX_LDFLAGS_HINTS} ${CXX_LDFLAGS_EXTRA}"
+test "${CXX_LIBS}" = "" && \
+ CXX_LIBS="${CXX_LIBS_DEBUG} ${CXX_LIBS_OPTIM} ${CXX_LIBS_HINTS} ${CXX_LIBS_EXTRA}"
+
+# Final adjustments for Fortran
+# Note: FCFLAGS_OPTIM must not be included (per-directory optimizations)
+test "${FCFLAGS}" = "" && \
+ FCFLAGS="${FCFLAGS_DEBUG} ${FCFLAGS_HINTS} ${FCFLAGS_EXTRA} ${FCFLAGS_OPENMP}"
+test "${FC_LDFLAGS}" = "" && \
+ FC_LDFLAGS="${FC_LDFLAGS_DEBUG} ${FC_LDFLAGS_OPTIM} ${FC_LDFLAGS_HINTS} ${FC_LDFLAGS_EXTRA}"
+test "${FC_LIBS}" = "" && \
+ FC_LIBS="${FC_LIBS_DEBUG} ${FC_LIBS_OPTIM} ${FC_LIBS_HINTS} ${FC_LIBS_EXTRA}"
+
+# Final adjustments for preprocessors
+test "${CPPFLAGS}" = "" && \
+ CPPFLAGS="${CPPFLAGS_DEBUG} ${CPPFLAGS_OPTIM} ${CPPFLAGS_HINTS} ${CPPFLAGS_EXTRA}"
+test "${XPPFLAGS}" = "" && \
+ XPPFLAGS="${XPPFLAGS_DEBUG} ${XPPFLAGS_OPTIM} ${XPPFLAGS_HINTS} ${XPPFLAGS_EXTRA}"
+test "${FPPFLAGS}" = "" -a "${abi_fc_wrap}" = "no" && \
+ FPPFLAGS="${FPPFLAGS_DEBUG} ${FPPFLAGS_OPTIM} ${FPPFLAGS_HINTS} ${FPPFLAGS_EXTRA}"
+
+# FIXME: temporary workaround for Macs
+if test "${abi_cpu_platform}" = "apple"; then
+ AC_MSG_WARN([${abi_cpu_platform} is not able to handle full link information])
+ AC_MSG_WARN([static builds will fail])
+else
+ AC_MSG_NOTICE([static builds may be performed])
+ FC_LIBS="${FC_LIBS} ${FCLIBS}"
+fi
+
+# ---------------------------------------------------------------------------- #
+
+# Look for desired C features
+ABI_CC_FEATURES
+
+# Look for desired Fortran features
+ABI_FC_FEATURES
+
+# Look for desired Python features
+ABI_PY_FEATURES
+
+# Platform-specific libraries
+AC_MSG_CHECKING([which operating system we have])
+AC_MSG_RESULT([${target_os}])
+
+# Basic mathematical functions
+AC_LANG_PUSH([C])
+AC_SEARCH_LIBS([expl], [m ml],
+ [abi_math_expl_ok="yes"], [abi_math_expl_ok="no"])
+AC_SEARCH_LIBS([logl], [m ml],
+ [abi_math_logl_ok="yes"], [abi_math_logl_ok="no"])
+AC_LANG_POP([C])
+
+# OpenMP support
+AC_MSG_CHECKING([whether to enable OpenMP support])
+AC_MSG_RESULT([${abi_openmp_enable}])
+if test "${abi_openmp_enable}" = "yes"; then
+ AC_MSG_CHECKING([Fortran flags for OpenMP])
+ AC_MSG_RESULT([${FCFLAGS_OPENMP}])
+ ABI_OMP_CHECK_COLLAPSE
+ AC_MSG_NOTICE([OpenMP support is enabled in Fortran source code only])
+fi
+
+# MPI support
+ABI_MPI_DETECT
+if test "${abi_mpi_enable}" = "yes"; then
+ ABI_MPI_DUMP
+fi
+
+# GPU support
+ABI_GPU_DETECT
+
+# Init FFTW3
+SD_FFTW3_INIT([optional skip])
+
+# Init Levmar
+SD_LEVMAR_INIT([optional fail])
+
+# Init LibPSML
+SD_LIBPSML_INIT([optional fail])
+
+# Init LibXC
+SD_LIBXC_INIT([no-fortran optional fail])
+
+# Init PAPI
+SD_NETCDF_INIT([no-cxx optional fail])
+
+# Init PAPI
+SD_PAPI_INIT([optional fail])
+
+# Init PFFT
+SD_PFFT_INIT([optional skip])
+
+# Init TRIQS
+SD_TRIQS_INIT([optional fail])
+
+# Init Wannier90
+SD_WANNIER90_INIT([optional fail], [-lwannier90])
+
+# Init XMLF90
+SD_XMLF90_INIT([optional fail])
+
+# Linear algebra support
+SD_LINALG_INIT([required fail])
+SD_LINALG_INIT_FLAVOR
+
+SD_LINALG_DETECT
+
+# Optimized FFT support (must be done after linear algebra is fully configured)
+SD_FFT_INIT
+
+SD_FFT_DETECT
+
+ # ------------------------------ #
+
+# PAPI library support
+SD_PAPI_DETECT
+AC_MSG_CHECKING([whether to enable the internal ABINIT Common timer])
+AC_MSG_RESULT([${abi_timer_enable}])
+if test "${sd_papi_ok}" != "yes"; then
+ if test "${abi_timer_enable}" = "yes"; then
+ AC_DEFINE([HAVE_TIMER_ABINIT], 1,
+ [Define to 1 if you want to use the ABINIT Common timer.])
+ fi
+fi
+
+ # ------------------------------ #
+
+# NetCDF library support
+SD_NETCDF_DETECT
+# FIXME: quick workaround
+if test "${sd_netcdf_ok}" = "yes"; then
+ sd_netcdf_fcflags="${sd_netcdf_fcflags} ${sd_netcdf_cppflags}"
+fi
+
+# XMLF90 library support
+SD_XMLF90_DETECT
+
+# LibPSML library support
+if test "${sd_xmlf90_ok}" = "yes"; then
+ SD_LIBPSML_DETECT
+else
+ if test "${sd_libpsml_enable}" = "auto"; then
+ sd_libpsml_enable="no"
+ else
+ if test "${sd_libpsml_enable}" != "no"; then
+ AC_MSG_ERROR([LibPSML support has been requested but XMLF90 does not work
+ Please point the configuration to a working XMLF90
+ installation or disable LibPSML support])
+ fi
+ fi
+fi
+AM_CONDITIONAL([DO_BUILD_PSML],
+ [test "${sd_libpsml_enable}" = "yes " -a "${sd_libpsml_ok}" = "yes"])
+
+ # ------------------------------ #
+
+# Levmar library support
+SD_LEVMAR_DETECT
+
+ # ------------------------------ #
+
+# LibXC library support
+#ABI_LIBXC_DETECT(2, 2)
+SD_LIBXC_DETECT
+AM_CONDITIONAL([DO_BUILD_01_LIBXC_EXT],
+ [test "${sd_libxc_ok}" = "yes"])
+
+# TRIQS support
+SD_TRIQS_DETECT
+AM_CONDITIONAL([DO_BUILD_67_TRIQS_EXT],
+ [test "${sd_triqs_enable}" = "yes" -a "${sd_triqs_ok}" = "yes"])
+
+# Wannier90 library support
+SD_WANNIER90_DETECT
+
+# Display summary table
+ABI_TRIGGERS_SUMMARY
+
+# Always generate a build script for required fallbacks
+AC_OUTPUT([transient/build-abinit-fallbacks.sh])
+
+# Check that we have all required fallbacks
+ABI_FALLBACKS_VALIDATE([${abi_fbk_required}])
+
+# Report situation
+if test "${abi_fbk_required}" = ""; then
+ AC_MSG_NOTICE([no fallback required - you may run production calculations])
+else
+ AC_MSG_NOTICE([fallbacks required - you should not run production calculations])
+fi
+
+# FIXME: copying linear algebra tarball for now,
+# ensuring ~/.abinit/tarballs/ exists
+if test "${abi_fbk_linalg}" = "yes"; then
+ tmp_abinit_tardir="${HOME}/.abinit/tarballs"
+ tmp_linalg_tarball="lapack-abinit_6.10.tar.gz"
+ if test ! -s "${tmp_abinit_tardir}/${tmp_linalg_tarball}"; then
+ AC_MSG_NOTICE([using tarball repository ${tmp_abinit_tardir}])
+ if test ! -e "${tmp_abinit_tardir}"; then
+ AC_MSG_NOTICE([creating '${tmp_abinit_tardir}'])
+ ${INSTALL} -d -m 755 "${tmp_abinit_tardir}"
+ elif test ! -d "${tmp_abinit_tardir}"; then
+ AC_MSG_ERROR(['${tmp_abinit_tardir}' is not a directory
+ please move away the current file and reconfigure ABINIT Common])
+ fi
+
+ AC_MSG_NOTICE([installing linear algebra fallback tarball to '${tmp_abinit_tardir}'])
+ ${INSTALL} -m 644 "${abinit_srcdir}/transient/${tmp_linalg_tarball}" \
+ "${tmp_abinit_tardir}"
+ fi
+fi
+
+# Check that all triggers or their fallbacks are working
+# FIXME: triggers must not fall back if with_* options are provided
+for pkg in ${abi_trig_packages}; do
+ tmp_trig_errors=""
+ eval tmp_pkg_ok=\"\$\{abi_${pkg}_ok\}\"
+ eval tmp_fbk_ok=\"\$\{abi_fbk_${pkg}_ok\}\"
+ if test "${tmp_pkg_ok}" = "no" -a "${tmp_fbk_ok}" != "yes"; then
+ tmp_trig_errors="${tmp_trig_errors} ${pkg}"
+ fi
+done
+if test "${tmp_trig_errors}" != ""; then
+ for pkg in ${tmp_trig_errors}; do
+ tmp_fbk_error=`echo "${abi_fbk_packages}" | grep "${pkg}"`
+ AC_MSG_WARN([${pkg} support is unavailable or broken])
+ if test "${tmp_fbk_error}" != ""; then
+ AC_MSG_WARN([${pkg} fallback is unavailable])
+ fi
+ done
+ AC_MSG_ERROR([some optional features were not found on this system
+ (see messages above)
+ Please correct the options of configure to match your
+ actual situation])
+fi
+
+# Defines and conditionals for CPP options
+# (see config/specs/options.conf for details)
+ABI_OPTIONS_CPP_DEFINES
+
+# Wrap buggy Fortran compilers
+FC_NOWRAP="${FC}"
+if test "${abi_fc_wrap}" = "yes"; then
+ FC="${abinit_builddir}/config/wrappers/wrap-fc"
+fi
+AC_SUBST(FC_NOWRAP)
+
+# Force F77 and F90 environment variables (keep always last)
+F77="${FC}"
+FFLAGS="${FCFLAGS}"
+F90="${FC}"
+F90FLAGS="${FCFLAGS}"
+
+# The following is required for oldish fixed-form Fortran libraries
+AC_SUBST(F77)
+AC_SUBST(FFLAGS)
+
+# Void CPPFLAGS to allow for C/Fortran mixing
+ABI_CPPFLAGS="${CPPFLAGS}"
+CPPFLAGS=""
+
+# FIXME: Temporary options to remove
+case "${ABINIT_LEGACY_OPTION}" in
+ mpi1)
+ AC_DEFINE([HAVE_MPI1], 1,
+ [Define to 1 if you have a MPI-1 implementation (obsolete, broken).])
+ ;;
+ wannier90_v1)
+ AC_DEFINE([HAVE_WANNIER90_V1], 1,
+ [Define to 1 if you want to use Wanner90 1.x (awfully obsolete).])
+ ;;
+esac
+
+# FIXME: temporary translation of XML status
+if test "${abi_libxml2_enable}" = "yes"; then
+ AC_DEFINE([HAVE_XML], 1,
+ [Define to 1 if you want to use LibXML2-based XML I/O.])
+fi
+
+# Output files
+# Note: later, add tests/atconfig and tests/atlocal for test suite
+ABI_OUTPUT
+
+# The end
+if test "${sd_linalg_flavor}" = "netlib-fallback"; then
+ ABI_MSG_NOTICE([linalg-abinit],
+ [Suboptimal linear algebra configuration])
+fi
+if test "${abi_gpu_enable}" = "yes" -a "${sd_linalg_chk_gpu}" != "magma"; then
+ ABI_MSG_NOTICE([gpu-without-magma],
+ [Suboptimal GPU configuration])
+fi
+ABI_MSG_FC_BUGGY(${abi_fc_vendor})
+ABI_MSG_END
diff --git a/GX-PAW/common/src/.gitignore b/GX-PAW/common/src/.gitignore
new file mode 100644
index 00000000..4adf8cd8
--- /dev/null
+++ b/GX-PAW/common/src/.gitignore
@@ -0,0 +1 @@
+39_libpaw
diff --git a/GX-PAW/common/src/02_clib/.deps/calling_levmar.Po b/GX-PAW/common/src/02_clib/.deps/calling_levmar.Po
new file mode 100644
index 00000000..9e79d55c
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/calling_levmar.Po
@@ -0,0 +1,193 @@
+calling_levmar.o: calling_levmar.c \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ ../../../../config.h
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+../../../../config.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/cclock.Po b/GX-PAW/common/src/02_clib/.deps/cclock.Po
new file mode 100644
index 00000000..61966226
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/cclock.Po
@@ -0,0 +1,87 @@
+cclock.o: cclock.c ../../../../config.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h
+
+../../../../config.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/etime.Po b/GX-PAW/common/src/02_clib/.deps/etime.Po
new file mode 100644
index 00000000..cbcf696f
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/etime.Po
@@ -0,0 +1,411 @@
+etime.o: etime.c ../../../../shared/common/src/incs/abi_clib.h \
+ ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/time.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval64.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/time.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval64.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/fsi_posix.Po b/GX-PAW/common/src/02_clib/.deps/fsi_posix.Po
new file mode 100644
index 00000000..06ba2d32
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/fsi_posix.Po
@@ -0,0 +1,405 @@
+fsi_posix.o: fsi_posix.c \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ ../../../../shared/common/src/incs/abi_clib.h ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h \
+ xmalloc.h
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
+
+xmalloc.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/gnu_tools.Po b/GX-PAW/common/src/02_clib/.deps/gnu_tools.Po
new file mode 100644
index 00000000..e8a8b53c
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/gnu_tools.Po
@@ -0,0 +1,402 @@
+gnu_tools.o: gnu_tools.c ../../../../shared/common/src/incs/abi_clib.h \
+ ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/mallinfo.Po b/GX-PAW/common/src/02_clib/.deps/mallinfo.Po
new file mode 100644
index 00000000..e6aba17b
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/mallinfo.Po
@@ -0,0 +1,402 @@
+mallinfo.o: mallinfo.c ../../../../shared/common/src/incs/abi_clib.h \
+ ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/md5.Po b/GX-PAW/common/src/02_clib/.deps/md5.Po
new file mode 100644
index 00000000..ae92058e
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/md5.Po
@@ -0,0 +1,420 @@
+md5.o: md5.c ../../../../config.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/message.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/port.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/boolean.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/boolean.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/boolean.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/vm_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/vm_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/vm_param.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mach_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/kern_return.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/kern_return.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/kern_return.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_statistics.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/time_value.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_notify.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_special_ports.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/memory_object_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_prot.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_sync.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/exception_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/exception.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/exception.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_status.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/thread_status.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_status.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/fp_reg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_state.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/eflags.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/thread_state.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_voucher_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/std_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/processor_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/processor_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/processor_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/policy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_inspect.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_policy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_special_ports.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_info.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_policy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_special_ports.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/clock_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_attributes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_inherit.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_purgable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_behavior.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_region.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/vm_param.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/kmod.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/dyld_kernel.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsobj_id_t.h \
+ md5.h
+
+../../../../config.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/message.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/port.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/boolean.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/boolean.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/boolean.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/vm_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/vm_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/vm_param.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mach_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/kern_return.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/kern_return.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/kern_return.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_statistics.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/time_value.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_notify.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/host_special_ports.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/memory_object_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_prot.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_sync.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/exception_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/exception.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/exception.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_status.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/thread_status.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_status.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/fp_reg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_state.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/eflags.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/thread_state.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_voucher_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/std_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/processor_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/processor_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/processor_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/policy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_inspect.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_policy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/task_special_ports.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_info.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_policy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/thread_special_ports.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/clock_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_attributes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_inherit.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_purgable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_behavior.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/vm_region.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/vm_param.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/kmod.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/dyld_kernel.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsobj_id_t.h:
+
+md5.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/rlimit.Po b/GX-PAW/common/src/02_clib/.deps/rlimit.Po
new file mode 100644
index 00000000..34f264c3
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/rlimit.Po
@@ -0,0 +1,217 @@
+rlimit.o: rlimit.c \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/sockets.Po b/GX-PAW/common/src/02_clib/.deps/sockets.Po
new file mode 100644
index 00000000..0820d435
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/sockets.Po
@@ -0,0 +1,406 @@
+sockets.o: sockets.c \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ ../../../../config.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/socket.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_param.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_param.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/net/net_kev.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sa_family_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_socklen_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_iovec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet/in.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/un.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netdb.h
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+../../../../config.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/socket.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_param.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_param.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/net/net_kev.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sa_family_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_socklen_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_iovec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet/in.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/un.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netdb.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/xexit.Po b/GX-PAW/common/src/02_clib/.deps/xexit.Po
new file mode 100644
index 00000000..5c3d0f1d
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/xexit.Po
@@ -0,0 +1,402 @@
+xexit.o: xexit.c ../../../../shared/common/src/incs/abi_clib.h \
+ ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
diff --git a/GX-PAW/common/src/02_clib/.deps/xmalloc.Po b/GX-PAW/common/src/02_clib/.deps/xmalloc.Po
new file mode 100644
index 00000000..c5a05ece
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/.deps/xmalloc.Po
@@ -0,0 +1,405 @@
+xmalloc.o: xmalloc.c ../../../../shared/common/src/incs/abi_clib.h \
+ ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h \
+ xmalloc.h
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
+
+xmalloc.h:
diff --git a/GX-PAW/common/src/02_clib/Makefile b/GX-PAW/common/src/02_clib/Makefile
new file mode 100644
index 00000000..c6c7ba9d
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/Makefile
@@ -0,0 +1,1548 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/02_clib/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/02_clib
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib02_clib_a_AR = $(AR) $(ARFLAGS)
+lib02_clib_a_LIBADD =
+am__objects_1 = calling_levmar.$(OBJEXT) cclock.$(OBJEXT) \
+ etime.$(OBJEXT) sockets.$(OBJEXT) m_fsockets.$(OBJEXT) \
+ fsi_posix.$(OBJEXT) gnu_tools.$(OBJEXT) mallinfo.$(OBJEXT) \
+ md5.$(OBJEXT) rlimit.$(OBJEXT) xexit.$(OBJEXT) \
+ xmalloc.$(OBJEXT) m_clib.$(OBJEXT)
+am_lib02_clib_a_OBJECTS = $(am__objects_1)
+lib02_clib_a_OBJECTS = $(am_lib02_clib_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/calling_levmar.Po \
+ ./$(DEPDIR)/cclock.Po ./$(DEPDIR)/etime.Po \
+ ./$(DEPDIR)/fsi_posix.Po ./$(DEPDIR)/gnu_tools.Po \
+ ./$(DEPDIR)/mallinfo.Po ./$(DEPDIR)/md5.Po \
+ ./$(DEPDIR)/rlimit.Po ./$(DEPDIR)/sockets.Po \
+ ./$(DEPDIR)/xexit.Po ./$(DEPDIR)/xmalloc.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib02_clib_a_SOURCES)
+DIST_SOURCES = $(lib02_clib_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/02_clib
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/02_clib
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ \
+
+
+
+# Regular source files
+lib02_clib_srcs = \
+ calling_levmar.c \
+ cclock.c \
+ etime.c \
+ sockets.c \
+ m_fsockets.F90 \
+ fsi_posix.c \
+ gnu_tools.c \
+ mallinfo.c \
+ md5.c \
+ rlimit.c \
+ xexit.c \
+ xmalloc.c \
+ m_clib.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib02_clib.a
+lib02_clib_a_SOURCES = $(lib02_clib_srcs)
+
+# Dependencies (inside the directory) of directory 02_clib
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = calling_levmar_cpp.c cclock_cpp.c etime_cpp.c \
+ sockets_cpp.c m_fsockets_cpp.f90 fsi_posix_cpp.c \
+ gnu_tools_cpp.c mallinfo_cpp.c md5_cpp.c rlimit_cpp.c \
+ xexit_cpp.c xmalloc_cpp.c m_clib_cpp.f90 m_clib.$(MODEXT) \
+ m_fsockets.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf md5.h xmalloc.h \
+ _02_clib_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .c .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/02_clib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/02_clib/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib02_clib.a: $(lib02_clib_a_OBJECTS) $(lib02_clib_a_DEPENDENCIES) $(EXTRA_lib02_clib_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib02_clib.a
+ $(AM_V_AR)$(lib02_clib_a_AR) lib02_clib.a $(lib02_clib_a_OBJECTS) $(lib02_clib_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib02_clib.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/calling_levmar.Po # am--include-marker
+include ./$(DEPDIR)/cclock.Po # am--include-marker
+include ./$(DEPDIR)/etime.Po # am--include-marker
+include ./$(DEPDIR)/fsi_posix.Po # am--include-marker
+include ./$(DEPDIR)/gnu_tools.Po # am--include-marker
+include ./$(DEPDIR)/mallinfo.Po # am--include-marker
+include ./$(DEPDIR)/md5.Po # am--include-marker
+include ./$(DEPDIR)/rlimit.Po # am--include-marker
+include ./$(DEPDIR)/sockets.Po # am--include-marker
+include ./$(DEPDIR)/xexit.Po # am--include-marker
+include ./$(DEPDIR)/xmalloc.Po # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.o:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/calling_levmar.Po
+ -rm -f ./$(DEPDIR)/cclock.Po
+ -rm -f ./$(DEPDIR)/etime.Po
+ -rm -f ./$(DEPDIR)/fsi_posix.Po
+ -rm -f ./$(DEPDIR)/gnu_tools.Po
+ -rm -f ./$(DEPDIR)/mallinfo.Po
+ -rm -f ./$(DEPDIR)/md5.Po
+ -rm -f ./$(DEPDIR)/rlimit.Po
+ -rm -f ./$(DEPDIR)/sockets.Po
+ -rm -f ./$(DEPDIR)/xexit.Po
+ -rm -f ./$(DEPDIR)/xmalloc.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/calling_levmar.Po
+ -rm -f ./$(DEPDIR)/cclock.Po
+ -rm -f ./$(DEPDIR)/etime.Po
+ -rm -f ./$(DEPDIR)/fsi_posix.Po
+ -rm -f ./$(DEPDIR)/gnu_tools.Po
+ -rm -f ./$(DEPDIR)/mallinfo.Po
+ -rm -f ./$(DEPDIR)/md5.Po
+ -rm -f ./$(DEPDIR)/rlimit.Po
+ -rm -f ./$(DEPDIR)/sockets.Po
+ -rm -f ./$(DEPDIR)/xexit.Po
+ -rm -f ./$(DEPDIR)/xmalloc.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/02_clib/Makefile.am b/GX-PAW/common/src/02_clib/Makefile.am
new file mode 100644
index 00000000..ca92f39e
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/Makefile.am
@@ -0,0 +1,83 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_02_clib@
+
+AM_CPPFLAGS = \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_levmar_cppflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib02_clib_srcs = \
+ calling_levmar.c \
+ cclock.c \
+ etime.c \
+ sockets.c \
+ m_fsockets.F90 \
+ fsi_posix.c \
+ gnu_tools.c \
+ mallinfo.c \
+ md5.c \
+ rlimit.c \
+ xexit.c \
+ xmalloc.c \
+ m_clib.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib02_clib.a
+
+lib02_clib_a_SOURCES= $(lib02_clib_srcs)
+
+CLEANFILES = \
+ calling_levmar_cpp.c \
+ cclock_cpp.c \
+ etime_cpp.c \
+ sockets_cpp.c \
+ m_fsockets_cpp.f90 \
+ fsi_posix_cpp.c \
+ gnu_tools_cpp.c \
+ mallinfo_cpp.c \
+ md5_cpp.c \
+ rlimit_cpp.c \
+ xexit_cpp.c \
+ xmalloc_cpp.c \
+ m_clib_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 02_clib
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_clib.$(MODEXT) \
+ m_fsockets.$(MODEXT)
+
+
+EXTRA_DIST += abinit.amf
+
+EXTRA_DIST += \
+ md5.h \
+ xmalloc.h
+
+EXTRA_DIST += _02_clib_
diff --git a/GX-PAW/common/src/02_clib/Makefile.in b/GX-PAW/common/src/02_clib/Makefile.in
new file mode 100644
index 00000000..c4fe1d1b
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/Makefile.in
@@ -0,0 +1,1548 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/02_clib
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib02_clib_a_AR = $(AR) $(ARFLAGS)
+lib02_clib_a_LIBADD =
+am__objects_1 = calling_levmar.$(OBJEXT) cclock.$(OBJEXT) \
+ etime.$(OBJEXT) sockets.$(OBJEXT) m_fsockets.$(OBJEXT) \
+ fsi_posix.$(OBJEXT) gnu_tools.$(OBJEXT) mallinfo.$(OBJEXT) \
+ md5.$(OBJEXT) rlimit.$(OBJEXT) xexit.$(OBJEXT) \
+ xmalloc.$(OBJEXT) m_clib.$(OBJEXT)
+am_lib02_clib_a_OBJECTS = $(am__objects_1)
+lib02_clib_a_OBJECTS = $(am_lib02_clib_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/calling_levmar.Po \
+ ./$(DEPDIR)/cclock.Po ./$(DEPDIR)/etime.Po \
+ ./$(DEPDIR)/fsi_posix.Po ./$(DEPDIR)/gnu_tools.Po \
+ ./$(DEPDIR)/mallinfo.Po ./$(DEPDIR)/md5.Po \
+ ./$(DEPDIR)/rlimit.Po ./$(DEPDIR)/sockets.Po \
+ ./$(DEPDIR)/xexit.Po ./$(DEPDIR)/xmalloc.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib02_clib_a_SOURCES)
+DIST_SOURCES = $(lib02_clib_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_02_clib@
+AM_CPPFLAGS = \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_levmar_cppflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib02_clib_srcs = \
+ calling_levmar.c \
+ cclock.c \
+ etime.c \
+ sockets.c \
+ m_fsockets.F90 \
+ fsi_posix.c \
+ gnu_tools.c \
+ mallinfo.c \
+ md5.c \
+ rlimit.c \
+ xexit.c \
+ xmalloc.c \
+ m_clib.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib02_clib.a
+lib02_clib_a_SOURCES = $(lib02_clib_srcs)
+
+# Dependencies (inside the directory) of directory 02_clib
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = calling_levmar_cpp.c cclock_cpp.c etime_cpp.c \
+ sockets_cpp.c m_fsockets_cpp.f90 fsi_posix_cpp.c \
+ gnu_tools_cpp.c mallinfo_cpp.c md5_cpp.c rlimit_cpp.c \
+ xexit_cpp.c xmalloc_cpp.c m_clib_cpp.f90 m_clib.$(MODEXT) \
+ m_fsockets.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf md5.h xmalloc.h \
+ _02_clib_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .c .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/02_clib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/02_clib/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib02_clib.a: $(lib02_clib_a_OBJECTS) $(lib02_clib_a_DEPENDENCIES) $(EXTRA_lib02_clib_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib02_clib.a
+ $(AM_V_AR)$(lib02_clib_a_AR) lib02_clib.a $(lib02_clib_a_OBJECTS) $(lib02_clib_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib02_clib.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calling_levmar.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/etime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsi_posix.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_tools.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mallinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rlimit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xexit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/calling_levmar.Po
+ -rm -f ./$(DEPDIR)/cclock.Po
+ -rm -f ./$(DEPDIR)/etime.Po
+ -rm -f ./$(DEPDIR)/fsi_posix.Po
+ -rm -f ./$(DEPDIR)/gnu_tools.Po
+ -rm -f ./$(DEPDIR)/mallinfo.Po
+ -rm -f ./$(DEPDIR)/md5.Po
+ -rm -f ./$(DEPDIR)/rlimit.Po
+ -rm -f ./$(DEPDIR)/sockets.Po
+ -rm -f ./$(DEPDIR)/xexit.Po
+ -rm -f ./$(DEPDIR)/xmalloc.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/calling_levmar.Po
+ -rm -f ./$(DEPDIR)/cclock.Po
+ -rm -f ./$(DEPDIR)/etime.Po
+ -rm -f ./$(DEPDIR)/fsi_posix.Po
+ -rm -f ./$(DEPDIR)/gnu_tools.Po
+ -rm -f ./$(DEPDIR)/mallinfo.Po
+ -rm -f ./$(DEPDIR)/md5.Po
+ -rm -f ./$(DEPDIR)/rlimit.Po
+ -rm -f ./$(DEPDIR)/sockets.Po
+ -rm -f ./$(DEPDIR)/xexit.Po
+ -rm -f ./$(DEPDIR)/xmalloc.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/02_clib/_02_clib_ b/GX-PAW/common/src/02_clib/_02_clib_
new file mode 100644
index 00000000..b1f880f7
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/_02_clib_
@@ -0,0 +1,19 @@
+!!****d* ABINIT/_02_clib_
+!!
+!! NAME
+!! _02_clib_
+!!
+!! DESCRIPTION
+!! This directory contains Fortran-callable C functions.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! CHILDREN
+!! interfaces_02_clib.F90
+!! m_clib.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/02_clib/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/02_clib/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..56ff6477
Binary files /dev/null and b/GX-PAW/common/src/02_clib/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/02_clib/abinit.amf b/GX-PAW/common/src/02_clib/abinit.amf
new file mode 100644
index 00000000..7d6947ad
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/abinit.amf
@@ -0,0 +1,3 @@
+EXTRA_DIST += \
+ md5.h \
+ xmalloc.h
diff --git a/GX-PAW/common/src/02_clib/abinit.dep b/GX-PAW/common/src/02_clib/abinit.dep
new file mode 100644
index 00000000..f81f3a3b
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/abinit.dep
@@ -0,0 +1,10 @@
+# Dependencies (inside the directory) of directory 02_clib
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_clib.$(MODEXT) \
+ m_fsockets.$(MODEXT)
+
diff --git a/GX-PAW/common/src/02_clib/abinit.dir b/GX-PAW/common/src/02_clib/abinit.dir
new file mode 100644
index 00000000..360bf7f5
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 02_clib
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+[]
\ No newline at end of file
diff --git a/GX-PAW/common/src/02_clib/abinit.src b/GX-PAW/common/src/02_clib/abinit.src
new file mode 100644
index 00000000..99a50022
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/abinit.src
@@ -0,0 +1,37 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 01_clib library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "calling_levmar.c",
+ "cclock.c",
+ "etime.c",
+ "sockets.c",
+ "m_fsockets.F90",
+ #"filelock.c",
+ "fsi_posix.c",
+ "gnu_tools.c",
+ "mallinfo.c",
+ "md5.c",
+ "rlimit.c",
+ "xexit.c",
+ "xmalloc.c",
+ "m_clib.F90",
+ ]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/02_clib/calling_levmar.c b/GX-PAW/common/src/02_clib/calling_levmar.c
new file mode 100644
index 00000000..84a1f118
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/calling_levmar.c
@@ -0,0 +1,240 @@
+//////////////////////////////////////////////
+// Routines that are callable from Fortran90
+// and use the levmar Levenberg-Marquardt
+// optimisation library
+//////////////////////////////////////////////
+
+#include
+#ifdef HAVE_CONFIG_H
+#include
+#endif
+#ifdef HAVE_LEVMAR
+#include
+#include
+
+void dim_screening(double *p, double *y, int m, int n, void *adata)
+{
+ /* The function to be fitted evaluated at the values x
+ * p[m] are the parameters
+ * y[n] is the measurement vector (containing the y-values)
+ * adata[n] is the optional data supplied (fixed) this will contain
+ * the z-values with adata[0],adata[2],...,adata[2*i] containing the
+ * real coordinate and adata[1],adata[3],...,adata[2*i+1] containing
+ * the imaginary coordinate (0<=i1) { /* if there are more poles, add the rest*/
+ for(in=0; in1) { /* if there are more poles, add the rest*/
+ for(in=0; in-1E-16){
+ /* invoke the optimisation function with box boundaries*/
+ ret=dlevmar_bc_dif(dim_screening, coeffs, yvals, c_ncoeffs, c_nvals, \
+ lower_bounds, upper_bounds, 3000, opts, info, NULL, NULL, \
+ (void *)&adata); // Box boundary conditions without Jacobian
+ //}
+ //}
+
+
+ if(c_prtvol>9){
+ printf("\n From C - Levenberg-Marquardt returned in %g iter, reason %g, sumsq %g [%g]\n", info[5], info[6], info[1], info[0]);
+ printf("\n From C - Returned parameters:\n");
+ for(i=0; i-1E-16){
+ /* invoke the optimisation function with box boundaries*/
+ ret=dlevmar_bc_dif(dre_and_im_screening, coeffs, yvals, c_ncoeffs, c_nvals, \
+ lower_bounds, upper_bounds, 1000, opts, info, NULL, NULL, \
+ (void *)&adata); // Box boundary conditions without Jacobian
+ //}
+ //}
+
+
+ if(c_prtvol>9){
+ printf("\n From C - Levenberg-Marquardt returned in %g iter, reason %g, sumsq %g [%g]\n", info[5], info[6], info[1], info[0]);
+ printf("\n From C - Returned parameters:\n");
+ for(i=0; i
+
+void cclock (double* cpu)
+
+{
+ *cpu = ((double) clock()) / CLOCKS_PER_SEC;
+}
diff --git a/GX-PAW/common/src/02_clib/cclock.o b/GX-PAW/common/src/02_clib/cclock.o
new file mode 100644
index 00000000..114126b6
Binary files /dev/null and b/GX-PAW/common/src/02_clib/cclock.o differ
diff --git a/GX-PAW/common/src/02_clib/etime.c b/GX-PAW/common/src/02_clib/etime.c
new file mode 100644
index 00000000..7b8b8476
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/etime.c
@@ -0,0 +1,24 @@
+#include "abi_clib.h"
+
+#if defined HAVE_SYS_TIME_H && defined HAVE_SYS_RESOURCE_H
+#include
+#include
+#endif
+
+double etime(tt)
+float tt[2];
+{
+#if defined HAVE_SYS_TIME_H && defined HAVE_SYS_RESOURCE_H
+ int who;
+ struct rusage used;
+ who = 0;
+ getrusage(who,&used);
+ tt[0] = used.ru_utime.tv_sec+((used.ru_utime.tv_usec)/1000000.);
+ tt[1] = used.ru_stime.tv_sec+((used.ru_stime.tv_usec)/1000000.);
+ return(tt[0]+tt[1]);
+#else
+ tt[0]=-1;
+ tt[1]=-1;
+ return(tt[0]+tt[1]);
+#endif
+}
diff --git a/GX-PAW/common/src/02_clib/etime.o b/GX-PAW/common/src/02_clib/etime.o
new file mode 100644
index 00000000..89b5b1e3
Binary files /dev/null and b/GX-PAW/common/src/02_clib/etime.o differ
diff --git a/GX-PAW/common/src/02_clib/fsi_posix.c b/GX-PAW/common/src/02_clib/fsi_posix.c
new file mode 100644
index 00000000..40409614
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/fsi_posix.c
@@ -0,0 +1,32 @@
+/* Fortran callable procedures compliant to the File System Interface defined in POSIX version? */
+/*
+ Copyright (C) 2002 M. Marques, A. Castro, A. Rubio, G. Bertsch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+
+#include
+#include "abi_clib.h"
+#include "xmalloc.h"
+
+
+void c_mkdir(char *path, int *ierr)
+{
+ /* S_IRWXU read, write, execute/search by owner
+ http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html
+ */
+ *ierr = mkdir(path, S_IRWXU);
+}
diff --git a/GX-PAW/common/src/02_clib/fsi_posix.o b/GX-PAW/common/src/02_clib/fsi_posix.o
new file mode 100644
index 00000000..875bf9ff
Binary files /dev/null and b/GX-PAW/common/src/02_clib/fsi_posix.o differ
diff --git a/GX-PAW/common/src/02_clib/gnu_tools.c b/GX-PAW/common/src/02_clib/gnu_tools.c
new file mode 100644
index 00000000..1c50ad9c
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/gnu_tools.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2009-2024 ABINIT group (MG)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "abi_clib.h"
+
+#ifdef HAVE_MCHECK_H
+#include
+#endif
+
+/* - Function: void mtrace (void)
+ * When the mtrace function is called it looks for an environment variable named MALLOC_TRACE.
+ * This variable is supposed to contain a valid file name. The user must have write access.
+ * If the file already exists it is truncated. If the environment variable is not set or it does
+ * not name a valid file which can be opened for writing nothing is done. The behavior of malloc etc. is not changed.
+ * If the named file is successfully opened, mtrace installs special handlers for the functions malloc, realloc, and free
+ * (see Hooks for Malloc). From then on, all uses of these functions are traced and protocolled into the file.
+ * There is now of course a speed penalty for all calls to the traced functions so tracing should not be enabled during
+ * normal use.
+ * This function is a GNU extension and generally not available on other systems. The prototype can be found in mcheck.h.
+ */
+void clib_mtrace (int *ierr)
+{
+#ifdef HAVE_MCHECK_H
+ mtrace();
+ *ierr=0;
+#else
+ *ierr=1;
+#endif
+}
+
+/* - Function: void muntrace (void)
+ * The muntrace function can be called after mtrace was used to enable tracing the malloc calls.
+ * If no (successful) call of mtrace was made muntrace does nothing.
+ * Otherwise it deinstalls the handlers for malloc, realloc, and free and then closes the protocol file.
+ * No calls are protocolled anymore and the program runs again at full speed.
+ * Please note that not only the application uses the traced functions, also libraries (including the C library itself)
+ * use these functions.
+ *
+ * It is no good idea to call muntrace before the program terminated. The libraries are informed about
+ * the termination of the program only after the program returns from main or calls exit and so cannot
+ * free the memory they use before this time.
+ *
+ * So the best thing one can do is to call mtrace as the very first function in the program and never call muntrace.
+ * So the program traces almost all uses of the malloc functions (except those calls which are executed by
+ * constructors of the program or used libraries).
+ *
+ * This function is a GNU extension and generally not available on other systems. The prototype can be found in mcheck.h.
+ */
+void clib_muntrace (int* ierr)
+{
+#ifdef HAVE_MCHECK_H
+ muntrace();
+ *ierr=0;
+#else
+ *ierr=1;
+#endif
+}
+
+/*
+ * You can ask malloc to check the consistency of dynamic memory by using the mcheck function.
+ * This function is a GNU extension, declared in mcheck.h.
+ * Calling mcheck tells malloc to perform occasional consistency checks. These will catch things such as
+ * writing past the end of a block that was allocated with malloc.
+ * It is too late to begin allocation checking once you have allocated anything with malloc.
+ * So mcheck does nothing in that case. The function returns -1 if you call it too late,
+ * and 0 otherwise (when it is successful).
+ * function prototype: mcheck (void (*abortfn) (enum mcheck_status status))
+ */
+void clib_mcheck (int* ierr)
+{
+#ifdef HAVE_MCHECK_H
+ *ierr = mcheck (NULL);
+#else
+ *ierr = 2;
+#endif
+}
+
diff --git a/GX-PAW/common/src/02_clib/gnu_tools.o b/GX-PAW/common/src/02_clib/gnu_tools.o
new file mode 100644
index 00000000..22d84fb6
Binary files /dev/null and b/GX-PAW/common/src/02_clib/gnu_tools.o differ
diff --git a/GX-PAW/common/src/02_clib/lib02_clib.a b/GX-PAW/common/src/02_clib/lib02_clib.a
new file mode 100644
index 00000000..ad5cb69b
Binary files /dev/null and b/GX-PAW/common/src/02_clib/lib02_clib.a differ
diff --git a/GX-PAW/common/src/02_clib/m_clib.F90 b/GX-PAW/common/src/02_clib/m_clib.F90
new file mode 100644
index 00000000..a89387ac
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/m_clib.F90
@@ -0,0 +1,237 @@
+!!****m* ABINIT/m_clib
+!! NAME
+!! m_clib
+!!
+!! FUNCTION
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+MODULE m_clib
+
+ use, intrinsic :: iso_c_binding
+
+ implicit none
+
+ private
+
+ public :: clib_rename ! Rename a file with a new name using the rename function from C stdlib
+ public :: clib_cclock
+ public :: clib_etime
+ public :: clib_mtrace
+ public :: clib_print_mallinfo
+ public :: clib_ulimit_stack ! Set stack size limit to maximum allowed value.
+ public :: clib_getpid
+ !public :: clib_usleep ! Suspend calling thread for microseconds of clock time
+
+
+!FIXME the interfaces below have been commented out since abilint
+! JB : because interface must have a name in abilint
+
+! ===================================================
+! ==== Fortran-bindings declared in fsi_posix.c ====
+! ===================================================
+! interface
+! subroutine clib_mkdir(path, ierr)
+! import
+! character(len=*),intent(in) :: path
+! integer(c_int),intent(out) :: ierr
+! end subroutine clib_mkdir
+! end interface
+!
+
+ interface
+ integer(c_int) function c_rename(oldname, newname) bind(C, name='rename')
+ import
+ character(kind=c_char),intent(in) :: oldname(*)
+ character(kind=c_char),intent(in) :: newname(*)
+ end function c_rename
+ end interface
+
+ interface
+ subroutine clib_cclock(cpu) bind(C, name="cclock")
+ import
+ real(c_double),intent(out) :: cpu
+ end subroutine clib_cclock
+ end interface
+
+ interface
+ real(c_double) function clib_etime(tt) bind(C, name="etime") result(res)
+ import
+ real(c_float),intent(out) :: tt(2)
+ end function clib_etime
+ end interface
+
+ interface
+ ! pid_t getpid().
+ ! The type of pid_t data is a signed integer type (signed int or we can say int).
+ function clib_getpid() bind(C, name='getpid')
+ import
+ integer(c_int) :: clib_getpid
+ end function clib_getpid
+ end interface
+
+! =================================================
+! ==== Fortran-bindings declared in mallinfo.c ====
+! =================================================
+ interface
+ subroutine clib_mallinfo(arena, hblkhd, usmblks, fsmblks, uordblks, fordblks) bind(C, name="clib_mallinfo")
+ import
+ integer(c_long),intent(out) :: arena, hblkhd, usmblks, fsmblks, uordblks, fordblks
+ end subroutine clib_mallinfo
+ end interface
+
+! ==================================================
+! ==== Fortran-bindings declared in gnu_tools.c ====
+! ==================================================
+
+ interface
+ subroutine clib_mtrace(ierr) bind(C, name="clib_mtrace")
+ import
+ integer(c_int),intent(out) :: ierr
+ end subroutine
+ end interface
+
+ interface
+ subroutine clib_muntrace(ierr) bind(C, name="clib_muntrace")
+ import
+ integer(c_int),intent(out) :: ierr
+ end subroutine
+ end interface
+
+ interface
+ subroutine clib_mcheck(ierr) bind(C, name="clib_mcheck")
+ import
+ integer(c_int),intent(out) :: ierr
+ end subroutine
+ end interface
+
+ interface
+ ! Set stack size limit to maximum allowed value. Return soft and hard limit and exit status.
+ subroutine clib_ulimit_stack(rlim_cur, rlim_max, ierr) bind(C, name="ulimit_stack")
+ import
+ integer(c_long),intent(out) :: rlim_cur, rlim_max
+ integer(c_int),intent(out) :: ierr
+ end subroutine
+ end interface
+
+ !interface
+ ! ! suspend calling thread for microseconds of clock time
+ ! ! uses unistd.h for Fortran standard compliant sleep.
+ ! ! sleep() is a GNU extension, not standard Fortran
+ ! subroutine usleep(us) bind(C)
+ ! import
+ ! integer(c_int), value :: us
+ ! end subroutine usleep
+ !end interface
+
+ !interface
+ ! ! int usleep(useconds_t useconds)
+ ! function clib_usleep(useconds) bind(c, name='usleep')
+ ! import
+ ! integer(kind=c_int32_t), value :: useconds
+ ! integer(kind=c_int) :: c_usleep
+ ! end function clib_usleep
+ !end interface
+
+! ==========================================
+! ==== Fortran-bindings for file_lock.c ====
+! ==========================================
+
+ !interface
+ ! function lock_file(path) bind(C)
+ ! import
+ ! implicit none
+ ! character(kind=c_char),intent(in) :: path(*)
+ ! integer(c_int) :: lock_file
+ ! end function lock_file
+ !end interface
+
+ !interface
+ ! function unlock_fd(fd) bind(C)
+ ! import
+ ! implicit none
+ ! integer(c_int),value,intent(in) :: fd
+ ! integer(c_int) unlock_fd
+ ! end function unlock_fd
+ !end interface
+
+
+contains
+!!***
+
+!!****f* m_clib/clib_print_fmallinfo
+!! NAME
+!! clib_print_fmallinfo
+!!
+!! FUNCTION
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine clib_print_mallinfo(unit)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: unit
+
+!Local variables-------------------------------
+ integer(c_long) :: arena,hblkhd,usmblks,fsmblks,uordblks,fordblks
+! *********************************************************************
+
+ call clib_mallinfo(arena, hblkhd, usmblks, fsmblks, uordblks, fordblks)
+
+ write(unit,*)""
+ write(unit,*)"--- !Mallinfo"
+ write(unit,*)' Total space in arena: ',arena
+ write(unit,*)' Space in holding block headers: ',hblkhd
+ write(unit,*)' Space in small blocks in use: ',usmblks
+ write(unit,*)' Space in free small blocks: ',fsmblks
+ write(unit,*)' Space in ordinary blocks in use: ',uordblks
+ write(unit,*)' Space in free ordinary blocks: ',fordblks
+ write(unit,*)"..."
+ write(unit,*)""
+
+end subroutine clib_print_mallinfo
+!!***
+
+!!****f* m_clib/clib_rename
+!! NAME
+!! clib_rename
+!!
+!! FUNCTION
+!! Rename a file with a new name using the rename function from C stdlib
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+integer function clib_rename(old_fname, new_fname) result(ierr)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: old_fname, new_fname
+
+! *********************************************************************
+
+ ierr = c_rename(trim(old_fname)//c_null_char, trim(new_fname)//c_null_char)
+
+end function clib_rename
+!!***
+
+END MODULE m_clib
+!!***
diff --git a/GX-PAW/common/src/02_clib/m_clib.o b/GX-PAW/common/src/02_clib/m_clib.o
new file mode 100644
index 00000000..a8bdb55f
Binary files /dev/null and b/GX-PAW/common/src/02_clib/m_clib.o differ
diff --git a/GX-PAW/common/src/02_clib/m_fsockets.F90 b/GX-PAW/common/src/02_clib/m_fsockets.F90
new file mode 100644
index 00000000..5ac2de6b
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/m_fsockets.F90
@@ -0,0 +1,218 @@
+!F90 ISO_C_BINDING wrapper for socket communication.
+!MG got it from https://github.com/i-pi/i-pi/tree/master/drivers
+
+!Copyright (C) 2013, Michele Ceriotti
+
+!Permission is hereby granted, free of charge, to any person obtaining
+!a copy of this software and associated documentation files (the
+!"Software"), to deal in the Software without restriction, including
+!without limitation the rights to use, copy, modify, merge, publish,
+!distribute, sublicense, and/or sell copies of the Software, and to
+!permit persons to whom the Software is furnished to do so, subject to
+!the following conditions:
+
+!The above copyright notice and this permission notice shall be included
+!in all copies or substantial portions of the Software.
+
+!THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+!EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+!MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+!IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+!CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+!TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+!SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+!Contains both the functions that transmit data to the socket and read the data
+!back out again once finished, and the function which opens the socket initially.
+
+!Functions:
+! open_socket: Opens a socket with the required host server, socket type and port number.
+! write_buffer: Writes a string to the socket.
+! read_buffer: Reads data from the socket.
+
+MODULE m_fsockets
+
+ use, intrinsic :: iso_c_binding
+
+ IMPLICIT NONE
+
+ INTERFACE writebuffer
+ MODULE PROCEDURE writebuffer_s, writebuffer_d, writebuffer_dv, writebuffer_i
+ END INTERFACE writebuffer
+
+ INTERFACE readbuffer
+ MODULE PROCEDURE readbuffer_s, readbuffer_dv, readbuffer_d, readbuffer_i
+ END INTERFACE readbuffer
+
+ INTERFACE
+ SUBROUTINE open_csocket(psockfd, inet, port, host) BIND(C, name="open_socket")
+ use, intrinsic :: iso_c_binding
+ INTEGER(KIND=C_INT) :: psockfd, inet, port
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: host
+ END SUBROUTINE open_csocket
+
+ SUBROUTINE writebuffer_csocket(psockfd, pdata, plen) BIND(C, name="writebuffer")
+ use, intrinsic :: iso_c_binding
+ INTEGER(KIND=C_INT) :: psockfd
+ TYPE(C_PTR), VALUE :: pdata
+ INTEGER(KIND=C_INT) :: plen
+ END SUBROUTINE writebuffer_csocket
+
+ SUBROUTINE readbuffer_csocket(psockfd, pdata, plen) BIND(C, name="readbuffer")
+ use, intrinsic :: iso_c_binding
+ INTEGER(KIND=C_INT) :: psockfd
+ TYPE(C_PTR), VALUE :: pdata
+ INTEGER(KIND=C_INT) :: plen
+ END SUBROUTINE readbuffer_csocket
+ END INTERFACE
+
+CONTAINS
+
+ SUBROUTINE open_socket(psockfd, inet, port, host)
+ INTEGER, INTENT(IN) :: inet, port
+ INTEGER, INTENT(OUT) :: psockfd
+ CHARACTER(LEN=1024), INTENT(IN) :: host
+ CHARACTER(LEN=1,KIND=C_CHAR) :: chost(1024)
+
+ CALL fstr2cstr(host, chost)
+ CALL open_csocket(psockfd, inet, port, host)
+ END SUBROUTINE open_socket
+
+ SUBROUTINE fstr2cstr(fstr, cstr, plen)
+ CHARACTER(LEN=*), INTENT(IN) :: fstr
+ CHARACTER(LEN=1,KIND=C_CHAR), INTENT(OUT) :: cstr(:)
+ INTEGER, INTENT(IN), OPTIONAL :: plen
+
+ INTEGER i,n
+ IF (PRESENT(plen)) THEN
+ n = plen
+ DO i=1,n
+ cstr(i) = fstr(i:i)
+ ENDDO
+ ELSE
+ n = LEN_TRIM(fstr)
+ DO i=1,n
+ cstr(i) = fstr(i:i)
+ ENDDO
+ cstr(n+1) = C_NULL_CHAR
+ END IF
+ END SUBROUTINE fstr2cstr
+
+ SUBROUTINE writebuffer_d (psockfd, fdata)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd
+ REAL(KIND=8), INTENT(IN) :: fdata
+
+ REAL(KIND=C_DOUBLE), TARGET :: cdata
+
+ cdata = fdata
+ CALL writebuffer_csocket(psockfd, c_loc(cdata), 8)
+ END SUBROUTINE writebuffer_d
+
+ SUBROUTINE writebuffer_i (psockfd, fdata)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd, fdata
+
+ INTEGER(KIND=C_INT), TARGET :: cdata
+
+ cdata = fdata
+ CALL writebuffer_csocket(psockfd, c_loc(cdata), 4)
+ END SUBROUTINE writebuffer_i
+
+ SUBROUTINE writebuffer_s (psockfd, fstring, plen)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd
+ CHARACTER(LEN=*), INTENT(IN) :: fstring
+ INTEGER, INTENT(IN) :: plen
+
+ INTEGER :: i
+ CHARACTER(LEN=1, KIND=C_CHAR), TARGET :: cstring(plen)
+
+ DO i = 1,plen
+ cstring(i) = fstring(i:i)
+ ENDDO
+ CALL writebuffer_csocket(psockfd, c_loc(cstring(1)), plen)
+ END SUBROUTINE writebuffer_s
+
+ SUBROUTINE writebuffer_dv(psockfd, fdata, plen)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd, plen
+ REAL(KIND=8), INTENT(IN), TARGET :: fdata(plen)
+
+ CALL writebuffer_csocket(psockfd, c_loc(fdata(1)), 8*plen)
+ END SUBROUTINE writebuffer_dv
+
+ SUBROUTINE readbuffer_d (psockfd, fdata)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd
+ REAL(KIND=8), INTENT(OUT) :: fdata
+
+ REAL(KIND=C_DOUBLE), TARGET :: cdata
+
+ CALL readbuffer_csocket(psockfd, c_loc(cdata), 8)
+ fdata=cdata
+ END SUBROUTINE readbuffer_d
+
+ SUBROUTINE readbuffer_i (psockfd, fdata)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd
+ INTEGER, INTENT(OUT) :: fdata
+
+ INTEGER(KIND=C_INT), TARGET :: cdata
+
+ CALL readbuffer_csocket(psockfd, c_loc(cdata), 4)
+ fdata = cdata
+ END SUBROUTINE readbuffer_i
+
+ SUBROUTINE readbuffer_s (psockfd, fstring, plen)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd
+ CHARACTER(LEN=*), INTENT(OUT) :: fstring
+ INTEGER, INTENT(IN) :: plen
+
+ INTEGER :: i
+ CHARACTER(LEN=1, KIND=C_CHAR), TARGET :: cstring(plen)
+
+ CALL readbuffer_csocket(psockfd, c_loc(cstring(1)), plen)
+ fstring=""
+ DO i = 1,plen
+ fstring(i:i) = cstring(i)
+ ENDDO
+ END SUBROUTINE readbuffer_s
+
+ SUBROUTINE readbuffer_dv(psockfd, fdata, plen)
+ use, intrinsic :: iso_c_binding
+ INTEGER, INTENT(IN) :: psockfd, plen
+ REAL(KIND=8), INTENT(OUT), TARGET :: fdata(plen)
+
+ CALL readbuffer_csocket(psockfd, c_loc(fdata(1)), 8*plen)
+ END SUBROUTINE readbuffer_dv
+
+ SUBROUTINE socket_from_string (srvaddress, socket)
+ CHARACTER(len=*), INTENT(IN) :: srvaddress
+ integer, INTENT(out) :: socket
+ CHARACTER(len=len_trim(srvaddress)) :: address
+ INTEGER :: port, inet, field_sep_pos
+
+ ! Parses host name, port and socket type
+ field_sep_pos = INDEX(srvaddress, ':', back=.true.)
+ address = srvaddress(1:field_sep_pos-1)
+
+ ! Check if UNIX type socket
+ IF (trim(srvaddress(field_sep_pos+1 :)) == 'UNIX') then
+ port = 1234 ! just a place-holder
+ inet = 0
+ !write(*,*) " Connecting to `", trim(address), "` using UNIX socket"
+ ELSE
+ read ( srvaddress ( field_sep_pos+1 : ), * ) port
+ inet = 1
+ !write(*,*) " Connecting to `", trim(address), ":", srvaddress (field_sep_pos+1:), " using INET socket"
+ END IF
+
+ ! Create the socket
+ CALL open_socket (socket, inet, port, trim(address)//achar(0))
+
+ END SUBROUTINE socket_from_string
+
+END MODULE m_fsockets
diff --git a/GX-PAW/common/src/02_clib/m_fsockets.o b/GX-PAW/common/src/02_clib/m_fsockets.o
new file mode 100644
index 00000000..aad38c24
Binary files /dev/null and b/GX-PAW/common/src/02_clib/m_fsockets.o differ
diff --git a/GX-PAW/common/src/02_clib/mallinfo.c b/GX-PAW/common/src/02_clib/mallinfo.c
new file mode 100644
index 00000000..e5c0cef2
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/mallinfo.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2009-2024 ABINIT group (MG)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "abi_clib.h"
+
+void clib_mallinfo
+ (long int *arena, long int *hblkhd, long int *usmblks, long int *fsmblks, long int *uordblks, long int *fordblks)
+{
+#ifdef HAVE_MALLINFO
+ struct mallinfo info = mallinfo();
+ *arena = info.arena;
+ *hblkhd = info.hblkhd;
+ *usmblks = info.usmblks;
+ *fsmblks = info.fsmblks;
+ *uordblks = info.uordblks;
+ *fordblks = info.fordblks;
+#else
+ *arena = -1.0;
+ *hblkhd = -1.0;
+ *usmblks = -1.0;
+ *fsmblks = -1.0;
+ *uordblks = -1.0;
+ *fordblks = -1.0;
+#endif
+}
+
+
+/* SVID2/XPG mallinfo structure */
+#if 0
+struct mallinfo {
+ int arena; /* non-mmapped space allocated from system */
+ int ordblks; /* number of free chunks */
+ int smblks; /* number of fastbin blocks */
+ int hblks; /* number of mmapped regions */
+ int hblkhd; /* space in mmapped regions */
+ int usmblks; /* maximum total allocated space */
+ int fsmblks; /* space available in freed fastbin blocks */
+ int uordblks; /* total allocated space */
+ int fordblks; /* total free space */
+ int keepcost; /* top-most, releasable (via malloc_trim) space */
+};
+#endif
diff --git a/GX-PAW/common/src/02_clib/mallinfo.o b/GX-PAW/common/src/02_clib/mallinfo.o
new file mode 100644
index 00000000..3e8b0371
Binary files /dev/null and b/GX-PAW/common/src/02_clib/mallinfo.o differ
diff --git a/GX-PAW/common/src/02_clib/md5.c b/GX-PAW/common/src/02_clib/md5.c
new file mode 100644
index 00000000..62cbe3c3
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/md5.c
@@ -0,0 +1,354 @@
+/*
+ * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
+ * MD5 Message-Digest Algorithm (RFC 1321).
+ *
+ * Homepage:
+ * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
+ *
+ * Author:
+ * Alexander Peslyak, better known as Solar Designer
+ *
+ * This software was written by Alexander Peslyak in 2001. No copyright is
+ * claimed, and the software is hereby placed in the public domain.
+ * In case this attempt to disclaim copyright and place the software in the
+ * public domain is deemed null and void, then the software is
+ * Copyright (C) 2001 Alexander Peslyak and it is hereby released to the
+ * general public under the following terms:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted.
+ *
+ * There's ABSOLUTELY NO WARRANTY, express or implied.
+ *
+ * (This is a heavily cut-down "BSD license".)
+ *
+ * This differs from Colin Plumb's older public domain implementation in that
+ * no exactly 32-bit integer data type is required (any 32-bit or wider
+ * unsigned integer data type will do), there's no compile-time endianness
+ * configuration, and the function prototypes match OpenSSL's. No code from
+ * Colin Plumb's implementation has been reused; this comment merely compares
+ * the properties of the two independent implementations.
+ *
+ * The primary goals of this implementation are portability and ease of use.
+ * It is meant to be fast, but not as fast as possible. Some known
+ * optimizations are not included to reduce source code size and avoid
+ * compile-time configuration.
+ *
+ * This file has been adapted to Abinit by Yann Pouillon.
+ */
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include
+#include
+#include
+#ifdef HAVE_MALLOC_MALLOC_H
+# include
+#elif HAVE_MALLOC_H
+# include
+#endif
+
+#include "md5.h"
+
+/*
+ * The basic MD5 functions.
+ *
+ * F and G are optimized compared to their RFC 1321 definitions for
+ * architectures that lack an AND-NOT instruction, just like in Colin Plumb's
+ * implementation.
+ */
+#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
+#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y))))
+#define H(x, y, z) (((x) ^ (y)) ^ (z))
+#define H2(x, y, z) ((x) ^ ((y) ^ (z)))
+#define I(x, y, z) ((y) ^ ((x) | ~(z)))
+
+/*
+ * The MD5 transformation for all four rounds.
+ */
+#define STEP(f, a, b, c, d, x, t, s) \
+ (a) += f((b), (c), (d)) + (x) + (t); \
+ (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
+ (a) += (b);
+
+/*
+ * SET reads 4 input bytes in little-endian byte order and stores them
+ * in a properly aligned word in host byte order.
+ *
+ * The check for little-endian architectures that tolerate unaligned
+ * memory accesses is just an optimization. Nothing will break if it
+ * doesn't work.
+ */
+#if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
+#define SET(n) \
+ (*(MD5_u32plus *)&ptr[(n) * 4])
+#define GET(n) \
+ SET(n)
+#else
+#define SET(n) \
+ (ctx->block[(n)] = \
+ (MD5_u32plus)ptr[(n) * 4] | \
+ ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
+ ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
+ ((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
+#define GET(n) \
+ (ctx->block[(n)])
+#endif
+
+/*
+ * This processes one or more 64-byte data blocks, but does NOT update
+ * the bit counters. There are no alignment requirements.
+ */
+static const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
+{
+ const unsigned char *ptr;
+ MD5_u32plus a, b, c, d;
+ MD5_u32plus saved_a, saved_b, saved_c, saved_d;
+
+ ptr = (const unsigned char *)data;
+
+ a = ctx->a;
+ b = ctx->b;
+ c = ctx->c;
+ d = ctx->d;
+
+ do {
+ saved_a = a;
+ saved_b = b;
+ saved_c = c;
+ saved_d = d;
+
+ /* Round 1 */
+ STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7)
+ STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12)
+ STEP(F, c, d, a, b, SET(2), 0x242070db, 17)
+ STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22)
+ STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7)
+ STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12)
+ STEP(F, c, d, a, b, SET(6), 0xa8304613, 17)
+ STEP(F, b, c, d, a, SET(7), 0xfd469501, 22)
+ STEP(F, a, b, c, d, SET(8), 0x698098d8, 7)
+ STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12)
+ STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17)
+ STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22)
+ STEP(F, a, b, c, d, SET(12), 0x6b901122, 7)
+ STEP(F, d, a, b, c, SET(13), 0xfd987193, 12)
+ STEP(F, c, d, a, b, SET(14), 0xa679438e, 17)
+ STEP(F, b, c, d, a, SET(15), 0x49b40821, 22)
+
+ /* Round 2 */
+ STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5)
+ STEP(G, d, a, b, c, GET(6), 0xc040b340, 9)
+ STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14)
+ STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20)
+ STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5)
+ STEP(G, d, a, b, c, GET(10), 0x02441453, 9)
+ STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14)
+ STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20)
+ STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5)
+ STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9)
+ STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14)
+ STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20)
+ STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5)
+ STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9)
+ STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14)
+ STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20)
+
+ /* Round 3 */
+ STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
+ STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11)
+ STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
+ STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23)
+ STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
+ STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11)
+ STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
+ STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23)
+ STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
+ STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11)
+ STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
+ STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23)
+ STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
+ STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11)
+ STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
+ STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23)
+
+ /* Round 4 */
+ STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
+ STEP(I, d, a, b, c, GET(7), 0x432aff97, 10)
+ STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15)
+ STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21)
+ STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6)
+ STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10)
+ STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15)
+ STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21)
+ STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6)
+ STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10)
+ STEP(I, c, d, a, b, GET(6), 0xa3014314, 15)
+ STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21)
+ STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6)
+ STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10)
+ STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15)
+ STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21)
+
+ a += saved_a;
+ b += saved_b;
+ c += saved_c;
+ d += saved_d;
+
+ ptr += 64;
+ } while (size -= 64);
+
+ ctx->a = a;
+ ctx->b = b;
+ ctx->c = c;
+ ctx->d = d;
+
+ return ptr;
+}
+
+/*
+ * This allocates memory for a MD5 context, in order to be easily usable
+ * from Fortran.
+ */
+MD5_CTX *MD5_Context_New() {
+ MD5_CTX *ctx;
+
+ ctx = (MD5_CTX *) malloc(sizeof(MD5_CTX));
+
+ return ctx;
+}
+
+/*
+ * This is a convenience routine to read the file directly from C,
+ * because Fortran messes up everything.
+ */
+#define BUFSIZE 1024*16
+#if !defined(_OSD_POSIX) && !defined(__DJGPP__)
+int read(int, void *, unsigned int);
+#endif
+void MD5_Digest_File(const char *path, char *result) {
+ unsigned char buffer[BUFSIZE];
+ int fd;
+ unsigned long bytes;
+ FILE *fc;
+ MD5_CTX ctx;
+
+ result[0] = '\0';
+
+ fc = fopen(path, "r");
+ if ( fc != NULL ) {
+ MD5_Init(&ctx);
+ fd=fileno(fc);
+ for (;;) {
+ bytes = read(fd, (void *)buffer, BUFSIZE);
+ if ( bytes <= 0 ) break;
+ MD5_Update(&ctx, buffer, bytes);
+ }
+ MD5_Final(result, &ctx);
+ }
+}
+
+void MD5_Final(char *result, MD5_CTX *ctx)
+{
+ unsigned char buffer[17];
+ unsigned long used, available;
+ int i;
+
+ used = ctx->lo & 0x3f;
+
+ ctx->buffer[used++] = 0x80;
+
+ available = 64 - used;
+
+ if (available < 8) {
+ memset(&ctx->buffer[used], 0, available);
+ body(ctx, ctx->buffer, 64);
+ used = 0;
+ available = 64;
+ }
+
+ memset(&ctx->buffer[used], 0, available - 8);
+
+ ctx->lo <<= 3;
+ ctx->buffer[56] = ctx->lo;
+ ctx->buffer[57] = ctx->lo >> 8;
+ ctx->buffer[58] = ctx->lo >> 16;
+ ctx->buffer[59] = ctx->lo >> 24;
+ ctx->buffer[60] = ctx->hi;
+ ctx->buffer[61] = ctx->hi >> 8;
+ ctx->buffer[62] = ctx->hi >> 16;
+ ctx->buffer[63] = ctx->hi >> 24;
+
+ body(ctx, ctx->buffer, 64);
+
+ buffer[0] = ctx->a;
+ buffer[1] = ctx->a >> 8;
+ buffer[2] = ctx->a >> 16;
+ buffer[3] = ctx->a >> 24;
+ buffer[4] = ctx->b;
+ buffer[5] = ctx->b >> 8;
+ buffer[6] = ctx->b >> 16;
+ buffer[7] = ctx->b >> 24;
+ buffer[8] = ctx->c;
+ buffer[9] = ctx->c >> 8;
+ buffer[10] = ctx->c >> 16;
+ buffer[11] = ctx->c >> 24;
+ buffer[12] = ctx->d;
+ buffer[13] = ctx->d >> 8;
+ buffer[14] = ctx->d >> 16;
+ buffer[15] = ctx->d >> 24;
+
+ memset(ctx, 0, sizeof(*ctx));
+
+ for (i = 0; i < 16; i++) {
+ sprintf(result+i*2, "%2.2x", buffer[i]);
+ }
+ result[32] = '\0';
+}
+
+void MD5_Init(MD5_CTX *ctx)
+{
+ ctx->a = 0x67452301;
+ ctx->b = 0xefcdab89;
+ ctx->c = 0x98badcfe;
+ ctx->d = 0x10325476;
+
+ ctx->lo = 0;
+ ctx->hi = 0;
+}
+
+void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
+{
+ MD5_u32plus saved_lo;
+ unsigned long used, available;
+
+ saved_lo = ctx->lo;
+ if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
+ ctx->hi++;
+ ctx->hi += size >> 29;
+
+ used = saved_lo & 0x3f;
+
+ if (used) {
+ available = 64 - used;
+
+ if (size < available) {
+ memcpy(&ctx->buffer[used], data, size);
+ return;
+ }
+
+ memcpy(&ctx->buffer[used], data, available);
+ data = (const unsigned char *)data + available;
+ size -= available;
+ body(ctx, ctx->buffer, 64);
+ }
+
+ if (size >= 64) {
+ data = body(ctx, data, size & ~(unsigned long)0x3f);
+ size &= 0x3f;
+ }
+
+ memcpy(ctx->buffer, data, size);
+}
diff --git a/GX-PAW/common/src/02_clib/md5.h b/GX-PAW/common/src/02_clib/md5.h
new file mode 100644
index 00000000..9ce729f8
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/md5.h
@@ -0,0 +1,47 @@
+/*
+ * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
+ * MD5 Message-Digest Algorithm (RFC 1321).
+ *
+ * Homepage:
+ * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
+ *
+ * Author:
+ * Alexander Peslyak, better known as Solar Designer
+ *
+ * This software was written by Alexander Peslyak in 2001. No copyright is
+ * claimed, and the software is hereby placed in the public domain.
+ * In case this attempt to disclaim copyright and place the software in the
+ * public domain is deemed null and void, then the software is
+ * Copyright (C) 2001 Alexander Peslyak and it is hereby released to the
+ * general public under the following terms:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted.
+ *
+ * There's ABSOLUTELY NO WARRANTY, express or implied.
+ *
+ * See md5.c for more information.
+ *
+ * This file has been adapted to Abinit by Yann Pouillon.
+ */
+
+#if !defined(_MD5_H)
+#define _MD5_H
+
+/* Any 32-bit or wider unsigned integer data type will do */
+typedef unsigned int MD5_u32plus;
+
+typedef struct {
+ MD5_u32plus lo, hi;
+ MD5_u32plus a, b, c, d;
+ unsigned char buffer[64];
+ MD5_u32plus block[16];
+} MD5_CTX;
+
+extern MD5_CTX *MD5_Context_New(void);
+extern void MD5_Digest_File(const char *path, char *result);
+extern void MD5_Final(char *result, MD5_CTX *ctx);
+extern void MD5_Init(MD5_CTX *ctx);
+extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
+
+#endif
diff --git a/GX-PAW/common/src/02_clib/md5.o b/GX-PAW/common/src/02_clib/md5.o
new file mode 100644
index 00000000..f9e19a62
Binary files /dev/null and b/GX-PAW/common/src/02_clib/md5.o differ
diff --git a/GX-PAW/common/src/02_clib/rlimit.c b/GX-PAW/common/src/02_clib/rlimit.c
new file mode 100644
index 00000000..66062187
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/rlimit.c
@@ -0,0 +1,37 @@
+#include
+#include
+#include
+
+/*
+ * Set stack size limit to maximum allowed value. Return soft and hard limit and exit status.
+ * */
+
+void ulimit_stack(long int *rlim_cur, long int *rlim_max, int *ierr) {
+
+ int result;
+ struct rlimit rlim = {RLIM_INFINITY, RLIM_INFINITY};
+ /* From https://linux.die.net/man/2/getrlimit
+ struct rlimit {
+ rlim_t rlim_cur; Soft limit
+ rlim_t rlim_max; Hard limit (ceiling for rlim_cur)
+ }; */
+
+ /* Try to set both soft and hard limits to INFINITY */
+ result = setrlimit(RLIMIT_STACK, &rlim);
+ if (result == -1) {
+ /* Try to set soft == sys hard */
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0) {
+ rlim.rlim_cur = rlim.rlim_max;
+ result = setrlimit(RLIMIT_STACK, &rlim);
+ }
+ }
+
+ *ierr = result;
+ *rlim_cur = -1;
+ *rlim_max = -1;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0) {
+ *rlim_cur = rlim.rlim_cur;
+ *rlim_max = rlim.rlim_max;
+ }
+
+}
diff --git a/GX-PAW/common/src/02_clib/rlimit.o b/GX-PAW/common/src/02_clib/rlimit.o
new file mode 100644
index 00000000..1b2f7b7f
Binary files /dev/null and b/GX-PAW/common/src/02_clib/rlimit.o differ
diff --git a/GX-PAW/common/src/02_clib/sockets.c b/GX-PAW/common/src/02_clib/sockets.c
new file mode 100644
index 00000000..46f82aa4
--- /dev/null
+++ b/GX-PAW/common/src/02_clib/sockets.c
@@ -0,0 +1,175 @@
+/* A minimal wrapper for socket communication.
+
+MG got it from https://github.com/i-pi/i-pi/tree/master/drivers
+
+Copyright (C) 2013, Joshua More and Michele Ceriotti
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Contains both the functions that transmit data to the socket and read the data
+back out again once finished, and the function which opens the socket initially.
+Can be linked to a FORTRAN code that does not support sockets natively.
+
+Functions:
+ error: Prints an error message and then exits.
+ open_socket_: Opens a socket with the required host server, socket type and
+ port number.
+ write_buffer_: Writes a string to the socket.
+ read_buffer_: Reads data from the socket.
+*/
+
+#include
+#include
+
+#ifdef HAVE_CONFIG_H
+#include
+#endif
+
+#define HAVE_SOCKETS
+/*
+#undef HAVE_SOCKETS
+*/
+
+#ifdef HAVE_SOCKETS
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+void open_socket(int *psockfd, int* inet, int* port, const char* host)
+/* Opens a socket.
+
+Note that fortran passes an extra argument for the string length, but this is
+ignored here for C compatibility.
+
+Args:
+ psockfd: The id of the socket that will be created.
+ inet: An integer that determines whether the socket will be an inet or unix
+ domain socket. Gives unix if 0, inet otherwise.
+ port: The port number for the socket to be created. Low numbers are often
+ reserved for important channels, so use of numbers of 4 or more digits is
+ recommended.
+ host: The name of the host server.
+*/
+
+{
+ int sockfd, ai_err;
+
+ if (*inet>0)
+ { // creates an internet socket
+
+ // fetches information on the host
+ struct addrinfo hints, *res;
+ char service[256];
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_family = AF_INET;
+ hints.ai_flags = AI_PASSIVE;
+
+ sprintf(service,"%d",*port); // convert the port number to a string
+ ai_err = getaddrinfo(host, service, &hints, &res);
+ if (ai_err!=0) { perror("Error fetching host data. Wrong host name?"); exit(-1); }
+
+ // creates socket
+ sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+ if (sockfd < 0) { perror("Error opening socket"); exit(-1); }
+
+ // makes connection
+ if (connect(sockfd, res->ai_addr, res->ai_addrlen) < 0)
+ { perror("Error opening INET socket: wrong port or server unreachable"); exit(-1); }
+ freeaddrinfo(res);
+ }
+ else
+ {
+ struct sockaddr_un serv_addr;
+
+ // fills up details of the socket addres
+ memset(&serv_addr, 0, sizeof(serv_addr));
+ serv_addr.sun_family = AF_UNIX;
+ strcpy(serv_addr.sun_path, "/tmp/ipi_");
+ strcpy(serv_addr.sun_path+9, host);
+ // creates a unix socket
+
+ // creates the socket
+ sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
+
+ // connects
+ if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
+ { perror("Error opening UNIX socket: path unavailable, or already existing"); exit(-1); }
+ }
+
+
+ *psockfd=sockfd;
+}
+
+void writebuffer(int *psockfd, const char *data, int* plen)
+/* Writes to a socket.
+
+Args:
+ psockfd: The id of the socket that will be written to.
+ data: The data to be written to the socket.
+ plen: The length of the data in bytes.
+*/
+
+{
+ int n;
+ int sockfd=*psockfd;
+ int len=*plen;
+
+ n = write(sockfd,data,len);
+ if (n < 0) { perror("Error writing to socket: server has quit or connection broke"); exit(-1); }
+}
+
+
+void readbuffer(int *psockfd, char *data, int* plen)
+/* Reads from a socket.
+
+Args:
+ psockfd: The id of the socket that will be read from.
+ data: The storage array for data read from the socket.
+ plen: The length of the data in bytes.
+*/
+
+{
+ int n, nr;
+ int sockfd=*psockfd;
+ int len=*plen;
+
+ n = nr = read(sockfd,data,len);
+
+ while (nr>0 && n&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/10_defs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib10_defs_a_AR = $(AR) $(ARFLAGS)
+lib10_defs_a_LIBADD =
+am__objects_1 = defs_basis.$(OBJEXT) defs_datatypes.$(OBJEXT)
+am_lib10_defs_a_OBJECTS = $(am__objects_1)
+lib10_defs_a_OBJECTS = $(am_lib10_defs_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib10_defs_a_SOURCES)
+DIST_SOURCES = $(lib10_defs_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/10_defs
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/10_defs
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ \
+
+
+
+# Regular source files
+lib10_defs_srcs = \
+ defs_basis.F90 \
+ defs_datatypes.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib10_defs.a
+lib10_defs_a_SOURCES = $(lib10_defs_srcs)
+
+# Dependencies (inside the directory) of directory 10_defs
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = defs_basis_cpp.f90 defs_datatypes_cpp.f90 \
+ defs_basis.$(MODEXT) defs_datatypes.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _10_defs_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/10_defs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/10_defs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib10_defs.a: $(lib10_defs_a_OBJECTS) $(lib10_defs_a_DEPENDENCIES) $(EXTRA_lib10_defs_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib10_defs.a
+ $(AM_V_AR)$(lib10_defs_a_AR) lib10_defs.a $(lib10_defs_a_OBJECTS) $(lib10_defs_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib10_defs.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+defs_datatypes.$(OBJEXT): defs_basis.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/10_defs/Makefile.am b/GX-PAW/common/src/10_defs/Makefile.am
new file mode 100644
index 00000000..3ff694ae
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/Makefile.am
@@ -0,0 +1,56 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_10_defs@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_bigdft_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib10_defs_srcs = \
+ defs_basis.F90 \
+ defs_datatypes.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib10_defs.a
+
+lib10_defs_a_SOURCES= $(lib10_defs_srcs)
+
+CLEANFILES = \
+ defs_basis_cpp.f90 \
+ defs_datatypes_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 10_defs
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ defs_basis.$(MODEXT) \
+ defs_datatypes.$(MODEXT)
+
+defs_datatypes.$(OBJEXT): defs_basis.$(OBJEXT)
+EXTRA_DIST += _10_defs_
diff --git a/GX-PAW/common/src/10_defs/Makefile.in b/GX-PAW/common/src/10_defs/Makefile.in
new file mode 100644
index 00000000..da0ae359
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/Makefile.in
@@ -0,0 +1,1456 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/10_defs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib10_defs_a_AR = $(AR) $(ARFLAGS)
+lib10_defs_a_LIBADD =
+am__objects_1 = defs_basis.$(OBJEXT) defs_datatypes.$(OBJEXT)
+am_lib10_defs_a_OBJECTS = $(am__objects_1)
+lib10_defs_a_OBJECTS = $(am_lib10_defs_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib10_defs_a_SOURCES)
+DIST_SOURCES = $(lib10_defs_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_10_defs@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_bigdft_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib10_defs_srcs = \
+ defs_basis.F90 \
+ defs_datatypes.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib10_defs.a
+lib10_defs_a_SOURCES = $(lib10_defs_srcs)
+
+# Dependencies (inside the directory) of directory 10_defs
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = defs_basis_cpp.f90 defs_datatypes_cpp.f90 \
+ defs_basis.$(MODEXT) defs_datatypes.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _10_defs_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/10_defs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/10_defs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib10_defs.a: $(lib10_defs_a_OBJECTS) $(lib10_defs_a_DEPENDENCIES) $(EXTRA_lib10_defs_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib10_defs.a
+ $(AM_V_AR)$(lib10_defs_a_AR) lib10_defs.a $(lib10_defs_a_OBJECTS) $(lib10_defs_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib10_defs.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+defs_datatypes.$(OBJEXT): defs_basis.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/10_defs/README b/GX-PAW/common/src/10_defs/README
new file mode 100644
index 00000000..35cec49b
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/README
@@ -0,0 +1,15 @@
+Adding a new source file inside a directory "dirname"
+=====================================================
+
+In order to be treated properly by the ABINIT build system,
+a new source file should be declared in the file abinit.src
+of the same directory (just one line to be added
+per new file, rather self-explanatory).
+
+Then, in order for the make to work :
+(1) if the developer has the autotools working on his computer, he should
+ issue */*/makemake, then configure and make
+(2) otherwise, the developer should modify by hand the Makefile.am file
+ of the directory in which the file is placed (just one line to be added also),
+ then issue make.
+
diff --git a/GX-PAW/common/src/10_defs/_10_defs_ b/GX-PAW/common/src/10_defs/_10_defs_
new file mode 100644
index 00000000..f3133c68
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/_10_defs_
@@ -0,0 +1,30 @@
+!!****d* ABINIT/defs
+!! NAME
+!! defs
+!!
+!! DESCRIPTION
+!! This directory contains
+!! - the defs_basis module, with
+!! the definitions of global parameters of the ABINIT package
+!! - other defs_* modules
+!! - interfaces_* of all directories included used libraries
+!! By definitions, one means :
+!! - constants that define data types
+!! (e.g.: dp , is used in real(dp) )
+!! - numerical constants (e.g.: zero , one , half , pi , ...)
+!! - physical constants (e.g.: Ha_eV=27.2113961_dp ! 1 Hartree, in eV)
+!! The other defs_* modules presently contain definition
+!! of derived datatypes.
+
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group (TD)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! defs_basis.F90
+!! defs_datatypes.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/10_defs/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/10_defs/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..6747edc2
Binary files /dev/null and b/GX-PAW/common/src/10_defs/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/10_defs/abinit.dep b/GX-PAW/common/src/10_defs/abinit.dep
new file mode 100644
index 00000000..31d9d70a
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/abinit.dep
@@ -0,0 +1,11 @@
+# Dependencies (inside the directory) of directory 10_defs
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ defs_basis.$(MODEXT) \
+ defs_datatypes.$(MODEXT)
+
+defs_datatypes.$(OBJEXT): defs_basis.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/10_defs/abinit.dir b/GX-PAW/common/src/10_defs/abinit.dir
new file mode 100644
index 00000000..122a4360
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 10_defs
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs']
\ No newline at end of file
diff --git a/GX-PAW/common/src/10_defs/abinit.src b/GX-PAW/common/src/10_defs/abinit.src
new file mode 100644
index 00000000..7b028440
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/abinit.src
@@ -0,0 +1,25 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 10_defs library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "defs_basis.F90",
+ "defs_datatypes.F90",
+]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/10_defs/defs_basis.F90 b/GX-PAW/common/src/10_defs/defs_basis.F90
new file mode 100644
index 00000000..42c49814
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/defs_basis.F90
@@ -0,0 +1,619 @@
+!!****m* ABINIT/defs_basis
+!! NAME
+!! defs_basis
+!!
+!! FUNCTION
+!! This module contains definitions for a number of named constants and
+!! physical constants, as well as associated datatypes and methods.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2000-2024 ABINIT group (HM, XG,XW, EB)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! Of the named constants,
+!! by far the most important are those that define the 'kind' types of
+!! virtually all the variables used in a (well-written) FORTRAN 90 code
+!! the content of this file is derived from 'Numerical Recipes in Fortran 90'
+!! W.H. Press et al., volume 2 of 'Fortran Numerical Recipes', Cambridge
+!! University Press, Second Edition (1996), p. 937 and 1361
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module defs_basis
+
+!#ifdef HAVE_FC_ISO_FORTRAN_2008
+! use ISO_FORTRAN_ENV, only : input_unit, output_unit, error_unit
+!#endif
+
+ implicit none
+
+!Keyword 'integer' stands for default integer type
+!and may be used whenever integer are presumed to be small
+
+!nb of bytes related to an integer subtype n such as -10^(argument) < n < 10^(argument) (this is standard F90)
+ integer, parameter :: i1b=selected_int_kind(2)
+ integer, parameter :: i2b=selected_int_kind(4)
+ integer, parameter :: i4b=selected_int_kind(9)
+ integer, parameter :: i8b=selected_int_kind(18)
+
+!nb of bytes related to default simple-precision real/complex subtypes
+!(= 4 for many machine architectures, = 8 for e.g. Cray)
+ integer, parameter :: sp=kind(1.0) ! Single precision should not be used
+ integer, parameter :: spc=kind((1.0,1.0))
+
+!nb of bytes related to default double-precision real/complex subtypes
+!(= 8 for many machine architectures)
+ integer, parameter :: dp=kind(1.0d0)
+ integer, parameter :: dpc=kind((1.0_dp,1.0_dp)) ! Complex should not be used presently
+ ! except for use of libraries
+
+!nb of bytes related to GW arrays, that can be tuned from sp to dp independently
+!of other variables in ABINIT. Presently single-precision is the default (see config/specs/options.conf)..
+#if defined HAVE_GW_DPC
+ integer, parameter :: gwp=kind(1.0d0)
+ integer, parameter :: gwpc=kind((1.0_dp,1.0_dp))
+
+#else
+ integer, parameter :: gwp=kind(1.0)
+ integer, parameter :: gwpc=kind((1.0,1.0))
+#endif
+
+!Example:
+! integer, parameter :: urp=selected_real_kind((p=)12,(r=)50)
+! real((kind=)urp) :: d
+! d=5.04876_urp ! for a real d with 12 significative digits
+! and such as 10^-50 < |d| < 10^50
+
+!To modify sp/spc and / or dp/dpc, insert instructions such as 'dp='
+! but do not modify the other declarations in this module
+
+!The default lengths
+! TODO: We should increase fnlen to be able to handle multiple pseudos paths in the input file
+! but it seems that increasing this value triggers bugs in the rest of code because people
+! do not trim input strings and use character(len=500) :: msg
+
+ integer, parameter :: fnlen=264 ! maximum length of file name variables
+ integer, parameter :: strlen=2000000 ! maximum length of input string
+
+ ! The input file used to run the code, set by parsefile.
+ ! It will be added to the netcdf files in ntck_open_create
+ character(len=strlen), save :: INPUT_STRING = ""
+
+ integer, parameter :: md5_slen = 32 ! lenght of strings storing the pseudos' md5 checksum.
+ character(len=md5_slen),parameter :: md5_none = "None"
+
+!Some constants:
+
+! UNIX unit numbers: standard input, standard output, ab_out, and a number for temporary access to a file.
+! Please, use these named constants instead of write(*,*),
+! it makes the code more readable and easier to change.
+
+!Default values
+ !integer, parameter :: std_in = input_unit
+ !integer, parameter :: ab_in = input_unit
+ !integer, parameter :: std_out_default = output_unit
+ !integer, parameter :: ab_out_default=7
+ !integer, parameter :: std_err = error_unit
+ integer, parameter :: std_in=5
+ integer, parameter :: ab_in=5
+ integer, parameter :: std_out_default=6
+ integer, parameter :: ab_out_default=7 ! TODO: This should be initialized at run-time.
+ integer, parameter :: std_err=0
+
+ integer, parameter :: dev_null=-1 ! Fake unit number used to skip the printing in wrtout.
+ integer, parameter :: ab_xml_out = 50 ! this unit is used to print output into an XML file
+ integer, parameter :: tmp_unit=9,tmp_unit2=10
+
+!These vars should be private and only modifiable via an appropriate method (see below)
+ integer, public, save :: ab_out = ab_out_default
+ integer, public, save :: std_out = std_out_default
+!It should be put to xmpi_world (but it is not possible for the moment - v6.9)
+ integer, public, save :: abinit_comm_output = -1 !This default value has to be changed at start !!!
+
+! the maximum length of a record in a file connected for sequential access.
+ integer,public,parameter :: ABI_RECL=524288 ! 2**19
+
+ integer,public,parameter :: MAX_NSHIFTK = 210
+ ! Maximun number of shifts in input k-mesh.
+
+!Real dp constants
+ real(dp), parameter :: zero=0._dp
+ real(dp), parameter :: one=1._dp
+ real(dp), parameter :: two=2._dp
+ real(dp), parameter :: three=3._dp
+ real(dp), parameter :: four=4._dp
+ real(dp), parameter :: five=5._dp
+ real(dp), parameter :: six=6._dp
+ real(dp), parameter :: seven=7._dp
+ real(dp), parameter :: eight=8._dp
+ real(dp), parameter :: nine=9._dp
+ real(dp), parameter :: ten=10._dp
+
+!Real sp constants
+ real(sp), parameter :: zero_sp=0._sp
+ real(sp), parameter :: one_sp=1._sp
+
+!Fractionary real constants
+ real(dp), parameter :: half=0.50_dp
+ real(dp), parameter :: onehalf=1.50_dp
+ real(dp), parameter :: third=one/three
+ real(dp), parameter :: quarter=0.25_dp
+ real(dp), parameter :: fifth=0.20_dp
+ real(dp), parameter :: sixth=one/six
+ real(dp), parameter :: seventh=one/seven
+ real(dp), parameter :: eighth=0.125_dp
+ real(dp), parameter :: ninth=one/nine
+ real(dp), parameter :: two_thirds=two*third
+ real(dp), parameter :: four_thirds=four*third
+ real(dp), parameter :: five_thirds=five*third
+ real(dp), parameter :: three_quarters=0.75_dp
+ real(dp), parameter :: three_fifth=three/five
+
+!Real constants related to the golden number
+ real(dp), parameter :: gold=1.618033988749894848204586834365638117720309179_dp
+ real(dp), parameter :: goldenratio=two-gold
+
+!Real constants derived from pi
+ real(dp), parameter :: pi=3.141592653589793238462643383279502884197_dp
+ real(dp), parameter :: two_pi=two*pi
+ real(dp), parameter :: four_pi=four*pi
+ real(dp), parameter :: piinv=one/pi
+!The following are not used
+!real(dp), parameter :: rad_to_deg=180._dp/pi
+!real(dp), parameter :: deg_to_rad=one/rad_to_deg
+!real(dp), parameter :: half_pi=pi*half
+!real(dp), parameter :: third_pi=pi*third
+!real(dp), parameter :: quarter_pi=pi*quarter
+!real(dp), parameter :: two_thirds_pi=two_thirds*pi
+
+!Real precision
+ real(dp), parameter :: greatest_real = huge(one)
+ real(dp), parameter :: smallest_real = -greatest_real
+ real(dp), parameter :: tol1= 0.1_dp
+ real(dp), parameter :: tol2= 0.01_dp
+ real(dp), parameter :: tol3= 0.001_dp
+ real(dp), parameter :: tol4= 0.0001_dp
+ real(dp), parameter :: tol5= 0.00001_dp
+ real(dp), parameter :: tol6= 0.000001_dp
+ real(dp), parameter :: tol7= 0.0000001_dp
+ real(dp), parameter :: tol8= 0.00000001_dp
+ real(dp), parameter :: tol9= 0.000000001_dp
+ real(dp), parameter :: tol10=0.0000000001_dp
+ real(dp), parameter :: tol11=0.00000000001_dp
+ real(dp), parameter :: tol12=0.000000000001_dp
+ real(dp), parameter :: tol13=0.0000000000001_dp
+ real(dp), parameter :: tol14=0.00000000000001_dp
+ real(dp), parameter :: tol15=0.000000000000001_dp
+ real(dp), parameter :: tol16=0.0000000000000001_dp
+ real(dp), parameter :: tol17=0.00000000000000010_dp
+ real(dp), parameter :: tol18=0.000000000000000001_dp
+ real(dp), parameter :: tol19=0.0000000000000000001_dp
+ real(dp), parameter :: tol20=0.00000000000000000001_dp
+ real(dp), parameter :: tol30=1.0e-30_dp
+
+!real constants derived from sqrt(n.)
+ real(dp), parameter :: sqrt2=1.4142135623730950488016887242096939_dp
+ real(dp), parameter :: half_sqrt2=0.70710678118654752440084436210484697_dp
+ real(dp), parameter :: sqrt3=1.7320508075688772935274463415058739_dp
+ real(dp), parameter :: half_sqrt3=0.86602540378443864676372317075293693_dp
+ real(dp), parameter :: sqrthalf=0.70710678118654752440084436210484697_dp
+
+!Conversion factors of common use, not directly related to physical quantities.
+ real(dp), parameter :: b2Mb=one/1024.0_dp**2 ! conversion factor bytes --> Mbytes
+ real(dp), parameter :: b2Gb=b2Mb/1024.0_dp ! conversion factor bytes --> Gbytes
+
+ ! This value is used as sentinel to initialize real values that are "undefined" i.e.
+ ! values that cannot be computed or values that do not make any sense in a particular context
+ ! e.g. stress tensor in NSCF calculations. The sentinel is used the yaml routines to print "undef" instead of the
+ ! numerical value.
+ real(dp),parameter :: MAGIC_UNDEF = 9.9999999999D+99
+
+ ! Max Memory in Mb available for a MPI processor
+ ! This quantity might be used at runtime to determine how to distribute memory.
+ ! The default value (2Gb) can be changed at runtime via the command line interface.
+ real(dp), protected :: mem_per_cpu_mb = two * 1024_dp
+
+!Real physical constants
+!Revised fundamental constants from http://physics.nist.gov/cuu/Constants/index.html
+!(from 2006 least squares adjustment)
+ real(dp), parameter :: Bohr_Ang=0.52917720859_dp ! 1 Bohr, in Angstrom
+ real(dp), parameter :: Ang_Bohr = one / Bohr_Ang ! 1 Angstrom in Bohr
+ real(dp), parameter :: Bohr_meter=Bohr_Ang * 1.d-10 ! 1 Bohr in meter
+ real(dp), parameter :: Bohr_cm=Bohr_meter * 100_dp ! 1 Bohr in cm
+ real(dp), parameter :: Ha_cmm1=219474.6313705_dp ! 1 Hartree in cm^-1
+ real(dp), parameter :: Ha_eV=27.21138386_dp ! 1 Hartree in eV
+ real(dp), parameter :: eV_Ha=one/Ha_eV ! 1 eV in Hartree
+ real(dp), parameter :: Ha_meV=Ha_eV*1000_dp ! 1 Hartree in meV
+ real(dp), parameter :: Ha_K=315774.65_dp ! 1Hartree in Kelvin
+ real(dp), parameter :: Ha_THz=6579.683920722_dp ! 1 Hartree in THz
+ real(dp), parameter :: Ha_s=Ha_THz*1e12*two_pi ! 1 Hartree in s
+ real(dp), parameter :: Ha_J=4.35974394d-18 !1 Hartree in J
+ real(dp), parameter :: e_Cb=1.602176487d-19 ! minus the electron charge in Coulomb
+ real(dp), parameter :: kb_HaK=8.617343d-5/Ha_eV ! Boltzmann constant in Ha/K
+ real(dp), parameter :: kb_SI=1.380649d-23 ! Boltzmann constant in Joule/K (CODATA 2017 value.)
+ real(dp), parameter :: kb_THzK=kb_HaK*Ha_THz ! Boltzmann constant in THz/K
+ real(dp), parameter :: amu_emass=1.660538782d-27/9.10938215d-31 ! 1 atomic mass unit in electronic mass
+ real(dp), parameter :: HaBohr3_GPa=Ha_eV/Bohr_Ang**3*e_Cb*1.0d+21 ! 1 Ha/Bohr^3 in GPa
+ real(dp), parameter :: Avogadro=6.02214179d23 ! per mole
+ real(dp), parameter :: Ohmcm=two*pi*Ha_THz*ninth*ten ! 1 Ohm.cm in atomic units
+!real(dp), parameter :: eps0=8.854187817d-12 ! permittivity of free space in F/m
+ real(dp), parameter :: eps0=one/(four_pi*0.0000001_dp*299792458.0_dp**2)
+ real(dp), parameter :: AmuBohr2_Cm2=e_Cb*1.0d20/(Bohr_Ang*Bohr_Ang)
+ real(dp), parameter :: InvFineStruct=137.035999679_dp ! Inverse of fine structure constant
+ real(dp), parameter :: FineStructureConstant=0.0072973525664_dp ! 2014 CODATA value
+ real(dp), parameter :: FineStructureConstant2=0.000053251354478_dp ! Square of fine structure constant
+ real(dp), parameter :: Sp_Lt_SI=2.99792458d8 ! speed of light in SI
+ real(dp), parameter :: Sp_Lt=Sp_lt_SI/2.1876912633d6 ! speed of light in atomic units
+ real(dp), parameter :: Time_Sec=2.418884326505D-17 ! Atomic unit of time in seconds
+ real(dp), parameter :: BField_Tesla=4.254383d-6 ! Tesla in a.u.
+ real(dp), parameter :: dipole_moment_debye=0.393430307_dp ! Debye unit in a.u.
+ real(dp), parameter :: siemens_SI=e_Cb**2 / Ha_J / Time_Sec ! Siemens in SI: A/V = C^2 / (J * s)
+ real(dp), parameter :: volt_SI=Ha_J/e_Cb ! Volt in SI: J/C
+!EB suppress *0.5_dp ! Atomic unit of induction field (in Tesla) * mu_B (in atomic units).
+ real(dp), parameter :: mu_B_SI=9.274009994D-24 ! Bohr magneton in SI
+ real(dp), parameter :: mu_B = 0.5_dp ! Bohr magneton in atomic units
+
+!Complex constants
+ !double precision
+ complex(dpc), parameter :: czero = (0._dp,0._dp)
+ complex(dpc), parameter :: cone = (1._dp,0._dp)
+ complex(dpc), parameter :: ctwo = (2._dp,0._dp)
+ complex(dpc), parameter :: j_dpc = (0._dp,1.0_dp)
+
+ ! single-precision
+ complex(spc), parameter :: czero_sp = (0._sp,0._sp)
+ complex(spc), parameter :: cone_sp = (1._sp,0._sp)
+ complex(spc), parameter :: ctwo_sp = (2._sp,0._sp)
+ complex(spc), parameter :: j_sp = (0._sp,1.0_sp)
+
+!Pauli matrix
+ complex(dpc), parameter :: pauli_mat(2,2,0:3) = reshape([cone,czero,czero,cone, &
+ czero,cone,cone,czero,&
+ czero,j_dpc,-j_dpc,czero,&
+ cone,czero,czero,-cone], [2,2,4])
+
+!Character constants
+ character(len=1), parameter :: ch10 = char(10)
+ character(len=fnlen),parameter :: ABI_NOFILE="__None__"
+
+ ! File used to dump the error message in m_error.
+ ! Extremely useful when we run on many CPUs since logging, in this case, is automatically disabled
+ ! As a consequence, we get error messages in the main log only if the problem is encoutered by the master node!
+ ! Note that the file is removed in xmpi_init (if present).
+ character(len=fnlen),parameter :: ABI_MPIABORTFILE="__ABI_MPIABORTFILE__"
+
+ ! Error codes used by the bindings.
+ integer, parameter, public :: AB7_NO_ERROR = 0
+ integer, parameter, public :: AB7_ERROR_OBJ = 1
+ integer, parameter, public :: AB7_ERROR_ARG = 2
+ integer, parameter, public :: AB7_ERROR_INVARS_ATT = 3
+ integer, parameter, public :: AB7_ERROR_INVARS_ID = 4
+ integer, parameter, public :: AB7_ERROR_INVARS_SIZE = 5
+ integer, parameter, public :: AB7_ERROR_SYM_NOT_PRIMITIVE = 6
+ integer, parameter, public :: AB7_ERROR_SYM_BRAVAIS_XRED = 7
+ integer, parameter, public :: AB7_ERROR_MIXING_ARG = 8
+ integer, parameter, public :: AB7_ERROR_MIXING_CONVERGENCE = 9
+ integer, parameter, public :: AB7_ERROR_MIXING_INTERNAL = 10
+ integer, parameter, public :: AB7_ERROR_MIXING_INC_NNSLOOP = 11
+
+! Values of optdriver corresponding to the different run-levels.
+ integer, parameter, public :: RUNL_GSTATE = 0
+ integer, parameter, public :: RUNL_RESPFN = 1
+ integer, parameter, public :: RUNL_SCREENING = 3
+ integer, parameter, public :: RUNL_SIGMA = 4
+ integer, parameter, public :: RUNL_NONLINEAR = 5
+ integer, parameter, public :: RUNL_GWR = 6
+ integer, parameter, public :: RUNL_EPH = 7
+ integer, parameter, public :: RUNL_WFK = 8
+ integer, parameter, public :: RUNL_RTTDDFT = 9
+ integer, parameter, public :: RUNL_GWLS = 66
+ integer, parameter, public :: RUNL_BSE = 99
+ integer, parameter, public :: RUNL_LONGWAVE = 10
+
+ ! Integer flags defining the task to be performed in wfk_analyze
+ integer,public,parameter :: WFK_TASK_NONE = 0
+ integer,public,parameter :: WFK_TASK_FULLBZ = 1
+ integer,public,parameter :: WFK_TASK_CLASSIFY = 2
+ integer,public,parameter :: WFK_TASK_PAW_AEPSI = 3
+ integer,public,parameter :: WFK_TASK_EINTERP = 4
+ integer,public,parameter :: WFK_TASK_DDK = 5
+ integer,public,parameter :: WFK_TASK_DDK_DIAGO = 6
+ integer,public,parameter :: WFK_TASK_OPTICS_FULLBZ = 7
+ integer,public,parameter :: WFK_TASK_KPTS_ERANGE= 8
+ integer,public,parameter :: WFK_TASK_CHECK_SYMTAB = 9
+
+! Flags defining the method used for performing IO (input variable iomode)
+ integer, parameter, public :: IO_MODE_FORTRAN_MASTER = -1
+ integer, parameter, public :: IO_MODE_FORTRAN = 0
+ integer, parameter, public :: IO_MODE_MPI = 1
+ integer, parameter, public :: IO_MODE_NETCDF = 2 ! Only for legacy code, should not be used for new implementations.
+ integer, parameter, public :: IO_MODE_ETSF = 3
+
+! FFT libraries (correspond to fftalga = ngfft(7)/100)
+ integer,parameter,public :: FFT_SG = 1
+ integer,parameter,public :: FFT_FFTW3 = 3
+ integer,parameter,public :: FFT_SG2002 = 4
+ integer,parameter,public :: FFT_DFTI = 5
+
+! Parameters for non-local algorithm (were previously stored in nloalg(3) and nloalg(4)
+ integer,parameter,public :: NLO_MBLKPW = 199
+ integer,parameter,public :: NLO_MINCAT = 10
+
+! This is used to compute the maximum index of the perturbation as natom + MPERT_MAX
+! GA: But this is not actually the maximum perturbation,
+! see m_dfpt_loopert
+ integer,parameter,public :: MPERT_MAX = 8
+
+! Parameters for the GPU implementation(s)
+ ! GPU implementation undetermined
+ integer,parameter,public :: ABI_GPU_UNKNOWN =-1
+ ! Not using any GPU implementation, implies running on CPU
+ integer,parameter,public :: ABI_GPU_DISABLED = 0
+ ! Legacy GPU implementation relying on NVIDIA CUDA kernels, not prefered
+ integer,parameter,public :: ABI_GPU_LEGACY = 1
+ ! GPU implementation relying on OpenMP v5 "TARGET" construct
+ integer,parameter,public :: ABI_GPU_OPENMP = 2
+ ! GPU implementation relying on Kokkos + cuda framework
+ integer,parameter,public :: ABI_GPU_KOKKOS = 3
+ ! Please note that a GPU linalg library supported in gpu_toolbox (ie: CUDA) backs up OpenMP and Kokkos variants.
+
+!Parameters for LOG/STATUS files treatment
+!This variables tell the code if some lines have to be written in a LOG/STATUS file
+ logical, public, save :: do_write_log =.true.
+ logical, public, save :: do_write_status=.true.
+! Max. numbers of CPU core for the writing of LOG/STATUS file for each CPU
+! (if more than NPROC_NO_EXTRA_LOG cpu core are used, no *_LOG_Pxxx is written;
+! the same for the *_STATUS_Pxxx file)
+ integer, parameter, public :: NPROC_NO_EXTRA_LOG = 2 !@WC
+ integer, parameter, public :: NPROC_NO_EXTRA_STATUS = 2 !@WC
+!Name of the file that (if present in current directory)
+!will avoid creation of LOG/STATUS files
+ character(len=fnlen),parameter :: ABI_NO_LOG_FILE="_NOLOG"
+!Name of the file that (if present in current directory)
+!will enforce creation of LOG/STATUS files
+ character(len=fnlen),parameter :: ABI_ENFORCE_LOG_FILE="_LOG"
+!Name of the file that (if present in current directory)
+!will enforce creation of LOG file only for master proc
+ character(len=fnlen),parameter :: ABI_MAIN_LOG_FILE="_MAINLOG"
+
+! Arrays
+ integer,parameter :: identity_3d(3,3) = reshape([1,0,0,0,1,0,0,0,1], [3,3])
+ integer,parameter :: inversion_3d(3,3) = reshape([-1,0,0,0,-1,0,0,0,-1], [3,3])
+
+!A collection of small datatypes for ragged arrays
+!A small datatype for ragged real 1D-arrays
+ type coeff1_type
+ real(dp), allocatable :: value(:)
+ end type coeff1_type
+!A small datatype for ragged integer 1D-arrays
+ type coeffi1_type
+ !integer :: size
+ integer, allocatable :: value(:)
+ end type coeffi1_type
+!A small datatype for ragged integer 2D-arrays
+ type coeffi2_type
+ integer :: size
+ integer, allocatable :: value(:,:)
+ end type coeffi2_type
+!A small datatype for ragged real 2D-arrays
+ type coeff2_type
+ real(dp), allocatable :: value(:,:)
+ end type coeff2_type
+!A small datatype for ragged complex 2D-arrays
+ type coeff2c_type
+ complex(dpc), allocatable :: value(:,:)
+ end type coeff2c_type
+!A small datatype for ragged real 3D-arrays
+ type coeff3_type
+ real(dp), allocatable :: value(:,:,:)
+ end type coeff3_type
+!A small datatype for ragged real 4D-arrays
+ type coeff4_type
+ real(dp), allocatable :: value(:,:,:,:)
+ end type coeff4_type
+!A small datatype for ragged real 5D-arrays
+ type coeff5_type
+ real(dp), allocatable :: value(:,:,:,:,:)
+ end type coeff5_type
+!A small datatype for ragged real 6D-arrays
+ type coeff6_type
+ real(dp), allocatable :: value(:,:,:,:,:,:)
+ end type coeff6_type
+!A small datatype for ragged real 7D-arrays.
+ type coeff7_type
+ real(dp), allocatable :: value(:,:,:,:,:,:,:)
+ end type coeff7_type
+
+CONTAINS !==============================================================================
+!!***
+
+!!****f* defs_basis/abi_log_status_state
+!! NAME
+!! abi_log_status_state
+!!
+!! FUNCTION
+!! Change values of do_write_log and do_write_status flags.
+!! These flags tell the code to write (or not) a LOG/STATUS file.
+!!
+!! INPUTS
+!! new_do_write_log=new value for do_write_log
+!! new_do_write_status=new value for do_write_status
+!!
+!! SOURCE
+
+subroutine abi_log_status_state(new_do_write_log,new_do_write_status)
+
+!Arguments ------------------------------------
+ logical,optional,intent(in) :: new_do_write_log,new_do_write_status
+
+!************************************************************************
+
+ if (PRESENT(new_do_write_log)) do_write_log =new_do_write_log
+ if (PRESENT(new_do_write_status)) do_write_status=new_do_write_status
+
+end subroutine abi_log_status_state
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* defs_basis/abi_io_redirect
+!! NAME
+!! abi_io_redirect
+!!
+!! FUNCTION
+!! Redirect unit numbers (and|or) change the MPI communicator for the IO (output and log file).
+!! This routine can be used in client code (e.g. bigdft)
+!! that wants to call the abinit routines packed in an external library.
+!!
+!! INPUTS
+!! new_ab_out=new value for output file unit
+!! new_std_out=new value for standard output unit
+!! new_io_comm=new value for IO MPI communicator
+!!
+!! SOURCE
+
+subroutine abi_io_redirect(new_ab_out,new_std_out,new_io_comm)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: new_std_out,new_ab_out,new_io_comm
+
+!************************************************************************
+
+ if (PRESENT(new_ab_out)) ab_out = new_ab_out
+ if (PRESENT(new_std_out)) std_out = new_std_out
+ if (PRESENT(new_io_comm)) abinit_comm_output = new_io_comm
+
+end subroutine abi_io_redirect
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* defs_basis/print_kinds
+!! NAME
+!! print_kinds
+!!
+!! FUNCTION
+!! Prints info on the basic data types, e.g. kind, precision...
+!!
+!! INPUTS
+!! unit = Unit number for output file.
+!!
+!! SOURCE
+
+subroutine print_kinds(unit)
+
+!Arguments-------------------------------------
+ integer,optional,intent(in) :: unit
+
+!Local variables-------------------------------
+ integer :: my_unt
+
+! *********************************************************************
+
+ my_unt=std_out; if (PRESENT(unit)) my_unt = unit
+
+ write(my_unt,'(a)')' DATA TYPE INFORMATION: '
+
+ write(my_unt,'(a,/,2(a,i6,/),2(a,e16.8e3,/),a,e16.8e3)')&
+ ' REAL: Data type name: REAL(DP) ',&
+ ' Kind value: ',KIND(0.0_dp),&
+ ' Precision: ',PRECISION(0.0_dp),&
+ ' Smallest nonnegligible quantity relative to 1: ',EPSILON(0.0_dp),&
+ ' Smallest positive number: ',TINY(0.0_dp),&
+ ' Largest representable number: ',HUGE(0.0_dp)
+
+ write(my_unt,'(a,/,2(a,i0,/),a,i0)')&
+ ' INTEGER: Data type name: INTEGER(default) ', &
+ ' Kind value: ',KIND(0), &
+ ' Bit size: ',BIT_SIZE(0), &
+ ' Largest representable number: ',HUGE(0)
+
+ write(my_unt,'(a,/,a,i0)')&
+ ' LOGICAL: Data type name: LOGICAL ',&
+ ' Kind value: ',KIND(.TRUE.)
+
+ write(my_unt,'(2a,i0)')&
+ ' CHARACTER: Data type name: CHARACTER ',&
+ ' Kind value: ',KIND('C')
+
+end subroutine print_kinds
+!!***
+
+!!****f* defs_basis/str2wfktask
+!! NAME
+!! str2wfktask
+!!
+!! FUNCTION
+!! Convert a string into one of the integer flags WFK_TASK_*
+!! Return WFK_TASK_NONE if string is invalid.
+!!
+!! SOURCE
+
+integer pure function str2wfktask(str) result(wfk_task)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: str
+
+!************************************************************************
+
+ select case (str)
+ case ("wfk_fullbz")
+ wfk_task = WFK_TASK_FULLBZ
+ case ("classify")
+ wfk_task = WFK_TASK_CLASSIFY
+ case ("paw_aepsi")
+ wfk_task = WFK_TASK_PAW_AEPSI
+ case ("wfk_einterp")
+ wfk_task = WFK_TASK_EINTERP
+ case ("wfk_ddk")
+ wfk_task = WFK_TASK_DDK
+ case ("wfk_ddk_diago")
+ wfk_task = WFK_TASK_DDK_DIAGO
+ case ("wfk_kpts_erange")
+ wfk_task = WFK_TASK_KPTS_ERANGE
+ case ("optics_fullbz", "wfk_optics_fullbz")
+ wfk_task = WFK_TASK_OPTICS_FULLBZ
+ case ("check_symtab")
+ wfk_task = WFK_TASK_CHECK_SYMTAB
+ case default
+ wfk_task = WFK_TASK_NONE
+ end select
+
+end function str2wfktask
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* defs_basis/set_mem_per_cpu_mb
+!! NAME
+!! set_mem_per_cpu_mb
+!!
+!! FUNCTION
+!! Set the value of global variable `mem_per_cpu_mb`
+!!
+!! SOURCE
+
+subroutine set_mem_per_cpu_mb(mem_mb)
+
+!Arguments-------------------------------------
+ real(dp),intent(in) :: mem_mb
+
+! *********************************************************************
+
+ !print *, "Setting mem_per_cpu_mb to", mem_mb
+ mem_per_cpu_mb = mem_mb
+
+end subroutine set_mem_per_cpu_mb
+!!***
+
+!----------------------------------------------------------------------
+
+end module defs_basis
+!!***
diff --git a/GX-PAW/common/src/10_defs/defs_basis.o b/GX-PAW/common/src/10_defs/defs_basis.o
new file mode 100644
index 00000000..72058761
Binary files /dev/null and b/GX-PAW/common/src/10_defs/defs_basis.o differ
diff --git a/GX-PAW/common/src/10_defs/defs_datatypes.F90 b/GX-PAW/common/src/10_defs/defs_datatypes.F90
new file mode 100644
index 00000000..03c0ac79
--- /dev/null
+++ b/GX-PAW/common/src/10_defs/defs_datatypes.F90
@@ -0,0 +1,637 @@
+!!****m* ABINIT/defs_datatypes
+!! NAME
+!! defs_datatypes
+!!
+!! FUNCTION
+!! This module contains definitions important structured datatypes for the ABINIT package.
+!! If you want to add one new datatype, please, examine first whether
+!! another datatype might meet your need (e.g. adding some records to it).
+!! Then, if you are sure your new structured datatype is needed,
+!! write it here, and DOCUMENT it properly (not all datastructure here are
+!! well documented, it is a shame ...).
+!! Do not forget: you will likely be the major winner if you document properly.
+!! Proper documentation of a structured datatype means:
+!!
+!! (1) Mention it in the list just below
+!! (2) Describe it in the NOTES section
+!! (3) Put it in alphabetical order in the the main section of this module
+!! (4) Document each of its records, except if they are described elsewhere
+!! (this exception is typically the case of the dataset associated with
+!! input variables, for which there is a help file)
+!!
+!! List of datatypes:
+!! * ebands_t: different information about the band structure
+!! * pseudopotential_type: for norm-conserving pseudopotential, all the information
+!! * pspheader_type: for norm-conserving pseudopotentials, the header of the file
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module defs_datatypes
+
+ use defs_basis
+
+ implicit none
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/ebands_t
+!! NAME
+!! ebands_t
+!!
+!! FUNCTION
+!! It contains different information about the band structure: eigenenergies, residuals, derivative of occupation
+!! numbers vs energy in case of metallic occupations and Brillouin zone according to the context: k points,
+!! occupation numbers, storage mode of wavefunctions, weights ...
+!! For example, the initial Brillouin zone, set up in the dataset, will be treated in the response function part of
+!! the code, to give a reduced Brillouin zone different from the original one, due to the breaking of the symmetries
+!! related to the existence of a wavevector, or the lack of time-reversal invariance.
+!!
+!! SOURCE
+
+ type ebands_t
+
+ integer :: bantot ! Total number of bands (sum(nband(:))
+ integer :: ivalence ! Highest valence band index (useful when occopt=9 only)
+ integer :: mband ! Max number of bands i.e MAXVAL(nband) (to dimension arrays)
+ integer :: nkpt ! Number of k points
+ integer :: nspinor ! 1 for collinear, 2 for noncollinear.
+ integer :: nsppol ! Number of spin-polarizations
+ integer :: ntemp ! Number of temperatures
+ integer :: occopt ! Occupation option, see input variable.
+
+ real(dp) :: entropy ! Entropy associated with the smearing (adimensional)
+ real(dp) :: fermie ! Fermi energy ! CP: when occopt = 9, fermi energy of the quasi-FD distribution of excited
+! electrons in the conduction bands above ivalence
+ real(dp) :: fermih ! Fermi energy of the excited holes in the valence bands <= ivalence (occopt = 9 only)
+ real(dp) :: nelect ! Number of electrons.
+ real(dp) :: ne_qFD ! Number of electrons excited in the bands > ivalence (occopt = 9 only)
+ real(dp) :: nh_qFD ! Number of holes excited in the bands <=ivalence (occopt = 9 only)
+ real(dp) :: tphysel ! Physical temperature of electrons.
+ real(dp) :: tsmear ! Temperature of smearing.
+ !real(dp) :: max_occ ! Spin degeneracy factor: max_occ = two / (self%nspinor * self%nsppol)
+
+ !real(dp) :: spinmagntarget
+ ! TODO This should be set via dtset%spinmagntarget to simplify the API.
+
+ integer,allocatable :: istwfk(:)
+ ! istwfk(nkpt)
+ ! Storage mode at each k point.
+
+ integer,allocatable :: nband(:)
+ ! nband(nkpt*nsppol)
+ ! Number of bands at each k point and spin-polarisation.
+
+ integer,allocatable :: npwarr(:)
+ ! npwarr(nkpt)
+ ! Number of plane waves at each k point.
+
+ real(dp),allocatable :: kptns(:,:)
+ ! kptns(3,nkpt)
+ ! k-point vectors.
+
+ real(dp),allocatable :: eig(:,:,:)
+ ! eig(mband,nkpt,nsppol)
+ ! Eigenvalues of each band.
+
+ real(dp),allocatable :: linewidth(:,:,:,:)
+ ! linewidth(itemp,mband,nkpt,nsppol)
+ ! Linewidth of each band
+ ! MG: TODO: This array should be removed (I think Yannick introduced it, see also Ktmesh)
+
+ real(dp),allocatable :: occ(:,:,:)
+ ! occ(mband, nkpt, nsppol)
+ ! occupation of each band.
+
+ real(dp),allocatable :: doccde(:,:,:)
+ ! doccde(mband, nkpt, nsppol)
+ ! derivative of the occupation of each band wrt energy (needed for RF).
+
+ real(dp),allocatable :: wtk(:)
+ ! wtk(nkpt)
+ ! weight of each k point, normalized to one.
+
+ integer :: kptopt
+ ! Option used for k-point generation.
+
+ integer :: nshiftk_orig, nshiftk
+ ! original number of shifts given in input and the actual value (changed in inkpts)
+
+ real(dp) :: cellcharge
+ ! nelect = zion - cellcharge
+ ! Extra charge added to the unit cell when performing GS calculations
+ ! To treat a system missing one electron per unit cell, charge is set to +1.
+ ! When reading the band structure from an external file,
+ ! charge is mainly used as metadata describing the GS calculation that procuded the ebands_t object.
+ ! To simulate doping in a post-processing tool, use ebands_set_extrael that defines the value of %extra_el.
+ ! and changes %nelect, accordingly.
+
+ real(dp) :: extrael = zero
+ ! Extra number of electrons.
+ ! This variable is mainly used to simulate doping in the rigid band approximation.
+ ! Set by ebands_set_extrael method.
+
+ integer :: kptrlatt_orig(3,3), kptrlatt(3,3)
+ ! Original value of kptrlatt and value after the call to inkpts
+
+ real(dp),allocatable :: shiftk_orig(:,:)
+ ! shiftk_orig(3, nshiftk_orig)
+ ! original shifts given in input (changed in inkpts).
+
+ real(dp),allocatable :: shiftk(:,:)
+ ! shiftk(3, nshiftk)
+
+ end type ebands_t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/pseudopotential_gth_type
+!! NAME
+!! pseudopotential_gth_type
+!!
+!! FUNCTION
+!! This structure is a sub-structure of pseudopotential_type used to
+!! store parameters from the GTH pseudo-potentials. All arrays have
+!! indices running on 1:npsp for each read pseudo-file. The 'set' array
+!! is a check array, since several different pseudo can be used in a simulation
+!! it set a flag for each npsp if params have been set or not. This is
+!! redundant with psps%pspcod in the way that when psps%pspcod(i) is 2,
+!! then gth_params%set(i) is .true.. GTH pseudo previous to wavelets introduction
+!! doesn't have geometric information. These have been added on the last line.
+!! It is three radius information, the %hasGeometry flag is there to know
+!! which kind of pseudo has been read.
+!!
+!! SOURCE
+
+ type pseudopotential_gth_type
+
+! WARNING: if you modify this datatype, please check whether there might be creation/destruction/copy routines,
+! declared in another part of ABINIT, that might need to take into account your modification.
+
+ real(dp), allocatable :: psppar(:, :, :)
+ ! These are {rloc, C(1...4)} coefficients for psppar(0, :, :) indices,
+ ! Followed by the h coefficients for psppar(1:2, :, :) indices.
+ ! size (0:2, 0:4, npsp)
+
+ real(dp), allocatable :: radii_cf(:, :)
+ ! Cut-off radii for core part and long-range part.
+ ! radii_cf(:, 1) is for the long-range cut-off and
+ ! radii_cf(:, 2) is for the core cut-off. size (npsp, 2)
+
+ real(dp), allocatable :: psp_k_par(:, :, :)
+ ! Spin orbit coefficients in HGH/GTH formats: k11p etc... see psp3ini.F90
+ ! dimension = num l channels, 3 coeffs, num psp = (1:lmax+1,1:3,npsp)
+
+ logical, allocatable :: hasGeometry(:)
+ ! Flag for geometric information in the pseudo. size (npsp)
+
+ logical, allocatable :: set(:)
+ ! Consistency array, used for checking size (npsp)
+
+ end type pseudopotential_gth_type
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/nctab_t
+!! NAME
+!! nctab_type
+!!
+!! FUNCTION
+!! This object contains TABulated data for NC pseudopotentials
+!! It follows the conventions used in pawtab so that we can reuse
+!! the PAW routines for the treatment of model core change as well
+!! as the code in the atm2fft routines used to build approximated densities
+!! from atomic quantities. Methods are defined in m_psps.
+!!
+!! SOURCE
+
+ type,public :: nctab_t
+
+ integer :: mqgrid_vl = 0
+ ! Number of points in the reciprocal space grid on which
+ ! the radial functions are specified (same grid as the one used for the local part).
+
+ ! TODO
+ !integer :: mqgrid_ff = 0
+
+ logical :: has_tvale = .False.
+ ! True if the norm-conserving pseudopotential provides the atomic pseudized valence density.
+ ! If alchemy, has_tvale is True only if all the mixed pseudos
+ ! have the valence charge in the pseudopotential file.
+
+ logical :: has_tcore = .False.
+ ! True if the norm-conserving pseudopotential has the model core-charge for NLCC.
+ ! If alchemy, has_tcore is True if at least one of the mixed pseudos has NLCC.
+ ! See also tcorespl
+
+ real(dp) :: dncdq0 = zero
+ ! Gives 1/q d(tNcore(q))/dq for q=0
+ ! (tNcore(q) = FT of pseudo core density)
+
+ real(dp) :: d2ncdq0 = zero
+ ! Gives contribution of d2(tNcore(q))/d2q for q=0
+ ! \int{(16/15)*pi^5*n(r)*r^6* dr}
+ ! (tNcore(q) = FT of pseudo core density)
+
+ real(dp) :: dnvdq0 = zero
+ ! Gives 1/q d(tNvale(q))/dq for q=0
+ ! (tNvale(q) = FT of pseudo valence density)
+
+ real(dp), allocatable :: tvalespl(:,:)
+ ! tvalespl(mqgrid_vl,2)
+ ! Gives the pseudo valence density in reciprocal space on a regular grid
+ ! Initialized only if has_nctvale(itypat)
+
+ real(dp), allocatable :: tcorespl(:,:)
+ ! tcorespl(mqgrid_vl,2)
+ ! Gives the pseudo core density in reciprocal space on a regular grid.
+ ! tcorespl is **always** allocated and initialized with zeros if not has_tcore
+ ! A similar approach is used in PAW.
+
+ integer :: num_tphi = 0
+ ! Number of pseudo atomic orbitals. 0 if pseudo does not provide them
+
+ logical :: has_jtot = .False.
+ ! True if tpsi are given in terms of j (relativistic pseudo with SOC)
+
+ real(dp), allocatable :: tphi_qspl(:,:,:)
+ ! (mqgrid_ff, 2, num_tphi)
+ ! Form factors for the pseudo wavefunctions.
+
+ integer,allocatable :: tphi_n(:), tphi_l(:)
+ ! (num_tphi) arrays giving n, l
+
+ real(dp),allocatable :: tphi_jtot(:)
+ ! (num_tphi) array with jtot.
+
+ real(dp),allocatable :: tphi_occ(:)
+ ! (num_tphi) array with atomic occupancies taken from pseudo.
+
+ end type nctab_t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/pseudopotential_type
+!! NAME
+!! pseudopotential_type
+!!
+!! FUNCTION
+!! This structured datatype contains all the information about one
+!! norm-conserving pseudopotential, including the description of the local
+!! and non-local parts, the different projectors, the non-linear core correction ...
+!!
+!! SOURCE
+
+ type pseudopotential_type
+
+! WARNING: if you modify this datatype, please check whether there might be creation/destruction/copy routines,
+! declared in another part of ABINIT, that might need to take into account your modification.
+
+! Integer scalars
+ integer :: dimekb
+ ! Dimension of Ekb
+ ! ->Norm conserving : Max. number of Kleinman-Bylander energies for each atom type
+ ! dimekb=lnmax (lnmax: see this file)
+ ! ->PAW : Max. number of Dij coefficients connecting projectors for each atom type
+ ! dimekb=lmnmax*(lmnmax+1)/2 (lmnmax: see this file)
+
+ integer :: lmnmax
+ ! If useylm=0, max number of (l,n) comp. over all type of psps (lnproj)
+ ! If useylm=1, max number of (l,m,n) comp. over all type of psps (lmnproj)
+ ! If mpspso is 2, lmnmax takes into account the spin-orbit projectors,
+ ! so, it is equal to the max of lmnprojso or lnprojso, see pspheader_type
+
+ integer :: lnmax
+ ! Max. number of (l,n) components over all type of psps
+ ! If mpspso is 2, lmnmax takes into account the spin-orbit projectors,
+ ! so, it is equal to the max of lnprojso, see pspheader_type
+
+ integer :: mproj
+ ! Maximum number of non-local projectors over all angular momenta and type of psps
+ ! 0 only if all psps are local
+
+ integer :: mpsang
+ ! Highest angular momentum of non-local projectors over all type of psps.
+ ! shifted by 1: for all local psps, mpsang=0; for largest s, mpsang=1,
+ ! for largest p, mpsang=2; for largest d, mpsang=3; for largest f, mpsang=4
+ ! This gives also the number of non-local "channels"
+
+ integer :: mpspso
+ ! mpspso is set to 1 if none of the psps is used with a spin-orbit part (that
+ ! is, if the user input variable so_psp is not equal to 1 in at least one case
+ ! otherwise, it is set to 2
+
+ integer :: mpssoang
+ ! Maximum number of channels, including those for treating the spin-orbit coupling
+ ! when mpspso=1, mpssoang=mpsang
+ ! when mpspso=2, mpssoang=2*mpsang-1
+
+ integer :: mqgrid_ff
+ ! Number of points in the reciprocal space grid on which
+ ! the radial functions ffspl are specified
+
+ integer :: mqgrid_vl
+ ! Number of points in the reciprocal space grid on which
+ ! the radial functions vlspl are specified
+
+ integer :: mtypalch
+ ! Maximum number of alchemical pseudo atoms. If non-zero,
+ ! the mechanism to generate mixing of pseudopotentials is activated
+
+ integer :: npsp
+ ! Number of types of pseudopotentials
+
+ integer :: npspalch
+ ! Number of types of pseudopotentials used for alchemical purposes
+
+ integer :: ntypat
+ ! Number of types of atoms (might be alchemy wrt pseudopotentials)
+
+ integer :: ntypalch
+ ! Number of types of alchemical pseudoatoms
+
+ integer :: ntyppure
+ ! Number of types of pure pseudoatoms
+
+ integer :: n1xccc
+ ! Number of radial points for the description of the pseudo-core charge
+ ! (in the framework of the non-linear XC core correction)
+
+ integer :: optnlxccc
+ ! Option for the choice of non-linear XC core correction treatment (see the input variable)
+ ! Used only for FHI pseudos.
+
+ integer :: positron
+ ! Option for the choice of type of GS calculation (electron or positron)
+
+ integer :: usepaw
+ ! if usepaw=0 , use norm-conserving psps part of the code
+ ! is usepaw=1 , use paw part of the code
+
+ integer :: usewvl
+ ! if usewvl=0 , plane waves
+ ! is usewvl=1 , wavelets
+
+ integer :: useylm
+ ! governs the way the nonlocal operator is to be applied:
+ ! 1=using Ylm, 0=using Legendre polynomials
+
+! Logical scalars
+ logical :: vlspl_recipSpace
+ ! governs if vlspl is compute in reciprocal space or in real
+ ! space (when available).
+
+! Integer arrays
+ integer, allocatable :: algalch(:)
+ ! algalch(ntypalch)
+ ! For each type of pseudo atom, the algorithm to mix the pseudopotentials
+
+ integer, allocatable :: indlmn(:,:,:)
+ ! indlmn(6,lmnmax,ntypat)
+ ! For each type of psp,
+ ! array giving l,m,n,lm,ln,spin for i=ln (if useylm=0)
+ ! or i=lmn (if useylm=1)
+ ! NB: spin is used for NC pseudos with SOC term: 1 if scalar term (spin diagonal), 2 if SOC term.
+
+ integer, allocatable :: pspdat(:)
+ ! pspdat(ntypat)
+ ! For each type of psp, the date of psp generation, as given by the psp file
+
+ integer, allocatable :: pspcod(:)
+ ! pspcod(npsp)
+ ! For each type of psp, the format -or code- of psp generation,
+ ! as given by the psp file
+
+ integer, allocatable :: pspso(:)
+ ! pspso(npsps)
+ ! For each type of psp,
+ ! 1 if no spin-orbit component is taken into account
+ ! 2 if a spin-orbit component is used
+
+ integer, allocatable :: pspxc(:)
+ ! pspxc(npsps)
+ ! For each type of psp, the XC functional that was used to generate it,
+ ! as given by the psp file
+
+! Real (real(dp)) arrays
+
+ real(dp), allocatable :: ekb(:,:)
+ ! ekb(dimekb,ntypat*(1-usepaw))
+ ! NORM-CONSERVING PSPS ONLY:
+ ! (Real) Kleinman-Bylander energies (hartree)
+ ! for number of basis functions (l,n) (lnmax)
+ ! and number of atom types (ntypat)
+ ! NOTE (MT):
+ ! ekb (norm-conserving) is now diagonal (one dimension lnmax);
+ ! it would be easy to give it a second (symmetric) dimension by putting
+ ! dimekb=lnmax*(lnmax+1)/2 in the place of dimekb=lmnmax.
+
+ real(dp), allocatable :: ffspl(:,:,:,:)
+ ! ffspl(mqgrid_ff,2,lnmax,ntypat)
+ ! Gives, on the radial grid, the different non-local projectors,
+ ! in both the norm-conserving case, and the PAW case
+
+ real(dp), allocatable :: mixalch(:,:)
+ ! mixalch(npspalch,ntypalch)
+ ! Mixing coefficients to generate alchemical pseudo atoms
+
+ real(dp), allocatable :: qgrid_ff(:)
+ ! qgrid_ff(mqgrid_ff)
+ ! The coordinates of all the points of the radial grid for the nl form factors
+
+ real(dp), allocatable :: qgrid_vl(:)
+ ! qgrid_vl(mqgrid_vl)
+ ! The coordinates of all the points of the radial grid for the local part of psp
+
+ real(dp), allocatable :: vlspl(:,:,:)
+ ! vlspl(mqgrid_vl,2,ntypat)
+ ! Gives, on the radial grid, the local part of each type of psp.
+
+ real(dp), allocatable :: dvlspl(:,:,:)
+ ! dvlspl(mqgrid_vl,2,ntypat)
+ ! Gives, on the radial grid, the first derivative of the local
+ ! part of each type of psp (computed when the flag 'vlspl_recipSpace' is true).
+
+ real(dp), allocatable :: xcccrc(:)
+ ! xcccrc(ntypat)
+ ! Gives the maximum radius of the pseudo-core charge, for each type of psp.
+
+ real(dp), allocatable :: xccc1d(:,:,:)
+ ! xccc1d(n1xccc*(1-usepaw),6,ntypat)
+ ! Norm-conserving psps only
+ ! The component xccc1d(n1xccc,1,ntypat) is the pseudo-core charge
+ ! for each type of atom, on the radial grid. The components
+ ! xccc1d(n1xccc,ideriv,ntypat) give the ideriv-th derivative of the
+ ! pseudo-core charge with respect to the radial distance.
+
+ real(dp), allocatable :: zionpsp(:)
+ ! zionpsp(npsp)
+ ! For each pseudopotential, the ionic pseudo-charge
+ ! (giving raise to a long-range coulomb potential)
+
+ real(dp), allocatable :: ziontypat(:)
+ ! ziontypat(ntypat)
+ ! For each type of atom (might be alchemy wrt psps), the ionic pseudo-charge
+ ! (giving raise to a long-range coulomb potential)
+
+ real(dp), allocatable :: znuclpsp(:)
+ ! znuclpsp(npsp)
+ ! The atomic number of each pseudopotential
+
+ real(dp), allocatable :: znucltypat(:)
+ ! znucltypat(ntypat)
+ ! The atomic number of each type of atom (might be alchemy wrt psps)
+
+! Character arrays
+ character(len=fnlen), allocatable :: filpsp(:)
+ ! filpsp(npsps)
+ ! The filename of the pseudopotential
+
+ character(len=fnlen), allocatable :: title(:)
+ ! title(npsp)
+ ! The content of first line read from the psp file
+
+ character(len=md5_slen), allocatable :: md5_pseudos(:)
+ ! md5pseudos(npsp)
+ ! md5 checksums associated to pseudos (read from file)
+
+ type(pseudopotential_gth_type) :: gth_params
+ ! Types for pseudo-potentials that are based on parameters. Currently, only
+ ! GTH are supported (see pseudopotential_gth_type). To add one, one should
+ ! create an initialisation method and a destruction method in 02psp (see
+ ! psp2params.F90). These methods are called in driver().
+
+ type(nctab_t),allocatable :: nctab(:)
+ ! nctab(ntypat)
+ ! Tables storing additional data for NC pseudopotentials that are not always avaiable if every psp format.
+ ! We try to mimim pawtab as much as possible so that we can reuse PAW routines in the NC context.
+
+ integer :: nc_xccc_gspace = 0
+ ! NC pseudos only. Set to 1 if the non-linear core correction should
+ ! be treated in G-space similarly to the approach used for PAW.
+
+ end type pseudopotential_type
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/pspheader_paw_type
+!! NAME
+!! pspheader_paw_type
+!!
+!! FUNCTION
+!! The pspheader_paw_type structured datatype gather additional information
+!! about a PAW pseudopotential file, from its header.
+!!
+!! SOURCE
+
+ type pspheader_paw_type
+
+! WARNING: if you modify this datatype, please check whether there might be creation/destruction/copy routines,
+! declared in another part of ABINIT, that might need to take into account your modification.
+
+! WARNING: Also pay attention to subroutine pspheads_comm, which broadcasts this datatype.
+
+ integer :: basis_size ! Number of elements of the wf basis ((l,n) quantum numbers)
+ integer :: l_size ! Maximum value of l+1 leading to a non zero Gaunt coefficient
+ integer :: lmn_size ! Number of elements of the paw basis
+ integer :: mesh_size ! Dimension of (main) radial mesh
+ integer :: pawver ! Version number of paw psp format
+ integer :: shape_type ! Type of shape function
+ real(dp) :: rpaw ! Radius for paw spheres
+ real(dp) :: rshp ! Cut-off radius of shape function
+
+ end type pspheader_paw_type
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* defs_datatypes/pspheader_type
+!! NAME
+!! pspheader_type
+!!
+!! FUNCTION
+!! The pspheader_type structured datatype gather different information
+!! about a pseudopotential file, from its header.
+!!
+!! SOURCE
+
+ type pspheader_type
+
+! WARNING: if you modify this datatype, please check whether there might be creation/destruction/copy routines,
+! declared in another part of ABINIT, that might need to take into account your modification.
+! WARNING: Also pay attention to subroutine pspheads_comm, which broadcasts this datatype.
+
+ integer :: nproj(0:3) ! number of scalar projectors for each angular momentum
+
+ integer :: nprojso(3) ! number of spin-orbit projectors for each angular momentum
+
+ integer :: lmax ! maximum l quantum number (-1 if only local)
+ ! Example : s only -> lmax=0
+ ! s and p -> lmax=1
+ ! s,p,d -> lmax=2
+
+ integer :: pspcod
+ ! code number of the pseudopotential
+
+ integer :: pspdat
+ ! date of generation of the pseudopotential
+
+ integer :: pspxc
+ ! exchange-correlation functional
+
+ integer :: pspso
+ ! spin-orbit characteristics
+ ! 0 if pseudo does not support SOC, 1 or 2 if SOC terms are available in the pp file.
+ ! Note that one could have a pseudo with SOC terms but ignore the SOC contribution
+ ! For example, it's possible to use nspinor=2 and set so_psp to 0 in the input file
+ ! or perform a run with nspinor=1 with pseudos containing SOC terms.
+
+ integer :: usewvl
+ ! if usewvl=0 , plane waves
+ ! is usewvl=1 , wavelets
+
+ integer :: xccc
+ ! =0 if no XC core correction, non-zero if XC core correction
+
+ real(dp) :: zionpsp
+ ! charge of the ion made of core electrons only
+
+ real(dp) :: znuclpsp
+ ! atomic number of the nuclei
+
+ real(dp) :: GTHradii(0:4)
+ ! Radii values for GTH (and HGH) family potentials
+
+ character(len=fnlen) :: filpsp
+ ! name of the psp file
+
+ character(len=fnlen) :: title
+ ! content of first line read from the psp file
+
+ character(len=md5_slen) :: md5_checksum = md5_none
+ ! md5 checksum read from file.
+
+ type(pspheader_paw_type) :: pawheader
+ ! only for PAW psps ; see m_pawpsp.
+
+ end type pspheader_type
+!!***
+
+end module defs_datatypes
+!!***
diff --git a/GX-PAW/common/src/10_defs/defs_datatypes.o b/GX-PAW/common/src/10_defs/defs_datatypes.o
new file mode 100644
index 00000000..b1b21209
Binary files /dev/null and b/GX-PAW/common/src/10_defs/defs_datatypes.o differ
diff --git a/GX-PAW/common/src/10_defs/lib10_defs.a b/GX-PAW/common/src/10_defs/lib10_defs.a
new file mode 100644
index 00000000..11346e3a
Binary files /dev/null and b/GX-PAW/common/src/10_defs/lib10_defs.a differ
diff --git a/GX-PAW/common/src/11_memory_mpi/Makefile b/GX-PAW/common/src/11_memory_mpi/Makefile
new file mode 100644
index 00000000..c08ebcab
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/Makefile
@@ -0,0 +1,1454 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/11_memory_mpi/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/11_memory_mpi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib11_memory_mpi_a_AR = $(AR) $(ARFLAGS)
+lib11_memory_mpi_a_LIBADD =
+am__objects_1 = m_profiling_abi.$(OBJEXT)
+am_lib11_memory_mpi_a_OBJECTS = $(am__objects_1)
+lib11_memory_mpi_a_OBJECTS = $(am_lib11_memory_mpi_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib11_memory_mpi_a_SOURCES)
+DIST_SOURCES = $(lib11_memory_mpi_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/11_memory_mpi
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/11_memory_mpi
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ -I/opt/local/include \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib11_memory_mpi_srcs = \
+ m_profiling_abi.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib11_memory_mpi.a
+lib11_memory_mpi_a_SOURCES = $(lib11_memory_mpi_srcs)
+
+# Dependencies (inside the directory) of directory 11_memory_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_profiling_abi_cpp.f90 m_profiling_abi.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _11_memory_mpi_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/11_memory_mpi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/11_memory_mpi/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib11_memory_mpi.a: $(lib11_memory_mpi_a_OBJECTS) $(lib11_memory_mpi_a_DEPENDENCIES) $(EXTRA_lib11_memory_mpi_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib11_memory_mpi.a
+ $(AM_V_AR)$(lib11_memory_mpi_a_AR) lib11_memory_mpi.a $(lib11_memory_mpi_a_OBJECTS) $(lib11_memory_mpi_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib11_memory_mpi.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/11_memory_mpi/Makefile.am b/GX-PAW/common/src/11_memory_mpi/Makefile.am
new file mode 100644
index 00000000..5b554a30
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/Makefile.am
@@ -0,0 +1,55 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_11_memory_mpi@
+
+AM_CPPFLAGS = \
+ @src_02_clib_fcflags@ \
+ @src_10_defs_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib11_memory_mpi_srcs = \
+ m_profiling_abi.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib11_memory_mpi.a
+
+lib11_memory_mpi_a_SOURCES= $(lib11_memory_mpi_srcs)
+
+CLEANFILES = \
+ m_profiling_abi_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 11_memory_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_profiling_abi.$(MODEXT)
+
+
+EXTRA_DIST += _11_memory_mpi_
diff --git a/GX-PAW/common/src/11_memory_mpi/Makefile.in b/GX-PAW/common/src/11_memory_mpi/Makefile.in
new file mode 100644
index 00000000..098d8bc3
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/Makefile.in
@@ -0,0 +1,1454 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/11_memory_mpi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib11_memory_mpi_a_AR = $(AR) $(ARFLAGS)
+lib11_memory_mpi_a_LIBADD =
+am__objects_1 = m_profiling_abi.$(OBJEXT)
+am_lib11_memory_mpi_a_OBJECTS = $(am__objects_1)
+lib11_memory_mpi_a_OBJECTS = $(am_lib11_memory_mpi_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib11_memory_mpi_a_SOURCES)
+DIST_SOURCES = $(lib11_memory_mpi_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_11_memory_mpi@
+AM_CPPFLAGS = \
+ @src_02_clib_fcflags@ \
+ @src_10_defs_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib11_memory_mpi_srcs = \
+ m_profiling_abi.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib11_memory_mpi.a
+lib11_memory_mpi_a_SOURCES = $(lib11_memory_mpi_srcs)
+
+# Dependencies (inside the directory) of directory 11_memory_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_profiling_abi_cpp.f90 m_profiling_abi.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _11_memory_mpi_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/11_memory_mpi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/11_memory_mpi/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib11_memory_mpi.a: $(lib11_memory_mpi_a_OBJECTS) $(lib11_memory_mpi_a_DEPENDENCIES) $(EXTRA_lib11_memory_mpi_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib11_memory_mpi.a
+ $(AM_V_AR)$(lib11_memory_mpi_a_AR) lib11_memory_mpi.a $(lib11_memory_mpi_a_OBJECTS) $(lib11_memory_mpi_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib11_memory_mpi.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/11_memory_mpi/_11_memory_mpi_ b/GX-PAW/common/src/11_memory_mpi/_11_memory_mpi_
new file mode 100644
index 00000000..63b36800
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/_11_memory_mpi_
@@ -0,0 +1,19 @@
+!!****d* ABINIT/11_memory_mpi
+!! NAME
+!! 11_memory_mpi
+!!
+!! DESCRIPTION
+!! FIXME: Description is missing
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! interfaces_11_memory_mpi.F90
+!! m_profiling_abi.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/11_memory_mpi/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/11_memory_mpi/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..c8cd5dee
Binary files /dev/null and b/GX-PAW/common/src/11_memory_mpi/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/11_memory_mpi/abinit.dep b/GX-PAW/common/src/11_memory_mpi/abinit.dep
new file mode 100644
index 00000000..b00b3de2
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/abinit.dep
@@ -0,0 +1,9 @@
+# Dependencies (inside the directory) of directory 11_memory_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_profiling_abi.$(MODEXT)
+
diff --git a/GX-PAW/common/src/11_memory_mpi/abinit.dir b/GX-PAW/common/src/11_memory_mpi/abinit.dir
new file mode 100644
index 00000000..0567e292
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 11_memory_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['02_clib', '10_defs']
\ No newline at end of file
diff --git a/GX-PAW/common/src/11_memory_mpi/abinit.src b/GX-PAW/common/src/11_memory_mpi/abinit.src
new file mode 100644
index 00000000..79953e84
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/abinit.src
@@ -0,0 +1,24 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 56_mixing library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "m_profiling_abi.F90",
+ ]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/11_memory_mpi/lib11_memory_mpi.a b/GX-PAW/common/src/11_memory_mpi/lib11_memory_mpi.a
new file mode 100644
index 00000000..dde90431
Binary files /dev/null and b/GX-PAW/common/src/11_memory_mpi/lib11_memory_mpi.a differ
diff --git a/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.F90 b/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.F90
new file mode 100644
index 00000000..18bff820
--- /dev/null
+++ b/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.F90
@@ -0,0 +1,681 @@
+!!****m* ABINIT/m_profiling_abi
+!! NAME
+!! m_profiling_abi
+!!
+!! FUNCTION
+!! This module is used for tracing memory allocations/deallocations
+!! when we compile the code with --enable-memory-profiling="yes" that,
+!! in turn, defines the CPP macro HAVE_MEM_PROFILE in abi_common.h
+!! The main entry point is abimem_init. abimem_record is interfaced via CPP macros
+!! defined in abi_common
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! This module is not thread-safe. However, this should not represent
+!! a significant limitation since memory-tracing is only enabled in debug mode.
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_profiling_abi
+
+ use defs_basis
+ use, intrinsic :: iso_c_binding
+ use m_clib
+#ifdef HAVE_MPI2
+ use mpi
+#endif
+
+ implicit none
+
+ private
+!!***
+
+#if defined HAVE_MPI1
+ include 'mpif.h'
+#endif
+
+#define _ABORT(msg) call abimem_abort(msg, __FILE__, __LINE__)
+
+ public :: abimem_get_info
+ public :: abimem_init ! Initialize memory profiling.
+ public :: abimem_set_snapshot_time ! Set time interface for snapshots.
+ public :: abimem_shutdown ! Final cleanup.
+ public :: abimem_report ! Print allocation status.
+ public :: abimem_record ! Central routine to be used for allocation/deallocation.
+ ! Interfaced via CPP macros defined in abi_common.h
+
+ integer,private,parameter :: slen = 500
+ character(fnlen),parameter :: NONE_STRING = "__NONE_STRING__"
+
+!!****t* m_profiling_abi/abimem_t
+!! NAME
+!! minfo_t
+!!
+!! FUNCTION
+!! Internal datastructure storing information on the memory allocated at run-time
+!!
+!! SOURCE
+
+ type :: abimem_t
+
+ integer :: level = huge(1)
+ ! Integer selecting the operation mode
+ ! The initial value is set to huge so that main executables that don't call abimem_init will
+ ! produce an Error when the first alocation is performed and abimem_record is invoked.
+
+ integer(i8b) :: memory = 0
+ ! Total memory allocated so far in bytes.
+
+ integer(i8b) :: peak = 0
+ ! Memory peak in bytes.
+
+ integer :: peak_fileline = -1
+ ! Line in peak_file
+
+ integer(i8b) :: num_alloc = 0
+ ! Total numer of allocations performed so far.
+
+ integer(i8b) :: num_free = 0
+ ! Total numer of deallocations performed so far.
+
+ integer :: logunt = 99
+ ! Unit number of logfile (hardcoded)
+
+ integer :: my_rank = 0
+ ! Rank of this processor.
+
+ logical :: iwrite = .False.
+ ! True if this MPI rank should write to file.
+
+ !real(dp),private,save :: start_time
+ ! Origin of time in seconds.
+
+ real(dp) :: last_snapshot = -one
+ ! time of the last snapshot in seconds.
+
+ real(dp) :: dt_snapshot = -one
+ ! time between two consecutive snapshots in seconds.
+
+ real(dp) :: limit_mb = 20_dp
+ ! Optional memory limit in Mb. used when level == 3
+
+ character(len=slen) :: peak_vname = "_vname"
+ ! Name of the last variable for which the memory peak occurred.
+
+ character(len=slen) :: peak_file = NONE_STRING
+ ! Name of the file in which peak occurred.
+
+ ! Selective memory tracing
+ character(fnlen) :: select_file = NONE_STRING
+
+ character(len=fnlen) :: logfile
+ ! File used for logging allocations/deallocations.
+
+ end type abimem_t
+!!***
+
+ type(abimem_t),private,save :: minfo
+ ! Internal datastructure storing memory profiling data.
+
+ interface
+ subroutine clib_get_meminfo(nalloc_c, nfree_c) bind(C, name="clib_get_meminfo")
+ import
+ integer(c_long),intent(out) :: nalloc_c, nfree_c
+ end subroutine clib_get_meminfo
+ end interface
+
+contains
+
+!!****f* m_profiling_abi/abimem_init
+!! NAME
+!! abimem_init
+!!
+!! FUNCTION
+!! Initialize memory profiling module.
+!!
+!! INPUT
+!! level = Integer selecting the operation mode:
+!! 0 -> no file abimem.mocc is created, only memory allocation counters running
+!! 1 -> light version. Only memory peaks are written.
+!! 2 -> file abimem.mocc is created with full information inside.
+!! 3 -> Write info only if allocation/deallocation is larger or smaller than limit_mb
+!! depending on of the sign of limit_mb
+!! NOTE: By default, only master node writes, use negative values to make all MPI procs write info to disk.
+!! [delta_time]=Interval in second for snapshots. Will write report to std_out every delta_time seconds.
+!! [filename] = If present, activate memory logging only inside filename (basename).
+!! [limit_mb]= Set memory limit in Mb if level == 3. Print allocation/deallocation only above this limit.
+!! Positive value to print above the threshold.
+!! Negative value to print below the threshold.
+
+subroutine abimem_init(level, delta_time, filename, limit_mb)
+
+!Arguments ------------------------------------
+ integer, intent(in) :: level
+ real(dp),optional,intent(in) :: delta_time
+ real(dp),optional,intent(in) :: limit_mb
+ character(len=*),optional,intent(in) :: filename
+
+!Local variables-------------------------------
+ integer :: ierr
+ logical :: file_exists
+ character(len=500) :: msg
+! *************************************************************************
+
+ !write(std_out, "(a,i0)")"Initializing abimem profiling with level: ", level
+
+ minfo%level = level
+ !start_time = abimem_wtime()
+
+ ! Optionally, selects functions or files to be profiled.
+ if (present(filename)) then
+ if (len_trim(filename) > 0) minfo%select_file = filename
+ end if
+
+ ! Optionally, set max limit in Mb used if level == 2
+ if (present(limit_mb)) minfo%limit_mb = limit_mb
+
+ ! Build name of file used for logging.
+ minfo%my_rank = 0
+#if defined HAVE_MPI
+ call MPI_COMM_RANK(MPI_COMM_WORLD, minfo%my_rank, ierr)
+#endif
+ write(minfo%logfile,"(a,i0,a)")"abimem_rank",minfo%my_rank,".mocc"
+
+ ! Clean the file if it already exists.
+ inquire(file=minfo%logfile, exist=file_exists)
+ if (file_exists) then
+ open(unit=minfo%logunt, file=minfo%logfile, status="old", iostat=ierr)
+ if (ierr==0) close(unit=minfo%logunt, status="delete", iostat=ierr)
+ end if
+
+ ! Activate snapshots.
+ if (present(delta_time)) then
+ minfo%dt_snapshot = delta_time
+ minfo%last_snapshot = zero
+ if (delta_time < 1.0e-6) then
+ _ABORT("delta_time is too small")
+ end if
+ end if
+
+ select case (abs(minfo%level))
+ case (0)
+ ! No action required
+
+ case (1, 2, 3)
+ minfo%iwrite = .False.
+ if (minfo%my_rank == 0) minfo%iwrite = .True.
+ if (minfo%level < 0) minfo%iwrite = .False.
+ if (minfo%iwrite) then
+ open(unit=minfo%logunt, file=minfo%logfile, status='unknown', action='write', iostat=ierr)
+ if (ierr /= 0) then
+ _ABORT("Opening abimem file")
+ end if
+ if (minfo%level == 1) call write_header("# Write memory allocations larger than previous peak")
+ if (minfo%level == 2) call write_header("# To be used for inspecting a variable which is not deallocated")
+ if (minfo%level == 3) then
+ if (minfo%limit_mb > zero) then
+ write(msg, "(a,f9.1,a)")"# Write memory allocations/deallocations larger than ", minfo%limit_mb, "(MB)"
+ else
+ write(msg, "(a,f9.1,a)")"# Write memory allocations/deallocations below than ", abs(minfo%limit_mb), "(MB)"
+ end if
+ call write_header(msg)
+ end if
+ end if
+
+ case default
+ write(msg, "(a,i0,2a)") &
+ "Invalid value for abimem_level:", minfo%level, ch10, &
+ "Make sure you are calling abimem_init and abinit_doctor in main!"
+ _ABORT(msg)
+ end select
+
+ contains
+
+ subroutine write_header(info)
+ character(len=*),intent(in) :: info
+ write(minfo%logunt, "(a, i0)")"# memocc file generated by Abinit compiled with HAVE_MEM_PROFILE."
+ write(minfo%logunt, "(a)") trim(info)
+ write(minfo%logunt, "(2(a,i0),a)")"# {level: ", level, ", rank: ", minfo%my_rank, "}"
+ write(minfo%logunt,'(a,t60,a)')'# Variable name', 'Action Address Size[b] File Line Total Memory [bits]'
+ end subroutine write_header
+
+end subroutine abimem_init
+!!***
+
+!!****f* m_profiling_abi/abimem_set_snapshot_time
+!! NAME
+!! abimem_set_snapshot_time
+!!
+!! FUNCTION
+!! Set time interface for snapshots.
+!!
+!! INPUT
+!! delta_time=Interval in second for snapshots.
+!!
+!! INPUT
+
+subroutine abimem_set_snapshot_time(delta_time)
+
+!Arguments ------------------------------------
+ real(dp),optional,intent(in) :: delta_time
+! *************************************************************************
+
+ minfo%dt_snapshot = delta_time
+ minfo%last_snapshot = zero
+ if (delta_time < 1.0e-6) then
+ _ABORT("delta_time is too small")
+ end if
+
+end subroutine abimem_set_snapshot_time
+!!***
+
+!!****f* m_profiling_abi/abimem_shutdown
+!! NAME
+!! abimem_shutdown
+!!
+!! FUNCTION
+!! Perform final cleanup of the module and close files.
+!!
+!! INPUT
+
+subroutine abimem_shutdown()
+
+!Local variables-------------------------------
+ integer :: unt_found
+ logical :: isopen
+! *************************************************************************
+
+ minfo%level = 0
+
+ ! Close the file if it's connected
+ inquire(file=minfo%logfile, number=unt_found, opened=isopen)
+ if (isopen .and. unt_found == minfo%logunt) close(minfo%logunt)
+
+end subroutine abimem_shutdown
+!!***
+
+!!****f* m_profiling_abi/abimem_report
+!! NAME
+!! abimem_report
+!!
+!! FUNCTION
+!! Print info about memory usage to unit `unt`.
+!! Add mallinfo values if `with_mallinfo` (default: True)
+!!
+!! INPUT
+
+subroutine abimem_report(tag, unt, with_mallinfo)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: tag
+ integer,intent(in) :: unt
+ logical,optional,intent(in) :: with_mallinfo
+
+!Local variables-------------------------------
+ integer,save :: icall = 0
+ integer(i8b),save :: prev_memory
+ real(dp) :: diff_mb
+ real(dp), parameter :: byte2Mb = b2Mb / 8.0_dp
+ logical :: with_minfo
+
+! *************************************************************************
+
+ with_minfo = .True.
+ if (present(with_mallinfo)) with_minfo = with_mallinfo
+ if (with_minfo) call clib_print_mallinfo(unit=unt)
+ !call wrtout(std_out, sjoin("xmpi_count_requests", itoa(xmpi_count_requests)))
+
+ if (minfo%level == huge(one)) return
+
+ icall = icall + 1
+ write(unt,"(a)")"------------------------- MEMORY CONSUMPTION REPORT -----------------------------"
+ write(unt,"(2a)")"tag: ", trim(tag)
+ write(unt,"(3(a,i0))")" Malloc: ",minfo%num_alloc,", Free: ", minfo%num_free, ", M-F: ", minfo%num_alloc - minfo%num_free
+ write(unt,"(a,f8.1,a)")" Memory allocated so far: ", minfo%memory * byte2Mb, " (Mb)"
+ write(unt,"(a,f8.1,5a,i0)")" Peak: ", minfo%peak * byte2Mb," (MB) for variable: ", trim(minfo%peak_vname), &
+ "at:", trim(abimem_basename(minfo%peak_file)),":",minfo%peak_fileline
+ diff_mb = zero; if (icall > 1) diff_mb = (minfo%memory - prev_memory) * byte2Mb
+ write(unt,"(a,f8.1,a)")" Memory allocated wrt previous call: ", diff_mb, " (Mb)"
+ prev_memory = minfo%memory
+
+end subroutine abimem_report
+!!***
+
+!!****f* m_profiling_abi/abimem_get_info
+!! NAME
+!! abimem_get_info
+!!
+!! FUNCTION
+!! Function that returns the number of allocations and deallocations that have
+!! been performed in Fortran and the memory currently used
+!!
+!! OUTPUT
+!! nalloc: number of allocations that have been performed in Fortran
+!! nfree: number of deallocations that have been performed in Fortran
+!! allocmemory: total memory used (Fortran)
+!! nalloc_c, nfree_c: Similar to nalloc and nfree but for the C code.
+
+subroutine abimem_get_info(nalloc, nfree, allocmemory, nalloc_c, nfree_c)
+
+!Arguments ------------------------------------
+ integer(i8b),intent(out) :: nalloc, nfree, allocmemory, nalloc_c, nfree_c
+
+!Local variables-------------------------------
+ integer(c_long) :: long_nalloc_c, long_nfree_c
+! *************************************************************************
+
+ nalloc = minfo%num_alloc; nfree = minfo%num_free; allocmemory = minfo%memory
+
+ call clib_get_meminfo(long_nalloc_c, long_nfree_c)
+ nalloc_c = long_nalloc_c; nfree_c = long_nfree_c
+
+end subroutine abimem_get_info
+!!***
+
+!!****f* m_profiling_abi/abimem_record
+!! NAME
+!! abimem_record
+!!
+!! FUNCTION
+!! Control the memory occupation by calculating the overall size of the allocated arrays
+!! At the end of the calculation a short report is printed on the screen,
+!! some information can be also written on disk following the needs
+!!
+!! SOURCE
+
+subroutine abimem_record(istat, vname, addr, act, isize, file, line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: istat,line
+ integer(i8b), intent(in) :: isize,addr
+ character(len=*), intent(in) :: vname,act,file
+
+!Local variables-------------------------------
+ !integer :: ierr
+ !real(dp) :: now
+ logical :: do_log, new_peak
+ character(len=500) :: msg
+! *************************************************************************
+
+ ! Handle possible allocate/deallocate failures.
+ if (istat /= 0) then
+ if (isize >= 0) then
+ write(msg,*)" Problem of allocation of variable: ",trim(vname),', error code= ',istat
+ _ABORT(msg)
+ else if (isize<0) then
+ write(msg,*)" Problem of deallocation of variable ",trim(vname),', error code= ',istat
+ _ABORT(msg)
+ end if
+ end if
+
+ ! Increase total counter
+ minfo%memory = minfo%memory + isize
+ new_peak = .False.
+ if (isize > minfo%peak) then
+ ! New peak
+ new_peak = .True.
+ minfo%peak = isize
+ minfo%peak_vname = vname
+ minfo%peak_file = file
+ minfo%peak_fileline = line
+ end if
+
+ if (isize > 0) then
+ minfo%num_alloc = minfo%num_alloc + 1
+ else if (isize < 0) then
+ minfo%num_free = minfo%num_free + 1
+ else
+ ! This is the correct check but tests fail!
+ !if (act == "A") then
+ ! minfo%num_alloc = minfo%num_alloc + 1
+ !else if (act == "D") then
+ ! minfo%num_free = minfo%num_free + 1
+ !else
+ ! _ABORT("Wrong action: "//trim(act))
+ !end if
+ end if
+
+ ! Selective memory tracing
+ do_log = .True.
+ if (minfo%select_file /= NONE_STRING) do_log = (minfo%select_file == file)
+ do_log = do_log .and. minfo%iwrite
+
+ ! Snapshot (write to std_out)
+ !if (do_log .and. minfo%last_snapshot >= zero) then
+ ! now = abimem_wtime()
+ ! if (now - minfo%last_snapshot >= minfo%dt_snapshot) then
+ ! call abimem_report("", std_out)
+ ! minfo%last_snapshot = now
+ ! end if
+ !end if
+
+ ! IMPORTANT:
+ ! Remember to change the pyton code in ~abinit/tests/pymods/memprof.py to account for changes in the format
+ if (do_log) then
+ select case (minfo%level)
+ case (0)
+ ! No action required
+
+ case (1)
+ ! Write only if we have a new peak
+ if (new_peak) then
+ write(minfo%logunt,'(a,t60,a,1x,2(i0,1x),a,1x,2(i0,1x))') &
+ trim(vname), trim(act), addr, isize, trim(abimem_basename(file)), line, minfo%memory
+ end if
+
+ case (2)
+ ! To be used for inspecting a variable which is not deallocated
+ write(minfo%logunt,'(a,t60,a,1x,2(i0,1x),a,1x,2(i0,1x))') &
+ trim(vname), trim(act), addr, isize, trim(abimem_basename(file)), line, minfo%memory
+
+ case (3)
+ ! Write memory allocations larger than limit_mb
+ if ((abs(isize * b2Mb) > minfo%limit_mb .and. minfo%limit_mb > zero) .or. &
+ (abs(isize * b2Mb) < minfo%limit_mb .and. minfo%limit_mb < zero)) then
+ write(minfo%logunt,'(a,t60,a,1x,2(i0,1x),a,1x,2(i0,1x))') &
+ trim(vname), trim(act), addr, isize, trim(abimem_basename(file)), line, minfo%memory
+ end if
+
+ case default
+ _ABORT("Invalid abimem_level")
+ end select
+ end if
+
+end subroutine abimem_record
+!!***
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Private routine providing services already implemented in other higher level modules.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+!!****f* m_abimem/abimem_abort
+!! NAME
+!! abimem_abort
+!!
+!! FUNCTION
+!! Stop the code if an error occurs.
+!!
+!! INPUT
+!! msg=Error message
+!! file=File name
+!! line=Line number
+!!
+!! SOURCE
+
+subroutine abimem_abort(msg, file, line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: line
+ character(len=*),intent(in) :: msg,file
+
+!Local variables-------------------------------
+ integer :: ierr
+
+!Local variables-------------------------------
+ integer :: unt_found
+ logical :: isopen
+! *************************************************************************
+
+ write(std_out,*)trim(msg),", file: ", trim(file), ", line: ", line
+
+ ! Close logfile if it's connected to flush io buffers and avoid file corruption
+ inquire(file=minfo%logfile, number=unt_found, opened=isopen)
+ if (isopen .and. (unt_found == minfo%logunt)) close(unit=minfo%logunt)
+
+ ierr = 0
+#ifdef HAVE_MPI
+ call MPI_ABORT(MPI_COMM_WORLD, MPI_ERR_UNKNOWN, ierr)
+#endif
+ stop
+
+end subroutine abimem_abort
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_profiling_abi/abimem_basename
+!! NAME
+!! abimem_basename
+!!
+!! FUNCTION
+!! Returns the final component of a pathname.
+!!
+!! INPUTS
+!! string=The input string
+!!
+!! NOTES
+!! * If the input string in not a valid path to a file (i.e not in the form foo/name)
+!! a blank strink is returned
+!! * We do a backward search becase we want to optimize the algorithm for Fortran strings.
+!!
+!! SOURCE
+
+pure function abimem_basename(string) result(basename)
+
+ character(len=*),intent(in) :: string
+ character(len=LEN_TRIM(string)) :: basename
+
+!Local variables-------------------------------
+ integer :: ic,nch_trim,nch
+ character(len=1),parameter :: DIR_SEPARATOR = '/'
+ character(len=1),parameter :: BLANK=' '
+!************************************************************************
+
+ nch =LEN (string)
+ nch_trim=LEN_TRIM(string)
+
+ ic = INDEX (TRIM(string), DIR_SEPARATOR, back=.TRUE.)
+ !write(*,*)'DEBUG ',TRIM(string),ic
+
+ if (ic >= 1 .and. ic <= nch_trim-1) then ! there is stuff after the separator.
+ basename = string(ic+1:nch_trim)
+ return
+ else if (ic==0 .or. ic == nch_trim+1) then ! no separator in string or zero length string,
+ basename = TRIM(string) ! return trimmed string.
+ return
+ else ! (ic == nch_trim) separator is the last char.
+ basename= BLANK ! This is not a valid path to a file, return blank.
+ return
+ end if
+
+end function abimem_basename
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_time/abimem_wtime
+!! NAME
+!! abimem_wtime
+!!
+!! FUNCTION
+!! Return wall clock time in seconds since some arbitrary start.
+!! Call the F90 intrinsic date_and_time .
+!!
+!! INPUTS
+!! (no inputs)
+!!
+!! OUTPUT
+!! wall= wall clock time in seconds
+!!
+!! SOURCE
+
+function abimem_wtime() result(wall)
+
+!Arguments ------------------------------------
+!scalars
+ real(dp) :: wall
+
+!Local variables-------------------------------
+!scalars
+#ifndef HAVE_MPI
+ integer,parameter :: nday(24)=(/31,28,31,30,31,30,31,31,30,31,30,31,&
+& 31,28,31,30,31,30,31,31,30,31,30,31/)
+ integer,save :: month_init,month_now,start=1,year_init
+ integer :: months
+ character(len=8) :: date
+ character(len=10) :: time
+ character(len=5) :: zone
+!arrays
+ integer :: values(8)
+#endif
+
+! *************************************************************************
+
+#ifndef HAVE_MPI
+
+!The following section of code is standard F90, but it is useful only if the intrinsics
+!date_and_time is accurate at the 0.01 sec level, which is not the case for a P6 with the pghpf compiler ...
+!Year and month initialisation
+ if(start==1)then
+ start=0
+ call date_and_time(date,time,zone,values)
+ year_init=values(1)
+ month_init=values(2)
+ end if
+
+!Uses intrinsic F90 subroutine Date_and_time for
+!wall clock (not correct when a change of year happen)
+ call date_and_time(date,time,zone,values)
+
+!Compute first the number of seconds from the beginning of the month
+ wall=(values(3)*24.0d0+values(5))*3600.0d0+values(6)*60.0d0+values(7)+values(8)*0.001d0
+
+!If the month has changed, compute the number of seconds
+!to be added. This fails if the program ran one year !!
+ month_now=values(2)
+ if(month_now/=month_init)then
+ if(year_init+1==values(1))then
+ month_now=month_now+12
+ end if
+ if(month_now<=month_init)then
+ _ABORT('Problem with month and year numbers.')
+ end if
+ do months=month_init,month_now-1
+ wall=wall+86400.0d0*nday(months)
+ end do
+ end if
+
+!Now take into account bissextile years (I think 2000 is bissextile, but I am not sure ...)
+ if(mod(year_init,4)==0 .and. month_init<=2 .and. month_now>2) wall=wall+3600.0d0
+ if(mod(values(1),4)==0 .and. month_init<=14 .and. month_now>14) wall=wall+3600.0d0
+
+#else
+!Use the timer provided by MPI1.
+ wall = MPI_WTIME()
+#endif
+
+end function abimem_wtime
+!!***
+
+end module m_profiling_abi
+!!***
diff --git a/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.o b/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.o
new file mode 100644
index 00000000..38582aee
Binary files /dev/null and b/GX-PAW/common/src/11_memory_mpi/m_profiling_abi.o differ
diff --git a/GX-PAW/common/src/12_hide_mpi/Makefile b/GX-PAW/common/src/12_hide_mpi/Makefile
new file mode 100644
index 00000000..44025645
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/Makefile
@@ -0,0 +1,1488 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/12_hide_mpi/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/12_hide_mpi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib12_hide_mpi_a_AR = $(AR) $(ARFLAGS)
+lib12_hide_mpi_a_LIBADD =
+am__objects_1 = m_xmpi.$(OBJEXT) m_xomp.$(OBJEXT)
+am_lib12_hide_mpi_a_OBJECTS = $(am__objects_1)
+lib12_hide_mpi_a_OBJECTS = $(am_lib12_hide_mpi_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib12_hide_mpi_a_SOURCES)
+DIST_SOURCES = $(lib12_hide_mpi_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/12_hide_mpi
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/12_hide_mpi
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ -I/opt/local/include \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib12_hide_mpi_srcs = \
+ m_xmpi.F90 \
+ m_xomp.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib12_hide_mpi.a
+lib12_hide_mpi_a_SOURCES = $(lib12_hide_mpi_srcs)
+
+# Dependencies (inside the directory) of directory 12_hide_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_xmpi_cpp.f90 m_xomp_cpp.f90 m_xmpi.$(MODEXT) \
+ m_xomp.$(MODEXT)
+
+#EXTRA_DIST_TMP = $(foreach ffile,$(finc_list),$(ffile))
+EXTRA_DIST = abinit.src abinit.dep abinit.amf $(finc_list) \
+ _12_hide_mpi_
+finc_list = \
+ xmpi_allgather.finc \
+ xmpi_iallgather.finc \
+ xmpi_allgatherv.finc \
+ xmpi_gather.finc \
+ xmpi_gatherv.finc \
+ xmpi_bcast.finc \
+ xmpi_min.finc \
+ xmpi_sum_master.finc \
+ xmpi_exch.finc \
+ xmpi_recv.finc \
+ xmpi_irecv.finc \
+ xmpi_sum.finc \
+ xmpi_ibcast.finc \
+ xmpi_isum.finc \
+ xmpi_alltoall.finc \
+ xmpi_ialltoall.finc \
+ xmpi_alltoallv.finc \
+ xmpi_ialltoallv.finc \
+ xmpi_max.finc \
+ xmpi_send.finc \
+ xmpi_isend.finc \
+ xmpi_scatterv.finc \
+ xmpi_land_lor.finc
+
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib12_hide_mpi_a_DEPENDENCIES = $(finc_list)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/12_hide_mpi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/12_hide_mpi/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib12_hide_mpi.a: $(lib12_hide_mpi_a_OBJECTS) $(lib12_hide_mpi_a_DEPENDENCIES) $(EXTRA_lib12_hide_mpi_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib12_hide_mpi.a
+ $(AM_V_AR)$(lib12_hide_mpi_a_AR) lib12_hide_mpi.a $(lib12_hide_mpi_a_OBJECTS) $(lib12_hide_mpi_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib12_hide_mpi.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/12_hide_mpi/Makefile.am b/GX-PAW/common/src/12_hide_mpi/Makefile.am
new file mode 100644
index 00000000..b3eb5230
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/Makefile.am
@@ -0,0 +1,92 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_12_hide_mpi@
+
+AM_CPPFLAGS = \
+ @src_02_clib_fcflags@ \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib12_hide_mpi_srcs = \
+ m_xmpi.F90 \
+ m_xomp.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib12_hide_mpi.a
+
+lib12_hide_mpi_a_SOURCES= $(lib12_hide_mpi_srcs)
+
+CLEANFILES = \
+ m_xmpi_cpp.f90 \
+ m_xomp_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 12_hide_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_xmpi.$(MODEXT) \
+ m_xomp.$(MODEXT)
+
+
+EXTRA_DIST += abinit.amf
+
+finc_list = \
+ xmpi_allgather.finc \
+ xmpi_iallgather.finc \
+ xmpi_allgatherv.finc \
+ xmpi_gather.finc \
+ xmpi_gatherv.finc \
+ xmpi_bcast.finc \
+ xmpi_min.finc \
+ xmpi_sum_master.finc \
+ xmpi_exch.finc \
+ xmpi_recv.finc \
+ xmpi_irecv.finc \
+ xmpi_sum.finc \
+ xmpi_ibcast.finc \
+ xmpi_isum.finc \
+ xmpi_alltoall.finc \
+ xmpi_ialltoall.finc \
+ xmpi_alltoallv.finc \
+ xmpi_ialltoallv.finc \
+ xmpi_max.finc \
+ xmpi_send.finc \
+ xmpi_isend.finc \
+ xmpi_scatterv.finc \
+ xmpi_land_lor.finc
+
+#EXTRA_DIST_TMP = $(foreach ffile,$(finc_list),$(ffile))
+EXTRA_DIST += $(finc_list)
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib12_hide_mpi_a_DEPENDENCIES = $(finc_list)
+
+EXTRA_DIST += _12_hide_mpi_
diff --git a/GX-PAW/common/src/12_hide_mpi/Makefile.in b/GX-PAW/common/src/12_hide_mpi/Makefile.in
new file mode 100644
index 00000000..604fea6f
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/Makefile.in
@@ -0,0 +1,1488 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/12_hide_mpi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib12_hide_mpi_a_AR = $(AR) $(ARFLAGS)
+lib12_hide_mpi_a_LIBADD =
+am__objects_1 = m_xmpi.$(OBJEXT) m_xomp.$(OBJEXT)
+am_lib12_hide_mpi_a_OBJECTS = $(am__objects_1)
+lib12_hide_mpi_a_OBJECTS = $(am_lib12_hide_mpi_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib12_hide_mpi_a_SOURCES)
+DIST_SOURCES = $(lib12_hide_mpi_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_12_hide_mpi@
+AM_CPPFLAGS = \
+ @src_02_clib_fcflags@ \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib12_hide_mpi_srcs = \
+ m_xmpi.F90 \
+ m_xomp.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib12_hide_mpi.a
+lib12_hide_mpi_a_SOURCES = $(lib12_hide_mpi_srcs)
+
+# Dependencies (inside the directory) of directory 12_hide_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_xmpi_cpp.f90 m_xomp_cpp.f90 m_xmpi.$(MODEXT) \
+ m_xomp.$(MODEXT)
+
+#EXTRA_DIST_TMP = $(foreach ffile,$(finc_list),$(ffile))
+EXTRA_DIST = abinit.src abinit.dep abinit.amf $(finc_list) \
+ _12_hide_mpi_
+finc_list = \
+ xmpi_allgather.finc \
+ xmpi_iallgather.finc \
+ xmpi_allgatherv.finc \
+ xmpi_gather.finc \
+ xmpi_gatherv.finc \
+ xmpi_bcast.finc \
+ xmpi_min.finc \
+ xmpi_sum_master.finc \
+ xmpi_exch.finc \
+ xmpi_recv.finc \
+ xmpi_irecv.finc \
+ xmpi_sum.finc \
+ xmpi_ibcast.finc \
+ xmpi_isum.finc \
+ xmpi_alltoall.finc \
+ xmpi_ialltoall.finc \
+ xmpi_alltoallv.finc \
+ xmpi_ialltoallv.finc \
+ xmpi_max.finc \
+ xmpi_send.finc \
+ xmpi_isend.finc \
+ xmpi_scatterv.finc \
+ xmpi_land_lor.finc
+
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib12_hide_mpi_a_DEPENDENCIES = $(finc_list)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/12_hide_mpi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/12_hide_mpi/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib12_hide_mpi.a: $(lib12_hide_mpi_a_OBJECTS) $(lib12_hide_mpi_a_DEPENDENCIES) $(EXTRA_lib12_hide_mpi_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib12_hide_mpi.a
+ $(AM_V_AR)$(lib12_hide_mpi_a_AR) lib12_hide_mpi.a $(lib12_hide_mpi_a_OBJECTS) $(lib12_hide_mpi_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib12_hide_mpi.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/12_hide_mpi/README b/GX-PAW/common/src/12_hide_mpi/README
new file mode 100644
index 00000000..35cec49b
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/README
@@ -0,0 +1,15 @@
+Adding a new source file inside a directory "dirname"
+=====================================================
+
+In order to be treated properly by the ABINIT build system,
+a new source file should be declared in the file abinit.src
+of the same directory (just one line to be added
+per new file, rather self-explanatory).
+
+Then, in order for the make to work :
+(1) if the developer has the autotools working on his computer, he should
+ issue */*/makemake, then configure and make
+(2) otherwise, the developer should modify by hand the Makefile.am file
+ of the directory in which the file is placed (just one line to be added also),
+ then issue make.
+
diff --git a/GX-PAW/common/src/12_hide_mpi/_12_hide_mpi_ b/GX-PAW/common/src/12_hide_mpi/_12_hide_mpi_
new file mode 100644
index 00000000..e4195817
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/_12_hide_mpi_
@@ -0,0 +1,46 @@
+!!****d* ABINIT/12_hide_mpi
+!! NAME
+!! 12_hide_mpi
+!!
+!! DESCRIPTION
+!! This directory contains small routines that are
+!! used to hide MPI calls in the ABINIT package.
+!! Outside MPI calls, They do not call routines in other ABINIT directories,
+!! hence these routines constitutes a stand-alone library.
+!! Some of these routines have two versions : one sequential, and
+!! one MPI-parallel.
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group (TD)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! interfaces_12_hide_mpi.F90
+!! m_xmpi.F90
+!! m_xomp.F90
+!! xmpi_allgather.finc
+!! xmpi_allgatherv.finc
+!! xmpi_alltoall.finc
+!! xmpi_alltoallv.finc
+!! xmpi_bcast.finc
+!! xmpi_exch.finc
+!! xmpi_gather.finc
+!! xmpi_gatherv.finc
+!! xmpi_ialltoall.finc
+!! xmpi_ialltoallv.finc
+!! xmpi_irecv.finc
+!! xmpi_isend.finc
+!! xmpi_isum.finc
+!! xmpi_land_lor.finc
+!! xmpi_max.finc
+!! xmpi_min.finc
+!! xmpi_recv.finc
+!! xmpi_scatterv.finc
+!! xmpi_send.finc
+!! xmpi_sum.finc
+!! xmpi_sum_master.finc
+!!
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/12_hide_mpi/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..b0a0fb74
Binary files /dev/null and b/GX-PAW/common/src/12_hide_mpi/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/12_hide_mpi/abinit.amf b/GX-PAW/common/src/12_hide_mpi/abinit.amf
new file mode 100644
index 00000000..e0500415
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/abinit.amf
@@ -0,0 +1,30 @@
+finc_list = \
+ xmpi_allgather.finc \
+ xmpi_iallgather.finc \
+ xmpi_allgatherv.finc \
+ xmpi_gather.finc \
+ xmpi_gatherv.finc \
+ xmpi_bcast.finc \
+ xmpi_min.finc \
+ xmpi_sum_master.finc \
+ xmpi_exch.finc \
+ xmpi_recv.finc \
+ xmpi_irecv.finc \
+ xmpi_sum.finc \
+ xmpi_ibcast.finc \
+ xmpi_isum.finc \
+ xmpi_alltoall.finc \
+ xmpi_ialltoall.finc \
+ xmpi_alltoallv.finc \
+ xmpi_ialltoallv.finc \
+ xmpi_max.finc \
+ xmpi_send.finc \
+ xmpi_isend.finc \
+ xmpi_scatterv.finc \
+ xmpi_land_lor.finc
+
+#EXTRA_DIST_TMP = $(foreach ffile,$(finc_list),$(ffile))
+EXTRA_DIST += $(finc_list)
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib12_hide_mpi_a_DEPENDENCIES = $(finc_list)
diff --git a/GX-PAW/common/src/12_hide_mpi/abinit.dep b/GX-PAW/common/src/12_hide_mpi/abinit.dep
new file mode 100644
index 00000000..70a12ad6
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/abinit.dep
@@ -0,0 +1,10 @@
+# Dependencies (inside the directory) of directory 12_hide_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_xmpi.$(MODEXT) \
+ m_xomp.$(MODEXT)
+
diff --git a/GX-PAW/common/src/12_hide_mpi/abinit.dir b/GX-PAW/common/src/12_hide_mpi/abinit.dir
new file mode 100644
index 00000000..df8a750c
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 12_hide_mpi
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['02_clib', '10_defs', '11_memory_mpi']
\ No newline at end of file
diff --git a/GX-PAW/common/src/12_hide_mpi/abinit.src b/GX-PAW/common/src/12_hide_mpi/abinit.src
new file mode 100644
index 00000000..624fb474
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/abinit.src
@@ -0,0 +1,25 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 1managempi library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "m_xmpi.F90",
+ "m_xomp.F90",
+ ]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/12_hide_mpi/lib12_hide_mpi.a b/GX-PAW/common/src/12_hide_mpi/lib12_hide_mpi.a
new file mode 100644
index 00000000..6c0afcf1
Binary files /dev/null and b/GX-PAW/common/src/12_hide_mpi/lib12_hide_mpi.a differ
diff --git a/GX-PAW/common/src/12_hide_mpi/m_xmpi.F90 b/GX-PAW/common/src/12_hide_mpi/m_xmpi.F90
new file mode 100644
index 00000000..38d6c440
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/m_xmpi.F90
@@ -0,0 +1,5436 @@
+!!****m* ABINIT/m_xmpi
+!! NAME
+!! m_xmpi
+!!
+!! FUNCTION
+!! This module provides MPI named constants, tools for inquiring the MPI environment
+!! and a set of generic interfaces wrapping the most commonly used MPI primitives.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (MG, MB, XG, YP, MT)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! TODO
+!! Get rid of xmpi_paral. Sequential code is the **exception**. Developers should code parallel
+!! code or code that is compatible both with MPI and seq (thanks to the wrappers provided by this module)
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_xmpi
+
+ use defs_basis
+ use m_profiling_abi
+ use, intrinsic :: iso_c_binding
+#ifdef HAVE_FC_ISO_FORTRAN_2008
+ use ISO_FORTRAN_ENV, only : int16, int32, int64
+#endif
+#ifdef HAVE_MPI2
+ use mpi
+#endif
+#ifdef FC_NAG
+ use f90_unix_proc
+#endif
+ use m_clib, only : clib_ulimit_stack !, clib_getpid !, clib_usleep
+
+ implicit none
+
+ private
+!!***
+
+#ifdef HAVE_MPI1
+ include 'mpif.h'
+#endif
+#ifndef HAVE_FC_ISO_FORTRAN_2008
+ integer,parameter :: int16=2,int32=4,int64=8
+#endif
+
+#ifdef HAVE_MPI
+ ! MPI constants used in abinit. Make sure that a corresponding fake value is provided for the sequential version.
+ integer,public,parameter :: xmpi_paral = 1
+ integer,public,parameter :: xmpi_world = MPI_COMM_WORLD
+ integer,public,parameter :: xmpi_comm_self = MPI_COMM_SELF
+ integer,public,parameter :: xmpi_undefined = MPI_UNDEFINED
+ integer,public,parameter :: xmpi_undefined_rank = MPI_UNDEFINED ! MPI_UNDEFINED_RANK is not portable.
+ integer,public,parameter :: xmpi_comm_null = MPI_COMM_NULL
+ integer,public,parameter :: xmpi_group_null = MPI_GROUP_NULL
+ integer,public,parameter :: xmpi_any_source = MPI_ANY_SOURCE
+ integer,public,parameter :: xmpi_request_null = MPI_REQUEST_NULL
+ integer,public,parameter :: xmpi_msg_len = MPI_MAX_ERROR_STRING ! Length of fortran string used to store MPI error strings.
+ integer,public,parameter :: xmpi_info_null = MPI_INFO_NULL
+ integer,public,parameter :: xmpi_success = MPI_SUCCESS
+
+#else
+ ! Fake replacements for the sequential version. Values are taken from
+ ! http://www.mit.edu/course/13/13.715/sun-hpc-ct-8.2.1/Linux/sun/include/mpif-common.h
+ ! Please use these conventions when adding new replacements in order to avoid collisions between values.
+ integer,public,parameter :: xmpi_paral = 0
+ integer,public,parameter :: xmpi_world = 0
+ integer,public,parameter :: xmpi_comm_self = 1
+ integer,public,parameter :: xmpi_undefined =-32766
+ integer,public,parameter :: xmpi_undefined_rank =-32766
+ integer,public,parameter :: xmpi_comm_null = 2
+ integer,public,parameter :: xmpi_group_null = 0
+ integer,public,parameter :: xmpi_any_source = -1
+ integer,public,parameter :: xmpi_request_null = 0
+ integer,public,parameter :: xmpi_msg_len = 1000
+ integer,public,parameter :: xmpi_info_null = 0
+ integer,public,parameter :: xmpi_success = 0
+#endif
+
+#ifdef HAVE_MPI
+ integer,save,private :: xmpi_tag_ub=32767
+ ! The tag upper bound value must be at least 32767. An MPI implementation is free to make
+ ! the value of MPI_TAG_UB larger than this hence xmpi_tag_ub is redefined when MPI is init in xmpi_init.
+#endif
+
+ ! Size in bytes of the entries used in MPI datatypes.
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_ch = 0
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_int = 0
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_sp = 0
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_dp = 0
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_spc = 0
+ integer,save, public ABI_PROTECTED:: xmpi_bsize_dpc = 0
+
+ ! kind of the offset used for MPI-IO.
+#ifdef HAVE_MPI_IO
+ integer,public,parameter :: xmpi_offset_kind = MPI_OFFSET_KIND
+ integer,public,parameter :: xmpi_address_kind = MPI_ADDRESS_KIND
+ integer,public,parameter :: xmpi_mpiio = 1
+#else
+ integer,public,parameter :: xmpi_offset_kind = i8b
+ integer,public,parameter :: xmpi_address_kind = i8b
+ integer,public,parameter :: xmpi_mpiio = 0
+#endif
+
+ ! The byte size and the MPI type of the Fortran record marker.
+ ! These quantities are compiler-dependent and are initalized here
+ ! for selected compilers or in xmpio_get_info_frm that is called by xmpi_init (only if MPI-IO is on).
+#if defined HAVE_MPI && (defined FC_INTEL || defined FC_GNU || defined FC_IBM)
+ integer,save,public ABI_PROTECTED :: xmpio_bsize_frm = 4
+ integer,save,public ABI_PROTECTED :: xmpio_mpi_type_frm= MPI_INTEGER4
+#else
+ integer,save,public ABI_PROTECTED :: xmpio_bsize_frm = 0
+ integer,save,public ABI_PROTECTED :: xmpio_mpi_type_frm = 0
+#endif
+
+ integer,save, public ABI_PROTECTED :: xmpio_info = xmpi_info_null
+ ! Global variable used to pass hints to the MPI-IO routines.
+
+ integer(XMPI_OFFSET_KIND),public,parameter :: xmpio_chunk_bsize = 2000 * (1024.0_dp**2)
+ ! Defines the chunk size (in bytes) used to (read|write) data in a single MPI-IO call.
+ ! MPI-IO, indeed, crashes if we try to do the IO of a large array with a single call.
+ ! We use a value <= 2 Gb to avoid wraparound errors with standard integers.
+
+ ! Options used for the MPI-IO wrappers used in abinit.
+ integer,public,parameter :: xmpio_single = 1 ! Individual IO.
+ integer,public,parameter :: xmpio_collective = 2 ! Collective IO.
+
+ integer,save, public ABI_PROTECTED :: xmpi_count_requests = 0
+ ! Count number of requests (+1 for each call to non-blocking API, -1 for each call to xmpi_wait)
+ ! This counter should be zero at the end of the run if all requests have been released.
+
+ logical,save, private :: xmpi_use_inplace_operations = .False.
+ ! Enable/disable usage of MPI_IN_PLACE in e.g. xmpi_sum
+
+ ! For MPI unitialized, 0 if ranks do not belong to a shared memory region else 1
+
+ contains
+ procedure :: skip => xcomm_skip ! Skip iteration according to rank
+ procedure :: set_to_null => xcomm_set_to_null
+ procedure :: set_to_self => xcomm_set_to_self
+ procedure :: free => xcomm_free
+ procedure :: from_cart_sub => xcomm_from_cart_sub ! Build sub-communicators in a Cartesian grid.
+ procedure :: prep_gatherv => xcomm_prep_gatherv ! Prepare a typical gatherv operation.
+ procedure :: print_names => xcomm_print_names
+ procedure :: can_use_shmem => xcomm_can_use_shmem
+ procedure :: allocate_shared_master => xcomm_allocate_shared_master
+ end type xcomm_t
+
+ public :: xcomm_from_mpi_int
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* m_xmpi/xmpi_pool2d_t
+!! NAME
+!! xmpi_pool2d_t
+!!
+!! FUNCTION
+!! Pool of MPI processors operating a 2D problem of shape (n1, n2).
+!! Each item in the (n1, n2) matrix is assigned to a single pool.
+!! Note that differerent pools do not necessarily have the same number of procs,
+!! thus a pool is more flexibile than a Cartesian grid although inter-pool communication becomes more complex.
+!!
+!! SOURCE
+
+ type, public :: xmpi_pool2d_t
+
+ integer :: n1 = -1, n2 = -1
+ ! Dimensions of the 2d problem
+
+ type(xcomm_t) :: comm
+ ! MPI communicator
+
+ logical,allocatable :: treats(:,:)
+ ! (n1, n2)
+ ! True if this pool treats (i1, i2)
+
+ contains
+ procedure :: from_dims => pool2d_from_dims ! Init pool from problem dims.
+ procedure :: free => pool2d_free ! Free memory.
+ end type xmpi_pool2d_t
+!!***
+
+! Public procedures.
+ public :: xmpi_init ! Initialize the MPI environment.
+ public :: xmpi_set_inplace_operations! Set internal flag to use MPI_IN_PLACE whenever possible.
+ public :: xmpi_end ! Terminate the MPI environment.
+ public :: xmpi_abort ! Hides MPI_ABORT from MPI library.
+ public :: xmpi_show_info ! Printout of the basic variables stored in this module (useful for debugging).
+ public :: xmpi_group_free ! Hides MPI_GROUP_FREE from MPI library.
+ public :: xmpi_group_incl ! Hides MPI_GROUP_INCL from MPI library.
+ public :: xmpi_group_translate_ranks ! Hides MPI_GROUP_TRANSLATE_RANKS from MPI library.
+ public :: xmpi_comm_create ! Hides MPI_COMM_CREATE from MPI library.
+ public :: xmpi_comm_rank ! Hides MPI_COMM_RANK from MPI library.
+ public :: xmpi_comm_size ! Hides MPI_COMM_SIZE from MPI library.
+ public :: xmpi_comm_free ! Hides MPI_COMM_FREE from MPI library.
+ public :: xmpi_comm_group ! Hides MPI_COMM_GROUP from MPI library.
+ public :: xmpi_comm_translate_ranks ! Hides MPI_GROUP_TRANSLATE_RANKS from MPI library.
+ public :: xmpi_comm_translate_rank ! Translate one rank
+ public :: xmpi_comm_split ! Hides MPI_COMM_SPLIT from MPI library.
+ public :: xmpi_subcomm ! Creates a sub-communicator from an input communicator.
+ public :: xmpi_comm_multiple_of ! Creates sub-communicator with number of procs multiple of a certain number.
+ public :: xmpi_barrier ! Hides MPI_BARRIER from MPI library.
+ public :: xmpi_name ! Hides MPI_NAME from MPI library.
+ public :: xmpi_iprobe ! Hides MPI_IPROBE from MPI library.
+ public :: xmpi_wait ! Hides MPI_WAIT from MPI library.
+ public :: xmpi_waitall ! Hides MPI_WAITALL from MPI library.
+ public :: xmpi_request_free ! Hides MPI_REQUEST_FREE from MPI library.
+ public :: xmpi_requests_add ! Increase/decrement xmpi_count_requests internal counter
+ public :: xmpi_comm_set_errhandler ! Hides MPI_COMM_SET_ERRHANDLER from MPI library.
+ public :: xmpi_error_string ! Return a string describing the error from ierr.
+ public :: xmpi_split_work ! Splits tasks inside communicator using blocks
+ public :: xmpi_split_block ! Splits tasks inside communicator using block distribution.
+ public :: xmpi_split_cyclic ! Splits tasks inside communicator using cyclic distribution.
+ public :: xmpi_split_list ! Splits list of indices inside communicator using block distribution.
+ public :: xmpi_distab ! Fill table defining the distribution of the tasks according to the # of processors
+ public :: xmpi_distrib_with_replicas ! Distribute tasks among MPI ranks (replicas are allowed)
+ public :: xmpi_distrib_2d ! Try to optimally distribute nprocs in a 2d grid of shape (n1, n2)
+
+! Private procedures.
+ private :: xmpi_largetype_create ! Build a large-count contiguous datatype (to handle a very large # of data)
+ private :: xmpi_largetype_free ! Release a large-count contiguous datatype
+
+ interface xmpi_comm_free
+ module procedure xmpi_comm_free_0D
+ module procedure xmpi_comm_free_1D
+ module procedure xmpi_comm_free_2D
+ module procedure xmpi_comm_free_3D
+ end interface xmpi_comm_free
+
+ interface xmpi_waitall
+ module procedure xmpi_waitall_1d
+ module procedure xmpi_waitall_2d
+ end interface xmpi_waitall
+
+ interface xmpi_split_work
+ module procedure xmpi_split_work_i4b
+ end interface xmpi_split_work
+
+ public :: xmpi_split_work2_i4b
+ public :: xmpi_split_work2_i8b
+ !public :: xmpi_split_work2
+ !
+ ! g95@green v0.93 is not able to resolve the interface.
+ ! For the time being, this generic interface has been disabled.
+ !interface xmpi_split_work2
+ ! module procedure xmpi_split_work2_i4b
+ ! module procedure xmpi_split_work2_i8b
+ !end interface xmpi_split_work2
+
+ interface xmpi_distab
+ module procedure xmpi_distab_4D
+ end interface xmpi_distab
+
+ ! MPI generic interfaces.
+ public :: xmpi_allgather
+ public :: xmpi_iallgather
+ public :: xmpi_allgatherv
+ public :: xmpi_alltoall
+ public :: xmpi_ialltoall
+ public :: xmpi_alltoallv
+ public :: xmpi_ialltoallv
+ public :: xmpi_bcast
+ public :: xmpi_ibcast
+ public :: xmpi_exch
+ public :: xmpi_gather
+ public :: xmpi_gatherv
+ public :: xmpi_max
+ public :: xmpi_max_ip
+ public :: xmpi_min ! Out-of-place version
+ public :: xmpi_min_ip ! In-place version
+ public :: xmpi_recv
+ public :: xmpi_irecv
+ public :: xmpi_scatterv
+ public :: xmpi_send
+ public :: xmpi_isend
+ public :: xmpi_sum_master
+ public :: xmpi_sum
+ public :: xmpi_isum
+ public :: xmpi_isum_ip
+ public :: xmpi_land ! allreduce with MPI_LAND
+ public :: xmpi_lor ! allreduce with MPI_LOR
+
+ public :: xmpi_win_fence
+ public :: xmpi_win_free
+
+#ifdef HAVE_MPI_IO
+ public :: xmpio_max_address ! Returns .TRUE. if offset cannot be stored in integer(kind=XMPI_ADDRESS_KIND).
+ public :: xmpio_type_struct
+ public :: xmpio_get_info_frm
+ public :: xmpio_check_frmarkers
+ public :: xmpio_read_frm
+ public :: xmpio_read_int
+ public :: xmpio_read_dp
+ public :: xmpio_write_frm
+ public :: xmpio_write_frmarkers
+
+ public :: xmpio_create_fstripes
+ public :: xmpio_create_fsubarray_2D
+ public :: xmpio_create_fsubarray_3D
+ public :: xmpio_create_fsubarray_4D
+ public :: xmpio_create_fherm_packed
+ public :: xmpio_create_coldistr_from_fpacked
+ public :: xmpio_create_coldistr_from_fp3blocks
+#endif
+
+!----------------------------------------------------------------------
+
+interface xmpi_allgather
+ module procedure xmpi_allgather_int
+ module procedure xmpi_allgather_char
+ module procedure xmpi_allgather_int1d_1b
+ module procedure xmpi_allgather_int1d
+ module procedure xmpi_allgather_int2d
+ module procedure xmpi_allgather_dp1d
+ module procedure xmpi_allgather_dp2d
+ module procedure xmpi_allgather_dp3d
+ module procedure xmpi_allgather_dp4d
+end interface xmpi_allgather
+
+!----------------------------------------------------------------------
+
+! non-blocking version (requires MPI3)
+! Prototype:
+!
+! call xmpi_iallgather(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
+!
+! If the MPI library does not provide ialltoall, we call the blocking version and
+! we return xmpi_request_null (see xmpi_iallgather.finc)
+! Client code should always test/wait the request so that code semantics is preserved.
+
+interface xmpi_iallgather
+ module procedure xmpi_iallgather_dp4d
+end interface xmpi_iallgather
+
+interface xmpi_allgatherv
+ module procedure xmpi_allgatherv_int2d
+ module procedure xmpi_allgatherv_int
+ module procedure xmpi_allgatherv_int1_dp1
+ module procedure xmpi_allgatherv_dp
+ module procedure xmpi_allgatherv_dp2d
+ module procedure xmpi_allgatherv_dp3d
+ module procedure xmpi_allgatherv_dp4d
+ module procedure xmpi_allgatherv_dp5d
+ module procedure xmpi_allgatherv_dp6d
+ module procedure xmpi_allgatherv_coeff2d
+ module procedure xmpi_allgatherv_coeff2d_indx
+end interface xmpi_allgatherv
+
+!----------------------------------------------------------------------
+
+! blocking
+interface xmpi_alltoall
+ module procedure xmpi_alltoall_int
+ module procedure xmpi_alltoall_dp2d
+ module procedure xmpi_alltoall_dp4d
+end interface xmpi_alltoall
+
+! non-blocking version (requires MPI3)
+! Prototype:
+!
+! call xmpi_ialltoall(xval, sendsize, recvbuf, recvsize, comm, request)
+!
+! If the MPI library does not provide ialltoall, we call the blocking version and
+! we return xmpi_request_null (see xmpi_ialltoall.finc)
+! Client code should always test/wait the request so that code semantics is preserved.
+
+interface xmpi_ialltoall
+ module procedure xmpi_ialltoall_dp4d
+end interface xmpi_ialltoall
+
+!----------------------------------------------------------------------
+
+interface xmpi_alltoallv
+ module procedure xmpi_alltoallv_dp2d
+ module procedure xmpi_alltoallv_int2d
+ module procedure xmpi_alltoallv_dp1d
+ module procedure xmpi_alltoallv_dp1d2
+end interface xmpi_alltoallv
+
+!----------------------------------------------------------------------
+
+! non-blocking version (requires MPI3)
+! Prototype:
+!
+! call xmpi_ialltoallv(xval, sendcnts, sdispls, recvbuf, recvcnts, rdispls, comm, request)
+!
+! If the MPI library does not provide ialltoallv, we call the blocking version and
+! we return xmpi_request_null (see xmpi_ialltoallv.finc)
+! Client code should always test/wait the request so that code semantics is preserved.
+
+interface xmpi_ialltoallv
+ module procedure xmpi_ialltoallv_dp2d
+ module procedure xmpi_ialltoallv_int2d
+ module procedure xmpi_ialltoallv_dp1d2
+end interface xmpi_ialltoallv
+
+!----------------------------------------------------------------------
+
+interface xmpi_bcast
+ module procedure xmpi_bcast_intv
+ module procedure xmpi_bcast_int1d
+ module procedure xmpi_bcast_int2d
+ module procedure xmpi_bcast_int3d
+ module procedure xmpi_bcast_int4d
+ module procedure xmpi_bcast_dpv
+ module procedure xmpi_bcast_dp1d
+ module procedure xmpi_bcast_dp2d
+ module procedure xmpi_bcast_dp3d
+ module procedure xmpi_bcast_dp4d
+ module procedure xmpi_bcast_dp5d
+ module procedure xmpi_bcast_dp6d
+ module procedure xmpi_bcast_spv
+ module procedure xmpi_bcast_sp1d
+ module procedure xmpi_bcast_sp2d
+ module procedure xmpi_bcast_sp3d
+ module procedure xmpi_bcast_sp4d
+ module procedure xmpi_bcast_cplxv
+ module procedure xmpi_bcast_cplx1d
+ module procedure xmpi_bcast_cplx2d
+ module procedure xmpi_bcast_cplx3d
+ module procedure xmpi_bcast_cplx4d
+ module procedure xmpi_bcast_dcv
+ module procedure xmpi_bcast_dc1d
+ module procedure xmpi_bcast_dc2d
+ module procedure xmpi_bcast_dc3d
+ module procedure xmpi_bcast_dc4d
+ module procedure xmpi_bcast_ch0d
+ module procedure xmpi_bcast_ch1d
+ module procedure xmpi_bcast_log0d
+ module procedure xmpi_bcast_coeffi2_1d
+ module procedure xmpi_bcast_coeff2_1d
+end interface xmpi_bcast
+
+!----------------------------------------------------------------------
+
+interface xmpi_ibcast
+ module procedure xmpi_ibcast_int1d
+ module procedure xmpi_ibcast_int4d
+ module procedure xmpi_ibcast_dp1d
+ module procedure xmpi_ibcast_dp2d
+ module procedure xmpi_ibcast_dp3d
+ module procedure xmpi_ibcast_dp4d
+ module procedure xmpi_ibcast_dpc2d
+ module procedure xmpi_ibcast_spc2d
+end interface xmpi_ibcast
+
+!----------------------------------------------------------------------
+
+interface xmpi_exch
+ module procedure xmpi_exch_int1d
+ module procedure xmpi_exch_int2d
+ module procedure xmpi_exch_dp1d
+ module procedure xmpi_exch_dp2d
+ module procedure xmpi_exch_dp3d
+ module procedure xmpi_exch_dp4d
+ module procedure xmpi_exch_dp5d
+ module procedure xmpi_exch_spc1d
+ module procedure xmpi_exch_dpc1d
+ module procedure xmpi_exch_dpc2d
+end interface xmpi_exch
+
+!----------------------------------------------------------------------
+
+interface xmpi_gather
+ module procedure xmpi_gather_int
+ module procedure xmpi_gather_int2d
+ module procedure xmpi_gather_dp
+ module procedure xmpi_gather_dp2d
+ module procedure xmpi_gather_dp3d
+ module procedure xmpi_gather_dp4d
+end interface xmpi_gather
+
+!----------------------------------------------------------------------
+
+interface xmpi_gatherv
+ module procedure xmpi_gatherv_int
+ module procedure xmpi_gatherv_int1_dp1
+ module procedure xmpi_gatherv_int2d
+ module procedure xmpi_gatherv_dp
+ module procedure xmpi_gatherv_dp2d
+ module procedure xmpi_gatherv_dp3d
+ module procedure xmpi_gatherv_dp4d
+ module procedure xmpi_gatherv_dp5d
+ module procedure xmpi_gatherv_dp6d
+end interface xmpi_gatherv
+
+!----------------------------------------------------------------------
+
+interface xmpi_max
+ module procedure xmpi_max_int0d_i4b
+ module procedure xmpi_max_int0d_i8b
+ module procedure xmpi_max_int
+ module procedure xmpi_max_dpv
+ module procedure xmpi_max_dp0d_ip
+end interface xmpi_max
+
+interface xmpi_max_ip
+ module procedure xmpi_max_int0d_ip
+ module procedure xmpi_max_dp0d_ip
+ module procedure xmpi_max_int1d_ip
+end interface xmpi_max_ip
+
+!----------------------------------------------------------------------
+
+interface xmpi_min
+ module procedure xmpi_min_intv
+ module procedure xmpi_min_dpv
+ module procedure xmpi_min_dp
+end interface xmpi_min
+
+! In-place version of xmpi_min
+interface xmpi_min_ip
+ module procedure xmpi_min_int1d
+ module procedure xmpi_min_dp
+end interface xmpi_min_ip
+
+!----------------------------------------------------------------------
+
+!interface xmpi_min_max
+! module procedure xmpi_min_max_int0d_i4b
+!end interface xmpi_min_max
+
+!----------------------------------------------------------------------
+
+interface xmpi_recv
+ module procedure xmpi_recv_char
+ module procedure xmpi_recv_intv
+ module procedure xmpi_recv_int1d
+ module procedure xmpi_recv_int2d
+ module procedure xmpi_recv_int3d
+ module procedure xmpi_recv_dp
+ module procedure xmpi_recv_dp1d
+ module procedure xmpi_recv_dp2d
+ module procedure xmpi_recv_dp3d
+ module procedure xmpi_recv_dp4d
+end interface xmpi_recv
+
+!----------------------------------------------------------------------
+
+interface xmpi_irecv
+ module procedure xmpi_irecv_intv
+ module procedure xmpi_irecv_int1d
+ module procedure xmpi_irecv_dp1d
+ module procedure xmpi_irecv_dp2d
+ module procedure xmpi_irecv_dp3d
+end interface xmpi_irecv
+
+!----------------------------------------------------------------------
+
+interface xmpi_scatterv
+ module procedure xmpi_scatterv_int
+ module procedure xmpi_scatterv_int2d
+ module procedure xmpi_scatterv_dp
+ module procedure xmpi_scatterv_dp2d
+ module procedure xmpi_scatterv_dp3d
+ module procedure xmpi_scatterv_dp4d
+end interface xmpi_scatterv
+
+!----------------------------------------------------------------------
+
+interface xmpi_isend
+ module procedure xmpi_isend_int1d
+ module procedure xmpi_isend_dp1d
+ module procedure xmpi_isend_dp2d
+ module procedure xmpi_isend_dp3d
+end interface xmpi_isend
+
+!----------------------------------------------------------------------
+
+interface xmpi_send
+ module procedure xmpi_send_char
+ module procedure xmpi_send_intv
+ module procedure xmpi_send_int1d
+ module procedure xmpi_send_int2d
+ module procedure xmpi_send_int3d
+ module procedure xmpi_send_dp
+ module procedure xmpi_send_dp1d
+ module procedure xmpi_send_dp2d
+ module procedure xmpi_send_dp3d
+ module procedure xmpi_send_dp4d
+end interface xmpi_send
+
+!----------------------------------------------------------------------
+
+interface xmpi_sum_master
+ module procedure xmpi_sum_master_int
+ module procedure xmpi_sum_master_int2d
+ module procedure xmpi_sum_master_int4d
+ module procedure xmpi_sum_master_dp
+ module procedure xmpi_sum_master_dp1d
+ module procedure xmpi_sum_master_dp2d
+ module procedure xmpi_sum_master_dp3d
+ module procedure xmpi_sum_master_dp4d
+ module procedure xmpi_sum_master_dp5d
+ module procedure xmpi_sum_master_dp6d
+ module procedure xmpi_sum_master_dp7d
+ module procedure xmpi_sum_master_c1cplx
+ module procedure xmpi_sum_master_c2cplx
+ module procedure xmpi_sum_master_c3cplx
+ module procedure xmpi_sum_master_c4cplx
+ module procedure xmpi_sum_master_c5cplx
+ module procedure xmpi_sum_master_c1dpc
+ module procedure xmpi_sum_master_c2dpc
+ module procedure xmpi_sum_master_c3dpc
+ module procedure xmpi_sum_master_c4dpc
+ module procedure xmpi_sum_master_c5dpc
+end interface xmpi_sum_master
+
+!----------------------------------------------------------------------
+
+!MG:TODO procedure marked with !? are considered obsolete.
+! and will be removed in future versions.
+! Please use interfaces where array dimensions are not passed explicitly.
+! Rationale: The array descriptor is already passed to the routine
+! so it does not make sense to pass the dimension explicitly.
+
+interface xmpi_sum
+ module procedure xmpi_sum_int
+ module procedure xmpi_sum_intv
+ module procedure xmpi_sum_intv2
+ module procedure xmpi_sum_intn !?
+ module procedure xmpi_sum_int2t !?
+ module procedure xmpi_sum_int2d
+ module procedure xmpi_sum_int3d
+ module procedure xmpi_sum_int4d
+ module procedure xmpi_sum_dp
+ module procedure xmpi_sum_dpvt
+ module procedure xmpi_sum_dpv
+ module procedure xmpi_sum_dpn !?
+ module procedure xmpi_sum_sp2d
+ module procedure xmpi_sum_sp3d
+ module procedure xmpi_sum_sp4d
+ module procedure xmpi_sum_sp5d
+ module procedure xmpi_sum_sp6d
+ module procedure xmpi_sum_sp7d
+ module procedure xmpi_sum_dp2d
+ module procedure xmpi_sum_dp3d
+ module procedure xmpi_sum_dp4d
+ module procedure xmpi_sum_dp5d
+ module procedure xmpi_sum_dp6d
+ module procedure xmpi_sum_dp7d
+ module procedure xmpi_sum_dp2t !?
+ module procedure xmpi_sum_dp2d2t
+ module procedure xmpi_sum_dp3d2t !?
+ module procedure xmpi_sum_dp4d2t !?
+ module procedure xmpi_sum_c0dc
+ module procedure xmpi_sum_c0sc
+ module procedure xmpi_sum_c1dc
+ module procedure xmpi_sum_c2dc
+ module procedure xmpi_sum_c3dc
+ module procedure xmpi_sum_c4dc
+ module procedure xmpi_sum_c5dc
+ module procedure xmpi_sum_c6dc
+ module procedure xmpi_sum_c7dc
+ module procedure xmpi_sum_c1cplx
+ module procedure xmpi_sum_c2cplx
+ module procedure xmpi_sum_c3cplx
+ module procedure xmpi_sum_c4cplx
+ module procedure xmpi_sum_c5cplx
+ module procedure xmpi_sum_c6cplx
+ module procedure xmpi_sum_coeff5d1
+ end interface xmpi_sum
+!!***
+
+! Non-blocking version
+interface xmpi_isum
+ module procedure xmpi_isum_int0d
+end interface xmpi_isum
+!!***
+
+! Non-blocking in-place version
+interface xmpi_isum_ip
+ module procedure xmpi_isum_ip_dp2d
+ module procedure xmpi_isum_ip_dp3d
+ module procedure xmpi_isum_ip_dp4d
+ module procedure xmpi_isum_ip_spc1d
+ module procedure xmpi_isum_ip_dpc1d
+ module procedure xmpi_isum_ip_spc2d
+ module procedure xmpi_isum_ip_dpc2d
+ module procedure xmpi_isum_ip_spc3d
+ module procedure xmpi_isum_ip_dpc3d
+end interface xmpi_isum_ip
+!!***
+
+interface xmpi_land
+ module procedure xmpi_land_log0d
+end interface xmpi_land
+!!***
+
+interface xmpi_lor
+ module procedure xmpi_lor_log1d
+ module procedure xmpi_lor_log2d
+ module procedure xmpi_lor_log3d
+end interface xmpi_lor
+!!!***
+
+! This to bypass missing interface for MPI_WIN_ALLOCATE etc
+! See https://github.com/pmodels/mpich/issues/2659
+!INTERFACE MPI_WIN_ALLOCATE_SHARED
+!SUBROUTINE MPI_WIN_ALLOCATE_SHARED_CPTR(SIZE, DISP_UNIT, INFO, COMM, &
+!BASEPTR, WIN, IERROR)
+!USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
+!INTEGER :: DISP_UNIT, INFO, COMM, WIN, IERROR
+!INTEGER(KIND=XMPI_ADDRESS_KIND) :: SIZE
+!TYPE(C_PTR) :: BASEPTR
+!END SUBROUTINE
+!END INTERFACE MPI_WIN_ALLOCATE_SHARED
+
+
+!----------------------------------------------------------------------
+
+CONTAINS !===========================================================
+!!***
+
+!!****f* m_xmpi/xmpi_init
+!! NAME
+!! xmpi_init
+!!
+!! FUNCTION
+!! Hides MPI_INIT from MPI library. Perform the initialization of some basic variables
+!! used by the MPI routines employed in abinit.
+!!
+!! INPUTS
+!! None
+!!
+!! SOURCE
+
+subroutine xmpi_init()
+
+!Local variables-------------------
+ integer :: mpierr, ierr, unt
+ integer(c_long) :: rlim_cur, rlim_max
+ logical :: exists
+#ifdef HAVE_MPI
+ integer :: attribute_val
+ logical :: lflag
+#ifdef HAVE_OPENMP
+ integer :: required,provided
+#endif
+#endif
+
+! *************************************************************************
+
+ mpierr=0
+#ifdef HAVE_MPI
+
+#ifndef HAVE_OPENMP
+ call MPI_INIT(mpierr)
+#else
+ required = MPI_THREAD_SINGLE
+ !required = MPI_THREAD_FUNNELED
+ !required = MPI_THREAD_SERIALIZED
+ !required = MPI_THREAD_MULTIPLE
+ call MPI_INIT_THREAD(required,provided,mpierr)
+ if (provided /= required) call xmpi_abort(msg="MPI_INIT_THREADS: provided /= required")
+#endif
+
+ !%comm_world = xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ !%call xmpi_comm_set_errhandler(comm_world, MPI_ERRORS_RETURN, err_handler_sav, mpierr)
+
+ ! Deprecated in MPI2 but not all MPI2 implementations provide MPI_Comm_get_attr !
+ call MPI_ATTR_GET(xmpi_world, MPI_TAG_UB, attribute_val, lflag, mpierr)
+ !call MPI_Comm_get_attr(xmpi_world, MPI_TAG_UB, attribute_val, lflag, mpierr)
+
+ if (lflag) xmpi_tag_ub = attribute_val
+
+! Define type values.
+ call MPI_TYPE_SIZE(MPI_CHARACTER, xmpi_bsize_ch, mpierr)
+ call MPI_TYPE_SIZE(MPI_INTEGER, xmpi_bsize_int, mpierr)
+ call MPI_TYPE_SIZE(MPI_REAL, xmpi_bsize_sp, mpierr)
+ call MPI_TYPE_SIZE(MPI_DOUBLE_PRECISION, xmpi_bsize_dp, mpierr)
+ call MPI_TYPE_SIZE(MPI_COMPLEX, xmpi_bsize_spc, mpierr)
+ call MPI_TYPE_SIZE(MPI_DOUBLE_COMPLEX, xmpi_bsize_dpc, mpierr)
+
+ ! Find the byte size of Fortran record marker used in MPI-IO routines.
+ if (xmpio_bsize_frm == 0) then
+ call xmpio_get_info_frm(xmpio_bsize_frm, xmpio_mpi_type_frm, xmpi_world)
+ end if
+#endif
+
+ ! Try to increase stack size.
+ call clib_ulimit_stack(rlim_cur, rlim_max, ierr)
+
+ if (xmpi_comm_rank(xmpi_world) == 0) then
+
+ if (ierr /= 0) then
+ write(std_out, "(a)")" WARNING: cannot increase stack size limit. "
+ !write(std_out, *)"rlim_cur, rlim_max, ierr", rlim_cur, rlim_max, ierr
+ end if
+
+ ! Master Removes the ABI_MPIABORTFILE if present so that we start with a clean environment
+ inquire(file=ABI_MPIABORTFILE, exist=exists)
+ if (exists) then
+ ! Get free unit (emulate F2008 newunit for portability reasons)
+ unt = xmpi_get_unit()
+ if (unt == -1) call xmpi_abort(msg="Cannot find free unit!!")
+ open(unit=unt, file=trim(ABI_MPIABORTFILE), status="old", iostat=ierr)
+ if (ierr == 0) close(unit=unt, status="delete", iostat=ierr)
+ if (ierr /= 0) call xmpi_abort(msg="Cannot remove ABI_MPIABORTFILE")
+ end if
+
+ ! If MPI interfaces are buggy, MPI_IN_PLACE is not allowed
+#if defined HAVE_MPI2_INPLACE && defined HAVE_MPI_BUGGY_INTERFACES
+ write(std_out, "(a)")"ERROR: Cannot use MPI_IN_PLACE with this buggy MPI version!"
+ write(ab_out , "(a)")"ERROR: Cannot use MPI_IN_PLACE with this buggy MPI version!"
+ call xmpi_abort(msg="Stopping here!")
+#endif
+
+ end if
+
+end subroutine xmpi_init
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_set_inplace_operations
+!! NAME
+!! xmpi_set_inplace_operations
+!!
+!! FUNCTION
+!! Set internal flag to use MPI_IN_PLACE whenever possible.
+!!
+!! SOURCE
+
+subroutine xmpi_set_inplace_operations(bool)
+
+!Local variables-------------------
+ logical :: bool
+
+! *************************************************************************
+
+ xmpi_use_inplace_operations = bool
+
+end subroutine xmpi_set_inplace_operations
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_get_unit
+!! NAME
+!! xmpi_get_unit
+!!
+!! FUNCTION
+!! Get free unit (emulate F2008 newunit for portability reasons)
+!! Return -1 if no unit is found.
+!!
+!! SOURCE
+
+integer function xmpi_get_unit() result(unt)
+
+!Local variables-------------------
+ logical :: isopen
+
+! *************************************************************************
+
+ do unt=1024,-1,-1
+ inquire(unit=unt, opened=isopen)
+ if (.not.isopen) exit
+ end do
+
+end function xmpi_get_unit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_end
+!! NAME
+!! xmpi_end
+!!
+!! FUNCTION
+!! Hides MPI_FINALIZE from MPI library.
+!!
+!! INPUTS
+!! None
+!!
+!! SOURCE
+
+subroutine xmpi_end()
+
+!Local variables-------------------
+ integer :: mpierr
+
+! *************************************************************************
+
+ mpierr=0
+#ifdef HAVE_MPI
+ call MPI_BARRIER(MPI_COMM_WORLD,mpierr) ! Needed by some HPC architectures (MT, 20110315)
+ call MPI_FINALIZE(mpierr)
+#endif
+
+#ifndef FC_IBM
+ ! IBM8 returns 260. 320 ...
+ call sys_exit(0)
+#endif
+
+end subroutine xmpi_end
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_abort
+!! NAME
+!! xmpi_abort
+!!
+!! FUNCTION
+!! Hides MPI_ABORT from MPI library.
+!!
+!! INPUTS
+!! [comm]=communicator of tasks to abort.
+!! [mpierr]=Error code to return to invoking environment.
+!! [msg]=User message
+!! [exit_status]=optional, shell return code, default 1
+!!
+!! SOURCE
+
+subroutine xmpi_abort(comm, mpierr, msg, exit_status)
+
+!Arguments-------------------------
+ integer,optional,intent(in) :: comm,mpierr,exit_status
+ character(len=*),optional,intent(in) :: msg
+
+!Local variables-------------------
+ integer :: ierr,my_comm,my_errorcode,ilen,ierr2
+ logical :: testopen
+ character(len=xmpi_msg_len) :: mpi_msg_error
+
+! *************************************************************************
+
+ ierr=0
+ my_comm = xmpi_world; if (PRESENT(comm)) my_comm = comm
+
+ if (PRESENT(msg)) then
+ write(std_out,'(2a)')"User message: ",TRIM(msg)
+ end if
+
+ ! Close std_out and ab_out and flush units.
+ ! Note that flush does not guarantee that the data is committed to disk.
+ ! This is rather annoying because we may end up with incomplete log files
+ ! that cannot be parsed by Abinit.
+ ! For a possible approach based on fsync, see
+ ! https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gfortran/FLUSH.html
+
+ inquire(std_out, opened=testopen)
+ if (testopen) then
+#if defined HAVE_FC_FLUSH
+ call flush(std_out)
+#endif
+ close(std_out)
+ end if
+
+ inquire(ab_out,opened=testopen)
+ if (testopen) then
+#if defined HAVE_FC_FLUSH
+ call flush(ab_out)
+#endif
+ close(ab_out)
+ end if
+
+#ifdef HAVE_MPI
+ my_errorcode=MPI_ERR_UNKNOWN; if (PRESENT(mpierr)) my_errorcode=mpierr
+
+ call MPI_ERROR_STRING(my_errorcode, mpi_msg_error, ilen, ierr2)
+
+ !if (ilen>xmpi_msg_len) write(std_out,*)" WARNING: MPI message has been truncated!"
+ !if (ierr2/=MPI_SUCCESS) then
+ ! write(std_out,'(a,i0)')" WARNING: MPI_ERROR_STRING returned ierr2= ",ierr2
+ !else
+ ! write(std_out,'(2a)')" MPI_ERROR_STRING: ",TRIM(mpi_msg_error)
+ !end if
+
+ !ierr = clib_usleep(300000_c_int32_t)
+ call MPI_ABORT(my_comm, my_errorcode, ierr)
+#endif
+
+ if (present(exit_status)) then
+ call sys_exit(exit_status)
+ else
+ call sys_exit(1)
+ end if
+
+end subroutine xmpi_abort
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/sys_exit
+!! NAME
+!! sys_exit
+!!
+!! FUNCTION
+!! Routine for clean exit of f90 code by one processor
+!!
+!! INPUTS
+!! exit_status:
+!! return code.
+!!
+!! NOTES
+!! By default, it uses "call exit(1)", that is not completely portable.
+!!
+!! SOURCE
+
+subroutine sys_exit(exit_status)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: exit_status
+
+! **********************************************************************
+
+#if defined FC_NAG
+ call exit(exit_status)
+#elif defined HAVE_FC_EXIT
+ call exit(exit_status)
+#else
+ ! stop with exit_status
+ ! MT 06-2013:stop function only accept parameters !
+ if (exit_status== 0) stop "0"
+ if (exit_status== 1) stop "1"
+ if (exit_status==-1) stop "-1"
+#endif
+ stop 1
+
+end subroutine sys_exit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_show_info
+!! NAME
+!! xmpi_show_info
+!!
+!! FUNCTION
+!! Printout of the most important variables stored in this module (useful for debugging).
+!!
+!! INPUTS
+!! unt=Unit number for formatted output.
+!!
+!! SOURCE
+
+subroutine xmpi_show_info(unit)
+
+!Arguments-------------------------
+ integer,optional,intent(in) :: unit
+
+!Local variables-------------------
+ integer :: my_unt
+
+! *************************************************************************
+
+ !@m_xmpi
+ my_unt = std_out; if (PRESENT(unit)) my_unt=unit
+
+#ifdef HAVE_MPI1
+ write(my_unt,*)" ==== Using MPI-1 specifications ==== "
+#endif
+#ifdef HAVE_MPI2
+ write(my_unt,*)" ==== Using MPI-2 specifications ==== "
+#endif
+
+#ifdef HAVE_MPI_IO
+ write(my_unt,*)" MPI-IO support is ON"
+#else
+ write(my_unt,*)" MPI-IO support is OFF"
+#endif
+
+#ifdef HAVE_MPI
+ write(my_unt,*)" xmpi_tag_ub ................ ",xmpi_tag_ub
+ write(my_unt,*)" xmpi_bsize_ch .............. ",xmpi_bsize_ch
+ write(my_unt,*)" xmpi_bsize_int ............. ",xmpi_bsize_int
+ write(my_unt,*)" xmpi_bsize_sp .............. ",xmpi_bsize_sp
+ write(my_unt,*)" xmpi_bsize_dp .............. ",xmpi_bsize_dp
+ write(my_unt,*)" xmpi_bsize_spc ............. ",xmpi_bsize_spc
+ write(my_unt,*)" xmpi_bsize_dpc ............. ",xmpi_bsize_dpc
+ write(my_unt,*)" xmpio_bsize_frm ............ ",xmpio_bsize_frm
+ write(my_unt,*)" xmpi_address_kind .......... ",xmpi_address_kind
+ write(my_unt,*)" xmpi_offset_kind ........... ",xmpi_offset_kind
+ write(my_unt,*)" MPI_WTICK .................. ",MPI_WTICK()
+#endif
+
+end subroutine xmpi_show_info
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_rank
+!! NAME
+!! xmpi_comm_rank
+!!
+!! FUNCTION
+!! Hides MPI_COMM_RANK from MPI library.
+!!
+!! INPUTS
+!! comm=MPI communicator.
+!!
+!! OUTPUT
+!! xmpi_comm_rank=The rank of the node inside comm
+!!
+!! SOURCE
+
+function xmpi_comm_rank(comm)
+
+!Arguments-------------------------
+ integer,intent(in) :: comm
+ integer :: xmpi_comm_rank
+
+!Local variables-------------------
+ integer :: mpierr
+
+! *************************************************************************
+
+ mpierr=0
+#ifdef HAVE_MPI
+ xmpi_comm_rank=-1 ! Return non-sense value if the proc does not belong to the comm
+ if (comm/=xmpi_comm_null) then
+ call MPI_COMM_RANK(comm,xmpi_comm_rank,mpierr)
+ end if
+#else
+ xmpi_comm_rank=0
+#endif
+
+end function xmpi_comm_rank
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_size
+!! NAME
+!! xmpi_comm_size
+!!
+!! FUNCTION
+!! Hides MPI_COMM_SIZE from MPI library.
+!!
+!! INPUTS
+!! comm=MPI communicator.
+!!
+!! OUTPUT
+!! xmpi_comm_size=The number of processors inside comm. Return 0 if comm = xmpi_comm_null
+!!
+!! SOURCE
+
+function xmpi_comm_size(comm)
+
+!Arguments-------------------------
+ integer,intent(in) :: comm
+ integer :: xmpi_comm_size
+
+!Local variables-------------------------------
+!scalars
+ integer :: mpierr
+
+! *************************************************************************
+
+ mpierr=0; xmpi_comm_size=1
+#ifdef HAVE_MPI
+ xmpi_comm_size = 0
+ if (comm /= xmpi_comm_null) call MPI_COMM_SIZE(comm,xmpi_comm_size,mpierr)
+#endif
+
+end function xmpi_comm_size
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_free_0D
+!! NAME
+!! xmpi_comm_free_0D
+!!
+!! FUNCTION
+!! Hides MPI_COMM_FREE from MPI library.
+!! Does not abort MPI in case of an invalid communicator
+!!
+!! INPUTS
+!! comm=MPI communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_comm_free_0D(comm)
+
+!Arguments-------------------------
+ integer,intent(inout) :: comm
+
+!Local variables-------------------------------
+!scalars
+#ifdef HAVE_MPI
+ integer :: comm_world,err_handler_dum,err_handler_sav,ierr,mpierr,mpierr_class
+
+! *************************************************************************
+
+ if (comm/=xmpi_comm_null.and.comm/=xmpi_world.and.comm/=xmpi_comm_self) then
+
+ comm_world=xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ call xmpi_comm_set_errhandler(comm_world,MPI_ERRORS_RETURN,err_handler_sav,ierr)
+ call MPI_COMM_FREE(comm,mpierr)
+ call xmpi_comm_set_errhandler(comm_world,err_handler_sav,err_handler_dum,ierr)
+
+ if (mpierr/=MPI_SUCCESS) then
+ call MPI_ERROR_CLASS(mpierr,mpierr_class,ierr)
+ if (mpierr_class/=MPI_ERR_COMM) then
+ write(std_out,*)" WARNING: MPI_COMM_FREE returned ierr= ",mpierr
+ end if
+ end if
+
+ end if
+
+#else
+ if (.false.) write(std_out,*) comm
+#endif
+
+end subroutine xmpi_comm_free_0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_free_1D
+!! NAME
+!! xmpi_comm_free_1D
+!!
+!! FUNCTION
+!! Hides MPI_COMM_FREE from MPI library. Target 1D arrays
+!! Does not abort MPI in case of an invalid communicator
+!!
+!! INPUTS
+!! comms(:)=MPI communicators
+!!
+!! SOURCE
+
+subroutine xmpi_comm_free_1D(comms)
+
+!Arguments-------------------------
+ integer,intent(inout) :: comms(:)
+
+!Local variables-------------------------------
+!scalars
+#ifdef HAVE_MPI
+ integer :: comm_world,err_handler_dum,err_handler_sav,ii,mpierr
+
+! *************************************************************************
+
+ comm_world=xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ call xmpi_comm_set_errhandler(comm_world,MPI_ERRORS_RETURN,err_handler_sav,mpierr)
+
+ do ii=LBOUND(comms,DIM=1),UBOUND(comms,DIM=1)
+ if (comms(ii)/=xmpi_comm_null.and.comms(ii)/=xmpi_world.and.comms(ii)/=xmpi_comm_self) then
+ call MPI_COMM_FREE(comms(ii),mpierr)
+ end if
+ end do
+
+ call xmpi_comm_set_errhandler(comm_world,err_handler_sav,err_handler_dum,mpierr)
+
+#else
+ if (.false.) write(std_out,*) comms(1)
+#endif
+
+end subroutine xmpi_comm_free_1D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_free_2D
+!! NAME
+!! xmpi_comm_free_2D
+!!
+!! FUNCTION
+!! Hides MPI_COMM_FREE from MPI library. Target 2D arrays
+!! Does not abort MPI in case of an invalid communicator
+!!
+!! INPUTS
+!! comms=MPI communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_comm_free_2D(comms)
+
+!Arguments-------------------------
+ integer,intent(inout) :: comms(:,:)
+
+!Local variables-------------------------------
+!scalars
+#ifdef HAVE_MPI
+ integer :: comm_world,err_handler_dum,err_handler_sav,ii,jj,mpierr
+
+! *************************************************************************
+
+ comm_world=xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ call xmpi_comm_set_errhandler(comm_world,MPI_ERRORS_RETURN,err_handler_sav,mpierr)
+
+ do jj=LBOUND(comms,DIM=2),UBOUND(comms,DIM=2)
+ do ii=LBOUND(comms,DIM=1),UBOUND(comms,DIM=1)
+ if (comms(ii,jj)/=xmpi_comm_null.and.comms(ii,jj)/=xmpi_world.and. &
+& comms(ii,jj)/=xmpi_comm_self) then
+ call MPI_COMM_FREE(comms(ii,jj),mpierr)
+ end if
+ end do
+ end do
+
+ call xmpi_comm_set_errhandler(comm_world,err_handler_sav,err_handler_dum,mpierr)
+
+#else
+ if (.false.) write(std_out,*) comms(1,1)
+#endif
+
+end subroutine xmpi_comm_free_2D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_free_3D
+!! NAME
+!! xmpi_comm_free_3D
+!!
+!! FUNCTION
+!! Hides MPI_COMM_FREE from MPI library. Target 3D arrays
+!! Does not abort MPI in case of an invalid communicator
+!!
+!! INPUTS
+!! comms=MPI communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_comm_free_3D(comms)
+
+!Arguments-------------------------
+ integer,intent(inout) :: comms(:,:,:)
+
+!Local variables-------------------------------
+!scalars
+#ifdef HAVE_MPI
+ integer :: comm_world,err_handler_dum,err_handler_sav,ii,jj,kk,mpierr
+
+! *************************************************************************
+
+ comm_world=xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ call xmpi_comm_set_errhandler(comm_world,MPI_ERRORS_RETURN,err_handler_sav,mpierr)
+
+ do kk=LBOUND(comms,DIM=3),UBOUND(comms,DIM=3)
+ do jj=LBOUND(comms,DIM=2),UBOUND(comms,DIM=2)
+ do ii=LBOUND(comms,DIM=1),UBOUND(comms,DIM=1)
+ if (comms(ii,jj,kk)/=xmpi_comm_null.and.comms(ii,jj,kk)/=xmpi_world.and. &
+& comms(ii,jj,kk)/=xmpi_comm_self) then
+ call MPI_COMM_FREE(comms(ii,jj,kk),mpierr)
+ end if
+ end do
+ end do
+ end do
+
+ call xmpi_comm_set_errhandler(comm_world,err_handler_sav,err_handler_dum,mpierr)
+
+#else
+ if (.false.) write(std_out,*) comms(1,1,1)
+#endif
+
+end subroutine xmpi_comm_free_3D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_group_free
+!! NAME
+!! xmpi_group_free
+!!
+!! FUNCTION
+!! Hides MPI_GROUP_FREE from MPI library.
+!! Does not abort MPI in case of an invalid group
+!!
+!! INPUTS
+!! spaceGroup=MPI group
+!!
+!! SOURCE
+
+subroutine xmpi_group_free(spaceGroup)
+
+!Arguments-------------------------
+ integer,intent(inout) :: spaceGroup
+
+!Local variables-------------------------------
+!scalars
+#ifdef HAVE_MPI
+ integer :: comm_world,err_handler_dum,err_handler_sav,ierr,mpierr,mpierr_class
+
+! *************************************************************************
+
+ if (spaceGroup/=xmpi_group_null) then
+
+ comm_world=xmpi_world ! Needed to bypass a bug in some OMPI implementations (intent(inout))
+ call xmpi_comm_set_errhandler(comm_world,MPI_ERRORS_RETURN,err_handler_sav,ierr)
+ call MPI_GROUP_FREE(spaceGroup,mpierr)
+ call xmpi_comm_set_errhandler(comm_world,err_handler_sav,err_handler_dum,ierr)
+
+ if (mpierr/=MPI_SUCCESS) then
+ call MPI_ERROR_CLASS(mpierr,mpierr_class,ierr)
+ if (mpierr_class/=MPI_ERR_GROUP) write(std_out,*)" WARNING: MPI_GROUP_FREE returned ierr= ",mpierr
+ end if
+
+ end if
+
+#else
+ if (.false.) write(std_out,*) spaceGroup
+#endif
+
+end subroutine xmpi_group_free
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_group_incl
+!! NAME
+!! xmpi_group_incl
+!!
+!! FUNCTION
+!! Hides MPI_GROUP_INCL from MPI library.
+!!
+!! INPUTS
+!! group=input group
+!! nrank=number of elements in array ranks (size of newgroup)
+!! ranks=ranks of processes in group to appear in newgroup
+!!
+!! OUTPUT
+!! newgroup= new group derived from above, in the order defined by ranks
+!!
+!! SOURCE
+
+subroutine xmpi_group_incl(group,nranks,ranks,newgroup,mpierr)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: group,nranks
+ integer,intent(out) :: mpierr
+ integer,intent(inout) :: newgroup
+!arrays
+ integer,intent(in) :: ranks(nranks)
+
+! *************************************************************************
+
+ mpierr=0 ; newgroup=xmpi_group_null
+#ifdef HAVE_MPI
+ if (group/=xmpi_group_null) then
+ call MPI_GROUP_INCL(group,nranks,ranks,newgroup,mpierr)
+ end if
+#endif
+
+end subroutine xmpi_group_incl
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_create
+!! NAME
+!! xmpi_comm_create
+!!
+!! FUNCTION
+!! Hides MPI_COMM_CREATE from MPI library.
+!!
+!! INPUTS
+!! comm=communicator
+!! group=group, which is a subset of the group of comm
+!!
+!! OUTPUT
+!! newcomm=new communicator
+!!
+!! SOURCE
+
+subroutine xmpi_comm_create(comm,group,newcomm,mpierr)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: comm,group
+ integer,intent(out) :: mpierr
+ integer,intent(inout) :: newcomm
+
+! *************************************************************************
+
+ mpierr=0
+#ifdef HAVE_MPI
+ if (group/=xmpi_group_null) then
+ call MPI_comm_create(comm,group,newcomm,mpierr)
+ else
+ newcomm=xmpi_comm_null
+ end if
+#else
+ newcomm=xmpi_comm_self
+#endif
+
+end subroutine xmpi_comm_create
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_subcomm
+!! NAME
+!! xmpi_subcomm
+!!
+!! FUNCTION
+!! Return a sub-communicator from an input communicator and a given proc. ranks set.
+!! (hides subgroup creation/destruction)
+!!
+!! INPUTS
+!! comm=input communicator
+!! nrank=number of elements in array ranks (size of subcomm)
+!! ranks=ranks of processes in group to appear in subcomm
+!!
+!! OUTPUT
+!! [my_rank_in_group]=optional: my rank in the group of new sub-communicator
+!! xmpi_subcomm=new (sub-)communicator
+!!
+!! SOURCE
+
+function xmpi_subcomm(comm,nranks,ranks,my_rank_in_group)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: comm,nranks
+ integer,intent(out),optional :: my_rank_in_group
+ integer :: xmpi_subcomm
+!arrays
+ integer,intent(in) :: ranks(nranks)
+
+!Local variables-------------------------------
+#ifdef HAVE_MPI
+ integer :: group,ierr,subgroup
+#endif
+
+! *************************************************************************
+
+ xmpi_subcomm=xmpi_comm_null
+ if (present(my_rank_in_group)) my_rank_in_group=xmpi_undefined
+
+#ifdef HAVE_MPI
+ if (comm/=xmpi_comm_null.and.nranks>=0) then
+ call MPI_COMM_GROUP(comm,group,ierr)
+ call MPI_GROUP_INCL(group,nranks,ranks,subgroup,ierr)
+ call MPI_COMM_CREATE(comm,subgroup,xmpi_subcomm,ierr)
+ if ( nranks == 0 )xmpi_subcomm=xmpi_comm_self
+ if (present(my_rank_in_group)) then
+ call MPI_Group_rank(subgroup,my_rank_in_group,ierr)
+ end if
+ call MPI_GROUP_FREE(subgroup,ierr)
+ call MPI_GROUP_FREE(group,ierr)
+ end if
+#else
+ if (nranks>0) then
+ if (ranks(1)==0) then
+ xmpi_subcomm=xmpi_comm_self
+ if (present(my_rank_in_group)) my_rank_in_group=0
+ end if
+ end if
+#endif
+
+end function xmpi_subcomm
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_multiple
+!! NAME
+!! xmpi_comm_multiple
+!!
+!! FUNCTION
+!! Given an input communicator `input_comm`, create a new communicator
+!! with number of procs multiple of a certain number `ntasks`.
+!! Use all procs if ntasks >= input_nprocs.
+!!
+!! INPUTS
+!! ntasks=Number of tasks.
+!! comm=input communicator
+!!
+!! OUTPUT
+!! idle_proc=True if this proc is idle. In this case, output_comm contains all the idle procs.
+!! output_comm=Output communicator
+!!
+!! SOURCE
+
+subroutine xmpi_comm_multiple_of(ntasks, input_comm, idle_proc, output_comm)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: ntasks, input_comm
+ integer,intent(out) :: output_comm
+ logical,intent(out) :: idle_proc
+
+!Local variables-------------------------------
+ integer :: color, my_rank, ierr, input_nproc
+
+! *************************************************************************
+
+ my_rank = xmpi_comm_rank(input_comm)
+ input_nproc = xmpi_comm_size(input_comm)
+
+ if (input_nproc <= ntasks) then
+ ! Use all procs in input comm.
+ idle_proc = .False.; output_comm = input_comm
+#ifdef HAVE_MPI
+ call MPI_Comm_dup(input_comm, output_comm, ierr)
+#endif
+ else
+ color = merge(0, 1, my_rank + 1 <= (ntasks / input_nproc) * input_nproc)
+ idle_proc = color == 1
+ call xmpi_comm_split(input_comm, color, my_rank, output_comm, ierr)
+ end if
+
+end subroutine xmpi_comm_multiple_of
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_group
+!! NAME
+!! xmpi_comm_group
+!!
+!! FUNCTION
+!! Hides MPI_COMM_GROUP from MPI library.
+!!
+!! INPUTS
+!! comm=MPI communicator.
+!!
+!! OUTPUT
+!! spaceGroup=The group associated to comm.
+!! mpierr=error code returned
+!!
+!! SOURCE
+
+subroutine xmpi_comm_group(comm,spaceGroup,mpierr)
+
+!Arguments-------------------------
+ integer,intent(in) :: comm
+ integer,intent(out) :: mpierr,spaceGroup
+
+! *************************************************************************
+
+ mpierr=0; spaceGroup=xmpi_group_null
+#ifdef HAVE_MPI
+ if (comm/=xmpi_comm_null) then
+ call MPI_COMM_GROUP(comm,spaceGroup,mpierr)
+ end if
+#endif
+
+end subroutine xmpi_comm_group
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_split
+!! NAME
+!! xmpi_comm_split
+!!
+!! FUNCTION
+!! Hides MPI_COMM_SPLIT from MPI library.
+!!
+!! INPUTS
+!! input_comm=Input MPI communicator (to be splitted)
+!! color=Control of subset assignment (nonnegative integer).
+!! Processes with the same color are in the same new communicator
+!! key=Control of rank assigment (integer)
+!!
+!! OUTPUT
+!! mpierr=error code returned
+!! output_comm=new splitted communicator
+!!
+!! SOURCE
+
+subroutine xmpi_comm_split(input_comm, color, key, output_comm, mpierr)
+
+!Arguments-------------------------
+ integer,intent(in) :: color,input_comm,key
+ integer,intent(out) :: mpierr,output_comm
+
+! *************************************************************************
+
+ mpierr=0; output_comm=input_comm
+#ifdef HAVE_MPI
+ if (input_comm/=xmpi_comm_null.and.input_comm/=xmpi_comm_self) then
+ call MPI_COMM_SPLIT(input_comm,color,key,output_comm,mpierr)
+ end if
+#endif
+
+end subroutine xmpi_comm_split
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_group_translate_ranks
+!! NAME
+!! xmpi_group_translate_ranks
+!!
+!! FUNCTION
+!! Hides MPI_GROUP_TRANSLATE_RANKS from MPI library.
+!!
+!! INPUTS
+!! nrank=number of ranks in ranks1 and ranks2 arrays
+!! ranks1(nrank)=array of zero or more valid ranks in group1
+!! spaceGroup1=group1
+!! spaceGroup2=group2
+!!
+!! OUTPUT
+!! mpierr=error code returned
+!! ranks2(nrank)=array of corresponding ranks in group2,
+!! xmpi_undefined when no correspondence exists
+!!
+!! SOURCE
+
+subroutine xmpi_group_translate_ranks(spaceGroup1,nrank,ranks1,&
+& spaceGroup2,ranks2,mpierr)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: nrank,spaceGroup1,spaceGroup2
+ integer,intent(out) :: mpierr
+!arrays
+ integer,intent(in) :: ranks1(nrank)
+ integer,intent(out) :: ranks2(nrank)
+
+! *************************************************************************
+
+ mpierr=0; ranks2(:)=xmpi_undefined
+#ifdef HAVE_MPI
+ if (spaceGroup1/=xmpi_group_null.and.spaceGroup2/=xmpi_group_null) then
+ call MPI_GROUP_TRANSLATE_RANKS(spaceGroup1,nrank,ranks1, spaceGroup2,ranks2,mpierr)
+ end if
+#else
+ ranks2(1)=0
+#endif
+
+end subroutine xmpi_group_translate_ranks
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_translate_ranks
+!! NAME
+!! xmpi_comm_translate_ranks
+!!
+!! FUNCTION
+!! Helper function that translate the ranks from a communicator to another one.
+!! Wraps xmpi_group_translate_ranks but provides a more user-friendly interface
+!!
+!! INPUTS
+!! from_comm=MPI communicator where from_ranks are defined.
+!! nrank=number of ranks in from_ranks and to_ranks arrays
+!! from_ranks(nrank)=array of zero or more valid ranks in from_comm
+!!
+!! OUTPUT
+!! to_ranks(nrank)=array of corresponding ranks in to_comm
+!! xmpi_undefined when no correspondence exists
+!!
+!! SOURCE
+
+subroutine xmpi_comm_translate_ranks(from_comm, nrank, from_ranks, to_comm, to_ranks)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: nrank,from_comm,to_comm
+!arrays
+ integer,intent(in) :: from_ranks(nrank)
+ integer,intent(out) :: to_ranks(nrank)
+
+!Local variables-------------------------------
+!scalars
+ integer :: ierr,from_group,to_group
+
+! *************************************************************************
+
+ ! Get the groups
+ call xmpi_comm_group(from_comm,from_group,ierr)
+ call xmpi_comm_group(to_comm,to_group,ierr)
+
+ call xmpi_group_translate_ranks(from_group,nrank,from_ranks,to_group,to_ranks,ierr)
+
+ ! Release the groups
+ call xmpi_group_free(from_group)
+ call xmpi_group_free(to_group)
+
+end subroutine xmpi_comm_translate_ranks
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_translate_rank
+!! NAME
+!! xmpi_comm_translate_rank
+!!
+!! FUNCTION
+!! Helper function to translate a single rank `from_rank` in communicator `from_rank` to
+!! the rank in communicator `to_comm`.
+
+integer function xmpi_comm_translate_rank(from_comm, from_rank, to_comm) result(to_rank)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: from_comm, from_rank, to_comm
+
+!Local variables-------------------------------
+ integer :: from_ranks(1), to_ranks(1)
+! *************************************************************************
+
+ from_ranks(1) = from_rank
+ call xmpi_comm_translate_ranks(from_comm, 1, from_ranks, to_comm, to_ranks)
+ to_rank = to_ranks(1)
+
+end function xmpi_comm_translate_rank
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_barrier
+!! NAME
+!! xmpi_barrier
+!!
+!! FUNCTION
+!! Hides MPI_BARRIER from MPI library.
+!!
+!! INPUTS
+!! comm=MPI communicator
+!!
+!! SOURCE
+
+subroutine xmpi_barrier(comm)
+
+!Arguments-------------------------
+ integer,intent(in) :: comm
+
+!Local variables-------------------
+ integer :: ier
+#ifdef HAVE_MPI
+ integer :: nprocs
+#endif
+
+! *************************************************************************
+
+ ier = 0
+#ifdef HAVE_MPI
+ if (comm/=xmpi_comm_null) then
+ call MPI_COMM_SIZE(comm,nprocs,ier)
+ if(nprocs>1) call MPI_BARRIER(comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_barrier
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_name
+!! NAME
+!! xmpi_name
+!!
+!! FUNCTION
+!! Returns the name of the processor
+!! Hides MPI_GET_PROCESSOR_NAME from MPI library.
+!!
+!! For the MPI standard:
+!! The name returned should identify a particular piece of hardware; the exact format is implementation defined.
+!! This name may or may not be the same as might be returned by gethostname, uname, or sysinfo.
+!!
+!! SOURCE
+
+subroutine xmpi_name(name_ch, ierr)
+
+!Arguments-------------------------
+ character(20),intent(out) :: name_ch
+ integer,intent(out) :: ierr
+
+!Local variables-------------------
+ integer :: len
+! character(len=MPI_MAX_PROCESSOR_NAME) :: name_ch
+
+! *************************************************************************
+!Get the name of this processor (usually the hostname)
+
+ ierr = 0
+
+#ifdef HAVE_MPI
+ call MPI_GET_PROCESSOR_NAME(name_ch, len, ierr)
+ name_ch = trim(name_ch)
+
+#else
+ name_ch ='0'
+#endif
+
+end subroutine xmpi_name
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_iprobe
+!! NAME
+!! xmpi_iprobe
+!!
+!! FUNCTION
+!! Hides MPI_IPROBE from MPI library.
+!! Nonblocking test for a message.
+!!
+!! INPUTS
+!! source= source processes
+!! tag= tag value
+!! mpicomm= communicator
+!!
+!! OUTPUT
+!! flag= True if a message with the specified source, tag, and communicator is available
+!! mpierr= status error
+!!
+!! SOURCE
+
+subroutine xmpi_iprobe(source,tag,mpicomm,flag,mpierr)
+
+!Arguments-------------------------
+ integer,intent(in) :: mpicomm,source,tag
+ integer,intent(out) :: mpierr
+ logical,intent(out) :: flag
+
+!Local variables-------------------
+#ifdef HAVE_MPI
+ integer :: ier,status(MPI_STATUS_SIZE)
+#endif
+
+! *************************************************************************
+
+ mpierr = 0
+#ifdef HAVE_MPI
+ call MPI_IPROBE(source,tag,mpicomm,flag,status,ier)
+ mpierr=ier
+#endif
+
+end subroutine xmpi_iprobe
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_wait
+!! NAME
+!! xmpi_wait
+!!
+!! FUNCTION
+!! Hides MPI_WAIT from MPI library.
+!! Waits for an MPI request to complete.
+!!
+!! INPUTS
+!! request= MPI request handle to wait for
+!!
+!! OUTPUT
+!! mpierr= status error
+!!
+!! SOURCE
+
+subroutine xmpi_wait(request, mpierr)
+
+!Arguments-------------------------
+ integer,intent(inout) :: request
+ integer,intent(out) :: mpierr
+
+!Local variables-------------------
+#ifdef HAVE_MPI
+ integer :: ier,status(MPI_STATUS_SIZE)
+#endif
+
+! *************************************************************************
+
+ mpierr = 0
+#ifdef HAVE_MPI
+ if (request /= xmpi_request_null) xmpi_count_requests = xmpi_count_requests - 1
+ call MPI_WAIT(request,status,ier)
+ mpierr=ier
+#endif
+
+end subroutine xmpi_wait
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_waitall_1d
+!! NAME
+!! xmpi_waitall_1d
+!!
+!! FUNCTION
+!! Hides MPI_WAITALL from MPI library.
+!! Waits for all given MPI Requests to complete.
+!!
+!! INPUTS
+!! array_of_requests= array of request handles
+!!
+!! OUTPUT
+!! mpierr= status error
+!!
+!! SOURCE
+
+subroutine xmpi_waitall_1d(array_of_requests, mpierr)
+
+!Arguments-------------------------
+ integer,intent(inout) :: array_of_requests(:)
+ integer,intent(out) :: mpierr
+
+!Local variables-------------------
+#ifdef HAVE_MPI
+ integer :: ier,status(MPI_STATUS_SIZE,size(array_of_requests))
+#endif
+
+! *************************************************************************
+
+ mpierr = 0
+#ifdef HAVE_MPI
+ xmpi_count_requests = xmpi_count_requests - count(array_of_requests /= xmpi_request_null)
+ call MPI_WAITALL(size(array_of_requests), array_of_requests, status, ier)
+ mpierr=ier
+#endif
+
+end subroutine xmpi_waitall_1d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_waitall_2d
+!! NAME
+!! xmpi_waitall_2d
+!!
+!! FUNCTION
+!! Hides MPI_WAITALL from MPI library.
+!! Waits for all given MPI Requests to complete.
+!!
+!! INPUTS
+!! array_of_requests= array of request handles
+!!
+!! OUTPUT
+!! mpierr= status error
+!!
+!! SOURCE
+
+subroutine xmpi_waitall_2d(array_of_requests, mpierr)
+
+!Arguments-------------------------
+ integer,intent(inout) :: array_of_requests(:,:)
+ integer,intent(out) :: mpierr
+
+!Local variables-------------------
+ integer :: flat_requests(product(shape(array_of_requests)))
+
+! *************************************************************************
+
+ ! MPI_WAITALL is a Fortran interface so cannot pass count and base address a la C
+ ! so flat 2d array and copy in-out. See https://github.com/open-mpi/ompi/issues/587
+ flat_requests = pack(array_of_requests, mask=.True.)
+ call xmpi_waitall_1d(flat_requests, mpierr)
+ array_of_requests = reshape(flat_requests, shape(array_of_requests))
+
+end subroutine xmpi_waitall_2d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_request_free
+!! NAME
+!! xmpi_request_free
+!!
+!! FUNCTION
+!! Hides MPI_REQUEST_FREE from MPI library.
+!! Frees an array of communication request objects.
+!!
+!! INPUTS
+!! requests(:)= communication request array (array of handles)
+!!
+!! OUTPUT
+!! mpierr= status error
+!!
+!! SOURCE
+
+subroutine xmpi_request_free(requests,mpierr)
+
+!Arguments-------------------------
+ integer,intent(inout) :: requests(:)
+ integer,intent(out) :: mpierr
+
+!Local variables-------------------
+#ifdef HAVE_MPI
+ integer :: ier,ii
+#endif
+
+! *************************************************************************
+
+ mpierr = 0
+#ifdef HAVE_MPI
+ do ii=1,size(requests)
+ if (requests(ii) /= xmpi_request_null) xmpi_count_requests = xmpi_count_requests - 1
+ call MPI_REQUEST_FREE(requests(ii),ier)
+ end do
+ mpierr=ier
+#endif
+
+end subroutine xmpi_request_free
+!!***
+
+!!****f* m_xmpi/xmpi_requests_add
+!! NAME
+!! xmpi_requests_add
+!!
+!! FUNCTION
+!! Increase/decrement xmpi_count_requests internal counter
+!!
+!! SOURCE
+
+subroutine xmpi_requests_add(count)
+
+!Arguments-------------------------
+ integer,intent(in) :: count
+! *************************************************************************
+
+ xmpi_count_requests = xmpi_count_requests + count
+
+end subroutine xmpi_requests_add
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_error_string
+!! NAME
+!! xmpi_error_string
+!!
+!! FUNCTION
+!! Hides MPI_ERROR_STRING from MPI library.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_error_string(mpierr,err_string,ilen,ierror)
+
+!Arguments-------------------------
+ integer,intent(in) :: mpierr
+ integer,intent(out) :: ilen,ierror
+ character(len=*),intent(out) :: err_string
+
+! *************************************************************************
+
+ ilen=0
+#ifdef HAVE_MPI
+ call MPI_Error_string(mpierr,err_string,ilen,ierror)
+#else
+ ierror=1
+ err_string="Sorry, no MPI_Error_string routine is available to interpret the error message"
+#endif
+
+end subroutine xmpi_error_string
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_comm_set_errhandler
+!! NAME
+!! xmpi_set_errhandler
+!!
+!! FUNCTION
+!! Hides MPI_COMM_SET_ERRHANDLER from MPI library.
+!!
+!! INPUTS
+!! new_err_handler= new error handler
+!!
+!! OUTPUT
+!! ierror=error code
+!! old_err_handler= old error handler
+!!
+!! SIZE EFFECTS
+!! comm= communicator (should be intent(in) but is intent(inout) in some
+!! OMPI implementation ; known as a bug)
+!!
+!! SOURCE
+
+subroutine xmpi_comm_set_errhandler(comm,new_err_handler,old_err_handler,ierror)
+
+!Arguments-------------------------
+ integer,intent(in) :: new_err_handler
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierror,old_err_handler
+
+!Local variables-------------------------
+ integer :: mpierr1,mpierr2,my_comm
+
+! *************************************************************************
+
+ ierror=0
+ my_comm = comm !should be intent(in) but is intent(inout) in some OMPI implementation ; known as a bug)
+
+#if defined HAVE_MPI
+
+ mpierr1=MPI_SUCCESS; mpierr2=MPI_SUCCESS
+
+#if defined HAVE_MPI1
+ call MPI_Errhandler_get(my_comm,old_err_handler,mpierr1)
+ call MPI_Errhandler_set(my_comm,new_err_handler,mpierr2)
+#endif
+#if defined HAVE_MPI2
+ call MPI_comm_get_Errhandler(my_comm,old_err_handler,mpierr1)
+ call MPI_comm_set_Errhandler(my_comm,new_err_handler,mpierr2)
+#endif
+
+ ierror=MPI_SUCCESS
+ if (mpierr1/=MPI_SUCCESS) then
+ ierror=mpierr1
+ else if (mpierr2/=MPI_SUCCESS) then
+ ierror=mpierr2
+ end if
+#endif
+
+end subroutine xmpi_comm_set_errhandler
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_split_work_i4b
+!! NAME
+!! xmpi_split_work_i4b
+!!
+!! FUNCTION
+!! Splits the number of tasks, ntasks, among nprocs processors.
+!! Used for the MPI parallelization of simple loops.
+!!
+!! INPUTS
+!! ntasks=number of tasks
+!! comm=MPI communicator.
+!!
+!! OUTPUT
+!! my_start,my_stop= indices defining the initial and final task for this processor
+!!
+!! NOTES
+!! If nprocs > ntasks then:
+!!
+!! my_start = ntasks + 1
+!! my_stop = ntask
+!!
+!! In this particular case, loops of the form
+!!
+!! do ii=my_start,my_stop
+!! ...
+!! end do
+!!
+!! are not executed. Moreover allocation such as foo(my_start:my_stop) will generate a zero-sized array.
+!!
+!! SOURCE
+
+subroutine xmpi_split_work_i4b(ntasks, comm, my_start, my_stop)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks,comm
+ integer,intent(out) :: my_start, my_stop
+
+!Local variables-------------------------------
+ integer :: res,nprocs,my_rank,block_p1,block
+
+! *************************************************************************
+
+ nprocs = xmpi_comm_size(comm); my_rank = xmpi_comm_rank(comm)
+
+ block = ntasks / nprocs
+ res = MOD(ntasks, nprocs)
+ block_p1= block + 1
+
+ if (my_rank < res) then
+ my_start = my_rank *block_p1+1
+ my_stop = (my_rank+1)*block_p1
+ else
+ my_start = res*block_p1 + (my_rank-res )*block + 1
+ my_stop = res*block_p1 + (my_rank-res+1)*block
+ end if
+
+end subroutine xmpi_split_work_i4b
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_split_block
+!! NAME
+!! xmpi_split_block
+!!
+!! FUNCTION
+!! Splits tasks inside communicator using block distribution.
+!! Used for the MPI parallelization of simple loops.
+!!
+!! INPUTS
+!! ntasks: number of tasks
+!! comm: MPI communicator.
+!!
+!! OUTPUT
+!! my_ntasks: Number of tasks received by this rank. May be zero if ntasks > nprocs.
+!! my_inds(my_ntasks): List of tasks treated by this rank. Allocated by the routine. May be zero-sized.
+!!
+!! SOURCE
+
+subroutine xmpi_split_block(ntasks, comm, my_ntasks, my_inds)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks, comm
+ integer,intent(out) :: my_ntasks
+ integer,allocatable,intent(out) :: my_inds(:)
+
+!Local variables-------------------------------
+ integer :: ii, istart, istop
+
+! *************************************************************************
+
+ call xmpi_split_work(ntasks, comm, istart, istop)
+ my_ntasks = istop - istart + 1
+ ABI_MALLOC(my_inds, (my_ntasks))
+ if (my_ntasks > 0) my_inds = [(istart + (ii - 1), ii=1, my_ntasks)]
+
+end subroutine xmpi_split_block
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_split_cyclic
+!! NAME
+!! xmpi_split_cyclic
+!!
+!! FUNCTION
+!! Splits tasks inside communicator using cyclic distribution.
+!! Used for the MPI parallelization of simple loops.
+!!
+!! INPUTS
+!! ntasks: number of tasks
+!! comm: MPI communicator.
+!!
+!! OUTPUT
+!! my_ntasks: Number of tasks received by this rank. May be zero if ntasks > nprocs.
+!! my_inds(my_ntasks): List of tasks treated by this rank. Allocated by the routine. May be zero-sized.
+!!
+!! SOURCE
+
+subroutine xmpi_split_cyclic(ntasks, comm, my_ntasks, my_inds)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks, comm
+ integer,intent(out) :: my_ntasks
+ integer,allocatable,intent(out) :: my_inds(:)
+
+!Local variables-------------------------------
+ integer :: ii, cnt, itask, my_rank, nprocs
+
+! *************************************************************************
+
+ nprocs = xmpi_comm_size(comm); my_rank = xmpi_comm_rank(comm)
+
+ do ii=1,2
+ if (ii == 2) then
+ ABI_MALLOC(my_inds, (my_ntasks))
+ end if
+ cnt = 0
+ do itask=1,ntasks
+ if (mod(itask, nprocs) == my_rank) then
+ cnt = cnt + 1
+ if (ii == 2) my_inds(cnt) = itask
+ end if
+ end do
+ if (ii == 1) my_ntasks = cnt
+ end do
+
+end subroutine xmpi_split_cyclic
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_split_list
+!! NAME
+!! xmpi_split_list
+!!
+!! FUNCTION
+!! Splits list of items inside communicator using block distribution.
+!! Used for the MPI parallelization of simple loops.
+!!
+!! INPUTS
+!! ntasks:Number of items in list (global)
+!! list(ntasks): List of indices
+!! comm: MPI communicator.
+!!
+!! OUTPUT
+!! my_ntasks: Number of tasks received by this rank. May be zero if ntasks > nprocs.
+!! my_inds(my_ntasks): List of tasks treated by this rank. Allocated by the routine. May be zero-sized.
+!!
+!! SOURCE
+
+subroutine xmpi_split_list(ntasks, list, comm, my_ntasks, my_inds)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks, comm
+ integer,intent(out) :: my_ntasks
+ integer,intent(in) :: list(ntasks)
+ integer,allocatable,intent(out) :: my_inds(:)
+
+!Local variables-------------------------------
+ integer :: my_start, my_stop
+
+! *************************************************************************
+
+ call xmpi_split_work(ntasks, comm, my_start, my_stop)
+
+ my_ntasks = my_stop - my_start + 1
+
+ if (my_stop >= my_start) then
+ ABI_MALLOC(my_inds, (my_ntasks))
+ my_inds = list(my_start:my_stop)
+ else
+ my_ntasks = 0
+ ABI_MALLOC(my_inds, (0))
+ end if
+
+end subroutine xmpi_split_list
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_split_work2_i4b
+!! NAME
+!! xmpi_split_work2_i4b
+!!
+!! FUNCTION
+!! Splits a number of tasks, ntasks, among nprocs processors.
+!! The output arrays istart(1:nprocs) and istop(1:nprocs)
+!! report the starting and final task index for each CPU.
+!! Namely CPU with rank ii has to perform all the tasks between
+!! istart(ii+1) and istop(ii+1). Note the Fortran convention of using 1 as first index of the array.
+!! Note, moreover, that if a proc has rank > ntasks then:
+!!
+!! istart(rank+1)=ntasks+1
+!! istop(rank+1)=ntask
+!!
+!! In this particular case, loops of the form
+!!
+!! do ii=istart(rank),istop(rank)
+!! ...
+!! end do
+!!
+!! are not executed. Moreover allocation such as foo(istart(rank):istop(rank))
+!! will generate a zero-sized array
+!!
+!! INPUTS
+!! ntasks= number of tasks
+!! nprocs=Number of processors.
+!!
+!! OUTPUT
+!! istart(nprocs),istop(nprocs)= indices defining the initial and final task for each processor
+!!
+!! SOURCE
+
+subroutine xmpi_split_work2_i4b(ntasks, nprocs, istart, istop)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks,nprocs
+ integer,intent(inout) :: istart(nprocs), istop(nprocs)
+
+!Local variables-------------------------------
+ integer :: res,irank,block,block_tmp
+
+! *************************************************************************
+
+ block_tmp = ntasks/nprocs
+ res = MOD(ntasks,nprocs)
+ block = block_tmp+1
+
+ do irank=0,nprocs-1
+ if (irank ntasks
+ do ii=1,ntasks
+ list(ii) = ii-1
+ end do
+ else
+ ii=1
+ do irank=nprocs-1,0,-1 ! If remainder/=0, master will get less tasks.
+ jj = ii+ntpblock-1
+ if (remainder>0) then
+ jj=jj+1
+ remainder = remainder-1
+ end if
+ list(ii:jj)=irank
+ ii=jj+1
+ end do
+ end if
+
+ task_distrib = RESHAPE(list, [n1,n2,n3,n4])
+
+ if (ANY(task_distrib==-999)) call xmpi_abort(msg="task_distrib == -999")
+
+ ABI_FREE(list)
+
+end subroutine xmpi_distab_4D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_distrib_with_replicas
+!! NAME
+!! xmpi_distrib_with_replicas
+!!
+!! FUNCTION
+!! This function distributes the i-th task `itask` among `nprocs` inside a MPI communicator.
+!! If nprocs > ntasks, multiple MPI ranks will be assigned to a given task.
+!!
+!! INPUTS
+!! itask=Index of the task (must be <= ntasks)
+!! ntasks= number of tasks
+!! rank=MPI Rank of this processor in the MPI communicator.
+!! nprocs=Number of processors in the MPI communicator.
+!!
+!! OUTPUT
+!! True if this node will treat itask (replicas are possible if nprocs > ntasks)
+!!
+!! SOURCE
+
+pure logical function xmpi_distrib_with_replicas(itask, ntasks, rank, nprocs) result(bool)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: itask,rank,nprocs,ntasks
+
+!Local variables-------------------------------
+ integer :: ii,mnp_pool,rk_base
+
+! *************************************************************************
+
+ ! If the number of processors is less than ntasks, we have max one processor per task
+ ! else we replicate the tasks inside a pool of max size mnp_pool
+ if (nprocs <= ntasks) then
+ bool = modulo(itask - 1, nprocs) == rank
+ else
+ mnp_pool = (nprocs / ntasks)
+ !write(std_out,*)"Will duplicate itask, mnp_pool", mnp_pool, "nprocs, ntasks", nprocs, ntasks
+
+ rk_base = modulo(itask - 1, nprocs)
+ bool = .False.
+ do ii=1,mnp_pool+1
+ if (rank == rk_base + (ii - 1) * ntasks) then
+ bool = .True.; exit
+ end if
+ end do
+ end if
+
+end function xmpi_distrib_with_replicas
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpi_largetype_create
+!! NAME
+!! xmpi_largetype_create
+!!
+!! FUNCTION
+!! This function builds a large-count contiguous datatype made of "small" adjacent
+!! chunks (of same original type). The new type can then be used in MPI
+!! routines when the number of elements to communicate exceeds a 32bit integer.
+!!
+!! INPUTS
+!! largecount= total number of elements expressed as a 64bit integer
+!! inputtype= (INTEGER) input type (typically INTEGER, REAL(dp), ...)
+!! op_type= type of operation that will be applied during collective comms
+!! At present, MPI_SUM, MPI_LOR, MPI_LAND are implemented
+!!
+!! OUTPUT
+!! largetype= (INTEGER) new MPI type made of a serie of adjacent chunks
+!! largetype_op= (INTEGER) MPI user-defined operation associated to largetype type
+!!
+!! NOTE
+!! This routine is partially inspired by https://github.com/jeffhammond/BigMPI
+!! See: J.R. Hammond. A. Schafer, R. Latham,
+!! "ToINT_MAX. . . and beyond. Exploring large-count support in MPI",
+!! 2014 Workshop on Exascale MPI at Supercomputing Conference
+!! MIT License (MIT)
+!! Permission is hereby granted, free of charge, to any person obtaining a copy
+!! of this software and associated documentation files (the "Software"), to deal
+!! in the Software without restriction, including without limitation the rights
+!! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+!! copies of the Software, and to permit persons to whom the Software is
+!! furnished to do so.
+!!
+!! From MPI4 specification, this routine is useless as large-count MPI communications
+!! can be called with the use of the MPI_count datatype (instead of INTEGER).
+!!
+!! SOURCE
+
+subroutine xmpi_largetype_create(largecount,inputtype,largetype,largetype_op,op_type)
+
+!Arguments ------------------------------------
+!scalars
+ integer(KIND=int64),intent(in) :: largecount
+ integer,intent(in) :: inputtype,op_type
+ integer,intent(out) :: largetype,largetype_op
+
+!Local variables-------------------------------
+#ifdef HAVE_MPI
+!scalars
+ integer,parameter :: INT_MAX=max(1,xmpi_maxint32/2)
+ integer(KIND=int32) :: cc,rr,ierr
+ integer(KIND=XMPI_ADDRESS_KIND) :: extent,lb,remdisp
+ integer :: chunks,remainder
+!arrays
+ integer(KIND=int32) :: blklens(2)
+ integer(KIND=XMPI_ADDRESS_KIND) :: disps(2)
+ integer :: types(2)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI
+ if (XMPI_ADDRESS_KIND HUGE(tmp_displ(1)) ))then
+ call xmpi_abort(msg=" byte displacement cannot be represented with a default integer")
+ end if
+
+ call MPI_TYPE_STRUCT(ncount,block_length,block_displ,block_type,new_type,mpierr)
+ ABI_FREE(tmp_displ)
+#endif
+
+end subroutine xmpio_type_struct
+!!***
+
+#endif
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_get_info_frm
+!! NAME
+!! xmpio_marker_info
+!!
+!! FUNCTION
+!! Return the byte size of the Fortran record and its corresponding MPI_type (compiler-dependent).
+!! These two values are needed to access sequential binary Fortran files with MPI/IO routines where
+!! C-streams are used.
+!!
+!! INPUTS
+!! comm=MPI communicator. Only master will find the values for the record marker. The results
+!! are then broadcast to all the other nodes in comm.
+!!
+!! OUTPUT
+!! bsize_frm=Byte size of the Fortran record marker.
+!! mpi_type_frm=MPI type of the marker.
+!!
+!! SOURCE
+
+subroutine xmpio_get_info_frm(bsize_frm, mpi_type_frm, comm)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: comm
+ integer,intent(out) :: mpi_type_frm,bsize_frm
+
+!Local variables-------------------------------
+ integer :: my_rank
+#ifdef HAVE_MPI_IO
+!scalars
+ integer,parameter :: master=0
+ integer :: spt,ept,ii
+ integer :: f90_unt,iimax,mpio_fh,bsize_int,mpierr
+ integer(XMPI_OFFSET_KIND) :: offset,rml
+ character(len=fnlen) :: fname
+ character(len=500) :: errmsg
+ logical :: file_exists
+!arrays
+ integer :: xvals(2),ivals(100),read_5ivals(5),ref_5ivals(5)
+ integer :: rm_lengths(4)=(/4,8,2,16/)
+ integer :: statux(MPI_STATUS_SIZE)
+ real(dp) :: xrand(fnlen)
+#endif
+
+!************************************************************************
+
+ bsize_frm=0; mpi_type_frm=0
+
+ my_rank = xmpi_comm_rank(comm) !; RETURN
+
+#ifdef HAVE_MPI_IO
+ if ( my_rank == master ) then
+ ! Fortran scratch files cannot have a name so have to generate a random one.
+ ! cannot use pick_aname since it is higher level.
+ fname = "__MPI_IO_FRM__"
+ spt=LEN(trim(fname))+1; ept=spt
+
+ inquire(file=trim(fname),exist=file_exists)
+
+ do while (file_exists)
+ call RANDOM_NUMBER(xrand(spt:ept))
+ xrand(spt:ept) = 64+xrand(spt:ept)*26
+ do ii=spt,ept
+ fname(ii:ii) = ACHAR(NINT(xrand(ii)))
+ end do
+ ept = MIN(ept+1,fnlen)
+ inquire(file=trim(fname),exist=file_exists)
+ end do
+ !
+ ! Write five integers on the binary file open in Fortran mode, then try
+ ! to reread the values with MPI-IO using different offsets for the record marker.
+ !
+ f90_unt = xmpi_get_unit()
+ if (f90_unt == -1) call xmpi_abort(msg="Cannot find free unit!!")
+ ! MT dec 2013: suppress the new attribute: often cause unwanted errors
+ ! and theoretically useless because of the previous inquire
+ open(unit=f90_unt,file=trim(fname),form="unformatted",err=10, iomsg=errmsg)
+
+ ref_5ivals = (/(ii, ii=5,9)/)
+ ivals = HUGE(1); ivals(5:9)=ref_5ivals
+ write(f90_unt, err=10, iomsg=errmsg) ivals
+ close(f90_unt, err=10, iomsg=errmsg)
+
+ call MPI_FILE_OPEN(xmpi_comm_self, trim(fname), MPI_MODE_RDONLY, MPI_INFO_NULL, mpio_fh,mpierr)
+
+ iimax=3 ! Define number of INTEGER types to be tested
+#ifdef HAVE_FC_INT_QUAD
+ iimax=4
+#endif
+ !
+ ! Try to read ivals(5:9) from file.
+ ii=0; bsize_frm=-1
+ call MPI_TYPE_SIZE(MPI_INTEGER,bsize_int,mpierr)
+
+ do while (bsize_frm<=0 .and. ii for reading by current proc.
+!! xmpio_collective ==> for collective reading.
+!! offset=MPI/IO file pointer
+!! [advance]=By default the routine will move the file pointer to the next record.
+!! advance=.FALSE. can be used so that the next read will continue picking information
+!! off of the currect record.
+!!
+!! OUTPUT
+!! fmarker=Content of the Fortran record marker.
+!! mpierr= MPI error code
+!!
+!! SIDE EFFECTS
+!! offset=
+!! input: file pointer used to access the Fortran marker.
+!! output: new offset updated after the reading, depending on advance.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_read_frm(fh, offset, sc_mode, fmarker, mpierr, advance)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,sc_mode
+ integer(XMPI_OFFSET_KIND),intent(inout) :: offset
+ integer(XMPI_OFFSET_KIND),intent(out) :: fmarker
+ integer,intent(out) :: mpierr
+ logical,optional,intent(in) :: advance
+
+!Local variables-------------------------------
+!scalars
+ integer :: bsize_frm,mpi_type_frm,myfh
+ integer(kind=int16) :: delim_record2(1)
+ integer(kind=int32) :: delim_record4(1)
+ integer(kind=int64) :: delim_record8(1)
+#if defined HAVE_FC_INT_QUAD
+ integer*16 :: delim_record16(1)
+#endif
+ character(len=500) :: msg
+!arrays
+ integer :: statux(MPI_STATUS_SIZE)
+
+!************************************************************************
+
+ !Workaround for XLF.
+ myfh = fh
+
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+ mpi_type_frm = xmpio_mpi_type_frm ! MPI type of the record marker.
+
+ SELECT CASE (sc_mode)
+
+ CASE (xmpio_single)
+
+ if (bsize_frm==4) then
+ call MPI_FILE_READ_AT(myfh,offset,delim_record4,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record4(1)
+ else if (bsize_frm==8) then
+ call MPI_FILE_READ_AT(myfh,offset,delim_record8,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record8(1)
+#if defined HAVE_FC_INT_QUAD
+ else if (bsize_frm==16) then
+ call MPI_FILE_READ_AT(myfh,offset,delim_record16,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record16(1)
+#endif
+ else if (bsize_frm==2) then
+ call MPI_FILE_READ_AT(myfh,offset,delim_record2,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record2(1)
+ else
+ call xmpi_abort(msg='Wrong record marker length!')
+ end if
+
+ CASE (xmpio_collective)
+
+ if (bsize_frm==4) then
+ call MPI_FILE_READ_AT_ALL(myfh,offset,delim_record4,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record4(1)
+ else if (bsize_frm==8) then
+ call MPI_FILE_READ_AT_ALL(myfh,offset,delim_record8,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record8(1)
+#if defined HAVE_FC_INT_QUAD
+ else if (bsize_frm==16) then
+ call MPI_FILE_READ_AT_ALL(myfh,offset,delim_record16,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record16(1)
+#endif
+ else if (bsize_frm==2) then
+ call MPI_FILE_READ_AT_ALL(myfh,offset,delim_record2,1,mpi_type_frm,statux,mpierr)
+ fmarker = delim_record2(1)
+ else
+ call xmpi_abort(msg='Wrong record marker length!')
+ end if
+
+ CASE DEFAULT
+ write(msg,"(a,i0)")" Wrong value for sc_mode: ",sc_mode
+ call xmpi_abort(msg=msg)
+ END SELECT
+
+ if (PRESENT(advance)) then
+ if (advance) then
+ offset = offset + fmarker + 2*bsize_frm ! Move the file pointer to the next record.
+ else
+ offset = offset + bsize_frm ! Move the pointer after the marker.
+ end if
+ else
+ offset = offset + fmarker + 2*bsize_frm
+ end if
+
+end subroutine xmpio_read_frm
+!!***
+
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_wffile/xmpio_write_frm
+!! NAME
+!! xmpio_write_frm
+!!
+!! FUNCTION
+!! Write a single record marker in a FORTRAN file at a given offset using MPI-IO.
+!! The file pointer is modified according to the value of advance.
+!!
+!! INPUTS
+!! fh=MPI-IO file handler.
+!! sc_mode=
+!! xmpio_single ==> for reading by current proc.
+!! xmpio_collective ==> for collective reading.
+!! fmarker=The content of the Fortran marker i.e. the size of the record in bytes.
+!! [advance]=By default the routine will move the file pointer to the next record.
+!! advance=.FALSE. can be used so that the next write will continue writing data
+!! on the currect record.
+!!
+!! OUTPUT
+!! mpierr= error code
+!!
+!! SIDE EFFECTS
+!! offset=
+!! input: offset of the Fortran marker.
+!! output: new offset updated after the writing, depending on advance.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_write_frm(fh, offset, sc_mode, fmarker, mpierr, advance)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,sc_mode
+ integer(XMPI_OFFSET_KIND),intent(in) :: fmarker
+ integer(XMPI_OFFSET_KIND),intent(inout) :: offset
+ integer,intent(out) :: mpierr
+ logical,optional,intent(in) :: advance
+
+!Local variables-------------------------------
+!scalars
+ integer :: myfh,bsize_frm,mpi_type_frm
+ integer(XMPI_OFFSET_KIND) :: last
+ integer(kind=int16) :: delim_record2
+ integer(kind=int32) :: delim_record4
+ integer(kind=int64) :: delim_record8
+#if defined HAVE_FC_INT_QUAD
+ integer*16 :: delim_record16
+#endif
+ character(len=500) :: msg
+!arrays
+ integer :: statux(MPI_STATUS_SIZE)
+
+!************************************************************************
+
+ ! Workaround for XLF
+ myfh = fh
+
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+ mpi_type_frm = xmpio_mpi_type_frm ! MPI type of the record marker.
+ last = offset + bsize_frm + fmarker ! position of the end marker
+
+ SELECT CASE (sc_mode)
+
+ CASE (xmpio_single)
+ if (bsize_frm==4) then
+ delim_record4 = fmarker
+ call MPI_FILE_WRITE_AT(myfh,offset,[delim_record4],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT(myfh,last,[delim_record4],1,mpi_type_frm,statux,mpierr)
+
+ else if (bsize_frm==8) then
+ delim_record8 = fmarker
+ call MPI_FILE_WRITE_AT(myfh,offset,[delim_record8],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT(myfh,last,[delim_record8],1,mpi_type_frm,statux,mpierr)
+#if defined HAVE_FC_INT_QUAD
+ else if (bsize_frm==16) then
+ delim_record16 = fmarker
+ call MPI_FILE_WRITE_AT(myfh,offset,[delim_record16],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT(myfh,last,[delim_record16],1,mpi_type_frm,statux,mpierr)
+#endif
+ else if (bsize_frm==2) then
+ delim_record2 = fmarker
+ call MPI_FILE_WRITE_AT(myfh,offset,[delim_record2], 1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT(myfh,last,[delim_record2],1,mpi_type_frm,statux,mpierr)
+ else
+ call xmpi_abort(msg='Wrong record marker length!')
+ end if
+
+ CASE (xmpio_collective)
+ if (bsize_frm==4) then
+ delim_record4 = fmarker
+ call MPI_FILE_WRITE_AT_ALL(myfh,offset,[delim_record4],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT_ALL(myfh,last,[delim_record4],1,mpi_type_frm,statux,mpierr)
+ else if (bsize_frm==8) then
+ delim_record8 = fmarker
+ call MPI_FILE_WRITE_AT_ALL(myfh,offset,[delim_record8],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT_ALL(myfh,last,[delim_record8],1,mpi_type_frm,statux,mpierr)
+#if defined HAVE_FC_INT_QUAD
+ else if (bsize_frm==16) then
+ delim_record16 = fmarker
+ call MPI_FILE_WRITE_AT_ALL(myfh,offset,[delim_record16],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT_ALL(myfh,last,[delim_record16],1,mpi_type_frm,statux,mpierr)
+#endif
+ else if (bsize_frm==2) then
+ delim_record2 = fmarker
+ call MPI_FILE_WRITE_AT_ALL(myfh,offset,[delim_record2],1,mpi_type_frm,statux,mpierr)
+ call MPI_FILE_WRITE_AT_ALL(myfh,last,[delim_record2],1,mpi_type_frm,statux,mpierr)
+ else
+ call xmpi_abort(msg='Wrong record marker length!')
+ end if
+
+ CASE DEFAULT
+ write(msg,"(a,i0)")" Wrong value for sc_mode: ",sc_mode
+ call xmpi_abort(msg=msg)
+ END SELECT
+
+ if (PRESENT(advance)) then
+ if (advance) then
+ offset = offset + fmarker + 2*bsize_frm ! Move the file pointer to the next record.
+ else
+ offset = offset + bsize_frm ! Move the pointer after the marker.
+ end if
+ else
+ offset = offset + fmarker + 2*bsize_frm
+ end if
+
+end subroutine xmpio_write_frm
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_fstripes
+!! NAME
+!! xmpio_create_fstripes
+!!
+!! FUNCTION
+!! Return a MPI type that can be used to (read|write) a set of interleaved Fortran records.
+!!
+!! type(1), type(1), ... ! size(1) elements
+!! type(2), type(2), ... ! size(2) elements
+!! type(1), type(1), ... ! size(1) elements
+!! ....
+!!
+!! INPUTS
+!! ncount = Number of records with elements of type types(1) to (read|write)
+!! sizes(1:2) = Number of elements of each type in the two sets of record
+!! type(1:2) = MPI Type of the elements in the first and in the second record.
+!!
+!! OUTPUT
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker individuating the beginning of the matrix. (lets call it "base").
+!! Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! new_type=New MPI type.
+!! mpierr= MPI error code
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_fstripes(ncount, sizes, types, new_type, my_offpad, mpierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: ncount
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+ integer,intent(out) :: new_type,mpierr
+!arrays
+ integer,intent(in) :: types(2),sizes(2)
+
+!Local variables-------------------------------
+!scalars
+ integer :: type_x,type_y,bsize_frm,bsize_x,bsize_y,nx,ny,column_type
+ integer(MPI_ADDRESS_KIND) :: stride
+
+!************************************************************************
+
+ ! Byte size of the Fortran record marker.
+ bsize_frm = xmpio_bsize_frm
+
+ ! Number of elements in the two stripes.
+ nx = sizes(1)
+ ny = sizes(2)
+
+ type_x = types(1)
+ type_y = types(2)
+
+ ! Byte size of type_x and type_y
+ call MPI_TYPE_SIZE(type_x,bsize_x,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_SIZE(type_y,bsize_y,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! The view starts at the first element of the first stripe.
+ my_offpad = xmpio_bsize_frm
+
+ call MPI_Type_contiguous(nx,type_x,column_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! Byte size of the Fortran record + the two markers.
+ stride = nx*bsize_x + 2*bsize_frm + ny*bsize_y + 2*bsize_frm
+
+ ! ncount colum_type separated by stride bytes
+ if (ncount>0) then
+ call MPI_Type_create_hvector(ncount,1,stride,column_type,new_type,mpierr)
+ else
+ call MPI_Type_create_hvector(1,1,stride,column_type,new_type,mpierr)
+ end if
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_FREE(column_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+end subroutine xmpio_create_fstripes
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_fsubarray_2D
+!! NAME
+!! xmpio_create_fsubarray_2D
+!!
+!! FUNCTION
+!! Return a MPI type that can be used to (read|write) a 2D matrix of elements of type old_type stored in a Fortran file.
+!!
+!! INPUTS
+!! sizes(2)=number of elements of type old_type in each dimension of the full array (array of positive integers)
+!! subsizes(2)=number of elements of type old_type in each dimension of the subarray (array of positive integers)
+!! array_of_starts(2)=starting coordinates of the subarray in each dimension (array of nonnegative integers >=1, <=sizes)
+!! old_type=Old MPI type.
+!!
+!! OUTPUT
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker individuating the beginning of the matrix. (lets call it "base").
+!! Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! new_type=New MPI type.
+!! mpierr= MPI error code
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_fsubarray_2D(sizes, subsizes, array_of_starts, old_type, new_type, my_offpad, mpierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+ integer,intent(out) :: mpierr,new_type
+!arrays
+ integer,intent(in) :: sizes(2),subsizes(2),array_of_starts(2)
+!Local variables-------------------------------
+!scalars
+ integer :: bsize_frm,bsize_old,nx,ny,column_type,ldx
+ integer(XMPI_OFFSET_KIND) :: st_x,st_y
+ integer(MPI_ADDRESS_KIND) :: stride_x
+ !character(len=500) :: msg
+
+!************************************************************************
+
+ ! Byte size of the Fortran record marker.
+ bsize_frm = xmpio_bsize_frm
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+ !
+ ! Number of columns and rows of the submatrix.
+ nx = subsizes(1)
+ ny = subsizes(2)
+
+ ldx = sizes(1)
+ st_x = array_of_starts(1)
+ st_y = array_of_starts(2)
+
+ ! The view starts at the first element of the submatrix.
+ my_offpad = (st_x-1)*bsize_old + (st_y-1)*(ldx*bsize_old+2*xmpio_bsize_frm) + xmpio_bsize_frm
+
+ ! Byte size of the Fortran record + the two markers.
+ stride_x = ldx*bsize_old + 2*bsize_frm
+
+ call MPI_Type_contiguous(nx,old_type,column_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(ny,1,stride_x,column_type,new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_FREE(column_type, mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+end subroutine xmpio_create_fsubarray_2D
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_fsubarray_3D
+!! NAME
+!! xmpio_create_fsubarray_3D
+!!
+!! FUNCTION
+!! Return a MPI type that can be used to (read|write) a 3D matrix of elements of type old_type stored in a Fortran file.
+!!
+!! INPUTS
+!! sizes(3)=number of elements of type old_type in each dimension of the full array (array of positive integers)
+!! subsizes(3)=number of elements of type old_type in each dimension of the subarray (array of positive integers)
+!! array_of_starts(3)=starting coordinates of the subarray in each dimension (array of nonnegative integers >=1, <=sizes)
+!! old_type=Old MPI type.
+!!
+!! OUTPUT
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker individuating the beginning of the matrix. (lets call it "base").
+!! Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! new_type=New MPI type.
+!! mpierr= MPI error code
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_fsubarray_3D(sizes, subsizes, array_of_starts, old_type, new_type, my_offpad, mpierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer,intent(out) :: mpierr,new_type
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+!arrays
+ integer,intent(in) :: sizes(3),subsizes(3),array_of_starts(3)
+!Local variables-------------------------------
+!scalars
+ integer :: bsize_frm,bsize_old,nx,ny,nz
+ integer :: column_type,plane_type,ldx,ldy,ldz
+ integer(XMPI_OFFSET_KIND) :: st_x,st_y,st_z
+ integer(MPI_ADDRESS_KIND) :: stride_x
+ !character(len=500) :: msg
+
+!************************************************************************
+
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+ !
+ ! Number of columns and rows of the submatrix.
+ nx = subsizes(1)
+ ny = subsizes(2)
+ nz = subsizes(3)
+
+ ldx = sizes(1)
+ ldy = sizes(2)
+ ldz = sizes(3)
+
+ st_x = array_of_starts(1)
+ st_y = array_of_starts(2)
+ st_z = array_of_starts(3)
+
+ ! The view starts at the first element of the submatrix.
+ my_offpad = (st_x-1)*bsize_old + &
+ (st_y-1)* (ldx*bsize_old+2*xmpio_bsize_frm) + &
+ (st_z-1)*ldy*(ldx*bsize_old+2*xmpio_bsize_frm) + &
+ xmpio_bsize_frm
+
+ ! Byte size of the Fortran record + the two markers.
+ stride_x = ldx*bsize_old + 2*bsize_frm
+
+ call MPI_Type_contiguous(nx,old_type,column_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(ny,1,stride_x,column_type,plane_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(nz,1,ldy*stride_x,plane_type,new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! Commit the datatype
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! Free memory
+ call MPI_TYPE_FREE(plane_type, mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+end subroutine xmpio_create_fsubarray_3D
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_fsubarray_4D
+!! NAME
+!! xmpio_create_fsubarray_4D
+!!
+!! FUNCTION
+!! Return a MPI type that can be used to (read|write) a 2D matrix of elements of type old_type stored in a Fortran file.
+!!
+!! INPUTS
+!! sizes(4)=number of elements of type old_type in each dimension of the full array (array of positive integers)
+!! subsizes(4)=number of elements of type old_type in each dimension of the subarray (array of positive integers)
+!! array_of_starts(4)=starting coordinates of the subarray in each dimension (array of nonnegative integers >=1, <=sizes)
+!! old_type=Old MPI type.
+!!
+!! OUTPUT
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker individuating the beginning of the matrix. (lets call it "base").
+!! Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! new_type=New MPI type.
+!! mpierr= MPI error code
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_fsubarray_4D(sizes, subsizes, array_of_starts, old_type, new_type, my_offpad, mpierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer,intent(out) :: mpierr,new_type
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+!arrays
+ integer,intent(in) :: sizes(4),subsizes(4),array_of_starts(4)
+
+!Local variables-------------------------------
+!scalars
+ integer :: bsize_frm,bsize_old,nx,ny,nz,na
+ integer :: column_type,plane_type,ldx,ldy,ldz,lda,vol_type
+ integer(XMPI_OFFSET_KIND) :: st_x,st_y,st_z,st_a
+ integer(MPI_ADDRESS_KIND) :: stride_x
+
+!************************************************************************
+
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+ !
+ ! Number of columns and rows of the submatrix.
+ nx = subsizes(1)
+ ny = subsizes(2)
+ nz = subsizes(3)
+ na = subsizes(4)
+
+ ldx = sizes(1)
+ ldy = sizes(2)
+ ldz = sizes(3)
+ lda = sizes(4)
+
+ st_x = array_of_starts(1)
+ st_y = array_of_starts(2)
+ st_z = array_of_starts(3)
+ st_a = array_of_starts(4)
+
+ ! The view starts at the first element of the submatrix.
+ my_offpad = (st_x-1)*bsize_old + &
+ (st_y-1)* (ldx*bsize_old+2*xmpio_bsize_frm) + &
+ (st_z-1)*ldy* (ldx*bsize_old+2*xmpio_bsize_frm) + &
+ (st_a-1)*lda*ldy*(ldx*bsize_old+2*xmpio_bsize_frm) + &
+ xmpio_bsize_frm
+
+ ! Byte size of the Fortran record + the two markers.
+ stride_x = ldx*bsize_old + 2*bsize_frm
+
+ call MPI_Type_contiguous(nx,old_type,column_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(ny,1,stride_x,column_type,plane_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(nz,1,ldy*stride_x,plane_type,vol_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_Type_create_hvector(na,1,ldz*ldy*stride_x,vol_type,new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! Commit the datatype
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ ! Free memory
+ call MPI_TYPE_FREE(column_type, mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_FREE(plane_type, mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+ call MPI_TYPE_FREE(vol_type, mpierr)
+ ABI_HANDLE_MPIERR(mpierr)
+
+end subroutine xmpio_create_fsubarray_4D
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_check_frmarkers
+!! NAME
+!! xmpio_check_frmarkers
+!!
+!! FUNCTION
+!! Check a set of Fortran record markers starting at a given offset using MPI-IO.
+!!
+!! INPUTS
+!! fh=MPI-IO file handler.
+!! offset=MPI-IO file pointer
+!! sc_mode=Option for individual or collective reading.
+!! nfrec=Number of Fortran records to be checked.
+!! bsize_frecord(nfrec)=Byte size of the Fortran records (markers are NOT included)
+!! These values will be compared with the markers reported in the file.
+!!
+!! OUTPUT
+!! ierr=A non-zero error code signals failure.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_check_frmarkers(fh, offset, sc_mode, nfrec, bsize_frecord, ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,nfrec,sc_mode
+ integer(XMPI_OFFSET_KIND),intent(in) :: offset
+ integer,intent(out) :: ierr
+!arrays
+ integer(XMPI_OFFSET_KIND),intent(in) :: bsize_frecord(nfrec)
+
+!Local variables-------------------------------
+!scalars
+ integer :: nb,irec,frmarkers_type,jj,bsize_frm,mpi_type_frm,mpierr,myfh
+ integer(XMPI_OFFSET_KIND) :: displ
+!arrays
+ integer(kind=int16),allocatable :: bufdelim2(:)
+ integer(kind=int32),allocatable :: bufdelim4(:)
+ integer(kind=int64),allocatable :: bufdelim8(:)
+#ifdef HAVE_FC_INT_QUAD
+ integer*16,allocatable :: bufdelim16(:)
+#endif
+!integer :: statux(MPI_STATUS_SIZE)
+ integer,allocatable :: block_length(:),block_type(:)
+ integer(XMPI_ADDRESS_KIND),allocatable :: block_displ(:)
+ integer(XMPI_OFFSET_KIND),allocatable :: delim_record(:)
+
+!************************************************************************
+
+ ! Workaround for XLF
+ myfh = fh
+ ierr=0
+
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+ mpi_type_frm = xmpio_mpi_type_frm ! MPI type of the record marker.
+
+ ! Define the view for the file.
+ nb=2*nfrec
+ ABI_MALLOC(block_length,(nb+2))
+ ABI_MALLOC(block_displ,(nb+2))
+ ABI_MALLOC(block_type,(nb+2))
+ block_length(1)=1
+ block_displ (1)=0
+ block_type (1)=MPI_LB
+
+ jj=2; displ=0
+ do irec=1,nfrec
+ block_type (jj:jj+1) =mpi_type_frm
+ block_length(jj:jj+1)=1
+ block_displ(jj ) = displ
+ block_displ(jj+1) = bsize_frm + displ + bsize_frecord(irec)
+ jj=jj+2
+ displ = displ + bsize_frecord(irec) + 2*bsize_frm ! Move to the beginning of the next column.
+ if (xmpio_max_address(displ)) ierr=-1 ! Check for wraparound.
+ end do
+
+ block_length(nb+2)=1
+ block_displ (nb+2)=displ
+ block_type (nb+2)=MPI_UB
+
+ call xmpio_type_struct(nb+2,block_length,block_displ,block_type,frmarkers_type,mpierr)
+ ABI_FREE(block_length)
+ ABI_FREE(block_displ)
+ ABI_FREE(block_type)
+
+ call MPI_TYPE_COMMIT(frmarkers_type,mpierr)
+ call MPI_FILE_SET_VIEW(myfh,offset,MPI_BYTE,frmarkers_type,"native",MPI_INFO_NULL,mpierr)
+
+ jj=1
+ ABI_MALLOC(delim_record,(nb))
+ do irec=1,nfrec
+ delim_record(jj:jj+1)=bsize_frecord(irec)
+ jj=jj+2
+ end do
+
+ ! Read markers according to the MPI type of the Fortran marker.
+ SELECT CASE (bsize_frm)
+
+ CASE (4)
+ ABI_MALLOC(bufdelim4,(nb))
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_READ (myfh,bufdelim4,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_READ_ALL(myfh,bufdelim4,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ if (ANY(bufdelim4/=delim_record)) ierr=1
+ if (ierr==1) then
+ do irec=1,2*nfrec
+ write(std_out,*)"irec, bufdelim4, delim_record: ",irec,bufdelim4(irec),delim_record(irec)
+ end do
+ end if
+ ABI_FREE(bufdelim4)
+
+ CASE (8)
+ ABI_MALLOC(bufdelim8,(nb))
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_READ (myfh,bufdelim8,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_READ_ALL(myfh,bufdelim8,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ if (ANY(bufdelim8/=delim_record)) ierr=1
+ ABI_FREE(bufdelim8)
+
+#ifdef HAVE_FC_INT_QUAD
+ CASE (16)
+ ABI_MALLOC(bufdelim16,(nb))
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_READ (myfh,bufdelim16,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_READ_ALL(myfh,bufdelim16,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ if (ANY(bufdelim16/=delim_record)) ierr=1
+ ABI_FREE(bufdelim16)
+#endif
+
+ CASE (2)
+ ABI_MALLOC(bufdelim2,(nb))
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_READ (myfh,bufdelim2,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_READ_ALL(myfh,bufdelim2,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ if (ANY(bufdelim2/=delim_record)) ierr=1
+ ABI_FREE(bufdelim2)
+
+ CASE DEFAULT
+ ierr=-2
+ END SELECT
+
+ ! Free memory
+ call MPI_TYPE_FREE(frmarkers_type,mpierr)
+ ABI_FREE(delim_record)
+
+end subroutine xmpio_check_frmarkers
+!!***
+#endif
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_read_int
+!! NAME
+!! xmpio_read_int
+!!
+!! FUNCTION
+!! Read the content of a single record marker in a FORTRAN file at a given offset using MPI-IO.
+!! the file pointer is modified according to the value of advance.
+!! target: integer array
+!!
+!! INPUTS
+!! fh=MPI-IO file handler.
+!! offset=MPI-IO file pointer
+!! sc_mode=
+!! xmpio_single ==> for reading by current proc.
+!! xmpio_collective ==> for collective reading.
+!! ncount=Number of elements in the buffer
+!! [advance]=By default the routine will move the file pointer to the next record.
+!! advance=.FALSE. can be used so that the next read will continue picking information
+!! off of the currect record.
+!!
+!! OUTPUT
+!! buf(ncount)=array with the values read from file
+!! fmarker=Content of the Fortran record marker.
+!! mpierr= MPI error code
+!!
+!! SIDE EFFECTS
+!! offset=
+!! input: file pointer used to access the Fortran marker.
+!! output: new offset updated after the reading, depending on advance.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_read_int(fh, offset, sc_mode, ncount, buf, fmarker, mpierr, advance)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,sc_mode,ncount
+ integer(XMPI_OFFSET_KIND),intent(inout) :: offset
+ integer(XMPI_OFFSET_KIND),intent(out) :: fmarker
+ integer,intent(out) :: mpierr
+ logical,optional,intent(in) :: advance
+!arrays
+ integer,intent(out) :: buf(ncount)
+
+!Local variables-------------------------------
+!scalars
+ integer :: myfh,bsize_frm
+ integer(XMPI_OFFSET_KIND) :: my_offset
+ character(len=500) :: msg
+!arrays
+ integer :: statux(MPI_STATUS_SIZE)
+
+!************************************************************************
+
+ ! Workaround for XLF
+ myfh = fh
+
+ my_offset = offset
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+
+ call xmpio_read_frm(myfh,my_offset,sc_mode,fmarker,mpierr,advance=.FALSE.)
+
+ SELECT CASE (sc_mode)
+ CASE (xmpio_single)
+ call MPI_FILE_READ_AT(myfh, my_offset, buf, ncount, MPI_INTEGER, statux, mpierr)
+
+ CASE (xmpio_collective)
+ call MPI_FILE_READ_AT_ALL(myfh, my_offset, buf, ncount, MPI_INTEGER, statux, mpierr)
+
+ CASE DEFAULT
+ write(msg,"(a,i0)")" Wrong value for sc_mode: ",sc_mode
+ call xmpi_abort(msg=msg)
+ END SELECT
+
+ if (PRESENT(advance)) then
+ if (advance) then
+ offset = offset + fmarker + 2*bsize_frm ! Move the file pointer to the next record.
+ else
+ offset = offset + bsize_frm ! Move the pointer after the marker.
+ end if
+ else
+ offset = offset + fmarker + 2*bsize_frm
+ end if
+
+end subroutine xmpio_read_int
+!!***
+#endif
+
+!----------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_read_dp
+!! NAME
+!! xmpio_read_dp
+!!
+!! FUNCTION
+!! Read the content of a single record marker in a FORTRAN file at a given offset using MPI-IO.
+!! the file pointer is modified according to the value of advance.
+!! targer: double precision real array
+!!
+!! INPUTS
+!! fh=MPI-IO file handler.
+!! offset=MPI-IO file pointer
+!! sc_mode=
+!! xmpio_single ==> for reading by current proc.
+!! xmpio_collective ==> for collective reading.
+!! ncount=Number of elements in the buffer
+!! [advance]=By default the routine will move the file pointer to the next record.
+!! advance=.FALSE. can be used so that the next read will continue picking information
+!! off of the currect record.
+!!
+!! OUTPUT
+!! buf(ncount)=array with the values read from file
+!! fmarker=Content of the Fortran record marker.
+!! mpierr= MPI error code
+!!
+!! SIDE EFFECTS
+!! offset=
+!! input: file pointer used to access the Fortran marker.
+!! output: new offset updated after the reading, depending on advance.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_read_dp(fh, offset, sc_mode, ncount, buf, fmarker, mpierr, advance)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,sc_mode,ncount
+ integer(XMPI_OFFSET_KIND),intent(inout) :: offset
+ integer(XMPI_OFFSET_KIND),intent(out) :: fmarker
+ integer,intent(out) :: mpierr
+ logical,optional,intent(in) :: advance
+!arrays
+ real(dp),intent(out) :: buf(ncount)
+
+!Local variables-------------------------------
+!scalars
+ integer :: bsize_frm,myfh
+ integer(XMPI_OFFSET_KIND) :: my_offset
+ character(len=500) :: msg
+!arrays
+ integer :: statux(MPI_STATUS_SIZE)
+
+!************************************************************************
+
+ ! Workaround for XLF
+ myfh = fh
+
+ my_offset = offset
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+
+ call xmpio_read_frm(myfh,my_offset,sc_mode,fmarker,mpierr,advance=.FALSE.)
+
+ SELECT CASE (sc_mode)
+ CASE (xmpio_single)
+ call MPI_FILE_READ_AT(myfh, my_offset, buf, ncount, MPI_DOUBLE_PRECISION, statux, mpierr)
+
+ CASE (xmpio_collective)
+ call MPI_FILE_READ_AT_ALL(myfh, my_offset, buf, ncount, MPI_DOUBLE_PRECISION, statux, mpierr)
+
+ CASE DEFAULT
+ write(msg,"(a,i0)")" Wrong value for sc_mode: ",sc_mode
+ call xmpi_abort(msg=msg)
+ END SELECT
+
+ if (PRESENT(advance)) then
+ if (advance) then
+ offset = offset + fmarker + 2*bsize_frm ! Move the file pointer to the next record.
+ else
+ offset = offset + bsize_frm ! Move the pointer after the marker.
+ end if
+ else
+ offset = offset + fmarker + 2*bsize_frm
+ end if
+
+end subroutine xmpio_read_dp
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_max_address
+!! NAME
+!! xmpio_max_address
+!!
+!! FUNCTION
+!! Returns .TRUE. if offset cannot be stored in a Fortran integer of kind XMPI_ADDRESS_KIND.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+function xmpio_max_address(offset)
+
+!Arguments ------------------------------------
+!scalars
+ logical :: xmpio_max_address
+ integer(XMPI_OFFSET_KIND),intent(in) :: offset
+!arrays
+
+!Local variables-------------------------------
+!scalars
+ integer(XMPI_ADDRESS_KIND) :: address
+ integer(XMPI_OFFSET_KIND),parameter :: max_address=HUGE(address)-100
+
+!************************************************************************
+
+ xmpio_max_address = (offset >= max_address)
+
+end function xmpio_max_address
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_write_frmarkers
+!! NAME
+!! xmpio_write_frmarkers
+!!
+!! FUNCTION
+!! Write a set of Fortran record markers starting at a given offset using MPI-IO.
+!!
+!! INPUTS
+!! fh=MPI-IO file handler.
+!! offset=MPI-IO file pointer
+!! sc_mode=Option for individual or collective reading.
+!! nfrec=Number of Fortran records to be written.
+!! bsize_frecord(nfrec)=Byte size of the Fortran records to be written (markers are NOT included in the size)
+!!
+!! OUTPUT
+!! ierr=A non-zero error code signals failure.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_write_frmarkers(fh, offset, sc_mode, nfrec, bsize_frecord, ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: fh,nfrec,sc_mode
+ integer(XMPI_OFFSET_KIND),intent(in) :: offset
+ integer,intent(out) :: ierr
+!arrays
+ integer(XMPI_OFFSET_KIND),intent(in) :: bsize_frecord(nfrec)
+
+!Local variables-------------------------------
+!scalars
+ integer :: nb,irec,frmarkers_type,jj,bsize_frm,mpi_type_frm,mpierr,myfh
+ integer(XMPI_OFFSET_KIND) :: displ
+!integer(XMPI_OFFSET_KIND) :: my_offset
+!character(len=500) :: msg
+!arrays
+ integer(kind=int16),allocatable :: bufdelim2(:)
+ integer(kind=int32),allocatable :: bufdelim4(:)
+ integer(kind=int64),allocatable :: bufdelim8(:)
+#ifdef HAVE_FC_INT_QUAD
+ integer*16,allocatable :: bufdelim16(:)
+#endif
+!integer :: statux(MPI_STATUS_SIZE)
+ integer,allocatable :: block_length(:),block_type(:)
+ integer(XMPI_ADDRESS_KIND),allocatable :: block_displ(:)
+ integer(XMPI_OFFSET_KIND),allocatable :: delim_record(:)
+
+!************************************************************************
+
+ ! Workaround for XLF
+ myfh = fh; ierr=0
+
+ !my_offset = offset
+ !do irec=1,nfrec
+ ! call xmpio_write_frm(myfh,my_offset,sc_mode,bsize_frecord(irec),mpierr)
+ !end do
+ !return
+
+ ! FIXME: This is buggy
+ bsize_frm = xmpio_bsize_frm ! Byte size of the Fortran record marker.
+ mpi_type_frm = xmpio_mpi_type_frm ! MPI type of the record marker.
+
+ ! Define the view for the file
+ nb=2*nfrec
+ ABI_MALLOC(block_length,(nb+2))
+ ABI_MALLOC(block_displ,(nb+2))
+ ABI_MALLOC(block_type,(nb+2))
+ block_length(1)=1
+ block_displ (1)=0
+ block_type (1)=MPI_LB
+
+ jj=2; displ=0
+ do irec=1,nfrec
+ block_type (jj:jj+1) = mpi_type_frm
+ block_length(jj:jj+1) = 1
+ block_displ(jj ) = displ
+ block_displ(jj+1) = displ + bsize_frm + bsize_frecord(irec)
+ jj=jj+2
+ displ = displ + bsize_frecord(irec) + 2*bsize_frm ! Move to the beginning of the next column.
+ if (xmpio_max_address(displ)) then ! Check for wraparound.
+ ierr = -1; return
+ end if
+ end do
+
+ block_length(nb+2) = 1
+ block_displ (nb+2) = displ
+ block_type (nb+2) = MPI_UB
+
+ call xmpio_type_struct(nb+2,block_length,block_displ,block_type,frmarkers_type,mpierr)
+
+ ABI_FREE(block_length)
+ ABI_FREE(block_displ)
+ ABI_FREE(block_type)
+
+ call MPI_TYPE_COMMIT(frmarkers_type,mpierr)
+ call MPI_FILE_SET_VIEW(myfh,offset,MPI_BYTE,frmarkers_type,"native",MPI_INFO_NULL,mpierr)
+
+ jj=1
+ ABI_MALLOC(delim_record,(nb))
+ do irec=1,nfrec
+ delim_record(jj:jj+1)=bsize_frecord(irec)
+ jj=jj+2
+ end do
+
+ ! Write all markers according to the MPI type of the Fortran marker.
+ SELECT CASE (bsize_frm)
+
+ CASE (4)
+ ABI_MALLOC(bufdelim4,(nb))
+ bufdelim4=delim_record
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_WRITE (myfh,bufdelim4,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_WRITE_ALL(myfh,bufdelim4,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ ABI_FREE(bufdelim4)
+
+ CASE (8)
+ ABI_MALLOC(bufdelim8,(nb))
+ bufdelim8=delim_record
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_WRITE (myfh,bufdelim8,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_WRITE_ALL(myfh,bufdelim8,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ ABI_FREE(bufdelim8)
+
+#ifdef HAVE_FC_INT_QUAD
+ CASE (16)
+ ABI_MALLOC(bufdelim16,(nb))
+ bufdelim16=delim_record
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_WRITE (myfh,bufdelim16,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_WRITE_ALL(myfh,bufdelim16,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ ABI_FREE(bufdelim16)
+#endif
+
+ CASE (2)
+ ABI_MALLOC(bufdelim2,(nb))
+ bufdelim2=delim_record
+ if (sc_mode==xmpio_single) then
+ call MPI_FILE_WRITE (myfh,bufdelim2,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else if (sc_mode==xmpio_collective) then
+ call MPI_FILE_WRITE_ALL(myfh,bufdelim2,2*nfrec,mpi_type_frm,MPI_STATUS_IGNORE,mpierr)
+ else
+ ierr=2
+ end if
+ ABI_FREE(bufdelim2)
+
+ CASE DEFAULT
+ ierr=-2
+ END SELECT
+
+ ! Free memory
+ call MPI_TYPE_FREE(frmarkers_type,mpierr)
+ ABI_FREE(delim_record)
+
+end subroutine xmpio_write_frmarkers
+#endif
+!!***
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_fherm_packed
+!! NAME
+!! xmpio_create_fherm_packed
+!!
+!! FUNCTION
+!! Returns an MPI datatype that can be used to (read|write) with MPI-IO the columns of an
+!! Hermitian matrix whose upper triangle is written on a Fortran binary file.
+!! Note that the view assumes that the file pointer used to create the MPI-IO view
+!! points to the first element of the first column. In other words,the first Fortran record marker
+!! (if any) is not taken into account in the calculation of the displacements.
+!!
+!! INPUTS
+!! array_of_starts(2)=starting coordinates in the global Hermitian matrix
+!! (array of positive integers with jj>=ii, Fortran convention)
+!! array_of_ends(2)=final coordinates in the global Hermitian matrix
+!! (array of positive integers, jj>=ii, Fortran convention)
+!! is_fortran_file=.FALSE. is C stream is used. .TRUE. for writing Fortran binary files.
+!! old_type=MPI datatype of the elements of the matrix.
+!!
+!! OUTPUT
+!! my_offset=Offset relative to the beginning of the matrix in the file.
+!! hmat_type=New MPI type.
+!! offset_err= error code
+!!
+!! NOTES
+!! The matrix on file is written in the following FORTRAN format (let us assume a 3x3 matrix for simplicity)
+!!
+!! m (1,1) m
+!! m (1,2) (2,2) m
+!! m (1,3) (2,3) (3,3) m
+!!
+!! each Fortran record stores a column of the packed Hermitian matrix, "m" denotes the Fortran
+!! record marker that introduces holes in the MPI-IO file view.
+!! To read the columns from (1,2) up to (2,2) one should use array_of_starts=(1,2) and array_of_ends=(2,2).
+!! The MPI-IO file view should be created by moving the file pointer so that it points to the elements (1,2).
+!!
+!! File views for C-streams is not optimal since one can use a single slice of contigous data.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_fherm_packed(array_of_starts,array_of_ends,is_fortran_file,my_offset,old_type,hmat_type,offset_err)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer,intent(out) :: offset_err,hmat_type
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offset
+ logical,intent(in) :: is_fortran_file
+!arrays
+ integer,intent(in) :: array_of_starts(2),array_of_ends(2)
+
+!Local variables-------------------------------
+!scalars
+ integer :: nrow,my_ncol,ii,bsize_old,col,jj_glob,bsize_frm,prev_col,mpierr
+ integer(XMPI_OFFSET_KIND) :: col_displ
+!arrays
+ integer,allocatable :: col_type(:),block_length(:),block_type(:)
+ integer(XMPI_ADDRESS_KIND),allocatable :: block_displ(:)
+
+!************************************************************************
+
+ offset_err=0
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+
+ bsize_frm=0; if (is_fortran_file) bsize_frm = xmpio_bsize_frm
+
+ my_ncol = array_of_ends(2) - array_of_starts(2) + 1
+ !
+ ! Calculate my offset relative to the beginning of the matrix in the file.
+ prev_col = array_of_starts(2)-1
+ my_offset = (prev_col*(prev_col+1)/2)*bsize_old + (array_of_starts(1)-1)*bsize_old + 2*prev_col*bsize_frm + bsize_frm
+ !
+ ! col_type(col) describes the col-th column of the packed matrix.
+ ! block_displ(col+1) stores its displacement taking into account the Fortran marker.
+ ABI_MALLOC(col_type,(my_ncol))
+ ABI_MALLOC(block_displ,(my_ncol+2))
+
+ if (my_ncol>1) then
+ col_displ=0
+ do col=1,my_ncol
+ jj_glob = (col-1) + array_of_starts(2)
+ nrow = jj_glob
+ if (jj_glob==array_of_starts(2)) nrow = jj_glob - array_of_starts(1) + 1 ! First column treated by me.
+ if (jj_glob==array_of_ends(2)) nrow = array_of_ends(1) ! Last column treated by me.
+ call MPI_Type_contiguous(nrow,old_type,col_type(col),mpierr)
+ !
+ if (xmpio_max_address(col_displ)) offset_err=1 ! Test for wraparounds
+ block_displ(col+1) = col_displ
+ col_displ = col_displ + nrow * bsize_old + 2 * bsize_frm ! Move to the next column.
+ end do
+
+ else if (my_ncol==1) then ! The case of a single column is treated separately.
+ block_displ(2) = 0
+ nrow = array_of_ends(1) - array_of_starts(1) + 1
+ call MPI_Type_contiguous(nrow,old_type,col_type(2),mpierr)
+ col_displ= nrow*bsize_old
+ if (xmpio_max_address(col_displ)) offset_err=1 ! Test for wraparounds
+ else
+ call xmpi_abort(msg="my_ncol cannot be negative!")
+ end if
+
+ ABI_MALLOC(block_length,(my_ncol+2))
+ ABI_MALLOC(block_type,(my_ncol+2))
+
+ block_length(1)=1
+ block_displ (1)=0
+ block_type (1)=MPI_LB
+
+ do ii=2,my_ncol+1
+ block_length(ii)=1
+ block_type(ii) =col_type(ii-1)
+ !write(std_out,*)" ii-1, depl, length, type: ",ii-1,block_displ(ii),block_length(ii),block_type(ii)
+ end do
+
+ block_length(my_ncol+2)= 1
+ block_displ (my_ncol+2)= col_displ
+ block_type (my_ncol+2)= MPI_UB
+
+ call xmpio_type_struct(my_ncol+2,block_length,block_displ,block_type,hmat_type,mpierr)
+
+ call MPI_TYPE_COMMIT(hmat_type,mpierr)
+
+ ABI_FREE(block_length)
+ ABI_FREE(block_displ)
+ ABI_FREE(block_type)
+
+ do col=1,my_ncol
+ call MPI_TYPE_FREE(col_type(col),mpierr)
+ end do
+
+ ABI_FREE(col_type)
+
+end subroutine xmpio_create_fherm_packed
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_coldistr_from_fpacked
+!! NAME
+!! xmpio_create_coldistr_from_fpacked
+!!
+!! FUNCTION
+!! Returns an MPI datatype that can be used to MPI-IO (read|write) the columns of an
+!! (Hermitian|Symmetric) matrix whose upper triangle is written on a Fortran binary file.
+!! Note that the view assumes that the file pointer used to instanciate the MPI-IO view
+!! points to the first element of the first column. In other words,the first Fortran record marker
+!! (if any) is not taken into account in the calculation of the displacements.
+!!
+!! INPUTS
+!! sizes(2)=Number of elements of type old_type in each dimension of the full array (array of positive integers)
+!! my_cols(2)=initial and final column to (read|write). Array of positive integers, Fortran convention.
+!! old_type=MPI datatype of the elements of the matrix.
+!!
+!! OUTPUT
+!! new_type=New MPI type that can be used to instanciate the MPI-IO view for the Fortran file.
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker (lets call it "base"). Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! offset_err=Error code. A non-zero returned value signals that the global matrix is tool large
+!! for a single MPI-IO access (see notes below).
+!!
+!! NOTES
+!! 1) The matrix on file is written in the following FORTRAN format (let us assume a 3x3 matrix for simplicity)
+!!
+!! m (1,1) m
+!! m (1,2) (2,2) m
+!! m (1,3) (2,3) (3,3) m
+!!
+!! each Fortran record stores a column of the packed matrix, "m" denotes the Fortran
+!! record marker that introduces holes in the file view.
+!!
+!! 2) With (signed) Fortran integers, the maximum size of the file that
+!! that can be read in one-shot is around 2Gb when etype is set to byte.
+!! Using a larger etype might create portability problems (real data on machines using
+!! integer*16 for the marker) since etype must be a multiple of the Fortran record marker
+!! Due to the above reason, block_displ is given in bytes but it has to be defined as Fortran
+!! integer. If the displacement cannot be stored in a Fortran integer, the routine returns
+!! offset_err=1 so that the caller will know that several MPI-IO reads are nedded to
+!! read the file.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_coldistr_from_fpacked(sizes,my_cols,old_type,new_type,my_offpad,offset_err)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer,intent(out) :: new_type,offset_err
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+!arrays
+ integer,intent(in) :: sizes(2),my_cols(2)
+
+!Local variables-------------------------------
+!scalars
+ integer :: my_ncol,bsize_old,my_col
+ integer :: my_nels,my_el,row_glob,ii_hpk,jj_hpk,col_glob,bsize_frm,mpierr
+ integer(XMPI_OFFSET_KIND) :: my_offset,ijp_glob
+ !character(len=500) :: msg
+!arrays
+ integer,allocatable :: block_length(:),block_type(:)
+ integer(XMPI_ADDRESS_KIND),allocatable :: block_displ(:)
+
+!************************************************************************
+
+ ! Byte size of the Fortran record marker.
+ bsize_frm = xmpio_bsize_frm
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+
+ ! my number of columns and total numer of elements to be read.
+ my_ncol = my_cols(2) - my_cols(1) + 1
+ my_nels = my_ncol*sizes(1)
+ !
+ ! block_displ(el+1) stores the displacement of the local element el taking into account the Fortran marker.
+ ABI_MALLOC(block_displ,(my_nels+2))
+ ABI_MALLOC(block_length,(my_nels+2))
+ ABI_MALLOC(block_type,(my_nels+2))
+
+ block_length(1)=1
+ block_displ (1)=0
+ block_type (1)=MPI_LB
+ !
+ ! * the view assumes that the file pointer used to instanciate the MPI-IO view
+ ! points to the first element of the first column. In other words,the first Fortran record marker
+ ! is not taken into account in the calculation of the displacements.
+ my_offpad=xmpio_bsize_frm
+
+ ! * Some matrix elements are read twice. This part has to be tested.
+ offset_err=0; my_el=0
+ do my_col=1,my_ncol
+ col_glob = (my_col-1) + my_cols(1)
+ do row_glob=1,sizes(1)
+ if (col_glob>=row_glob) then
+ ii_hpk = row_glob
+ jj_hpk = col_glob
+ ijp_glob = row_glob + col_glob*(col_glob-1)/2 ! Index for packed form
+ else ! Exchange the indices as (jj,ii) will be read.
+ ii_hpk = col_glob
+ jj_hpk = row_glob
+ ijp_glob = col_glob + row_glob*(row_glob-1)/2 ! Index for packed form
+ end if
+ my_el = my_el+1
+ my_offset = (ijp_glob-1)* bsize_old + (jj_hpk-1)*2*bsize_frm
+ if (xmpio_max_address(my_offset)) offset_err=1 ! Check for wraparounds.
+ block_displ (my_el+1)=my_offset
+ block_length(my_el+1)=1
+ block_type (my_el+1)=old_type
+ !write(std_out,*)" my_el, displ: ",my_el,block_displ(my_el+1)
+ end do
+ end do
+
+ block_length(my_nels+2)=1
+ block_displ (my_nels+2)=my_offset
+ block_type (my_nels+2)=MPI_UB
+
+ call xmpio_type_struct(my_nels+2,block_length,block_displ,block_type,new_type,mpierr)
+
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+
+ ABI_FREE(block_length)
+ ABI_FREE(block_displ)
+ ABI_FREE(block_type)
+
+end subroutine xmpio_create_coldistr_from_fpacked
+!!***
+#endif
+
+!------------------------------------------------------------------------------------
+
+!!****f* m_xmpi/xmpio_create_coldistr_from_fp3blocks
+!! NAME
+!! xmpio_create_coldistr_from_fp3blocks
+!!
+!! FUNCTION
+!! Returns an MPI datatype that can be used to MPI-IO (read|write) the columns of a
+!! matrix of the form M = (S1 F3)
+!! (F3^H S2)
+!! where S1 and S2 are square (symmetric|Hermitian) matrices whose upper triangle is stored on file
+!! while F3 is a generic matrix (not necessarily square) stored in full mode.
+!! The Fortran file contains the blocks in the following order.
+!! upper(S1)
+!! upper(S2)
+!! F3
+!! INPUTS
+!! sizes(2)=Number of elements of type old_type in each dimension of the full array M (array of positive integers)
+!! my_cols(2)=initial and final column to (read|write). Array of positive integers, Fortran convention.
+!! block_sizes(2,3)=The sizes of S1, S2, F.
+!! old_type=MPI datatype of the elements of the matrix.
+!!
+!! OUTPUT
+!! new_type=New MPI type that can be used to instanciate the MPI-IO view for the Fortran file.
+!! my_offpad=Offset to be added to the file pointer giving the position of the first Fortran record
+!! marker (lets call it "base"). Each node should (read|write) using my_offset = base + my_offpad.
+!! my_offpad is used so that one can safely change the way the fileview is generated (for example
+!! to make it more efficient) without having to change the client code.
+!! offset_err=Error code. A non-zero returned value signals that the global matrix is tool large
+!! for a single MPI-IO access (see notes below).
+!!
+!! NOTES
+!! 1) block_displ is given in bytes due to the presence of the marker.
+!! If the displacement of an element is too large, the routine returns
+!! offset_err=1 so that the caller knows that several MPI-IO reads are required to (read| write) the file.
+!!
+!! SOURCE
+
+#ifdef HAVE_MPI_IO
+
+subroutine xmpio_create_coldistr_from_fp3blocks(sizes,block_sizes,my_cols,old_type,new_type,my_offpad,offset_err)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: old_type
+ integer,intent(out) :: new_type,offset_err
+ integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
+!arrays
+ integer,intent(in) :: sizes(2),my_cols(2),block_sizes(2,3)
+
+!Local variables-------------------------------
+!scalars
+ integer :: my_ncol,bsize_old,my_col,which_block,uplo,swap
+ integer :: my_nels,my_el,row_glob,ii_hpk,jj_hpk,ii,jj
+ integer :: col_glob,bsize_frm,mpierr,row_shift,col_shift,n1,n2
+ integer(XMPI_OFFSET_KIND) :: my_offset,ijp,bsize_tot,max_displ,min_displ
+ integer(XMPI_ADDRESS_KIND) :: address
+!arrays
+ integer,allocatable :: block_length(:),block_type(:)
+ integer(XMPI_ADDRESS_KIND),allocatable :: block_displ(:)
+ integer(XMPI_OFFSET_KIND) :: bsize_mat(2)
+
+!************************************************************************
+
+ if (sizes(1) /= SUM(block_sizes(1,1:2)) .or. &
+ sizes(2) /= SUM(block_sizes(2,1:2)) ) then
+ write(std_out,*)" xmpio_create_coldistr_from_fp3blocks: Inconsistency between block_sizes ans sizes "
+ call xmpi_abort()
+ end if
+
+ if (block_sizes(1,1) /= block_sizes(2,1) .or.&
+ block_sizes(1,2) /= block_sizes(2,2) ) then
+ write(std_out,*)" xmpio_create_coldistr_from_fp3blocks: first two blocks must be square"
+ call xmpi_abort()
+ end if
+
+ if (block_sizes(2,3) /= block_sizes(2,2) .or.&
+ block_sizes(1,3) /= block_sizes(1,1) ) then
+ write(std_out,*)" xmpio_create_coldistr_from_fp3blocks: Full matrix must be square"
+ call xmpi_abort()
+ end if
+
+ write(std_out,*)" xmpio_create_coldistr_from_fp3blocks is still under testing"
+ !call xmpi_abort()
+
+ ! Byte size of the Fortran record marker.
+ bsize_frm = xmpio_bsize_frm
+
+ ! Byte size of old_type.
+ call MPI_TYPE_SIZE(old_type,bsize_old,mpierr)
+
+ ! my number of columns and total numer of elements to be read.
+ my_ncol = my_cols(2) - my_cols(1) + 1
+ my_nels = sizes(1)*my_ncol
+ !
+ ! block_displ(el+1) stores the displacement of the local element el taking into account the Fortran marker.
+ ABI_MALLOC(block_displ,(my_nels+2))
+ ABI_MALLOC(block_length,(my_nels+2))
+ ABI_MALLOC(block_type,(my_nels+2))
+ !
+ ! * the view assumes that the file pointer used to instanciate the MPI-IO view
+ ! points to the first element of the first column. In other words,the first Fortran record marker
+ ! is not taken into account in the calculation of the displacements.
+ my_offpad=xmpio_bsize_frm
+ !
+ ! Byte size of the first two blocks including the markers.
+ n1=block_sizes(1,1)
+ bsize_mat(1) = (n1*(n1+1)/2)*bsize_old + 2*n1*bsize_frm
+
+ n2=block_sizes(1,2)
+ bsize_mat(2) = (n2*(n2+1)/2)*bsize_old + 2*n2*bsize_frm
+
+ bsize_tot=SUM(bsize_mat) + PRODUCT(block_sizes(:,3))*bsize_old + block_sizes(2,3)*2*bsize_frm - bsize_frm
+ write(std_out,*)"bsize_mat",bsize_mat,"bsize_tot",bsize_tot
+ !
+ ! * Some matrix elements are read twice. This part has to be tested.
+ offset_err=0; my_el=0; max_displ=0; min_displ=HUGE(address)
+ do my_col=1,my_ncol
+ col_glob = (my_col-1) + my_cols(1)
+ do row_glob=1,sizes(1)
+ !
+ which_block=3
+ if (row_glob<=block_sizes(1,1).and.col_glob<=block_sizes(2,1)) which_block=1
+ if (row_glob >block_sizes(1,1).and.col_glob >block_sizes(2,1)) which_block=2
+
+ if ( ANY(which_block == (/1,2/)) ) then ! S1 or S2
+ !
+ row_shift=(which_block-1)*block_sizes(1,1)
+ col_shift=(which_block-1)*block_sizes(2,1)
+
+ ii_hpk = row_glob - row_shift
+ jj_hpk = col_glob - col_shift
+ if (jj_hpkblock_sizes(1,1)) uplo=2
+
+ if (uplo==1) then
+ row_shift=0
+ col_shift=block_sizes(2,1)
+ else
+ row_shift=block_sizes(1,1)
+ col_shift=0
+ end if
+ ii = row_glob - row_shift
+ jj = col_glob - col_shift
+
+ if (uplo==2) then ! Exchange the indices since the symmetric element will be read.
+ swap=jj
+ jj =ii
+ ii =swap
+ end if
+
+ my_offset = (ii-1)*bsize_old + (jj-1)*block_sizes(1,3)*bsize_old + (jj-1)*2*bsize_frm
+ my_offset = my_offset + SUM(bsize_mat)
+ !if (uplo==1) my_offset=my_offset + bsize_mat(1)
+ !my_offset=0
+ !if (ii==1.and.jj==1) write(std_out,*)" (1,1) offset = ",my_offset
+ !if (ii==block_sizes(1,3).and.jj==block_sizes(2,3)) write(std_out,*)" (n,n) offset =", my_offset
+ if (my_offset>=bsize_tot-1*bsize_old) then
+ write(std_out,*)"WARNING (my_offset>bsize_tot-bsize_old),",ii,jj,my_offset,bsize_tot
+ end if
+ end if
+
+ if (xmpio_max_address(my_offset)) offset_err=1 ! Check for wraparounds.
+ my_el = my_el+1
+ block_displ (my_el+1)=my_offset
+ block_length(my_el+1)=1
+ block_type (my_el+1)=old_type
+ max_displ = MAX(max_displ,my_offset)
+ min_displ = MIN(min_displ,my_offset)
+ !if (which_block==3) write(std_out,*)" my_el, which, displ: ",my_el,which_block,block_displ(my_el+1)
+ end do
+ end do
+
+ write(std_out,*)" MAX displ = ",max_displ," my_nels = ",my_nels
+ write(std_out,*)" MIN displ = ",MINVAL(block_displ(2:my_nels+1))
+
+ !block_displ (1)=max_displ ! Do not change this value.
+ !if (min_displ>0) block_displ (1)=min_displ ! Do not change this value.
+
+ block_displ (1)=min_displ
+ block_displ (1)=0
+ block_length(1)=0
+ block_type (1)=MPI_LB
+
+ block_length(my_nels+2)=0
+ !block_displ (my_nels+2)=bsize_tot
+ block_displ (my_nels+2)=max_displ
+ block_type (my_nels+2)=MPI_UB
+
+ call xmpio_type_struct(my_nels+2,block_length,block_displ,block_type,new_type,mpierr)
+ !call xmpio_type_struct(my_nels,block_length(2:),block_displ(2:),block_type(2:),new_type,mpierr)
+
+ !call MPI_TYPE_CREATE_INDEXED_BLOCK(my_nels, block_length(2:), block_displ(2:), old_type, new_type, mpierr)
+
+ call MPI_TYPE_COMMIT(new_type,mpierr)
+
+ ABI_FREE(block_length)
+ ABI_FREE(block_displ)
+ ABI_FREE(block_type)
+
+end subroutine xmpio_create_coldistr_from_fp3blocks
+!!***
+#endif
+
+!!****f* m_xmpi/xmpi_distrib_2d
+!! NAME
+!! xmpi_distrib_2d
+!!
+!! FUNCTION
+!! Try to optimally distribute nprocs in a 2d grid of shape (n1, n2) given a problem of dimension (n1, n2).
+!! Use order string to define priorities:
+!! "12" or "21" if both dimensions should be optimized (if not possibile the first one gets optimized)
+!! "1" or "2" to optimize only one dimension.
+!! Return: exit status in ierr.
+!!
+!! SOURCE
+
+subroutine xmpi_distrib_2d(nprocs, order, size1, size2, n1, n2, ierr)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: nprocs, size1, size2
+ character(len=*),intent(in) :: order
+ integer,intent(out) :: n1, n2, ierr
+
+!Local variables-------------------------------
+ integer :: ii
+
+!----------------------------------------------------------------------
+
+ ierr = 1; n1 = -1; n2 = -1
+
+ select case (order)
+ case ("12")
+ call balance_12()
+ if (ierr /= 0) call balance_1()
+ case ("21")
+ call balance_21()
+ if (ierr /= 0) call balance_2()
+ case ("1")
+ call balance_1()
+ case ("2")
+ call balance_2()
+ case default
+ ! Wrong order
+ ierr = -1
+ end select
+
+contains
+
+subroutine balance_12()
+ ! Try to find n1 x n2 = nprocs so that (size1, size2) are multiple of (n1, n2)
+ do ii=nprocs,1,-1
+ if (mod(size1, ii) == 0 .and. mod(nprocs, ii) == 0 .and. mod(size2, nprocs / ii) == 0) then
+ n1 = ii; n2 = nprocs / ii; ierr = 0; exit
+ end if
+ end do
+
+end subroutine balance_12
+
+subroutine balance_21()
+ ! Try to find n1 x n2 = nprocs so that (size1, size2) are multiple of (n1, n2)
+ do ii=nprocs,1,-1
+ if (mod(size2, ii) == 0 .and. mod(nprocs, ii) == 0 .and. mod(size1, nprocs / ii) == 0) then
+ n2 = ii; n1 = nprocs / ii; ierr = 0; exit
+ end if
+ end do
+end subroutine balance_21
+
+subroutine balance_1()
+ integer :: imod1
+ ! Try to find n1 x n2 = nprocs so that only size1 is multiple of n1. Allow for some load imbalance.
+ do ii=nprocs,1,-1
+ imod1 = mod(size1, ii)
+ if ((imod1 == 0 .or. imod1 >= nprocs / 2) .and. mod(nprocs, ii) == 0) then
+ n1 = ii; n2 = nprocs / ii; ierr = 0; exit
+ end if
+ end do
+
+ if (ierr /= 0 .and. nprocs <= size1) then
+ n1 = nprocs; n2 = 1; ierr = 0; return
+ end if
+end subroutine balance_1
+
+subroutine balance_2()
+ integer :: imod2
+ ! Try to find n1 x n2 = nprocs so that only size2 is multiple of n2. Allow for some load imbalance.
+ do ii=nprocs,1,-1
+ imod2 = mod(size2, ii)
+ if ((imod2 == 0 .or. imod2 >= nprocs / 2) .and. mod(nprocs, ii) == 0) then
+ n2 = ii; n1 = nprocs / ii; ierr = 0; exit
+ end if
+ end do
+
+ if (ierr /= 0 .and. nprocs <= size2) then
+ n2 = nprocs; n1 = 1; ierr = 0; return
+ end if
+end subroutine balance_2
+
+end subroutine xmpi_distrib_2d
+!!***
+
+type(xcomm_t) function xcomm_from_mpi_int(comm_int) result(new)
+ integer,intent(in) :: comm_int
+ integer :: new_comm, ierr
+ new%value = comm_int; new%me = 0; new%nproc = 1
+#ifdef HAVE_MPI
+ call MPI_Comm_dup(comm_int, new_comm, ierr)
+ new%value = new_comm
+ new%nproc = xmpi_comm_size(new_comm)
+ new%me = xmpi_comm_rank(new_comm)
+#endif
+end function xcomm_from_mpi_int
+
+! Skip iteration `iter` according to rank in xcomm.
+! [root]: Rank of the proc treating iteration `iter`
+
+logical function xcomm_skip(xcomm, iter, root)
+ class(xcomm_t),intent(in) :: xcomm
+ integer,intent(in) :: iter
+ integer,optional,intent(out) :: root
+
+ integer :: root__
+
+ root__ = mod(iter, xcomm%nproc)
+ xcomm_skip = root__ /= xcomm%me
+ if (present(root)) root = root__
+end function xcomm_skip
+
+subroutine xcomm_set_to_self(xcomm)
+ class(xcomm_t),intent(inout) :: xcomm
+ call xcomm%free()
+ xcomm%value = xmpi_comm_self; xcomm%me = 0; xcomm%nproc = 1
+end subroutine xcomm_set_to_self
+
+subroutine xcomm_set_to_null(xcomm)
+ class(xcomm_t),intent(inout) :: xcomm
+ call xcomm%free()
+ xcomm%value = xmpi_comm_null
+end subroutine xcomm_set_to_null
+
+subroutine xcomm_free(xcomm)
+ class(xcomm_t),intent(inout) :: xcomm
+ call xmpi_comm_free(xcomm%value)
+ xcomm%me = -1; xcomm%nproc = 0
+end subroutine xcomm_free
+
+! Build sub-communicators in a Cartesian grid.
+subroutine xcomm_from_cart_sub(xcomm, comm_cart, keepdim)
+ class(xcomm_t),intent(out) :: xcomm
+ integer,intent(in) :: comm_cart
+ logical,intent(in) :: keepdim(:)
+ integer :: ierr
+
+#ifdef HAVE_MPI
+ call MPI_CART_SUB(comm_cart, keepdim, xcomm%value, ierr)
+#endif
+ xcomm%me = xmpi_comm_rank(xcomm%value)
+ xcomm%nproc = xmpi_comm_size(xcomm%value)
+
+end subroutine xcomm_from_cart_sub
+
+! Prepare a typical gatherv operation in which each MPI rank sends
+! `nitems_per_rank(rank+1)` items and each item has length `nelem_per_item`.
+! Final results are packed according to the rank of the processor.
+
+subroutine xcomm_prep_gatherv(xcomm, nelem_per_item, nitems_per_rank, sendcount, recvcounts, displs)
+ class(xcomm_t),intent(in) :: xcomm
+ integer,intent(in) :: nelem_per_item, nitems_per_rank(xcomm%nproc)
+ integer,intent(out) :: sendcount
+ integer, allocatable, intent(out) :: recvcounts(:), displs(:)
+
+!Local variables-------------------
+ integer :: ii
+!----------------------------------------------------------------------
+
+ ABI_MALLOC(recvcounts, (xcomm%nproc))
+ ABI_MALLOC(displs, (xcomm%nproc))
+ sendcount = nelem_per_item * nitems_per_rank(xcomm%me + 1)
+
+ recvcounts(:) = nelem_per_item * nitems_per_rank
+ displs(1) = 0
+ do ii=2,xcomm%nproc
+ displs(ii) = nelem_per_item * sum(nitems_per_rank(1:ii-1))
+ end do
+end subroutine xcomm_prep_gatherv
+!!***
+
+! Debugging tool to print the hostname of the procs in the communicator
+subroutine xcomm_print_names(xcomm)
+ class(xcomm_t),intent(in) :: xcomm
+
+!Local variables-------------------
+ integer :: ip, ierr
+ character(20) :: my_name, names(xcomm%nproc)
+!----------------------------------------------------------------------
+
+ call xmpi_name(my_name, ierr)
+ call xmpi_allgather(my_name, names, xcomm%value, ierr)
+
+ if (xcomm%me == 0) then
+ write(std_out, "(a5,2x,a20)")"rank", "hostname"
+ do ip=0,xcomm%nproc-1
+ write(std_out, "(i5,2x,a20)")ip, trim(names(ip+1))
+ end do
+ end if
+
+end subroutine xcomm_print_names
+!!***
+
+! Return True if all procs in xcomm can create a shared memory region. Cache the result.
+logical function xcomm_can_use_shmem(xcomm) result(ok)
+ class(xcomm_t),intent(inout) :: xcomm
+
+!Local variables-------------------
+ integer :: ierr, new_comm
+!----------------------------------------------------------------------
+
+ ok = .False.
+#ifdef HAVE_MPI
+ if (xcomm%can_use_shmem__ == - 1) then
+ ! First call --> cache result
+ call MPI_COMM_SPLIT_TYPE(xcomm%value, MPI_COMM_TYPE_SHARED, xcomm%me, MPI_INFO_NULL, new_comm, ierr)
+ xcomm%can_use_shmem__ = merge(1, 0, xmpi_comm_size(new_comm) == xcomm%nproc)
+ call xmpi_comm_free(new_comm)
+ end if
+ ok = xcomm%can_use_shmem__ == 1
+#endif
+
+end function xcomm_can_use_shmem
+!!***
+
+subroutine xcomm_allocate_shared_master(xcomm, count, kind, info, baseptr, win)
+
+ class(xcomm_t),intent(inout) :: xcomm
+ integer(kind=XMPI_ADDRESS_KIND), intent(in) :: count
+ integer,intent(in) :: kind, info
+ type(c_ptr),intent(out) :: baseptr
+ !INTEGER(KIND=XMPI_ADDRESS_KIND) :: baseptr
+ integer,intent(out) :: win
+
+!Local variables-------------------
+ integer :: disp_unit
+#ifdef HAVE_MPI
+#if 0
+ integer :: ierr
+ integer(kind=XMPI_ADDRESS_KIND) :: my_size
+#endif
+#endif
+!----------------------------------------------------------------------
+
+ if (.not. xcomm%can_use_shmem()) call xmpi_abort(msg="MPI communicator does not support shared memory allocation!")
+
+ select case (kind)
+ case (sp)
+ disp_unit = xmpi_bsize_sp
+ case (dp)
+ disp_unit = xmpi_bsize_dp
+ case default
+ call xmpi_abort(msg="MPI communicator does not support shared memory allocation!")
+ end select
+
+ ! FIXME This is problematic as the API with type(c_ptr) requires mpi_f08
+ ! else the gcc with mpicc complains with
+ ! Error: Type mismatch in argument 'baseptr' at (1); passed TYPE(c_ptr) to INTEGER(8)
+ ! See https://github.com/pmodels/mpich/issues/2659
+
+#ifdef HAVE_MPI
+#if 0
+ my_size = 0; if (xcomm%me == 0) my_size = count * disp_unit
+ call MPI_WIN_ALLOCATE_SHARED(my_size, disp_unit, info, xcomm%value, baseptr, win, ierr)
+ !INTEGER(KIND=MPI_ADDRESS_KIND) SIZE, BASEPTR
+ !INTEGER DISP_UNIT, INFO, COMM, WIN, ierr)
+
+ if (xcomm%me /= 0) call MPI_WIN_SHARED_QUERY(win, 0, my_size, disp_unit, baseptr, ierr)
+ if (ierr /= MPI_SUCCESS) call xmpi_abort(msg="allocated_shared returned ierr /= 0")
+ !MPI_WIN_SHARED_QUERY(WIN, RANK, SIZE, DISP_UNIT, BASEPTR, IERROR)
+ ! INTEGER WIN, RANK, DISP_UNIT, IERROR
+ ! INTEGER(KIND=MPI_ADDRESS_KIND) SIZE, BASEPTR
+
+ ! No local operations prior to this epoch, so give an assertion
+ call MPI_Win_fence(MPI_MODE_NOPRECEDE, win, ierr)
+#else
+ ABI_UNUSED(count)
+ ABI_UNUSED(info)
+#endif
+#endif
+
+end subroutine xcomm_allocate_shared_master
+!!***
+
+!!****f* m_xmpi/pool2d_from_dims
+!! NAME
+!! pool2d_from_dims
+!!
+!! FUNCTION
+!! Build pool of MPI procs to distribute (n1 x n2) tasks.
+!!
+!! INPUTS
+!! n1, n2: dimensions of the problem
+!! input_comm: Initial MPI communicator
+!! [rectangular]: If True, change the number of procs in each pool so that it's possible to
+!! create a rectangular grid. Useful for Scalapack algorithms in which 1d grid are not efficient.
+!! Default: False.
+!!
+!! SOURCE
+
+subroutine pool2d_from_dims(pool, n1, n2, input_comm, rectangular)
+
+!Arguments-------------------------
+ class(xmpi_pool2d_t),intent(out) :: pool
+ integer,intent(in) :: n1, n2, input_comm
+ logical,optional,intent(in) :: rectangular
+
+!Local variables-------------------
+ integer :: itask, ntasks, my_rank, nprocs, color, mpierr, jj, i1, i2, my_ntasks, new_comm
+ integer :: grid_dims(2) ! , check(n1, n2)
+ integer,allocatable :: my_inds(:)
+!----------------------------------------------------------------------
+
+ my_rank = xmpi_comm_rank(input_comm); nprocs = xmpi_comm_size(input_comm)
+
+ pool%n1 = n1; pool%n2 = n2
+ ABI_MALLOC(pool%treats, (n1, n2))
+ pool%treats = .False.
+
+ ntasks = n1 * n2; color = ntasks + 1
+
+ if (nprocs <= ntasks) then
+ color = my_rank
+ call xmpi_split_block(ntasks, input_comm, my_ntasks, my_inds)
+ do jj=1,size(my_inds)
+ itask = my_inds(jj) ! = i1 + (i2 - 1) * n1
+ i1 = mod(itask - 1, n1) + 1
+ i2 = 1 + (itask - i1) / n1
+ pool%treats(i1, i2) = .True.
+ end do
+ ABI_FREE(my_inds)
+ else
+ i2_loop: do i2=1,n2
+ do i1=1,n1
+ itask = i1 + (i2 - 1) * n1
+ if (xmpi_distrib_with_replicas(itask, ntasks, my_rank, nprocs)) then
+ pool%treats(i1, i2) = .True.; color = itask; exit i2_loop
+ end if
+ end do
+ end do i2_loop
+ end if
+
+!DEBUG
+! where (pool%treats)
+! check = 1
+! else where
+! check = 0
+! end where
+! call xmpi_sum(check, input_comm, mpierr)
+! if (any(check == 0)) then
+! write(std_out, *) check
+! call xmpi_abort(msg="Wrong distribution in pool2d_from_dims")
+! end if
+!END_DEBUG
+
+ call xmpi_comm_split(input_comm, color, my_rank, new_comm, mpierr)
+ pool%comm = xcomm_from_mpi_int(new_comm)
+ call xmpi_comm_free(new_comm)
+
+ if (present(rectangular)) then
+ if (rectangular) then
+ if (pool%comm%nproc == 1 .or. is_rectangular_grid(pool%comm%nproc, grid_dims)) return
+
+ do jj=pool%comm%nproc-1,1,-1
+ if (is_rectangular_grid(jj, grid_dims)) then
+ color = merge(1, 0, pool%comm%me < jj)
+ call xmpi_comm_split(pool%comm%value, color, pool%comm%me, new_comm, mpierr)
+ call pool%comm%free()
+ pool%comm = xcomm_from_mpi_int(new_comm)
+ call xmpi_comm_free(new_comm)
+ if (color == 0) pool%treats = .False.
+ exit
+ end if
+ end do
+ end if
+ end if
+
+contains
+
+logical function is_rectangular_grid(nproc, grid_dims) result (ans)
+ integer,intent(in) :: nproc
+ integer,intent(out) :: grid_dims(2)
+!----------------------------------------------------------------------
+ integer :: i
+ ! Search for a rectangular grid of processors
+ i = INT(SQRT(float(nproc)))
+ do while (MOD(nproc,i) /= 0)
+ i = i - 1
+ end do
+ i = max(i, 1)
+
+ grid_dims(1) = i
+ grid_dims(2) = int(nproc / i)
+ ans = grid_dims(1) > 1 .and. grid_dims(2) > 1
+
+end function is_rectangular_grid
+
+end subroutine pool2d_from_dims
+!!***
+
+!!****f* m_xmpi/pool2d_free
+!! NAME
+!! pool2d_free
+!!
+!! FUNCTION
+!! Free memory
+
+subroutine pool2d_free(pool)
+!Arguments-------------------------
+ class(xmpi_pool2d_t),intent(inout) :: pool
+!----------------------------------------------------------------------
+
+ ABI_SFREE(pool%treats)
+ call pool%comm%free()
+
+end subroutine pool2d_free
+!!***
+
+subroutine xmpi_win_fence(win, assert)
+ integer,intent(in) :: win
+ integer,optional,intent(in) :: assert
+ integer :: assert__, ierr
+ assert__ = 0; if (present(assert)) assert__ = assert
+#ifdef HAVE_MPI
+ call MPI_WIN_FENCE(assert__, win, ierr)
+ if (ierr /= MPI_SUCCESS) call xmpi_abort(msg="MPI_WIN_FENCE return ierr /= 0")
+#endif
+end subroutine xmpi_win_fence
+
+subroutine xmpi_win_free(win)
+ integer,intent(inout) :: win
+#ifdef HAVE_MPI
+ integer :: ierr
+ call MPI_WIN_FREE(win, ierr)
+#endif
+end subroutine xmpi_win_free
+!!***
+
+! Return the number of nodes `num_nodes` in the `in_comm` communicator.
+
+subroutine xmpi_get_nodes_in_comm(in_comm, num_nodes, nprocs_per_node)
+
+!Arguments-------------------------
+ integer,intent(in) :: in_comm
+ integer,intent(out) :: num_nodes
+ integer,optional,allocatable,intent(out) :: nprocs_per_node(:)
+
+!Local variables-------------------
+ integer :: ierr, in_rank, node_comm, node_rank !, masters_comm, color, np
+!----------------------------------------------------------------------
+
+#ifndef HAVE_MPI
+ num_nodes = 1
+ if (present(nprocs_per_node)) then
+ ABI_MALLOC(nprocs_per_node, (num_nodes))
+ nprocs_per_node = 1
+ end if
+
+#else
+ in_rank = xmpi_comm_rank(in_comm)
+ call MPI_COMM_SPLIT_TYPE(in_comm, MPI_COMM_TYPE_SHARED, in_rank, MPI_INFO_NULL, node_comm, ierr)
+ node_rank = xmpi_comm_rank(node_comm)
+ num_nodes = merge(1, 0, node_rank == 0)
+ call xmpi_sum(num_nodes, in_comm, ierr)
+
+ if (present(nprocs_per_node)) then
+ !ABI_MALLOC(nprocs_per_node, (num_nodes))
+ !color = merge(0, 1, node_rank == 0)
+ !call xmpi_comm_split(in_comm, color, in_rank, masters_comm, ierr)
+ !if (color == 0) then
+ ! np = xmpi_comm_size(node_comm)
+ ! call MPI_GATHER(np, 1, MPI_INT, nprocs_per_node, 1, MPI_INT, 0, masters_comm, ierr)
+ !end if
+ !call xmpi_comm_free(masters_comm)
+ end if
+
+ call xmpi_comm_free(node_comm)
+
+#endif
+
+end subroutine xmpi_get_nodes_in_comm
+!!***
+
+end module m_xmpi
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/m_xmpi.o b/GX-PAW/common/src/12_hide_mpi/m_xmpi.o
new file mode 100644
index 00000000..44832f70
Binary files /dev/null and b/GX-PAW/common/src/12_hide_mpi/m_xmpi.o differ
diff --git a/GX-PAW/common/src/12_hide_mpi/m_xomp.F90 b/GX-PAW/common/src/12_hide_mpi/m_xomp.F90
new file mode 100644
index 00000000..7e26ed40
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/m_xomp.F90
@@ -0,0 +1,576 @@
+!!****m* ABINIT/m_xomp
+!! NAME
+!! m_xomp
+!!
+!! FUNCTION
+!! Thin wrappers and tools for OpenMP parallelization.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+MODULE m_xomp
+
+ use defs_basis, only : std_out
+ use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int, c_null_ptr
+#ifdef HAVE_OPENMP
+ use omp_lib
+#endif
+
+ implicit none
+
+ private
+
+ public :: xomp_show_info
+ public :: xomp_get_max_threads
+ public :: xomp_get_thread_num
+ public :: xomp_get_num_threads
+ public :: xomp_set_num_threads
+ public :: xomp_in_parallel
+ public :: xomp_get_num_cores_node
+ ! OpenMP 5.0 GPU device routines
+ public :: xomp_set_default_device
+ public :: xomp_get_default_device
+ public :: xomp_get_initial_device
+ public :: xomp_get_num_devices
+ public :: xomp_is_initial_device
+ public :: xomp_target_is_present
+ ! OpenMP 5.1 GPU device routine
+ public :: xomp_get_mapped_ptr
+
+
+!----------------------------------------------------------------------
+
+CONTAINS !=========================================================================================================================
+
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_show_info
+!! NAME
+!! xomp_show_info
+!!
+!! FUNCTION
+!! Printout of the most important OMP environment variables.
+!!
+!! INPUTS
+!! unit=unit number for writing. The named constant dev_null defined in defs_basis can be used to avoid any printing.
+!!
+!! OUTPUT
+!! (only writing)
+!!
+!! SOURCE
+
+subroutine xomp_show_info(unit)
+
+!Arguments-------------------------
+ integer,optional,intent(in) :: unit
+
+!Local variables-------------------
+ integer :: my_unt
+
+! *************************************************************************
+
+ my_unt = std_out; if (PRESENT(unit)) my_unt=unit
+
+#ifdef HAVE_OPENMP
+ write(my_unt,'(/,a)') " ==== OpenMP parallelism is ON ===="
+ write(my_unt,'(a,i0)') "- Max_threads: ",xomp_get_max_threads()
+ write(my_unt,'(a,i0)') "- Num_threads: ",xomp_get_num_threads(open_parallel=.True.)
+ write(my_unt,'(a,i0)') "- Num_procs: ",omp_get_num_procs()
+ write(my_unt,'(a,l1)') "- Dynamic: ",omp_get_dynamic()
+ !write(my_unt,'(a,l1)') "- Nested: ",omp_get_nested()
+ !write(my_unt,'(a,i0)')"- Thread_limit: ",omp_get_thread_limit()
+ !write(my_unt,'(a,i0)')"- Max_active_levels: ",omp_get_max_active_levels()
+#else
+ write(my_unt,'(/,a)') " ==== OpenMP parallelism is OFF ===="
+#endif
+
+ write(my_unt,*)""
+
+end subroutine xomp_show_info
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_max_threads
+!! NAME
+!! xomp_get_max_threads
+!!
+!! FUNCTION
+!! Wrapper for omp_get_max_threads.
+!!
+!! OUTPUT
+!! Return the maximum number of threads used for the current parallel region that
+!! does not use the clause num_threads. Return 1 if OMP is disabled.
+!!
+!! SOURCE
+
+function xomp_get_max_threads()
+
+!Arguments ------------------------------------
+ integer :: xomp_get_max_threads
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP
+ xomp_get_max_threads = omp_get_max_threads()
+#else
+ xomp_get_max_threads = 1
+#endif
+
+end function xomp_get_max_threads
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_thread_num
+!! NAME
+!! xomp_get_thread_num
+!!
+!! FUNCTION
+!! Wrapper for omp_get_thread_num
+!! Returns a unique thread identification number within the current team.
+!! In a sequential parts of the program, omp_get_thread_num always returns 0.
+!! In parallel regions the return value varies from 0 to omp_get_num_threads-1 inclusive.
+!! The return value of the master thread of a team is always 0.
+!!
+!! SOURCE
+
+function xomp_get_thread_num()
+
+!Arguments ------------------------------------
+!scalars
+ integer :: xomp_get_thread_num
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP
+ xomp_get_thread_num = omp_get_thread_num()
+#else
+ xomp_get_thread_num = 0
+#endif
+
+end function xomp_get_thread_num
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_num_threads
+!! NAME
+!! xomp_get_num_threads
+!!
+!! FUNCTION
+!! Wrapper for omp_get_num_threads.
+!! The omp_get_num_threads function returns the number of threads in the team currently executing
+!! the parallel region from which it is called. The function binds to the closest enclosing PARALLEL directive.
+!! The omp_set_num_threads subroutine and the OMP_NUM_THREADS environment variable control the number of threads in a team.
+!! If you do not explicitly set the number of threads, the run-time environment will use the number of online processors
+!! on the machine by default. If you call omp_get_num_threads from a serial portion of your program or from a
+!! nested parallel region that is serialized, the function returns 1.
+!!
+!! INPUTS
+!! [open_parallel]= If .TRUE., a temporary OMP parallel region will be open and omp_get_num_threads
+!! will be called inside this region.
+!! Default to .FALSE. so that we have consistent with the OMP API.
+!!
+!! SOURCE
+
+function xomp_get_num_threads(open_parallel) result(nthreads)
+
+!Arguments ------------------------------------
+!scalars
+ logical,optional,intent(in) :: open_parallel
+ integer :: nthreads
+
+!Local variables-------------------------------
+!scalars
+ logical :: do_open
+
+! *************************************************************************
+
+ do_open = .FALSE.; if (PRESENT(open_parallel)) do_open = open_parallel
+
+#ifdef HAVE_OPENMP
+ if (do_open .and. .not.xomp_in_parallel()) then
+!$OMP PARALLEL
+!$OMP SINGLE
+ nthreads = omp_get_num_threads()
+!$OMP END SINGLE
+!$OMP END PARALLEL
+ else
+ nthreads = omp_get_num_threads()
+ end if
+
+#else
+ nthreads = 1
+#endif
+
+end function xomp_get_num_threads
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_set_num_threads
+!! NAME
+!! xomp_set_num_threads
+!!
+!! FUNCTION
+!! Specifies the number of threads used by default in subsequent parallel sections,
+!! if those do not specify a num_threads clause. The argument of xomp_set_num_threads shall be a positive integer.
+!!
+!! INPUTS
+!! nthreads = number of threads
+!!
+!! SIDE EFFECTS
+!! See description.
+!!
+!! SOURCE
+
+subroutine xomp_set_num_threads(nthreads)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nthreads
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP
+ call omp_set_num_threads(nthreads)
+#else
+ if (.FALSE.) write(std_out,*) nthreads
+#endif
+
+end subroutine xomp_set_num_threads
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_in_parallel
+!! NAME
+!! xomp_in_parallel
+!!
+!! FUNCTION
+!! This function returns true if are currently running in parallel, false otherwise
+!!
+!! SOURCE
+
+function xomp_in_parallel() result(ans)
+
+!Arguments-------------------------
+ logical :: ans
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP
+ ans = omp_in_parallel()
+#else
+ ans = .FALSE.
+#endif
+
+end function xomp_in_parallel
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_num_cores_node
+!! NAME
+!! xomp_get_num_cores_node
+!!
+!! FUNCTION
+!! Wrapper for omp_get_num_procs
+!!
+!! OUTPUT
+!! Return the maximum number of cores in one shared memory system
+!! Return 0 if OMP is disabled.
+!!
+!! SOURCE
+
+function xomp_get_num_cores_node()
+
+!Arguments ------------------------------------
+!scalars
+ integer :: xomp_get_num_cores_node
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP
+ xomp_get_num_cores_node=omp_get_thread_limit()
+ !We test if thread_limit has been set (if not it should be a large value)
+ ! In 2012, 4096 cores is the biggest known shared memory system
+ if(xomp_get_num_cores_node > 4096) then
+ !so if not set, we used system 'num procs' values which should be the default case
+ xomp_get_num_cores_node=omp_get_num_procs()
+ end if
+#else
+ xomp_get_num_cores_node=0
+#endif
+
+end function xomp_get_num_cores_node
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_set_default_device
+!! NAME
+!! xomp_set_default_device
+!!
+!! FUNCTION
+!! Wrapper for omp_set_default_device
+!!
+!! INPUTS
+!! device_id = id of offload device (ie: GPU, accelerator) to be used
+!!
+!! SOURCE
+
+subroutine xomp_set_default_device(device_id)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: device_id
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ call omp_set_default_device(device_id)
+#else
+ ABI_UNUSED(device_id)
+#endif
+
+end subroutine xomp_set_default_device
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_default_device
+!! NAME
+!! xomp_get_default_device
+!!
+!! FUNCTION
+!! Wrapper for omp_get_default_device
+!!
+!! OUTPUT
+!! (integer) id of default offload device (ie: GPU, accelerator) on which
+!! "target" regions will be run on.
+!! -1 if no offload device is used.
+!!
+!! SOURCE
+
+function xomp_get_default_device()
+
+!Arguments ------------------------------------
+!scalars
+ integer :: xomp_get_default_device
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ xomp_get_default_device = omp_get_default_device()
+#else
+ xomp_get_default_device = -1
+#endif
+
+end function xomp_get_default_device
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_initial_device
+!! NAME
+!! xomp_get_initial_device
+!!
+!! FUNCTION
+!! Wrapper for omp_get_initial_device
+!!
+!! OUTPUT
+!! (integer) id of OpenMP device which targets host rather than
+!! acclerator devices.
+!!
+!! SOURCE
+
+function xomp_get_initial_device()
+
+!Arguments ------------------------------------
+!scalars
+ integer :: xomp_get_initial_device
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ xomp_get_initial_device = omp_get_initial_device()
+#else
+ xomp_get_initial_device = -1
+#endif
+
+end function xomp_get_initial_device
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_num_devices
+!! NAME
+!! xomp_get_num_devices
+!!
+!! FUNCTION
+!! Wrapper for omp_get_num_devices
+!!
+!! OUTPUT
+!! (integer) id of OpenMP device which targets host rather than
+!! acclerator devices.
+!!
+!! SOURCE
+
+function xomp_get_num_devices()
+
+!Arguments ------------------------------------
+!scalars
+ integer :: xomp_get_num_devices
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ xomp_get_num_devices = omp_get_num_devices()
+#else
+ xomp_get_num_devices = 0
+#endif
+
+end function xomp_get_num_devices
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_is_initial_device
+!! NAME
+!! xomp_is_initial_device
+!!
+!! FUNCTION
+!! Wrapper for omp_is_initial_device
+!!
+!! OUTPUT
+!! (integer) id of OpenMP device which targets host rather than
+!! acclerator devices.
+!!
+!! SOURCE
+
+function xomp_is_initial_device()
+
+!Arguments ------------------------------------
+!scalars
+ logical :: xomp_is_initial_device
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ xomp_is_initial_device = omp_is_initial_device()
+#else
+ xomp_is_initial_device = .true.
+#endif
+
+end function xomp_is_initial_device
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_target_is_present
+!! NAME
+!! xomp_target_is_present
+!!
+!! FUNCTION
+!! Wrapper for omp_target_is_present
+!!
+!! INPUTS
+!! ptr = C pointer, likely matching a Fortran array wrapped in c_loc
+!!
+!! OUTPUT
+!! (logical) .true. if given ptr has an associate pointer in device
+!! memory, .false. otherwise
+!!
+!! SOURCE
+
+function xomp_target_is_present(ptr)
+
+!Arguments ------------------------------------
+ type(c_ptr),intent(in) :: ptr
+
+ logical :: xomp_target_is_present
+ integer(kind=c_int) :: device_id, rc
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ device_id = xomp_get_default_device()
+ rc = omp_target_is_present(ptr, device_id)
+ xomp_target_is_present = .true.
+ if(rc==0) xomp_target_is_present = .false.
+#else
+ xomp_target_is_present = .false.
+ ABI_UNUSED(device_id)
+ ABI_UNUSED(rc)
+ ABI_UNUSED_A(ptr)
+#endif
+
+end function xomp_target_is_present
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xomp/xomp_get_mapped_ptr
+!! NAME
+!! xomp_get_mapped_ptr
+!!
+!! FUNCTION
+!! Wrapper for omp_get_mapped_ptr
+!!
+!! INPUTS
+!! ptr = C pointer, likely matching a Fortran array wrapped in c_loc
+!!
+!! OUTPUT
+!! (c_ptr) Pointer to device memory matching given input ptr
+!!
+!! SOURCE
+
+function xomp_get_mapped_ptr(ptr) result(gpu_ptr)
+
+!Arguments ------------------------------------
+ type(c_ptr),intent(in) :: ptr
+ integer :: device_id, rc
+ type(c_ptr) :: gpu_ptr
+
+! *************************************************************************
+
+#ifdef HAVE_OPENMP_OFFLOAD
+ device_id = xomp_get_default_device()
+ if(xomp_target_is_present(ptr)) then
+#ifdef HAVE_OPENMP_GET_MAPPED_PTR
+ gpu_ptr = omp_get_mapped_ptr(ptr, device_id)
+#else
+ gpu_ptr = c_null_ptr
+#endif
+ else
+ gpu_ptr = c_null_ptr
+ end if
+#else
+ gpu_ptr = c_null_ptr
+ ABI_UNUSED(device_id)
+ ABI_UNUSED(rc)
+ ABI_UNUSED_A(ptr)
+#endif
+
+end function xomp_get_mapped_ptr
+!!***
+
+!----------------------------------------------------------------------
+
+END MODULE m_xomp
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/m_xomp.o b/GX-PAW/common/src/12_hide_mpi/m_xomp.o
new file mode 100644
index 00000000..d42f0d1e
Binary files /dev/null and b/GX-PAW/common/src/12_hide_mpi/m_xomp.o differ
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_allgather.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_allgather.finc
new file mode 100644
index 00000000..46d0351b
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_allgather.finc
@@ -0,0 +1,468 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_allgather
+!! NAME
+!! xmpi_allgather
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_allgather is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_allgather_int
+!! NAME
+!! xmpi_allgather_int
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_int(xval,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, intent(in) :: comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER([xval],1,MPI_INTEGER,recvbuf,1,MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(1)=xval
+ end if
+#else
+ recvbuf(1)=xval
+#endif
+end subroutine xmpi_allgather_int
+!!***
+
+
+!!****f* ABINIT/xmpi_allgather_char
+!! NAME
+!! xmpi_allgather_char
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: one-dimensional character(20) arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! charval= buffer array
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_char(charval,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+ character(len=20),intent(inout) :: charval
+ character(len=20), DEV_CONTARRD intent(inout) :: recvbuf(:)
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ii
+ character :: arr_charval(20)
+#endif
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ do ii=1,20;arr_charval(ii)=charval(ii:ii);enddo
+ call MPI_ALLGATHER(arr_charval,20,MPI_CHARACTER,recvbuf,20,MPI_CHARACTER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=charval
+ end if
+#else
+ recvbuf=charval
+#endif
+
+end subroutine xmpi_allgather_char
+!!***
+
+!!****f* ABINIT/xmpi_allgather_int1d_1b
+!! NAME
+!! xmpi_allgather_int1d_1b
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_int1d_1b(xval, nelem, recvbuf, comm, ier)
+
+!Arguments-------------------------
+ integer(c_int8_t), DEV_CONTARRD intent(in) :: xval(:)
+ integer(c_int8_t), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_INTEGER1,recvbuf,nelem,MPI_INTEGER1,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(1:nelem)=xval(1:nelem)
+ end if
+#else
+ recvbuf(1:nelem)=xval(1:nelem)
+#endif
+end subroutine xmpi_allgather_int1d_1b
+!!***
+
+!!****f* ABINIT/xmpi_allgather_int1d
+!! NAME
+!! xmpi_allgather_int1d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_int1d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_INTEGER,recvbuf,nelem,MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(1:nelem)=xval(1:nelem)
+ end if
+#else
+ recvbuf(1:nelem)=xval(1:nelem)
+#endif
+end subroutine xmpi_allgather_int1d
+!!***
+
+!!****f* ABINIT/xmpi_allgather_int2d
+!! NAME
+!! xmpi_allgather_int2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_int2d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_INTEGER,recvbuf,nelem,MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(:,:)=xval(:,:)
+ end if
+#else
+ recvbuf(:,:)=xval(:,:)
+#endif
+end subroutine xmpi_allgather_int2d
+!!***
+
+
+!!****f* ABINIT/xmpi_allgather_dp1d
+!! NAME
+!! xmpi_allgather_dp1d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_dp1d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,nelem,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(1:nelem)=xval(1:nelem)
+ end if
+#else
+ recvbuf(1:nelem)=xval(1:nelem)
+#endif
+end subroutine xmpi_allgather_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_allgather_dp2d
+!! NAME
+!! xmpi_allgather_dp2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_dp2d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,nelem,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(:,:)=xval(:,:)
+ end if
+#else
+ recvbuf(:,:)=xval(:,:)
+#endif
+end subroutine xmpi_allgather_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_allgather_dp3d
+!! NAME
+!! xmpi_allgather_dp3d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_dp3d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,nelem,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(:,:,:)=xval(:,:,:)
+ end if
+#else
+ recvbuf(:,:,:)=xval(:,:,:)
+#endif
+end subroutine xmpi_allgather_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_allgather_dp4d
+!! NAME
+!! xmpi_allgather_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_allgather_dp4d(xval,nelem,recvbuf,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer ,intent(in) :: nelem,comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLGATHER(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,nelem,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf(:,:,:,:)=xval(:,:,:,:)
+ end if
+#else
+ recvbuf(:,:,:,:)=xval(:,:,:,:)
+#endif
+end subroutine xmpi_allgather_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_allgatherv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_allgatherv.finc
new file mode 100644
index 00000000..e42bc113
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_allgatherv.finc
@@ -0,0 +1,955 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_allgatherv_int2d
+!! NAME
+!! xmpi_allgatherv_int2d
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_allgatherv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_int2d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_INTEGER,recvbuf,recvcounts,displs,&
+& MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ cc=size(xval,2);if (size(recvcounts)>0) cc=recvcounts(1)/sz1
+ recvbuf(:,dd+1:dd+cc)=xval(:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_int
+!! NAME
+!! xmpi_allgatherv_int
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_int(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_INTEGER,recvbuf,recvcounts,displs,&
+& MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ cc=size(xval);if (size(recvcounts)>0) cc=recvcounts(1)
+ recvbuf(dd+1:dd+cc)=xval(1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_int
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_int1_dp1
+!! NAME
+!! xmpi_allgatherv_int1_dp1
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target : one-dimensional integer arrray and one-dimensionnal dp array
+!!
+!! INPUTS
+!! buf_int=buffer integer array that is going to be gathered
+!! buf_int_size=size of buf_int array
+!! buf_dp=buffer dp array that is going to be gathered
+!! buf_dp_size=size of buf_dp array
+!! comm=MPI communicator
+!!
+!! OUTPUT
+!! buf_int_all=buffer integer array gathered
+!! buf_int_size_all=size of buffer integer array gathered
+!! buf_dp_all=buffer dp array gathered
+!! buf_dp_size_all=size of buffer dp array gathered
+!! ier=exit status, a non-zero value meaning there is an error
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_int1_dp1(buf_int,buf_int_size,buf_dp,buf_dp_size,&
+& buf_int_all,buf_int_size_all,buf_dp_all,buf_dp_size_all,comm,ier)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: buf_dp_size,buf_int_size,comm
+ integer,intent(out) :: buf_dp_size_all,buf_int_size_all,ier
+!arrays
+ integer, intent(in) :: buf_int(:)
+ integer,allocatable,target,intent(out) :: buf_int_all(:)
+ real(dp),intent(in) :: buf_dp(:)
+ real(dp),allocatable,target,intent(out) :: buf_dp_all(:)
+
+!Local variables--------------
+!scalars
+ integer :: buf_pack_size,ierr,ii,iproc,istart_dp,istart_int,lg,lg1,lg2,lg_dp,lg_int
+ integer :: nproc,position,totalbufcount
+ logical,parameter :: use_pack=.false.
+!arrays
+ integer :: buf_size(2),pos(3)
+ integer ,allocatable :: buf_int_size1(:),buf_dp_size1(:)
+ integer,allocatable :: count_dp(:),count_int(:),count_size(:),counts(:)
+ integer,allocatable :: disp_dp(:),disp_int(:),displ(:),displ_dp(:),displ_int(:)
+ integer,allocatable :: pos_all(:)
+ integer,pointer :: outbuf_int(:)
+ real(dp),pointer:: outbuf_dp(:)
+ character,allocatable :: buf_pack(:),buf_pack_tot(:)
+
+! *************************************************************************
+
+ ier=0
+
+#if defined HAVE_MPI
+ if (comm/=MPI_COMM_SELF.and.comm/=MPI_COMM_NULL) then
+
+ nproc=xmpi_comm_size(comm)
+
+!First version: using 2 allgather (one for ints, another for reals)
+!------------------------------------------------------------------
+ if (.not.use_pack) then
+
+! Prepare communications
+ ABI_MALLOC(count_int,(nproc))
+ ABI_MALLOC(disp_int,(nproc))
+ ABI_MALLOC(count_dp,(nproc))
+ ABI_MALLOC(disp_dp,(nproc))
+ ABI_MALLOC(count_size,(2*nproc))
+ buf_size(1)=buf_int_size; buf_size(2)=buf_dp_size
+ call xmpi_allgather(buf_size,2,count_size,comm,ier)
+ do iproc=1,nproc
+ count_int(iproc)=count_size(2*iproc-1)
+ count_dp(iproc)=count_size(2*iproc)
+ end do
+ disp_int(1)=0;disp_dp(1)=0
+ do ii=2,nproc
+ disp_int(ii)=disp_int(ii-1)+count_int(ii-1)
+ disp_dp (ii)=disp_dp (ii-1)+count_dp (ii-1)
+ end do
+ buf_int_size_all=sum(count_int)
+ buf_dp_size_all =sum(count_dp)
+
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size_all), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_allgatherv')
+ ABI_STAT_MALLOC(buf_dp_all ,(buf_dp_size_all), ierr)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_dp_all in xmpi_allgatherv')
+
+! Communicate (one call for integers, one call for reals)
+ call xmpi_allgatherv(buf_int,buf_int_size,buf_int_all,count_int,disp_int,comm,ierr)
+ call xmpi_allgatherv(buf_dp,buf_dp_size,buf_dp_all,count_dp,disp_dp,comm,ierr)
+
+! Release the memory
+ ABI_FREE(count_int)
+ ABI_FREE(disp_int)
+ ABI_FREE(count_dp)
+ ABI_FREE(disp_dp)
+ ABI_FREE(count_size)
+
+!2nd version: using 1 allgather (with MPI_PACK)
+!-----------------------------------------------------------------
+ else
+
+! Compute size of message
+ call MPI_PACK_SIZE(buf_int_size,MPI_INTEGER,comm,lg1,ier)
+ call MPI_PACK_SIZE(buf_dp_size,MPI_DOUBLE_PRECISION,comm,lg2,ier)
+ lg=lg1+lg2
+
+! Pack data to be sent
+ position=0 ; buf_pack_size=lg1+lg2
+ ABI_MALLOC(buf_pack,(buf_pack_size))
+ call MPI_PACK(buf_int,buf_int_size,MPI_INTEGER,buf_pack,buf_pack_size,position,comm,ier)
+ call MPI_PACK(buf_dp,buf_dp_size,MPI_DOUBLE_PRECISION,buf_pack,buf_pack_size,position,comm,ier)
+
+! Gather size of all packed messages
+ ABI_MALLOC(pos_all,(nproc*3))
+ ABI_MALLOC(counts,(nproc))
+ ABI_MALLOC(buf_int_size1,(nproc))
+ ABI_MALLOC(buf_dp_size1,(nproc))
+ ABI_MALLOC(displ,(nproc))
+ ABI_MALLOC(displ_int,(nproc))
+ ABI_MALLOC(displ_dp,(nproc))
+ pos(1)=position;pos(2)=buf_int_size;pos(3)=buf_dp_size
+ call MPI_ALLGATHER(pos,3,MPI_INTEGER,pos_all,3,MPI_INTEGER,comm,ier)
+ ii=1
+ do iproc=1,nproc
+ counts(iproc)=pos_all(ii);ii=ii+1
+ buf_int_size1(iproc)=pos_all(ii);ii=ii+1
+ buf_dp_size1(iproc)=pos_all(ii);ii=ii+1
+ end do
+
+ displ(1)=0 ; displ_int(1)=0 ; displ_dp(1)=0
+ do iproc=2,nproc
+ displ(iproc)=displ(iproc-1)+counts(iproc-1)
+ displ_int(iproc)=displ_int(iproc-1)+buf_int_size1(iproc-1)
+ displ_dp(iproc)=displ_dp(iproc-1)+buf_dp_size1(iproc-1)
+ end do
+
+ totalbufcount=displ(nproc)+counts(nproc)
+ ABI_STAT_MALLOC(buf_pack_tot,(totalbufcount), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating totalbufcount in xmpi_allgatherv')
+ buf_int_size_all=sum(buf_int_size1)
+ buf_dp_size_all=sum(buf_dp_size1)
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size_all), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_allgatherv')
+ ABI_STAT_MALLOC(buf_dp_all,(buf_dp_size_all), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_dp_size_all in xmpi_allgatherv')
+
+! Gather all packed messages
+ call MPI_ALLGATHERV(buf_pack,position,MPI_PACKED,buf_pack_tot,counts,displ,MPI_PACKED,comm,ier)
+ position=0
+ do iproc=1,nproc
+ lg_int=buf_int_size1(iproc); lg_dp=buf_dp_size1(iproc)
+ istart_int=displ_int(iproc); istart_dp=displ_dp(iproc)
+ outbuf_int=>buf_int_all(istart_int+1:istart_int+lg_int)
+ call MPI_UNPACK(buf_pack_tot,totalbufcount,position, outbuf_int,&
+& lg_int,MPI_INTEGER,comm,ier)
+ outbuf_dp=>buf_dp_all(istart_dp+1:istart_dp+lg_dp)
+ call MPI_UNPACK(buf_pack_tot,totalbufcount,position,outbuf_dp,&
+& lg_dp,MPI_DOUBLE_PRECISION,comm,ier)
+ end do
+
+! Release the memory
+ ABI_FREE(pos_all)
+ ABI_FREE(counts)
+ ABI_FREE(buf_int_size1)
+ ABI_FREE(buf_dp_size1)
+ ABI_FREE(displ)
+ ABI_FREE(displ_int)
+ ABI_FREE(displ_dp)
+ ABI_FREE(buf_pack_tot)
+ ABI_FREE(buf_pack)
+
+ end if
+ else if (comm==MPI_COMM_SELF) then
+#endif
+
+!Sequential version
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_allgatherv')
+ ABI_STAT_MALLOC(buf_dp_all,(buf_dp_size), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating buf_dp_all in xmpi_allgatherv')
+
+ buf_int_all(:)=buf_int(:)
+ buf_dp_all(:)=buf_dp(:)
+ buf_int_size_all=buf_int_size
+ buf_dp_size_all=buf_dp_size
+
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_allgatherv_int1_dp1
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_dp
+!! NAME
+!! xmpi_allgatherv_dp
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional double precision arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer,intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ cc=size(xval);if (size(recvcounts)>0) cc=recvcounts(1)
+ recvbuf(dd+1:dd+cc)=xval(1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_dp2d
+!! NAME
+!! xmpi_allgatherv_dp2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp2d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ cc=size(xval,2);if (size(recvcounts)>0) cc=recvcounts(1)/sz1
+ recvbuf(:,dd+1:dd+cc)=xval(:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_dp3d
+!! NAME
+!! xmpi_allgatherv_dp3d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp3d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz12
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz12=size(xval,1)*size(xval,2)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz12
+ cc=size(xval,3);if (size(recvcounts)>0) cc=recvcounts(1)/sz12
+ recvbuf(:,:,dd+1:dd+cc)=xval(:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_dp4d
+!! NAME
+!! xmpi_allgatherv_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp4d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz123
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz123=size(xval,1)*size(xval,2)*size(xval,3)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz123
+ cc=size(xval,4);if (size(recvcounts)>0) cc=recvcounts(1)/sz123
+ recvbuf(:,:,:,dd+1:dd+cc)=xval(:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_dp5d
+!! NAME
+!! xmpi_allgatherv_dp5d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp5d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz1234
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1234=size(xval,1)*size(xval,2)*size(xval,3)*size(xval,4)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1234
+ cc=size(xval,5);if (size(recvcounts)>0) cc=recvcounts(1)/sz1234
+ recvbuf(:,:,:,:,dd+1:dd+cc)=xval(:,:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp5d
+!!***
+
+
+!!****f* ABINIT/xmpi_allgatherv_dp6d
+!! NAME
+!! xmpi_allgatherv_dp6d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_dp6d(xval,nelem,recvbuf,recvcounts,displs,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz12345
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLGATHERV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz12345=size(xval,1)*size(xval,2)*size(xval,3)*size(xval,4)*size(xval,5)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz12345
+ cc=size(xval,6);if (size(recvcounts)>0) cc=recvcounts(1)/sz12345
+ recvbuf(:,:,:,:,:,dd+1:dd+cc)=xval(:,:,:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+end subroutine xmpi_allgatherv_dp6d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_coeff2d
+!! NAME
+!! xmpi_allgatherv_coeff2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: coeff2_type 1D-structure
+!!
+!! INPUTS
+!! xval_in = coeff2d_type array structure
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! xval_out = coeff2d_type array structure
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_coeff2d(xval_in,xval_out,comm,ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr
+!arrays
+ type(coeff2_type),intent(in) :: xval_in(:)
+ type(coeff2_type),intent(out) :: xval_out(:)
+
+!Local variables-------------------------------
+!scalars
+ integer :: ii,n1,n2
+#if defined HAVE_MPI
+ integer :: buf_int_size,buf_int_size_all,buf_dp_size,buf_dp_size_all
+ integer :: i2,indx_int,indx_dp,nb,nb_out,nproc
+#endif
+!arrays
+#if defined HAVE_MPI
+ integer, allocatable :: buf_int(:),buf_int_all(:)
+ integer, allocatable :: dimxval(:,:)
+ real(dp),allocatable :: buf_dp(:),buf_dp_all(:)
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+
+ nproc=xmpi_comm_size(comm)
+ nb = size(xval_in,1)
+
+ if (comm==MPI_COMM_SELF.or.nproc==1) then
+ do ii=1,nb
+ n1=size(xval_in(ii)%value,1)
+ n2=size(xval_in(ii)%value,2)
+ if (allocated(xval_out(ii)%value)) then
+ ABI_FREE(xval_out(ii)%value)
+ end if
+ ABI_STAT_MALLOC(xval_out(ii)%value,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xval_out%value in xmpi_allgatherv')
+ xval_out(ii)%value=xval_in(ii)%value
+ end do
+ return
+ end if
+
+ buf_dp_size=0
+ ABI_MALLOC(dimxval,(nb,2))
+ do ii=1,nb
+ dimxval(ii,1)=size(xval_in(ii)%value,dim=1)
+ dimxval(ii,2)=size(xval_in(ii)%value,dim=2)
+ buf_dp_size=buf_dp_size+dimxval(ii,1)*dimxval(ii,2)
+ end do
+
+ buf_int_size=2*nb;
+ ABI_STAT_MALLOC(buf_int,(buf_int_size), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating buf_int in xmpi_allgatherv')
+ indx_int=1
+ do ii=1,nb
+ buf_int(indx_int )=dimxval(ii,1)
+ buf_int(indx_int+1)=dimxval(ii,2)
+ indx_int=indx_int+2
+ end do
+
+ ABI_STAT_MALLOC(buf_dp,(buf_dp_size) ,ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating buf_dp_size in xmpi_allgatherv')
+ indx_dp=1
+ do ii=1,nb
+ n1=dimxval(ii,1); n2=dimxval(ii,2)
+ do i2=1,n2
+ buf_dp(indx_dp:indx_dp+n1-1)=xval_in(ii)%value(1:n1,i2)
+ indx_dp=indx_dp+n1
+ end do
+ end do
+
+ call xmpi_allgatherv(buf_int,buf_int_size,buf_dp,buf_dp_size,buf_int_all, &
+& buf_int_size_all,buf_dp_all,buf_dp_size_all,comm,ierr)
+
+
+ nb_out=buf_int_size_all/2
+
+ indx_int=1;indx_dp=1
+ do ii=1,nb_out
+ n1=buf_int_all(indx_int)
+ n2=buf_int_all(indx_int+1)
+ indx_int=indx_int+2
+ if (allocated(xval_out(ii)%value)) then
+ ABI_FREE(xval_out(ii)%value)
+ end if
+ ABI_STAT_MALLOC(xval_out(ii)%value,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xval_out%value in xmpi_allgatherv')
+ do i2=1,n2
+ xval_out(ii)%value(1:n1,i2)=buf_dp_all(indx_dp:indx_dp+n1-1)
+ indx_dp=indx_dp+n1
+ end do
+ end do
+
+
+ ABI_FREE(buf_dp_all)
+ ABI_FREE(buf_int_all)
+ ABI_FREE(buf_int)
+ ABI_FREE(buf_dp)
+ ABI_FREE(dimxval)
+
+ end if
+
+#else
+ do ii=1,size(xval_in,1)
+ n1=size(xval_in(ii)%value,1)
+ n2=size(xval_in(ii)%value,2)
+ if (allocated(xval_out(ii)%value)) then
+ ABI_FREE(xval_out(ii)%value)
+ end if
+ ABI_STAT_MALLOC(xval_out(ii)%value,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xval_out%value in xmpi_allgatherv')
+ xval_out(ii)%value=xval_in(ii)%value
+ end do
+#endif
+
+end subroutine xmpi_allgatherv_coeff2d
+!!***
+
+!!****f* ABINIT/xmpi_allgatherv_coeff2d_indx
+!! NAME
+!! xmpi_allgatherv_coeff2d_indx
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: coeff2_type 1D-structure
+!! use of an indirect index to sort data
+!!
+!! INPUTS
+!! xval_in = coeff2d_type array structure
+!! comm= MPI communicator
+!! indx= gives the indexes of xval_in in xval_out.
+!! xval_in(i) will be transfered in xval_out(indx(i))
+!!
+!! OUTPUT
+!! xval_out = coeff2d_type array structure
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! xmpi_allgatherv
+!!
+!! SOURCE
+
+subroutine xmpi_allgatherv_coeff2d_indx(xval_in,xval_out,comm,indx,ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr
+!arrays
+ integer,intent(in) :: indx(:)
+ type(coeff2_type),intent(in) :: xval_in(:)
+ type(coeff2_type),intent(out) :: xval_out(:)
+
+!Local variables-------------------------------
+!scalars
+ integer :: ii,ival,n1,n2,nb
+#if defined HAVE_MPI
+ integer :: buf_int_size,buf_int_size_all,buf_dp_size,buf_dp_size_all
+ integer :: i2,indx_int,indx_dp,nb_out,nproc
+#endif
+!arrays
+#if defined HAVE_MPI
+ integer, allocatable :: buf_int(:),buf_int_all(:)
+ integer, allocatable :: dimxval(:,:)
+ real(dp),allocatable :: buf_dp(:),buf_dp_all(:)
+#endif
+
+! *************************************************************************
+
+ ierr=0 ; nb = size(xval_in,1)
+
+#if defined HAVE_MPI
+ if (comm == MPI_COMM_NULL) return
+ nproc=xmpi_comm_size(comm)
+ if (comm==MPI_COMM_SELF.or.nproc==1) then
+#endif
+ do ii=1,nb
+ n1=size(xval_in(ii)%value,1)
+ n2=size(xval_in(ii)%value,2)
+ ival=indx(ii)
+ if (allocated(xval_out(ival)%value)) then
+ ABI_FREE(xval_out(ival)%value)
+ end if
+ ABI_STAT_MALLOC(xval_out(ival)%value,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xval_out%value in xmpi_allgatherv')
+ xval_out(ii)%value=xval_in(ival)%value
+ end do
+ return
+
+#if defined HAVE_MPI
+ end if
+
+ buf_dp_size=0
+ ABI_STAT_MALLOC(dimxval,(nb,2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating dimxval in xmpi_allgatherv')
+ do ii=1,nb
+ dimxval(ii,1)=size(xval_in(ii)%value,dim=1)
+ dimxval(ii,2)=size(xval_in(ii)%value,dim=2)
+ buf_dp_size=buf_dp_size+dimxval(ii,1)*dimxval(ii,2)
+ end do
+
+ buf_int_size=3*nb
+ ABI_STAT_MALLOC(buf_int,(buf_int_size), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating buf_int in xmpi_allgatherv')
+ indx_int=1
+ do ii=1,nb
+ buf_int(indx_int )=dimxval(ii,1)
+ buf_int(indx_int+1)=dimxval(ii,2)
+ buf_int(indx_int+2)=indx(ii)
+ indx_int=indx_int+3
+ end do
+
+ ABI_STAT_MALLOC(buf_dp,(buf_dp_size), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating buf_dp in xmpi_allgatherv')
+ indx_dp=1
+ do ii=1,nb
+ n1=dimxval(ii,1); n2=dimxval(ii,2)
+ do i2=1,n2
+ buf_dp(indx_dp:indx_dp+n1-1)=xval_in(ii)%value(1:n1,i2)
+ indx_dp=indx_dp+n1
+ end do
+ end do
+
+ call xmpi_allgatherv(buf_int,buf_int_size,buf_dp,buf_dp_size,buf_int_all, &
+& buf_int_size_all,buf_dp_all,buf_dp_size_all,comm,ierr)
+
+ nb_out=buf_int_size_all/3
+ indx_int=1;indx_dp=1
+ do ii=1,nb_out
+ n1=buf_int_all(indx_int)
+ n2=buf_int_all(indx_int+1)
+ ival=buf_int_all(indx_int+2)
+ indx_int=indx_int+3
+ if (allocated(xval_out(ival)%value)) then
+ ABI_FREE(xval_out(ival)%value)
+ end if
+ ABI_STAT_MALLOC(xval_out(ival)%value,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xval_out%value in xmpi_allgatherv')
+ do i2=1,n2
+ xval_out(ival)%value(1:n1,i2)=buf_dp_all(indx_dp:indx_dp+n1-1)
+ indx_dp=indx_dp+n1
+ end do
+ end do
+
+ ABI_FREE(buf_dp_all)
+ ABI_FREE(buf_int_all)
+ ABI_FREE(buf_int)
+ ABI_FREE(buf_dp)
+ ABI_FREE(dimxval)
+#endif
+
+end subroutine xmpi_allgatherv_coeff2d_indx
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_alltoall.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_alltoall.finc
new file mode 100644
index 00000000..2dc48ebd
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_alltoall.finc
@@ -0,0 +1,132 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_alltoall
+!! NAME
+!! xmpi_alltoall
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_alltoall is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_alltoall_int
+!! NAME
+!! xmpi_alltoall_int
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: integer mono dimensional arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoall_int(xval, sendsize, recvbuf, recvsize, comm, ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer ,intent(in) :: sendsize, recvsize
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLTOALL(xval, sendsize, MPI_INTEGER, recvbuf, &
+& recvsize, MPI_INTEGER, comm, ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+
+end subroutine xmpi_alltoall_int
+!!***
+
+!!****f* ABINIT/xmpi_alltoall_dp2d
+!! NAME
+!! xmpi_alltoall_dp2d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision two-dimensional arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoall_dp2d(xval, sendsize, recvbuf, recvsize, comm, ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer ,intent(in) :: sendsize, recvsize
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLTOALL(xval, sendsize, MPI_DOUBLE_PRECISION, recvbuf, &
+& recvsize, MPI_DOUBLE_PRECISION, comm, ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+
+end subroutine xmpi_alltoall_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_alltoall_dp4d
+!! NAME
+!! xmpi_alltoall_dp4d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision four-dimensional arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoall_dp4d(xval, sendsize, recvbuf, recvsize, comm, ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer ,intent(in) :: sendsize, recvsize
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLTOALL(xval, sendsize, MPI_DOUBLE_PRECISION, recvbuf, &
+& recvsize, MPI_DOUBLE_PRECISION, comm, ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+
+end subroutine xmpi_alltoall_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_alltoallv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_alltoallv.finc
new file mode 100644
index 00000000..7fd4e5f2
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_alltoallv.finc
@@ -0,0 +1,211 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_alltoallv_dp2d
+!! NAME
+!! xmpi_alltoallv_dp2d
+!!
+!! FUNCTION
+!! This module contains functions calling the MPI routine ALLTOALLV
+!! xmpi_alltoallv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcnts= number of sent elements
+!! sdispls= postions of values sent by the processor
+!! rdispls= positions of values received by the processor
+!! recvcnts= number of received elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_alltoallv
+!!
+!! SOURCE
+
+subroutine xmpi_alltoallv_dp2d(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer , DEV_CONTARRD intent(in) :: sendcnts(:),sdispls(:),rdispls(:),recvcnts(:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: sc,sds,sdr,sz1
+ integer :: i
+
+! *********************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! allgather xval on all proc. in comm
+ call MPI_ALLTOALLV(xval,sendcnts,sdispls,MPI_DOUBLE_PRECISION,recvbuf,&
+& recvcnts,rdispls,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ sds=0;if (size(sdispls)>0) sds=sdispls(1)/sz1
+ sdr=0;if (size(rdispls)>0) sdr=rdispls(1)/sz1
+ sc=size(xval,2);if (size(sendcnts)>0) sc=sendcnts(1)/sz1
+!$OMP parallel do
+ do i=1,sc
+ recvbuf(:,sdr+i)=xval(:,sds+i)
+ end do
+
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_alltoallv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_alltoallv_int2d
+!! NAME
+!! xmpi_alltoallv_int2d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: two-dimensional integer arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoallv_int2d(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: sendcnts(:),sdispls(:),rdispls(:),recvcnts(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: sc,sds,sdr,sz1
+
+! *********************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLTOALLV(xval,sendcnts,sdispls,MPI_INTEGER,recvbuf,&
+& recvcnts,rdispls,MPI_INTEGER,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ sds=0;if (size(sdispls)>0) sds=sdispls(1)/sz1
+ sdr=0;if (size(rdispls)>0) sdr=rdispls(1)/sz1
+ sc=size(xval,2);if (size(sendcnts)>0) sc=sendcnts(1)/sz1
+ recvbuf(:,sdr+1:sdr+sc)=xval(:,sds+1:sds+sc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_alltoallv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_alltoallv_dp1d
+!! NAME
+!! xmpi_alltoallv_dp1d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision one-dimensional arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoallv_dp1d(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: sendcnts(:),sdispls(:),recvcnts(:)
+ integer,intent(in) :: comm, rdispls
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: sc,sds,sdr
+ integer :: i
+#if defined HAVE_MPI
+ integer, allocatable :: rdispls_on(:)
+#endif
+
+! *********************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ ABI_STAT_MALLOC(rdispls_on,(size(sendcnts)), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating rdispls_on in xmpi_alltoallv')
+ rdispls_on = 0
+ call MPI_ALLTOALLV(xval,sendcnts,sdispls,MPI_DOUBLE_PRECISION,recvbuf,&
+& recvcnts,rdispls_on,MPI_DOUBLE_PRECISION,comm,ier)
+ ABI_FREE(rdispls_on)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sdr=rdispls;sds=0;if (size(sdispls)>0) sds=sdispls(1)
+ sc=size(xval);if (size(sendcnts)>0) sc=sendcnts(1)
+!$OMP parallel do
+ do i = 1, sc
+ recvbuf(i)=xval(sds+i)
+ end do
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_alltoallv_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_alltoallv_dp1d2
+!! NAME
+!! xmpi_alltoallv_dp1d2
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision one-dimensional arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_alltoallv_dp1d2(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: sendcnts(:),sdispls(:),recvcnts(:),rdispls(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: sc,sds,sdr
+
+! *********************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLTOALLV(xval,sendcnts,sdispls,MPI_DOUBLE_PRECISION,recvbuf,&
+& recvcnts,rdispls,MPI_DOUBLE_PRECISION,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sds=0;if (size(sdispls)>0) sds=sdispls(1)
+ sdr=0;if (size(rdispls)>0) sdr=rdispls(1)
+ sc=size(xval);if (size(sendcnts)>0) sc=sendcnts(1)
+ recvbuf(sdr+1:sdr+sc)=xval(sds+1:sds+sc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_alltoallv_dp1d2
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_bcast.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_bcast.finc
new file mode 100644
index 00000000..776c06eb
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_bcast.finc
@@ -0,0 +1,1878 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_bcast_intv
+!! NAME
+!! xmpi_bcast_intv
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_bcast is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (Rshaltaf,AR,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_intv(xval,master,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_INTEGER,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_intv
+!!***
+
+!!****f* ABINIT/xmpi_bcast_int1d
+!! NAME
+!! xmpi_bcast_int1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_int1d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+ integer :: n
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n=size(xval)
+ call MPI_BCAST(xval,n,MPI_INTEGER,master,comm,ier)
+ end if
+#endif
+end subroutine xmpi_bcast_int1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_int2d
+!! NAME
+!! xmpi_bcast_int2d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_int2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2,MPI_INTEGER,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,1,my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_bcast_int2d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_int3d
+!! NAME
+!! xmpi_bcast_int3d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: three-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_int3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3,MPI_INTEGER,master,comm,ier)
+ else
+ nn=int(n1*n2,kind=int64);if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_int3d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_int4d
+!! NAME
+!! xmpi_bcast_int4d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: three-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_int4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4,MPI_INTEGER,master,comm,ier)
+ else
+ nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_int4d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dpv
+!! NAME
+!! xmpi_bcast_dpv
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: scalar double precisions.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dpv(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ real(dp),intent(inout) :: xval
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(dp) :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_DOUBLE_PRECISION,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_dpv
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp1d
+!! NAME
+!! xmpi_bcast_dp1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n=size(xval,dim=1)
+ call MPI_BCAST(xval,n,MPI_DOUBLE_PRECISION,master,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp2d
+!! NAME
+!! xmpi_bcast_dp2d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2,MPI_DOUBLE_PRECISION,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,1,my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp3d
+!! NAME
+!! xmpi_bcast_dp3d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,master,comm,ier)
+ else
+ nn=int(n1*n2,kind=int64);if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp4d
+!! NAME
+!! xmpi_bcast_dp4d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4,MPI_DOUBLE_PRECISION,master,comm,ier)
+ else
+ nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp5d
+!! NAME
+!! xmpi_bcast_dp5d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision five-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp5d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+ n5=size(xval,dim=5)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4*n5,MPI_DOUBLE_PRECISION,master,comm,ier)
+ else
+ nn=int(n1*n2*n3*n4,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp5d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dp6d
+!! NAME
+!! xmpi_bcast_dp6d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dp6d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+ n5=size(xval,dim=5)
+ n6=size(xval,dim=6)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4*n5*n6,MPI_DOUBLE_PRECISION,master,comm,ier)
+ else
+ nn=int(n1*n2*n3*n4*n5,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2*n3*n4,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dp6d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_spv
+!! NAME
+!! xmpi_bcast_spv
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: scalar single precisions.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_spv(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(sp),intent(inout) :: xval
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(sp) :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_REAL,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_spv
+!!***
+
+!!****f* ABINIT/xmpi_bcast_sp1d
+!! NAME
+!! xmpi_bcast_sp1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: one-dimensional single precision arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_sp1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n=size(xval,dim=1)
+ call MPI_BCAST(xval,n,MPI_REAL,master,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_bcast_sp1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_sp2d
+!! NAME
+!! xmpi_bcast_sp2d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: two-dimensional single precision arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_sp2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2,MPI_REAL,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,1,my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_sp2d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_sp3d
+!! NAME
+!! xmpi_bcast_sp3d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: three-dimensional single precision arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_sp3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ else
+ nn=int(n1*n2,kind=int64);if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_REAL,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_sp3d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_sp4d
+!! NAME
+!! xmpi_bcast_sp4d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: four-dimensional single precision arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_sp4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ else
+ nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_REAL,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_sp4d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_cplxv
+!! NAME
+!! xmpi_bcast_cplxv
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: scalar complexs.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_cplxv(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc),intent(inout) :: xval
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ complex(spc) :: arr_xval(1)
+#endif
+
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_COMPLEX,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_cplxv
+!!***
+
+!!****f* ABINIT/xmpi_bcast_cplx1d
+!! NAME
+!! xmpi_bcast_cplx1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: one-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_bcast
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_cplx1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n=size(xval(:))
+ call MPI_BCAST(xval,n,MPI_COMPLEX,master,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_bcast_cplx1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_cplx2d
+!! NAME
+!! xmpi_bcast_cplx2d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: two-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_cplx2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2,MPI_COMPLEX,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,1,my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_cplx2d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_cplx3d
+!! NAME
+!! xmpi_bcast_cplx3d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: three-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_cplx3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ else
+ nn=int(n1*n2,kind=int64);if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_cplx3d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_cplx4d
+!! NAME
+!! xmpi_bcast_cplx4d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: four-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_cplx4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4,MPI_COMPLEX,master,comm,ier)
+ else
+ nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_cplx4d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dcv
+!! NAME
+!! xmpi_bcast_dcv
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: scalar double complexs.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dcv(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc),intent(inout) :: xval
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ complex(dpc) :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_DOUBLE_COMPLEX,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_dcv
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dc1d
+!! NAME
+!! xmpi_bcast_dc1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: one-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dc1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout):: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n=size(xval(:))
+ call MPI_BCAST(xval,n,MPI_DOUBLE_COMPLEX,master,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_bcast_dc1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dc2d
+!! NAME
+!! xmpi_bcast_dc2d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: two-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dc2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout):: xval(:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2,MPI_DOUBLE_COMPLEX,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,1,my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dc2d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dc3d
+!! NAME
+!! xmpi_bcast_dc3d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: three-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dc3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout):: xval(:,:,:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3,MPI_DOUBLE_COMPLEX,master,comm,ier)
+ else
+ nn=int(n1*n2,kind=int64);if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dc3d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_dc4d
+!! NAME
+!! xmpi_bcast_dc4d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: four-dimensional complex arrays in double precision.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_dc4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: nn,ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_BCAST(xval,n1*n2*n3*n4,MPI_DOUBLE_COMPLEX,master,comm,ier)
+ else
+ nn=int(n1*n2*n3,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1*n2,kind=int64)
+ if (nn>huge(0_int32)) nn=int(n1,kind=int64)
+ call xmpi_largetype_create(ntot/nn,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_OP_NULL)
+ call MPI_BCAST(xval,int(nn,kind=int32),my_dt,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_bcast_dc4d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_ch0d
+!! NAME
+!! xmpi_bcast_ch0d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: character strings.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_ch0d(xval, master, comm, ier)
+
+!Arguments-------------------------
+ character(len=*),intent(inout),target :: xval
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: nch(1),rank
+ character,pointer :: arr_xval(:)
+ type(c_ptr) :: cptr
+#endif
+
+!*************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_RANK(comm,rank,ier)
+ if (rank==master) nch(1)=len_trim(xval)
+ call MPI_BCAST(nch,1,MPI_INTEGER,master,comm,ier)
+ cptr=c_loc(xval) ; call c_f_pointer(cptr,arr_xval,[nch(1)])
+ call MPI_BCAST(arr_xval,nch(1),MPI_CHARACTER,master,comm,ier)
+ if (rank/=master) xval(nch(1)+1:)=''
+ end if
+#endif
+
+end subroutine xmpi_bcast_ch0d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_ch1d
+!! NAME
+!! xmpi_bcast_ch1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: one-dimensional array of character stringss.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_ch1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ Character(len=*), DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: ii,nch
+#endif
+
+!*************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ nch=0
+ do ii=1,size(xval)
+ nch=nch+len(xval(ii))
+ end do
+ call MPI_BCAST(xval,nch,MPI_CHARACTER,master,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_bcast_ch1d
+!!***
+
+
+!!****f* ABINIT/xmpi_bcast_log0d
+!! NAME
+!! xmpi_bcast_log0d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: logical scalar
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_log0d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ logical,intent(inout) :: xval
+ integer,intent(in) :: comm,master
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ logical :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1)=xval
+ call MPI_BCAST(arr_xval,1,MPI_LOGICAL,master,comm,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_bcast_log0d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_coeffi2_1d
+!! NAME
+!! xmpi_bcast_coeffi2_1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: type(coeffi2) 1D-arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_coeffi2_1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ type(coeffi2_type), intent(inout) :: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ii,jj,kk,me,n0,n1,n2,siztot
+ integer,allocatable :: mpibuf(:),siz(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ me=xmpi_comm_rank(comm)
+
+! Broadcast xval%value sizes
+ n0=size(xval)
+ ABI_STAT_MALLOC(siz,(2,n0), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating siz in xmpi_bcast')
+ if (me==master) then
+ do ii=1,n0
+ siz(1,ii)=size(xval(ii)%value,1)
+ siz(2,ii)=size(xval(ii)%value,2)
+ end do
+ end if
+ call MPI_BCAST(siz,2*n0,MPI_INTEGER,master,comm,ier)
+ siztot=0
+ do ii=1,n0
+ siztot=siztot+siz(1,ii)*siz(2,ii)
+ end do
+
+! Fill in the buffer
+ ABI_STAT_MALLOC(mpibuf,(siztot), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating mpibuf in xmpi_bcast')
+ if (me==master) then
+ jj=0
+ do ii=1,n0
+ n1=siz(1,ii);n2=siz(2,ii)
+ do kk=1,n2
+ mpibuf(jj+1:jj+n1)=xval(ii)%value(1:n1,kk)
+ jj=jj+n1
+ end do
+ end do
+ end if
+
+! Broadcast the data
+ call MPI_BCAST(mpibuf,siztot,MPI_INTEGER,master,comm,ier)
+
+! Retrieve the buffer
+ jj=0
+ do ii=1,n0
+ n1=siz(1,ii);n2=siz(2,ii)
+ if (.not.allocated(xval(ii)%value)) then
+ ABI_STAT_MALLOC(xval(ii)%value,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xval%value in xmpi_bcast')
+ end if
+ do kk=1,n2
+ xval(ii)%value(1:n1,kk)=mpibuf(jj+1:jj+n1)
+ jj=jj+n1
+ end do
+ end do
+ ABI_FREE(siz)
+ ABI_FREE(mpibuf)
+
+ end if
+#endif
+
+end subroutine xmpi_bcast_coeffi2_1d
+!!***
+
+!!****f* ABINIT/xmpi_bcast_coeff2_1d
+!! NAME
+!! xmpi_bcast_coeff2_1d
+!!
+!! FUNCTION
+!! Broadcasts data from master to slaves.
+!! Target: type(coeff2) 1D-arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!! master= master MPI node
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_bcast_coeff2_1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ type(coeff2_type), intent(inout) :: xval(:)
+ integer ,intent(in) :: comm,master
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ii,jj,kk,me,n0,n1,n2,siztot
+ integer,allocatable :: siz(:,:)
+ real(dp),allocatable :: mpibuf(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ me=xmpi_comm_rank(comm)
+
+! Broadcast xval%value sizes
+ n0=size(xval)
+ ABI_STAT_MALLOC(siz,(2,n0), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating siz in xmpi_bcast')
+ if (me==master) then
+ do ii=1,n0
+ siz(1,ii)=size(xval(ii)%value,1)
+ siz(2,ii)=size(xval(ii)%value,2)
+ end do
+ end if
+ call MPI_BCAST(siz,2*n0,MPI_INTEGER,master,comm,ier)
+ siztot=0
+ do ii=1,n0
+ siztot=siztot+siz(1,ii)*siz(2,ii)
+ end do
+
+! Fill in the buffer
+ ABI_STAT_MALLOC(mpibuf,(siztot), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating mpibuf in xmpi_bcast')
+ if (me==master) then
+ jj=0
+ do ii=1,n0
+ n1=siz(1,ii);n2=siz(2,ii)
+ do kk=1,n2
+ mpibuf(jj+1:jj+n1)=xval(ii)%value(1:n1,kk)
+ jj=jj+n1
+ end do
+ end do
+ end if
+
+! Broadcast the data
+ call MPI_BCAST(mpibuf,siztot,MPI_DOUBLE_PRECISION,master,comm,ier)
+
+! Retrieve the buffer
+ jj=0
+ do ii=1,n0
+ n1=siz(1,ii);n2=siz(2,ii)
+ if (.not.allocated(xval(ii)%value)) then
+ ABI_STAT_MALLOC(xval(ii)%value,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xval%value in xmpi_bcast')
+ end if
+ do kk=1,n2
+ xval(ii)%value(1:n1,kk)=mpibuf(jj+1:jj+n1)
+ jj=jj+n1
+ end do
+ end do
+ ABI_FREE(siz)
+ ABI_FREE(mpibuf)
+
+ end if
+#endif
+
+end subroutine xmpi_bcast_coeff2_1d
+!!***
+
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_exch.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_exch.finc
new file mode 100644
index 00000000..3b6ea579
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_exch.finc
@@ -0,0 +1,644 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_exch_int1d
+!! NAME
+!! xmpi_exch_int1d
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_exch is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MB,MT)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTE
+!! The tag conforms to the MPI request that the tag is lower than 32768,
+!! by using a modulo call.
+!!
+!! SOURCE
+
+!--------------------------------------------------------------------
+
+subroutine xmpi_exch_int1d(vsend,n1,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,n1
+ integer, DEV_CONTARRD intent(in) :: vsend(:)
+ integer, DEV_CONTARRD intent(inout) :: vrecv(:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: tag,me
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.n1==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag,xmpi_tag_ub)
+
+ if (recever==me) then
+ call MPI_RECV(vrecv,n1,MPI_INTEGER,sender,tag,comm,statux,ier)
+ end if
+ if (sender==me) then
+ call MPI_SEND(vsend,n1,MPI_INTEGER,recever,tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_exch_int1d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_int2d
+!! NAME
+!! xmpi_exch_int2d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_int2d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ integer, DEV_CONTARRD intent(in) :: vsend(:,:)
+ integer, DEV_CONTARRD intent(inout) :: vrecv(:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: tag,me
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ if (recever==me) then
+ call MPI_RECV(vrecv,nt,MPI_INTEGER,sender,tag,comm,statux,ier)
+ end if
+ if (sender==me) then
+ call MPI_SEND(vsend,nt,MPI_INTEGER,recever,tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_exch_int2d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dp1d
+!! NAME
+!! xmpi_exch_dp1d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dp1d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ real(dp), DEV_CONTARRD intent(in) :: vsend(:)
+ real(dp), DEV_CONTARRD intent(inout) :: vrecv(:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: me,my_dt,my_op,tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ !The dimension can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(nt,kind=int64)
+
+ if (recever==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_PRECISION,sender,tag,comm,statux,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(vrecv,1,my_dt,sender,tag,comm,statux,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+ if (sender==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_PRECISION,recever,tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(vsend,1,my_dt,recever,tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_exch_dp1d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dp2d
+!! NAME
+!! xmpi_exch_dp2d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dp2d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ real(dp), DEV_CONTARRD intent(in) :: vsend(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: vrecv(:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: me,my_dt,my_op,tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ !The dimension can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(nt,kind=int64)
+
+ if (recever==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_PRECISION,sender,tag,comm,statux,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(vrecv,1,my_dt,sender,tag,comm,statux,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+ if (sender==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_PRECISION,recever,tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(vsend,1,my_dt,recever,tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_exch_dp2d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dp3d
+!! NAME
+!! xmpi_exch_dp3d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dp3d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ real(dp), DEV_CONTARRD intent(in) :: vsend(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: vrecv(:,:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: me,my_dt,my_op,tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ !The dimension can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(nt,kind=int64)
+
+ if (recever==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_PRECISION,sender,tag,comm,statux,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(vrecv,1,my_dt,sender,tag,comm,statux,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+ if (sender==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_PRECISION,recever,tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(vsend,1,my_dt,recever,tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_exch_dp3d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dp4d_tag
+!! NAME
+!! xmpi_exch_dp4d_tag
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dp4d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ real(dp), DEV_CONTARRD intent(in) :: vsend(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: vrecv(:,:,:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: me,my_dt,my_op,tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ !The dimension can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(nt,kind=int64)
+
+ if (recever==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_PRECISION,sender,tag,comm,statux,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(vrecv,1,my_dt,sender,tag,comm,statux,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+ if (sender==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_PRECISION,recever,tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(vsend,1,my_dt,recever,tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_exch_dp4d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dp5d_tag
+!! NAME
+!! xmpi_exch_dp5d_tag
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: double precision five-dimensional arrays.
+!!
+!! INPUTS
+!! mtag= message tag
+!! nt= vector length
+!! vsend= send buffer
+!! sender= node sending the data
+!! recever= node receiving the data
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! vrecv= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dp5d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ real(dp), DEV_CONTARRD intent(in) :: vsend(:,:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: vrecv(:,:,:,:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: me,my_dt,my_op,tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.nt==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag,xmpi_tag_ub)
+
+ !The dimension can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(nt,kind=int64)
+
+ if (recever==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_PRECISION,sender,tag,comm,statux,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(vrecv,1,my_dt,sender,tag,comm,statux,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+ if (sender==me) then
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_PRECISION,recever,tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(vsend,1,my_dt,recever,tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_exch_dp5d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_spc1d
+!! NAME
+!! xmpi_exch_spc1d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: one-dimensional single precision complex arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_exch_spc1d(vsend,n1,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,n1
+ complex(spc), DEV_CONTARRD intent(in) :: vsend(:)
+ complex(spc), DEV_CONTARRD intent(inout) :: vrecv(:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: tag,me
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.(n1==0)) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ if (recever==me) then
+ call MPI_RECV(vrecv,n1,MPI_COMPLEX,sender, tag,comm,statux,ier)
+ end if
+ if (sender==me) then
+ call MPI_SEND(vsend,n1,MPI_COMPLEX,recever,tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_exch_spc1d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dpc1d
+!! NAME
+!! xmpi_exch_dpc1d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: one-dimensional double precision complex arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dpc1d(vsend,n1,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,n1
+ complex(dpc), DEV_CONTARRD intent(in) :: vsend(:)
+ complex(dpc), DEV_CONTARRD intent(inout) :: vrecv(:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: tag,me
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.n1==0) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ if (recever==me) then
+ call MPI_RECV(vrecv,n1,MPI_DOUBLE_COMPLEX,sender, tag,comm,statux,ier)
+ end if
+ if (sender==me) then
+ call MPI_SEND(vsend,n1,MPI_DOUBLE_COMPLEX,recever,tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_exch_dpc1d
+!!***
+
+!--------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_exch_dpc2d
+!! NAME
+!! xmpi_exch_dpc2d
+!!
+!! FUNCTION
+!! Sends and receives data.
+!! Target: two-dimensional double precision complex arrays.
+!!
+!! SOURCE
+
+subroutine xmpi_exch_dpc2d(vsend,nt,sender,vrecv,recever,comm,mtag,ier)
+
+!Arguments----------------
+ integer,intent(in) :: mtag,nt
+ complex(dpc), DEV_CONTARRD intent(in) :: vsend(:,:)
+ complex(dpc), DEV_CONTARRD intent(inout) :: vrecv(:,:)
+ integer,intent(in) :: sender,recever,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: statux(MPI_STATUS_SIZE)
+ integer :: tag,me
+#endif
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (sender==recever.or.comm==MPI_COMM_NULL.or.(nt==0)) return
+ call MPI_COMM_RANK(comm,me,ier)
+ tag = MOD(mtag, xmpi_tag_ub)
+
+ if (recever==me) then
+ call MPI_RECV(vrecv,nt,MPI_DOUBLE_COMPLEX,sender, tag,comm,statux,ier)
+ end if
+ if (sender==me) then
+ call MPI_SEND(vsend,nt,MPI_DOUBLE_COMPLEX,recever,tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_exch_dpc2d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_gather.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_gather.finc
new file mode 100644
index 00000000..d10aac24
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_gather.finc
@@ -0,0 +1,307 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_gather
+!! NAME
+!! xmpi_gather
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_gather is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MT)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_gather_int
+!! NAME
+!! xmpi_gather_int
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_int(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_INTEGER,recvbuf,recvcount,MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+end subroutine xmpi_gather_int
+!!***
+
+!!****f* ABINIT/xmpi_gather_int2d
+!! NAME
+!! xmpi_gather_int2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_int2d(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_INTEGER,recvbuf,recvcount,MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+end subroutine xmpi_gather_int2d
+!!***
+
+!!****f* ABINIT/xmpi_gather_dp
+!! NAME
+!! xmpi_gather_dp
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_dp(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_DOUBLE_PRECISION,recvbuf,recvcount,MPI_DOUBLE_PRECISION,&
+& root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+end subroutine xmpi_gather_dp
+!!***
+
+!!****f* ABINIT/xmpi_gather_dp2d
+!! NAME
+!! xmpi_gather_dp2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: two-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_dp2d(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_DOUBLE_PRECISION,recvbuf,recvcount,MPI_DOUBLE_PRECISION,&
+& root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+end subroutine xmpi_gather_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_gather_dp3d
+!! NAME
+!! xmpi_gather_dp3d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: three-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_dp3d(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_DOUBLE_PRECISION,recvbuf,recvcount,MPI_DOUBLE_PRECISION,&
+& root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+
+end subroutine xmpi_gather_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_gather_dp4d
+!! NAME
+!! xmpi_gather_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: four-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcont= number of sent elements
+!! recvcount= number of received elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gather_dp4d(xval,sendcount,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(in) :: sendcount,recvcount
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer,intent(in) :: root,comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gather(xval,sendcount,MPI_DOUBLE_PRECISION,recvbuf,recvcount,MPI_DOUBLE_PRECISION,&
+& root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf=xval
+ end if
+#else
+ recvbuf=xval
+#endif
+
+end subroutine xmpi_gather_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_gatherv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_gatherv.finc
new file mode 100644
index 00000000..0b9e004b
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_gatherv.finc
@@ -0,0 +1,678 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_gatherv
+!! NAME
+!! xmpi_gatherv
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_gatherv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MT,GG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_int
+!! NAME
+!! xmpi_gatherv_int
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_int(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_INTEGER,recvbuf,recvcounts,displs,&
+& MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ cc=size(xval);if (size(recvcounts)>0) cc=recvcounts(1)
+ recvbuf(dd+1:dd+cc)=xval(1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_int
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_int1_dp1
+!! NAME
+!! xmpi_gatherv_int1_dp1
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target : one-dimensional integer arrray and one-dimensionnal dp array
+!!
+!! INPUTS
+!! buf_int=buffer integer array that is going to be gathered
+!! buf_int_size=size of buf_int array
+!! buf_dp=buffer dp array that is going to be gathered
+!! buf_dp_size=size of buf_dp array
+!! comm=MPI communicator to be gathered on it
+!! root=rank of receiving process
+!! comm=MPI communicator
+!!
+!! OUTPUT
+!! buf_int_all=buffer integer array gathered
+!! buf_int_size_all=size of buffer integer array gathered
+!! buf_dp_all=buffer dp array gathered
+!! buf_dp_size_all=size of buffer dp array gathered
+!! ier=exit status, a non-zero value meaning there is an error
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_int1_dp1(buf_int,buf_int_size,buf_dp,buf_dp_size, &
+& buf_int_all,buf_int_size_all,buf_dp_all,buf_dp_size_all,root,&
+& comm,ier)
+
+!Arguments-------------------------
+!scalars
+ integer,intent(in) :: buf_int_size,buf_dp_size,root,comm
+ integer,intent(out) :: buf_int_size_all,buf_dp_size_all,ier
+!arrays
+ integer,intent(in) :: buf_int(:)
+ integer,allocatable,target,intent(out) :: buf_int_all(:)
+ real(dp),intent(in) :: buf_dp(:)
+ real(dp),allocatable,target, intent(out) :: buf_dp_all(:)
+
+!Local variables--------------
+!scalars
+ integer :: buf_pack_size,ierr,ii,iproc,istart_dp,istart_int
+ integer :: lg,lg1,lg2,lg_int,lg_dp,me,nproc,position
+ integer :: totalbufcount
+ logical,parameter :: use_pack=.false.
+!arrays
+ integer :: buf_size(2),pos(3)
+ integer,allocatable :: buf_dp_size1(:),buf_int_size1(:)
+ integer,allocatable :: count_dp(:),count_int(:),count_size(:),counts(:)
+ integer,allocatable :: disp_dp(:),disp_int(:),displ(:),displ_dp(:),displ_int(:)
+ integer,allocatable :: pos_all(:)
+ integer,pointer:: outbuf_int(:)
+ real(dp),pointer :: outbuf_dp(:)
+ character,allocatable :: buf_pack(:),buf_pack_tot(:)
+
+! *************************************************************************
+
+ ier=0
+
+#if defined HAVE_MPI
+ if (comm/=MPI_COMM_SELF.and.comm/=MPI_COMM_NULL) then
+
+ nproc=xmpi_comm_size(comm)
+
+!First version: using 2 allgather (one for ints, another for reals)
+!------------------------------------------------------------------
+ if (.not.use_pack) then
+
+! Prepare communications
+ ABI_MALLOC(count_int,(nproc))
+ ABI_MALLOC(disp_int,(nproc))
+ ABI_MALLOC(count_dp,(nproc))
+ ABI_MALLOC(disp_dp,(nproc))
+ ABI_MALLOC(count_size,(2*nproc))
+ buf_size(1)=buf_int_size;buf_size(2)=buf_dp_size
+ call xmpi_allgather(buf_size,2, count_size,comm,ier)
+ do iproc=1,nproc
+ count_int(iproc)=count_size(2*iproc-1)
+ count_dp(iproc)=count_size(2*iproc)
+ end do
+ disp_int(1)=0;disp_dp(1)=0
+ do ii=2,nproc
+ disp_int(ii)=disp_int(ii-1)+count_int(ii-1)
+ disp_dp (ii)=disp_dp (ii-1)+count_dp (ii-1)
+ end do
+ buf_int_size_all=sum(count_int)
+ buf_dp_size_all =sum(count_dp)
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size_all), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ ABI_STAT_MALLOC(buf_dp_all ,(buf_dp_size_all), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_dp_all in xmpi_gatherv')
+
+! Communicate (one call for integers, one call for reals)
+ call xmpi_gatherv(buf_int,buf_int_size,buf_int_all,count_int,disp_int,root,comm,ierr)
+ call xmpi_gatherv(buf_dp,buf_dp_size,buf_dp_all,count_dp,disp_dp,root,comm,ierr)
+
+! Release the memory
+ ABI_FREE(count_int)
+ ABI_FREE(disp_int)
+ ABI_FREE(count_dp)
+ ABI_FREE(disp_dp)
+ ABI_FREE(count_size)
+
+!2nd version: using 1 allgather (with MPI_PACK)
+!-----------------------------------------------------------------
+ else
+
+ me=xmpi_comm_rank(comm)
+
+! Compute size of message
+ call MPI_PACK_SIZE(buf_int_size,MPI_INTEGER,comm,lg1,ier)
+ call MPI_PACK_SIZE(buf_dp_size,MPI_DOUBLE_PRECISION,comm,lg2,ier)
+ lg=lg1+lg2
+
+! Pack data to be sent
+ position=0;buf_pack_size=lg1+lg2
+ ABI_STAT_MALLOC(buf_pack,(buf_pack_size), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_pack xmpi_gatherv')
+ call MPI_PACK(buf_int,buf_int_size,MPI_INTEGER,buf_pack,buf_pack_size,position,comm,ier)
+ call MPI_PACK(buf_dp,buf_dp_size,MPI_DOUBLE_PRECISION,buf_pack,buf_pack_size,position,comm,ier)
+
+! Gather size of all packed messages
+ ABI_MALLOC(pos_all,(nproc*3))
+ ABI_MALLOC(counts,(nproc))
+ ABI_MALLOC(buf_int_size1,(nproc))
+ ABI_MALLOC(buf_dp_size1,(nproc))
+ ABI_MALLOC(displ,(nproc))
+ ABI_MALLOC(displ_int,(nproc))
+ ABI_MALLOC(displ_dp,(nproc))
+ pos(1)=position;pos(2)=buf_int_size;pos(3)=buf_dp_size
+ call MPI_ALLGATHER(pos,3,MPI_INTEGER,pos_all,3,MPI_INTEGER,comm,ier)
+ ii=1
+ do iproc=1,nproc
+ counts(iproc)=pos_all(ii);ii=ii+1
+ buf_int_size1(iproc)=pos_all(ii);ii=ii+1
+ buf_dp_size1(iproc)=pos_all(ii);ii=ii+1
+ end do
+
+ displ(1)=0 ; displ_int(1)=0 ; displ_dp(1)=0
+ do iproc=2,nproc
+ displ(iproc)=displ(iproc-1)+counts(iproc-1)
+ displ_int(iproc)=displ_int(iproc-1)+buf_int_size1(iproc-1)
+ displ_dp(iproc)=displ_dp(iproc-1)+buf_dp_size1(iproc-1)
+ end do
+
+ totalbufcount=displ(nproc)+counts(nproc)
+ ABI_STAT_MALLOC(buf_pack_tot,(totalbufcount), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_pack_tot in xmpi_gatherv')
+ buf_int_size_all=sum(buf_int_size1)
+ buf_dp_size_all=sum(buf_dp_size1)
+
+ if (me==root) then
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size_all), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ ABI_STAT_MALLOC(buf_dp_all,(buf_dp_size_all), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ else
+ ABI_STAT_MALLOC(buf_int_all,(1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ ABI_STAT_MALLOC(buf_dp_all,(1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ end if
+
+! Gather all packed messages
+ call MPI_GATHERV(buf_pack,position,MPI_PACKED,buf_pack_tot,counts,displ,MPI_PACKED,root,comm,ier)
+ if (me==root) then
+ position=0
+ do iproc=1,nproc
+ lg_int=buf_int_size1(iproc); lg_dp=buf_dp_size1(iproc)
+ istart_int=displ_int(iproc); istart_dp=displ_dp(iproc)
+ outbuf_int=>buf_int_all(istart_int+1:istart_int+lg_int)
+ call MPI_UNPACK(buf_pack_tot,totalbufcount,position, outbuf_int, &
+& lg_int, MPI_INTEGER,comm,ier)
+ outbuf_dp=>buf_dp_all(istart_dp+1:istart_dp+lg_dp)
+ call MPI_UNPACK(buf_pack_tot,totalbufcount,position,outbuf_dp, &
+& lg_dp, MPI_DOUBLE_PRECISION,comm,ier)
+ end do
+ end if
+
+! Release the memory
+ ABI_FREE(pos_all)
+ ABI_FREE(counts)
+ ABI_FREE(buf_int_size1)
+ ABI_FREE(buf_dp_size1)
+ ABI_FREE(displ)
+ ABI_FREE(displ_int)
+ ABI_FREE(displ_dp)
+ ABI_FREE(buf_pack_tot)
+ ABI_FREE(buf_pack)
+
+ end if
+ else if (comm == MPI_COMM_SELF) then
+#endif
+
+!Sequential version
+ ABI_STAT_MALLOC(buf_int_all,(buf_int_size), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_int_all in xmpi_gatherv')
+ ABI_STAT_MALLOC(buf_dp_all,(buf_dp_size), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf_dp_all in xmpi_gatherv')
+ buf_int_all(:)=buf_int(:)
+ buf_dp_all(:)=buf_dp(:)
+ buf_int_size_all=buf_int_size
+ buf_dp_size_all=buf_dp_size
+
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_int1_dp1
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_int2d
+!! NAME
+!! xmpi_gatherv_int2d
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_gatherv is the generic function.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_int2d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_INTEGER,recvbuf,recvcounts,displs,&
+& MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ cc=size(xval,2);if (size(recvcounts)>0) cc=recvcounts(1)/sz1
+ recvbuf(:,dd+1:dd+cc)=xval(:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_dp
+!! NAME
+!! xmpi_gatherv_dp
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional double precision arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ cc=size(xval);if (size(recvcounts)>0) cc=recvcounts(1)
+ recvbuf(dd+1:dd+cc)=xval(1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_dp
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_dp2d
+!! NAME
+!! xmpi_gatherv_dp2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp2d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(xval,1)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ cc=size(xval,2);if (size(recvcounts)>0) cc=recvcounts(1)/sz1
+ recvbuf(:,dd+1:dd+cc)=xval(:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_dp3d
+!! NAME
+!! xmpi_gatherv_dp3d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp3d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+ integer :: cc,dd,sz12
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz12=size(xval,1)*size(xval,2)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz12
+ cc=size(xval,3);if (size(recvcounts)>0) cc=recvcounts(1)/sz12
+ recvbuf(:,:,dd+1:dd+cc)=xval(:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_dp4d
+!! NAME
+!! xmpi_gatherv_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp4d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz123
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz123=size(xval,1)*size(xval,2)*size(xval,3)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz123
+ cc=size(xval,4);if (size(recvcounts)>0) cc=recvcounts(1)/sz123
+ recvbuf(:,:,:,dd+1:dd+cc)=xval(:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_gatherv_dp5d
+!! NAME
+!! xmpi_gatherv_dp5d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp5d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz1234
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1234=size(xval,1)*size(xval,2)*size(xval,3)*size(xval,4)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1234
+ cc=size(xval,5);if (size(recvcounts)>0) cc=recvcounts(1)/sz1234
+ recvbuf(:,:,:,:,dd+1:dd+cc)=xval(:,:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+!!***
+
+end subroutine xmpi_gatherv_dp5d
+
+!!****f* ABINIT/xmpi_gatherv_dp6d
+!! NAME
+!! xmpi_gatherv_dp6d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcounts= number of received elements
+!! displs= relative offsets for incoming data
+!! nelem= number of elements
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_gatherv_dp6d(xval,nelem,recvbuf,recvcounts,displs,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: recvcounts(:),displs(:)
+ integer,intent(in) :: nelem,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz12345
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_gatherV(xval,nelem,MPI_DOUBLE_PRECISION,recvbuf,recvcounts,displs,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz12345=size(xval,1)*size(xval,2)*size(xval,3)*size(xval,4)*size(xval,5)
+ dd=0;if (size(displs)>0) dd=displs(1)/sz12345
+ cc=size(xval,6);if (size(recvcounts)>0) cc=recvcounts(1)/sz12345
+ recvbuf(:,:,:,:,:,dd+1:dd+cc)=xval(:,:,:,:,:,1:cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_gatherv_dp6d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_iallgather.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_iallgather.finc
new file mode 100644
index 00000000..ef5c4f4d
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_iallgather.finc
@@ -0,0 +1,80 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_iallgather
+!! NAME
+!! xmpi_iallgather
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_iallgather is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_iallgather_dp4d
+!! NAME
+!! xmpi_iallgather_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and distributes it to all. Non-blocking version
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! nelem= number of elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!! request: MPI request
+!!
+!! SIDE EFFECTS
+!! recvbuf= received elements
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allgather
+!!
+!! SOURCE
+
+subroutine xmpi_iallgather_dp4d(xval, nelem, recvbuf, comm, request)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(in) :: xval(:,:,:,:)
+ real(dp) ABI_ASYNC, intent(inout) :: recvbuf(:,:,:,:)
+ integer ,intent(in) :: nelem,comm
+ integer,intent(out) :: request
+
+!Local variables-------------------
+ integer :: ierr
+
+! *************************************************************************
+ ierr = 0
+
+#ifdef HAVE_MPI_IALLGATHER
+ ! Requires MPI3
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IALLGATHER(xval, nelem, MPI_DOUBLE_PRECISION, recvbuf, nelem, MPI_DOUBLE_PRECISION, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ else if (comm == MPI_COMM_SELF) then
+ recvbuf = xval
+ request = xmpi_request_null
+ end if
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ ! write(*,*)"will block here and return fake request"
+ call xmpi_allgather(xval, nelem, recvbuf, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_iallgather_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoall.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoall.finc
new file mode 100644
index 00000000..eecdf2c0
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoall.finc
@@ -0,0 +1,72 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_ialltoall
+!! NAME
+!! xmpi_ialltoall
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_ialltoall is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_ialltoall_dp4d
+!! NAME
+!! xmpi_ialltoall_dp4d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision four-dimensional arrays.
+!! Non-blocking version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_alltoall
+!!
+!! SOURCE
+
+subroutine xmpi_ialltoall_dp4d(xval, sendsize, recvbuf, recvsize, comm, request)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(in) :: xval(:,:,:,:)
+ real(dp) ABI_ASYNC, intent(inout) :: recvbuf(:,:,:,:)
+ integer,intent(in) :: sendsize,recvsize,comm
+ integer,intent(out) :: request
+
+!Local variables-------------------
+ integer :: ierr
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLTOALL
+ ! Requires MPI3
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IALLTOALL(&
+ xval, sendsize, MPI_DOUBLE_PRECISION,&
+ recvbuf,recvsize, MPI_DOUBLE_PRECISION, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ ! write(*,*)"will block here and return fake request"
+ call xmpi_alltoall(xval, sendsize, recvbuf, recvsize, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ialltoall_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoallv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoallv.finc
new file mode 100644
index 00000000..656da98a
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_ialltoallv.finc
@@ -0,0 +1,155 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_ialltoallv_dp2d
+!! NAME
+!! xmpi_ialltoallv_dp2d
+!!
+!! FUNCTION
+!! This module contains functions calling the non-blocking MPI routine IALLTOALLV
+!! xmpi_ialltoallv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! INPUTS
+!! xval= buffer array
+!! sendcnts= number of sent elements
+!! sdispls= postions of values sent by the processor
+!! rdispls= positions of values received by the processor
+!! recvcnts= number of received elements
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! request= MPI request
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_ialltoallv
+!!
+!! SOURCE
+
+subroutine xmpi_ialltoallv_dp2d(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,request)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(in) :: xval(:,:)
+ real(dp) ABI_ASYNC, intent(inout) :: recvbuf(:,:)
+ integer ABI_ASYNC, intent(in) :: sendcnts(:),sdispls(:),rdispls(:),recvcnts(:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: request
+
+!Local variables-------------------
+ integer :: ierr
+
+! *********************************************************************
+
+#ifdef HAVE_MPI_IALLTOALLV
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IALLTOALLV(xval,sendcnts,sdispls,MPI_DOUBLE_PRECISION,recvbuf,&
+ recvcnts,rdispls,MPI_DOUBLE_PRECISION,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_alltoallv(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ialltoallv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_ialltoallv_int2d
+!! NAME
+!! xmpi_ialltoallv_int2d
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: two-dimensional integer arrays.
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_ialltoallv
+!!
+!! SOURCE
+
+subroutine xmpi_ialltoallv_int2d(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,request)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(in) :: xval(:,:)
+ integer ABI_ASYNC, intent(inout) :: recvbuf(:,:)
+ integer ABI_ASYNC, intent(in) :: sendcnts(:),sdispls(:),rdispls(:),recvcnts(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: request
+
+!Local variables-------------------
+ integer :: ierr
+
+! *********************************************************************
+
+#ifdef HAVE_MPI_IALLTOALLV
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IALLTOALLV(xval,sendcnts,sdispls,MPI_INTEGER,recvbuf,&
+ recvcnts,rdispls,MPI_INTEGER,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_alltoallv(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ialltoallv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_ialltoallv_dp1d2
+!! NAME
+!! xmpi_ialltoallv_dp1d2
+!!
+!! FUNCTION
+!! Sends data from all to all processes.
+!! Target: double precision one-dimensional arrays.
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_ialltoallv
+!!
+!! SOURCE
+
+subroutine xmpi_ialltoallv_dp1d2(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,request)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(in) :: xval(:)
+ real(dp) ABI_ASYNC, intent(inout) :: recvbuf(:)
+ integer ABI_ASYNC, intent(in) :: sendcnts(:),sdispls(:),recvcnts(:),rdispls(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: request
+
+!Local variables-------------------
+ integer :: ierr
+
+! *********************************************************************
+
+#ifdef HAVE_MPI_IALLTOALLV
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IALLTOALLV(xval,sendcnts,sdispls,MPI_DOUBLE_PRECISION,recvbuf,&
+ recvcnts,rdispls,MPI_DOUBLE_PRECISION,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_alltoallv(xval,sendcnts,sdispls,recvbuf,recvcnts,rdispls,comm,ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ialltoallv_dp1d2
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_ibcast.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_ibcast.finc
new file mode 100644
index 00000000..88d8c955
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_ibcast.finc
@@ -0,0 +1,379 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_ibcast
+!! NAME
+!! xmpi_ibcast
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine MPI_IBCAST,
+!! to broadcast data from one processor to other procs inside a communicator,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_ibcast is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_int1d
+!! NAME
+!! xmpi_ibcast_int1d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_int1d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(inout) :: xval(:)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_INTEGER, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_int1d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_int4d
+!! NAME
+!! xmpi_ibcast_int4d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_int4d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(inout) :: xval(:,:,:,:)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_INTEGER, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_int4d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_dp1d
+!! NAME
+!! xmpi_ibcast_int1d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: double one-dimensional dp arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_dp1d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_DOUBLE_PRECISION, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_dp2d
+!! NAME
+!! xmpi_ibcast_dp2d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: double two-dimensional dp arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_dp2d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:, :)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_DOUBLE_PRECISION, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_dp3d
+!! NAME
+!! xmpi_ibcast_dp3d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: double three-dimensional dp arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_dp3d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:, :, :)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_DOUBLE_PRECISION, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_dp4d
+!! NAME
+!! xmpi_ibcast_dp4d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: double three-dimensional dp arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_dp4d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:, :, :, :)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_DOUBLE_PRECISION, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_dpc2d
+!! NAME
+!! xmpi_ibcast_dpc2d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: double precision two-dimensional complex arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_dpc2d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(dp) ABI_ASYNC, intent(inout) :: xval(:, :)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_dpc2d
+!!***
+
+!!****f* ABINIT/xmpi_ibcast_spc2d
+!! NAME
+!! xmpi_ibcast_spc2d
+!!
+!! FUNCTION
+!! Sends data from one processor to others inside comm without blocking
+!! Target: single precision two-dimensional complex arrays.
+!!
+!! INPUTS
+!! root: rank of broadcast root (integer)
+!! comm: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_ibcast_spc2d(xval, root, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(sp) ABI_ASYNC, intent(inout) :: xval(:, :)
+ integer, intent(in) :: root, comm
+ integer, intent(out) :: request, ierr
+
+! *************************************************************************
+
+ ierr=0
+#ifdef HAVE_MPI_IBCAST
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_IBCAST(xval, product(shape(xval)), MPI_COMPLEX, root, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_bcast(xval, root, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_ibcast_spc2d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_irecv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_irecv.finc
new file mode 100644
index 00000000..55b92362
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_irecv.finc
@@ -0,0 +1,337 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_irecv
+!! NAME
+!! xmpi_irecv
+!!
+!! FUNCTION
+!! This module contains functions that call MPI routine MPI_IRECV,
+!! to receive data on one processor sent by another,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_irecv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! TODO
+!!
+!! SOURCE
+!!***
+
+!!****f* ABINIT/xmpi_irecv_intv
+!! NAME
+!! xmpi_irecv_intv
+!!
+!! FUNCTION
+!! Receives data from one processor sent by another.
+!! Target: single integer.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_IRECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_irecv
+!!
+!! SOURCE
+
+subroutine xmpi_irecv_intv(xval,source,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(inout), target :: xval
+ integer,intent(in) :: source,tag,comm
+ integer,intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+ integer, pointer :: arr_xval(:)
+ type(c_ptr) :: cptr
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag=MOD(tag,xmpi_tag_ub)
+ cptr=c_loc(xval) ; call c_f_pointer(cptr,arr_xval,[1])
+ call MPI_IRECV(arr_xval,1,MPI_INTEGER,source,my_tag,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ end if
+#endif
+
+ end subroutine xmpi_irecv_intv
+!!***
+
+!!****f* ABINIT/xmpi_irecv_int1d
+!! NAME
+!! xmpi_irecv_int1d
+!!
+!! FUNCTION
+!! Sends data from one processor to another.
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_irecv
+!!
+!! SOURCE
+
+subroutine xmpi_irecv_int1d(xval,source,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(inout) :: xval(:)
+ integer,intent(in) :: source,tag,comm
+ integer, intent(out) :: request
+ integer,intent(out) :: ierr
+!Local variables-------------------
+
+#if defined HAVE_MPI
+ integer :: n1,my_tag
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag=MOD(tag,xmpi_tag_ub)
+ n1=size(xval)
+ call MPI_IRECV(xval,n1,MPI_INTEGER,source,my_tag,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ end if
+#endif
+
+ end subroutine xmpi_irecv_int1d
+!!***
+
+!!****f* ABINIT/xmpi_irecv_dp1d
+!! NAME
+!! xmpi_irecv_dp1d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_IRECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_irecv
+!!
+!! SOURCE
+
+subroutine xmpi_irecv_dp1d(xval,source,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:)
+ integer, intent(in) :: source,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag,n1
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag=MOD(tag,xmpi_tag_ub)
+ call MPI_IRECV(xval,n1,MPI_DOUBLE_PRECISION,source,my_tag,comm,request,ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ end if
+#endif
+
+end subroutine xmpi_irecv_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_irecv_dp2d
+!! NAME
+!! xmpi_irecv_dp2d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_IRECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_irecv
+!!
+!! SOURCE
+
+subroutine xmpi_irecv_dp2d(xval,source,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:)
+ integer, intent(in) :: source,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,my_tag,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_IRECV(xval,n1*n2,MPI_DOUBLE_PRECISION,source,my_tag,comm,request,ierr)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_IRECV(xval,1,my_dt,source,my_tag,comm,request,ierr)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xmpi_count_requests = xmpi_count_requests + 1
+ end if
+#endif
+
+end subroutine xmpi_irecv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_irecv_dp3d
+!! NAME
+!! xmpi_irecv_dp3d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_IRECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_irecv
+!!
+!! SOURCE
+
+subroutine xmpi_irecv_dp3d(xval,source,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:,:)
+ integer, intent(in) :: source,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,my_tag,n1,n2,n3
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_IRECV(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,source,my_tag,comm,request,ierr)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_IRECV(xval,1,my_dt,source,my_tag,comm,request,ierr)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xmpi_count_requests = xmpi_count_requests + 1
+ end if
+#endif
+
+end subroutine xmpi_irecv_dp3d
+!!***
+
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_isend.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_isend.finc
new file mode 100644
index 00000000..f26f6dc7
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_isend.finc
@@ -0,0 +1,252 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_isend
+!! NAME
+!! xmpi_isend
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine MPI_ISEND,
+!! to send data from one processor to another,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_isend is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! TODO
+!!
+!! SOURCE
+!!***
+
+!!****f* ABINIT/xmpi_isend_int1d
+!! NAME
+!! xmpi_isend_int1d
+!!
+!! FUNCTION
+!! Sends data from one processor to another.
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_isend_int1d(xval,dest,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(inout) :: xval(:)
+ integer, intent(in) :: dest,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ier,my_tag,n1
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_ISEND(xval,n1,MPI_INTEGER,dest,my_tag,comm,request,ier)
+ xmpi_count_requests = xmpi_count_requests + 1
+ ierr=ier
+ end if
+#endif
+
+ end subroutine xmpi_isend_int1d
+!!***
+
+!!****f* ABINIT/xmpi_isend_dp1d
+!! NAME
+!! xmpi_isend_dp1d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_isend_dp1d(xval,dest,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:)
+ integer, intent(in) :: dest,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ier,my_tag,n1
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_ISEND(xval,n1,MPI_DOUBLE_PRECISION,dest,my_tag,comm,request,ier)
+ xmpi_count_requests = xmpi_count_requests + 1
+ ierr=ier
+ end if
+#endif
+
+end subroutine xmpi_isend_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_isend_dp2d
+!! NAME
+!! xmpi_isend_dp2d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_isend_dp2d(xval,dest,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:)
+ integer, intent(in) :: dest,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ier,my_dt,my_op,my_tag,n1,n2
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_ISEND(xval,n1*n2,MPI_DOUBLE_PRECISION,dest,my_tag,comm,request,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_ISEND(xval,1,my_dt,dest,my_tag,comm,request,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xmpi_count_requests = xmpi_count_requests + 1
+ ierr=ier
+ end if
+#endif
+
+end subroutine xmpi_isend_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_isend_dp3d
+!! NAME
+!! xmpi_isend_dp3d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ierr= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_isend_dp3d(xval,dest,tag,comm,request,ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:,:)
+ integer, intent(in) :: dest,tag,comm
+ integer, intent(out) :: ierr
+ integer, intent(out) :: request
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: ier,my_dt,my_op,my_tag,n1,n2,n3
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_ISEND(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,dest,my_tag,comm,request,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_ISEND(xval,1,my_dt,dest,my_tag,comm,request,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xmpi_count_requests = xmpi_count_requests + 1
+ ierr=ier
+ end if
+#endif
+
+end subroutine xmpi_isend_dp3d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_isum.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_isum.finc
new file mode 100644
index 00000000..9ff9d1ad
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_isum.finc
@@ -0,0 +1,553 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_isum
+!! NAME
+!! xmpi_isum
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_isum is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! MPI_IALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, REQUEST, IERROR)
+!! SENDBUF(*), RECVBUF(*)
+!! INTEGER COUNT, DATATYPE, OP, COMM, REQUEST, IERROR
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_isum_int0d
+!! NAME
+!! xmpi_isum_int0d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: scalar integers. Non-blocking version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_int0d(xval, xsum, comm, request, ierr)
+
+!Arguments-------------------------
+ integer ABI_ASYNC, intent(in), target :: xval
+ integer ABI_ASYNC, intent(out), target :: xsum
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+
+!Local variables-------------------
+ integer :: itmp
+#ifdef HAVE_MPI_IALLREDUCE
+ integer, pointer :: arr_xval(:),arr_xsum(:)
+ type(c_ptr) :: cptr
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ cptr=c_loc(xval) ; call c_f_pointer(cptr,arr_xval,[1])
+ cptr=c_loc(xsum) ; call c_f_pointer(cptr,arr_xsum,[1])
+ call MPI_IALLREDUCE(arr_xval, arr_xsum, 1, MPI_INTEGER, MPI_SUM, comm, request, ierr)
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ xsum = xval; request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ !write(std_out,*)"will block here and return fake request"
+ itmp = xval
+ call xmpi_sum(itmp, comm, ierr)
+ xsum = itmp; request = xmpi_request_null
+
+end subroutine xmpi_isum_int0d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dp2d
+!! NAME
+!! xmpi_isum_ip_dp2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: scalar integers. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dp2d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2
+ real(dp) ABI_ASYNC, allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2)
+ ABI_STAT_MALLOC(xsum,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_dp2d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dp3d
+!! NAME
+!! xmpi_isum_ip_dp3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: scalar integers. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dp3d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2,n3
+ real(dp) ABI_ASYNC, allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2) ; n3 = size(xval,3)
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_dp3d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dp4d
+!! NAME
+!! xmpi_isum_ip_dp4d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: scalar integers. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dp4d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ real(dp) ABI_ASYNC, intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2,n3,n4
+ real(dp) ABI_ASYNC, allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2) ; n3 = size(xval,3) ; n4 = size(xval,4)
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_dp4d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_PRECISION, MPI_SUM, comm, request, ierr)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_spc1d
+!! NAME
+!! xmpi_isum_ip_spc1d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 1d single precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_spc1d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(sp) ABI_ASYNC, intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1
+ complex(sp) ABI_ASYNC, allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1)
+ ABI_STAT_MALLOC(xsum,(n1), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_spc1d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_spc1d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dpc1d
+!! NAME
+!! xmpi_isum_ip_dpc1d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 1d double precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dpc1d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(dp) ABI_ASYNC, intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1
+ complex(dp) ABI_ASYNC, allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1)
+ ABI_STAT_MALLOC(xsum,(n1), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_dpc1d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dpc1d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_spc2d
+!! NAME
+!! xmpi_isum_ip_spc2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 2d single precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_spc2d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(sp) ABI_ASYNC, intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2
+ complex(sp) ABI_ASYNC, allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2)
+ ABI_STAT_MALLOC(xsum,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_spc2d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_spc2d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dpc2d
+!! NAME
+!! xmpi_isum_ip_dpc2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 2d double precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dpc2d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(dp) ABI_ASYNC, intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2
+ complex(dp) ABI_ASYNC, allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2)
+ ABI_STAT_MALLOC(xsum,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_spc2d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dpc2d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_spc3d
+!! NAME
+!! xmpi_isum_ip_spc3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 3d single precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_spc3d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(sp) ABI_ASYNC, intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2,n3
+ complex(sp) ABI_ASYNC, allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2) ; n3 = size(xval,3)
+ ABI_STAT_MALLOC(xsum,(n1,n2,3), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_spc3d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_spc3d
+!!***
+
+!!****f* ABINIT/xmpi_isum_ip_dpc3d
+!! NAME
+!! xmpi_isum_ip_dpc3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 3d double precision complex arrays. Non-blocking INPLACE version.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine xmpi_isum_ip_dpc3d(xval, comm, request, ierr)
+
+!Arguments-------------------------
+ complex(dp) ABI_ASYNC, intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ierr, request
+#if !defined HAVE_MPI2_INPLACE
+ integer :: n1,n2,n3
+ complex(sp) ABI_ASYNC, allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+#ifdef HAVE_MPI_IALLREDUCE
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+#if defined HAVE_MPI2_INPLACE
+ call MPI_IALLREDUCE(MPI_IN_PLACE, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+#else
+ n1 = size(xval,1) ; n2 = size(xval,2) ; n3 = size(xval,3)
+ ABI_STAT_MALLOC(xsum,(n1,n2,3), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_isum_ip_dpc3d')
+ call MPI_IALLREDUCE(xsum, xval, product(shape(xval)), MPI_DOUBLE_COMPLEX, MPI_SUM, comm, request, ierr)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#endif
+ xmpi_count_requests = xmpi_count_requests + 1
+ return
+ end if
+ request = xmpi_request_null
+ return
+#endif
+
+ ! Call the blocking version and return null request.
+ call xmpi_sum(xval, comm, ierr)
+ request = xmpi_request_null
+
+end subroutine xmpi_isum_ip_dpc3d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_land_lor.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_land_lor.finc
new file mode 100644
index 00000000..e4cacbb4
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_land_lor.finc
@@ -0,0 +1,217 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_land_log0d
+!! NAME
+!! xmpi_land_log0d
+!!
+!! FUNCTION
+!! Logical AND accross the nodes.
+!! Combines value from all processes and distribute the result back to all processes.
+!! Target: logical scalar
+!!
+!! SOURCE
+
+subroutine xmpi_land_log0d(xval, comm)
+
+!Arguments ------------------------------------
+ logical,intent(inout) :: xval
+ integer,intent(in) :: comm
+
+!Local variables-------------------------------
+ integer :: ierr
+#if defined HAVE_MPI
+ logical :: out_val(1)
+#endif
+
+! *************************************************************************
+
+ ierr=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([xval], out_val, 1, MPI_LOGICAL, MPI_LAND, comm, ierr)
+ xval = out_val(1)
+ end if
+#endif
+
+end subroutine xmpi_land_log0d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_lor_log1d
+!! NAME
+!! xmpi_lor_log1d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional logical arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_lor_log1d(xval,comm)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: comm
+ logical, DEV_CONTARRD intent(inout) :: xval(:)
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: ierr,n1
+ logical,allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ n1 = size(xval)
+ ABI_STAT_MALLOC(xsum,(n1), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_lor_log1d')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_LOGICAL,MPI_LOR,comm,ierr)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+ end if
+#endif
+
+end subroutine xmpi_lor_log1d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_lor_log2d
+!! NAME
+!! xmpi_lor_log2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: two-dimensional logical arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_lor_log2d(xval,comm)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: comm
+ logical, DEV_CONTARRD intent(inout) :: xval(:,:)
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,ierr
+ integer(kind=int64) :: ntot
+ logical,allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ n1 = size(xval,1)
+ n2 = size(xval,2)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_lor_log2d')
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_ALLREDUCE(xval,xsum,n1*n2,MPI_LOGICAL,MPI_LOR,comm,ierr)
+ else
+ call xmpi_largetype_create(ntot,MPI_LOGICAL,my_dt,my_op,MPI_LOR)
+ call MPI_ALLREDUCE(xval,xsum,1,my_dt,my_op,comm,ierr)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+ end if
+#endif
+
+end subroutine xmpi_lor_log2d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_lor_log3d
+!! NAME
+!! xmpi_lor_log3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: three-dimensional logical arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_lor_log3d(xval,comm)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: comm
+ logical, DEV_CONTARRD intent(inout) :: xval(:,:,:)
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,ierr
+ integer(kind=int64) :: ntot
+ logical,allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ n1 = size(xval,1)
+ n2 = size(xval,2)
+ n3 = size(xval,3)
+
+! #if defined HAVE_MPI2_INPLACE
+! call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1*n2*n3,MPI_LOGICAL,MPI_LOR,comm,ierr)
+! #else
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ierr)
+ if (ierr/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_lor_log3d')
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_ALLREDUCE(xval,xsum,n1*n2*n3,MPI_LOGICAL,MPI_LOR,comm,ierr)
+ else
+ call xmpi_largetype_create(ntot,MPI_LOGICAL,my_dt,my_op,MPI_LOR)
+ call MPI_ALLREDUCE(xval,xsum,1,my_dt,my_op,comm,ierr)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+! #endif
+ end if
+#endif
+
+end subroutine xmpi_lor_log3d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_max.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_max.finc
new file mode 100644
index 00000000..704bd022
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_max.finc
@@ -0,0 +1,316 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_max_int0d_i4b
+!! NAME
+!! xmpi_max_int0d_i4b
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_max is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG,MB)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! CHILDREN
+!! mpi_allreduce
+!!
+!! SOURCE
+
+subroutine xmpi_max_int0d_i4b(xval,xmax,comm,ier)
+
+!Arguments-------------------------
+ integer ,intent(in) :: xval
+ integer, intent(out) :: xmax
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xmax(1)
+#endif
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([xval],arr_xmax,1,MPI_INTEGER,MPI_MAX,comm,ier)
+ xmax=arr_xmax(1)
+ else
+#endif
+ xmax=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_max_int0d_i4b
+!!***
+
+
+!!****f* ABINIT/xmpi_max_int0d_i8b
+!! NAME
+!! xmpi_max_int0d_i8b
+!!
+!! FUNCTION
+!!
+!! CHILDREN
+!! mpi_allreduce
+!!
+!! SOURCE
+
+subroutine xmpi_max_int0d_i8b(xval,xmax,comm,ier)
+
+!Arguments-------------------------
+ integer(i8b) ,intent(in) :: xval
+ integer(i8b), intent(out) :: xmax
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xmax(1)
+#endif
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([xval],arr_xmax,1,MPI_INTEGER8,MPI_MAX,comm,ier)
+ xmax=arr_xmax(1)
+ else
+#endif
+ xmax=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_max_int0d_i8b
+!!***
+
+!!****f* ABINIT/xmpi_max_int
+!! NAME
+!! xmpi_max_int
+!!
+!! SOURCE
+
+subroutine xmpi_max_int(xval,xmax,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(out):: xmax(:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: s1
+
+! *************************************************************************
+ ier=0
+ s1 =SIZE(xval)
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE(xval,xmax,s1,MPI_INTEGER,MPI_MAX,comm,ier)
+ else
+#endif
+ xmax=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_max_int
+!!***
+
+
+!!****f* ABINIT/xmpi_max_dpv
+!! NAME
+!! xmpi_max_dpv
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar double precisions.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xmax= number of elements in send buffer
+!!
+!! SOURCE
+
+subroutine xmpi_max_dpv(xval,xmax,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(in) :: xval
+ real(dp),intent(out) :: xmax
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(dp) :: arr_xmax(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([xval],arr_xmax,1,MPI_DOUBLE_PRECISION,MPI_MAX,comm,ier)
+ xmax=arr_xmax(1)
+ else
+#endif
+ xmax=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_max_dpv
+!!***
+
+!!****f* ABINIT/xmpi_max_int0d_ip
+!! NAME
+!! xmpi_max_int0d_ip
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar integer. In place operation
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval=
+!! in input: the value on the local processor
+!! in output: the maximum inside the given communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_max_int0d_ip(ioval,comm,ier)
+
+!Arguments-------------------------
+ integer ,intent(inout) :: ioval
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xmax(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([ioval],arr_xmax,1,MPI_INTEGER,MPI_MAX,comm,ier)
+ ioval = arr_xmax(1)
+ end if
+#endif
+
+end subroutine xmpi_max_int0d_ip
+!!***
+
+!!****f* ABINIT/xmpi_max_dp0d_ip
+!! NAME
+!! xmpi_max_dp0d_ip
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar double precisions. In place operation
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval=
+!! in input: the value on the local processor
+!! in output: the maximum inside the given communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_max_dp0d_ip(ioval,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(inout) :: ioval
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(dp) :: arr_xmax(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([ioval],arr_xmax,1,MPI_DOUBLE_PRECISION,MPI_MAX,comm,ier)
+ ioval = arr_xmax(1)
+ end if
+#endif
+
+end subroutine xmpi_max_dp0d_ip
+!!***
+
+!!****f* ABINIT/xmpi_max_int1d_ip
+!! NAME
+!! xmpi_max_int1d_ip
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: 1d integer vector. In place operation
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval=
+!! in input: the value on the local processor
+!! in output: the maximum inside the given communicator.
+!!
+!! SOURCE
+
+subroutine xmpi_max_int1d_ip(ioval, comm, ier)
+
+!Arguments-------------------------
+ integer, intent(inout) :: ioval(:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: xmax(size(ioval))
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE(ioval,xmax,size(ioval),MPI_INTEGER,MPI_MAX,comm,ier)
+ ioval = xmax
+ end if
+#endif
+
+end subroutine xmpi_max_int1d_ip
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_min.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_min.finc
new file mode 100644
index 00000000..1d10ad2d
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_min.finc
@@ -0,0 +1,203 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_min_intv
+!! NAME
+!! xmpi_min_intv
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_min is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG,MB)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allreduce
+!!
+!! SOURCE
+
+subroutine xmpi_min_intv(xval,xmin,comm,ier)
+
+!Arguments-------------------------
+ integer ,intent(in) :: xval
+ integer ,intent(out) :: xmin
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xval(1),arr_xmin(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1) = xval
+ call MPI_ALLREDUCE(arr_xval,arr_xmin,1,MPI_INTEGER,MPI_MIN,comm,ier)
+ xmin = arr_xmin(1)
+ else
+#endif
+ xmin=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_min_intv
+!!***
+
+!!****f* ABINIT/xmpi_min_dpv
+!! NAME
+!! xmpi_min_dpv
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar double precisions.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xmin= number of elements in send buffer
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allreduce
+!!
+!! SOURCE
+
+subroutine xmpi_min_dpv(xval,xmin,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(in) :: xval
+ real(dp),intent(out) :: xmin
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(dp) :: arr_xval(1),arr_xmin(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1) = xval
+ call MPI_ALLREDUCE(arr_xval,arr_xmin,1,MPI_DOUBLE_PRECISION,MPI_MIN,comm,ier)
+ xmin = arr_xmin(1)
+ else
+#endif
+ xmin=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_min_dpv
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_min_int1d
+!! NAME
+!! xmpi_min_int1d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: 1d int array, in-place version
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_min_int1d(xval, comm, ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: arr_xmin(size(xval))
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE(xval, arr_xmin, size(xval), MPI_INTEGER, MPI_MIN, comm, ier)
+ xval = arr_xmin
+ end if
+#endif
+
+end subroutine xmpi_min_int1d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_min_dp
+!! NAME
+!! xmpi_min_dp
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: scalar double precisions, in-place version
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_min_dp(xval, comm, ier)
+
+!Arguments-------------------------
+ real(dp),intent(inout) :: xval
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ real(dp) :: arr_xval(1), arr_xmin(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ arr_xval(1) = xval
+ call MPI_ALLREDUCE(arr_xval,arr_xmin,1,MPI_DOUBLE_PRECISION,MPI_MIN,comm,ier)
+ xval = arr_xmin(1)
+ end if
+#endif
+
+end subroutine xmpi_min_dp
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_recv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_recv.finc
new file mode 100644
index 00000000..58d05bf5
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_recv.finc
@@ -0,0 +1,631 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_recv
+!! NAME
+!! xmpi_recv
+!!
+!! FUNCTION
+!! This module contains functions that call MPI routine MPI_RECV,
+!! to receive data on one processor sent by another,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_recv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! TODO
+!!
+!! SOURCE
+!!***
+
+!!****f* ABINIT/xmpi_recv_char
+!! NAME
+!! xmpi_recv_char
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: character.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_char(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ character(len=*), intent(inout),target :: xval
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+ character,pointer :: arr_xval(:)
+ type(c_ptr) :: cptr
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag = MOD(tag,xmpi_tag_ub)
+ cptr=c_loc(xval) ; call c_f_pointer(cptr,arr_xval,[len(xval)])
+ call MPI_RECV(arr_xval,len(xval),MPI_CHARACTER,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ end if
+#endif
+
+end subroutine xmpi_recv_char
+!!***
+
+!!****f* ABINIT/xmpi_recv_intv
+!! NAME
+!! xmpi_recv_intv
+!!
+!! FUNCTION
+!! Receives data from one processor sent by another.
+!! Target: single integer.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_intv(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval
+ integer,intent(in) :: source,tag,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+ integer :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag=MOD(tag,xmpi_tag_ub)
+ call MPI_RECV(arr_xval,1,MPI_INTEGER,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+ end subroutine xmpi_recv_intv
+!!***
+
+!!****f* ABINIT/xmpi_recv_int1d
+!! NAME
+!! xmpi_recv_int1d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_int1d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: source,tag,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag, n1
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_RECV(xval,n1,MPI_INTEGER,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ end if
+#endif
+
+ end subroutine xmpi_recv_int1d
+!!***
+
+!!****f* ABINIT/xmpi_recv_int2d
+!! NAME
+!! xmpi_recv_int2d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: integer two-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_recv
+!!
+!! SOURCE
+subroutine xmpi_recv_int2d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval(:,:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(xval,n1*n2,MPI_INTEGER,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(xval,1,my_dt,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_recv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_recv_int3d
+!! NAME
+!! xmpi_recv_int3d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: integer three-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_recv
+!!
+!! SOURCE
+subroutine xmpi_recv_int3d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(xval,n1*n2*n3,MPI_INTEGER,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(xval,1,my_dt,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_recv_int3d
+!!***
+
+!!****f* ABINIT/xmpi_recv_dp
+!! NAME
+!! xmpi_recv_dp
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision value.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_dp(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+ real(dp) :: arr_xval(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_RECV(arr_xval,1,MPI_DOUBLE_PRECISION,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ xval=arr_xval(1)
+ end if
+#endif
+
+end subroutine xmpi_recv_dp
+!!***
+
+!!****f* ABINIT/xmpi_recv_dp1d
+!! NAME
+!! xmpi_recv_dp1d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_dp1d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1,my_tag
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_RECV(xval,n1,MPI_DOUBLE_PRECISION,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ end if
+#endif
+
+end subroutine xmpi_recv_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_recv_dp2d
+!! NAME
+!! xmpi_recv_dp2d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_dp2d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(xval,n1*n2,MPI_DOUBLE_PRECISION,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(xval,1,my_dt,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_recv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_recv_dp3d
+!! NAME
+!! xmpi_recv_dp3d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_dp3d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(xval,1,my_dt,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_recv_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_recv_dp4d
+!! NAME
+!! xmpi_recv_dp4d
+!!
+!! FUNCTION
+!! Receives data from one proc sent by another.
+!! Target: double precision fourd-dimensional arrays.
+!!
+!! INPUTS
+!! source :: rank of source process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! NOTES
+!! status of MPI_RECV is explicitly ignored
+!!
+!! SOURCE
+
+subroutine xmpi_recv_dp4d(xval,source,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: source,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+ my_tag=MOD(tag,xmpi_tag_ub)
+
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_RECV(xval,n1*n2*n3*n4,MPI_DOUBLE_PRECISION,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_RECV(xval,1,my_dt,source,my_tag,comm,MPI_STATUS_IGNORE,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_recv_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_scatterv.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_scatterv.finc
new file mode 100644
index 00000000..7754cdb8
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_scatterv.finc
@@ -0,0 +1,347 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_scatterv
+!! NAME
+!! xmpi_scatterv
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_scatterv is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (MT)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_int
+!! NAME
+!! xmpi_scatterv_int
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!!
+!! SOURCE
+subroutine xmpi_scatterv_int(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_INTEGER,recvbuf,recvcount,&
+& MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ recvbuf(1:recvcount)=xval(dd+1:dd+recvcount)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_int
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_int2d
+!! NAME
+!! xmpi_scatterv_int2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_scatterv_int2d(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(in) :: xval(:,:)
+ integer, DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_INTEGER,recvbuf,recvcount,&
+& MPI_INTEGER,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(recvbuf,1);cc=recvcount/sz1
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ recvbuf(:,1:cc)=xval(:,dd+1:dd+cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_int2d
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_dp
+!! NAME
+!! xmpi_scatterv_dp
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: one-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_scatterv_dp(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: dd
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_DOUBLE_PRECISION,recvbuf,recvcount,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ dd=0;if (size(displs)>0) dd=displs(1)
+ recvbuf(1:recvcount)=xval(dd+1:dd+recvcount)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_dp
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_dp2d
+!! NAME
+!! xmpi_scatterv_dp2d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: two-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_scatterv_dp2d(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz1
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_DOUBLE_PRECISION,recvbuf,recvcount,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz1=size(recvbuf,1);cc=recvcount/sz1
+ dd=0;if (size(displs)>0) dd=displs(1)/sz1
+ recvbuf(:,1:cc)=xval(:,dd+1:dd+cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_dp3d
+!! NAME
+!! xmpi_scatterv_dp3d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: three-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_scatterv_dp3d(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz12
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_DOUBLE_PRECISION,recvbuf,recvcount,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz12=size(recvbuf,1)*size(recvbuf,2);cc=recvcount/sz12
+ dd=0;if (size(displs)>0) dd=displs(1)/sz12
+ recvbuf(:,:,1:cc)=xval(:,:,dd+1:dd+cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_scatterv_dp4d
+!! NAME
+!! xmpi_scatterv_dp4d
+!!
+!! FUNCTION
+!! Gathers data from all tasks and delivers it to all.
+!! Target: four-dimensional real arrays.
+!!
+!! INPUTS
+!! xval= buffer array
+!! recvcount= number of received elements
+!! displs= relative offsets for incoming data (array)
+!! sendcounts= number of sent elements (array)
+!! root= rank of receiving process
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! recvbuf= received buffer
+!!
+!! SOURCE
+
+subroutine xmpi_scatterv_dp4d(xval,sendcounts,displs,recvbuf,recvcount,root,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:,:,:)
+ real(dp), DEV_CONTARRD intent(inout) :: recvbuf(:,:,:,:)
+ integer, DEV_CONTARRD intent(in) :: sendcounts(:),displs(:)
+ integer,intent(in) :: recvcount,root,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+ integer :: cc,dd,sz123
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_SCATTERV(xval,sendcounts,displs,MPI_DOUBLE_PRECISION,recvbuf,recvcount,&
+& MPI_DOUBLE_PRECISION,root,comm,ier)
+ else if (comm == MPI_COMM_SELF) then
+#endif
+ sz123=size(recvbuf,1)*size(recvbuf,2)*size(recvbuf,2);cc=recvcount/sz123
+ dd=0;if (size(displs)>0) dd=displs(1)/sz123
+ recvbuf(:,:,:,1:cc)=xval(:,:,:,dd+1:dd+cc)
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_scatterv_dp4d
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_send.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_send.finc
new file mode 100644
index 00000000..fb6ec8fc
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_send.finc
@@ -0,0 +1,580 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_send
+!! NAME
+!! xmpi_send
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine MPI_SEND,
+!! to send data from one processor to another,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_send is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+!!***
+
+!!****f* ABINIT/xmpi_send_char
+!! NAME
+!! xmpi_send_char
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: character.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_char(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ character(len=*),intent(inout),target :: xval
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+ character,pointer :: arr_xval(:)
+ type(c_ptr) :: cptr
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag = MOD(tag,xmpi_tag_ub)
+ cptr=c_loc(xval) ; call c_f_pointer(cptr,arr_xval,[len(xval)])
+ call MPI_SEND(arr_xval,len(xval),MPI_CHARACTER,dest,my_tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_send_char
+!!***
+
+!!****f* ABINIT/xmpi_send_intv
+!! NAME
+!! xmpi_send_intv
+!!
+!! FUNCTION
+!! Sends data from one processor to another.
+!! Target: single integer.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_intv(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval
+ integer,intent(in) :: dest,tag,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_SEND([xval],1,MPI_INTEGER,dest,my_tag,comm,ier)
+ end if
+#endif
+
+ end subroutine xmpi_send_intv
+
+!!***
+
+!!****f* ABINIT/xmpi_send_int1d
+!! NAME
+!! xmpi_send_int1d
+!!
+!! FUNCTION
+!! Sends data from one processor to another.
+!! Target: integer one-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_int1d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: dest,tag,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag, n1
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_SEND(xval,n1,MPI_INTEGER,dest,my_tag,comm,ier)
+ end if
+#endif
+
+ end subroutine xmpi_send_int1d
+!!***
+
+!!****f* ABINIT/xmpi_send_int2d
+!! NAME
+!! xmpi_send_int2d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: integer two-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_send
+!!
+!! SOURCE
+subroutine xmpi_send_int2d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval(:,:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(xval,n1*n2,MPI_INTEGER,dest,my_tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(xval,1,my_dt,dest,my_tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_send_int2d
+!!***
+
+!!****f* ABINIT/xmpi_send_int3d
+!! NAME
+!! xmpi_send_int3d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: integer three-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_send
+!!
+!! SOURCE
+
+subroutine xmpi_send_int3d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(xval,n1*n2*n3,MPI_INTEGER,dest,my_tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(xval,1,my_dt,dest,my_tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_send_int3d
+!!***
+
+!!****f* ABINIT/xmpi_send_dp
+!! NAME
+!! xmpi_send_dp
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision value.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_dp(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_tag
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_SEND([xval],1,MPI_DOUBLE_PRECISION,dest,my_tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_send_dp
+!!***
+
+!!****f* ABINIT/xmpi_send_dp1d
+!! NAME
+!! xmpi_send_dp1d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_dp1d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1,my_tag
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ my_tag = MOD(tag,xmpi_tag_ub)
+ call MPI_SEND(xval,n1,MPI_DOUBLE_PRECISION,dest,my_tag,comm,ier)
+ end if
+#endif
+
+end subroutine xmpi_send_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_send_dp2d
+!! NAME
+!! xmpi_send_dp2d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_dp2d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(xval,n1*n2,MPI_DOUBLE_PRECISION,dest,my_tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(xval,1,my_dt,dest,my_tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_send_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_send_dp3d
+!! NAME
+!! xmpi_send_dp3d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_dp3d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,dest,my_tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(xval,1,my_dt,dest,my_tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_send_dp3d
+!!***
+!
+
+!!****f* ABINIT/xmpi_send_dp4d
+!! NAME
+!! xmpi_send_dp4d
+!!
+!! FUNCTION
+!! Sends data from one proc to another.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! dest :: rank of destination process
+!! tag :: integer message tag
+!! comm :: MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_send_dp4d(xval,dest,tag,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: dest,tag,comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,my_tag
+ integer(kind=int64) :: ntot
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1=size(xval,dim=1)
+ n2=size(xval,dim=2)
+ n3=size(xval,dim=3)
+ n4=size(xval,dim=4)
+ my_tag = MOD(tag,xmpi_tag_ub)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_SEND(xval,n1*n2*n3*n4,MPI_DOUBLE_PRECISION,dest,my_tag,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_OP_NULL)
+ call MPI_SEND(xval,1,my_dt,dest,my_tag,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ end if
+#endif
+
+end subroutine xmpi_send_dp4d
+!!***
+!
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_sum.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_sum.finc
new file mode 100644
index 00000000..93645d01
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_sum.finc
@@ -0,0 +1,3725 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_sum_int
+!! NAME
+!! xmpi_sum_int
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_sum is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG,MB)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! MPI2 defines an option MPI_IN_PLACE to do the SUM in-place in the case of intra-communicators.
+!! The additional array xsum is therefore not needed if MPI_INPLACE is defined.
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allreduce,xmpi_abort
+!!
+!! SOURCE
+
+subroutine xmpi_sum_int(xval,comm,ier)
+
+!Arguments ------------------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: n1
+ integer,allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ n1 = size(xval)
+
+ ! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_INTEGER,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_int')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_INTEGER,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ end if
+#endif
+
+end subroutine xmpi_sum_int
+!!***
+
+!> wrapper arround xmpi_sum_int than can be called in C/CUDA
+subroutine xmpi_sum_int_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_int_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), value, intent(in) :: xval_size
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval(:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, [xval_size])
+
+ call xmpi_sum_int(xval, comm, ier)
+
+end subroutine xmpi_sum_int_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_intv
+!! NAME
+!! xmpi_sum_intv
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar integers.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_intv(xval,comm,ier)
+
+!Arguments----------------------
+ integer,intent(inout) :: xval
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables----------------
+#if defined HAVE_MPI
+ integer :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_INTEGER,MPI_SUM,comm,ier)
+ xval = arr_xsum(1)
+ end if
+#endif
+end subroutine xmpi_sum_intv
+!!***
+
+!> wrapper arround xmpi_sum_intv than can be called in C/CUDA
+subroutine xmpi_sum_intv_c(xval_ptr,comm,ier) bind(c, name="xmpi_sum_intv_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval => null()
+
+ ! convert the c pointer into a fortran variable
+ call c_f_pointer(xval_ptr, xval)
+
+ call xmpi_sum_intv(xval, comm, ier)
+
+end subroutine xmpi_sum_intv_c
+
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_intv2
+!! NAME
+!! xmpi_sum_intv2
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar integer without transfers.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xsum= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_sum_intv2(xval,xsum,comm,ier)
+
+!Arguments---------------------
+ integer,intent(inout) :: xval,xsum
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables----------------
+#if defined HAVE_MPI
+ integer :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_INTEGER,MPI_SUM,comm,ier)
+ xsum=arr_xsum(1)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_intv2
+!!***
+
+!> wrapper arround xmpi_sum_intv2 than can be called in C/CUDA
+subroutine xmpi_sum_intv2_c(xval_ptr,xsum_ptr,comm,ier) bind(c, name="xmpi_sum_intv2_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ type(c_ptr), intent(inout) :: xsum_ptr
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval => null()
+ integer, pointer :: xsum => null()
+
+ ! convert the c pointer into a fortran variable
+ call c_f_pointer(xval_ptr, xval)
+ call c_f_pointer(xsum_ptr, xsum)
+
+ call xmpi_sum_intv2(xval, xsum, comm, ier)
+
+end subroutine xmpi_sum_intv2_c
+
+!!****f* ABINIT/xmpi_sum_intn
+!! NAME
+!! xmpi_sum_intn
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional integer arrays.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_intn(xval,n1,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: n1
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ integer , allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_INTEGER,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_intn')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_INTEGER,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_intn
+!!***
+
+!> wrapper arround xmpi_sum_intn than can be called in C/CUDA
+subroutine xmpi_sum_intn_c(xval_ptr,xval_size,n1,comm,ier) bind(c, name="xmpi_sum_intn_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), value, intent(in) :: xval_size
+ integer(kind=c_int32_t), intent(in) :: n1
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval(:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, [xval_size])
+
+ call xmpi_sum_intn(xval, n1, comm, ier)
+
+end subroutine xmpi_sum_intn_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_int2t
+!! NAME
+!! xmpi_sum_int2t
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional integer array without transfers.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xsum= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_sum_int2t(xval,xsum,n1,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:),xsum(:)
+ integer,intent(in) :: n1
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_INTEGER,MPI_SUM,comm,ier)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_int2t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_int2d
+!! NAME
+!! xmpi_sum_int2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_int2d(xval,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ integer,allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2 ; my_dt=MPI_INTEGER ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_int2d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_int2d
+!!***
+
+!> wrapper arround xmpi_sum_int2d than can be called in C/CUDA
+subroutine xmpi_sum_int2d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_int2d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(2)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval(:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_int2d(xval, comm, ier)
+
+end subroutine xmpi_sum_int2d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_int3d
+!! NAME
+!! xmpi_sum_int3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: three-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_int3d(xval,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ integer,allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3 ; my_dt=MPI_INTEGER ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+#endif
+ else
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_int3d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_int3d
+!!***
+
+!> wrapper arround xmpi_sum_int3d than can be called in C/CUDA
+subroutine xmpi_sum_int3d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_int3d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(3)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval(:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_int3d(xval, comm, ier)
+
+end subroutine xmpi_sum_int3d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_int4d
+!! NAME
+!! xmpi_sum_int4d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: four-dimensional integer arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_int4d(xval,comm,ier)
+
+!Arguments-------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ integer,allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4 ; my_dt=MPI_INTEGER ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_int4d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_int4d
+!!***
+
+!> wrapper arround xmpi_sum_int4d than can be called in C/CUDA
+subroutine xmpi_sum_int4d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_int4d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(4)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ integer, pointer :: xval(:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_int4d(xval, comm, ier)
+
+end subroutine xmpi_sum_int4d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp
+!! NAME
+!! xmpi_sum_dp
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional double precision arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1,nproc_space_comm
+ real(dp),allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval)
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp
+!!***
+
+!> wrapper arround xmpi_sum_dp than can be called in C/CUDA
+subroutine xmpi_sum_dp_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), value, intent(in) :: xval_size
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, [xval_size])
+
+ call xmpi_sum_dp(xval, comm, ier)
+
+end subroutine xmpi_sum_dp_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dpvt
+!! NAME
+!! xmpi_sum_dpvt
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar double precisions.
+!!
+!! INPUTS
+!! xval= buffer array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! xsum= receive buffer
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! None
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dpvt(xval,xsum,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(in) :: xval
+ real(dp),intent(out) :: xsum
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ real(dp) :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ xsum=arr_xsum(1)
+ else
+ xsum=xval
+ end if
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_dpvt
+!!***
+
+!> wrapper arround xmpi_sum_dpvt than can be called in C/CUDA
+subroutine xmpi_sum_dpvt_c(xval_ptr,xsum_ptr,comm,ier) bind(c, name="xmpi_sum_dpvt_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ type(c_ptr), intent(inout) :: xsum_ptr
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval => null()
+ real(dp), pointer :: xsum => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval)
+ call c_f_pointer(xsum_ptr, xsum)
+
+ call xmpi_sum_dpvt(xval, xsum, comm, ier)
+
+end subroutine xmpi_sum_dpvt_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dpv
+!! NAME
+!! xmpi_sum_dpv
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: scalar double precisions.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_dpv(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(inout) :: xval
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ real(dp) :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ xval = arr_xsum(1)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dpv
+!!***
+
+!> wrapper arround xmpi_sum_dpv than can be called in C/CUDA
+subroutine xmpi_sum_dpv_c(xval_ptr,comm,ier) bind(c, name="xmpi_sum_dpv_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval)
+
+ call xmpi_sum_dpv(xval, comm, ier)
+
+end subroutine xmpi_sum_dpv_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dpn
+!! NAME
+!! xmpi_sum_dpn
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional double precision arrays.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dpn(xval,n1,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: n1
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ real(dp) , allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dpn')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dpn
+!!***
+
+!> wrapper arround xmpi_sum_dpn than can be called in C/CUDA
+subroutine xmpi_sum_dpn_c(xval_ptr,xval_size,n1,comm,ier) bind(c, name="xmpi_sum_dpn_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), value, intent(in) :: xval_size
+ integer(kind=c_int32_t), intent(in) :: n1
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, [xval_size])
+
+ call xmpi_sum_dpn(xval, n1, comm, ier)
+
+end subroutine xmpi_sum_dpn_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp2d
+!! NAME
+!! xmpi_sum_sp2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_sp2d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp),allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp2d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp2d
+!!***
+
+!> wrapper arround xmpi_sum_sp2d than can be called in C/CUDA
+subroutine xmpi_sum_sp2d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp2d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(2)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp2d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp2d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp3d
+!! NAME
+!! xmpi_sum_sp3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_sp3d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp),allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp3d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp3d
+!!***
+
+!> wrapper arround xmpi_sum_sp3d than can be called in C/CUDA
+subroutine xmpi_sum_sp3d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp3d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(3)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp3d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp3d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp4d
+!! NAME
+!! xmpi_sum_sp4d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_sp4d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp),DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp),allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp4d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp4d
+!!***
+
+!> wrapper arround xmpi_sum_sp4d than can be called in C/CUDA
+subroutine xmpi_sum_sp4d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp4d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(4)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp4d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp4d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp5d
+!! NAME
+!! xmpi_sum_sp5d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision five-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_sp5d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp),allocatable :: xsum(:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp5d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp5d
+!!***
+
+!> wrapper arround xmpi_sum_sp5d than can be called in C/CUDA
+subroutine xmpi_sum_sp5d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp5d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(5)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp5d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp5d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp6d
+!! NAME
+!! xmpi_sum_sp6d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_sp6d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp), allocatable :: xsum(:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp6d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:,:) = xsum(:,:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp6d
+!!***
+
+!> wrapper arround xmpi_sum_sp6d than can be called in C/CUDA
+subroutine xmpi_sum_sp6d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp6d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(6)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp6d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp6d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_sp7d
+!! NAME
+!! xmpi_sum_sp7d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_sp7d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(sp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,n7,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(sp),allocatable :: xsum(:,:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+ n7 = size(xval,dim=7)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6*n7,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6*n7 ; my_dt=MPI_REAL ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_REAL,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6,n7), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_sp7d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:,:,:) = xsum(:,:,:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_sp7d
+!!***
+
+!> wrapper arround xmpi_sum_sp7d than can be called in C/CUDA
+subroutine xmpi_sum_sp7d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_sp7d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(7)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(sp), pointer :: xval(:,:,:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_sp7d(xval, comm, ier)
+
+end subroutine xmpi_sum_sp7d_c
+
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp2d
+!! NAME
+!! xmpi_sum_dp2d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp2d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp),allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp2d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp2d
+!!***
+
+!> wrapper arround xmpi_sum_dp2d than can be called in C/CUDA
+subroutine xmpi_sum_dp2d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp2d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(2)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp2d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp2d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp3d
+!! NAME
+!! xmpi_sum_dp3d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp3d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp),allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp3d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp3d
+!!***
+
+!> wrapper arround xmpi_sum_dp3d than can be called in C/CUDA
+subroutine xmpi_sum_dp3d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp3d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(3)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp3d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp3d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp4d
+!! NAME
+!! xmpi_sum_dp4d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp4d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp),DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp),allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp4d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp4d
+!!***
+
+!> wrapper arround xmpi_sum_dp4d than can be called in C/CUDA
+subroutine xmpi_sum_dp4d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp4d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(4)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp4d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp4d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp5d
+!! NAME
+!! xmpi_sum_dp5d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision five-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp5d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp),allocatable :: xsum(:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp5d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp5d
+!!***
+
+!> wrapper arround xmpi_sum_dp5d than can be called in C/CUDA
+subroutine xmpi_sum_dp5d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp5d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(5)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp5d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp5d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp6d
+!! NAME
+!! xmpi_sum_dp6d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+subroutine xmpi_sum_dp6d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp), allocatable :: xsum(:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp6d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:,:) = xsum(:,:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp6d
+!!***
+
+!> wrapper arround xmpi_sum_dp6d than can be called in C/CUDA
+subroutine xmpi_sum_dp6d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp6d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(6)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp6d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp6d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp7d
+!! NAME
+!! xmpi_sum_dp7d
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp7d(xval,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:,:)
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,n7,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ real(dp),allocatable :: xsum(:,:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+ n7 = size(xval,dim=7)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6*n7,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6*n7 ; my_dt=MPI_DOUBLE_PRECISION ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6,n7), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_dp7d')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:,:,:) = xsum(:,:,:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_dp7d
+!!***
+
+!> wrapper arround xmpi_sum_dp7d than can be called in C/CUDA
+subroutine xmpi_sum_dp7d_c(xval_ptr,xval_size,comm,ier) bind(c, name="xmpi_sum_dp7d_c")
+
+ use, intrinsic :: iso_c_binding, only: c_associated,c_loc,c_ptr,c_f_pointer,c_int32_t
+ implicit none
+
+ ! dummy args
+ type(c_ptr), intent(inout) :: xval_ptr
+ integer(kind=c_int32_t), intent(in) :: xval_size(7)
+ integer(kind=c_int32_t), intent(in) :: comm
+ integer(kind=c_int32_t), intent(out) :: ier
+
+ ! local vars
+ real(dp), pointer :: xval(:,:,:,:,:,:,:) => null()
+
+ ! convert the c pointer into a fortran array
+ call c_f_pointer(xval_ptr, xval, xval_size)
+
+ call xmpi_sum_dp7d(xval, comm, ier)
+
+end subroutine xmpi_sum_dp7d_c
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp2t
+!! NAME
+!! xmpi_sum_dp2t
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision one-dimensional array without transfers.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xsum= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp2t(xval,xsum,n1,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:),xsum(:)
+ integer ,intent(in) :: n1
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_dp2t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp2d2t
+!! NAME
+!! xmpi_sum_dp2d2t
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precisions bi-dimensional array
+!!
+!! INPUTS
+!! n = total send size
+!! xval= buffer array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! xsum= receive buffer
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp2d2t(xval,xsum,n,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(in) :: xval(:,:)
+ real(dp), DEV_CONTARRD intent(out) :: xsum(:,:)
+ integer ,intent(in) :: n
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE(xval,xsum,n,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_dp2d2t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp3d2t
+!! NAME
+!! xmpi_sum_dp3d2t
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision three-dimensional array without transfers.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xsum= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp3d2t(xval,xsum,n1,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:),xsum(:,:,:)
+ integer ,intent(in) :: n1
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_dp3d2t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_dp4d2t
+!! NAME
+!! xmpi_sum_dp4d2t
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: double precision four-dimensional array without transfers.
+!!
+!! INPUTS
+!! n1= first dimension of the array
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!! xsum= receive buffer
+!!
+!! SOURCE
+
+subroutine xmpi_sum_dp4d2t(xval,xsum,n1,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:),xsum(:,:,:,:)
+ integer ,intent(in) :: n1
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ xsum=xval
+#if defined HAVE_MPI
+ end if
+#endif
+
+end subroutine xmpi_sum_dp4d2t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c0dc
+!! NAME
+!! xmpi_sum_c0dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: double complex scalar
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= scalar to be summed.
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c0dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc),intent(inout) :: xval
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ complex(dpc) :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_DOUBLE_COMPLEX,MPI_SUM,comm,ier)
+ xval = arr_xsum(1)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c0dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c0sc
+!! NAME
+!! xmpi_sum_c0sc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: single-precision complex scalar
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= scalar to be summed.
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c0sc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(sp),intent(inout) :: xval
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ complex(sp) :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ ! Accumulate xval on all proc. in comm
+ call MPI_ALLREDUCE([xval],arr_xsum,1,MPI_COMPLEX,MPI_SUM,comm,ier)
+ xval = arr_xsum(1)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c0sc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c1dc
+!! NAME
+!! xmpi_sum_c1dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c1dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1,nproc_space_comm
+ complex(dpc) , allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_DOUBLE_COMPLEX,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c1dc')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_DOUBLE_COMPLEX,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c1dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c2dc
+!! NAME
+!! xmpi_sum_c2dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: two-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c2dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c2dc')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c2dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c3dc
+!! NAME
+!! xmpi_sum_c3dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: three-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c3dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c3dc')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ end if
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c3dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c4dc
+!! NAME
+!! xmpi_sum_c4dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: four-dimensional double complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c4dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c4dc')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c4dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c5dc
+!! NAME
+!! xmpi_sum_c5dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: five-dimensional double precision complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c5dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+ n5 =size(xval,dim=5)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier/=0) call xmpi_abort(comm,msg='error allocating xsum in xmpi_sum_c5dc')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c5dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c6dc
+!! NAME
+!! xmpi_sum_c6dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: six-dimensional double precision complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c6dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+ n5 =size(xval,dim=5)
+ n6 =size(xval,dim=6)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6), ier)
+ if (ier/=0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c6dc')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval = xsum
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c6dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c7dc
+!! NAME
+!! xmpi_sum_c7dc
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: six-dimensional double precision complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c7dc(xval,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,n7,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+ n5 =size(xval,dim=5)
+ n6 =size(xval,dim=6)
+ n7 =size(xval,dim=7)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6*n7,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6*n7 ; my_dt=MPI_DOUBLE_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6,n7),ier)
+ if (ier/=0) then
+ call xmpi_abort(comm=comm,msg='error allocating xsum in xmpi_sum_c7dc')
+ end if
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval = xsum
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c7dc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c1cplx
+!! NAME
+!! xmpi_sum_c1cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: one-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c1cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: n1,nproc_space_comm
+ complex(spc),allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,n1,MPI_COMPLEX,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c1cplx')
+ call MPI_ALLREDUCE(xval,xsum,n1,MPI_COMPLEX,MPI_SUM,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c1cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c2cplx
+!! NAME
+!! xmpi_sum_c2cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: two-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c2cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(spc), allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2 ; my_dt=MPI_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c2cplx')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c2cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c3cplx
+!! NAME
+!! xmpi_sum_c3cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: three-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allreduce,xmpi_abort
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c3cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(spc), allocatable :: xsum(:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3 ; my_dt=MPI_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c3cplx')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c3cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c4cplx
+!! NAME
+!! xmpi_sum_c4cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: four-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!! mpi_allreduce,xmpi_abort
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c4cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(spc),allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4 ; my_dt=MPI_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c4cplx')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c4cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c5cplx
+!! NAME
+!! xmpi_sum_c5cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute
+!! the result back to all processes.
+!! Target: five-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c5cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(spc),allocatable :: xsum(:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+ n5 =size(xval,dim=5)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5 ; my_dt=MPI_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c5cplx')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c5cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_c6cplx
+!! NAME
+!! xmpi_sum_c6cplx
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: six-dimensional complex arrays.
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_c6cplx(xval,comm,ier)
+
+!Arguments----------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables--------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,nn,nproc_space_comm
+ integer(kind=int64) :: ntot
+ complex(spc),allocatable :: xsum(:,:,:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 =size(xval,dim=1)
+ n2 =size(xval,dim=2)
+ n3 =size(xval,dim=3)
+ n4 =size(xval,dim=4)
+ n5 =size(xval,dim=5)
+ n6 =size(xval,dim=6)
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+ if (ntot<=xmpi_maxint32_64) then
+ nn=n1*n2*n3*n4*n5*n6 ; my_dt=MPI_COMPLEX ; my_op=MPI_SUM
+ else
+ nn=1 ; call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ end if
+
+! Accumulate xval on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations .and. my_op == MPI_SUM) then
+ if (my_op/=MPI_SUM) call xmpi_abort(msg="Too many data for in-place reductions!")
+ call MPI_ALLREDUCE(MPI_IN_PLACE,xval,nn,my_dt,my_op,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum_c6cplx')
+ call MPI_ALLREDUCE(xval,xsum,nn,my_dt,my_op,comm,ier)
+ xval = xsum
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+ if (ntot>xmpi_maxint32_64) call xmpi_largetype_free(my_dt,my_op)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_c6cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_coeff5d1
+!! NAME
+!! xmpi_sum_coeff5d1
+!!
+!! FUNCTION
+!! Combines values from all processes and distribute the result back to all processes.
+!! Target: coeff5_type 1D-structure
+!!
+!! INPUTS
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval = coeff5d_type array structure (input and output)
+!!
+!! SOURCE
+
+subroutine xmpi_sum_coeff5d1(xval,comm,ier)
+
+!Arguments ------------------------------------
+ type(coeff5_type),intent(inout) :: xval(:)
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: buf_size,i2,i3,i4,i5,ii,indx_buf,n1,n2,n3,n4,n5,nb,nproc_space_comm
+ integer, allocatable :: dims(:,:)
+ real(dp),allocatable :: buf(:),xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_SELF .and. comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ nb = size(xval,1)
+
+! Retrieve sizes of 'value' fields
+ ABI_MALLOC(dims,(5,nb))
+ buf_size=0
+ do ii=1,nb
+ if (.not.allocated(xval(ii)%value)) &
+& call xmpi_abort(msg='bug in xmpi_sum(coeff5): xval should be allocated!')
+ dims(1,ii)=size(xval(ii)%value,dim=1)
+ dims(2,ii)=size(xval(ii)%value,dim=2)
+ dims(3,ii)=size(xval(ii)%value,dim=3)
+ dims(4,ii)=size(xval(ii)%value,dim=4)
+ dims(5,ii)=size(xval(ii)%value,dim=5)
+ buf_size=buf_size+dims(1,ii)*dims(2,ii)*dims(3,ii)*dims(4,ii)*dims(5,ii)
+ end do
+
+! Fill in buffer
+ ABI_STAT_MALLOC(buf,(buf_size) ,ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating buf in xmpi_sum(coeff5)!')
+ indx_buf=1
+ do ii=1,nb
+ n1=dims(1,ii); n2=dims(2,ii)
+ n3=dims(3,ii); n4=dims(4,ii); n5=dims(5,ii)
+ do i5=1,n5
+ do i4=1,n4
+ do i3=1,n3
+ do i2=1,n2
+ buf(indx_buf:indx_buf+n1-1)=xval(ii)%value(1:n1,i2,i3,i4,i5)
+ indx_buf=indx_buf+n1
+ end do
+ end do
+ end do
+ end do
+ end do
+
+! Accumulate xval%value on all proc. in comm
+#if defined HAVE_MPI2_INPLACE
+ if (xmpi_use_inplace_operations) then
+ call MPI_ALLREDUCE(MPI_IN_PLACE,buf,buf_size,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ else
+#endif
+ ABI_STAT_MALLOC(xsum,(buf_size), ier)
+ if (ier/= 0) call xmpi_abort(msg='error allocating xsum in xmpi_sum(coeff5)!')
+ call MPI_ALLREDUCE(buf,xsum,buf_size,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ier)
+ buf = xsum
+ ABI_FREE(xsum)
+#if defined HAVE_MPI2_INPLACE
+ endif
+#endif
+
+! Transfer buffer into output datastructure
+ indx_buf=1
+ do ii=1,nb
+ n1=dims(1,ii); n2=dims(2,ii)
+ n3=dims(3,ii); n4=dims(4,ii); n5=dims(5,ii)
+ do i5=1,n5
+ do i4=1,n4
+ do i3=1,n3
+ do i2=1,n2
+ xval(ii)%value(1:n1,i2,i3,i4,i5)=buf(indx_buf:indx_buf+n1-1)
+ indx_buf=indx_buf+n1
+ end do
+ end do
+ end do
+ end do
+ end do
+
+ ABI_FREE(dims)
+ ABI_FREE(buf)
+
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_coeff5d1
+!!***
diff --git a/GX-PAW/common/src/12_hide_mpi/xmpi_sum_master.finc b/GX-PAW/common/src/12_hide_mpi/xmpi_sum_master.finc
new file mode 100644
index 00000000..f487ac90
--- /dev/null
+++ b/GX-PAW/common/src/12_hide_mpi/xmpi_sum_master.finc
@@ -0,0 +1,1485 @@
+!{\src2tex{textfont=tt}}
+!!****f* ABINIT/xmpi_sum_master
+!! NAME
+!! xmpi_sum_master
+!!
+!! FUNCTION
+!! This module contains functions that calls MPI routine,
+!! if we compile the code using the MPI CPP flags.
+!! xmpi_sum_master is the generic function.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2001-2024 ABINIT group (AR,XG,MB)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~ABINIT/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! The workspace array xsum is filled to zeros to avoid SIFPE in [mpiio][t28_MPI4][np=4] on tikal_gnu_4.9_mpich
+!! On this bot, the code is compiled with -ffpe-trap and the illegal operation in the MPI library
+!! make tests using xmpi_sum_master abort.
+!! Strictly speaking the initialization is not needed because xsum has intent(out) --> bug in mpich3-3.1.3 (gcc492)
+!!
+!! SOURCE
+
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_int
+!! NAME
+!! xmpi_sum_master_int
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: integer scalars.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_int(xval,master,comm,ier)
+
+!Arguments-------------------------
+ integer,intent(inout) :: xval
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ integer :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+! Accumulate xval on all proc. in comm
+ call MPI_REDUCE([xval],arr_xsum,1,MPI_INTEGER,MPI_SUM,master,comm,ier)
+ xval = arr_xsum(1)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_int
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp
+!! NAME
+!! xmpi_sum_master_p
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: integer scalars.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp),intent(inout) :: xval
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: nproc_space_comm
+ real(dp) :: arr_xsum(1)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+! Accumulate xval on all proc. in comm
+ call MPI_REDUCE([xval],arr_xsum,1,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ xval = arr_xsum(1)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_dp
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_int2d
+!! NAME
+!! xmpi_sum_master_int2d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: two-dimensional integer arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_int2d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: master,comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+ integer, allocatable :: xsum(:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = 0 ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2,MPI_INTEGER,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval = xsum
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_int2d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp1d
+!! NAME
+!! xmpi_sum_master_dp1d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision one-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp1d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1
+ real(dp) , allocatable :: xsum(:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+! Accumulate xval on all proc. in comm
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+ call MPI_REDUCE(xval,xsum,n1,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_dp1d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp2d
+!! NAME
+!! xmpi_sum_master_dp2d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision two-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp2d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+ real(dp) , allocatable :: xsum(:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_dp2d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp3d
+!! NAME
+!! xmpi_sum_master_dp3d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision three-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp3d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: ntot
+ real(dp) , allocatable :: xsum(:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_dp3d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp4d
+!! NAME
+!! xmpi_sum_master_dp4d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision four-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp4d(xval,master,comm,ier)
+
+!Arguments-------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: ntot
+ real(dp) , allocatable :: xsum(:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_dp4d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp5d
+!! NAME
+!! xmpi_sum_master_dp5d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision five-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp5d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5
+ integer(kind=int64) :: ntot
+ real(dp), allocatable :: xsum(:,:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4*n5,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_dp5d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp6d
+!! NAME
+!! xmpi_sum_master_dp6d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision six-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp6d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6
+ integer(kind=int64) :: ntot
+ real(dp), allocatable :: xsum(:,:,:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4*n5*n6,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:,:,:) = xsum(:,:,:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_dp6d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_dp7d
+!! NAME
+!! xmpi_sum_master_dp7d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: double precision seven-dimensional arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_dp7d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:,:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5,n6,n7
+ integer(kind=int64) :: ntot
+ real(dp), allocatable :: xsum(:,:,:,:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+ n6 = size(xval,dim=6)
+ n7 = size(xval,dim=7)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5,n6,n7), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = zero ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5*n6*n7,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4*n5*n6*n7,MPI_DOUBLE_PRECISION,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_PRECISION,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:,:,:,:) = xsum(:,:,:,:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_dp7d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_int4d
+!! NAME
+!! xmpi_sum_master_int4d
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: four-diemnsional integer arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_int4d(xval,master,comm,ier)
+
+!Arguments ------------------------------------
+ integer, DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: ntot
+ integer, allocatable :: xsum(:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = 0 ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4,MPI_INTEGER,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_INTEGER,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_int4d
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c1cplx
+!! NAME
+!! xmpi_sum_master_c1cplx
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: one-dimensional complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c1cplx(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1,nproc_space_comm
+ complex(spc),allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_sp,0_sp) ! See notes
+! Collect xval from processors on master in comm
+ call MPI_REDUCE(xval,xsum,n1,MPI_COMPLEX,MPI_SUM,master,comm,ier)
+ xval = xsum
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_c1cplx
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c2cplx
+!! NAME
+!! xmpi_sum_master_c2cplx
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: two-dimensional complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c2cplx(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+ integer :: nproc_space_comm
+ complex(spc),allocatable :: xsum(:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_sp,0_sp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2,MPI_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_c2cplx
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c3cplx
+!! NAME
+!! xmpi_sum_master_c3cplx
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: three-dimensional complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c3cplx(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: ntot
+ complex(spc), allocatable :: xsum(:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_sp,0_sp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3,MPI_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_c3cplx
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c4cplx
+!! NAME
+!! xmpi_sum_master_c4cplx
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: four-dimensional complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c4cplx(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: ntot
+ integer :: nproc_space_comm
+ complex(spc), allocatable :: xsum(:,:,:,:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_sp,0_sp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4,MPI_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_c4cplx
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* ABINIT/xmpi_sum_master_c5cplx
+!! NAME
+!! xmpi_sum_master_c5cplx
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: five-dimensional single precision complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c5cplx(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(spc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5
+ integer(kind=int64) :: ntot
+ complex(spc),allocatable :: xsum(:,:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_sp,0_sp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4*n5,MPI_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval = xsum
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_c5cplx
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c1dpc
+!! NAME
+!! xmpi_sum_master_c1dpc
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: one-dimensional double complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c1dpc(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: n1
+ integer :: nproc_space_comm
+ complex(dpc),allocatable :: xsum(:)
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+! Collect xval from processors on master in comm
+ ABI_STAT_MALLOC(xsum,(n1), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_dp,0_dp) ! See notes
+ call MPI_REDUCE(xval,xsum,n1,MPI_DOUBLE_COMPLEX,MPI_SUM,master,comm,ier)
+ xval (:) = xsum(:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_c1dpc
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c2dpc
+!! NAME
+!! xmpi_sum_master_c2dpc
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: two-dimensional double complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c2dpc(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:)
+ integer ,intent(in) :: master
+ integer ,intent(in) :: comm
+ integer ,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2
+ integer(kind=int64) :: ntot
+ complex(dpc) , allocatable :: xsum(:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_dp,0_dp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2,MPI_DOUBLE_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:) = xsum(:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+
+end subroutine xmpi_sum_master_c2dpc
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c3dpc
+!! NAME
+!! xmpi_sum_master_c3dpc
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: three-dimensional double complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c3dpc(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3
+ integer(kind=int64) :: ntot
+ complex(dpc) , allocatable :: xsum(:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_dp,0_dp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3,MPI_DOUBLE_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:) = xsum(:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_c3dpc
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c4dpc
+!! NAME
+!! xmpi_sum_master_c4dpc
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: four-dimensional double complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c4dpc(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4
+ integer(kind=int64) :: ntot
+ complex(dpc) , allocatable :: xsum(:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_dp,0_dp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4,MPI_DOUBLE_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:) = xsum(:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_c4dpc
+!!***
+
+!!****f* ABINIT/xmpi_sum_master_c5dpc
+!! NAME
+!! xmpi_sum_master_c5dpc
+!!
+!! FUNCTION
+!! Reduces values on all processes to a single value.
+!! Target: five-dimensional double complex arrays.
+!!
+!! INPUTS
+!! master= master MPI node
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! ier= exit status, a non-zero value meaning there is an error
+!!
+!! SIDE EFFECTS
+!! xval= buffer array
+!!
+!! SOURCE
+
+subroutine xmpi_sum_master_c5dpc(xval,master,comm,ier)
+
+!Arguments-------------------------
+ complex(dpc), DEV_CONTARRD intent(inout) :: xval(:,:,:,:,:)
+ integer,intent(in) :: master
+ integer,intent(in) :: comm
+ integer,intent(out) :: ier
+
+!Local variables-------------------
+#if defined HAVE_MPI
+ integer :: my_dt,my_op,n1,n2,n3,n4,n5
+ integer(kind=int64) :: ntot
+ complex(dpc),allocatable :: xsum(:,:,:,:,:)
+ integer :: nproc_space_comm
+#endif
+
+! *************************************************************************
+
+ ier=0
+#if defined HAVE_MPI
+ if (comm /= MPI_COMM_NULL) then
+ call MPI_COMM_SIZE(comm,nproc_space_comm,ier)
+ if (nproc_space_comm /= 1) then
+ n1 = size(xval,dim=1)
+ n2 = size(xval,dim=2)
+ n3 = size(xval,dim=3)
+ n4 = size(xval,dim=4)
+ n5 = size(xval,dim=5)
+
+ ABI_STAT_MALLOC(xsum,(n1,n2,n3,n4,n5), ier)
+ if (ier /= 0) call xmpi_abort(msg='error allocating xsum')
+ xsum = (0_dp,0_dp) ! See notes
+
+ !This product of dimensions can be greater than a 32bit integer
+ !We use a INT64 to store it. If it is too large, we switch to an
+ !alternate routine because MPI<4 doesnt handle 64 bit counts.
+ ntot=int(n1*n2*n3*n4*n5,kind=int64)
+
+! Accumulate xval on all proc. in comm
+ if (ntot<=xmpi_maxint32_64) then
+ call MPI_reduce(xval,xsum,n1*n2*n3*n4*n5,MPI_DOUBLE_COMPLEX,MPI_SUM,master,comm,ier)
+ else
+ call xmpi_largetype_create(ntot,MPI_DOUBLE_COMPLEX,my_dt,my_op,MPI_SUM)
+ call MPI_reduce(xval,xsum,1,my_dt,my_op,master,comm,ier)
+ call xmpi_largetype_free(my_dt,my_op)
+ end if
+
+ xval (:,:,:,:,:) = xsum(:,:,:,:,:)
+ ABI_FREE(xsum)
+ end if
+ end if
+#endif
+end subroutine xmpi_sum_master_c5dpc
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/Makefile b/GX-PAW/common/src/14_hidewrite/Makefile
new file mode 100644
index 00000000..3a7c27d6
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/Makefile
@@ -0,0 +1,1493 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/14_hidewrite/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/14_hidewrite
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = m_build_info.F90
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib14_hidewrite_a_AR = $(AR) $(ARFLAGS)
+lib14_hidewrite_a_LIBADD =
+am__objects_1 = m_abicore.$(OBJEXT) m_cppopts_dumper.$(OBJEXT) \
+ m_fstrings.$(OBJEXT) m_io_tools.$(OBJEXT) \
+ m_specialmsg.$(OBJEXT)
+am_lib14_hidewrite_a_OBJECTS = $(am__objects_1)
+am__objects_2 = m_build_info.$(OBJEXT) m_optim_dumper.$(OBJEXT)
+nodist_lib14_hidewrite_a_OBJECTS = $(am__objects_2)
+lib14_hidewrite_a_OBJECTS = $(am_lib14_hidewrite_a_OBJECTS) \
+ $(nodist_lib14_hidewrite_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib14_hidewrite_a_SOURCES) \
+ $(nodist_lib14_hidewrite_a_SOURCES)
+DIST_SOURCES = $(lib14_hidewrite_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/m_build_info.F90.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/14_hidewrite
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/14_hidewrite
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi \
+ -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi \
+ -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ -I/opt/local/include \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib14_hidewrite_srcs = \
+ m_abicore.F90 \
+ m_cppopts_dumper.F90 \
+ m_fstrings.F90 \
+ m_io_tools.F90 \
+ m_specialmsg.F90
+
+
+# Source files depending on conditionals
+
+# Source files built by scripts
+lib14_hidewrite_srcs_built = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+
+# Library description
+noinst_LIBRARIES = lib14_hidewrite.a
+lib14_hidewrite_a_SOURCES = $(lib14_hidewrite_srcs)
+nodist_lib14_hidewrite_a_SOURCES = $(lib14_hidewrite_srcs_built)
+
+# Dependencies (inside the directory) of directory 14_hidewrite
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_abicore_cpp.f90 m_build_info_cpp.f90 \
+ m_cppopts_dumper_cpp.f90 m_fstrings_cpp.f90 m_io_tools_cpp.f90 \
+ m_optim_dumper_cpp.f90 m_specialmsg_cpp.f90 \
+ m_abicore.$(MODEXT) m_build_info.in.$(MODEXT) \
+ m_cppopts_dumper.$(MODEXT) m_fstrings.$(MODEXT) \
+ m_io_tools.$(MODEXT) m_optim_dumper.in.$(MODEXT) \
+ m_specialmsg.$(MODEXT) m_build_info.$(MODEXT)
+DISTCLEANFILES = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+EXTRA_DIST = abinit.src abinit.dep m_build_info.F90.in \
+ m_optim_dumper.F90.in abinit.amf _14_hidewrite_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/14_hidewrite/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/14_hidewrite/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+m_build_info.F90: $(top_builddir)/config.status $(srcdir)/m_build_info.F90.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib14_hidewrite.a: $(lib14_hidewrite_a_OBJECTS) $(lib14_hidewrite_a_DEPENDENCIES) $(EXTRA_lib14_hidewrite_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib14_hidewrite.a
+ $(AM_V_AR)$(lib14_hidewrite_a_AR) lib14_hidewrite.a $(lib14_hidewrite_a_OBJECTS) $(lib14_hidewrite_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib14_hidewrite.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_abicore.$(OBJEXT): m_specialmsg.$(OBJEXT)
+
+m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT) m_io_tools.$(OBJEXT)
+
+m_abicore.$(OBJEXT) m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/14_hidewrite/Makefile.am b/GX-PAW/common/src/14_hidewrite/Makefile.am
new file mode 100644
index 00000000..53510c58
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/Makefile.am
@@ -0,0 +1,96 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_14_hidewrite@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib14_hidewrite_srcs = \
+ m_abicore.F90 \
+ m_cppopts_dumper.F90 \
+ m_fstrings.F90 \
+ m_io_tools.F90 \
+ m_specialmsg.F90
+
+# Source files depending on conditionals
+
+
+# Source files built by scripts
+lib14_hidewrite_srcs_built = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+# Library description
+noinst_LIBRARIES = lib14_hidewrite.a
+
+lib14_hidewrite_a_SOURCES= $(lib14_hidewrite_srcs)
+nodist_lib14_hidewrite_a_SOURCES = $(lib14_hidewrite_srcs_built)
+
+CLEANFILES = \
+ m_abicore_cpp.f90 \
+ m_build_info_cpp.f90 \
+ m_cppopts_dumper_cpp.f90 \
+ m_fstrings_cpp.f90 \
+ m_io_tools_cpp.f90 \
+ m_optim_dumper_cpp.f90 \
+ m_specialmsg_cpp.f90
+
+DISTCLEANFILES = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 14_hidewrite
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_abicore.$(MODEXT) \
+ m_build_info.in.$(MODEXT) \
+ m_cppopts_dumper.$(MODEXT) \
+ m_fstrings.$(MODEXT) \
+ m_io_tools.$(MODEXT) \
+ m_optim_dumper.in.$(MODEXT) \
+ m_specialmsg.$(MODEXT)
+
+m_abicore.$(OBJEXT): m_specialmsg.$(OBJEXT)
+
+m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT) m_io_tools.$(OBJEXT)
+
+EXTRA_DIST += \
+ m_build_info.F90.in \
+ m_optim_dumper.F90.in
+
+EXTRA_DIST += abinit.amf
+
+CLEANFILES += m_build_info.$(MODEXT)
+
+m_abicore.$(OBJEXT) m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT)
+
+EXTRA_DIST += _14_hidewrite_
diff --git a/GX-PAW/common/src/14_hidewrite/Makefile.in b/GX-PAW/common/src/14_hidewrite/Makefile.in
new file mode 100644
index 00000000..c3e32f7f
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/Makefile.in
@@ -0,0 +1,1493 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/14_hidewrite
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = m_build_info.F90
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib14_hidewrite_a_AR = $(AR) $(ARFLAGS)
+lib14_hidewrite_a_LIBADD =
+am__objects_1 = m_abicore.$(OBJEXT) m_cppopts_dumper.$(OBJEXT) \
+ m_fstrings.$(OBJEXT) m_io_tools.$(OBJEXT) \
+ m_specialmsg.$(OBJEXT)
+am_lib14_hidewrite_a_OBJECTS = $(am__objects_1)
+am__objects_2 = m_build_info.$(OBJEXT) m_optim_dumper.$(OBJEXT)
+nodist_lib14_hidewrite_a_OBJECTS = $(am__objects_2)
+lib14_hidewrite_a_OBJECTS = $(am_lib14_hidewrite_a_OBJECTS) \
+ $(nodist_lib14_hidewrite_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib14_hidewrite_a_SOURCES) \
+ $(nodist_lib14_hidewrite_a_SOURCES)
+DIST_SOURCES = $(lib14_hidewrite_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/m_build_info.F90.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_14_hidewrite@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib14_hidewrite_srcs = \
+ m_abicore.F90 \
+ m_cppopts_dumper.F90 \
+ m_fstrings.F90 \
+ m_io_tools.F90 \
+ m_specialmsg.F90
+
+
+# Source files depending on conditionals
+
+# Source files built by scripts
+lib14_hidewrite_srcs_built = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+
+# Library description
+noinst_LIBRARIES = lib14_hidewrite.a
+lib14_hidewrite_a_SOURCES = $(lib14_hidewrite_srcs)
+nodist_lib14_hidewrite_a_SOURCES = $(lib14_hidewrite_srcs_built)
+
+# Dependencies (inside the directory) of directory 14_hidewrite
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_abicore_cpp.f90 m_build_info_cpp.f90 \
+ m_cppopts_dumper_cpp.f90 m_fstrings_cpp.f90 m_io_tools_cpp.f90 \
+ m_optim_dumper_cpp.f90 m_specialmsg_cpp.f90 \
+ m_abicore.$(MODEXT) m_build_info.in.$(MODEXT) \
+ m_cppopts_dumper.$(MODEXT) m_fstrings.$(MODEXT) \
+ m_io_tools.$(MODEXT) m_optim_dumper.in.$(MODEXT) \
+ m_specialmsg.$(MODEXT) m_build_info.$(MODEXT)
+DISTCLEANFILES = \
+ m_build_info.F90 \
+ m_optim_dumper.F90
+
+EXTRA_DIST = abinit.src abinit.dep m_build_info.F90.in \
+ m_optim_dumper.F90.in abinit.amf _14_hidewrite_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/14_hidewrite/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/14_hidewrite/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+m_build_info.F90: $(top_builddir)/config.status $(srcdir)/m_build_info.F90.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib14_hidewrite.a: $(lib14_hidewrite_a_OBJECTS) $(lib14_hidewrite_a_DEPENDENCIES) $(EXTRA_lib14_hidewrite_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib14_hidewrite.a
+ $(AM_V_AR)$(lib14_hidewrite_a_AR) lib14_hidewrite.a $(lib14_hidewrite_a_OBJECTS) $(lib14_hidewrite_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib14_hidewrite.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_abicore.$(OBJEXT): m_specialmsg.$(OBJEXT)
+
+m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT) m_io_tools.$(OBJEXT)
+
+m_abicore.$(OBJEXT) m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/14_hidewrite/_14_hidewrite_ b/GX-PAW/common/src/14_hidewrite/_14_hidewrite_
new file mode 100644
index 00000000..62a5082a
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/_14_hidewrite_
@@ -0,0 +1,22 @@
+!!****d* ABINIT/14_hidewrite
+!! NAME
+!! 14_hidewrite
+!!
+!! DESCRIPTION
+!! FIXME: Description is missing
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! interfaces_14_hidewrite.F90
+!! m_abicore.F90
+!! m_fstrings.F90
+!! m_io_tools.F90
+!! m_specialmsg.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/14_hidewrite/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..c791f17c
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/14_hidewrite/abinit.amf b/GX-PAW/common/src/14_hidewrite/abinit.amf
new file mode 100644
index 00000000..54f153fd
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/abinit.amf
@@ -0,0 +1,4 @@
+EXTRA_DIST += generate_build_info.cmake
+CLEANFILES += m_build_info.$(MODEXT)
+
+m_abicore.$(OBJEXT) m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT)
diff --git a/GX-PAW/common/src/14_hidewrite/abinit.dep b/GX-PAW/common/src/14_hidewrite/abinit.dep
new file mode 100644
index 00000000..2e0b4aff
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/abinit.dep
@@ -0,0 +1,18 @@
+# Dependencies (inside the directory) of directory 14_hidewrite
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_abicore.$(MODEXT) \
+ m_build_info.in.$(MODEXT) \
+ m_cppopts_dumper.$(MODEXT) \
+ m_fstrings.$(MODEXT) \
+ m_io_tools.$(MODEXT) \
+ m_optim_dumper.in.$(MODEXT) \
+ m_specialmsg.$(MODEXT)
+
+m_abicore.$(OBJEXT): m_specialmsg.$(OBJEXT)
+
+m_specialmsg.$(OBJEXT): m_build_info.$(OBJEXT) m_io_tools.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/14_hidewrite/abinit.dir b/GX-PAW/common/src/14_hidewrite/abinit.dir
new file mode 100644
index 00000000..8c87ba6d
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 14_hidewrite
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs', '11_memory_mpi', '12_hide_mpi', '14_hidewrite']
\ No newline at end of file
diff --git a/GX-PAW/common/src/14_hidewrite/abinit.src b/GX-PAW/common/src/14_hidewrite/abinit.src
new file mode 100644
index 00000000..0b791908
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/abinit.src
@@ -0,0 +1,39 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 1managempi library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "m_abicore.F90",
+ "m_build_info.F90",
+ "m_build_info.F90.cmake",
+ "m_cppopts_dumper.F90",
+ "m_fstrings.F90",
+ "m_io_tools.F90",
+ "m_optim_dumper.F90",
+ "m_optim_dumper.F90.cmake",
+ "m_specialmsg.F90",
+]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
+sources_specs = {
+ "m_build_info.F90":ABI_SRC_BLT,
+ "m_optim_dumper.F90":ABI_SRC_BLT,
+ "m_build_info.F90.cmake":ABI_SRC_BLT,
+ "m_optim_dumper.F90.cmake":ABI_SRC_BLT,
+}
+
diff --git a/GX-PAW/common/src/14_hidewrite/generate_build_info.cmake b/GX-PAW/common/src/14_hidewrite/generate_build_info.cmake
new file mode 100644
index 00000000..486d8de7
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/generate_build_info.cmake
@@ -0,0 +1,20 @@
+macro(generate_build_info)
+
+ set(TARGET_CPU ${CMAKE_HOST_SYSTEM_PROCESSOR})
+ cmake_host_system_information(RESULT TARGET_CPU_LONG QUERY PROCESSOR_DESCRIPTION)
+ cmake_host_system_information(RESULT OS_NAME QUERY OS_NAME)
+
+ set(abi_target_os ${OS_NAME})
+ set(abi_cc_vendor ${CMAKE_C_COMPILER_ID})
+ set(abi_cc_version ${CMAKE_C_COMPILER_VERSION})
+ set(abi_cxx_vendor ${CMAKE_CXX_COMPILER_ID})
+ set(abi_cxx_version ${CMAKE_CXX_COMPILER_VERSION})
+ set(abi_fc_vendor ${CMAKE_Fortran_COMPILER_ID})
+ set(abi_fc_version ${CMAKE_Fortran_COMPILER_VERSION})
+
+ set(ABINIT_TARGET ${TARGET_CPU}_${abi_target_os}_${abi_fc_vendor}_${abi_fc_version})
+
+ message(STATUS "Generating m_build_info.F90...")
+ configure_file(m_build_info.F90.cmake.in m_build_info.F90 @ONLY)
+
+endmacro()
diff --git a/GX-PAW/common/src/14_hidewrite/lib14_hidewrite.a b/GX-PAW/common/src/14_hidewrite/lib14_hidewrite.a
new file mode 100644
index 00000000..3fe5d0b9
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/lib14_hidewrite.a differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_abicore.F90 b/GX-PAW/common/src/14_hidewrite/m_abicore.F90
new file mode 100644
index 00000000..936bfe65
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_abicore.F90
@@ -0,0 +1,112 @@
+!!****m* ABINIT/m_abicore
+!! NAME
+!! m_abicore
+!!
+!! FUNCTION
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_abicore
+
+ !use defs_basis
+ !use m_build_info
+ use m_profiling_abi
+ use m_specialmsg !, only : herald, specialmsg_setcount, specialmsg_getcount, specialmsg_mpisum, wrtout
+ !use m_errors
+
+
+ implicit none
+
+ public
+
+contains !=====================================================
+!!***
+
+! TODO: Replace with F90 i0
+
+!!****f* ABINIT/appdig
+!! NAME
+!! appdig
+!!
+!! FUNCTION
+!! Using input string "string" and integer "integ", make a string
+!! named 'strinn' by concatenating digits of "integ" with characters
+!! of "string"; return final string in "strinn".
+!! Can also treat initial empty string, then simply returns the integer in the form of a string
+!!
+!! INPUTS
+!! integ=nonnegative integer whose digits will be appended to string
+!! string=string to which digits will be appended
+!!
+!! OUTPUT
+!! strinn=string//nn
+!!
+!! SOURCE
+
+subroutine appdig(integ,string,strinn)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: integ
+ character(len=*),intent(in) :: string
+ character(len=*),intent(out) :: strinn
+
+!Local variables-------------------------------
+!scalars
+ integer :: i,length,ndig
+ character(len=2) :: ncha
+ character(len=8) :: form
+ !character(len=500) :: msg
+
+! *************************************************************************
+
+ ! Check that integer is nonnegative
+ !if (integ<0) then
+ ! write(msg,'(a,i0,a)') &
+ ! 'Input integer =',integ,' must not be <0. Argument integ was input as negative.'
+ ! ABI_BUG(msg)
+ !end if
+
+ ! Fill output string initially with blanks to end of dimensioned length
+ length=len(strinn)
+ do i=1,length
+ strinn(i:i)=' '
+ end do
+
+!Find nonwhitespace length of string
+ length=len_trim(string)
+!Copy input character string into first part of output string
+ if(length>0)then
+ strinn(1:length)=string(1:length)
+ end if
+
+!Find how many digits "integ" has
+ ndig=int(log10(real(integ)+0.50))+1
+
+!Create a format for exact number of digits using internal write
+ write(unit=ncha,fmt='(i2)') ndig
+ form='(i'//ncha//')'
+!Do internal write to get digits of integer into character string,
+!placing digits into appropriate end of string.
+ write(unit=strinn(1+length:length+ndig),fmt=form) integ
+!(Note that present version writes "1" or "2" for single digit,
+!not "01" or "02". Latter may be preferable. Can be amended.)
+!
+
+end subroutine appdig
+!!***
+
+end module m_abicore
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_abicore.o b/GX-PAW/common/src/14_hidewrite/m_abicore.o
new file mode 100644
index 00000000..c3cf7a9d
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_abicore.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_build_info.F90 b/GX-PAW/common/src/14_hidewrite/m_build_info.F90
new file mode 100644
index 00000000..7d482d0d
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_build_info.F90
@@ -0,0 +1,194 @@
+!{src2tex{textfont=tt}}
+!!****m* ABINIT/m_build_info
+!! NAME
+!! m_build_info
+!!
+!! FUNCTION
+!! This module contains information about this particular version of ABINIT
+!! and its build parameters (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2005-2024 ABINIT group (Yann Pouillon, Matteo Giantomassi)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_build_info
+
+implicit none
+
+! Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+! So, always start the string to be replaced at the beginning of a line.
+
+! Parameters set-up by Autoconf
+character(len=8),parameter :: abinit_version = &
+& "10.0.0.83-58be4d"
+character(len=*),parameter :: build_target = &
+& "x86_64_darwin18.7.0_gnu9.4"
+
+! More info on current version
+character(len=*),parameter :: version_major = &
+& "10"
+character(len=*),parameter :: version_minor = &
+& "0"
+character(len=*),parameter :: version_micro = &
+& "0"
+character(len=*),parameter :: version_build = &
+& "20240316"
+
+! Info on compilers. Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+character(len=*),parameter :: cc_info = &
+& "gnu9.4"
+character(len=*),parameter :: cxx_info = &
+& "gnu9.4"
+character(len=*),parameter :: fc_info = &
+& "gnu9.4"
+character(len=*),parameter :: cc_flags = &
+& "-O2 -g "
+character(len=*),parameter :: cxx_flags = &
+& "-O2 -g "
+character(len=*),parameter :: fc_flags = &
+& "-O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include"
+character(len=*),parameter :: fc_ldflags = &
+& " "
+
+! Info on optimizations
+character(len=*),parameter :: with_debug_flavor = &
+& "basic"
+character(len=*),parameter :: with_optim_flavor = &
+& "standard"
+character(len=*),parameter :: cpu_info = &
+& "unknown_unknown"
+
+! Info on MPI
+character(len=*),parameter :: with_mpi = &
+& "/opt/local"
+character(len=*),parameter :: enable_mpi_io = &
+& "yes"
+
+! Info on openMP
+character(len=*),parameter :: enable_openmp = &
+& ""
+
+! Info on GPU
+character(len=*),parameter :: with_gpu = &
+& ""
+
+! Info on external dependencies
+character(len=*),parameter :: linalg_flavor = &
+& "openblas"
+character(len=*),parameter :: fft_flavor = &
+& "fftw3"
+character(len=*),parameter :: with_hdf5 = &
+& "yes"
+character(len=*),parameter :: with_netcdf = &
+& "yes"
+character(len=*),parameter :: with_netcdf_fortran = &
+& "yes"
+character(len=*),parameter :: with_libxc = &
+& "yes"
+character(len=*),parameter :: with_wannier90 = &
+& "yes"
+
+! Info on experimental features
+character(len=*),parameter :: enable_exports = &
+& ""
+character(len=*),parameter :: enable_gw_dpc = &
+& "yes"
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_build_info/dump_config
+!! NAME
+!! dump_config
+!!
+!! FUNCTION
+!! Reports a printout of the information stored in m_build_info,
+!! useful for error messages and debugging.
+!!
+!! INPUTS
+!! my_unit= Fortran unit number
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_config(my_unit)
+
+implicit none
+
+!Arguments ------------------------------------
+integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *********************************************************************
+
+! TODO: things that might be added through preprocessing options, e.g.
+! date and time of compilation
+
+write(my_unit,*)
+write(my_unit,'(1x,a)') repeat('+',78)
+write(my_unit,*)
+write(my_unit,'(a)' )' === Build Information === '
+write(my_unit,'(2a)')' Version : ',trim(abinit_version)
+write(my_unit,'(2a)')' Build target : ',trim(build_target)
+write(my_unit,'(2a)')' Build date : ',trim(version_build)
+write(my_unit,*)
+write(my_unit,'(a)' )' === Compiler Suite === '
+write(my_unit,'(2a)')' C compiler : ',trim(cc_info)
+write(my_unit,'(2a)')' C++ compiler : ',trim(cxx_info)
+write(my_unit,'(2a)')' Fortran compiler : ',trim(fc_info)
+write(my_unit,'(2a)')' CFLAGS : ',trim(cc_flags)
+write(my_unit,'(2a)')' CXXFLAGS : ',trim(cxx_flags)
+write(my_unit,'(2a)')' FCFLAGS : ',trim(fc_flags)
+write(my_unit,'(2a)')' FC_LDFLAGS : ',trim(fc_ldflags)
+write(my_unit,*)
+write(my_unit,'(a) ')' === Optimizations === '
+write(my_unit,'(2a)')' Debug level : ',trim(with_debug_flavor)
+write(my_unit,'(2a)')' Optimization level : ',trim(with_optim_flavor)
+write(my_unit,'(2a)')' Architecture : ',trim(cpu_info)
+write(my_unit,*)
+write(my_unit,'(a) ')' === Multicore === '
+write(my_unit,'(2a)')' Parallel build : ',trim(with_mpi)
+write(my_unit,'(2a)')' Parallel I/O : ',trim(enable_mpi_io)
+write(my_unit,'(2a)')' openMP support : ',trim(enable_openmp)
+write(my_unit,'(2a)')' GPU support : ',trim(with_gpu)
+write(my_unit,*)
+write(my_unit,'(a) ')' === Connectors / Fallbacks === '
+write(my_unit,'(2a)')' LINALG flavor : ',trim(linalg_flavor)
+write(my_unit,'(2a)')' FFT flavor : ',trim(fft_flavor)
+write(my_unit,'(2a)')' HDF5 : ',trim(with_hdf5)
+write(my_unit,'(2a)')' NetCDF : ',trim(with_netcdf)
+write(my_unit,'(2a)')' NetCDF Fortran : ',trim(with_netcdf_fortran)
+write(my_unit,'(2a)')' LibXC : ',trim(with_libxc)
+write(my_unit,'(2a)')' Wannier90 : ',trim(with_wannier90)
+write(my_unit,*)
+write(my_unit,'(a)' )' === Experimental features === '
+write(my_unit,'(2a)')' Exports : ',trim(enable_exports)
+write(my_unit,'(2a)')' GW double-precision : ',trim(enable_gw_dpc)
+write(my_unit,*)
+write(my_unit,'(1x,a)') repeat('+',78)
+write(my_unit,*)
+
+end subroutine dump_config
+!!***
+
+end module m_build_info
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_build_info.F90.cmake.in b/GX-PAW/common/src/14_hidewrite/m_build_info.F90.cmake.in
new file mode 100644
index 00000000..cc143aab
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_build_info.F90.cmake.in
@@ -0,0 +1,202 @@
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_build_info
+!! NAME
+!! m_build_info
+!!
+!! FUNCTION
+!! This module contains information about this particular version of ABINIT
+!! and its build parameters (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2005-2024 ABINIT group (Yann Pouillon, Matteo Giantomassi)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_build_info
+
+ implicit none
+
+! Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+! So, always start the string to be replaced at the beginning of a line.
+
+! Parameters set-up by Autoconf
+ character(len=8),parameter :: abinit_version = &
+& "@CMAKE_PROJECT_VERSION@"
+ character(len=*),parameter :: build_target = &
+& "@ABINIT_TARGET@"
+
+! More info on current version
+ character(len=*),parameter :: version_major = &
+& "@CMAKE_PROJECT_VERSION_MAJOR@"
+ character(len=*),parameter :: version_minor = &
+& "@CMAKE_PROJECT_VERSION_MINOR@"
+ character(len=*),parameter :: version_micro = &
+& "@CMAKE_PROJECT_VERSION_PATCH@"
+ character(len=*),parameter :: version_build = &
+& "@ABINIT_VERSION_BUILD@"
+
+! Info on compilers. Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+ character(len=*),parameter :: cc_info = &
+& "@abi_cc_vendor@@abi_cc_version@"
+ character(len=*),parameter :: cxx_info = &
+& "@abi_cxx_vendor@@abi_cxx_version@"
+ character(len=*),parameter :: fc_info = &
+& "@abi_fc_vendor@@abi_fc_version@"
+ character(len=*),parameter :: cc_flags = &
+& "@CMAKE_C_FLAGS@"
+ character(len=*),parameter :: cxx_flags = &
+& "@CMAKE_CXX_FLAGS@"
+!! TODO : would be much better to use get_target_property on abinit exe
+!! to retrieve the relevant info
+ character(len=*),parameter :: fc_flags = &
+& "TODO@CMAKE_Fortran_FLAGS@"
+ character(len=*),parameter :: fc_ldflags = &
+& "TODO@CMAKE_Fortran_FLAGS@"
+
+! Info on optimizations
+ character(len=*),parameter :: with_debug_flavor = &
+& "@ABI_DEBUG_FLAVOR@"
+ character(len=*),parameter :: with_optim_flavor = &
+& "@ABI_OPTIM_FLAVOR@"
+ character(len=*),parameter :: cpu_info = &
+& "@TARGET_CPU_LONG@"
+
+! Info on MPI
+ character(len=*),parameter :: with_mpi = &
+& "@HAVE_MPI@"
+ character(len=*),parameter :: enable_mpi_io = &
+& "@HAVE_MPI_IO@"
+
+! Info on openMP
+ character(len=*),parameter :: enable_openmp = &
+& "@HAVE_OPENMP@"
+
+! Info on GPU
+ character(len=*),parameter :: with_gpu = &
+& "@HAVE_GPU@"
+
+! Info on external dependencies
+ character(len=*),parameter :: linalg_flavor = &
+& "TODO"
+ character(len=*),parameter :: scalapack_enabled = &
+& "@ABINIT_SCALAPACK_ENABLED@"
+ character(len=*),parameter :: scalapack_flavor = &
+& "@ABINIT_SCALAPACK_FLAVOR@"
+ character(len=*),parameter :: fft_flavor = &
+& "@ABINIT_FFT_FLAVOR@"
+ character(len=*),parameter :: with_hdf5 = &
+& "@HAVE_HDF5@"
+ character(len=*),parameter :: with_netcdf = &
+& "@HAVE_NETCDF@"
+ character(len=*),parameter :: with_netcdf_fortran = &
+& "@HAVE_NETCDF_FORTRAN@"
+ character(len=*),parameter :: with_libxc = &
+& "@HAVE_LIBXC@"
+ character(len=*),parameter :: with_wannier90 = &
+& "@HAVE_WANNIER90@"
+
+! Info on experimental features
+ character(len=*),parameter :: enable_exports = &
+& "TODO@enable_exports@"
+ character(len=*),parameter :: enable_gw_dpc = &
+& "@HAVE_GW_DPC@"
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_build_info/dump_config
+!! NAME
+!! dump_config
+!!
+!! FUNCTION
+!! Reports a printout of the information stored in m_build_info,
+!! useful for error messages and debugging.
+!!
+!! INPUTS
+!! my_unit= Fortran unit number
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_config(my_unit)
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *********************************************************************
+
+! TODO: things that might be added through preprocessing options, e.g.
+! date and time of compilation
+
+ write(my_unit,*)
+ write(my_unit,'(1x,a)') repeat('+',78)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Build Information === '
+ write(my_unit,'(2a)')' Version : ',trim(abinit_version)
+ write(my_unit,'(2a)')' Build target : ',trim(build_target)
+ write(my_unit,'(2a)')' Build date : ',trim(version_build)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Compiler Suite === '
+ write(my_unit,'(2a)')' C compiler : ',trim(cc_info)
+ write(my_unit,'(2a)')' C++ compiler : ',trim(cxx_info)
+ write(my_unit,'(2a)')' Fortran compiler : ',trim(fc_info)
+ write(my_unit,'(2a)')' CFLAGS : ',trim(cc_flags)
+ write(my_unit,'(2a)')' CXXFLAGS : ',trim(cxx_flags)
+ write(my_unit,'(2a)')' FCFLAGS : ',trim(fc_flags)
+ write(my_unit,'(2a)')' FC_LDFLAGS : ',trim(fc_ldflags)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Optimizations === '
+ write(my_unit,'(2a)')' Debug level : ',trim(with_debug_flavor)
+ write(my_unit,'(2a)')' Optimization level : ',trim(with_optim_flavor)
+ write(my_unit,'(2a)')' Architecture : ',trim(cpu_info)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Multicore === '
+ write(my_unit,'(2a)')' Parallel build : ',trim(with_mpi)
+ write(my_unit,'(2a)')' Parallel I/O : ',trim(enable_mpi_io)
+ write(my_unit,'(2a)')' openMP support : ',trim(enable_openmp)
+ write(my_unit,'(2a)')' GPU support : ',trim(with_gpu)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Connectors / Fallbacks === '
+ write(my_unit,'(2a)')' LINALG flavor : ',trim(linalg_flavor)
+ write(my_unit,'(2a)')' SCALAPACK enabled : ',trim(scalapack_enabled)
+ write(my_unit,'(2a)')' SCALAPACK flavor : ',trim(scalapack_flavor)
+ write(my_unit,'(2a)')' FFT flavor : ',trim(fft_flavor)
+ write(my_unit,'(2a)')' HDF5 : ',trim(with_hdf5)
+ write(my_unit,'(2a)')' NetCDF : ',trim(with_netcdf)
+ write(my_unit,'(2a)')' NetCDF Fortran : ',trim(with_netcdf_fortran)
+ write(my_unit,'(2a)')' LibXC : ',trim(with_libxc)
+ write(my_unit,'(2a)')' Wannier90 : ',trim(with_wannier90)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Experimental features === '
+ write(my_unit,'(2a)')' Exports : ',trim(enable_exports)
+ write(my_unit,'(2a)')' GW double-precision : ',trim(enable_gw_dpc)
+ write(my_unit,*)
+ write(my_unit,'(1x,a)') repeat('+',78)
+ write(my_unit,*)
+
+end subroutine dump_config
+!!***
+
+end module m_build_info
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_build_info.F90.in b/GX-PAW/common/src/14_hidewrite/m_build_info.F90.in
new file mode 100644
index 00000000..2d4046f3
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_build_info.F90.in
@@ -0,0 +1,194 @@
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_build_info
+!! NAME
+!! m_build_info
+!!
+!! FUNCTION
+!! This module contains information about this particular version of ABINIT
+!! and its build parameters (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2005-2024 ABINIT group (Yann Pouillon, Matteo Giantomassi)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_build_info
+
+ implicit none
+
+! Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+! So, always start the string to be replaced at the beginning of a line.
+
+! Parameters set-up by Autoconf
+ character(len=8),parameter :: abinit_version = &
+& "@VERSION@"
+ character(len=*),parameter :: build_target = &
+& "@ABINIT_TARGET@"
+
+! More info on current version
+ character(len=*),parameter :: version_major = &
+& "@ABINIT_VERSION_MAJOR@"
+ character(len=*),parameter :: version_minor = &
+& "@ABINIT_VERSION_MINOR@"
+ character(len=*),parameter :: version_micro = &
+& "@ABINIT_VERSION_MICRO@"
+ character(len=*),parameter :: version_build = &
+& "@ABINIT_VERSION_BUILD@"
+
+! Info on compilers. Try to prevent problems with the length of the argument
+! (should not exceed the line length of 132 character).
+ character(len=*),parameter :: cc_info = &
+& "@abi_cc_vendor@@abi_cc_version@"
+ character(len=*),parameter :: cxx_info = &
+& "@abi_cxx_vendor@@abi_cxx_version@"
+ character(len=*),parameter :: fc_info = &
+& "@abi_fc_vendor@@abi_fc_version@"
+ character(len=*),parameter :: cc_flags = &
+& "@CFLAGS@"
+ character(len=*),parameter :: cxx_flags = &
+& "@CXXFLAGS@"
+ character(len=*),parameter :: fc_flags = &
+& "@FCFLAGS@"
+ character(len=*),parameter :: fc_ldflags = &
+& "@FC_LDFLAGS@"
+
+! Info on optimizations
+ character(len=*),parameter :: with_debug_flavor = &
+& "@abi_debug_flavor@"
+ character(len=*),parameter :: with_optim_flavor = &
+& "@abi_optim_flavor@"
+ character(len=*),parameter :: cpu_info = &
+& "@abi_cpu_vendor@_@abi_cpu_model@"
+
+! Info on MPI
+ character(len=*),parameter :: with_mpi = &
+& "@with_mpi@"
+ character(len=*),parameter :: enable_mpi_io = &
+& "@enable_mpi_io@"
+
+! Info on openMP
+ character(len=*),parameter :: enable_openmp = &
+& "@enable_openmp@"
+
+! Info on GPU
+ character(len=*),parameter :: with_gpu = &
+& "@with_gpu@"
+
+! Info on external dependencies
+ character(len=*),parameter :: linalg_flavor = &
+& "@sd_linalg_flavor@"
+ character(len=*),parameter :: fft_flavor = &
+& "@sd_fft_flavor@"
+ character(len=*),parameter :: with_hdf5 = &
+& "@sd_hdf5_enable@"
+ character(len=*),parameter :: with_netcdf = &
+& "@sd_netcdf_enable@"
+ character(len=*),parameter :: with_netcdf_fortran = &
+& "@sd_netcdf_fortran_enable@"
+ character(len=*),parameter :: with_libxc = &
+& "@sd_libxc_enable@"
+ character(len=*),parameter :: with_wannier90 = &
+& "@sd_wannier90_enable@"
+
+! Info on experimental features
+ character(len=*),parameter :: enable_exports = &
+& "@enable_exports@"
+ character(len=*),parameter :: enable_gw_dpc = &
+& "@enable_gw_dpc@"
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_build_info/dump_config
+!! NAME
+!! dump_config
+!!
+!! FUNCTION
+!! Reports a printout of the information stored in m_build_info,
+!! useful for error messages and debugging.
+!!
+!! INPUTS
+!! my_unit= Fortran unit number
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_config(my_unit)
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *********************************************************************
+
+! TODO: things that might be added through preprocessing options, e.g.
+! date and time of compilation
+
+ write(my_unit,*)
+ write(my_unit,'(1x,a)') repeat('+',78)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Build Information === '
+ write(my_unit,'(2a)')' Version : ',trim(abinit_version)
+ write(my_unit,'(2a)')' Build target : ',trim(build_target)
+ write(my_unit,'(2a)')' Build date : ',trim(version_build)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Compiler Suite === '
+ write(my_unit,'(2a)')' C compiler : ',trim(cc_info)
+ write(my_unit,'(2a)')' C++ compiler : ',trim(cxx_info)
+ write(my_unit,'(2a)')' Fortran compiler : ',trim(fc_info)
+ write(my_unit,'(2a)')' CFLAGS : ',trim(cc_flags)
+ write(my_unit,'(2a)')' CXXFLAGS : ',trim(cxx_flags)
+ write(my_unit,'(2a)')' FCFLAGS : ',trim(fc_flags)
+ write(my_unit,'(2a)')' FC_LDFLAGS : ',trim(fc_ldflags)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Optimizations === '
+ write(my_unit,'(2a)')' Debug level : ',trim(with_debug_flavor)
+ write(my_unit,'(2a)')' Optimization level : ',trim(with_optim_flavor)
+ write(my_unit,'(2a)')' Architecture : ',trim(cpu_info)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Multicore === '
+ write(my_unit,'(2a)')' Parallel build : ',trim(with_mpi)
+ write(my_unit,'(2a)')' Parallel I/O : ',trim(enable_mpi_io)
+ write(my_unit,'(2a)')' openMP support : ',trim(enable_openmp)
+ write(my_unit,'(2a)')' GPU support : ',trim(with_gpu)
+ write(my_unit,*)
+ write(my_unit,'(a) ')' === Connectors / Fallbacks === '
+ write(my_unit,'(2a)')' LINALG flavor : ',trim(linalg_flavor)
+ write(my_unit,'(2a)')' FFT flavor : ',trim(fft_flavor)
+ write(my_unit,'(2a)')' HDF5 : ',trim(with_hdf5)
+ write(my_unit,'(2a)')' NetCDF : ',trim(with_netcdf)
+ write(my_unit,'(2a)')' NetCDF Fortran : ',trim(with_netcdf_fortran)
+ write(my_unit,'(2a)')' LibXC : ',trim(with_libxc)
+ write(my_unit,'(2a)')' Wannier90 : ',trim(with_wannier90)
+ write(my_unit,*)
+ write(my_unit,'(a)' )' === Experimental features === '
+ write(my_unit,'(2a)')' Exports : ',trim(enable_exports)
+ write(my_unit,'(2a)')' GW double-precision : ',trim(enable_gw_dpc)
+ write(my_unit,*)
+ write(my_unit,'(1x,a)') repeat('+',78)
+ write(my_unit,*)
+
+end subroutine dump_config
+!!***
+
+end module m_build_info
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_build_info.o b/GX-PAW/common/src/14_hidewrite/m_build_info.o
new file mode 100644
index 00000000..76d1ae55
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_build_info.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.F90 b/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.F90
new file mode 100644
index 00000000..aa57f932
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.F90
@@ -0,0 +1,1730 @@
+
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_cppopts_dumper
+!! NAME
+!! m_cppopts_dumper
+!!
+!! FUNCTION
+!! Displays preprocessing options activated at compile-time.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt.
+!!
+!! NOTES
+!! This file was generated by make-cppopts-dumper,
+!! on 2024/03/16 21:07:30 +0000.
+!! Any modification will be lost.
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_cppopts_dumper
+
+ implicit none
+
+ public :: dump_cpp_options
+
+contains
+!!***
+
+!!****f* ABINIT/m_cppopts_dumper/dump_cpp_options
+!! NAME
+!! dump_cpp_options
+!!
+!! FUNCTION
+!! Reports a printout of the CPP options used at compile-time,
+!! useful for error messages and debugging.
+!!
+!! INPUTS
+!! my_unit= Fortran unit number (optional, default is std_out)
+!!
+!! OUTPUT
+!! Only printing.
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!!
+!! SOURCE
+
+subroutine dump_cpp_options(my_unit)
+
+ use defs_basis
+
+ implicit none
+
+!Arguments -------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables -------------------------------
+ character(len=26) :: tmp
+ character(len=80) :: msg
+ integer :: msg_index
+
+! **********************************************************************
+
+ write(my_unit,"(a,1x,a)") ch10,repeat("+",78)
+ write(my_unit,"(1x,a,a)") "CPP options activated during the build:",ch10
+
+ msg_index = 0
+ msg = ""
+
+#if defined CC_ARM
+ write(tmp,"(1x,a25)") "CC_ARM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_CRAY
+ write(tmp,"(1x,a25)") "CC_CRAY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_GNU
+ write(tmp,"(1x,a25)") "CC_GNU"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_IBM
+ write(tmp,"(1x,a25)") "CC_IBM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_INTEL
+ write(tmp,"(1x,a25)") "CC_INTEL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_LLVM
+ write(tmp,"(1x,a25)") "CC_LLVM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_NVHPC
+ write(tmp,"(1x,a25)") "CC_NVHPC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CC_PGI
+ write(tmp,"(1x,a25)") "CC_PGI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_ARM
+ write(tmp,"(1x,a25)") "CXX_ARM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_CRAY
+ write(tmp,"(1x,a25)") "CXX_CRAY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_GNU
+ write(tmp,"(1x,a25)") "CXX_GNU"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_IBM
+ write(tmp,"(1x,a25)") "CXX_IBM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_INTEL
+ write(tmp,"(1x,a25)") "CXX_INTEL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_LLVM
+ write(tmp,"(1x,a25)") "CXX_LLVM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_NVHPC
+ write(tmp,"(1x,a25)") "CXX_NVHPC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined CXX_PGI
+ write(tmp,"(1x,a25)") "CXX_PGI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined DEBUG_CONTRACT
+ write(tmp,"(1x,a25)") "DEB*G_CONTRACT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined DEBUG_MODE
+ write(tmp,"(1x,a25)") "DEB*G_MODE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined DEBUG_VERBOSE
+ write(tmp,"(1x,a25)") "DEB*G_VERBOSE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_ABSOFT
+ write(tmp,"(1x,a25)") "FC_ABSOFT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_AOCC
+ write(tmp,"(1x,a25)") "FC_AOCC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_ARM
+ write(tmp,"(1x,a25)") "FC_ARM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_CRAY
+ write(tmp,"(1x,a25)") "FC_CRAY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_GNU
+ write(tmp,"(1x,a25)") "FC_GNU"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_IBM
+ write(tmp,"(1x,a25)") "FC_IBM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_INTEL
+ write(tmp,"(1x,a25)") "FC_INTEL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_LLVM
+ write(tmp,"(1x,a25)") "FC_LLVM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_NAG
+ write(tmp,"(1x,a25)") "FC_NAG"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_NVHPC
+ write(tmp,"(1x,a25)") "FC_NVHPC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined FC_PGI
+ write(tmp,"(1x,a25)") "FC_PGI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_ABINIT_COMMON
+ write(tmp,"(1x,a25)") "HAVE_ABINIT_COMMON"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_ATOMPAW
+ write(tmp,"(1x,a25)") "HAVE_ATOMPAW"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_AVX_SAFE_MODE
+ write(tmp,"(1x,a25)") "HAVE_AVX_SAFE_MODE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_BIGDFT
+ write(tmp,"(1x,a25)") "HAVE_BIGDFT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_BSE_UNPACKED
+ write(tmp,"(1x,a25)") "HAVE_BSE_UNPACKED"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_CCLOCK
+ write(tmp,"(1x,a25)") "HAVE_CCLOCK"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_CRPA_OPTIM
+ write(tmp,"(1x,a25)") "HAVE_CRPA_OPTIM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_DFTI
+ write(tmp,"(1x,a25)") "HAVE_DFTI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ALLOCATABLE_DTARRAYS
+ write(tmp,"(1x,a25)") "HAVE_FC_ALLOCATABLE_DT..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ASYNC
+ write(tmp,"(1x,a25)") "HAVE_FC_ASYNC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_BACKTRACE
+ write(tmp,"(1x,a25)") "HAVE_FC_BACKTRACE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_COMMAND_ARGUMENT
+ write(tmp,"(1x,a25)") "HAVE_FC_COMMAND_ARGUMENT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_COMMAND_LINE
+ write(tmp,"(1x,a25)") "HAVE_FC_COMMAND_LINE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_CONTIGUOUS
+ write(tmp,"(1x,a25)") "HAVE_FC_CONTIGUOUS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_CPUTIME
+ write(tmp,"(1x,a25)") "HAVE_FC_CPUTIME"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ETIME
+ write(tmp,"(1x,a25)") "HAVE_FC_ETIME"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_EXIT
+ write(tmp,"(1x,a25)") "HAVE_FC_EXIT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_FLUSH
+ write(tmp,"(1x,a25)") "HAVE_FC_FLUSH"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_FLUSH_
+ write(tmp,"(1x,a25)") "HAVE_FC_FLUSH_"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_GAMMA
+ write(tmp,"(1x,a25)") "HAVE_FC_GAMMA"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_GETENV
+ write(tmp,"(1x,a25)") "HAVE_FC_GETENV"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_GETPID
+ write(tmp,"(1x,a25)") "HAVE_FC_GETPID"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_IEEE_ARITHMETIC
+ write(tmp,"(1x,a25)") "HAVE_FC_IEEE_ARITHMETIC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_IEEE_EXCEPTIONS
+ write(tmp,"(1x,a25)") "HAVE_FC_IEEE_EXCEPTIONS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_INT_QUAD
+ write(tmp,"(1x,a25)") "HAVE_FC_INT_QUAD"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_IOMSG
+ write(tmp,"(1x,a25)") "HAVE_FC_IOMSG"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ISO_C_BINDING
+ write(tmp,"(1x,a25)") "HAVE_FC_ISO_C_BINDING"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ISO_FORTRAN_2008
+ write(tmp,"(1x,a25)") "HAVE_FC_ISO_FORTRAN_2008"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_LONG_LINES
+ write(tmp,"(1x,a25)") "HAVE_FC_LONG_LINES"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_MACRO_NEWLINE
+ write(tmp,"(1x,a25)") "HAVE_FC_MACRO_NEWLINE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_MOVE_ALLOC
+ write(tmp,"(1x,a25)") "HAVE_FC_MOVE_ALLOC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_ON_THE_FLY_SHAPE
+ write(tmp,"(1x,a25)") "HAVE_FC_ON_THE_FLY_SHAPE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_PRIVATE
+ write(tmp,"(1x,a25)") "HAVE_FC_PRIVATE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_PROTECTED
+ write(tmp,"(1x,a25)") "HAVE_FC_PROTECTED"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_SHIFTLR
+ write(tmp,"(1x,a25)") "HAVE_FC_SHIFTLR"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_STREAM_IO
+ write(tmp,"(1x,a25)") "HAVE_FC_STREAM_IO"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FC_SYSTEM
+ write(tmp,"(1x,a25)") "HAVE_FC_SYSTEM"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FFTW3
+ write(tmp,"(1x,a25)") "HAVE_FFTW3"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FFTW3_MPI
+ write(tmp,"(1x,a25)") "HAVE_FFTW3_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FFTW3_THREADS
+ write(tmp,"(1x,a25)") "HAVE_FFTW3_THREADS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_FORTRAN2003
+ write(tmp,"(1x,a25)") "HAVE_FORTRAN2003"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU
+ write(tmp,"(1x,a25)") "HAVE_GPU"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_CUDA
+ write(tmp,"(1x,a25)") "HAVE_GPU_CUDA"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_CUDA10
+ write(tmp,"(1x,a25)") "HAVE_GPU_CUDA10"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_CUDA3
+ write(tmp,"(1x,a25)") "HAVE_GPU_CUDA3"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_CUDA_DP
+ write(tmp,"(1x,a25)") "HAVE_GPU_CUDA_DP"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_CUDA_SP
+ write(tmp,"(1x,a25)") "HAVE_GPU_CUDA_SP"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_HIP
+ write(tmp,"(1x,a25)") "HAVE_GPU_HIP"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_MARKERS
+ write(tmp,"(1x,a25)") "HAVE_GPU_MARKERS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_MPI
+ write(tmp,"(1x,a25)") "HAVE_GPU_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GPU_SERIAL
+ write(tmp,"(1x,a25)") "HAVE_GPU_SERIAL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_GW_DPC
+ write(tmp,"(1x,a25)") "HAVE_GW_DPC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_HDF5
+ write(tmp,"(1x,a25)") "HAVE_HDF5"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_HDF5_MPI
+ write(tmp,"(1x,a25)") "HAVE_HDF5_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_KOKKOS
+ write(tmp,"(1x,a25)") "HAVE_KOKKOS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LEVMAR
+ write(tmp,"(1x,a25)") "HAVE_LEVMAR"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LIBPAW
+ write(tmp,"(1x,a25)") "HAVE_LIBPAW"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LIBPAW_ABINIT
+ write(tmp,"(1x,a25)") "HAVE_LIBPAW_ABINIT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LIBPSML
+ write(tmp,"(1x,a25)") "HAVE_LIBPSML"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LIBTETRA_ABINIT
+ write(tmp,"(1x,a25)") "HAVE_LIBTETRA_ABINIT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LIBXC
+ write(tmp,"(1x,a25)") "HAVE_LIBXC"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ASL
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ASL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_AXPBY
+ write(tmp,"(1x,a25)") "HAVE_LINALG_AXPBY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2013
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2013"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2014
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2014"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2015_02
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2015_02"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2015_11
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2015_11"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2016
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2016"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_2017
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_2017"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ELPA_FORTRAN2008
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ELPA_FORTR..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ESSL
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ESSL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_GEMM3M
+ write(tmp,"(1x,a25)") "HAVE_LINALG_GEMM3M"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_GEMMT
+ write(tmp,"(1x,a25)") "HAVE_LINALG_GEMMT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MAGMA
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MAGMA"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MAGMA_15
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MAGMA_15"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MKL_IMATCOPY
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MKL_IMATCOPY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MKL_OMATADD
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MKL_OMATADD"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MKL_OMATCOPY
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MKL_OMATCOPY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_MKL_THREADS
+ write(tmp,"(1x,a25)") "HAVE_LINALG_MKL_THREADS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_OPENBLAS_THREADS
+ write(tmp,"(1x,a25)") "HAVE_LINALG_OPENBLAS_T..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_PLASMA
+ write(tmp,"(1x,a25)") "HAVE_LINALG_PLASMA"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_SCALAPACK
+ write(tmp,"(1x,a25)") "HAVE_LINALG_SCALAPACK"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ZDOTC_BUG
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ZDOTC_B*G"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LINALG_ZDOTU_BUG
+ write(tmp,"(1x,a25)") "HAVE_LINALG_ZDOTU_B*G"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_LOTF
+ write(tmp,"(1x,a25)") "HAVE_LOTF"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MEM_PROFILING
+ write(tmp,"(1x,a25)") "HAVE_MEM_PROFILING"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI
+ write(tmp,"(1x,a25)") "HAVE_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI1
+ write(tmp,"(1x,a25)") "HAVE_MPI1"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI2
+ write(tmp,"(1x,a25)") "HAVE_MPI2"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI2_INPLACE
+ write(tmp,"(1x,a25)") "HAVE_MPI2_INPLACE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI3
+ write(tmp,"(1x,a25)") "HAVE_MPI3"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_BUGGY_INTERFACES
+ write(tmp,"(1x,a25)") "HAVE_MPI_B*GGY_INTERFACES"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_GET_LIBRARY_VERSION
+ write(tmp,"(1x,a25)") "HAVE_MPI_GET_LIBRARY_V..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IALLGATHER
+ write(tmp,"(1x,a25)") "HAVE_MPI_IALLGATHER"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IALLREDUCE
+ write(tmp,"(1x,a25)") "HAVE_MPI_IALLREDUCE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IALLTOALL
+ write(tmp,"(1x,a25)") "HAVE_MPI_IALLTOALL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IALLTOALLV
+ write(tmp,"(1x,a25)") "HAVE_MPI_IALLTOALLV"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IBCAST
+ write(tmp,"(1x,a25)") "HAVE_MPI_IBCAST"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IGATHERV
+ write(tmp,"(1x,a25)") "HAVE_MPI_IGATHERV"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_INCLUDED_ONCE
+ write(tmp,"(1x,a25)") "HAVE_MPI_INCLUDED_ONCE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_INTEGER16
+ write(tmp,"(1x,a25)") "HAVE_MPI_INTEGER16"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IO
+ write(tmp,"(1x,a25)") "HAVE_MPI_IO"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_IO_DEFAULT
+ write(tmp,"(1x,a25)") "HAVE_MPI_IO_DEFAULT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_MPI_TYPE_CREATE_STRUCT
+ write(tmp,"(1x,a25)") "HAVE_MPI_TYPE_CREATE_S..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF
+ write(tmp,"(1x,a25)") "HAVE_NETCDF"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_CXX
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_CXX"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_CXX_MPI
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_CXX_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_DEFAULT
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_DEFAULT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_FORTRAN
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_FORTRAN"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_FORTRAN_MPI
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_FORTRAN_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NETCDF_MPI
+ write(tmp,"(1x,a25)") "HAVE_NETCDF_MPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_NUMPY
+ write(tmp,"(1x,a25)") "HAVE_NUMPY"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OMP_COLLAPSE
+ write(tmp,"(1x,a25)") "HAVE_OMP_COLLAPSE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OPENMP
+ write(tmp,"(1x,a25)") "HAVE_OPENMP"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OPENMP_GET_MAPPED_PTR
+ write(tmp,"(1x,a25)") "HAVE_OPENMP_GET_MAPPED..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OPENMP_OFFLOAD
+ write(tmp,"(1x,a25)") "HAVE_OPENMP_OFFLOAD"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OPENMP_OFFLOAD_DATASTRUCTURE
+ write(tmp,"(1x,a25)") "HAVE_OPENMP_OFFLOAD_DA..."
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OS_LINUX
+ write(tmp,"(1x,a25)") "HAVE_OS_LINUX"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OS_MACOSX
+ write(tmp,"(1x,a25)") "HAVE_OS_MACOSX"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_OS_WINDOWS
+ write(tmp,"(1x,a25)") "HAVE_OS_WINDOWS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_PAPI
+ write(tmp,"(1x,a25)") "HAVE_PAPI"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_PFFT
+ write(tmp,"(1x,a25)") "HAVE_PFFT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_PYTHON_INVOCATION
+ write(tmp,"(1x,a25)") "HAVE_PYTHON_INVOCATION"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_TIMER_ABINIT
+ write(tmp,"(1x,a25)") "HAVE_TIMER_ABINIT"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_TRIQS
+ write(tmp,"(1x,a25)") "HAVE_TRIQS"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_TRIQS_v1_4
+ write(tmp,"(1x,a25)") "HAVE_TRIQS_v1_4"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_TRIQS_v2_0
+ write(tmp,"(1x,a25)") "HAVE_TRIQS_v2_0"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_WANNIER90
+ write(tmp,"(1x,a25)") "HAVE_WANNIER90"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_WANNIER90_V1
+ write(tmp,"(1x,a25)") "HAVE_WANNIER90_V1"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_XML
+ write(tmp,"(1x,a25)") "HAVE_XML"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_XMLF90
+ write(tmp,"(1x,a25)") "HAVE_XMLF90"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined HAVE_YAKL
+ write(tmp,"(1x,a25)") "HAVE_YAKL"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+#if defined READ_FROM_FILE
+ write(tmp,"(1x,a25)") "READ_FROM_FILE"
+ msg = trim(msg)//trim(tmp)
+ msg_index = msg_index + 1
+ if ( mod(msg_index,3) == 0 ) then
+ msg = trim(msg)//ch10
+ write(my_unit,'(a)') msg
+ msg = ""
+ end if
+#endif
+
+ if ( mod(msg_index,3) /= 0 ) write(my_unit,'(a)') msg
+
+ write(my_unit,"(1x,a,a)") repeat("+",78),ch10
+
+end subroutine dump_cpp_options
+
+end module m_cppopts_dumper
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.o b/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.o
new file mode 100644
index 00000000..7737dbf7
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_cppopts_dumper.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_fstrings.F90 b/GX-PAW/common/src/14_hidewrite/m_fstrings.F90
new file mode 100644
index 00000000..cf749984
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_fstrings.F90
@@ -0,0 +1,2076 @@
+!!****m* ABINIT/m_fstrings
+!! NAME
+!! m_fstrings
+!!
+!! FUNCTION
+!! This module contains basic tools to operate on Fortran strings.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MG, XG, MT, DC)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+MODULE m_fstrings
+
+ use, intrinsic :: iso_c_binding
+
+ use defs_basis, only : dp, std_out, ch10
+
+ implicit none
+
+ private
+
+ public :: is_letter ! Returns .TRUE. if ch is a letter and .FALSE. otherwise
+ public :: is_digit ! Returns .TRUE. if ch is a digit (0,1,...,9) and .FALSE. otherwise
+ public :: find_digit ! Returns the position of the first digit in string. 0 if not found.
+ public :: upper ! Convert lower case letters to UPPER CASE
+ public :: toupper ! Convert lower case letters to UPPER CASE (function version)
+ public :: lower ! Convert UPPER CASE letters to lower case
+ public :: tolower ! Convert UPPER CASE letters to lower case (function version)
+ public :: removesp ! Removes spaces, tabs, and control characters in string str
+ public :: replace_ch0 ! Replace final '\0' with whitespaces
+ public :: lstrip ! Remove leading spaces from string
+ public :: replace ! Replace chars in string.
+ public :: ljust ! Return a left-justified string of length width.
+ public :: lpad ! Pad a string adding repeat characters fillchar on the left side.
+ public :: round_brackets ! Return a new string enclosed in parentheses if not already present.
+ public :: quote ! Return a new string enclosed by quotation marks.
+ public :: rmquotes ! Remove quotation marks from a string. Return new string
+ public :: write_num ! Writes a number to a string using format fmt
+ public :: trimzero ! Deletes nonsignificant trailing zeroes from a number string.
+ public :: writeq ! Writes a string of the form = value to unit
+ public :: strcat ! Concatenate strings (function version)
+ public :: sjoin ! Joins strings with a space separator.
+ public :: yesno ! Convert boolean to "yes", "no"
+ public :: itoa ! Convert an integer into a string
+ public :: ftoa ! Convert a float into a string
+ public :: ktoa ! Convert a k-point into a string.
+ public :: stoa ! Convert a spin index into a string
+ public :: ltoa ! Convert a list into a string.
+ public :: atoi ! Convert a string into a integer
+ public :: atof ! Convert a string into a floating-point number.
+ public :: basename ! Returns the final component of a pathname.
+ public :: firstchar ! Returns .TRUE. is the first character in a string belongs to a gives set.
+ public :: startswith ! Returns .TRUE. is the string starts with the specified prefix.
+ public :: endswith ! Returns .True if the string ends with the specified suffix.
+ public :: indent ! Indent text
+ public :: string_in ! Compare input str with a list of comma-separated strings
+ public :: prep_char ! Prepend `char` to each line in a string.
+ public :: int2char4 ! Convert a positive integer number (zero included) to a character(len=*)
+ ! with trailing zeros if the number is <=9999
+ public :: int2char10 ! Convert a positive integer number (zero included) to a character(len=10)
+ ! with trailing blanks
+ public :: char_count ! Count the occurrences of a character in a string.
+ public :: next_token ! Tokenize a string made of whitespace-separated tokens.
+ public :: inupper ! Maps all characters in string to uppercase except for tokens between quotation marks.
+ public :: find_and_select ! Find substring and select value in list depending on substring
+
+ !TODO method to center a string
+ interface itoa
+ module procedure itoa_1b
+ module procedure itoa_4b
+ end interface itoa
+
+ interface write_num
+ module procedure write_rdp_0D
+ module procedure write_int_0D
+ end interface write_num
+
+ interface writeq
+ module procedure writeq_rdp_0D
+ module procedure writeq_int_0D
+ end interface writeq
+
+ interface is_digit
+ module procedure is_digit_0D
+ end interface is_digit
+
+ interface firstchar
+ module procedure firstchar_0d
+ module procedure firstchar_1d
+ end interface firstchar
+
+ interface sjoin
+ module procedure sjoin_2
+ module procedure sjoin_3
+ module procedure sjoin_4
+ module procedure sjoin_5
+ module procedure sjoin_6
+ module procedure sjoin_7
+ end interface sjoin
+
+ interface strcat
+ module procedure strcat_2
+ module procedure strcat_3
+ module procedure strcat_4
+ module procedure strcat_5
+ end interface strcat
+
+ interface ltoa
+ module procedure ltoa_int
+ module procedure ltoa_dp
+ end interface ltoa
+
+ character(len=1),parameter :: BLANK=' '
+ character(len=1),parameter :: NCHAR = char(10)
+ character(len=1),parameter :: DIR_SEPARATOR = '/'
+
+ integer,parameter :: ASCII_A=ICHAR('A')
+ integer,parameter :: ASCII_Z=ICHAR('Z')
+ integer,parameter :: ASCII_aa=ICHAR('a')
+ integer,parameter :: ASCII_zz=ICHAR('z')
+ integer,parameter :: SHIFT=ASCII_aa-ASCII_A ! Capital letters have smaller Dec value in the ASCII table.
+ integer,parameter :: ASCII_0=ICHAR('0')
+ integer,parameter :: ASCII_9=ICHAR('9')
+
+ integer,parameter :: MAX_SLEN = 500
+
+
+CONTAINS !===========================================================
+!!***
+
+!!****f* m_fstrings/is_letter
+!! NAME
+!! is_letter
+!!
+!! FUNCTION
+!! Returns .TRUE. if ch is a letter and .FALSE. otherwise.
+!!
+!! SOURCE
+
+pure function is_letter(ch) result(ans)
+
+ character(len=1),intent(in) :: ch
+ logical :: ans
+! *********************************************************************
+
+ select case (ICHAR(ch))
+ case (ASCII_A:ASCII_Z,ASCII_aa:ASCII_zz)
+ ans=.TRUE.
+ case DEFAULT
+ ans=.FALSE.
+ end select
+
+end function is_letter
+!!***
+
+!!****f* m_fstrings/is_digit_0D
+!! NAME
+!! is_digit_0D
+!!
+!! FUNCTION
+!! Returns .TRUE. if ch is a digit (0,1,...,9) and .FALSE. otherwise.
+!!
+!! SOURCE
+
+pure function is_digit_0D(ch) result(ans)
+
+!Arguments ------------------------------------
+ character(len=1),intent(in) :: ch
+ logical :: ans
+! *********************************************************************
+
+ select case (ICHAR(ch))
+ case(ASCII_0:ASCII_9)
+ ans=.TRUE.
+ case default
+ ans=.FALSE.
+ end select
+
+end function is_digit_0D
+!!***
+
+!!****f* m_fstrings/find_digit
+!! NAME
+!! find_digit
+!!
+!! FUNCTION
+!! Returns the position of the first digit in string. 0 if not found.
+!!
+!! SOURCE
+
+integer pure function find_digit(string) result(ii)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: string
+
+! *********************************************************************
+
+ do ii=1,len_trim(string)
+ if (is_digit(string(ii:ii))) return
+ end do
+ ii = 0
+
+end function find_digit
+!!***
+
+!!****f* m_fstrings/upper
+!! NAME
+!! upper
+!!
+!! FUNCTION
+!! Convert lower case letters to UPPER CASE.
+!!
+!! SOURCE
+
+pure subroutine upper(str)
+
+ character(len=*),intent(inout) :: str
+
+!Local variables-------------------------------
+ integer :: ic,iasc
+! *********************************************************************
+
+ do ic=1,LEN_TRIM(str)
+ iasc=IACHAR(str(ic:ic))
+ if (iasc>=ASCII_aa.and.iasc<=ASCII_zz) str(ic:ic)=ACHAR(iasc-SHIFT)
+ end do
+
+end subroutine upper
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/toupper
+!! NAME
+!! toupper
+!!
+!! FUNCTION
+!! Convert lower case letters to UPPER CASE (function version).
+!!
+!! SOURCE
+
+pure function toupper(str_in) result(str_out)
+
+ character(len=*),intent(in) :: str_in
+ character(len=LEN_TRIM(str_in)) :: str_out
+
+!Local variables-------------------------------
+ integer :: ic,iasc
+! *********************************************************************
+
+ do ic=1,LEN_TRIM(str_in)
+ iasc=IACHAR(str_in(ic:ic))
+ if (iasc>=ASCII_aa.and.iasc<=ASCII_zz) then
+ str_out(ic:ic)=ACHAR(iasc-SHIFT)
+ else
+ str_out(ic:ic)=str_in(ic:ic)
+ end if
+ end do
+
+end function toupper
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/lower
+!! NAME
+!! lower
+!!
+!! FUNCTION
+!! Convert UPPER CASE letters to lower case.
+!!
+!! SOURCE
+
+pure subroutine lower(str)
+
+ character(len=*),intent(inout) :: str
+
+!Local variables-------------------------------
+ integer :: ic,iasc
+! *********************************************************************
+
+ do ic=1,LEN_TRIM(str)
+ iasc=IACHAR(str(ic:ic))
+ if (iasc>=ASCII_A.and.iasc<=ASCII_Z) str(ic:ic)=ACHAR(iasc+SHIFT)
+ end do
+
+end subroutine lower
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/tolower
+!! NAME
+!! tolower
+!!
+!! FUNCTION
+!! Convert UPPER CASE letters to lower case (function version).
+!!
+!! SOURCE
+
+pure function tolower(str_in) result(str_out)
+
+ character(len=*),intent(in) :: str_in
+ character(len=LEN_TRIM(str_in)) :: str_out
+
+!Local variables-------------------------------
+ integer :: ic,iasc
+! *********************************************************************
+
+ do ic=1,LEN_TRIM(str_in)
+ iasc=IACHAR(str_in(ic:ic))
+ if (iasc>=ASCII_A.and.iasc<=ASCII_Z) then
+ str_out(ic:ic)=ACHAR(iasc+SHIFT)
+ else
+ str_out(ic:ic)=str_in(ic:ic)
+ end if
+ end do
+
+end function tolower
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/removesp
+!! NAME
+!! removesp
+!!
+!! FUNCTION
+!! Removes spaces, tabs, and control characters in string str.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine removesp(str)
+
+ character(len=*),intent(inout) :: str
+
+!Local variables-------------------------------
+ integer :: i,k,lenstr,ich
+ character(len=1):: ch
+ character(len=LEN_TRIM(str)):: outstr
+! *********************************************************************
+
+ str=ADJUSTL(str) ; lenstr=LEN_TRIM(str)
+
+ outstr=BLANK ; k=0
+ do i=1,lenstr
+ ch=str(i:i)
+ ich=IACHAR(ch)
+ select case(ich)
+ case(0:32) ! space, tab, or control character
+ CYCLE
+ case(33:)
+ k=k+1
+ outstr(k:k)=ch
+ end select
+ end do
+
+ str=ADJUSTL(outstr)
+
+end subroutine removesp
+!!***
+
+!!****m* m_fstrings/replace_ch0
+!! NAME
+!! replace_ch0
+!!
+!! FUNCTION
+!! Little tool to change all final '\0' (end of string in C) characters to ' ' (space).
+!!
+!! SIDE EFFECTS
+!! * string = the string to convert. It is done in-place.
+!!
+!! SOURCE
+
+elemental subroutine replace_ch0(string)
+
+ character(len=*), intent(inout) :: string
+
+ integer :: i, l
+
+ i = index(string, char(0))
+ if (i > 0) then
+ l = len(string)
+ string(i:l) = repeat(" ", l - i + 1)
+ end if
+
+end subroutine replace_ch0
+!!***
+
+!!****m* m_fstrings/replace
+!! NAME
+!! replace
+!!
+!! FUNCTION
+!! Replace `text` with `rep` in string `s`. Return new string.
+!!
+!! NOTES:
+!! The length of the output string is increased by 500 but this could not be enough
+!! if len_trim(text) > len_trim(re) and there are several occurrences of `text` in s.
+!!
+!! SOURCE
+
+function replace(s, text, rep) result(outs)
+
+ character(len=*),intent(in) :: s, text, rep
+ character(len(s)+500) :: outs ! provide outs with extra 500 char len
+
+!Local variables-------------------------------
+ integer :: i, j, nt, nr, last
+! *********************************************************************
+
+ outs = s; nt = len_trim(text); nr = len_trim(rep); last = 1
+ do
+ i = index(outs(last:), text(1:nt)); if (i == 0) exit
+ j = last + i - 1; last = j + nr
+ if (j - 1 < 1) then
+ outs = rep(:nr) // outs(j+nt:)
+ else
+ outs = outs(:j-1) // rep(:nr) // outs(j+nt:)
+ end if
+ end do
+
+end function replace
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/lstrip
+!! NAME
+!! lstrip
+!!
+!! FUNCTION
+!! Removes leading spaces from the input string.
+!!
+!! SOURCE
+
+pure function lstrip(istr) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=len(istr)) :: ostr
+
+!Local variables-------------------------------
+ integer :: ii,jj,lg
+! *********************************************************************
+
+ lg=LEN(istr)
+ do ii=1,lg
+ if (istr(ii:ii)/=BLANK) EXIT
+ end do
+
+ ostr = " "
+ do jj=1,lg-ii+1
+ ostr(jj:jj) = istr(ii:ii)
+ ii=ii+1
+ end do
+
+end function lstrip
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/ljust
+!! NAME
+!! ljust
+!!
+!! FUNCTION
+!! Return S left-justified in a string of length width. Padding is
+!! done using the specified fill character (default is a space).
+!!
+!! SOURCE
+
+pure function ljust(istr, width, fillchar) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ integer,intent(in) :: width
+ character(len=width) :: ostr
+ character(len=1),optional,intent(in) :: fillchar
+
+!Local variables-------------------------------
+ integer :: ii
+! *********************************************************************
+
+ ostr = ADJUSTL(istr)
+
+ if (PRESENT(fillchar)) then
+ do ii=LEN_TRIM(ostr)+1,width
+ ostr(ii:ii) = fillchar
+ end do
+ end if
+
+end function ljust
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/lpad
+!! NAME
+!! lpad
+!!
+!! FUNCTION
+!! Pad a string adding repeat characters fillchar on the left side.
+!! Padding is done using the specified fill character (default is a blanck character).
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+pure function lpad(istr, repeat, fillchar) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ integer,intent(in) :: repeat
+ character(len=LEN_TRIM(istr) + repeat) :: ostr
+ character(len=1),optional,intent(in) :: fillchar
+
+!Local variables-------------------------------
+ integer :: ii
+ character(len=1) :: ch
+! *********************************************************************
+
+ ostr(repeat+1:) = TRIM(istr)
+
+ ch = " "; if (PRESENT(fillchar)) ch = fillchar
+ do ii=1,repeat
+ ostr(ii:ii) = ch
+ end do
+
+end function lpad
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/round_brackets
+!! NAME
+!! round_brackets
+!!
+!! FUNCTION
+!! Return a new string enclosed in parentheses if not already present.
+!!
+!! SOURCE
+
+pure function round_brackets(istr) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=LEN_TRIM(istr)+2) :: ostr
+
+!Local variables-------------------------------
+ integer :: ii
+ character(len=1) :: qq
+ character(len=LEN(istr)+2) :: tmp
+
+! *********************************************************************
+
+ do ii=1,LEN(istr)
+ if (istr(ii:ii)/=BLANK) EXIT
+ end do
+
+ qq = istr(ii:ii)
+
+ if (qq == "(") then
+ ! Don't add quotation marks if they already present.
+ tmp = istr
+ ii = LEN_TRIM(tmp)
+ ! If the string is not closed, fix it.
+ if (tmp(ii:ii) /= ")") tmp(ii+1:ii+1) = ")"
+ ostr = TRIM(tmp)
+
+ else
+ qq = '('
+ ostr(1:1) = qq
+ ostr(2:) = TRIM(istr)
+ ii = LEN_TRIM(ostr)+1
+ ostr(ii:ii) = ")"
+ end if
+
+end function round_brackets
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/quote
+!! NAME
+!! quote
+!!
+!! FUNCTION
+!! Return a new string enclosed by quotation marks.
+!!
+!! SOURCE
+
+pure function quote(istr) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=LEN_TRIM(istr)+2) :: ostr
+
+!Local variables-------------------------------
+ integer :: ii
+ character(len=1) :: qq
+ character(len=LEN(istr)+2) :: tmp
+
+! *********************************************************************
+
+ do ii=1,LEN(istr)
+ if (istr(ii:ii)/=BLANK) EXIT
+ end do
+
+ qq = istr(ii:ii)
+
+ if (qq == "'" .or. qq == '"') then
+ ! Don't add quotation marks if they already present.
+ tmp = istr
+ ii = LEN_TRIM(tmp)
+ ! If the string is not closed, fix it.
+ if (tmp(ii:ii) /= qq) tmp(ii+1:ii+1) = qq
+ ostr = TRIM(tmp)
+
+ else
+ qq = '"'
+ ostr(1:1) = qq
+ ostr(2:) = TRIM(istr)
+ ii = LEN_TRIM(ostr)+1
+ ostr(ii:ii) = qq
+ end if
+
+end function quote
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/rmquotes
+!! NAME
+!! rmquotes
+!!
+!! FUNCTION
+!! Remove quotation marks from a string. Return new string
+!!
+!! SOURCE
+
+pure function rmquotes(istr) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=len(istr)) :: ostr
+
+!Local variables-------------------------------
+ integer :: ii,cnt
+
+! *********************************************************************
+
+ ostr = ""; cnt = 0
+ do ii=1,len_trim(istr)
+ if (any(istr(ii:ii) == ["'", '"'])) cycle
+ cnt = cnt + 1
+ ostr(cnt:cnt) = istr(ii:ii)
+ end do
+
+end function rmquotes
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/write_rdp_0d
+!! NAME
+!! write_rdp_0d
+!!
+!! FUNCTION
+!! Writes a number to a string using format fmt.
+!!
+!! SOURCE
+
+subroutine write_rdp_0d(rnum,str,fmt)
+
+!Arguments ------------------------------------
+ real(dp),intent(in) :: rnum
+ character(len=*),intent(in) :: fmt
+ character(len=*),intent(out) :: str
+
+!Local variables-------------------------------
+ character(len=LEN(fmt)+2) :: formt
+! *********************************************************************
+
+ formt='('//TRIM(fmt)//')'
+ write(str,formt)rnum
+ str=ADJUSTL(str)
+
+end subroutine write_rdp_0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/write_int_0d
+!! NAME
+!! write_int_0d
+!!
+!! FUNCTION
+!! Writes a number to a string using format fmt.
+!!
+!! SOURCE
+
+subroutine write_int_0D(inum,str,fmt)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: inum
+ character(len=*),intent(in) :: fmt
+ character(len=*),intent(out) :: str
+
+!Local variables-------------------------------
+ character(len=LEN(fmt)+2) :: formt
+! *********************************************************************
+
+ formt='('//TRIM(fmt)//')'
+ write(str,formt) inum
+ str=ADJUSTL(str)
+
+end subroutine write_int_0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/trimzero
+!! NAME
+!! trimzero
+!!
+!! FUNCTION
+!! Deletes nonsignificant trailing zeroes from number string str. If number
+!! string ends in a decimal point, one trailing zero is added.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+! NOT sure it will work
+
+subroutine trimzero(str)
+
+ character(len=*),intent(inout) :: str
+
+!Local variables-------------------------------
+ integer :: i,ipos,lstr
+ character :: ch
+ character(len=10) :: sexp
+! *********************************************************************
+
+ ipos=SCAN(str,'eE')
+ if (ipos>0) then
+ sexp=str(ipos:)
+ str=str(1:ipos-1)
+ end if
+ lstr=LEN_TRIM(str)
+ do i=lstr,1,-1
+ ch=str(i:i)
+ if (ch=='0') CYCLE
+ if (ch=='.') then
+ str=str(1:i)//'0'
+ if (ipos>0) str=TRIM(str)//TRIM(sexp)
+ EXIT
+ end if
+ str=str(1:i)
+ EXIT
+ end do
+
+ if (ipos>0) str=TRIM(str)//TRIM(sexp)
+
+end subroutine trimzero
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/writeq_rdp_0D
+!! NAME
+!! writeq_rdp_0D
+!!
+!! FUNCTION
+!! Writes a string of the form = value to unit.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+subroutine writeq_rdp_0D(unit,namestr,value,fmt)
+
+ real(dp),intent(in) :: value
+ integer,intent(in) :: unit
+ character(len=*),intent(in) :: fmt
+ character(len=*),intent(in) :: namestr
+
+!Local variables-------------------------------
+ character(len=32) :: tempstr
+! *********************************************************************
+
+ call write_num(value,tempstr,fmt)
+ call trimzero(tempstr)
+ write(unit,*)TRIM(namestr)//' = '//TRIM(tempstr)
+
+end subroutine writeq_rdp_0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/writeq_int_0D
+!! NAME
+!! writeq_int_0D
+!!
+!! FUNCTION
+!! Writes a string of the form = value to unit.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine writeq_int_0D(unit,namestr,ivalue,fmt)
+
+ integer,intent(in) :: ivalue
+ integer,intent(in) :: unit
+ character(len=*),intent(in) :: namestr
+ character(len=*),intent(in) :: fmt
+
+!Local variables-------------------------------
+ character(len=32) :: tempstr
+! *********************************************************************
+
+ call write_num(ivalue,tempstr,fmt)
+ call trimzero(tempstr)
+ write(unit,*)TRIM(namestr)//' = '//TRIM(tempstr)
+
+end subroutine writeq_int_0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_2
+!! NAME
+!! sjoin_2
+!!
+!! FUNCTION
+!! Joins two strings with a space separator except if first string is empty.
+!!
+
+pure function sjoin_2(str1,str2) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+1) :: ostr
+
+! *********************************************************************
+
+ if (len_trim(str1) > 0) then
+ ostr=TRIM(str1)//" "//TRIM(str2)
+ else
+ ostr=TRIM(str2)
+ end if
+
+end function sjoin_2
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_3
+!! NAME
+!! sjoin_3
+!!
+!! FUNCTION
+!! Joins three strings with a space separator.
+!!
+
+pure function sjoin_3(str1,str2,str3) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+2) :: ostr
+
+! *********************************************************************
+
+ ostr = sjoin_2(sjoin_2(str1, str2), str3)
+
+end function sjoin_3
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_4
+!! NAME
+!! sjoin_4
+!!
+!! FUNCTION
+!! Joins four strings with a space separator.
+!!
+
+pure function sjoin_4(str1,str2,str3,str4) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+len_trim(str4)+3) :: ostr
+
+! *********************************************************************
+
+ ostr = sjoin_2(str1, sjoin_3(str2, str3, str4))
+
+end function sjoin_4
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_5
+!! NAME
+!! sjoin_5
+!!
+!! FUNCTION
+!! Joins five strings with a space separator.
+!!
+
+pure function sjoin_5(str1,str2,str3,str4,str5) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4,str5
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+len_trim(str4)+len_trim(str5)+4) :: ostr
+
+! *********************************************************************
+
+ ostr = sjoin_2(str1, sjoin_4(str2, str3, str4, str5))
+
+end function sjoin_5
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_6
+!! NAME
+!! sjoin_6
+!!
+!! FUNCTION
+!! Joins six strings with a space separator.
+!!
+
+pure function sjoin_6(str1,str2,str3,str4,str5,str6) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4,str5,str6
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+len_trim(str4)+len_trim(str5)+len_trim(str6)+5) :: ostr
+
+! *********************************************************************
+
+ ostr = sjoin_2(str1, sjoin_5(str2, str3, str4, str5, str6))
+
+end function sjoin_6
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/sjoin_7
+!! NAME
+!! sjoin_7
+!!
+!! FUNCTION
+!! Joins six strings with a space separator.
+!!
+
+pure function sjoin_7(str1,str2,str3,str4,str5,str6,str7) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4,str5,str6,str7
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+len_trim(str4)+len_trim(str5)+len_trim(str6)+len(str7)+6) &
+& :: ostr
+
+! *********************************************************************
+
+ ostr = sjoin_2(str1, sjoin_6(str2, str3, str4, str5, str6, str7))
+
+end function sjoin_7
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/strcat_2
+!! NAME
+!! strcat_2
+!!
+!! FUNCTION
+!! Returns two concatenated strings.
+!!
+
+pure function strcat_2(str1,str2) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)) :: ostr
+
+! *********************************************************************
+
+ ostr=TRIM(str1)//TRIM(str2)
+
+end function strcat_2
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/strcat_3
+!! NAME
+!! strcat_3
+!!
+!! FUNCTION
+!! Concatenate 3 strings
+!!
+
+pure function strcat_3(str1, str2, str3) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)) :: ostr
+
+! *********************************************************************
+
+ ostr = TRIM(str1)//TRIM(str2)//TRIM(str3)
+
+end function strcat_3
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/strcat_4
+!! NAME
+!! strcat_3
+!!
+!! FUNCTION
+!! Concatenate 4 strings
+!!
+
+pure function strcat_4(str1, str2, str3, str4) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+LEN_TRIM(str4)) :: ostr
+
+! *********************************************************************
+
+ ostr = TRIM(str1)//TRIM(str2)//TRIM(str3)//TRIM(str4)
+
+end function strcat_4
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/strcat_5
+!! NAME
+!! strcat_5
+!!
+!! FUNCTION
+!! Concatenate 5 strings
+!!
+
+pure function strcat_5(str1, str2, str3, str4, str5) result(ostr)
+
+ character(len=*),intent(in) :: str1,str2,str3,str4,str5
+ character(len=LEN_TRIM(str1)+LEN_TRIM(str2)+LEN_TRIM(str3)+LEN_TRIM(str4)+LEN_TRIM(str5)) :: ostr
+
+! *********************************************************************
+
+ ostr = TRIM(str1)//TRIM(str2)//TRIM(str3)//TRIM(str4)//trim(str5)
+
+end function strcat_5
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/yesno
+!! NAME
+!! yesno
+!!
+!! FUNCTION
+!! Convert boolean into "yes" or "no"
+!!
+
+character(len=3) pure function yesno(bool)
+
+!Arguments ------------------------------------
+ logical,intent(in) :: bool
+
+! *********************************************************************
+
+ if (bool) then
+ yesno = "yes"
+ else
+ yesno = "no"
+ end if
+
+end function yesno
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/atoi
+!! NAME
+!! atoi
+!!
+!! FUNCTION
+!! Convert a string into a integer
+!!
+
+integer function atoi(string)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: string
+
+! *********************************************************************
+
+ read(string,*,err=10)atoi
+ return
+ 10 write(std_out,*)"Error while trying to convert string to integer. string: ",trim(string)
+
+end function atoi
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/atof
+!! NAME
+!! atof
+!!
+!! FUNCTION
+!! Convert a string into a floating-point number
+!!
+
+real(dp) function atof(string)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: string
+
+! *********************************************************************
+
+ read(string,*,err=10)atof
+ return
+ 10 write(std_out,*)"Error while trying to convert string to floating-point. string: ",trim(string)
+
+end function atof
+!!***
+
+!!****f* m_fstrings/itoa_1b
+!! NAME
+!! itoa_1b
+!!
+!! FUNCTION
+!! Convert an integer into a string
+!!
+
+pure function itoa_1b(value)
+
+ integer(c_int8_t),intent(in) :: value
+ character(len=22) :: itoa_1b
+
+! *********************************************************************
+
+ ! len=22 is large enough to contain integer*8
+ write(itoa_1b,"(i0)")value
+ itoa_1b = ADJUSTL(itoa_1b)
+
+end function itoa_1b
+!!***
+
+!!****f* m_fstrings/itoa_4b
+!! NAME
+!! itoa_4b
+!!
+!! FUNCTION
+!! Convert an integer into a string
+!!
+pure function itoa_4b(value)
+
+ integer,intent(in) :: value
+ character(len=22) :: itoa_4b
+
+! *********************************************************************
+
+ ! len=22 is large enough to contain integer*8
+ write(itoa_4b,"(i0)")value
+ itoa_4b = ADJUSTL(itoa_4b)
+
+end function itoa_4b
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/ftoa
+!! NAME
+!! ftoa
+!!
+!! FUNCTION
+!! Convert an float into a string using format fmt (es16.6 if fmt is not given).
+!!
+
+pure function ftoa(value, fmt)
+
+ real(dp),intent(in) :: value
+ character(len=*),optional,intent(in) :: fmt
+ character(len=MAX_SLEN) :: ftoa
+
+! *********************************************************************
+
+ if (present(fmt)) then
+ write(ftoa,round_brackets(fmt))value
+ else
+ write(ftoa,"(es16.6)")value
+ end if
+ ftoa = ADJUSTL(ftoa)
+
+end function ftoa
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/ktoa
+!! NAME
+!! ktoa
+!!
+!! FUNCTION
+!! Convert an k-point into a string using format fmt (es.16.6 if fmt is not given).
+!!
+
+pure function ktoa(kpt, fmt)
+
+ real(dp),intent(in) :: kpt(3)
+ character(len=*),optional,intent(in) :: fmt
+ character(len=MAX_SLEN) :: ktoa
+
+! *********************************************************************
+
+ if (present(fmt)) then
+ write(ktoa,fmt)kpt
+ else
+ write(ktoa,"(a,3(es11.4,a))")"[",kpt(1),", ",kpt(2),", ",kpt(3),"]"
+ end if
+ ktoa = ADJUSTL(ktoa)
+
+end function ktoa
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/stoa
+!! NAME
+!! stoa
+!!
+!! FUNCTION
+!! Convert a spin index into a string
+!!
+
+character(len=4) pure function stoa(spin)
+
+ integer,intent(in) :: spin
+
+! *********************************************************************
+
+ select case (spin)
+ case (1)
+ stoa = "UP"
+ case (2)
+ stoa = "DOWN"
+ case default
+ stoa = "????"
+ end select
+
+end function stoa
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/ltoa_int
+!! NAME
+!! ltoa_int
+!!
+!! FUNCTION
+!! Convert a list of integers into a string.
+!!
+!! CHILDREN
+
+pure function ltoa_int(list) result(str)
+
+ integer,intent(in) :: list(:)
+ character(len=MAX_SLEN) :: str
+
+!Local variables-------------------------------
+ integer :: ii,base,sz
+ character(len=MAX_SLEN) :: temp
+
+! *********************************************************************
+
+ sz = size(list)
+
+ if (any(sz == [0, 1])) then
+ if (sz == 0) str = "[]"
+ if (sz == 1) write(str, "(a,i0,a)")"[",list(1),"]"
+ return
+ end if
+
+ str = ""; base = 1
+ do ii=1,sz
+
+ ! Write to temp string and copy it to str if we have enough chars.
+ ! Return if MAX_SLEN is too short.
+ if (ii == 1) then
+ write(temp, "(a,i0,a)")"[",list(1),", "
+ else if (ii == sz) then
+ write(temp, "(i0,a)")list(ii),"]"
+ else
+ write(temp, "(i0,a)")list(ii),", "
+ end if
+
+ if (base + len_trim(temp) <= MAX_SLEN) then
+ str(base:) = trim(temp)//" "
+ base = len_trim(str) + 2
+ else
+ return
+ end if
+ end do
+
+end function ltoa_int
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/ltoa_dp
+!! NAME
+!! ltoa_dp
+!!
+!! FUNCTION
+!! Convert a list of double precision numbers into a string.
+!! fmt specifies the format to be used ("es13.4" by default)
+!!
+!! CHILDREN
+
+pure function ltoa_dp(list, fmt) result(str)
+
+ real(dp),intent(in) :: list(:)
+ character(len=*),optional,intent(in) :: fmt
+ character(len=MAX_SLEN) :: str
+
+!Local variables-------------------------------
+ integer :: ii,base,sz
+ character(len=MAX_SLEN) :: temp,myfmt,fa
+
+! *********************************************************************
+
+ myfmt = "es13.4"; if (present(fmt)) myfmt = fmt
+ sz = size(list)
+
+ if (any(sz == [0, 1])) then
+ if (sz == 0) str = "[]"
+ if (sz == 1) write(str, sjoin("(a,",myfmt,",a)")) "[",list(1),"]"
+ return
+ end if
+
+ str = ""; base = 1; fa = sjoin("(",myfmt,",a)")
+ do ii=1,sz
+
+ ! Write to temp string and copy it to str if we have enough chars.
+ ! Return if MAX_SLEN is too short.
+ if (ii == 1) then
+ write(temp, sjoin("(a,",myfmt,",a)")) "[",list(1),","
+ else if (ii == sz) then
+ write(temp, fa)list(ii),"]"
+ else
+ write(temp, fa) list(ii),","
+ end if
+
+ if (base + len_trim(temp) <= MAX_SLEN) then
+ str(base:) = trim(temp)// " "
+ base = len_trim(str) + 2
+ else
+ return
+ end if
+ end do
+
+end function ltoa_dp
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstring/basename
+!! NAME
+!! basename
+!!
+!! FUNCTION
+!! Returns the final component of a pathname.
+!!
+!! INPUTS
+!! string=The input string
+!!
+!! NOTES
+!! * If the input string in not a valid path to a file (i.e not in the form foo/name)
+!! a blank strink is returned
+!! * We do a backward search becase we want to optimize the algorithm for Fortran strings.
+!!
+!! SOURCE
+
+pure function basename(string)
+
+ character(len=*),intent(in) :: string
+ character(len=LEN_TRIM(string)) :: basename
+
+!Local variables-------------------------------
+ integer :: ic,nch_trim,nch
+!************************************************************************
+
+ nch =LEN (string)
+ nch_trim=LEN_TRIM(string)
+
+ ic = INDEX (TRIM(string), DIR_SEPARATOR, back=.TRUE.)
+ !write(*,*)'DEBUG ',TRIM(string),ic
+
+ if (ic >= 1 .and. ic <= nch_trim-1) then ! there is stuff after the separator.
+ basename = string(ic+1:nch_trim)
+ return
+ else if (ic==0 .or. ic == nch_trim+1) then ! no separator in string or zero length string,
+ basename = TRIM(string) ! return trimmed string.
+ return
+ else ! (ic == nch_trim) separator is the last char.
+ basename= BLANK ! This is not a valid path to a file, return blank.
+ return
+ end if
+
+end function basename
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstring/firstchar_0d
+!! NAME
+!! firstchar_0d
+!!
+!! FUNCTION
+!! Return True if string starts with the specified character
+!!
+!! INPUTS
+!! string=The string whose first character has to be cheched
+!! ch=Character
+!! [csens]=.TRUE. if comparison is done regardless of case. Defaults to .FALSE.
+!!
+!!
+!! SOURCE
+
+pure function firstchar_0d(string,ch,csens) result(ans)
+
+ logical :: ans
+ logical,optional,intent(in) :: csens
+ character(len=*),intent(in) :: string
+ character(len=1),intent(in) :: ch
+
+!Local variables-------------------------------
+ logical :: my_csens
+!************************************************************************
+
+ my_csens=.FALSE.; if (PRESENT(csens)) my_csens = csens
+
+ if (.not.my_csens) then
+ ans = ( string(1:1) == ch)
+ else
+ ans = ( toupper(string(1:1)) == toupper(ch))
+ end if
+
+end function firstchar_0d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstring/firstchar_1d
+!! NAME
+!! firstchar_1d
+!!
+!! FUNCTION
+!! Returns .TRUE. is the first character of the string belongs to a given list.
+!!
+!! INPUTS
+!! string=The string whose first character has to be cheched
+!! char_list=The list of characters.
+!! [csens]=.TRUE. if comparison is done regardless of case. Defaults to .FALSE.
+!!
+!!
+!! SOURCE
+
+pure function firstchar_1d(string,char_list,csens) result(ans)
+
+ logical :: ans
+ logical,optional,intent(in) :: csens
+ character(len=*),intent(in) :: string
+ character(len=1),intent(in) :: char_list(:)
+
+!Local variables-------------------------------
+ integer :: ii
+ logical :: my_csens
+ character(len=1) :: first_ch
+!************************************************************************
+
+ my_csens=.FALSE.; if (PRESENT(csens)) my_csens = csens
+
+ first_ch = string(1:1)
+
+ ans=.FALSE.
+
+ if (.not.my_csens) then
+ do ii=1,SIZE(char_list)
+ ans = ( first_ch == char_list(ii) ); if (ans) EXIT
+ end do
+ else
+ do ii=1,SIZE(char_list)
+ ans = ( toupper(first_ch) == toupper(char_list(ii)) ); if (ans) EXIT
+ end do
+ end if
+
+end function firstchar_1d
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstring/startswith
+!! NAME
+!! startswith
+!!
+!! FUNCTION
+!! Returns .TRUE. is the string starts with the specified prefix.
+!!
+!! SOURCE
+
+pure logical function startswith(string, prefix) result(ans)
+
+ character(len=*),intent(in) :: string
+ character(len=*),intent(in) :: prefix
+
+!Local variables-------------------------------
+ integer :: ii,lenstr,lenpre
+!************************************************************************
+
+ ans = .False.
+ lenstr = len_trim(string); lenpre = len_trim(prefix)
+ if (lenpre > lenstr) return
+
+ do ii=1,lenpre
+ if (prefix(ii:ii) /= string(ii:ii)) return
+ end do
+ ans = .True.
+
+end function startswith
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstring/endswith
+!! NAME
+!! endswith
+!!
+!! FUNCTION
+!! Returns .TRUE. is the string ends with the specified suffix
+!!
+!! SOURCE
+
+pure function endswith(string, suffix) result(ans)
+
+ logical :: ans
+ character(len=*),intent(in) :: string
+ character(len=*),intent(in) :: suffix
+
+!Local variables-------------------------------
+ integer :: ii,p,lenstr,lensuf
+!************************************************************************
+
+ ans = .False.
+ lenstr = len_trim(string); lensuf = len_trim(suffix)
+ if (lensuf > lenstr) return
+
+ do ii=1,lensuf
+ p = lenstr - lensuf + ii
+ if (suffix(ii:ii) /= string(p:p)) return
+ end do
+ ans = .True.
+
+end function endswith
+!!***
+
+!!****f* m_fstrings/indent
+!! NAME
+!! indent
+!!
+!! FUNCTION
+!! Indent text
+!!
+!! INPUTS
+!! istr=Input string
+!!
+!! PARENTS
+!!
+!! CHILDREN
+!!
+!! SOURCE
+
+pure function indent(istr) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=len(istr)*4+4) :: ostr
+
+!Local variables-------------------------------
+ integer,parameter :: n=4 ! ostr is large enough to allocate all the possible indentations.
+ integer :: ii,jj,kk
+ character(len=1) :: ch
+
+! *********************************************************************
+
+ ostr = " "
+ jj = n
+ do ii=1,LEN_TRIM(istr)
+ ch = istr(ii:ii)
+ jj = jj + 1
+ if (ch == NCHAR) then
+ ostr(jj:jj) = NCHAR
+ do kk=jj+1,jj+n
+ ostr(kk:kk) = " "
+ end do
+ jj = jj+n
+ else
+ ostr(jj:jj) = ch
+ end if
+ end do
+ !ostr(jj+1:) = "H"
+
+end function indent
+!!***
+
+!!****f* m_fstrings/string_in
+!! NAME
+!! string_in
+!!
+!! FUNCTION
+!! Compare input str with a list of comma-separated strings
+!! Example: string_in("foo", "foo, bar") --> True
+!!
+!! INPUTS
+!! string=Input string
+!!
+!! SOURCE
+
+pure logical function string_in(string, tokens) result(ans)
+
+ character(len=*),intent(in) :: string, tokens
+
+!Local variables-------------------------------
+ integer :: ii, prev, cnt
+
+! *********************************************************************
+
+ ans = .False.
+ prev = 0; cnt = 0
+ do ii=1,len_trim(tokens)
+ if (tokens(ii:ii) == ",") then
+ cnt = cnt + 1
+ if (trim(lstrip(string)) == lstrip(tokens(prev+1:ii-1))) then
+ ans = .True.; return
+ end if
+ prev = ii
+ end if
+ end do
+
+ if (cnt == 0) then
+ ans = trim(lstrip(string)) == trim(lstrip(tokens)); return
+ end if
+
+ ! Handle last item if "foo, bar"
+ ans = trim(lstrip(string)) == lstrip(tokens(prev+1:ii-1))
+
+end function string_in
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/prep_char
+!! NAME
+!! prep_char
+!!
+!! FUNCTION
+!! Prepend `char` to each line in a string.
+!!
+!! INPUTS
+!! istr=Input string
+!!
+!! SOURCE
+
+pure function prep_char(istr, one_char) result(ostr)
+
+ character(len=*),intent(in) :: istr
+ character(len=2*len(istr)) :: ostr
+ character(len=1),intent(in) :: one_char
+
+!Local variables-------------------------------
+ integer :: ii,jj
+ character(len=1) :: ch
+
+! *********************************************************************
+ ostr = ""
+ jj = 1; ostr(jj:jj) = one_char
+ !jj = 0
+
+ do ii=1,LEN_TRIM(istr)
+ ch = istr(ii:ii)
+ jj = jj + 1
+ if (ch == ch10) then
+ ostr(jj:jj) = ch10
+ ostr(jj+1:jj+1) = one_char
+ jj = jj+1
+ else
+ ostr(jj:jj) = ch
+ end if
+ end do
+ !ostr(jj+1:) = "H"
+
+end function prep_char
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/int2char4
+!! NAME
+!! int2char4
+!!
+!! FUNCTION
+!! Convert an integer number to ("2") a character(len=*)
+!! with trailing zeros if the number is <=9999.
+!! Exemple : 123 will be mapped to "0123" ; 12345 will be mapped to "12345"
+!! Makes sure that the integer fits the string length
+!! (ex.: between 0 and 99999 if the string is a character(len=5)).
+!!
+!! INPUTS
+!! iint=integer to be converted
+!!
+!! OUTPUT
+!! string=character string ('####...' if error)
+!!
+!! SOURCE
+
+pure subroutine int2char4(iint,string)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: iint
+ character(len=*),intent(out) :: string
+
+!Local variables-------------------------------
+ integer :: lenstr
+
+! *************************************************************************
+
+ lenstr=min(len(string),25)
+ if(iint<0 .or. iint>10._dp**(lenstr-1))then
+ string=repeat('#',lenstr)
+ return
+ end if
+ if(iint<10)then
+ write(string,'("000",i1)')iint
+ else if(iint<100)then
+ write(string,'("00",i2)')iint
+ else if(iint<1000)then
+ write(string,'("0",i3)')iint
+ else if(iint<10000)then
+ write(string,'(i4)')iint
+ else if(iint<1.0d5)then
+ write(string,'(i5)')iint
+ else if(iint<1.0d6)then
+ write(string,'(i6)')iint
+ else if(iint<1.0d7)then
+ write(string,'(i7)')iint
+ else if(iint<1.0d8)then
+ write(string,'(i8)')iint
+ else if(iint<1.0d9)then
+ write(string,'(i9)')iint
+ else if(iint<1.0d9)then
+ write(string,'(i10)')iint
+ else
+ string=repeat('#',lenstr)
+ end if
+
+end subroutine int2char4
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/int2char10
+!! NAME
+!! int2char10
+!!
+!! FUNCTION
+!! Convert a positive integer number (zero included) to a character(len=10),
+!! with blanks to COMPLETE the string.
+!! Exemple : 1234 will be mapped to "1234 "
+!! Makes sure that the integer is between 0 and 9 999 999 999
+!! Should be enough for integer*4
+!!
+!! INPUTS
+!! iint=integer to be converted
+!!
+!! OUTPUT
+!! string=character string ('##########' if error)
+!!
+!! SOURCE
+
+pure subroutine int2char10(iint,string)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: iint
+ character(len=10),intent(out) :: string
+
+! *************************************************************************
+
+!Note the use of floating numbers instead of large integers, for portability
+ if(iint<0 .or. iint>=1.d10)then
+ string='####'
+ return
+ end if
+ if(iint<10)then
+ write(string,'(i1,9x)')iint
+ else if(iint<100)then
+ write(string,'(i2,8x)')iint
+ else if(iint<1.0d3)then
+ write(string,'(i3,7x)')iint
+ else if(iint<1.0d4)then
+ write(string,'(i4,6x)')iint
+ else if(iint<1.0d5)then
+ write(string,'(i5,5x)')iint
+ else if(iint<1.0d6)then
+ write(string,'(i6,4x)')iint
+ else if(iint<1.0d7)then
+ write(string,'(i7,3x)')iint
+ else if(iint<1.0d8)then
+ write(string,'(i8,2x)')iint
+ else if(iint<1.0d9)then
+ write(string,'(i9,1x)')iint
+ else
+ write(string,'(i10)')iint
+ end if
+
+end subroutine int2char10
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/char_count
+!! NAME
+!! chcount
+!!
+!! FUNCTION
+!! Count the occurrences of a character in a string.
+!!
+!! SOURCE
+
+integer pure function char_count(string, char)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(in) :: string
+ character(len=1),intent(in) :: char
+ integer :: i
+
+! *************************************************************************
+
+ char_count = 0
+ do i=1,len(string)
+ if (string(i:i) == char) char_count = char_count + 1
+ end do
+
+end function char_count
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/next_token
+!! NAME
+!! next_token
+!!
+!! FUNCTION
+!! Assume a string with whitespace-separated tokens.
+!! Find the next token starting from `start`, return it in `ostr` and update `start`
+!! so that one can call the function inside a loop.
+!! Return exit status.
+!!
+!! SOURCE
+
+integer function next_token(string, start, ostr) result(ierr)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(in) :: string
+ character(len=*),intent(out) :: ostr
+ integer,intent(inout) :: start
+
+!Local variables-------------------------------
+ integer :: ii,beg
+
+! *************************************************************************
+ !print *, "string:", trim(string(start:)), ", start:", start
+
+ ierr = 1; beg = 0
+ ! Find first non-empty char.
+ do ii=start,len_trim(string)
+ if (string(ii:ii) /= " ") then
+ beg = ii; exit
+ end if
+ end do
+ if (beg == 0) return
+
+ ! Find end of token.
+ start = 0
+ do ii=beg,len_trim(string)
+ if (string(ii:ii) == " ") then
+ start = ii; exit
+ end if
+ end do
+ ! Handle end of string.
+ if (start == 0) start = len_trim(string) + 1
+
+ ierr = 0
+ !print *, "string(beg:):", trim(string(beg:))
+ ostr = string(beg:start-1)
+
+end function next_token
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/inupper
+!! NAME
+!! inupper
+!!
+!! FUNCTION
+!! Maps all characters in string to uppercase except for tokens between quotation marks.
+!! Uses fortran90 character string manipulation but should work
+!! independent of EBCDIC or ASCII assumptions--only relies on
+!! 'index' intrinsic character string matching function.
+!! Makes sure that the string 'lolett' remains defined as the lower
+!! case 26-character alphabet string and 'uplett' remains upper case.
+!!
+!! INPUTS
+!! string= character string with arbitrary case
+!!
+!! OUTPUT
+!! string= same character string mapped to upper case
+!!
+!! SIDE EFFECTS
+!! string= (input) character string with arbitrary case
+!! (output) same character string mapped to upper case
+!!
+!! SOURCE
+
+subroutine inupper(string)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(inout) :: string
+
+!Local variables-------------------------------
+!scalars
+ integer :: ii,indx,inquotes
+ logical,save :: first=.true.
+ character(len=1) :: cc
+ !character(len=500) :: message
+ character(len=26), parameter :: uplett='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ character(len=26), parameter :: lolett='abcdefghijklmnopqrstuvwxyz'
+
+! *************************************************************************
+!
+!On first entry make sure lower case letters stayed
+!lower case and upper case letters stayed upper case
+ if (first) then
+ do ii=1,26
+ ! Look for occurrence of each upper case character
+ ! anywhere in string of all lower case letters
+ indx=index(lolett,uplett(ii:ii))
+ ! If found then print error message and quit
+ if (indx>0) then
+ write(std_out, '(a,a,a,a,a,a,a,a,a)' )&
+ 'Upper case string = ',uplett,ch10,&
+ 'Lower case string = ',lolett,ch10,&
+ 'Upper case character ',uplett(ii:ii),'found in supposedly lower case string.'
+ stop
+ end if
+ end do
+ first=.false.
+ end if
+
+ inquotes = 0
+ do ii=1,len_trim(string)
+ ! Pick off single character of string (one byte):
+ cc=string(ii:ii)
+
+ ! Ignore tokens between quotation marks.
+ if (cc == "'" .or. cc == '"') inquotes = inquotes + 1
+ if (inquotes == 1) cycle
+ if (inquotes == 2) then
+ inquotes = 0; cycle
+ end if
+ ! determine whether a lowercase letter:
+ indx=index(lolett,cc)
+ ! Map to uppercase:
+ if (indx>0) string(ii:ii)=uplett(indx:indx)
+ end do
+
+end subroutine inupper
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_fstrings/find_and_select
+!! NAME
+!! find_and_select
+!!
+!! FUNCTION
+!! Find substring and select value in list depending on substring.
+!!
+!! Usage example:
+!!
+!! istop = find_and_select(arg, &
+!! ["K", "M", "G", "T"], &
+!! [one/1024._dp, one, 1024._dp, 1024._dp ** 2], fact, err_msg, default=one)
+!!
+!! ABI_CHECK(istop /= -1, err_msg)
+!!
+!! SOURCE
+
+integer function find_and_select(string, choices, values, out_val, err_msg, default, back) result(iend)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: string
+ character(len=*),intent(in) :: choices(:)
+ real(dp),intent(in) :: values(:)
+ real(dp),optional,intent(in) :: default
+ real(dp),intent(out) :: out_val
+ character(len=*),intent(out) :: err_msg
+ logical,optional,intent(in) :: back
+
+!Local variables-------------------------------
+ integer :: ic
+ logical :: back__
+! *************************************************************************
+
+ if (size(values) /= size(choices)) then
+ err_msg = "BUG in API call: size(values) /= size(choices))"
+ iend = -1; return
+ end if
+
+ back__ = .True.; if (present(back)) back__ = back
+ do ic=1,size(choices)
+ iend = index(string, trim(choices(ic)), back=back__)
+ if (iend /= 0) then
+ if (trim(string(iend:)) /= choices(ic)) then
+ err_msg = sjoin("Invalid token:", trim(string(iend:)))
+ iend = -1; return
+ end if
+ out_val = values(ic); return
+ end if
+ end do
+
+ if (present(default)) then
+ iend = 0
+ out_val = default
+ else
+ iend = -1
+ err_msg = "Cannot find `choices` in string and `default` optional argument is not set!"
+ end if
+
+end function find_and_select
+!!***
+
+end module m_fstrings
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_fstrings.o b/GX-PAW/common/src/14_hidewrite/m_fstrings.o
new file mode 100644
index 00000000..b12ffd61
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_fstrings.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_io_tools.F90 b/GX-PAW/common/src/14_hidewrite/m_io_tools.F90
new file mode 100644
index 00000000..fc8f4917
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_io_tools.F90
@@ -0,0 +1,1360 @@
+!!****m* ABINIT/m_io_tools
+!! NAME
+!! m_io_tools
+!!
+!! FUNCTION
+!! This module contains basic tools to deal with Fortran IO
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+MODULE m_io_tools
+
+ use defs_basis
+
+ implicit none
+
+ private
+
+ public :: get_unit ! Get a free unit if no argument is specified or report the unit associated to a file name
+ public :: file_exists ! Return .TRUE. if file exists.
+ public :: delete_file ! Delete a file if present.
+ public :: is_open ! .TRUE. if file is open
+ public :: is_connected ! .TRUE. if file is connected to a logical unit number
+ public :: prompt ! Simple prompt
+ public :: read_string ! Read string from unit ignoring blank lines and deleting comments beginning with ! or #
+ public :: flush_unit ! Wrapper to the intrinsic flush routine, not implemented by every compiler
+ public :: pick_aname ! Returns the name of a non-existent file to be used for temporary storage.
+ public :: isncfile ! .TRUE. if we have a NETCDF file.
+ public :: iomode_from_fname ! Automatic selection of the IO mode based on the file extension.
+ public :: iomode2str ! Convert iomode to string
+ public :: enforce_fortran_io ! Set the value of enforce_fortran_io__
+ public :: mvrecord ! Moves forward or backward in a Fortran binary file by nn records.
+ public :: open_file ! Helper function to open a file in sequential mode with improved error handling.
+ public :: close_unit ! Helper function to close a Fortran unit with improved error handling.
+ public :: write_lines ! split a string in lines and output the text to the specified unit
+ public :: lock_and_write ! Write a string to a file with locking mechanism.
+ public :: num_opened_units ! Return the number of opened units.
+ public :: show_units ! Print info on the logical units.
+ public :: write_units ! Write `string` to a list of Fortran `units`.
+
+ interface get_unit
+ module procedure get_free_unit
+ module procedure get_unit_from_fname
+ end interface
+
+ interface is_open
+ module procedure is_open_unit
+ module procedure is_open_fname
+ end interface
+
+ interface prompt
+ module procedure prompt_int0D
+ module procedure prompt_rdp0D
+ module procedure prompt_string
+ module procedure prompt_int1D
+ module procedure prompt_int2D
+ module procedure prompt_rdp1D
+ module procedure prompt_rdp2D
+ end interface
+
+ integer,parameter :: MIN_UNIT_NUMBER=10 ! Fortran does not define the range for logical unit numbers (they not be negative)
+#ifdef FC_NAG
+ integer,parameter :: MAX_UNIT_NUMBER=64 ! There's a serious problem in Nag6.0. In principle
+ ! Maximum unit number: 2147483647
+#else
+ integer,parameter :: MAX_UNIT_NUMBER=1024 ! The following values should be safe
+#endif
+ integer,parameter :: IO_MAX_LEN=500
+ character(len=1),parameter :: BLANK=' '
+
+ ! For interactive sessions
+ integer,parameter :: IO_EOT=-1 ! End of transmission i.e CTRL+D
+ !character(len=4),parameter :: PS1='>>> '
+ ! Prepend prompt with `-` to bypass bug in intel18-19 so that flddiff.py will ignore the line
+ character(len=4),parameter :: PS1='->> '
+ character(len=4),parameter :: PS2='??? '
+
+ integer,parameter :: IO_NO_AVAILABLE_UNIT =-1 ! No units are available for Fortran I/O
+ integer,parameter :: IO_FILE_NOT_ASSOCIATED=-2 ! File is not associated with any unit
+
+ ! Enforce IO_MODE_FORTRAN in iomode_from_fname
+ logical,save,protected :: enforce_fortran_io__ = .False.
+
+CONTAINS !===========================================================
+!!***
+
+!!****f* m_io_tools/get_unit
+!! NAME
+!! get_unit
+!!
+!! FUNCTION
+!! Obtain a logical Fortran unit.
+!! A free unit is reported if no argument is specified.
+!! If the file name is supplied, the function reports the unit number
+!! associated to the file
+!! Note that GET_UNIT assumes that units 0, 5, 6 (stderr, stdin, std_out)
+!! are special, and will never return those values.
+!!
+!! TODO
+!! One should define an abinit-specific function with a list of reserved units!
+!!
+!! OUTPUT
+!! The unit number (free unit or unit associated to the file)
+!! Raises:
+!! IO_NO_AVAILABLE_UNIT if no logical unit is free (!)
+!! IO_FILE_NOT_ASSOCIATED if the file is not linked to a logical unit
+!!
+!! SOURCE
+
+integer function get_free_unit()
+
+!Local variables-------------------------------
+ integer :: iunt
+ logical :: isopen
+! *********************************************************************
+
+ do iunt=MAX_UNIT_NUMBER,MIN_UNIT_NUMBER,-1
+ if (any(iunt == [std_err, std_in, std_out])) cycle
+ inquire(unit=iunt, opened=isopen)
+ if (.not.isopen) then
+ get_free_unit = iunt; return
+ end if
+ end do
+ get_free_unit = IO_NO_AVAILABLE_UNIT
+
+end function get_free_unit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/get_unit_from_fname
+!! NAME
+!! get_unit_from_fname
+!!
+!! FUNCTION
+!! Returns the unit number associated to an open file whose name is fname.
+!! If the file is not connected to an unit number, returns IO_FILE_NOT_ASSOCIATED
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+integer function get_unit_from_fname(fname)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: fname
+
+!Local variables-------------------------------
+ integer :: unit
+! *********************************************************************
+
+ inquire(file=fname,number=unit)
+
+ get_unit_from_fname=unit
+ if (unit==-1) get_unit_from_fname=IO_FILE_NOT_ASSOCIATED
+
+end function get_unit_from_fname
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/file_exists
+!! NAME
+!! file_exists
+!!
+!! FUNCTION
+!! Return .TRUE. if file `filepath` exists (function version of inquire).
+!!
+!! SOURCE
+
+logical function file_exists(filepath)
+
+ character(len=*),intent(in) :: filepath
+! *********************************************************************
+
+ inquire(file=filepath, exist=file_exists)
+
+end function file_exists
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/delete_file
+!! NAME
+!! delete_file
+!!
+!! FUNCTION
+!! Delete a file if present.
+!!
+!! INPUTS
+!! fname=The name of the file.
+!!
+!! OUTPUT
+!! ierr=Non-zero value indicates that a problem occured.
+!! 111 = To signal that the file does not exist.
+!! 112 = File exist, is open but no associated unit is found!
+!! Other values are system-dependent as the value is returned by a open or close
+!! instruction.
+!!
+!! SIDE EFFECTS
+!! The specified file is deleted.
+!!
+!! SOURCE
+
+subroutine delete_file(fname, ierr)
+
+ integer,intent(out) :: ierr
+ character(len=*),intent(in) :: fname
+
+!Local variables-------------------------------
+ integer :: tmp_unt
+ logical :: exists
+! *********************************************************************
+
+ ierr = 0
+
+ inquire(file=fname, exist=exists)
+
+ if (.not.exists) then
+ ierr = 111
+ !write(std_out,*)" Asked to delete non existent file: ",TRIM(fname)
+ return
+ end if
+
+ if (is_open_fname(fname)) then
+ tmp_unt = get_unit_from_fname(fname)
+ if (tmp_unt == IO_FILE_NOT_ASSOCIATED) then
+ !write(std_out,*) "File is opened but no associated unit found!"
+ ierr = 112; return
+ end if
+ close(tmp_unt)
+ else
+ tmp_unt = get_unit()
+ end if
+
+ ! Now close the file.
+ open(unit=tmp_unt, file=trim(fname), status="OLD", iostat=ierr)
+ if (ierr==0) close(unit=tmp_unt, status="DELETE", iostat=ierr)
+
+end subroutine delete_file
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/is_connected
+!! NAME
+!! is_connected
+!!
+!! FUNCTION
+!! Returns .TRUE. if unit is connected to fname.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+logical function is_connected(unit, fname)
+
+ integer,intent(in) :: unit
+ character(len=*),intent(in) :: fname
+
+!Local variables-------------------------------
+ integer :: unt_found
+ logical :: isopen
+! *********************************************************************
+
+ inquire(file=fname, number=unt_found, opened=isopen)
+ is_connected=(isopen .and. (unt_found == unit))
+
+end function is_connected
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/is_open
+!! NAME
+!! is_open
+!!
+!! FUNCTION
+!! Returns .TRUE. if unit is associated to an open file.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+logical function is_open_unit(unit)
+
+ integer,intent(in) :: unit
+! *********************************************************************
+
+ inquire(unit=unit, opened=is_open_unit)
+
+end function is_open_unit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/is_open_fname
+!! NAME
+!! is_open_fname
+!!
+!! FUNCTION
+!! Returns .TRUE. if the file name fname is open.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+logical function is_open_fname(fname)
+
+ character(len=*),intent(in) :: fname
+! *********************************************************************
+
+ inquire(file=fname,opened=is_open_fname)
+
+end function is_open_fname
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_int0D
+!! NAME
+!! prompt_int0D
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_int0D(msg,ivalue)
+
+ character(len=*),intent(in) :: msg
+ integer,intent(out) :: ivalue
+
+!Local variables-------------------------------
+ integer :: ios
+ character(len=4) :: PS
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)ivalue
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_int0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_rdp0d
+!! NAME
+!! prompt_rdp0d
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_rdp0D(msg,rvalue)
+
+ character(len=*),intent(in) :: msg
+ real(dp),intent(out) :: rvalue
+
+!Local variables-------------------------------
+ integer :: ios
+ character(len=4) :: PS
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)rvalue
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_rdp0D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_string
+!! NAME
+!! prompt_string
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!! If strip_comment is True (default), all the characters after "#" or "!" are ignored.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_string(msg,string,strip_comment)
+
+ character(len=*),intent(in) :: msg
+ logical,optional,intent(in) :: strip_comment
+ character(len=*),intent(out) :: string
+
+!Local variables-------------------------------
+ integer :: ios,ic
+ logical :: do_strip
+ character(len=4) :: PS
+ !character(len=len(string)) :: tmps
+! *********************************************************************
+
+ do_strip = .True.; if (present(strip_comment)) do_strip = strip_comment
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,'(a)',IOSTAT=ios)string
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+ if (do_strip) then
+ ic = INDEX(string, "#"); if (ic /= 0) string(:) = string(:ic-1)
+ ic = INDEX(string, "!"); if (ic /= 0) string(:) = string(:ic-1)
+ end if
+
+end subroutine prompt_string
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_int1D
+!! NAME
+!! prompt_int1D
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_int1D(msg,ivect)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: msg
+ integer,intent(out) :: ivect(:)
+
+!Local variables-------------------------------
+ integer :: ios
+ character(len=4) :: PS
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)ivect(:)
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_int1D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_int2D
+!! NAME
+!! prompt_int2d
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_int2D(msg,iarr)
+
+ character(len=*),intent(in) :: msg
+ integer,intent(out) :: iarr(:,:)
+
+!Local variables-------------------------------
+ integer :: ios
+ character(len=4) :: PS
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)iarr(:,:)
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_int2D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_rdp1D
+!! NAME
+!! prompt_rdp1D
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_rdp1D(msg,rvect)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: msg
+ real(dp),intent(out) :: rvect(:)
+ character(len=4) :: PS
+!Local variables-------------------------------
+ integer :: ios
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)rvect(:)
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_rdp1D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_rdp2D
+!! NAME
+!! prompt_rdp2D
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_rdp2D(msg,rarr)
+
+ character(len=*),intent(in) :: msg
+ real(dp),intent(out) :: rarr(:,:)
+
+!Local variables-------------------------------
+ integer :: ios
+ character(len=4) :: PS
+! *********************************************************************
+
+ ios=-1 ; PS=PS1
+ do while (ios/=0)
+ write(std_out,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)rarr(:,:)
+ if (ios==IO_EOT) call prompt_exit()
+ PS=PS2
+ end do
+ write(std_out,*)
+
+end subroutine prompt_rdp2D
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/prompt_exit
+!! NAME
+!! prompt_exit
+!!
+!! FUNCTION
+!! A primitive prompt. Writes msg on std_out and reads the value entered by the user.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine prompt_exit()
+
+ integer,parameter :: NASK=5
+ integer :: ios,iask
+ character(len=IO_MAX_LEN) :: ans
+! *********************************************************************
+
+ write(std_out,*)
+ ios=-1 ; iask=0
+ do while (ios/=0.or.(ans/='y'.or.ans/='n'))
+ iask=iask+1
+ write(std_out,'(a)')' Do you really want to exit (y/n)? '
+ call flush_unit(std_out)
+ read(std_in,*,IOSTAT=ios)ans
+ if (ans=='y'.or.iask>NASK) STOP
+ if (ans=='n') RETURN
+ end do
+
+end subroutine prompt_exit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/read_string
+!! NAME
+!! read_string
+!!
+!! FUNCTION
+!! Reads string from unit=std_in_ or unit if specified, ignoring blank lines
+!! and deleting comments beginning with `!`. Return exit code.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+integer function read_string(string, unit) result(ios)
+
+ character(len=*),intent(out):: string
+ integer,optional,intent(in) :: unit
+
+!Local variables-------------------------------
+ integer :: ipos,unt
+! *********************************************************************
+
+ unt=std_in; if (present(unit)) unt=unit
+
+ read(unt,'(a)', iostat=ios) string ! read input line
+ if (ios/=0) return
+ string = ADJUSTL(string)
+
+ ! Ignore portion after comments
+ ipos = INDEX(string, "!")
+ if (ipos /= 0) string=string(:ipos-1)
+ ipos = INDEX(string, "#")
+ if (ipos /= 0) string=string(:ipos-1)
+
+end function read_string
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/flush_unit
+!! NAME
+!! flush_unit
+!!
+!! FUNCTION
+!! Wrapper for the standard flush_unit routine
+!!
+!! INPUTS
+!! unit=Fortran logical Unit number
+!!
+!! OUTPUT
+!!
+!! NOTES
+!! Available only if the compiler implements this intrinsic procedure.
+!!
+!! SOURCE
+
+subroutine flush_unit(unit)
+
+ integer,intent(in) :: unit
+
+!Local variables-------------------------------
+ logical :: isopen
+
+!************************************************************************
+
+ if (unit == dev_null) return
+
+ inquire(unit=unit,opened=isopen)
+
+!FLUSH on unconnected unit is illegal: F95 std., 9.3.5.
+#if defined HAVE_FC_FLUSH
+ if (isopen) call flush(unit)
+#elif defined HAVE_FC_FLUSH_
+ if (isopen) call flush_(unit)
+#endif
+
+end subroutine flush_unit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/pick_aname
+!! NAME
+!! pick_aname
+!!
+!! FUNCTION
+!! Returns the name of a non-existent file to be used for temporary storage.
+!!
+!! SOURCE
+
+function pick_aname() result(aname)
+
+ character(len=fnlen) :: aname
+
+!Local variables-------------------------------
+ integer :: ii,spt,ept
+ real(dp) :: xrand(fnlen)
+!************************************************************************
+
+ aname="__TMP_FILE__"
+
+ spt=LEN(aname); ept=spt
+
+ do while (file_exists(aname))
+ call RANDOM_NUMBER(xrand(spt:ept))
+ xrand(spt:ept) = 64+xrand(spt:ept)*26
+ do ii=spt,ept
+ aname(ii:ii) = ACHAR(NINT(xrand(ii)))
+ end do
+ ept = MIN(ept+1,fnlen)
+ end do
+
+end function pick_aname
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/isncfile
+!! NAME
+!! isncfile
+!!
+!! FUNCTION
+!! Return .TRUE. if fname is a NETCDF file.
+!!
+!! INPUTS
+!! fname(len=*)=The name of the file to be tested.
+!!
+!! NOTES
+!! The idea is extremely simple: a NETCDF file terminates with ".nc".
+!! Obviously this approach is not bulletproof but it will work
+!! provided that we continue to append the ".nc" string to any NETCDF
+!! file produced by abinit.
+!!
+!! SOURCE
+
+pure logical function isncfile(fname)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(in) :: fname
+
+!Local variables-------------------------------
+!scalars
+ integer :: ic,nch_trim
+
+! *************************************************************************
+
+ nch_trim=LEN_TRIM(fname)
+ ic = INDEX (TRIM(fname), ".", back=.TRUE.)
+
+ isncfile=.FALSE.
+ if (ic >= 1 .and. ic <= nch_trim-1) then ! there is stuff after the .
+ isncfile = (fname(ic+1:nch_trim)=="nc")
+ end if
+
+end function isncfile
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/iomode_from_fname
+!! NAME
+!! iomode_from_fname
+!!
+!! FUNCTION
+!! Automatic selection of the IO mode based on the file extension.
+!!
+!! INPUTS
+!! fname = Name of the file.
+!!
+!! NOTES
+!! if fname has extension '.nc', IO_MODE_ETSF is used
+!! else:
+!! IO_MODE_MPI if available
+!! IO_MODE_FORTRAN if HAVE_MPI_IO is not defined.
+!!
+!! SOURCE
+
+pure integer function iomode_from_fname(fname) result(iomode)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(in) :: fname
+
+! *************************************************************************
+
+ if (isncfile(fname)) then
+ iomode = IO_MODE_ETSF
+ else
+#ifdef HAVE_MPI_IO
+ iomode = IO_MODE_MPI
+#else
+ iomode = IO_MODE_FORTRAN
+#endif
+
+ if (enforce_fortran_io__) iomode = IO_MODE_FORTRAN
+ end if
+
+end function iomode_from_fname
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/enforce_fortran_io
+!! NAME
+!! enforce_fortran_io
+!!
+!! FUNCTION
+!! Set the value of the enforce_fortran__ global variable.
+!!
+!! SOURCE
+
+subroutine enforce_fortran_io(bool)
+
+!Arguments ------------------------------------
+!scalars
+ logical,intent(in) :: bool
+
+! *************************************************************************
+
+ enforce_fortran_io__ = bool
+
+end subroutine enforce_fortran_io
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/iomode2str
+!! NAME
+!! iomode2str
+!!
+!! FUNCTION
+!! Convert iomode to string
+!!
+!! SOURCE
+
+pure function iomode2str(iomode)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=48) :: iomode2str
+ integer,intent(in) :: iomode
+
+! *************************************************************************
+
+ select case (iomode)
+ case (IO_MODE_FORTRAN_MASTER)
+ iomode2str = "IO_MODE_FORTRAN_MASTER"
+ case (IO_MODE_FORTRAN)
+ iomode2str = "IO_MODE_FORTRAN"
+ case (IO_MODE_MPI)
+ iomode2str = "IO_MODE_MPI"
+ case (IO_MODE_NETCDF)
+ iomode2str = "IO_MODE_NETCDF"
+ case (IO_MODE_ETSF)
+ iomode2str = "IO_MODE_ETSF"
+ case default
+ iomode2str = "Unknown!"
+ end select
+
+end function iomode2str
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/mvrecord
+!! NAME
+!! mvrecord
+!!
+!! FUNCTION
+!! This subroutine moves forward or backward in a Fortran binary file by nn records.
+!!
+!! INPUTS
+!! funt= Fortran file unit number
+!! nrec=number of records
+!!
+!! OUTPUT
+!! ierr=error code
+!!
+!! TODO
+!! One should treat the possible errors of backspace
+!!
+!! SOURCE
+
+subroutine mvrecord(funt,nrec,ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: funt,nrec
+ integer,intent(out) :: ierr
+
+!Local variables-------------------------------
+!scalars
+ integer :: irec
+
+! *************************************************************************
+
+ ierr = 0
+ if (nrec > 0) then ! Move forward nrec records
+ do irec=1,nrec
+ read(funt,iostat=ierr)
+ if (ierr /= 0) EXIT
+ end do
+ else if (nrec < 0) then ! Move backward nrec records
+ do irec=1,-nrec
+ backspace (unit=funt,iostat=ierr)
+ if (ierr /= 0) EXIT
+ end do
+ end if
+
+end subroutine mvrecord
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/open_file
+!! NAME
+!! open_file
+!!
+!! FUNCTION
+!! Open a file in sequential mode and associate it to the unit number number.
+!! The main differences wrt the intrinsic open:
+!!
+!! * Function statement that returns the value of iostat
+!! * Emulate iomsg (F2003)
+!! * Accepts either unit (user-specified unit number, input) or
+!! newunit (free unit not associated to any file, output).
+!! The two options are mutually exclusive.
+!!
+!! See Fortran intrinsic for a more detailed description of the variables
+!!
+!! OUTPUT
+!! iostat=Exit status
+!! iomsg=Error message
+!!
+!! SOURCE
+
+function open_file(file, iomsg, unit, newunit, access, form, status, action, recl) result(iostat)
+
+!Arguments ------------------------------------
+!scalars
+ character(len=*),intent(in) :: file
+ character(len=*),optional,intent(in) :: access,form,status,action
+ character(len=*),intent(out) :: iomsg
+ integer,optional,intent(in) :: recl,unit
+ integer,optional,intent(out) :: newunit
+ integer :: iostat
+
+!Local variables-------------------------------
+!scalars
+ character(len=500) :: my_access,my_form,my_status,my_action,msg
+
+! *************************************************************************
+
+ my_access = "sequential"; if (present(access)) my_access = access
+ my_form = "formatted"; if (present(form)) my_form = form
+ my_status = "unknown"; if (present(status)) my_status = status
+ my_action = "readwrite"; if (present(action)) my_action = action ! default is system dependent. Enforce RW mode
+
+ iomsg = "" ! iomsg is not changed if open succeeds
+
+ if (present(unit)) then
+ if (present(recl)) then
+ open(file=trim(file),unit=unit,form=my_form,status=my_status,access=my_access,iostat=iostat,recl=recl, iomsg=iomsg)
+ else
+ open(file=trim(file),unit=unit,form=my_form,status=my_status,access=my_access,iostat=iostat, iomsg=iomsg)
+ end if
+ if (present(newunit)) iostat = -666 ! wrong call
+
+ else if (present(newunit)) then
+ ! Get free unit (emulate newunit of F2008)
+ newunit = get_unit()
+ if (present(recl)) then
+ open(file=trim(file),unit=newunit,form=my_form,status=my_status,access=my_access,iostat=iostat,recl=recl, iomsg=iomsg)
+ else
+ open(file=trim(file),unit=newunit,form=my_form,status=my_status,access=my_access,iostat=iostat, iomsg=iomsg)
+ end if
+ if (present(unit)) iostat = -666 ! wrong call
+
+ else
+ iomsg = "Either unit or newunit must be specified"
+ iostat = -1
+ end if
+
+ if (iostat /= 0) then
+ write(msg, "(a,i0,2a)")"Fortran open returned iostat: ",iostat," while opening file: "//trim(file)
+ iomsg = trim(msg)//ch10//"Runtime error message: "//trim(iomsg)
+ end if
+
+end function open_file
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/close_unit
+!! NAME
+!! close_unit
+!!
+!! FUNCTION
+!! close a Fortran unit
+!! The main differences wrt the intrinsic close:
+!!
+!! * Function statement that returns the value of iostat
+!! * Emulate iomsg (F2003)
+!!
+!! See Fortran intrinsic for a more detailed description of the variables
+!!
+!! OUTPUT
+!! iostat=Exit status
+!! iomsg=Error message
+!!
+!! SOURCE
+
+function close_unit(unit,iomsg,status) result(iostat)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(inout) :: unit
+ character(len=*),optional,intent(in) :: status
+ character(len=*),intent(out) :: iomsg
+ integer :: iostat
+
+!Local variables-------------------------------
+ character(len=500) :: msg
+
+! *************************************************************************
+
+ iomsg = "" ! iomsg is not changed if close succeeds
+
+ if (.not.present(status)) then ! Use Fortran default e.g delete for scratch files.
+#ifdef HAVE_FC_IOMSG
+ close(unit=unit,iostat=iostat,iomsg=iomsg)
+#else
+ close(unit=unit,iostat=iostat)
+#endif
+ else
+#ifdef HAVE_FC_IOMSG
+ close(unit=unit,iostat=iostat,status=status,iomsg=iomsg)
+#else
+ close(unit=unit,iostat=iostat,status=status)
+#endif
+ end if
+
+ ! TODO: Add more info for example the filename.
+ if (iostat /= 0) then
+ write(msg,'(2(a,i0),a)')"Fortran close returned iostat ",iostat," while closing unit: ",unit,ch10
+ iomsg = trim(msg)//ch10//"IOMSG: "//trim(msg)
+ end if
+
+end function close_unit
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/write_lines
+!! NAME
+!! write_lines
+!!
+!! FUNCTION
+!! This routine receives a string, split the message in lines according to the
+!! ch10 character and output the text to the specified unit
+!!
+!! INPUTS
+!! unit=unit number for writing
+!! message=(character(len=*)) message to be written
+!! [toflush]=flag to activate immediate flush of the I/O buffer (default=FALSE)
+!!
+!! OUTPUT
+!! Only writing.
+!!
+!! SOURCE
+
+subroutine write_lines(unit,message,toflush)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: unit
+ logical,intent(in),optional :: toflush
+ character(len=*),intent(in) :: message
+
+!Local variables-------------------------------
+!scalars
+ integer :: msg_size,ii,jj,rtnpos
+ logical :: toflush_
+
+!******************************************************************
+
+ msg_size = len_trim(message)
+ toflush_=.false.;if (present(toflush)) toflush_=toflush
+
+ if (msg_size == 0) then
+ write(unit,*)
+ return
+ end if
+
+ ! Here, split the message, according to the char(10) characters (carriage return).
+ ! This technique is portable accross different OS.
+ rtnpos = index(message,ch10)
+
+ if (rtnpos == 0) then
+ write(unit,"(a)")message(1:msg_size)
+ if (toflush_) call flush_unit(unit)
+ return
+ end if
+
+ ii = 1; jj = rtnpos
+ do
+ if (ii == jj) then
+ write(unit,*)
+ if (toflush_) call flush_unit(unit)
+ else
+ write(unit, '(a)' ) message(ii:jj-1)
+ if (toflush_) call flush_unit(unit)
+ end if
+ ii = jj + 1
+ if (ii > msg_size) exit
+ jj = index(message(ii:msg_size),ch10)
+ if (jj == 0) then
+ ! Will write the last line at the next iteration and exit .
+ jj = msg_size + 1
+ else
+ jj = jj + ii - 1
+ end if
+ !write(*,*)"ii, jj, msg_size",ii, jj, msg_size
+ end do
+
+ ! This is needed to preserve the od behaviour: a ch10 at the
+ ! end of the string was causing an extra newline!
+ if (message(msg_size:msg_size) == ch10) write(unit,*)
+
+end subroutine write_lines
+!!***
+
+!!****f* m_io_tools/lock_and_write
+!! NAME
+!! lock_and_write
+!!
+!! FUNCTION
+!! Writes a string to filename with locking mechanism.
+!!
+!! INPUTS
+!! filename: Name of the file.
+!! string: Input string.
+!! ierr: Exit status, 0 is string has been written to filename.
+!!
+!! SOURCE
+
+subroutine lock_and_write(filename, string, ierr)
+
+ integer,intent(out) :: ierr
+ character(len=*),intent(in) :: filename,string
+
+!Local variables-------------------------------
+ integer :: lock_unit,file_unit
+ character(len=len(filename) + 5) :: lock
+ !character(len=500) :: msg
+
+! *********************************************************************
+
+ ierr = 0
+
+ ! Try to acquire the lock.
+ lock = trim(filename)//".lock"
+ lock_unit = get_unit()
+ open(unit=lock_unit, file=trim(lock), status='new', err=99)
+
+ file_unit = get_unit()
+ open(unit=file_unit, file=trim(filename), form="formatted")
+ call write_lines(file_unit, string, toflush=.true.)
+ close(lock_unit, status="delete")
+ close(file_unit)
+ return
+
+99 ierr = 1
+
+end subroutine lock_and_write
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/num_opened_units
+!! NAME
+!! num_opened_units
+!!
+!! FUNCTION
+!! Return the number of opened units.
+!! Unit numbers listed in the optional argument `ignore` are not considered.
+!!
+!! SOURCE
+
+integer function num_opened_units(ignore) result(nn)
+
+!Arguments ------------------------------------
+!scalars
+ integer,optional,intent(in) :: ignore(:)
+
+!Local variables-------------------------------
+ integer :: ii,iostat
+ logical :: opened
+
+! *********************************************************************
+
+ nn = 0
+ do ii=0, max_unit_number
+ if (present(ignore)) then
+ if (any(ii == ignore)) cycle
+ end if
+ inquire(ii, opened=opened, iostat=iostat)
+ if (iostat == 0 .and. opened) nn = nn + 1
+ end do
+
+end function num_opened_units
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_io_tools/show_units
+!! NAME
+!! show_units
+!!
+!! FUNCTION
+!! Print info on the logical units
+!!
+!! SOURCE
+
+subroutine show_units(ount)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: ount
+
+!Local variables-------------------------------
+ integer :: ii,iostat
+ logical :: named, opened
+ character(len=fnlen) :: filename,form
+
+! *********************************************************************
+
+ write(ount,'(a)') '******** Fortran Logical Units ********'
+
+ do ii=0,max_unit_number
+ inquire(ii, opened=opened, named=named, name=filename, form=form, iostat=iostat)
+ if (iostat == 0) then
+ if (opened) then
+ if (named) then
+ write(ount,*)"unit: ", ii, "form: ", trim(form), ", filename: ", trim(filename)
+ else
+ write(ount,*)"unit: ", ii, "form: ",form, ', No name available'
+ endif
+ else
+ !write(ount,*)"unit: ", ii, " is not opened"
+ endif
+ else
+ write(ount,*)" unit: ", ii, ' Iostat error'
+ endif
+ end do
+
+end subroutine show_units
+!!***
+
+!!****f* m_io_tools/write_units
+!! NAME
+!! write_units
+!!
+!! FUNCTION
+!! Write `string` to a list of Fortran `units`.
+!! This function is supposed to be faster than wrtout as there's no check on the MPI rank.
+!! This also means that this procedure should be called by a single MPI proc.
+!!
+!! INPUTS
+!! [newlines]: Number of newlines added after string. Default 0
+!! [pre_newlines]: Number of newlines added before string. Default 0
+!!
+!! SOURCE
+
+subroutine write_units(units, string, newlines, pre_newlines)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: string
+ integer,intent(in) :: units(:)
+ integer,optional,intent(in) :: newlines, pre_newlines
+
+!Local variables-------------------------------
+ integer :: ii, unt
+! *************************************************************************
+
+ do unt=1,size(units)
+ if (present(pre_newlines)) then
+ do ii=1,pre_newlines
+ write(units(unt), "(a)") " "
+ end do
+ end if
+ write(units(unt), "(a)") trim(string)
+ if (present(newlines)) then
+ do ii=1,newlines
+ write(units(unt), "(a)") " "
+ end do
+ end if
+ end do
+
+end subroutine write_units
+!!***
+
+!----------------------------------------------------------------------
+
+END MODULE m_io_tools
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_io_tools.o b/GX-PAW/common/src/14_hidewrite/m_io_tools.o
new file mode 100644
index 00000000..bdfc63a8
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_io_tools.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90 b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90
new file mode 100644
index 00000000..2a41a195
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90
@@ -0,0 +1,81 @@
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_optim_dumper
+!! NAME
+!! m_optim_dumper
+!!
+!! FUNCTION
+!! This module contains information about the optimizations set at
+!! configure-time when building ABINIT (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_optim_dumper
+
+ implicit none
+
+ public :: dump_optim
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_optim_dumper/dump_optim
+!! NAME
+!! dump_optim
+!!
+!! FUNCTION
+!! Reports a printout of the optimizations set at configure-time,
+!! useful for error messages and debugging.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! INPUTS
+!! my_unit= Fortran unit number (optional, default is std_out)
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_optim(my_unit)
+
+ use defs_basis
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *************************************************************************
+
+ write(my_unit,"(a,1x,a)") ch10,repeat("+",78)
+ write(my_unit,"(1x,a,a,3x,a,a,a)") "Default optimizations:",ch10, &
+& "--- None ---",ch10,ch10
+
+ write(my_unit,"(1x,a,a)") repeat("+",78),ch10
+
+end subroutine dump_optim
+
+end module m_optim_dumper
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.cmake.in b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.cmake.in
new file mode 100644
index 00000000..0d7556e4
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.cmake.in
@@ -0,0 +1,83 @@
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_optim_dumper
+!! NAME
+!! m_optim_dumper
+!!
+!! FUNCTION
+!! This module contains information about the optimizations set at
+!! configure-time when building ABINIT (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_optim_dumper
+
+ implicit none
+
+ public :: dump_optim
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_optim_dumper/dump_optim
+!! NAME
+!! dump_optim
+!!
+!! FUNCTION
+!! Reports a printout of the optimizations set at configure-time,
+!! useful for error messages and debugging.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! INPUTS
+!! my_unit= Fortran unit number (optional, default is std_out)
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_optim(my_unit)
+
+ use defs_basis
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *************************************************************************
+
+ write(my_unit,"(a,1x,a)") ch10,repeat("+",78)
+! write(my_unit,"(1x,a,a,3x,a,a,a)") "Default optimizations:",ch10, &
+!& "@fcflags_opt_default@",ch10,ch10@config.optim@
+ write(my_unit,"(1x,a,a,3x,a,a,a)") "Default optimizations:",ch10, &
+& "@CMAKE_Fortran_FLAGS@",ch10,ch10
+
+ write(my_unit,"(1x,a,a)") repeat("+",78),ch10
+
+end subroutine dump_optim
+
+end module m_optim_dumper
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.in b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.in
new file mode 100644
index 00000000..06421168
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.F90.in
@@ -0,0 +1,81 @@
+!{\src2tex{textfont=tt}}
+!!****m* ABINIT/m_optim_dumper
+!! NAME
+!! m_optim_dumper
+!!
+!! FUNCTION
+!! This module contains information about the optimizations set at
+!! configure-time when building ABINIT (useful for debugging).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_optim_dumper
+
+ implicit none
+
+ public :: dump_optim
+
+contains !===========================================================
+!!***
+
+!!****f* ABINIT/m_optim_dumper/dump_optim
+!! NAME
+!! dump_optim
+!!
+!! FUNCTION
+!! Reports a printout of the optimizations set at configure-time,
+!! useful for error messages and debugging.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (Yann Pouillon)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! INPUTS
+!! my_unit= Fortran unit number (optional, default is std_out)
+!!
+!! OUTPUT
+!! Only printing
+!!
+!! PARENTS
+!! Will be filled automatically by the parent script
+!!
+!! CHILDREN
+!! Will be filled automatically by the parent script
+!!
+!! SOURCE
+
+subroutine dump_optim(my_unit)
+
+ use defs_basis
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: my_unit
+
+!Local variables-------------------------------
+
+! *************************************************************************
+
+ write(my_unit,"(a,1x,a)") ch10,repeat("+",78)
+ write(my_unit,"(1x,a,a,3x,a,a,a)") "Default optimizations:",ch10, &
+& "@fcflags_opt_default@",ch10,ch10@config.optim@
+
+ write(my_unit,"(1x,a,a)") repeat("+",78),ch10
+
+end subroutine dump_optim
+
+end module m_optim_dumper
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_optim_dumper.o b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.o
new file mode 100644
index 00000000..7cc3a936
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_optim_dumper.o differ
diff --git a/GX-PAW/common/src/14_hidewrite/m_specialmsg.F90 b/GX-PAW/common/src/14_hidewrite/m_specialmsg.F90
new file mode 100644
index 00000000..9c57604f
--- /dev/null
+++ b/GX-PAW/common/src/14_hidewrite/m_specialmsg.F90
@@ -0,0 +1,525 @@
+!!****m* ABINIT/m_specialmsg
+!! NAME
+!! m_specialmsg
+!!
+!! FUNCTION
+!! This module contains tools to deal with special messages counters.
+!! Special messages= WARNING, COMMENT, EXIT
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MT,XG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_specialmsg
+
+ use defs_basis
+ use m_build_info
+ use m_xmpi
+
+ use m_io_tools, only : flush_unit, write_lines, is_open
+
+ implicit none
+
+ private
+!!***
+
+ public :: herald ! Prints message to unit iout giving info about current
+ ! code, version of code, platform, and starting date.
+
+!Number of WARNINGS/COMMENTS printed in log file
+ integer,save :: COMMENT_COUNT = 0
+ integer,save :: WARNING_COUNT = 0
+ integer,save :: EXIT_FLAG = 0
+
+!Public procedures
+ public :: specialmsg_setcount ! Update number of special messages (WARNING/COMMENT) present in log file
+ public :: specialmsg_getcount ! Get number of special messages (WARNING/COMMENT) present in log file
+ public :: specialmsg_mpisum ! Reduce number of special messages (WARNING/COMMENT) over MPI comm
+
+ public :: wrtout
+
+ interface wrtout
+ module procedure wrtout_unit
+ module procedure wrtout_units
+ end interface wrtout
+
+CONTAINS !===========================================================
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_specialmsg/specialmsg_setcount
+!! NAME
+!! specialmsg_setcount
+!!
+!! FUNCTION
+!! Update the counters of special messages (WARNING, COMMENTS, EXIT) printed in log file
+!!
+!! INPUTS
+!! [n_add_comment]= (optional) number of comments to add to the counter
+!! [n_add_exit] = (optional) number of exit messages to add to the counter
+!! [n_add_warning]= (optional) number of warnings to add to the counter
+!!
+!! OUTPUT
+!! (only counters updated)
+!!
+!! SOURCE
+
+subroutine specialmsg_setcount(n_add_comment,n_add_warning,n_add_exit)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: n_add_comment,n_add_warning,n_add_exit
+
+! *********************************************************************
+
+ if (PRESENT(n_add_comment)) COMMENT_COUNT=COMMENT_COUNT+n_add_comment
+ if (PRESENT(n_add_warning)) WARNING_COUNT=WARNING_COUNT+n_add_warning
+ if (PRESENT(n_add_exit)) then
+ EXIT_FLAG=EXIT_FLAG+n_add_exit
+ if (EXIT_FLAG>1) EXIT_FLAG=1
+ end if
+
+end subroutine specialmsg_setcount
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_specialmsg/specialmsg_getcount
+!! NAME
+!! specialmsg_getcount
+!!
+!! FUNCTION
+!! Get the values of the counters of special messages (WARNING, COMMENT)
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!! ncomment= number of COMMENTs in log file
+!! nwarning= number of WARNINGs in log file
+!! nexit= 1 if exit requested
+!!
+!! SOURCE
+
+subroutine specialmsg_getcount(ncomment,nwarning,nexit)
+
+!Arguments ------------------------------------
+ integer,intent(out) :: ncomment,nexit,nwarning
+
+! *********************************************************************
+
+ ncomment=COMMENT_COUNT
+ nwarning=WARNING_COUNT
+ nexit =EXIT_FLAG
+
+end subroutine specialmsg_getcount
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_specialmsg/specialmsg_mpisum
+!! NAME
+!! specialmsg_mpisum
+!!
+!! FUNCTION
+!! Reduce the counters of special messages (WARNING, COMMENTS, EXIT) over a MPI communicator
+!!
+!! INPUTS
+!! mpicomm= MPI communicator
+!!
+!! OUTPUT
+!! (only counters updated)
+!!
+!! SOURCE
+
+subroutine specialmsg_mpisum(mpicomm)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: mpicomm
+
+!Local variables-------------------------------
+ integer :: ierr
+ integer :: buf(3)
+
+! *********************************************************************
+
+ buf(1)=COMMENT_COUNT;buf(2)=WARNING_COUNT;buf(3)=EXIT_FLAG
+
+ call xmpi_sum(buf,mpicomm,ierr)
+
+ COMMENT_COUNT=buf(1)
+ WARNING_COUNT=buf(2)
+ EXIT_FLAG=buf(3) ; if (EXIT_FLAG/=0) EXIT_FLAG=1
+
+end subroutine specialmsg_mpisum
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_specialmsg/herald
+!! NAME
+!! herald
+!!
+!! FUNCTION
+!! Prints out a message to unit iout giving info about current
+!! code, version of code, platform, and starting date.
+!!
+!! INPUTS
+!! code_name= code name
+!! code_version= code version
+!! iout=unit number for output
+!!
+!! OUTPUT
+!! (only writing)
+!!
+!! SOURCE
+
+subroutine herald(code_name,code_version,iout)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: iout
+ character(len=*),intent(in) :: code_name
+ character(len=*),intent(in) :: code_version
+
+!Local variables-------------------------------
+ integer :: day,dd,ja,jy,jm,jdn,mm,mm_rel,year,year_rel
+ integer :: values(8)
+ character(len=5) :: strzone
+ character(len=8) :: strdat
+ character(len=10) :: strtime
+ character(len=500) :: msg
+ character(len=3),parameter :: day_names(7)=(/'Mon','Tue','Wed','Thu','Fri','Sat','Sun'/)
+ character(len=3),parameter :: month_names(12)=(/'Jan','Feb','Mar','Apr','May','Jun',&
+ 'Jul','Aug','Sep','Oct','Nov','Dec'/)
+
+! *************************************************************************
+
+!RELEASE TIME FROM ABIRULES
+ year_rel=2024
+ mm_rel=03
+!END OF RELEASE TIME
+
+!The technique used hereafter is the only one that we have found to obtain
+!perfect transferability across platforms and OS.
+ write(iout, '(/,a,a,a,a,a,a,a,i4,a)' ) '.Version ',trim(code_version),' of ',trim(code_name),', released ',month_names(mm_rel),' ',year_rel,'.'
+#if defined HAVE_MPI
+ write(iout, '(a,a,a,/)' ) '.(MPI version, prepared for a ',build_target,' computer) '
+#else
+ write(iout, '(a,a,a,/)' ) '.(sequential version, prepared for a ',build_target,' computer) '
+#endif
+
+!GNU GPL license
+ write(iout, '(a,/,a,a,a,/,a,/,a,/,a,/)' ) &
+ '.Copyright (C) 1998-2024 ABINIT group . ',&
+ ' ',trim(code_name),' comes with ABSOLUTELY NO WARRANTY.',&
+ ' It is free software, and you are welcome to redistribute it',&
+ ' under certain conditions (GNU General Public License,',&
+ ' see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt).'
+
+ if(trim(code_name)=='OPTIC')then
+ write(iout, '(a,a,a,/,a,/,a,/,a,/,a,/,a,/,a,/)' ) &
+ ' ',trim(code_name),' has originally been developed by',&
+ ' Sangeeta Sharma and incorporated in ABINIT with the help of M. Verstraete.',&
+ ' Please refer to : ',&
+ ' S. Sharma, J. K. Dewhurst and C. Ambrosch-Draxl, Phys. Rev. B 67, 165332 (2003), and',&
+ ' S. Sharma and C. Ambrosch-Draxl, Physica Scripta T 109 (2004).',&
+ '- URLs and DOI at https://docs.abinit.org/theory/bibliography/#sharma2003',&
+ '- and https://docs.abinit.org/theory/bibliography/#sharma2004'
+ end if
+
+ write(iout, '(a,/,a,/,a,/,a,/,a)' ) &
+ ' ABINIT is a project of the Universite Catholique de Louvain,',&
+ ' Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt .',&
+ ' Please read https://docs.abinit.org/theory/acknowledgments for suggested',&
+ ' acknowledgments of the ABINIT effort.',&
+ ' For more information, see https://www.abinit.org .'
+
+!Get year, month and day
+ call date_and_time(strdat,strtime,strzone,values)
+ year=values(1)
+ mm=values(2)
+ dd=values(3)
+
+!Get day of the week
+ if (mm.gt.2) then
+ jy=year
+ jm=mm+1
+ else
+ jy=year-1
+ jm=mm+13
+ end if
+ jdn=int(365.25d0*jy)+int(30.6001d0*jm)+dd+1720995
+ ja=int(0.01d0*jy)
+ jdn=jdn+2-ja+int(quarter*ja)
+ day=mod(jdn,7)+1
+
+!Print date in nice format (* new format *)
+ write(iout, '(/,a,a,1x,i2,1x,a,1x,i4,a,/,a,i2.2,a,i2.2,a)' ) &
+ '.Starting date : ',day_names(day),dd,month_names(mm),year,'.','- ( at ',values(5),'h',values(6),' )'
+ write(iout,*)' '
+
+!Impose a maximal life cycle of 3 years
+ if(year>year_rel+3 .or. (year==year_rel+3 .and. mm>mm_rel) ) then
+ write(msg, '(5a,i4,5a)' )&
+ '- The starting date is more than 3 years after the initial release',ch10,&
+ '- of this version of ABINIT, namely ',month_names(mm_rel),' ',year_rel,'.',ch10,&
+ '- This version of ABINIT is not supported anymore.',ch10,&
+ '- Action: please, switch to a more recent version of ABINIT.'
+ call wrtout(iout,msg,'COLL')
+
+! Gives a warning beyond 2 years
+ else if(year>year_rel+2 .or. (year==year_rel+2 .and. mm>mm_rel) ) then
+ write(msg, '(5a,i4,6a)' )&
+ '- The starting date is more than 2 years after the initial release',ch10,&
+ '- of this version of ABINIT, namely ',month_names(mm_rel),' ',year_rel,'.',ch10,&
+ '- Note that the use beyond 3 years after the release will not be supported.',ch10,&
+ '- Action: please, switch to a more recent version of ABINIT.',ch10
+ call wrtout(iout,msg,'COLL')
+ end if
+
+end subroutine herald
+!!***
+
+!!****f* m_specialmsg/wrtout_unit
+!! NAME
+!! wrtout_unit
+!!
+!! FUNCTION
+!! Organizes the sequential or parallel version of the write intrinsic
+!! Also allows to treat correctly the write operations for Unix (+DOS) and MacOS.
+!!
+!! INPUTS
+!! msg=(character(len=*)) message to be written
+!! unit=unit number for writing. The named constant dev_null defined in defs_basis can be used to avoid any printing.
+!! [mode_paral]= --optional argument--
+!! 'COLL' if all procs are calling the routine with the same message to be written once only. Default.
+!! 'PERS' if the procs are calling the routine with different messages each to be written,
+!! or if one proc is calling the routine
+!! "INIT" to change the rank of the master node that prints the message if "COLL" is used.
+!! [do_flush]=True to flush the unit. Defaults to .False.
+!! [newlines]: Number of new lines added after message. Default 0
+!! [pre_newlines]: Number of new lines added vefore message. Default 0
+!!
+!! OUTPUT
+!! (only writing)
+!!
+!! SOURCE
+
+subroutine wrtout_unit(unit, msg, mode_paral, do_flush, newlines, pre_newlines)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: unit
+ character(len=*),intent(in) :: msg
+ character(len=*),optional,intent(in) :: mode_paral
+ logical,optional,intent(in) :: do_flush
+ integer,optional,intent(in) :: newlines, pre_newlines
+
+!Local variables-------------------------------
+ integer,save :: master=0
+ integer :: comm, me, nproc, my_newlines, ii, my_pre_newlines
+ logical :: my_flush
+ character(len=len(msg)+50) :: string
+ character(len=500) :: my_mode_paral
+
+!******************************************************************
+
+ if (unit == std_out .and. .not. do_write_log) return
+ if (unit == dev_null) return
+ !if (.not. is_open(unit)) return
+
+ my_mode_paral = "COLL"; if (present(mode_paral)) my_mode_paral = trim(mode_paral)
+ my_flush = .false.; if (present(do_flush)) my_flush = do_flush
+ my_newlines = 0; if (present(newlines)) my_newlines = newlines
+ my_pre_newlines = 0; if (present(pre_newlines)) my_pre_newlines = pre_newlines
+
+ ! Communicator is xmpi_world by default, except for the parallelization over images
+ if (abinit_comm_output /= -1) then
+ comm = abinit_comm_output
+ else
+ comm = xmpi_world
+ end if
+
+ ! Determine who I am in COMM_WORLD
+ me = xmpi_comm_rank(comm); nproc = xmpi_comm_size(comm)
+
+ if (my_mode_paral == 'COLL' .or. nproc == 1) then
+ if (me == master) then
+ if (my_pre_newlines /= 0) then
+ do ii=1,my_pre_newlines; write(unit, "(a)")""; end do
+ end if
+ call wrtout_myproc(unit, msg, do_flush=my_flush)
+ if (my_newlines /= 0) then
+ do ii=1,my_newlines; write(unit, "(a)")""; end do
+ end if
+ end if
+
+ else if (my_mode_paral == 'PERS') then
+ if (my_pre_newlines /= 0) then
+ do ii=1,my_pre_newlines; write(unit, "(a)")""; end do
+ end if
+ call write_lines(unit,msg)
+ if (my_newlines /= 0) then
+ do ii=1,my_newlines; write(unit, "(a)")""; end do
+ end if
+ ! Flush unit
+ if (my_flush) call flush_unit(unit)
+
+ else if (my_mode_paral == 'INIT') then
+ master = unit
+
+ else
+ !print *, trim(my_mode_paral)
+ write(string,'(7a)')ch10,&
+ 'wrtout_unit: ERROR -',ch10,&
+ ' Unknown write mode: ',trim(my_mode_paral),ch10,&
+ ' Continuing anyway ...'
+ write(unit, '(A)' ) trim(string)
+ end if
+
+end subroutine wrtout_unit
+!!***
+
+!!****f* m_specialmsg/wrtout_units
+!! NAME
+!! wrtout_units
+!!
+!! FUNCTION
+!! Write string to multiple units. Wraps wrtout_unit
+!!
+!! INPUTS
+!! msg=(character(len=*)) message to be written
+!! units=unit number for writing. The named constant dev_null defined in defs_basis can be used to avoid any printing.
+!! [mode_paral]= --optional argument--
+!! 'COLL' if all procs are calling the routine with the same message to be written once only. Default.
+!! 'PERS' if the procs are calling the routine with different messages each to be written,
+!! or if one proc is calling the routine
+!! "INIT" to change the rank of the master node that prints the message if "COLL" is used.
+!! [do_flush]=True to flush the unit. Defaults to .False.
+!! [newlines]: Number of new lines added after message. Default 0
+!! [pre_newlines]: Number of new lines added vefore message. Default 0
+!!
+!! OUTPUT
+!! (only writing)
+!!
+!! SOURCE
+
+subroutine wrtout_units(units, msg, mode_paral, do_flush, newlines, pre_newlines)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: units(:)
+ character(len=*),intent(in) :: msg
+ character(len=*),optional,intent(in) :: mode_paral
+ logical,optional,intent(in) :: do_flush
+ integer,optional,intent(in) :: newlines, pre_newlines
+
+!Local variables-------------------------------
+!scalars
+ integer :: ii, cnt, my_newlines, my_pre_newlines
+ logical :: my_flush
+ character(len=500) :: my_mode_paral
+!arrays
+ integer :: my_units(size(units))
+
+!******************************************************************
+
+ my_mode_paral = "COLL"; if (present(mode_paral)) my_mode_paral = mode_paral
+ my_flush = .false.; if (present(do_flush)) my_flush = do_flush
+ my_newlines = 0; if (present(newlines)) my_newlines = newlines
+ my_pre_newlines = 0; if (present(pre_newlines)) my_pre_newlines = pre_newlines
+
+ ! Remove duplicated units (if any)
+ my_units(1) = units(1); cnt = 1
+ do ii=2,size(units)
+ if (any(units(ii) == my_units(1:cnt))) cycle
+ cnt = cnt + 1
+ my_units(cnt) = units(ii)
+ end do
+
+ do ii=1,cnt
+ call wrtout_unit(my_units(ii), msg, mode_paral=my_mode_paral, &
+ do_flush=my_flush, newlines=my_newlines, pre_newlines=my_pre_newlines)
+ end do
+
+end subroutine wrtout_units
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_specialmsg/wrtout_myproc
+!! NAME
+!! wrtout_myproc
+!!
+!! FUNCTION
+!! Do the output for one proc. For parallel or sequential output use wrtout()
+!! instead. Also allows to treat correctly the write operations for Unix (+DOS) and MacOS.
+!!
+!! INPUTS
+!! unit=unit number for writing
+!! msg=(character(len=*)) message to be written
+!! [do_flush]=True to flush the unit. Defaults to .False.
+!!
+!! OUTPUT
+!! (only writing)
+!!
+!! SOURCE
+
+subroutine wrtout_myproc(unit, msg, do_flush) ! optional argument
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: unit
+ character(len=*),intent(in) :: msg
+ logical,optional,intent(in) :: do_flush
+
+!Local variables-------------------------------
+!scalars
+ logical :: print_std_err
+
+!******************************************************************
+
+ print_std_err = (unit == std_out .and. std_out /= std_err .and. &
+ (index(trim(msg), 'BUG') /= 0 .or. index(trim(msg), 'ERROR') /= 0))
+
+ ! Print message
+ call write_lines(unit, msg)
+ if (print_std_err) call write_lines(std_err, msg)
+
+ ! Append "Contact Abinit group" to BUG messages
+ if (index(trim(msg), 'BUG') /= 0 )then
+ write(unit, '(a)' ) ' Action: contact ABINIT group (please attach the output of `abinit -b`)'
+ write(unit,*)
+ if (print_std_err) then
+ write(std_err, '(a)' ) ' Action: contact ABINIT group (please attach the output of `abinit -b`)'
+ write(std_err,*)
+ end if
+ end if
+
+ ! Count the number of warnings and comments. Only take into
+ ! account unit std_out, in order not to duplicate these numbers.
+ if (index(trim(msg), 'WARNING') /= 0 .and. unit==std_out) call specialmsg_setcount(n_add_warning=1)
+ if (index(trim(msg), 'COMMENT') /= 0 .and. unit==std_out) call specialmsg_setcount(n_add_comment=1)
+ if (index(trim(msg), 'Exit') /= 0 ) call specialmsg_setcount(n_add_exit=1)
+
+ ! Flush unit
+ if (present(do_flush)) then
+ if (do_flush) call flush_unit(unit)
+ end if
+#ifdef DEBUG_MODE
+ call flush_unit(unit)
+ if (print_std_err) call flush_unit(std_err)
+#endif
+
+end subroutine wrtout_myproc
+!!***
+
+end module m_specialmsg
+!!***
diff --git a/GX-PAW/common/src/14_hidewrite/m_specialmsg.o b/GX-PAW/common/src/14_hidewrite/m_specialmsg.o
new file mode 100644
index 00000000..f999a9ec
Binary files /dev/null and b/GX-PAW/common/src/14_hidewrite/m_specialmsg.o differ
diff --git a/GX-PAW/common/src/16_hideleave/Makefile b/GX-PAW/common/src/16_hideleave/Makefile
new file mode 100644
index 00000000..2c5d1379
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/Makefile
@@ -0,0 +1,1463 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/16_hideleave/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/16_hideleave
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib16_hideleave_a_AR = $(AR) $(ARFLAGS)
+lib16_hideleave_a_LIBADD =
+am__objects_1 = m_xieee.$(OBJEXT) m_errors.$(OBJEXT)
+am_lib16_hideleave_a_OBJECTS = $(am__objects_1)
+lib16_hideleave_a_OBJECTS = $(am_lib16_hideleave_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib16_hideleave_a_SOURCES)
+DIST_SOURCES = $(lib16_hideleave_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/16_hideleave
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/16_hideleave
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi \
+ -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi \
+ -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ -I/opt/local/include \
+ -I/opt/local/include \
+ -I/opt/local/include -I/opt/local/include \
+ -I/opt/local/include \
+ -I/opt/local/include \
+ -I/opt/local/include \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib16_hideleave_srcs = \
+ m_xieee.F90 \
+ m_errors.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib16_hideleave.a
+lib16_hideleave_a_SOURCES = $(lib16_hideleave_srcs)
+
+# Dependencies (inside the directory) of directory 16_hideleave
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_xieee_cpp.f90 m_errors_cpp.f90 m_errors.$(MODEXT) \
+ m_xieee.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _16_hideleave_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/16_hideleave/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/16_hideleave/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib16_hideleave.a: $(lib16_hideleave_a_OBJECTS) $(lib16_hideleave_a_DEPENDENCIES) $(EXTRA_lib16_hideleave_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib16_hideleave.a
+ $(AM_V_AR)$(lib16_hideleave_a_AR) lib16_hideleave.a $(lib16_hideleave_a_OBJECTS) $(lib16_hideleave_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib16_hideleave.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/16_hideleave/Makefile.am b/GX-PAW/common/src/16_hideleave/Makefile.am
new file mode 100644
index 00000000..6b95ddc4
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/Makefile.am
@@ -0,0 +1,65 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_16_hideleave@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @sd_hdf5_cppflags@ \
+ @sd_netcdf_cppflags@ \
+ @sd_netcdf_fcflags@ \
+ @sd_netcdf_fortran_cppflags@ \
+ @sd_netcdf_fortran_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib16_hideleave_srcs = \
+ m_xieee.F90 \
+ m_errors.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib16_hideleave.a
+
+lib16_hideleave_a_SOURCES= $(lib16_hideleave_srcs)
+
+CLEANFILES = \
+ m_xieee_cpp.f90 \
+ m_errors_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 16_hideleave
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_errors.$(MODEXT) \
+ m_xieee.$(MODEXT)
+
+
+EXTRA_DIST += _16_hideleave_
diff --git a/GX-PAW/common/src/16_hideleave/Makefile.in b/GX-PAW/common/src/16_hideleave/Makefile.in
new file mode 100644
index 00000000..a6b346c1
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/Makefile.in
@@ -0,0 +1,1463 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/16_hideleave
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib16_hideleave_a_AR = $(AR) $(ARFLAGS)
+lib16_hideleave_a_LIBADD =
+am__objects_1 = m_xieee.$(OBJEXT) m_errors.$(OBJEXT)
+am_lib16_hideleave_a_OBJECTS = $(am__objects_1)
+lib16_hideleave_a_OBJECTS = $(am_lib16_hideleave_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib16_hideleave_a_SOURCES)
+DIST_SOURCES = $(lib16_hideleave_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_16_hideleave@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_mpi_cppflags@ \
+ @sd_mpi_fcflags@ \
+ @sd_hdf5_cppflags@ \
+ @sd_netcdf_cppflags@ \
+ @sd_netcdf_fcflags@ \
+ @sd_netcdf_fortran_cppflags@ \
+ @sd_netcdf_fortran_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib16_hideleave_srcs = \
+ m_xieee.F90 \
+ m_errors.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib16_hideleave.a
+lib16_hideleave_a_SOURCES = $(lib16_hideleave_srcs)
+
+# Dependencies (inside the directory) of directory 16_hideleave
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_xieee_cpp.f90 m_errors_cpp.f90 m_errors.$(MODEXT) \
+ m_xieee.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep _16_hideleave_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/16_hideleave/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/16_hideleave/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib16_hideleave.a: $(lib16_hideleave_a_OBJECTS) $(lib16_hideleave_a_DEPENDENCIES) $(EXTRA_lib16_hideleave_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib16_hideleave.a
+ $(AM_V_AR)$(lib16_hideleave_a_AR) lib16_hideleave.a $(lib16_hideleave_a_OBJECTS) $(lib16_hideleave_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib16_hideleave.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/16_hideleave/_16_hideleave_ b/GX-PAW/common/src/16_hideleave/_16_hideleave_
new file mode 100644
index 00000000..8211ead0
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/_16_hideleave_
@@ -0,0 +1,20 @@
+!!****d* ABINIT/16_hideleave
+!! NAME
+!! 16_hideleave
+!!
+!! DESCRIPTION
+!! FIXME: Description is missing
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! interfaces_16_hideleave.F90
+!! m_errors.F90
+!! m_xieee.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/16_hideleave/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/16_hideleave/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..54b889a6
Binary files /dev/null and b/GX-PAW/common/src/16_hideleave/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/16_hideleave/abinit.dep b/GX-PAW/common/src/16_hideleave/abinit.dep
new file mode 100644
index 00000000..d1d9e788
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/abinit.dep
@@ -0,0 +1,10 @@
+# Dependencies (inside the directory) of directory 16_hideleave
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_errors.$(MODEXT) \
+ m_xieee.$(MODEXT)
+
diff --git a/GX-PAW/common/src/16_hideleave/abinit.dir b/GX-PAW/common/src/16_hideleave/abinit.dir
new file mode 100644
index 00000000..950576bb
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 16_hideleave
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs', '11_memory_mpi', '12_hide_mpi', '14_hidewrite']
\ No newline at end of file
diff --git a/GX-PAW/common/src/16_hideleave/abinit.src b/GX-PAW/common/src/16_hideleave/abinit.src
new file mode 100644
index 00000000..dbaf6800
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/abinit.src
@@ -0,0 +1,23 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 1managempi library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "m_xieee.F90",
+ "m_errors.F90"
+ ]
diff --git a/GX-PAW/common/src/16_hideleave/lib16_hideleave.a b/GX-PAW/common/src/16_hideleave/lib16_hideleave.a
new file mode 100644
index 00000000..8162bf85
Binary files /dev/null and b/GX-PAW/common/src/16_hideleave/lib16_hideleave.a differ
diff --git a/GX-PAW/common/src/16_hideleave/m_errors.F90 b/GX-PAW/common/src/16_hideleave/m_errors.F90
new file mode 100644
index 00000000..d4f4cb0f
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/m_errors.F90
@@ -0,0 +1,1497 @@
+!!****m* ABINIT/m_errors
+!! NAME
+!! m_errors
+!!
+!! FUNCTION
+!! This module contains low-level procedures to check assertions and handle errors.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2008-2024 ABINIT group (MG,YP,NCJ,MT)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+MODULE m_errors
+
+ use defs_basis
+ use m_profiling_abi
+ use m_xmpi
+ use m_specialmsg, only : wrtout
+#ifdef HAVE_NETCDF
+ use netcdf
+#endif
+#ifdef HAVE_MPI2
+ use mpi
+#endif
+#ifdef FC_NAG
+ use f90_unix_proc
+#endif
+#ifdef FC_INTEL
+ use ifcore
+#endif
+
+ use iso_c_binding, only : c_ptr, c_size_t, c_associated
+
+ use m_io_tools, only : flush_unit, lock_and_write, file_exists, num_opened_units, show_units, open_file
+ use m_fstrings, only : toupper, basename, indent, lstrip, atoi, strcat, itoa
+ use m_build_info, only : dump_config, abinit_version
+ use m_cppopts_dumper, only : dump_cpp_options
+ use m_optim_dumper, only : dump_optim
+
+ implicit none
+
+#if defined HAVE_MPI1
+include 'mpif.h'
+#endif
+
+#ifdef FC_IBM
+include "fexcp.h"
+#endif
+
+ private
+!!***
+
+!Public procedures
+ public :: assert_eq ! Report and die gracefully if integers not all equal (used for size checking).
+ public :: assert ! Report and die if any logical is false (used for argument range checking).
+ public :: sentinel ! Announce the entering or the exiting from a procedure.
+ public :: die ! Stop execution in case of unexpected events.
+ public :: msg_hndl ! Basic Error handlers.
+ public :: netcdf_check ! Stop execution after a NetCDF I/O error
+ public :: check_mpi_ierr ! Error handler for MPI routines.
+ public :: set_backtrace_onerr ! Activate show_backtrace call in msg_hndl. 0 to disable it.
+ !public :: show_backtrace ! Shows a backtrace at an arbitrary place in user code. (Gfortran/Ifort extension)
+ public :: unused_var ! Helper function used to silence compiler warnings due to unused variables.
+ public :: bigdft_lib_error
+ public :: xlf_set_sighandler
+ public :: abinit_doctor ! Perform checks on memory leaks and leaking file descriptors
+ ! at the end of the run.
+ public :: abi_abort ! Abort the code
+ public :: abi_cabort ! C-interoperable version.
+
+ ! This flag activate the output of the backtrace in msg_hndl
+ ! Unfortunately, gcc4.9 seems to crash inside this routine
+ ! hence, for the time being, this optional feature has been disabled
+ integer, save, private :: m_errors_show_backtrace = 0
+
+ interface assert_eq
+ module procedure assert_eq2
+ module procedure assert_eq3
+ module procedure assert_eq4
+ module procedure assert_eqn
+ end interface assert_eq
+
+ interface assert
+ module procedure assert1
+ module procedure assert2
+ module procedure assert3
+ module procedure assert4
+ module procedure assert_v
+ end interface assert
+
+ interface unused_var
+ module procedure unused_int
+ module procedure unused_real_dp
+ module procedure unused_real_sp
+ module procedure unused_cplx_dpc
+ module procedure unused_cplx_spc
+ module procedure unused_logical
+ module procedure unused_logical1B
+ module procedure unused_ch
+ module procedure unused_c_ptr
+ module procedure unused_c_size_t
+ end interface unused_var
+
+CONTAINS !===========================================================
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert_eq2
+!! NAME
+!! assert_eq2
+!!
+!! FUNCTION
+!! Report and die gracefully if integers not all equal (used for size checking).
+!!
+!! INPUTS
+!! l1,l2,.. Integers to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+function assert_eq2(l1,l2,message,file,line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: l1,l2
+ integer,optional,intent(in) :: line
+ integer :: assert_eq2
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+
+! *************************************************************************
+
+ if (l1==l2) then
+ assert_eq2=l1
+ else
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,line)
+ end if
+
+end function assert_eq2
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert_eq3
+!! NAME
+!! assert_eq3
+!!
+!! FUNCTION
+!! Report and die gracefully if integers not all equal (used for size checking).
+!!
+!! INPUTS
+!! l1,l2,.. Integers to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+function assert_eq3(l1,l2,l3,message,file,line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: l1,l2,l3
+ integer,optional,intent(in) :: line
+ integer :: assert_eq3
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (l1==l2.and.l2==l3) then
+ assert_eq3=l1
+ else
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,line)
+ end if
+
+end function assert_eq3
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert_eq4
+!! NAME
+!! assert_eq4
+!!
+!! FUNCTION
+!! Report and die gracefully if integers not all equal (used for size checking).
+!!
+!! INPUTS
+!! l1,l2,.. Integers to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+function assert_eq4(l1,l2,l3,l4,message,file,line)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: l1,l2,l3,l4
+ integer,optional,intent(in) :: line
+ integer :: assert_eq4
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (l1==l2.and.l2==l3.and.l3==l4) then
+ assert_eq4=l1
+ else
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,line)
+ end if
+
+end function assert_eq4
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert_eqn
+!! NAME
+!! assert_eqn
+!!
+!! FUNCTION
+!! Report and die gracefully if integers not all equal (used for size checking).
+!!
+!! SOURCE
+
+function assert_eqn(nn,message,file,line)
+
+!Arguments ------------------------------------
+!scalars
+ integer,optional,intent(in) :: line
+ integer :: assert_eqn
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+!arrays
+ integer,intent(in) :: nn(:)
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (ALL(nn(2:)==nn(1))) then
+ assert_eqn=nn(1)
+ else
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,line)
+ end if
+
+end function assert_eqn
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert1
+!! NAME
+!! assert1
+!!
+!! FUNCTION
+!! Routines for argument checking and error handling. Report and die if
+!! any logical is false (used for arg range checking).
+!!
+!! INPUTS
+!! l1,l2,.. logical values to be checked (array version is also provided)
+!! message(len=*)=tag with additiona information
+!!
+!! SOURCE
+
+subroutine assert1(l1,message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+ logical,intent(in) :: l1
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (.not.l1) then
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,f90line)
+ end if
+
+end subroutine assert1
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert2
+!! NAME
+!! assert2
+!!
+!! FUNCTION
+!! Routines for argument checking and error handling. Report and die if
+! any logical is false (used for arg range checking).
+!!
+!! INPUTS
+!! l1,l2,.. logical values to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+subroutine assert2(l1,l2,message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+ logical,intent(in) :: l1,l2
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (.not.(l1.and.l2)) then
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,f90line)
+ end if
+
+end subroutine assert2
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert3
+!! NAME
+!! assert3
+!!
+!! FUNCTION
+!! Routines for argument checking and error handling. Report and die if
+!! any logical is false (used for arg range checking).
+!!
+!! INPUTS
+!! l1,l2,.. logical values to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+subroutine assert3(l1,l2,l3,message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+ logical,intent(in) :: l1,l2,l3
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (.not.(l1.and.l2.and.l3)) then
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,f90line)
+ end if
+
+end subroutine assert3
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert4
+!! NAME
+!! assert4
+!!
+!! FUNCTION
+!! Routines for argument checking and error handling. Report and die if
+!! any logical is false (used for arg range checking).
+!!
+!! INPUTS
+!! l1,l2,.. logical values to be checked (array version is also provided)
+!! message(len=*)=tag with additional information
+!!
+!! SOURCE
+
+subroutine assert4(l1,l2,l3,l4,message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+ logical,intent(in) :: l1,l2,l3,l4
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (.not.(l1.and.l2.and.l3.and.l4)) then
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,f90line)
+ end if
+
+end subroutine assert4
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/assert_v
+!! NAME
+!! assert_v
+!!
+!! FUNCTION
+!! Routines for argument checking and error handling. Report and die if
+!! any logical is false (used for arg range checking).
+!!
+!! SOURCE
+
+subroutine assert_v(n,message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+ logical,intent(in) :: n(:)
+
+!Local variables-------------------------------
+ integer :: f90line=0
+ character(len=500) :: f90name='Subroutine Unknown'
+! *************************************************************************
+
+ if (.not.ALL(n)) then
+ if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name= basename(file)
+ call msg_hndl(message,'ERROR','PERS',f90name,f90line)
+ end if
+
+end subroutine assert_v
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/netcdf_check
+!! NAME
+!! netcdf_check
+!!
+!! FUNCTION
+!! Error handler for Netcdf calls.
+!!
+!! INPUTS
+!! ncerr=Status error returned by the Netcdf library.
+!! msg=User-defined string with info on the action that was performed
+!! file= name of the file.
+!! line= line number.
+!!
+!! NOTES
+!! This routine is usually interfaced with the macros defined in abi_common.h
+!!
+!! SOURCE
+
+subroutine netcdf_check(ncerr, msg, file, line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ncerr
+ character(len=*),intent(in) :: msg
+ character(len=*),optional,intent(in) :: file
+ integer,optional,intent(in) :: line
+
+!Local variables-------------------------------
+ integer :: f90line
+ character(len=500) :: f90name
+ character(len=1024) :: nc_msg
+ character(len=2048) :: my_msg
+
+! *************************************************************************
+
+#ifdef HAVE_NETCDF
+ if (ncerr /= NF90_NOERR) then
+
+ f90line = 0; if (present(line)) f90line = line
+ f90name = 'Subroutine Unknown'; if (present(file)) f90name = basename(file)
+
+ ! Append netcdf string to user-defined message.
+ write(nc_msg,'(3a)')' - NetCDF library returned: `', trim(nf90_strerror(ncerr)),"`"
+ my_msg = trim(msg) // trim(nc_msg)
+
+ call msg_hndl(my_msg, "ERROR", "PERS", f90name, f90line)
+ end if
+#endif
+
+end subroutine netcdf_check
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/sentinel
+!! NAME
+!! sentinel
+!!
+!! FUNCTION
+!! Announce the entering and the exiting from a function. Useful for poor-man debugging.
+!!
+!! INPUTS
+!! level=1 when entering, 2 for exit.
+!! mode_paral= ['COLL'|'PERS'|'COLL_SILENT|PERS_SILENT']
+!! 'COLL' and 'PERS' refer to the output mode used in wrtout to report the message.
+!! 'COLL_SILENT' and 'PERS_SILENT' can be used if the procedure is called several times inside a loop.
+!! In this case sentinel will report only the first entry and the first exit using either 'COLL' or 'PERS' mode.
+!! file=File name
+!! func=Name of the procedure to be tested (passed through ABI_FUNC macro)
+!! [line]=Line number. Defaults to 0.
+!!
+!! NOTES
+!! This routine is usually interfaced with the macros defined in abi_common.h
+!!
+!! SOURCE
+
+subroutine sentinel(level,mode_paral,file,func,line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: level
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: mode_paral
+ character(len=*),optional,intent(in) :: func
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer,save :: level_save=0
+ integer :: ii
+ integer :: f90line
+ character(len=500),save :: func_save
+ character(len=4) :: my_mode
+ character(len=10) :: lnum
+ character(len=500) :: my_func, my_file
+ character(len=500) :: msg
+
+! *********************************************************************
+
+ ! initialize the variable
+ my_func = 'Function Unknown'; if (PRESENT(func)) my_func = basename(func)
+ my_file = "File Unknown"; if (PRESENT(file)) my_file = basename(file)
+
+ level_save=level; func_save=my_func
+
+ f90line=0; if (PRESENT(line)) f90line=line
+
+ if (toupper(mode_paral)=='COLL_SILENT'.or.toupper(mode_paral)=='PERS_SILENT') then
+ ! * Silent mode, check if we are inside a loop.
+ if (level==level_save .and. my_func==func_save) RETURN
+ ii = index( toupper(mode_paral), '_SILENT')
+ my_mode=toupper(mode_paral(1:ii-1))
+ else ! * Normal mode.
+ my_mode=mode_paral
+ end if
+
+ if (my_mode/='COLL'.or.my_mode/='PERS') my_mode='COLL'
+
+ write(lnum,"(i0)")f90line
+ my_func= TRIM(my_func)//"@"//TRIM(my_file)//":"//TRIM(lnum)
+
+ if (level==1) then
+ msg = ' '//TRIM(my_func)//' >>>>> ENTER'//ch10
+ else if (level==2) then
+ msg = ' '//TRIM(my_func)//' >>>>> EXIT '//ch10
+ else
+ call die('Wrong level', &
+& __FILE__,&
+& __LINE__)
+ end if
+
+ call wrtout(std_out,msg,my_mode)
+ call flush_unit(std_out)
+
+end subroutine sentinel
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/die
+!! NAME
+!! die
+!!
+!! FUNCTION
+!! Stop smoothly the execution in case of unexpected events reporting the
+!! line number and the file name where the error occurred as well as the
+!! MPI rank of the processor. This routine is usually interfaced through
+!! some macro defined in abi_common.h
+!!
+!! INPUTS
+!! message=String containing additional information on the nature of the problem
+!! line=Line number of the file where problem occurred
+!! f90name=Name of the f90 file containing the caller
+!!
+!! SOURCE
+
+subroutine die(message,file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: message
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer :: rank
+ integer :: f90line=0
+ character(len=10) :: lnum,strank
+ character(len=500) :: f90name='Subroutine Unknown'
+ character(len=500) :: msg
+
+! *********************************************************************
+
+ if (PRESENT(line)) f90line=line
+ write(lnum,"(i0)")f90line
+
+ ! === Determine my rank inside MPI_COMM_WORLD ===
+ rank = xmpi_comm_rank(xmpi_world)
+ write(strank,"(i0)")rank
+
+ if (PRESENT(file)) f90name= basename(file)
+ msg=TRIM(f90name)//':'//TRIM(lnum)//' P'//TRIM(strank)
+
+ write(msg,'(a,2x,2a,2x,a)')ch10,TRIM(msg),ch10,TRIM(message)
+
+ call wrtout(std_out,msg,'PERS')
+ !if is_connected(ab_out)) call wrtout(ab_out,msg,'PERS')
+ call abi_abort('PERS')
+
+end subroutine die
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/msg_hndl
+!! NAME
+!! msg_hndl
+!!
+!! FUNCTION
+!! Basic error handler for abinit. This routine is usually interfaced through some macro defined in abi_common.h
+!!
+!! INPUTS
+!! message=string containing additional information on the nature of the problem
+!! level=string defining the type of problem. Possible values are
+!! COMMENT
+!! WARNING
+!! ERROR
+!! STOP
+!! BUG
+!! mode_paral=Either "COLL" or "PERS".
+!! [line] = line number of the file where problem occurred
+!! [file] = name of the f90 file containing the caller
+!! [NODUMP]= if present dump config before stopping
+!! [NOSTOP]= if present don't stop even in the case of an error or a bug
+!! [unit]= Unit number (defaults to std_out)
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine msg_hndl(message, level, mode_paral, file, line, NODUMP, NOSTOP, unit)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line, unit
+ logical,optional,intent(in) :: NODUMP,NOSTOP
+ character(len=*),intent(in) :: level,message
+ character(len=*),optional,intent(in) :: file
+ character(len=*),intent(in) :: mode_paral
+
+!Local variables-------------------------------
+ integer :: f90line,ierr,unit_
+ logical :: is_open_unit
+ character(len=10) :: lnum
+ character(len=500) :: f90name
+ character(len=LEN(message)) :: my_msg
+ character(len=MAX(4*LEN(message),2000)) :: sbuf ! Increase size and keep fingers crossed!
+
+! *********************************************************************
+ unit_ = std_out; if (present(unit)) unit_ = unit
+
+ if (PRESENT(line)) then
+ f90line=line
+ else
+ f90line=0
+ end if
+ ! TODO: fldiff.py should ignore f90line when comparing files (we don't want to
+ ! update ref files if a new line is added to F90 source file!
+ if (unit_ == ab_out) f90line = 0
+ write(lnum,"(i0)")f90line
+
+ if (PRESENT(file)) then
+ f90name = basename(file)
+ else
+ f90name='Subroutine Unknown'
+ end if
+
+ my_msg = lstrip(message)
+
+ select case (toupper(level))
+
+ case ('COMMENT', 'WARNING')
+
+ write(sbuf,'(8a,i0,7a)')ch10,&
+ "--- !",TRIM(level),ch10,&
+ "src_file: ",TRIM(f90name),ch10,&
+ "src_line: ",f90line,ch10,&
+ "message: |",ch10,TRIM(indent(my_msg)),ch10,&
+ "...",ch10
+ call wrtout(unit_, sbuf, mode_paral)
+
+ case ('STOP')
+
+ write(sbuf,'(9a)')ch10,&
+ "--- !",TRIM(level),ch10,&
+ "message: |",ch10,TRIM(indent(my_msg)),ch10,"..."
+ call wrtout(unit_, sbuf, mode_paral, do_flush=.True.)
+ if (.not.present(NOSTOP)) call abi_abort(mode_paral, print_config=.FALSE.)
+
+ case default
+ ! ERROR' or 'BUG'
+ if ((.not.present(NOSTOP)).and.(.not.present(NODUMP))) then
+ ! Dump the backtrace if the compiler supports it.
+ if (m_errors_show_backtrace == 1) call show_backtrace()
+ end if
+
+ write(sbuf,'(8a,i0,2a,i0,7a)')ch10,&
+ "--- !",TRIM(level),ch10,&
+ "src_file: ",TRIM(f90name),ch10,&
+ "src_line: ",f90line,ch10,&
+ "mpi_rank: ",xmpi_comm_rank(xmpi_world),ch10,&
+ "message: |",ch10,TRIM(indent(my_msg)),ch10,&
+ "...",ch10
+ call wrtout(unit_, sbuf, mode_paral)
+
+ ! Write error message to ab_out is unit is connected.
+ inquire(unit=ab_out, opened=is_open_unit)
+ if (is_open_unit) call wrtout(ab_out, sbuf) !, mode_paral="PERS")
+
+ if (.not.present(NOSTOP)) then
+ ! The first MPI proc that gets here, writes the ABI_MPIABORTFILE with the message!
+ ! The file is written only if nprocs > 1. Do not change this behaviour!
+ if (.not. file_exists(ABI_MPIABORTFILE) .and. xmpi_comm_size(xmpi_world) > 1) then
+ call lock_and_write(ABI_MPIABORTFILE, sbuf, ierr)
+ end if
+ ! And now we die!
+ call abi_abort(mode_paral, print_config=.FALSE.)
+ end if
+
+ end select
+
+end subroutine msg_hndl
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/set_backtrace_onerr
+!! NAME
+!! set_backtrace_onerr
+!!
+!! FUNCTION
+!! 1 to activate show_backtrace call in msg_hndl. 0 to disable it
+!!
+!! SOURCE
+
+subroutine set_backtrace_onerr(iflag)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: iflag
+! *********************************************************************
+
+ m_errors_show_backtrace = iflag
+
+end subroutine set_backtrace_onerr
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/show_backtrace
+!! NAME
+!! show_backtrace
+!!
+!! FUNCTION
+!! shows a backtrace at an arbitrary place in user code.
+!! Program execution continues normally afterwards.
+!! The backtrace information is printed to the unit corresponding to ERROR_UNIT in ISO_FORTRAN_ENV.
+!! This is a (Gfortran extension| Ifort Extension)
+!!
+!! SOURCE
+
+subroutine show_backtrace()
+
+#if defined FC_GNU && defined HAVE_FC_BACKTRACE
+ call backtrace() ! Gfortran extension
+
+#elif defined FC_INTEL
+ call TRACEBACKQQ(USER_EXIT_CODE=-1) ! Ifort extension
+#endif
+
+end subroutine show_backtrace
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/check_mpi_ierr
+!! NAME
+!! check_mpi_ierr
+!!
+!! FUNCTION
+!! Basic error handler for MPI calls. This routine is usually interfaced through some macro defined in abi_common.h
+!!
+!! INPUTS
+!! ierr=Exit status reported by an MPI call.
+!! line=line number of the file where problem occurred
+!! file=name of the f90 file containing the caller
+!!
+!! OUTPUT
+!! Write error message thep stop execution.
+!!
+!! SOURCE
+
+subroutine check_mpi_ierr(ierr, msg, file, line)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ierr
+ integer,optional,intent(in) :: line
+ character(len=*),intent(in) :: msg
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ integer,parameter :: mpi_msg_len=1000
+ integer :: f90line,ilen,ierr2
+ character(len=500) :: f90name='Subroutine Unknown'
+ character(len=mpi_msg_len) :: mpi_msg_error
+ character(len=mpi_msg_len+500) :: my_msg
+! *********************************************************************
+
+#ifdef HAVE_MPI
+ if (ierr==MPI_SUCCESS) RETURN
+ call MPI_ERROR_STRING(ierr, mpi_msg_error, ilen, ierr2)
+#else
+ ilen=0; ierr2=0
+ mpi_msg_error = " Check_mpi_ierr should not be called in non-MPI mode!"
+ if (ierr==0) RETURN
+#endif
+
+ if (ilen>mpi_msg_len) write(std_out,*)" Warning_ MPI message has been truncated!"
+ if (ierr2/=0) write(std_out,*)" Warning: MPI_ERROR_STRING returned ierr2= ",ierr2
+
+ f90line=0; if (PRESENT(line)) f90line=line
+ if (PRESENT(file)) f90name = basename(file)
+ my_msg = TRIM(msg)//ch10//TRIM(mpi_msg_error)
+
+ call msg_hndl(my_msg,"ERROR","PERS",file=f90name,line=f90line)
+
+end subroutine check_mpi_ierr
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_int
+!! NAME
+!! unused_int
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar integer value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_int(var)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: var
+
+!Local variables-------------------------------
+ integer :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_int
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_real_dp
+!! NAME
+!! unused_real_dp
+!!
+!! FUNCTION
+!! Helper function used to silence warning messages due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar real value.
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_real_dp(var)
+
+!Arguments ------------------------------------
+ real(dp),intent(in) :: var
+
+!Local variables-------------------------------
+ real(dp) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_real_dp
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_real_sp
+!! NAME
+!! unused_real_sp
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro. Target: one-dimensional real(dp) vector.
+!!
+!! SOURCE
+
+elemental subroutine unused_real_sp(var)
+
+!Arguments ------------------------------------
+ real(sp),intent(in) :: var
+
+!Local variables-------------------------------
+ real(sp) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_real_sp
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_cplx_spc
+!! NAME
+!! unused_cplx_spc
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar complex value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_cplx_spc(var)
+
+!Arguments ------------------------------------
+ complex(spc),intent(in) :: var
+
+!Local variables-------------------------------
+ complex(spc) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_cplx_spc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_cplx_dpc
+!! NAME
+!! unused_cplx_dpc
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar complex value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_cplx_dpc(var)
+
+!Arguments ------------------------------------
+ complex(dpc),intent(in) :: var
+
+!Local variables-------------------------------
+ complex(dpc) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_cplx_dpc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_logical
+!! NAME
+!! unused_logical
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar logical value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_logical(var)
+
+!Arguments ------------------------------------
+ logical,intent(in) :: var
+
+!Local variables-------------------------------
+ logical :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_logical
+!!***
+
+!!****f* m_errors/unused_logical1B
+!! NAME
+!! unused_logical1B
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var= 1 Byte Scalar logical value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_logical1B(var)
+
+!Arguments ------------------------------------
+ logical*1,intent(in) :: var
+
+!Local variables-------------------------------
+ logical :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_logical1B
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_ch
+!! NAME
+!! unused_ch
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=Scalar character value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_ch(var)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: var
+
+!Local variables-------------------------------
+ character(len=LEN(var)) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_ch
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_c_ptr
+!! NAME
+!! unused_c_ptr
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=type(c_ptr) value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_c_ptr(var)
+
+!Arguments ------------------------------------
+type(c_ptr), intent(IN) :: var
+
+!Local variables-------------------------------
+#ifdef FC_NAG
+logical :: dummy
+#else
+type(c_ptr) :: dummy
+#endif
+! *********************************************************************
+
+#ifdef FC_NAG
+if (.false.) dummy = c_associated(var)
+#else
+dummy = var
+#endif
+
+end subroutine unused_c_ptr
+!!***
+
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/unused_c_size_t
+!! NAME
+!! unused_c_size_t
+!!
+!! FUNCTION
+!! Helper function used to silence compiler warnings due to unused variables.
+!! Interfaced via the ABI_UNUSED macro.
+!!
+!! INPUTS
+!! var=type(c_size_t) value
+!!
+!! OUTPUT
+!! None
+!!
+!! SOURCE
+
+elemental subroutine unused_c_size_t(var)
+
+!Arguments ------------------------------------
+integer(kind=c_size_t), intent(IN) :: var
+
+!Local variables-------------------------------
+integer(kind=c_size_t) :: dummy
+! *********************************************************************
+
+ dummy = var
+
+end subroutine unused_c_size_t
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/bigdft_lib_error
+!! NAME
+!! bigdft_lib_error
+!!
+!! FUNCTION
+!! Stop the code if bigdft library has not been enabled.
+!! Interfaced with the CPP macro BIGDFT_NOTENABLED_ERROR
+!!
+!! INPUTS
+!! line=line number of the file where problem occurred
+!! file=name of the f90 file containing the caller
+!!
+!! SOURCE
+
+subroutine bigdft_lib_error(file,line)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: line
+ character(len=*),optional,intent(in) :: file
+
+!Local variables-------------------------------
+ character(len=500) :: message
+
+! *********************************************************************
+
+ write(message,'(4a)') ch10,&
+& ' BigDFT support has not been enabled.', ch10, &
+& ' Action, used the flag --enable-bigdft when configuring.'
+
+ if (PRESENT(file) .and. PRESENT(line)) then
+ call msg_hndl(message,"ERROR","PERS",file=file,line=line)
+ else
+ call msg_hndl(message,"ERROR", "PERS")
+ end if
+
+end subroutine bigdft_lib_error
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/xlf_set_sighandler
+!! NAME
+!! xlf_set_sighandler
+!!
+!! FUNCTION
+!! Set the signal handler for IBM XLF
+!!
+!! NOTES
+!! See http://publib.boulder.ibm.com/infocenter/compbgpl/v9v111/index.jsp?topic=/com.ibm.xlf111.bg.doc/xlfopg/fptrap.htm
+!! The XL Fortran exception handlers and related routines are:
+!! xl__ieee
+!! Produces a traceback and an explanation of the signal and continues execution by supplying the default IEEE result
+!! for the failed computation. This handler allows the program to produce the same results as if exception detection was not turned on.
+!! xl__trce
+!! Produces a traceback and stops the program.
+!! xl__trcedump
+!! Produces a traceback and a core file and stops the program.
+!! xl__sigdump
+!! Provides a traceback that starts from the point at which it is called and provides information about the signal.
+!! You can only call it from inside a user-written signal handler.
+!! It does not stop the program. To successfully continue, the signal handler must perform some cleanup after calling this subprogram.
+!! xl__trbk
+!! Provides a traceback that starts from the point at which it is called.
+!! You call it as a subroutine from your code, rather than specifying it with the -qsigtrap option. It requires no parameters. It does not stop the program.
+!!
+!! SOURCE
+
+subroutine xlf_set_sighandler()
+
+! *************************************************************************
+
+#ifdef FC_IBM
+ call SIGNAL(SIGTRAP, xl__trcedump)
+ call SIGNAL(SIGFPE, xl__trcedump)
+#endif
+
+end subroutine xlf_set_sighandler
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_errors/abinit_doctor
+!! NAME
+!! abinit_doctor
+!!
+!! FUNCTION
+!! Perform checks on memory leaks and leaking file descriptors at the end of the run.
+!!
+!! INPUTS
+!! prefix=Prefix for output file (usually "__nameofprogram" e.g. __cut3d)
+!! [print_mem_report]=0 to disable the test on memory leaks (used in Abinit if bigdft is activated).
+!! Default: 1, i.e. memory check is always activated.
+!!
+!! SOURCE
+
+subroutine abinit_doctor(prefix, print_mem_report)
+
+!Arguments ------------------------------------
+ integer,optional,intent(in) :: print_mem_report
+ character(len=*),intent(in) :: prefix
+
+!Local variables-------------------------------
+!scalars
+ integer,parameter :: master=0
+ integer :: do_mem_report, my_rank
+ character(len=5000) :: msg
+#ifdef HAVE_MEM_PROFILING
+ integer :: ii,ierr,unt
+ integer(i8b) :: memtot, nalloc, nfree, nalloc_c, nfree_c
+ character(len=fnlen) :: path
+ character(len=5000) :: errmsg
+#endif
+
+! *************************************************************************
+
+ do_mem_report = 1; if (present(print_mem_report)) do_mem_report = print_mem_report
+ my_rank = xmpi_comm_rank(xmpi_world)
+
+#ifdef HAVE_MEM_PROFILING
+ errmsg = ""; ierr = 0
+
+ ! Test on memory leaks.
+ call abimem_get_info(nalloc, nfree, memtot, nalloc_c, nfree_c)
+ call abimem_shutdown()
+
+ if (do_mem_report == 1) then
+
+ ! Check memory allocated in C.
+ if (nalloc_c == nfree_c) then
+ write(msg,'(2a, 2(a,i0), a)') &
+ '- [ALL OK] MEMORY CONSUMPTION REPORT FOR C CODE:',ch10, &
+ '- There were ',nalloc_c,' allocations and ',nfree_c,' deallocations in C code'
+ else
+ ! This msg will make the test fail if the memory leak occurs on master (no dash in the first column)
+ write(msg,'(2a,2(a,i0),3a)') &
+ 'MEMORY CONSUMPTION REPORT FOR C CODE:',ch10, &
+ ' There were ',nalloc_c,' allocations and ',nfree_c,' deallocations in C code',ch10, &
+ " Check your C code for memory leaks. Note that the abimem.py script does not support allocations in C"
+ ! And this will make the code call mpi_abort if the leak occurs on my_rank != master
+ ierr = ierr + 1
+ errmsg = strcat(errmsg, ch10, msg)
+ end if
+ if (my_rank == master) call wrtout(ab_out, msg)
+ call wrtout(std_out, msg)
+
+ ! Check memory allocated in Fortran.
+ if (nalloc == nfree .and. memtot == 0) then
+ write(msg,'(3a,i0,a,i0,3a,i0)') &
+ '- [ALL OK] MEMORY CONSUMPTION REPORT FOR FORTRAN CODE:',ch10, &
+ '- There were ',nalloc,' allocations and ',nfree,' deallocations in Fortran',ch10, &
+ '- Remaining memory at the end of the calculation is ',memtot
+ else
+ ! This msg will make the test fail if the memory leak occurs on master (no dash in the first column)
+ write(msg,'(2a,2(a,i0),3a,f12.4,1x,11a)') &
+ 'MEMORY CONSUMPTION REPORT FOR FORTRAN CODE:',ch10, &
+ ' There were ',nalloc,' allocations and ',nfree,' deallocations in Fortran',ch10, &
+ ' Remaining memory at the end of the calculation: ',memtot * b2Mb, " (Mb)", ch10, &
+ ' As a help for debugging, you might set call abimem_init(2) in the main program,', ch10, &
+ ' or use the command line option `abinit run.abi --abimem-level 2`', ch10, &
+ ' then use tests/Scripts/abimem.py to analyse the file abimem_rank[num].mocc that has been created,',ch10, &
+ ' e.g. from tests/Scripts issue the command: ./abimem.py leaks ..///abimem_rank0.mocc',ch10, &
+ ' Note that abimem files can easily be multiple GB in size so do not use this option normally!'
+ ! And this will make the code call mpi_abort if the leak occurs on my_rank != master
+ ierr = ierr + 1
+ errmsg = strcat(errmsg, ch10, msg)
+ end if
+
+ else
+ write(msg,'(3a)') &
+ '- MEMORY CONSUMPTION REPORT:',ch10, &
+ '- Memory profiling is activated but not yet usable when bigdft is used'
+ end if
+ if (my_rank == master) call wrtout(ab_out, msg)
+ call wrtout(std_out, msg)
+
+ ! Test whether all logical units have been closed.
+ ! If you wonder why I'm doing this, remember that there's a per-user
+ ! limit on the maximum number of open file descriptors. Hence descriptors
+ ! represent a precious resource and we should close them as soon as possible.
+ ii = num_opened_units(ignore=[std_err, std_in, std_out, ab_out])
+ if (ii > 0) then
+ path = strcat(prefix, "_lunits_rank", itoa(my_rank), ".flun")
+ if (open_file(path, msg, newunit=unt) /= 0) then
+ ABI_ERROR(msg)
+ end if
+ call show_units(unt)
+ close(unt)
+ write(msg, "(a,i0,2a)")"Leaking ",ii," Fortran logical units. See: ",trim(path)
+ errmsg = strcat(errmsg, ch10, msg)
+ ierr = ierr + 1
+ if (my_rank == master) call wrtout(ab_out, msg)
+ call wrtout(std_out, msg)
+ end if
+
+ call xmpi_barrier(xmpi_world)
+ if (ierr /= 0) then
+ ABI_ERROR(errmsg)
+ end if
+
+#else
+ ABI_UNUSED(prefix)
+#endif
+
+ ! Check for pending requests.
+ if (xmpi_count_requests /= 0) then
+ write(msg, "(a,i0,a)")"Leaking ", xmpi_count_requests, " MPI requests at the end of the run"
+ ABI_WARNING(msg)
+#ifdef HAVE_MEM_PROFILING
+ ABI_ERROR(msg)
+#endif
+ end if
+
+end subroutine abinit_doctor
+!!***
+
+!!****f* m_errors/abi_abort
+!! NAME
+!! abi_abort
+!!
+!! FUNCTION
+!! Routine for clean exit of f90 code, taking into account possible parallelization.
+!!
+!! Note the this routine is private and should never be called explicitly.
+!! Please, use the macros:
+!! MSG_ERROR, MSG_BUG
+!! defined in abi_common.h to abort the execution.
+!! XG : this is not true, in very rare cases, ABINIT has to exit without giving an error (e.g. for non-zero prtkpt )
+!!
+!! INPUTS
+!! exit_status=(optional, default=1 or -1, see below) the return code of the routine
+!! mode_paral=
+!! 'COLL' if all procs are calling the routine with the same message to be
+!! written once only or
+!! 'PERS' if the procs are calling the routine with different mesgs
+!! each to be written, or if one proc is calling the routine
+!! print_config=(optional, default=true)
+!! if true print out several information before leaving
+!!
+!! OUTPUT
+!! (only writing, then stop)
+!!
+!! NOTES
+!! By default, it uses "call exit(1)", that is not completely portable.
+!!
+!! SOURCE
+
+subroutine abi_abort(mode_paral,exit_status,print_config)
+
+!Arguments ------------------------------------
+ character(len=4),intent(in) :: mode_paral
+ integer,intent(in),optional :: exit_status
+ logical,intent(in),optional :: print_config
+
+!Local variables-------------------------------
+ logical :: print_config_
+
+! **********************************************************************
+
+ call wrtout(std_out, ch10//' abinit_abort: decision taken to exit. Check above messages for more info', 'PERS')
+
+ ! Caveat: Do not use MPI collective calls!
+ if (mode_paral == "COLL") then
+ call wrtout(std_out,"Why are you using COLL? Are you sure that ALL the processors are calling abi_abort?")
+ end if
+
+ ! Dump configuration before exiting
+ print_config_=.False.; if (present(print_config)) print_config_=print_config
+ if (print_config_) then
+ call print_kinds()
+ call xmpi_show_info()
+ call dump_config(std_out)
+ end if
+
+ if (present(exit_status)) then
+ call xmpi_abort(exit_status=exit_status)
+ else
+ call xmpi_abort()
+ end if
+
+end subroutine abi_abort
+!!***
+
+!!****f* m_errors/abi_cabort
+!! NAME
+!! abi_cabort
+!!
+!! FUNCTION
+!! C-interoperable version of abi_abort
+
+subroutine abi_cabort() bind(C, name='abi_cabort')
+
+ call abi_abort("COLL", exit_status=1, print_config=.False.)
+
+end subroutine abi_cabort
+!!***
+
+END MODULE m_errors
+!!***
diff --git a/GX-PAW/common/src/16_hideleave/m_errors.o b/GX-PAW/common/src/16_hideleave/m_errors.o
new file mode 100644
index 00000000..498e1b67
Binary files /dev/null and b/GX-PAW/common/src/16_hideleave/m_errors.o differ
diff --git a/GX-PAW/common/src/16_hideleave/m_xieee.F90 b/GX-PAW/common/src/16_hideleave/m_xieee.F90
new file mode 100644
index 00000000..e822a3cf
--- /dev/null
+++ b/GX-PAW/common/src/16_hideleave/m_xieee.F90
@@ -0,0 +1,123 @@
+!!****m* ABINIT/m_xieee
+!! NAME
+!! m_xieee
+!!
+!! FUNCTION
+!! Debugging tools and helper functions providing access to IEEE exceptions
+!!
+!! COPYRIGHT
+!! Copyright (C) 2014-2024 ABINIT group (MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! See F2003 standard and http://www.nag.com/nagware/np/r51_doc/ieee_exceptions.html
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_xieee
+
+#ifdef HAVE_FC_IEEE_EXCEPTIONS
+ !use, intrinsic :: ieee_exceptions
+ use ieee_exceptions
+#endif
+
+ implicit none
+
+ private
+
+ public :: xieee_halt_ifexc ! Halt the code if one of the *usual* IEEE exceptions is raised.
+ public :: xieee_signal_ifexc ! Signal if any IEEE exception is raised.
+
+ integer,private,parameter :: std_out = 6
+
+contains
+!!***
+
+!!****f* m_xieee/xieee_halt_ifexc
+!! NAME
+!! xieee_halt_ifexc
+!!
+!! FUNCTION
+!! Halt the code if one of the *usual* IEEE exceptions is raised.
+!!
+!! INPUTS
+!! halt= If the value is true, the exceptions will cause halting; otherwise, execution will continue after this exception.
+!!
+!! SOURCE
+
+subroutine xieee_halt_ifexc(halt)
+
+!Arguments ------------------------------------
+!scalars
+ logical,intent(in) :: halt
+! *************************************************************************
+
+#ifdef HAVE_FC_IEEE_EXCEPTIONS
+ ! Possible Flags: ieee_invalid, ieee_overflow, ieee_divide_by_zero, ieee_inexact, and ieee_underflow
+ if (ieee_support_halting(ieee_invalid)) then
+ call ieee_set_halting_mode(ieee_invalid, halt)
+ end if
+ if (ieee_support_halting(ieee_overflow)) then
+ call ieee_set_halting_mode(ieee_overflow, halt)
+ end if
+ if (ieee_support_halting(ieee_divide_by_zero)) then
+ call ieee_set_halting_mode(ieee_divide_by_zero, halt)
+ end if
+ !if (ieee_support_halting(ieee_inexact)) then
+ ! call ieee_set_halting_mode(ieee_inexact, halt)
+ !end if
+ !if (ieee_support_halting(ieee_underflow)) then
+ ! call ieee_set_halting_mode(ieee_underflow, halt)
+ !end if
+#else
+ write(std_out,*)"Cannot set halting mode to: ",halt
+#endif
+
+end subroutine xieee_halt_ifexc
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_xieee/xieee_signal_ifexc
+!! NAME
+!! xieee_signal_ifexc
+!!
+!! FUNCTION
+!! Signal if one of the *usual* IEEE exceptions is raised.
+
+!! INPUTS
+!! flag= If the value is true, the exceptions will be signalled
+!!
+!! SOURCE
+
+subroutine xieee_signal_ifexc(flag)
+
+!Arguments ------------------------------------
+!scalars
+ logical,intent(in) :: flag
+! *************************************************************************
+
+#ifdef HAVE_FC_IEEE_EXCEPTIONS
+ ! Possible Flags: ieee_invalid, ieee_overflow, ieee_divide_by_zero, ieee_inexact, and ieee_underflow
+ call ieee_set_flag(ieee_invalid, flag)
+ call ieee_set_flag(ieee_overflow, flag)
+ call ieee_set_flag(ieee_divide_by_zero, flag)
+ call ieee_set_flag(ieee_inexact, flag)
+ call ieee_set_flag(ieee_underflow, flag)
+#else
+ write(std_out,*)"Cannot set signal flag to: ",flag
+#endif
+
+end subroutine xieee_signal_ifexc
+!!***
+
+end module m_xieee
+!!***
diff --git a/GX-PAW/common/src/16_hideleave/m_xieee.o b/GX-PAW/common/src/16_hideleave/m_xieee.o
new file mode 100644
index 00000000..a09f0ebb
Binary files /dev/null and b/GX-PAW/common/src/16_hideleave/m_xieee.o differ
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/.deps/kokkos_utils.Po b/GX-PAW/common/src/16_kokkos_toolbox/.deps/kokkos_utils.Po
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/.deps/kokkos_utils.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/Makefile b/GX-PAW/common/src/16_kokkos_toolbox/Makefile
new file mode 100644
index 00000000..7575e1ee
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/Makefile
@@ -0,0 +1,1507 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/16_kokkos_toolbox/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/16_kokkos_toolbox
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib16_kokkos_toolbox_a_AR = $(AR) $(ARFLAGS)
+lib16_kokkos_toolbox_a_LIBADD =
+am__objects_1 = kokkos_utils.$(OBJEXT) m_kokkos_utils.$(OBJEXT)
+am_lib16_kokkos_toolbox_a_OBJECTS = $(am__objects_1)
+lib16_kokkos_toolbox_a_OBJECTS = $(am_lib16_kokkos_toolbox_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/kokkos_utils.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_$(V))
+am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_CXXLD = $(am__v_CXXLD_$(V))
+am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib16_kokkos_toolbox_a_SOURCES)
+DIST_SOURCES = $(lib16_kokkos_toolbox_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/16_kokkos_toolbox
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/16_kokkos_toolbox
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ \
+ \
+
+
+
+# Regular source files
+lib16_kokkos_toolbox_srcs = \
+ kokkos_utils.cpp \
+ m_kokkos_utils.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib16_kokkos_toolbox.a
+lib16_kokkos_toolbox_a_SOURCES = $(lib16_kokkos_toolbox_srcs)
+
+# Dependencies (inside the directory) of directory 16_kokkos_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_kokkos_utils_cpp.f90 m_kokkos_utils.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .cpp .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/16_kokkos_toolbox/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/16_kokkos_toolbox/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib16_kokkos_toolbox.a: $(lib16_kokkos_toolbox_a_OBJECTS) $(lib16_kokkos_toolbox_a_DEPENDENCIES) $(EXTRA_lib16_kokkos_toolbox_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib16_kokkos_toolbox.a
+ $(AM_V_AR)$(lib16_kokkos_toolbox_a_AR) lib16_kokkos_toolbox.a $(lib16_kokkos_toolbox_a_OBJECTS) $(lib16_kokkos_toolbox_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib16_kokkos_toolbox.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/kokkos_utils.Po # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.o:
+ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CXX)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CXX)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/kokkos_utils.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/kokkos_utils.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/Makefile.am b/GX-PAW/common/src/16_kokkos_toolbox/Makefile.am
new file mode 100644
index 00000000..742a9694
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/Makefile.am
@@ -0,0 +1,52 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_16_kokkos_toolbox@
+
+AM_CPPFLAGS = \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_gpu_cppflags@ \
+ @sd_gpu_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib16_kokkos_toolbox_srcs = \
+ kokkos_utils.cpp \
+ m_kokkos_utils.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib16_kokkos_toolbox.a
+
+lib16_kokkos_toolbox_a_SOURCES= $(lib16_kokkos_toolbox_srcs)
+
+CLEANFILES = \
+ m_kokkos_utils_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 16_kokkos_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_kokkos_utils.$(MODEXT)
+
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/Makefile.in b/GX-PAW/common/src/16_kokkos_toolbox/Makefile.in
new file mode 100644
index 00000000..7b3270d1
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/Makefile.in
@@ -0,0 +1,1507 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/16_kokkos_toolbox
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib16_kokkos_toolbox_a_AR = $(AR) $(ARFLAGS)
+lib16_kokkos_toolbox_a_LIBADD =
+am__objects_1 = kokkos_utils.$(OBJEXT) m_kokkos_utils.$(OBJEXT)
+am_lib16_kokkos_toolbox_a_OBJECTS = $(am__objects_1)
+lib16_kokkos_toolbox_a_OBJECTS = $(am_lib16_kokkos_toolbox_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/kokkos_utils.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib16_kokkos_toolbox_a_SOURCES)
+DIST_SOURCES = $(lib16_kokkos_toolbox_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_16_kokkos_toolbox@
+AM_CPPFLAGS = \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_gpu_cppflags@ \
+ @sd_gpu_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib16_kokkos_toolbox_srcs = \
+ kokkos_utils.cpp \
+ m_kokkos_utils.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib16_kokkos_toolbox.a
+lib16_kokkos_toolbox_a_SOURCES = $(lib16_kokkos_toolbox_srcs)
+
+# Dependencies (inside the directory) of directory 16_kokkos_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_kokkos_utils_cpp.f90 m_kokkos_utils.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .cpp .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/16_kokkos_toolbox/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/16_kokkos_toolbox/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib16_kokkos_toolbox.a: $(lib16_kokkos_toolbox_a_OBJECTS) $(lib16_kokkos_toolbox_a_DEPENDENCIES) $(EXTRA_lib16_kokkos_toolbox_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib16_kokkos_toolbox.a
+ $(AM_V_AR)$(lib16_kokkos_toolbox_a_AR) lib16_kokkos_toolbox.a $(lib16_kokkos_toolbox_a_OBJECTS) $(lib16_kokkos_toolbox_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib16_kokkos_toolbox.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kokkos_utils.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/kokkos_utils.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/kokkos_utils.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/16_kokkos_toolbox/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..f7f69177
Binary files /dev/null and b/GX-PAW/common/src/16_kokkos_toolbox/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/abinit.dep b/GX-PAW/common/src/16_kokkos_toolbox/abinit.dep
new file mode 100644
index 00000000..092146f9
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/abinit.dep
@@ -0,0 +1,9 @@
+# Dependencies (inside the directory) of directory 16_kokkos_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_kokkos_utils.$(MODEXT)
+
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/abinit.dir b/GX-PAW/common/src/16_kokkos_toolbox/abinit.dir
new file mode 100644
index 00000000..77e9205a
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 16_kokkos_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+[]
\ No newline at end of file
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/abinit.src b/GX-PAW/common/src/16_kokkos_toolbox/abinit.src
new file mode 100644
index 00000000..e33e66ed
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/abinit.src
@@ -0,0 +1,25 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the manage_kokkos library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "kokkos_utils.cpp",
+ "m_kokkos_utils.F90",
+]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/kokkos_utils.cpp b/GX-PAW/common/src/16_kokkos_toolbox/kokkos_utils.cpp
new file mode 100644
index 00000000..8ca48896
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/kokkos_utils.cpp
@@ -0,0 +1,50 @@
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include
+#include
+#include
+#include
+#include
+
+extern "C" {
+
+ void c_abinit_kokkos_print_config()
+ {
+
+ std::cout << "##########################\n";
+ std::cout << "KOKKOS CONFIG \n";
+ std::cout << "##########################\n";
+
+ std::ostringstream msg;
+ std::cout << "Kokkos configuration" << std::endl;
+ if ( Kokkos::hwloc::available() ) {
+ msg << "hwloc( NUMA[" << Kokkos::hwloc::get_available_numa_count()
+ << "] x CORE[" << Kokkos::hwloc::get_available_cores_per_numa()
+ << "] x HT[" << Kokkos::hwloc::get_available_threads_per_core()
+ << "] )"
+ << std::endl ;
+ }
+ //Kokkos::print_configuration( msg );
+ std::cout << msg.str() << "##########################\n" << std::flush;
+
+ } // c_abinit_kokkos_print_config
+
+ void c_kokkos_initialize(int *argc, char **argv) {
+ Kokkos::initialize(*argc, argv);
+ }
+
+ void c_kokkos_initialize_without_args() {
+ Kokkos::initialize();
+ }
+
+ void c_kokkos_finalize() {
+ Kokkos::finalize();
+ }
+
+ bool c_kokkos_is_initialized() {
+ return Kokkos::is_initialized();
+ }
+
+} // extern "C"
diff --git a/GX-PAW/common/src/16_kokkos_toolbox/m_kokkos_utils.F90 b/GX-PAW/common/src/16_kokkos_toolbox/m_kokkos_utils.F90
new file mode 100644
index 00000000..046463a1
--- /dev/null
+++ b/GX-PAW/common/src/16_kokkos_toolbox/m_kokkos_utils.F90
@@ -0,0 +1,148 @@
+!
+!
+!
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+#ifdef HAVE_KOKKOS
+
+module m_kokkos_utils
+
+ use, intrinsic :: iso_c_binding
+ use, intrinsic :: iso_fortran_env
+
+ implicit none
+
+ private
+
+ public :: &
+ & abinit_kokkos_print_config, &
+ & kokkos_initialize, &
+ & kokkos_initialize_without_args, &
+ & kokkos_finalize
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! Kokkos interface
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ interface
+ subroutine f_kokkos_print_config() &
+ & bind(c, name="c_abinit_kokkos_print_config")
+ use, intrinsic :: iso_c_binding
+ implicit none
+ end subroutine f_kokkos_print_config
+ end interface
+
+ interface
+ subroutine f_kokkos_initialize(argc, argv) &
+ & bind(c, name="c_kokkos_initialize")
+ use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+ integer(c_int), intent(inout) :: argc
+ type(c_ptr), value :: argv
+ end subroutine f_kokkos_initialize
+ end interface
+
+ interface
+ subroutine f_kokkos_initialize_without_args() &
+ bind(c, name='c_kokkos_initialize_without_args')
+ use, intrinsic :: iso_c_binding
+ implicit none
+ end subroutine f_kokkos_initialize_without_args
+ end interface
+
+ interface
+ subroutine f_kokkos_finalize() &
+ & bind(c, name="c_kokkos_finalize")
+ end subroutine f_kokkos_finalize
+ end interface
+
+ interface
+ function f_kokkos_is_initialized() result(is_init) &
+ & bind(c, name='c_kokkos_is_initialized')
+ use, intrinsic :: iso_c_binding
+ implicit none
+ logical(c_bool) :: is_init
+ end function f_kokkos_is_initialized
+ end interface
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+contains
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ subroutine abinit_kokkos_print_config()
+ use, intrinsic :: iso_c_binding
+ implicit none
+ call f_kokkos_print_config()
+ end subroutine abinit_kokkos_print_config
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ subroutine kokkos_initialize()
+ use, intrinsic :: iso_c_binding
+ implicit none
+ integer :: arg_count, max_length = 0, str_length, n, cli_count
+ character(kind=c_char, len=:), allocatable :: str
+ character(kind=c_char), allocatable, target :: strs_array(:,:)
+ type(c_ptr), allocatable, target :: c_strs(:)
+
+ arg_count = command_argument_count()
+ ! include command name
+ do n = 0, arg_count
+ call get_command_argument(n, length=str_length)
+ max_length = max(max_length, str_length)
+ end do
+
+ ABI_MALLOC(strs_array, (1:max_length + 1, 0:arg_count))
+ ABI_MALLOC(c_strs, (0:arg_count))
+ ABI_MALLOC_TYPE_SCALAR(character(max_length),str)
+
+ do n = 0, arg_count
+ call get_command_argument(n, value=str, length=str_length)
+ strs_array(1:str_length, n) = transfer(str, ' ', size=str_length)
+ strs_array(str_length+1, n) = c_null_char
+ c_strs(n) = c_loc(strs_array(:,n))
+ end do
+
+ cli_count = arg_count + 1
+ if( cli_count .le. 0 ) then
+ ! must call the without_args variant or get array-oob error
+ call f_kokkos_initialize_without_args()
+ else
+ call f_kokkos_initialize(cli_count, c_loc(c_strs(0)))
+ endif
+
+ ABI_FREE(strs_array)
+ ABI_FREE(c_strs)
+ ABI_FREE(str)
+
+ end subroutine kokkos_initialize
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ subroutine kokkos_initialize_without_args()
+ use, intrinsic :: iso_c_binding
+ implicit none
+ call f_kokkos_initialize_without_args()
+ end subroutine kokkos_initialize_without_args
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ subroutine kokkos_finalize()
+ use, intrinsic :: iso_c_binding
+ implicit none
+ call f_kokkos_finalize
+ end subroutine kokkos_finalize
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ function kokkos_is_initialized() result(is_init)
+ use, intrinsic :: iso_c_binding
+ implicit none
+ logical :: is_init
+ logical(c_bool) :: c_is_init
+ c_is_init = f_kokkos_is_initialized()
+ is_init = logical(c_is_init)
+ end function kokkos_is_initialized
+
+end module m_kokkos_utils
+
+#endif
diff --git a/GX-PAW/common/src/17_gpu_toolbox/.deps/dev_spec.Po b/GX-PAW/common/src/17_gpu_toolbox/.deps/dev_spec.Po
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/.deps/dev_spec.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_fft.Po b/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_fft.Po
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_fft.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_linalg.Po b/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_linalg.Po
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/.deps/gpu_linalg.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/GX-PAW/common/src/17_gpu_toolbox/.deps/timing.Po b/GX-PAW/common/src/17_gpu_toolbox/.deps/timing.Po
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/.deps/timing.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/GX-PAW/common/src/17_gpu_toolbox/Makefile b/GX-PAW/common/src/17_gpu_toolbox/Makefile
new file mode 100644
index 00000000..27628b9f
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/Makefile
@@ -0,0 +1,1565 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/17_gpu_toolbox/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/17_gpu_toolbox
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_gpu_toolbox_a_AR = $(AR) $(ARFLAGS)
+lib17_gpu_toolbox_a_LIBADD =
+am__objects_1 = dev_spec.$(OBJEXT) gpu_fft.$(OBJEXT) \
+ gpu_linalg.$(OBJEXT) m_gpu_detect.$(OBJEXT) \
+ m_gpu_toolbox.$(OBJEXT) m_initcuda.$(OBJEXT) m_nvtx.$(OBJEXT) \
+ timing.$(OBJEXT)
+am_lib17_gpu_toolbox_a_OBJECTS = $(am__objects_1)
+lib17_gpu_toolbox_a_OBJECTS = $(am_lib17_gpu_toolbox_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/dev_spec.Po ./$(DEPDIR)/gpu_fft.Po \
+ ./$(DEPDIR)/gpu_linalg.Po ./$(DEPDIR)/timing.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_$(V))
+am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_CXXLD = $(am__v_CXXLD_$(V))
+am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_gpu_toolbox_a_SOURCES)
+DIST_SOURCES = $(lib17_gpu_toolbox_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_gpu_toolbox
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_gpu_toolbox
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi \
+ -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite \
+ -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox \
+ -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ \
+ \
+ \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib17_gpu_toolbox_srcs = \
+ dev_spec.cpp \
+ gpu_fft.cpp \
+ gpu_linalg.cpp \
+ m_gpu_detect.F90 \
+ m_gpu_toolbox.F90 \
+ m_initcuda.F90 \
+ m_nvtx.F90 \
+ timing.cpp
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_gpu_toolbox.a
+lib17_gpu_toolbox_a_SOURCES = $(lib17_gpu_toolbox_srcs)
+
+# Dependencies (inside the directory) of directory 17_gpu_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_gpu_detect_cpp.f90 m_gpu_toolbox_cpp.f90 \
+ m_initcuda_cpp.f90 m_nvtx_cpp.f90 m_gpu_detect.$(MODEXT) \
+ m_gpu_toolbox.$(MODEXT) m_initcuda.$(MODEXT) m_nvtx.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf $(h_list) $(cpp_list) \
+ _17_gpu_toolbox_
+h_list = \
+ abi_gpu_header_common.h \
+ cuda_api_error_check.h \
+ hip_api_error_check.h \
+ gpu_fft.h \
+ gpu_linalg.h
+
+cpp_list = \
+ dev_spec_cuda.cpp \
+ dev_spec_hip.cpp \
+ gpu_fft_cuda.cpp \
+ gpu_fft_hip.cpp \
+ gpu_linalg_cuda.cpp \
+ gpu_linalg_hip.cpp \
+ timing_cuda.cpp \
+ timing_hip.cpp
+
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib17_gpu_toolbox_a_DEPENDENCIES = $(h_list) $(cpp_list)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .cpp .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_gpu_toolbox/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_gpu_toolbox/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_gpu_toolbox.a: $(lib17_gpu_toolbox_a_OBJECTS) $(lib17_gpu_toolbox_a_DEPENDENCIES) $(EXTRA_lib17_gpu_toolbox_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_gpu_toolbox.a
+ $(AM_V_AR)$(lib17_gpu_toolbox_a_AR) lib17_gpu_toolbox.a $(lib17_gpu_toolbox_a_OBJECTS) $(lib17_gpu_toolbox_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_gpu_toolbox.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/dev_spec.Po # am--include-marker
+include ./$(DEPDIR)/gpu_fft.Po # am--include-marker
+include ./$(DEPDIR)/gpu_linalg.Po # am--include-marker
+include ./$(DEPDIR)/timing.Po # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.o:
+ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CXX)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CXX)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/dev_spec.Po
+ -rm -f ./$(DEPDIR)/gpu_fft.Po
+ -rm -f ./$(DEPDIR)/gpu_linalg.Po
+ -rm -f ./$(DEPDIR)/timing.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/dev_spec.Po
+ -rm -f ./$(DEPDIR)/gpu_fft.Po
+ -rm -f ./$(DEPDIR)/gpu_linalg.Po
+ -rm -f ./$(DEPDIR)/timing.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_gpu_detect.$(OBJEXT): m_initcuda.$(OBJEXT)
+
+m_gpu_toolbox.$(OBJEXT): m_gpu_detect.$(OBJEXT) m_initcuda.$(OBJEXT)
+
+dev_spec.$(OBJEXT): dev_spec.cpp
+gpu_fft.$(OBJEXT): gpu_fft.cpp
+gpu_linalg.$(OBJEXT): gpu_linalg.cpp
+timing.$(OBJEXT): timing.cpp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_gpu_toolbox/Makefile.am b/GX-PAW/common/src/17_gpu_toolbox/Makefile.am
new file mode 100644
index 00000000..adbba87e
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/Makefile.am
@@ -0,0 +1,104 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_gpu_toolbox@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_kokkos_toolbox_fcflags@ \
+ @src_17_gpu_toolbox_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_gpu_cppflags@ \
+ @sd_gpu_fcflags@ \
+ @sd_linalg_cppflags@ \
+ @sd_linalg_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib17_gpu_toolbox_srcs = \
+ dev_spec.cpp \
+ gpu_fft.cpp \
+ gpu_linalg.cpp \
+ m_gpu_detect.F90 \
+ m_gpu_toolbox.F90 \
+ m_initcuda.F90 \
+ m_nvtx.F90 \
+ timing.cpp
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib17_gpu_toolbox.a
+
+lib17_gpu_toolbox_a_SOURCES= $(lib17_gpu_toolbox_srcs)
+
+CLEANFILES = \
+ m_gpu_detect_cpp.f90 \
+ m_gpu_toolbox_cpp.f90 \
+ m_initcuda_cpp.f90 \
+ m_nvtx_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 17_gpu_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_gpu_detect.$(MODEXT) \
+ m_gpu_toolbox.$(MODEXT) \
+ m_initcuda.$(MODEXT) \
+ m_nvtx.$(MODEXT)
+
+m_gpu_detect.$(OBJEXT): m_initcuda.$(OBJEXT)
+
+m_gpu_toolbox.$(OBJEXT): m_gpu_detect.$(OBJEXT) m_initcuda.$(OBJEXT)
+EXTRA_DIST += abinit.amf
+
+h_list = \
+ abi_gpu_header_common.h \
+ cuda_api_error_check.h \
+ hip_api_error_check.h \
+ gpu_fft.h \
+ gpu_linalg.h
+
+cpp_list = \
+ dev_spec_cuda.cpp \
+ dev_spec_hip.cpp \
+ gpu_fft_cuda.cpp \
+ gpu_fft_hip.cpp \
+ gpu_linalg_cuda.cpp \
+ gpu_linalg_hip.cpp \
+ timing_cuda.cpp \
+ timing_hip.cpp
+
+EXTRA_DIST += $(h_list) $(cpp_list)
+
+dev_spec.$(OBJEXT): dev_spec.cpp
+gpu_fft.$(OBJEXT): gpu_fft.cpp
+gpu_linalg.$(OBJEXT): gpu_linalg.cpp
+timing.$(OBJEXT): timing.cpp
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib17_gpu_toolbox_a_DEPENDENCIES = $(h_list) $(cpp_list)
+
+EXTRA_DIST += _17_gpu_toolbox_
diff --git a/GX-PAW/common/src/17_gpu_toolbox/Makefile.in b/GX-PAW/common/src/17_gpu_toolbox/Makefile.in
new file mode 100644
index 00000000..e827e784
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/Makefile.in
@@ -0,0 +1,1565 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/17_gpu_toolbox
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_gpu_toolbox_a_AR = $(AR) $(ARFLAGS)
+lib17_gpu_toolbox_a_LIBADD =
+am__objects_1 = dev_spec.$(OBJEXT) gpu_fft.$(OBJEXT) \
+ gpu_linalg.$(OBJEXT) m_gpu_detect.$(OBJEXT) \
+ m_gpu_toolbox.$(OBJEXT) m_initcuda.$(OBJEXT) m_nvtx.$(OBJEXT) \
+ timing.$(OBJEXT)
+am_lib17_gpu_toolbox_a_OBJECTS = $(am__objects_1)
+lib17_gpu_toolbox_a_OBJECTS = $(am_lib17_gpu_toolbox_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/dev_spec.Po ./$(DEPDIR)/gpu_fft.Po \
+ ./$(DEPDIR)/gpu_linalg.Po ./$(DEPDIR)/timing.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_gpu_toolbox_a_SOURCES)
+DIST_SOURCES = $(lib17_gpu_toolbox_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_gpu_toolbox@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_kokkos_toolbox_fcflags@ \
+ @src_17_gpu_toolbox_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_gpu_cppflags@ \
+ @sd_gpu_fcflags@ \
+ @sd_linalg_cppflags@ \
+ @sd_linalg_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib17_gpu_toolbox_srcs = \
+ dev_spec.cpp \
+ gpu_fft.cpp \
+ gpu_linalg.cpp \
+ m_gpu_detect.F90 \
+ m_gpu_toolbox.F90 \
+ m_initcuda.F90 \
+ m_nvtx.F90 \
+ timing.cpp
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_gpu_toolbox.a
+lib17_gpu_toolbox_a_SOURCES = $(lib17_gpu_toolbox_srcs)
+
+# Dependencies (inside the directory) of directory 17_gpu_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = m_gpu_detect_cpp.f90 m_gpu_toolbox_cpp.f90 \
+ m_initcuda_cpp.f90 m_nvtx_cpp.f90 m_gpu_detect.$(MODEXT) \
+ m_gpu_toolbox.$(MODEXT) m_initcuda.$(MODEXT) m_nvtx.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf $(h_list) $(cpp_list) \
+ _17_gpu_toolbox_
+h_list = \
+ abi_gpu_header_common.h \
+ cuda_api_error_check.h \
+ hip_api_error_check.h \
+ gpu_fft.h \
+ gpu_linalg.h
+
+cpp_list = \
+ dev_spec_cuda.cpp \
+ dev_spec_hip.cpp \
+ gpu_fft_cuda.cpp \
+ gpu_fft_hip.cpp \
+ gpu_linalg_cuda.cpp \
+ gpu_linalg_hip.cpp \
+ timing_cuda.cpp \
+ timing_hip.cpp
+
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib17_gpu_toolbox_a_DEPENDENCIES = $(h_list) $(cpp_list)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .cpp .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_gpu_toolbox/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_gpu_toolbox/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_gpu_toolbox.a: $(lib17_gpu_toolbox_a_OBJECTS) $(lib17_gpu_toolbox_a_DEPENDENCIES) $(EXTRA_lib17_gpu_toolbox_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_gpu_toolbox.a
+ $(AM_V_AR)$(lib17_gpu_toolbox_a_AR) lib17_gpu_toolbox.a $(lib17_gpu_toolbox_a_OBJECTS) $(lib17_gpu_toolbox_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_gpu_toolbox.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev_spec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpu_fft.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpu_linalg.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timing.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/dev_spec.Po
+ -rm -f ./$(DEPDIR)/gpu_fft.Po
+ -rm -f ./$(DEPDIR)/gpu_linalg.Po
+ -rm -f ./$(DEPDIR)/timing.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/dev_spec.Po
+ -rm -f ./$(DEPDIR)/gpu_fft.Po
+ -rm -f ./$(DEPDIR)/gpu_linalg.Po
+ -rm -f ./$(DEPDIR)/timing.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_gpu_detect.$(OBJEXT): m_initcuda.$(OBJEXT)
+
+m_gpu_toolbox.$(OBJEXT): m_gpu_detect.$(OBJEXT) m_initcuda.$(OBJEXT)
+
+dev_spec.$(OBJEXT): dev_spec.cpp
+gpu_fft.$(OBJEXT): gpu_fft.cpp
+gpu_linalg.$(OBJEXT): gpu_linalg.cpp
+timing.$(OBJEXT): timing.cpp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_gpu_toolbox/_17_gpu_toolbox_ b/GX-PAW/common/src/17_gpu_toolbox/_17_gpu_toolbox_
new file mode 100644
index 00000000..8103f90b
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/_17_gpu_toolbox_
@@ -0,0 +1,21 @@
+!!****d* ABINIT/17_gpu_toolbox
+!! NAME
+!! 17_gpu_toolbox
+!!
+!! DESCRIPTION
+!! FIXME: Description is missing
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! m_gpu_toolbox.F90
+!! m_gpu_detect.F90
+!! m_initcuda.F90
+!! m_nvtx.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/17_gpu_toolbox/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/17_gpu_toolbox/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..a61b72b2
Binary files /dev/null and b/GX-PAW/common/src/17_gpu_toolbox/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/17_gpu_toolbox/abi_gpu_header_common.h b/GX-PAW/common/src/17_gpu_toolbox/abi_gpu_header_common.h
new file mode 100644
index 00000000..54a7fe1b
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/abi_gpu_header_common.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2008-2024 ABINIT Group
+ *
+ * This file is part of the ABINIT software package. For license information,
+ * please see the COPYING file in the top-level directory of the ABINIT source
+ * distribution.
+ *
+ */
+
+#ifndef ABI_GPU_HEADER_COMMON_H
+#define ABI_GPU_HEADER_COMMON_H
+
+//Interfaces
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ void abi_cabort();
+ void check_gpu_mem_(const char* str);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ABI_GPU_HEADER_COMMON_H */
diff --git a/GX-PAW/common/src/17_gpu_toolbox/abinit.amf b/GX-PAW/common/src/17_gpu_toolbox/abinit.amf
new file mode 100644
index 00000000..3575b6ef
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/abinit.amf
@@ -0,0 +1,26 @@
+h_list = \
+ abi_gpu_header_common.h \
+ cuda_api_error_check.h \
+ hip_api_error_check.h \
+ gpu_fft.h \
+ gpu_linalg.h
+
+cpp_list = \
+ dev_spec_cuda.cpp \
+ dev_spec_hip.cpp \
+ gpu_fft_cuda.cpp \
+ gpu_fft_hip.cpp \
+ gpu_linalg_cuda.cpp \
+ gpu_linalg_hip.cpp \
+ timing_cuda.cpp \
+ timing_hip.cpp
+
+EXTRA_DIST += $(h_list) $(cpp_list)
+
+dev_spec.$(OBJEXT): dev_spec.cpp
+gpu_fft.$(OBJEXT): gpu_fft.cpp
+gpu_linalg.$(OBJEXT): gpu_linalg.cpp
+timing.$(OBJEXT): timing.cpp
+
+# make sure lib12_hide_mpi is recompiled if any file from finc_list is modified
+lib17_gpu_toolbox_a_DEPENDENCIES = $(h_list) $(cpp_list)
diff --git a/GX-PAW/common/src/17_gpu_toolbox/abinit.dep b/GX-PAW/common/src/17_gpu_toolbox/abinit.dep
new file mode 100644
index 00000000..29f9fe72
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/abinit.dep
@@ -0,0 +1,15 @@
+# Dependencies (inside the directory) of directory 17_gpu_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_gpu_detect.$(MODEXT) \
+ m_gpu_toolbox.$(MODEXT) \
+ m_initcuda.$(MODEXT) \
+ m_nvtx.$(MODEXT)
+
+m_gpu_detect.$(OBJEXT): m_initcuda.$(OBJEXT)
+
+m_gpu_toolbox.$(OBJEXT): m_gpu_detect.$(OBJEXT) m_initcuda.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_gpu_toolbox/abinit.dir b/GX-PAW/common/src/17_gpu_toolbox/abinit.dir
new file mode 100644
index 00000000..3990cdc0
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/abinit.dir
@@ -0,0 +1,12 @@
+# Dependencies (outside the directory) of directory 17_gpu_toolbox
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs',
+ '12_hide_mpi',
+ '14_hidewrite',
+ '16_kokkos_toolbox',
+ '17_gpu_toolbox']
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_gpu_toolbox/abinit.src b/GX-PAW/common/src/17_gpu_toolbox/abinit.src
new file mode 100644
index 00000000..c41381d5
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/abinit.src
@@ -0,0 +1,34 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 67_recursion library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "dev_spec.cpp",
+ "gpu_fft.cpp",
+ "gpu_linalg.cpp",
+ "m_gpu_detect.F90",
+ "m_gpu_toolbox.F90",
+ "m_initcuda.F90",
+ "m_nvtx.F90",
+ "timing.cpp"
+]
+
+
+
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/17_gpu_toolbox/cuda_api_error_check.h b/GX-PAW/common/src/17_gpu_toolbox/cuda_api_error_check.h
new file mode 100644
index 00000000..756b6899
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/cuda_api_error_check.h
@@ -0,0 +1,557 @@
+/**
+ * CUDA API error checking utilities.
+ *
+ * This header is slightly adapted from cuda samples
+ * https://github.com/Nvidia/cuda-samples
+ *
+ * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of NVIDIA CORPORATION nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef CUDA_API_ERROR_CHECK_H_
+#define CUDA_API_ERROR_CHECK_H_
+
+#pragma once
+
+#include
+#include
+#include
+#include // for fflush
+#include
+
+#ifndef assertm
+#define assertm(exp, msg) assert(((void)msg, exp))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ // this is defined in shared/common/src/16_hideleave/m_errors.F90
+ void abi_cabort();
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifndef CUDA_UNUSED
+#define CUDA_UNUSED(x) ((void)(x))
+#endif
+
+// when this header is used inside abinit, call abi_cabort when an error happens
+// otherwise, do a regular exit
+// we assume here that if config.h (from abinit is included first, then ABINIT_VERSION will be defined)
+#ifdef ABINIT_VERSION
+#define ABORT() abi_cabort()
+#else
+#define ABORT() { \
+ exit(EXIT_FAILURE); \
+ }
+#endif
+
+
+/*
+ * If symbol ALWAYS_SYNC_GPU is defined in your build system
+ * then we will always call cudaDeviceSynchronize, before checking
+ * last error from a cuda kernel call.
+ *
+ * It may help in case of debugging to define ALWAYS_SYNC_GPU, but for a
+ * regular run, it should remains to 0.
+ *
+ * Note: you can also enforce syncing CPU/GPU by set environment variable CUDA_LAUNCH_BLOCKING to 1
+ *
+ * See also: https://www.olcf.ornl.gov/wp-content/uploads/2021/06/cuda_training_series_cuda_debugging.pdf
+ */
+#ifdef ALWAYS_SYNC_GPU
+#define FORCE_SYNC_GPU 1
+#else
+#define FORCE_SYNC_GPU 0
+#endif
+
+
+// CUDA Runtime error messages
+#ifdef __DRIVER_TYPES_H__
+static const char *_cudaGetErrorEnum(cudaError_t error) {
+ return cudaGetErrorName(error);
+}
+#endif
+
+#ifdef CUDA_DRIVER_API
+// CUDA Driver API errors
+static const char *_cudaGetErrorEnum(CUresult error) {
+ static char unknown[] = "";
+ const char *ret = NULL;
+ cuGetErrorName(error, &ret);
+ return ret ? ret : unknown;
+}
+#endif
+
+#ifdef CUBLAS_API_H_
+// cuBLAS API errors
+static const char *_cudaGetErrorEnum(cublasStatus_t error) {
+ switch (error) {
+ case CUBLAS_STATUS_SUCCESS:
+ return "CUBLAS_STATUS_SUCCESS";
+
+ case CUBLAS_STATUS_NOT_INITIALIZED:
+ return "CUBLAS_STATUS_NOT_INITIALIZED";
+
+ case CUBLAS_STATUS_ALLOC_FAILED:
+ return "CUBLAS_STATUS_ALLOC_FAILED";
+
+ case CUBLAS_STATUS_INVALID_VALUE:
+ return "CUBLAS_STATUS_INVALID_VALUE";
+
+ case CUBLAS_STATUS_ARCH_MISMATCH:
+ return "CUBLAS_STATUS_ARCH_MISMATCH";
+
+ case CUBLAS_STATUS_MAPPING_ERROR:
+ return "CUBLAS_STATUS_MAPPING_ERROR";
+
+ case CUBLAS_STATUS_EXECUTION_FAILED:
+ return "CUBLAS_STATUS_EXECUTION_FAILED";
+
+ case CUBLAS_STATUS_INTERNAL_ERROR:
+ return "CUBLAS_STATUS_INTERNAL_ERROR";
+
+ case CUBLAS_STATUS_NOT_SUPPORTED:
+ return "CUBLAS_STATUS_NOT_SUPPORTED";
+
+ case CUBLAS_STATUS_LICENSE_ERROR:
+ return "CUBLAS_STATUS_LICENSE_ERROR";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef _CUFFT_H_
+// cuFFT API errors
+static const char *_cudaGetErrorEnum(cufftResult error) {
+ switch (error) {
+ case CUFFT_SUCCESS:
+ return "CUFFT_SUCCESS";
+
+ case CUFFT_INVALID_PLAN:
+ return "CUFFT_INVALID_PLAN";
+
+ case CUFFT_ALLOC_FAILED:
+ return "CUFFT_ALLOC_FAILED";
+
+ case CUFFT_INVALID_TYPE:
+ return "CUFFT_INVALID_TYPE";
+
+ case CUFFT_INVALID_VALUE:
+ return "CUFFT_INVALID_VALUE";
+
+ case CUFFT_INTERNAL_ERROR:
+ return "CUFFT_INTERNAL_ERROR";
+
+ case CUFFT_EXEC_FAILED:
+ return "CUFFT_EXEC_FAILED";
+
+ case CUFFT_SETUP_FAILED:
+ return "CUFFT_SETUP_FAILED";
+
+ case CUFFT_INVALID_SIZE:
+ return "CUFFT_INVALID_SIZE";
+
+ case CUFFT_UNALIGNED_DATA:
+ return "CUFFT_UNALIGNED_DATA";
+
+ case CUFFT_INCOMPLETE_PARAMETER_LIST:
+ return "CUFFT_INCOMPLETE_PARAMETER_LIST";
+
+ case CUFFT_INVALID_DEVICE:
+ return "CUFFT_INVALID_DEVICE";
+
+ case CUFFT_PARSE_ERROR:
+ return "CUFFT_PARSE_ERROR";
+
+ case CUFFT_NO_WORKSPACE:
+ return "CUFFT_NO_WORKSPACE";
+
+ case CUFFT_NOT_IMPLEMENTED:
+ return "CUFFT_NOT_IMPLEMENTED";
+
+ case CUFFT_LICENSE_ERROR:
+ return "CUFFT_LICENSE_ERROR";
+
+ case CUFFT_NOT_SUPPORTED:
+ return "CUFFT_NOT_SUPPORTED";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef CUSPARSEAPI
+// cuSPARSE API errors
+static const char *_cudaGetErrorEnum(cusparseStatus_t error) {
+ switch (error) {
+ case CUSPARSE_STATUS_SUCCESS:
+ return "CUSPARSE_STATUS_SUCCESS";
+
+ case CUSPARSE_STATUS_NOT_INITIALIZED:
+ return "CUSPARSE_STATUS_NOT_INITIALIZED";
+
+ case CUSPARSE_STATUS_ALLOC_FAILED:
+ return "CUSPARSE_STATUS_ALLOC_FAILED";
+
+ case CUSPARSE_STATUS_INVALID_VALUE:
+ return "CUSPARSE_STATUS_INVALID_VALUE";
+
+ case CUSPARSE_STATUS_ARCH_MISMATCH:
+ return "CUSPARSE_STATUS_ARCH_MISMATCH";
+
+ case CUSPARSE_STATUS_MAPPING_ERROR:
+ return "CUSPARSE_STATUS_MAPPING_ERROR";
+
+ case CUSPARSE_STATUS_EXECUTION_FAILED:
+ return "CUSPARSE_STATUS_EXECUTION_FAILED";
+
+ case CUSPARSE_STATUS_INTERNAL_ERROR:
+ return "CUSPARSE_STATUS_INTERNAL_ERROR";
+
+ case CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED:
+ return "CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef CUSOLVER_COMMON_H_
+// cuSOLVER API errors
+static const char *_cudaGetErrorEnum(cusolverStatus_t error) {
+ switch (error) {
+ case CUSOLVER_STATUS_SUCCESS:
+ return "CUSOLVER_STATUS_SUCCESS";
+ case CUSOLVER_STATUS_NOT_INITIALIZED:
+ return "CUSOLVER_STATUS_NOT_INITIALIZED";
+ case CUSOLVER_STATUS_ALLOC_FAILED:
+ return "CUSOLVER_STATUS_ALLOC_FAILED";
+ case CUSOLVER_STATUS_INVALID_VALUE:
+ return "CUSOLVER_STATUS_INVALID_VALUE";
+ case CUSOLVER_STATUS_ARCH_MISMATCH:
+ return "CUSOLVER_STATUS_ARCH_MISMATCH";
+ case CUSOLVER_STATUS_MAPPING_ERROR:
+ return "CUSOLVER_STATUS_MAPPING_ERROR";
+ case CUSOLVER_STATUS_EXECUTION_FAILED:
+ return "CUSOLVER_STATUS_EXECUTION_FAILED";
+ case CUSOLVER_STATUS_INTERNAL_ERROR:
+ return "CUSOLVER_STATUS_INTERNAL_ERROR";
+ case CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED:
+ return "CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED";
+ case CUSOLVER_STATUS_NOT_SUPPORTED:
+ return "CUSOLVER_STATUS_NOT_SUPPORTED ";
+ case CUSOLVER_STATUS_ZERO_PIVOT:
+ return "CUSOLVER_STATUS_ZERO_PIVOT";
+ case CUSOLVER_STATUS_INVALID_LICENSE:
+ return "CUSOLVER_STATUS_INVALID_LICENSE";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef CURAND_H_
+// cuRAND API errors
+static const char *_cudaGetErrorEnum(curandStatus_t error) {
+ switch (error) {
+ case CURAND_STATUS_SUCCESS:
+ return "CURAND_STATUS_SUCCESS";
+
+ case CURAND_STATUS_VERSION_MISMATCH:
+ return "CURAND_STATUS_VERSION_MISMATCH";
+
+ case CURAND_STATUS_NOT_INITIALIZED:
+ return "CURAND_STATUS_NOT_INITIALIZED";
+
+ case CURAND_STATUS_ALLOCATION_FAILED:
+ return "CURAND_STATUS_ALLOCATION_FAILED";
+
+ case CURAND_STATUS_TYPE_ERROR:
+ return "CURAND_STATUS_TYPE_ERROR";
+
+ case CURAND_STATUS_OUT_OF_RANGE:
+ return "CURAND_STATUS_OUT_OF_RANGE";
+
+ case CURAND_STATUS_LENGTH_NOT_MULTIPLE:
+ return "CURAND_STATUS_LENGTH_NOT_MULTIPLE";
+
+ case CURAND_STATUS_DOUBLE_PRECISION_REQUIRED:
+ return "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED";
+
+ case CURAND_STATUS_LAUNCH_FAILURE:
+ return "CURAND_STATUS_LAUNCH_FAILURE";
+
+ case CURAND_STATUS_PREEXISTING_FAILURE:
+ return "CURAND_STATUS_PREEXISTING_FAILURE";
+
+ case CURAND_STATUS_INITIALIZATION_FAILED:
+ return "CURAND_STATUS_INITIALIZATION_FAILED";
+
+ case CURAND_STATUS_ARCH_MISMATCH:
+ return "CURAND_STATUS_ARCH_MISMATCH";
+
+ case CURAND_STATUS_INTERNAL_ERROR:
+ return "CURAND_STATUS_INTERNAL_ERROR";
+ }
+
+ return "";
+}
+#endif
+
+template
+void check_cuda_error(T result, char const *const func, const char *const file,
+ int const line) {
+ if (result) {
+ fprintf(stderr, "CUDA error at %s:%d code=%d(%s) \"%s\" \n", file, line,
+ static_cast(result), _cudaGetErrorEnum(result), func);
+ ABORT();
+ }
+}
+
+#ifdef __DRIVER_TYPES_H__
+// This will output the proper CUDA error strings in the event
+// that a CUDA host call returns an error
+#define CHECK_CUDA_ERROR(value) check_cuda_error((value), #value, __FILE__, __LINE__)
+#define CUDA_API_CHECK(value) CHECK_CUDA_ERROR(value)
+
+
+// This will output the proper error string when calling cudaGetLastError
+#define getLastCudaError(msg) __getLastCudaError(msg, __FILE__, __LINE__)
+#define GET_LAST_CUDA_ERROR(msg) getLastCudaError(msg)
+
+inline void __getLastCudaError(const char *errorMessage, const char *file,
+ const int line) {
+ cudaError_t err = cudaGetLastError();
+
+ if (cudaSuccess != err) {
+ fprintf(stderr,
+ "%s(%i) : getLastCudaError() CUDA error :"
+ " %s : (%d) %s.\n",
+ file, line, errorMessage, static_cast(err),
+ cudaGetErrorString(err));
+
+ // Make sure we call CUDA Device Reset before exiting
+ cudaDeviceReset();
+
+ ABORT();
+ }
+}
+
+// This will only print the proper error string when calling cudaGetLastError
+// but not exit program incase error detected.
+#define printLastCudaError(msg) __printLastCudaError(msg, __FILE__, __LINE__)
+#define PRINT_LAST_CUDA_ERROR(msg) printLastCudaError(msg)
+
+inline void __printLastCudaError(const char *errorMessage, const char *file,
+ const int line) {
+ cudaError_t err = cudaGetLastError();
+
+ if (cudaSuccess != err) {
+ fprintf(stderr,
+ "%s(%i) : getLastCudaError() CUDA error :"
+ " %s : (%d) %s.\n",
+ file, line, errorMessage, static_cast(err),
+ cudaGetErrorString(err));
+ }
+}
+#endif /* __DRIVER_TYPES_H__ */
+
+
+/**
+ * enum used below; can be used as the second argument of macro
+ * CUDA_KERNEL_CHECK
+ */
+enum device_sync_t {
+ DEVICE_NO_SYNC = 0,
+ DEVICE_SYNC = 1
+};
+
+
+/**
+ * a simple macro helper:
+ * GET_KERNEL_CHECK_MACRO always picks the 3rd arg
+ *
+ * see https://stackoverflow.com/questions/11761703/overloading-macro-on-number-of-arguments
+ */
+#define GET_KERNEL_CHECK_MACRO(_1,_2,NAME,...) NAME
+
+/**
+ * another simple macro helper :
+ * - if CUDA_KERNEL_CHECK is called with only 1 argument, then CUDA_KERNEL_CHECK1 is chosen
+ * - if CUDA_KERNEL_CHECK is called with 2 arguments, then CUDA_KERNEL_CHECK2 is chosen
+ *
+ *
+ * this is the macro we want to call
+ */
+#define CUDA_KERNEL_CHECK(...) GET_KERNEL_CHECK_MACRO(__VA_ARGS__, CUDA_KERNEL_CHECK2, CUDA_KERNEL_CHECK1)(__VA_ARGS__)
+
+/**
+ * Preprocessor macro helping to retrieve the exact code
+ * location where the error was emitted.
+ *
+ * Default behavior, don't synchronize device
+ */
+#define CUDA_KERNEL_CHECK1(msg) cuda_kernel_check((msg), __FILE__, __LINE__, DEVICE_NO_SYNC)
+
+/**
+ * Same as above, but let the user chose if we want to synchronize device.
+ */
+#define CUDA_KERNEL_CHECK2(msg,sync) cuda_kernel_check((msg), __FILE__, __LINE__, sync)
+
+/**
+ * Check last CUDA kernel call status.
+ * If it was not successfull then print error message.
+ *
+ * \param[in] errstr error message to print
+ * \param[in] file source filename where error occured
+ * \param[in] line line number where error occured
+ * \param[in] sync integer, 0 means no device synchronization
+ */
+static void cuda_kernel_check(const char* errstr,
+ const char* file,
+ const int line,
+ const int sync)
+{
+
+ auto status = cudaGetLastError();
+
+ if (sync or FORCE_SYNC_GPU) {
+ //fprintf(stderr, "syncing device\n");
+ cudaDeviceSynchronize();
+ }
+
+ if (status != cudaSuccess) {
+ fprintf(stderr,
+ "%s(%i) : getLastCudaError() CUDA error :"
+ " %s : (%d) %s.\n",
+ file, line, errstr, static_cast(status),
+ cudaGetErrorString(status));
+
+ //cudaDeviceReset();
+ //exit(EXIT_FAILURE);
+ }
+
+} // cuda_kernel_check
+
+inline const char* _ConvertSMVer2ArchName(int major, int minor) {
+ // Defines for GPU Architecture types (using the SM version to determine
+ // the GPU Arch name)
+ typedef struct {
+ int SM; // 0xMm (hexidecimal notation), M = SM Major version,
+ // and m = SM minor version
+ const char* name;
+ } sSMtoArchName;
+
+ sSMtoArchName nGpuArchNameSM[] = {
+ {0x30, "Kepler"},
+ {0x32, "Kepler"},
+ {0x35, "Kepler"},
+ {0x37, "Kepler"},
+ {0x50, "Maxwell"},
+ {0x52, "Maxwell"},
+ {0x53, "Maxwell"},
+ {0x60, "Pascal"},
+ {0x61, "Pascal"},
+ {0x62, "Pascal"},
+ {0x70, "Volta"},
+ {0x72, "Xavier"},
+ {0x75, "Turing"},
+ {0x80, "Ampere"},
+ {0x86, "Ampere"},
+ {0x89, "AdaLovelace"},
+ {0x90, "Hopper"},
+ {-1, "Graphics Device"}};
+
+ int index = 0;
+
+ while (nGpuArchNameSM[index].SM != -1) {
+ if (nGpuArchNameSM[index].SM == ((major << 4) + minor)) {
+ return nGpuArchNameSM[index].name;
+ }
+
+ index++;
+ }
+
+ // If we don't find the values, we default use the previous one
+ // to run properly
+ printf(
+ "MapSMtoArchName for SM %d.%d is undefined."
+ " Default to use %s\n",
+ major, minor, nGpuArchNameSM[index - 1].name);
+ return nGpuArchNameSM[index - 1].name;
+}
+
+
+#ifdef __CUDA_RUNTIME_H__
+
+// General check for CUDA GPU SM Capabilities
+inline bool checkCudaCapabilities(int major_version, int minor_version) {
+ int dev;
+ int major = 0, minor = 0;
+
+ CHECK_CUDA_ERROR(cudaGetDevice(&dev));
+ CHECK_CUDA_ERROR(cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, dev));
+ CHECK_CUDA_ERROR(cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, dev));
+
+ if ((major > major_version) ||
+ (major == major_version &&
+ minor >= minor_version)) {
+ printf(" Device %d: <%16s >, Compute SM %d.%d detected\n", dev,
+ _ConvertSMVer2ArchName(major, minor), major, minor);
+ return true;
+ } else {
+ printf(
+ " No GPU device was found that can support "
+ "CUDA compute capability %d.%d.\n",
+ major_version, minor_version);
+ return false;
+ }
+}
+#endif /* __CUDA_RUNTIME_H__ */
+
+#ifdef __CUDA_RUNTIME_API_H__
+// cuBLAS API errors
+static const char *cudaMemoryTypeToString(enum cudaMemoryType type) {
+ switch (type) {
+ case cudaMemoryTypeUnregistered:
+ return "cudaMemoryTypeUnregistered";
+ case cudaMemoryTypeHost:
+ return "cudaMemoryTypeHost";
+ case cudaMemoryTypeDevice:
+ return "cudaMemoryTypeDevice";
+ case cudaMemoryTypeManaged:
+ return "cudaMemoryTypeManaged";
+ }
+
+ return "";
+}
+#endif /* __CUDA_RUNTIME_API_H__ */
+
+#endif /* CUDA_API_ERROR_CHECK_H_ */
diff --git a/GX-PAW/common/src/17_gpu_toolbox/dev_spec.cpp b/GX-PAW/common/src/17_gpu_toolbox/dev_spec.cpp
new file mode 100644
index 00000000..46c0325d
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/dev_spec.cpp
@@ -0,0 +1,22 @@
+/* dev_spec.cpp*/
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini,FDahm)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt.
+ *
+ */
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_GPU_CUDA
+#include "dev_spec_cuda.cpp"
+#endif
+#ifdef HAVE_GPU_HIP
+#include "dev_spec_hip.cpp"
+#endif
+
+
diff --git a/GX-PAW/common/src/17_gpu_toolbox/dev_spec_cuda.cpp b/GX-PAW/common/src/17_gpu_toolbox/dev_spec_cuda.cpp
new file mode 100644
index 00000000..abe20648
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/dev_spec_cuda.cpp
@@ -0,0 +1,509 @@
+/* dev_spec_cuda.cpp*/
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini,FDahm)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt.
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include "cuda_api_error_check.h"
+
+static int version_2_cores(int major, int minor);
+
+/*=========================================================================*/
+/*________________________ GPU_function called by HOST_____________________*/
+/*=========================================================================*/
+// display CUDA device info
+static void prt_dev_info()
+{
+ int deviceCount;
+ cudaGetDeviceCount(&deviceCount);
+ for (int dev = 0; dev < deviceCount; ++dev)
+ {
+ cudaDeviceProp deviceProp;
+ cudaGetDeviceProperties(&deviceProp, dev);
+ int NProcs=deviceProp.multiProcessorCount;
+ int NCores=version_2_cores(deviceProp.major, deviceProp.minor);
+ printf("\n___________________________________________________________________\n");
+ printf( "__________ Graphic Card Properties ______________________________\n");
+ printf("\n Device %d: \"%s\"\n", dev, deviceProp.name);
+ printf(" Revision number: %d.%d\n", deviceProp.major,deviceProp.minor);
+ printf(" Total amount of global memory: %3.1f Mbytes\n", deviceProp.totalGlobalMem/1048576.);
+ printf(" Clock rate: %3.1f GHz\n", deviceProp.clockRate/1000000.);
+ printf(" Number of processors/cores: %d/%d\n", NProcs,NCores);
+ if (NCores<0) {
+ printf(" Max GFLOPS: undefined (add new def. in version_2_cores function)\n");
+ } else {
+ printf(" Max GFLOPS: %d GFP\n", NCores*deviceProp.multiProcessorCount * deviceProp.clockRate/1000000);
+ }
+ printf(" Total amount of constant memory: %d bytes\n",(int) deviceProp.totalConstMem);
+ printf(" Total amount of shared memory per block: %d bytes\n",(int) deviceProp.sharedMemPerBlock);
+ printf(" Total number of registers available per block: %d\n", deviceProp.regsPerBlock);
+ printf("___________________________________________________________________\n");
+ fflush(stdout);
+ if( (int) deviceProp.totalConstMem<0) break;
+ //if(deviceProp.major==9999){printf("EXIT: PROBLEM WITH AVAILABLE DEVICES \n");exit(0);}
+ }
+}
+
+
+// Explicit Cuda Error ---------------------
+void check_err(int line )
+{
+ /* cuda check errors */
+ cudaError_t cudaError;
+ cudaError = cudaGetLastError();
+ if(cudaError != cudaSuccess)
+ {
+ fprintf(stderr, "CUDA Runtime API Error reported : %s %d\n", cudaGetErrorString(cudaError),line);
+ exit(EXIT_FAILURE);
+ }
+ return;
+}
+
+
+// Gives the number of GPU devices ---------
+extern "C"
+void get_gpu_ndev_(int* ndevice)
+{
+ int deviceCount;
+ cudaGetDeviceCount(&deviceCount);
+ *ndevice = deviceCount;
+
+ return;
+}
+
+// Gives the max memory available for a GPU device ---------
+extern "C"
+void get_gpu_max_mem_(int* device, float* max_mem)
+{
+ cudaDeviceProp deviceProp;
+ cudaGetDeviceProperties(&deviceProp, *device);
+ *max_mem = (float) deviceProp.totalGlobalMem;
+ return;
+}
+
+// Gives currently free memory available for current GPU device ---------
+extern "C"
+void gpu_get_free_mem_cpp(size_t* free_mem)
+{
+ size_t max_mem;
+ cudaMemGetInfo(&max_mem, free_mem);
+ return;
+}
+
+// Set the device if it exists -----------------
+extern "C"
+void set_dev_(int* gpudevice)
+{
+ if(*gpudevice >-1){
+ cudaError_t cudaError;
+ int deviceCount;
+ cudaGetDeviceCount(&deviceCount);
+ if(deviceCount>*gpudevice){
+ cudaSetDevice(*gpudevice);
+ cudaError = cudaGetLastError();
+ if(cudaError != cudaSuccess){
+ fprintf(stderr, "CUDA Runtime API Error reported : %s\n", cudaGetErrorString(cudaError));
+ fflush(stderr);
+ exit(1);
+ }
+ }
+ else *gpudevice=-1;
+ }
+ return;
+}
+
+
+// Unset the devices -----------------
+extern "C"
+void unset_dev_()
+{
+#if defined HAVE_GPU_CUDA3
+ cudaThreadExit();
+#else
+ cudaDeviceReset();
+#endif
+ return;
+}
+
+// Synchronize device (makes the CPU waits the GPU to finish all running kernels)
+// this is required when using mamanged memory in order to reuse safely on CPU data
+// that were processed / modified by the GPU
+extern "C"
+void gpu_device_synchronize_cpp()
+{
+ cudaError_t cudaError = cudaDeviceSynchronize();
+ if(cudaError != cudaSuccess)
+ {
+ fprintf(stderr, "CUDA Runtime API Error reported : %s when trying to call cudaDeviceSynchronize\n", cudaGetErrorString(cudaError));
+ fflush(stderr);
+ }
+ return;
+}
+
+//
+extern "C"
+void gpu_get_device_cpp(int *deviceId)
+{
+ CHECK_CUDA_ERROR( cudaGetDevice(deviceId) );
+
+ return;
+}
+
+//
+extern "C"
+void gpu_data_prefetch_async_cpp(const void* devPtr, size_t count, int deviceId)
+{
+
+ CHECK_CUDA_ERROR( cudaMemPrefetchAsync(devPtr, count, deviceId) );
+
+ return;
+}
+
+//
+extern "C"
+void gpu_memory_advise_cpp(const void* devPtr, size_t count, cudaMemoryAdvise advice, int deviceId)
+{
+
+ CHECK_CUDA_ERROR( cudaMemAdvise(devPtr, count, advice, deviceId) );
+
+ return;
+}
+
+// Get context -----------------------
+extern "C"
+void check_context_(int *res,char *message)
+{
+ *res=1;
+ cudaError_t state=cudaFree(0);
+ if (state!=cudaSuccess){
+ sprintf(message,"Unable to initialize a Cuda context: %s \n",cudaGetErrorString(state));
+ *res=0;
+ unset_dev_();
+ }
+}
+
+
+// Get info from device --------------
+extern "C"
+void get_dev_info_(int* device,
+ char* name,
+ int* lenname,
+ int vers[2],
+ float* globalmem,
+ float* clockrate,
+ int* gflops,
+ int* constmem,
+ int* sharemem,
+ int* regist,
+ int* nprocs,
+ int* ncores
+ )
+{
+ cudaDeviceProp deviceProp;
+ cudaGetDeviceProperties(&deviceProp, *device);
+ strcpy(name,deviceProp.name);
+ *lenname = strlen( name );
+ vers[0] = deviceProp.major;
+ vers[1] = deviceProp.minor;
+ *globalmem = deviceProp.totalGlobalMem/1048576.;
+ *clockrate = deviceProp.clockRate/1000000.;
+ *nprocs = deviceProp.multiProcessorCount;
+ *ncores = version_2_cores(deviceProp.major,deviceProp.minor);
+ *gflops = int(deviceProp.multiProcessorCount*version_2_cores(deviceProp.major,deviceProp.minor)*(deviceProp.clockRate/1000000.));
+ *constmem = deviceProp.totalConstMem;
+ *sharemem = deviceProp.sharedMemPerBlock;
+ *regist = deviceProp.regsPerBlock;
+}
+
+
+// Get number of devices --------------
+extern "C"
+void c_get_ndevice_(int* ndev)
+{
+ *ndev=0;
+ int deviceCount;
+ cudaGetDeviceCount(&deviceCount);
+ for (int idev = 0; idev < deviceCount; ++idev)
+ {
+ cudaDeviceProp deviceProp;
+ cudaGetDeviceProperties(&deviceProp, idev);
+ //We check that no device is in "emu" mode
+ if( deviceProp.major != 9999 ) {
+#if defined HAVE_GPU_CUDA_DP
+ //We check that double precision is available, c.c. >= 1.3 )
+ if( (deviceProp.major>1)||(deviceProp.minor>2) )
+#endif
+ *ndev+=1;
+ }
+ }
+}
+
+
+// Get number of cores of device --------------
+//This function is present in cuda SDK: see ${CUDAROOT}/common/inc/helper_cuda_drvapi.h
+//To be completed for new card versions
+static
+int version_2_cores(int major, int minor)
+{
+ // Defines for GPU Architecture types (using the SM version to determine the # of cores per SM
+ typedef struct
+ {
+ int SM; // 0xMm (hexidecimal notation), M = SM Major version, and m = SM minor version
+ int Cores;
+ } sSMtoCores;
+ sSMtoCores nGpuArchCoresPerSM[] =
+ {
+ { 0x10, 8 }, // Tesla Generation (SM 1.0) G80 class
+ { 0x11, 8 }, // Tesla Generation (SM 1.1) G8x class
+ { 0x12, 8 }, // Tesla Generation (SM 1.2) G9x class
+ { 0x13, 8 }, // Tesla Generation (SM 1.3) GT200 class
+ { 0x20, 32 }, // Fermi Generation (SM 2.0) GF100 class
+ { 0x21, 48 }, // Fermi Generation (SM 2.1) GF10x class
+ { 0x30, 192}, // Kepler Generation (SM 3.0) GK10x class
+ { 0x32, 192}, // Kepler Generation (SM 3.2) GK10x class
+ { 0x35, 192}, // Kepler Generation (SM 3.5) GK11x class
+ { 0x50, 128}, // Maxwell Generation (SM 5.0) GM10x class
+ { 0x60, 64 }, // Pascal Generation (SM 6.0) GP100 class
+ { 0x61, 128}, // Pascal Generation (SM 6.1) GP10x class
+ { 0x62, 128}, // Pascal Generation (SM 6.2) GP10x class
+ { 0x70, 64 }, // Volta Generation (SM 7.0) GV100 class
+ { 0x72, 64 }, // Volta Generation (SM 7.2) AGX class
+ { 0x75, 64 }, // Turing Generation (SM 7.5) RTX class
+ { 0x80, 64 }, // Ampere Generation (SM 8.0) A100 class
+ { 0x86, 128}, // Ampere Generation (SM 8.6) RTX class
+ { 0x87, 128}, // Ampere Generation (SM 8.7) AGX class
+ { 0x89, 128}, // Ada Lovelace Generation (SM 8.9) RTX class
+ { 0x90, 128}, // Hooper Generation (SM 9.0) H100 class
+ { -1, -1 }
+ };
+ int index = 0;
+ while (nGpuArchCoresPerSM[index].SM != -1)
+ {
+ if (nGpuArchCoresPerSM[index].SM == ((major << 4) + minor))
+ {
+ return nGpuArchCoresPerSM[index].Cores;
+ }
+ index++;
+ }
+
+// printf("MapSMtoCores for SM %d.%d is undefined. Default to use %d Cores/SM\n", major, minor, nGpuArchCoresPerSM[7].Cores);
+ return nGpuArchCoresPerSM[10].Cores;
+}
+
+
+/***************************************************************/
+/******* ********/
+/******* GPU MEMORY MANAGEMENT ROUTINES ********/
+/******* ********/
+/***************************************************************/
+
+/*============================================================================*/
+/* Print memory information (total amount and free available) */
+/*============================================================================*/
+
+extern "C" void check_gpu_mem_(const char* str)
+{
+ size_t free,total;
+ cudaMemGetInfo(&free,&total);
+ printf("[%s] *** GPU memory : Occupied => %4.2fMo | Free => %4.2fMo | Total => %4.2fMo ***\n",
+ str, (total-free)*1e-6, free*1e-6, total*1e-6);
+ fflush(stdout);
+}
+
+/*============================================================================*/
+/* Allocate size byte in gpu memory and returns in gpu_ptr this location */
+/* INPUTS size= size in byte to allocate */
+/* OUTPUT gpu_ptr= C_PTR on gpu memory location that has been allocated */
+/*============================================================================*/
+
+extern "C" void alloc_on_gpu_(void **gpu_ptr, const size_t* size)
+{
+
+ //check_gpu_mem_("alloc_on_gpu_");
+
+ if (cudaMalloc(gpu_ptr,*size) != cudaSuccess)
+ {
+ fprintf(stderr, "ERROR: alloc_on_gpu failed allocating %ld bytes :%s\n", *size, cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Free memory location pointed by gpu_ptr */
+/* OUTPUT gpu_ptr= C_PTR on gpu memory location that has been allocated */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_CUDA is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void dealloc_on_gpu_(void **gpu_ptr)
+{
+ if(*gpu_ptr==NULL)
+ return;
+
+ if (cudaFree(*gpu_ptr) != cudaSuccess)
+ {
+ fprintf(stderr, "ERROR: dealloc_on_gpu failed :%s\n",cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+ *gpu_ptr=NULL;
+}
+
+/*============================================================================*/
+/* Copy size byte from cpu pointer to gpu pointer. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* cpu_ptr = host memory location (LOC) */
+/* OUTPUT */
+/* gpu_ptr = C_PTR : gpu memory location */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_CUDA is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void copy_on_gpu_(void *cpu_ptr, void **gpu_ptr, const size_t* size)
+{
+ if (cudaMemcpy(*gpu_ptr, cpu_ptr, *size, cudaMemcpyHostToDevice) != cudaSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_on_gpu failed : %s\n",cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Copy size byte from gpu pointer to cpu pointer. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* gpu_ptr = C_PTR : gpu memory location */
+/* OUTPUT */
+/* cpu_ptr = host memory location (LOC of an allocated array) */
+/*============================================================================*/
+
+extern "C" void copy_from_gpu_(void *cpu_ptr, void **gpu_ptr, const size_t* size)
+{
+ if (cudaMemcpy(cpu_ptr, *gpu_ptr, *size, cudaMemcpyDeviceToHost) != cudaSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_from_gpu failed : %s\n",cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Copy size byte from gpu to gpu memory. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* src_gpu_ptr */
+/* OUTPUT */
+/* dest_gpu_ptr = C_PTR on gpu memory location */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_CUDA is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void copy_gpu_to_gpu_cpp_(void **dest_gpu_ptr, void **src_gpu_ptr, const size_t* size)
+{
+ if (cudaMemcpy(*dest_gpu_ptr, *src_gpu_ptr, *size, cudaMemcpyDeviceToDevice) != cudaSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_gpu_to_gpu failed (dest=%p, src=%p, size=%ld): %s\n",
+ *dest_gpu_ptr, *src_gpu_ptr, *size, cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Reset array (just wrapping cudaMemset) */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* value = integer used to initialize each bytes (should be in range [0,255])*/
+/* size = size in bytes of the region to be set */
+/* */
+/* OUTPUT */
+/* None */
+/*============================================================================*/
+
+extern "C" void gpu_memset_cpp_(void **gpu_ptr, const int32_t* value, const size_t* size_in_bytes)
+{
+ if(cudaMemset(*gpu_ptr, *value, *size_in_bytes)!=cudaSuccess){
+ fprintf(stderr, "ERROR: gpu_memset at address %p failed : %s\n",*gpu_ptr,cudaGetErrorString(cudaGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Kind of equivalent of fortran "allocated". Check if a gpu pointer */
+/* actually points to device allocated memory. */
+/* */
+/* This is void function because I can't manage to bind it via iso_c_binding */
+/* as a fortran function; binding as a subroutine is ok though (?!) */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* */
+/* OUTPUT */
+/* boolean/logical (false = not allocated, true = allocated) */
+/*============================================================================*/
+
+extern "C" void gpu_allocated_impl_(void **gpu_ptr, bool* is_allocated)
+{
+
+ *is_allocated = false;
+
+ cudaPointerAttributes attributes;
+
+ CHECK_CUDA_ERROR(cudaPointerGetAttributes(&attributes, *gpu_ptr));
+
+ if(attributes.devicePointer != NULL)
+ {
+ *is_allocated = true;
+ }
+
+} // gpu_allocated_impl_
+
+/*============================================================================*/
+/* Utility routine to print memory location of a cuda managed pointer. */
+/* */
+/* We check that the pointer has actually been allocated with */
+/* cudaMallocManaged and then prints device and host addresses. */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* */
+/* OUTPUT */
+/* None. */
+/*============================================================================*/
+
+extern "C" void gpu_managed_ptr_status_(void **gpu_ptr, const char* str)
+{
+
+ cudaPointerAttributes attributes;
+
+ CHECK_CUDA_ERROR(cudaPointerGetAttributes(&attributes, *gpu_ptr));
+
+ if(attributes.type == cudaMemoryTypeManaged)
+ {
+ printf("[%s] ptr %p is memory managed, host addr=%p, device addr=%p\n", str, *gpu_ptr,
+ attributes.hostPointer,
+ attributes.devicePointer);
+ fflush(stdout);
+ } else if(attributes.type == cudaMemoryTypeDevice) {
+ printf("[%s] ptr %p is a device ptr.\n", str, *gpu_ptr);
+ fflush(stdout);
+ } else {
+ printf("[%s] ptr %p is neither a memory managed pointer nor a device pointer.\n", str, *gpu_ptr);
+ fflush(stdout);
+ }
+
+} // gpu_managed_ptr_status_
diff --git a/GX-PAW/common/src/17_gpu_toolbox/dev_spec_hip.cpp b/GX-PAW/common/src/17_gpu_toolbox/dev_spec_hip.cpp
new file mode 100644
index 00000000..fbebeda6
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/dev_spec_hip.cpp
@@ -0,0 +1,498 @@
+/* dev_spec_hip.cpp*/
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini,FDahm)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt.
+ *
+ */
+
+#include
+#include
+#include
+#include "hip_api_error_check.h"
+
+static int version_2_cores(int major, int minor);
+
+/*=========================================================================*/
+/*________________________ GPU_function called by HOST_____________________*/
+/*=========================================================================*/
+// display HIP device info
+static void prt_dev_info()
+{
+ int deviceCount;
+ HIP_API_CHECK(hipGetDeviceCount(&deviceCount));
+ for (int dev = 0; dev < deviceCount; ++dev)
+ {
+ hipDeviceProp_t deviceProp;
+ HIP_API_CHECK(hipGetDeviceProperties(&deviceProp, dev));
+ int NProcs=deviceProp.multiProcessorCount;
+ int NCores=version_2_cores(deviceProp.major, deviceProp.minor);
+ printf("\n___________________________________________________________________\n");
+ printf( "__________ Graphic Card Properties ______________________________\n");
+ printf("\n Device %d: \"%s\"\n", dev, deviceProp.name);
+ printf(" Revision number: %d.%d\n", deviceProp.major,deviceProp.minor);
+ printf(" Total amount of global memory: %3.1f Mbytes\n", deviceProp.totalGlobalMem/1048576.);
+ printf(" Clock rate: %3.1f GHz\n", deviceProp.clockRate/1000000.);
+ printf(" Number of processors/cores: %d/%d\n", NProcs,NCores);
+ if (NCores<0) {
+ printf(" Max GFLOPS: undefined (add new def. in version_2_cores function)\n");
+ } else {
+ printf(" Max GFLOPS: %d GFP\n", NCores*deviceProp.multiProcessorCount * deviceProp.clockRate/1000000);
+ }
+ printf(" Total amount of constant memory: %d bytes\n",(int) deviceProp.totalConstMem);
+ printf(" Total amount of shared memory per block: %d bytes\n",(int) deviceProp.sharedMemPerBlock);
+ printf(" Total number of registers available per block: %d\n", deviceProp.regsPerBlock);
+ printf("___________________________________________________________________\n");
+ fflush(stdout);
+ if( (int) deviceProp.totalConstMem<0) break;
+ //if(deviceProp.major==9999){printf("EXIT: PROBLEM WITH AVAILABLE DEVICES \n");exit(0);}
+ }
+}
+
+
+// Explicit Cuda Error ---------------------
+void check_err(int line )
+{
+ /* hip check errors */
+ hipError_t hipError;
+ hipError = hipGetLastError();
+ if(hipError != hipSuccess)
+ { fprintf(stderr, "HIP Runtime API Error reported : %s %d\n", hipGetErrorString(hipError),line);
+ exit(EXIT_FAILURE);
+ }
+ return;
+}
+
+
+// Gives the number of GPU devices ---------
+extern "C"
+void get_gpu_ndev_(int* ndevice)
+{
+ int deviceCount;
+ HIP_API_CHECK(hipGetDeviceCount(&deviceCount));
+ *ndevice = deviceCount;
+
+ return;
+}
+
+// Gives the max memory available for a GPU device ---------
+extern "C"
+void get_gpu_max_mem_(int* device, float* max_mem)
+{
+ hipDeviceProp_t deviceProp;
+ HIP_API_CHECK(hipGetDeviceProperties(&deviceProp, *device));
+ *max_mem = (float) deviceProp.totalGlobalMem;
+ return;
+}
+
+// Gives currently free memory available for current GPU device ---------
+extern "C"
+void gpu_get_free_mem_cpp(size_t* free_mem)
+{
+ size_t max_mem;
+ HIP_API_CHECK(hipMemGetInfo(&max_mem, free_mem));
+ return;
+}
+
+// Set the device if it exists -----------------
+extern "C"
+void set_dev_(int* gpudevice)
+{
+ if(*gpudevice >-1){
+ hipError_t hipError;
+ int deviceCount;
+ HIP_API_CHECK(hipGetDeviceCount(&deviceCount));
+ if(deviceCount>*gpudevice){
+ HIP_API_CHECK(hipSetDevice(*gpudevice));
+ hipError = hipGetLastError();
+ if(hipError != hipSuccess){
+ fprintf(stderr, "HIP Runtime API Error reported : %s\n", hipGetErrorString(hipError));
+ fflush(stderr);
+ exit(1);
+ }
+ }
+ else *gpudevice=-1;
+ }
+ return;
+}
+
+
+// Unset the devices -----------------
+extern "C"
+void unset_dev_()
+{
+ HIP_API_CHECK(hipDeviceReset());
+ return;
+}
+
+// Synchronize device (makes the CPU waits the GPU to finish all running kernels)
+// this is required when using mamanged memory in order to reuse safely on CPU data
+// that were processed / modified by the GPU
+extern "C"
+void gpu_device_synchronize_cpp()
+{
+ hipError_t hipError = hipDeviceSynchronize();
+ if(hipError != hipSuccess)
+ {
+ fprintf(stderr, "HIP Runtime API Error reported : %s when trying to call hipDeviceSynchronize\n", hipGetErrorString(hipError));
+ fflush(stderr);
+ }
+ return;
+}
+
+//
+extern "C"
+void gpu_get_device_cpp(int *deviceId)
+{
+ CHECK_HIP_ERROR( hipGetDevice(deviceId) );
+
+ return;
+}
+
+//
+extern "C"
+void gpu_data_prefetch_async_cpp(const void* devPtr, size_t count, int deviceId)
+{
+
+ CHECK_HIP_ERROR( hipMemPrefetchAsync(devPtr, count, deviceId) );
+
+ return;
+}
+
+//
+extern "C"
+void gpu_memory_advise_cpp(const void* devPtr, size_t count, hipMemoryAdvise advice, int deviceId)
+{
+
+ CHECK_HIP_ERROR( hipMemAdvise(devPtr, count, advice, deviceId) );
+
+ return;
+}
+
+// Get context -----------------------
+extern "C"
+void check_context_(int *res,char *message)
+{
+ *res=1;
+ hipError_t state=hipFree(0);
+ if (state!=hipSuccess){
+ sprintf(message,"Unable to initialize a Cuda context: %s \n",hipGetErrorString(state));
+ *res=0;
+ unset_dev_();
+ }
+}
+
+
+// Get info from device --------------
+extern "C"
+void get_dev_info_(int* device,
+ char* name,
+ int* lenname,
+ int vers[2],
+ float* globalmem,
+ float* clockrate,
+ int* gflops,
+ int* constmem,
+ int* sharemem,
+ int* regist,
+ int* nprocs,
+ int* ncores
+ )
+{
+ hipDeviceProp_t deviceProp;
+ HIP_API_CHECK(hipGetDeviceProperties(&deviceProp, *device));
+ strcpy(name,deviceProp.name);
+ *lenname = strlen( name );
+ vers[0] = deviceProp.major;
+ vers[1] = deviceProp.minor;
+ *globalmem = deviceProp.totalGlobalMem/1048576.;
+ *clockrate = deviceProp.clockRate/1000000.;
+ *nprocs = deviceProp.multiProcessorCount;
+ *ncores = version_2_cores(deviceProp.major,deviceProp.minor);
+ *gflops = int(deviceProp.multiProcessorCount*version_2_cores(deviceProp.major,deviceProp.minor)*(deviceProp.clockRate/1000000.));
+ *constmem = deviceProp.totalConstMem;
+ *sharemem = deviceProp.sharedMemPerBlock;
+ *regist = deviceProp.regsPerBlock;
+}
+
+
+// Get number of devices --------------
+extern "C"
+void c_get_ndevice_(int* ndev)
+{
+ *ndev=0;
+ int deviceCount;
+ HIP_API_CHECK(hipGetDeviceCount(&deviceCount));
+ for (int idev = 0; idev < deviceCount; ++idev)
+ {
+ hipDeviceProp_t deviceProp;
+ HIP_API_CHECK(hipGetDeviceProperties(&deviceProp, idev));
+ //We check that no device is in "emu" mode
+ if( deviceProp.major != 9999 ) {
+#if defined HAVE_GPU_HIP_DP
+ //We check that double precision is available, c.c. >= 1.3 )
+ if( (deviceProp.major>1)||(deviceProp.minor>2) )
+#endif
+ *ndev+=1;
+ }
+ }
+}
+
+
+// Get number of cores of device --------------
+//This function is present in hip SDK: see ${HIPROOT}/common/inc/helper_hip_drvapi.h
+//To be completed for new card versions
+static
+int version_2_cores(int major, int minor)
+{
+ // Defines for GPU Architecture types (using the SM version to determine the # of cores per SM
+ typedef struct
+ {
+ int SM; // 0xMm (hexidecimal notation), M = SM Major version, and m = SM minor version
+ int Cores;
+ } sSMtoCores;
+ sSMtoCores nGpuArchCoresPerSM[] =
+ {
+ { 0x10, 8 }, // Tesla Generation (SM 1.0) G80 class
+ { 0x11, 8 }, // Tesla Generation (SM 1.1) G8x class
+ { 0x12, 8 }, // Tesla Generation (SM 1.2) G9x class
+ { 0x13, 8 }, // Tesla Generation (SM 1.3) GT200 class
+ { 0x20, 32 }, // Fermi Generation (SM 2.0) GF100 class
+ { 0x21, 48 }, // Fermi Generation (SM 2.1) GF10x class
+ { 0x30, 192}, // Kepler Generation (SM 3.0) GK10x class
+ { 0x32, 192}, // Kepler Generation (SM 3.2) GK10x class
+ { 0x35, 192}, // Kepler Generation (SM 3.5) GK11x class
+ { 0x50, 128}, // Maxwell Generation (SM 5.0) GM10x class
+ { 0x60, 64 }, // Pascal Generation (SM 6.0) GP100 class
+ { 0x61, 128}, // Pascal Generation (SM 6.1) GP10x class
+ { 0x62, 128}, // Pascal Generation (SM 6.2) GP10x class
+ { 0x70, 64 }, // Volta Generation (SM 7.0) GV100 class
+ { 0x72, 64 }, // Volta Generation (SM 7.2) AGX class
+ { 0x75, 64 }, // Turing Generation (SM 7.5) RTX class
+ { 0x80, 64 }, // Ampere Generation (SM 8.0) A100 class
+ { 0x86, 128}, // Ampere Generation (SM 8.6)
+ { 0x87, 128}, // Ampere Generation (SM 8.7)
+ { -1, -1 }
+ };
+ int index = 0;
+ while (nGpuArchCoresPerSM[index].SM != -1)
+ {
+ if (nGpuArchCoresPerSM[index].SM == ((major << 4) + minor))
+ {
+ return nGpuArchCoresPerSM[index].Cores;
+ }
+ index++;
+ }
+
+// printf("MapSMtoCores for SM %d.%d is undefined. Default to use %d Cores/SM\n", major, minor, nGpuArchCoresPerSM[7].Cores);
+ return nGpuArchCoresPerSM[10].Cores;
+}
+
+
+/***************************************************************/
+/******* ********/
+/******* GPU MEMORY MANAGEMENT ROUTINES ********/
+/******* ********/
+/***************************************************************/
+
+/*============================================================================*/
+/* Print memory information (total amount and free available) */
+/*============================================================================*/
+
+extern "C" void check_gpu_mem_(const char* str)
+{
+ size_t free,total;
+ HIP_API_CHECK(hipMemGetInfo(&free,&total));
+ printf("[%s] *** GPU memory : Occupied => %4.2fMo | Free => %4.2fMo | Total => %4.2fMo ***\n",
+ str, (total-free)*1e-6, free*1e-6, total*1e-6);
+ fflush(stdout);
+}
+
+/*============================================================================*/
+/* Allocate size byte in gpu memory and returns in gpu_ptr this location */
+/* INPUTS size= size in byte to allocate */
+/* OUTPUT gpu_ptr= C_PTR on gpu memory location that has been allocated */
+/*============================================================================*/
+
+extern "C" void alloc_on_gpu_(void **gpu_ptr, const size_t* size)
+{
+
+ if (hipMalloc(gpu_ptr,*size) != hipSuccess)
+ {
+ fprintf(stderr, "ERROR: alloc_on_gpu failed allocating %ld bytes :%s\n", *size, hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Free memory location pointed by gpu_ptr */
+/* OUTPUT gpu_ptr= C_PTR on gpu memory location that has been allocated */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_HIP is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void dealloc_on_gpu_(void **gpu_ptr)
+{
+ if(*gpu_ptr==NULL)
+ return;
+
+ if (hipFree(*gpu_ptr) != hipSuccess)
+ {
+ fprintf(stderr, "ERROR: dealloc_on_gpu failed :%s\n",hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+ *gpu_ptr=NULL;
+}
+
+/*============================================================================*/
+/* Copy size byte from cpu pointer to gpu pointer. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* cpu_ptr = host memory location (LOC) */
+/* OUTPUT */
+/* gpu_ptr = C_PTR : gpu memory location */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_HIP is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void copy_on_gpu_(void *cpu_ptr, void **gpu_ptr, const size_t* size)
+{
+ if (hipMemcpy(*gpu_ptr, cpu_ptr, *size, hipMemcpyHostToDevice) != hipSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_on_gpu failed : %s\n",hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Copy size byte from gpu pointer to cpu pointer. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* gpu_ptr = C_PTR : gpu memory location */
+/* OUTPUT */
+/* cpu_ptr = host memory location (LOC of an allocated array) */
+/*============================================================================*/
+
+extern "C" void copy_from_gpu_(void *cpu_ptr,void **gpu_ptr, const size_t* size)
+{
+ if (hipMemcpy(cpu_ptr, *gpu_ptr, *size, hipMemcpyDeviceToHost) != hipSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_from_gpu failed : %s\n",hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Copy size byte from gpu to gpu memory. */
+/* INPUTS */
+/* size = size in byte to copy */
+/* src_gpu_ptr */
+/* OUTPUT */
+/* dest_gpu_ptr = C_PTR on gpu memory location */
+/* WARNING! : this routine is a dummy one when HAVE_GPU_HIP is not enabled */
+/* the correct one is in xx_gpu_toolbox/dev_spec.cu */
+/*============================================================================*/
+
+extern "C" void copy_gpu_to_gpu_cpp_(void **dest_gpu_ptr, void **src_gpu_ptr, const size_t* size)
+{
+ if (hipMemcpy(*dest_gpu_ptr, *src_gpu_ptr, *size, hipMemcpyDeviceToDevice) != hipSuccess)
+ {
+ fprintf(stderr, "ERROR: copy_gpu_to_gpu failed (dest=%p, src=%p, size=%ld): %s\n",
+ *dest_gpu_ptr, *src_gpu_ptr, *size, hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Reset array (just wrapping hipMemset) */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* value = integer used to initialize each bytes (should be in range [0,255])*/
+/* size = size in bytes of the region to be set */
+/* */
+/* OUTPUT */
+/* None */
+/*============================================================================*/
+
+extern "C" void gpu_memset_cpp_(void **gpu_ptr, const int32_t* value, const size_t* size_in_bytes)
+{
+ if(hipMemset(*gpu_ptr, *value, *size_in_bytes)!=hipSuccess){
+ fprintf(stderr, "ERROR: gpu_memset at address %p failed : %s\n",*gpu_ptr,hipGetErrorString(hipGetLastError()));
+ fflush(stderr);
+ abi_cabort();
+ }
+}
+
+/*============================================================================*/
+/* Kind of equivalent of fortran "allocated". Check if a gpu pointer */
+/* actually points to device allocated memory. */
+/* */
+/* This is void function because I can't manage to bind it via iso_c_binding */
+/* as a fortran function; binding as a subroutine is ok though (?!) */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* */
+/* OUTPUT */
+/* boolean/logical (false = not allocated, true = allocated) */
+/*============================================================================*/
+
+extern "C" void gpu_allocated_impl_(void **gpu_ptr, bool* is_allocated)
+{
+
+ *is_allocated = false;
+
+ hipPointerAttribute_t attributes;
+
+ CHECK_HIP_ERROR(hipPointerGetAttributes(&attributes, *gpu_ptr));
+
+ if(attributes.devicePointer != NULL)
+ {
+ *is_allocated = true;
+ }
+
+} // gpu_allocated_impl_
+
+/*============================================================================*/
+/* Utility routine to print memory location of a hip managed pointer. */
+/* */
+/* We check that the pointer has actually been allocated with */
+/* hipMallocManaged and then prints device and host addresses. */
+/* */
+/* INPUTS */
+/* gpu_ptr = C_PTR on gpu memory location */
+/* */
+/* OUTPUT */
+/* None. */
+/*============================================================================*/
+
+extern "C" void gpu_managed_ptr_status_(void **gpu_ptr, const char* str)
+{
+
+ hipPointerAttribute_t attributes;
+
+ CHECK_HIP_ERROR(hipPointerGetAttributes(&attributes, *gpu_ptr));
+
+ if(attributes.type == hipMemoryTypeUnified)
+ {
+ printf("[%s] ptr %p is unified memory, host addr=%p, device addr=%p\n", str, *gpu_ptr,
+ attributes.hostPointer,
+ attributes.devicePointer);
+ fflush(stdout);
+ } else if(attributes.type == hipMemoryTypeDevice) {
+ printf("[%s] ptr %p is a device ptr.\n", str, *gpu_ptr);
+ fflush(stdout);
+ } else {
+ printf("[%s] ptr %p is neither a unified memory pointer nor a device pointer.\n", str, *gpu_ptr);
+ fflush(stdout);
+ }
+
+} // gpu_managed_ptr_status_
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cpp
new file mode 100644
index 00000000..2f1710ed
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cpp
@@ -0,0 +1,23 @@
+/* gpu_fft.cpp */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MSarraute)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain GPU linear algebra encapsulation routines,
+ * that will be callable from fortran routines, by pointing to the relevant
+ * GPU runtime libraries (CUDA for NVIDIA targets, HIP for AMD targets).
+ *
+ */
+
+#include
+
+#ifdef HAVE_GPU_CUDA
+#include "gpu_fft_cuda.cpp"
+#endif
+#ifdef HAVE_GPU_HIP
+#include "gpu_fft_hip.cpp"
+#endif
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cu b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cu
new file mode 100644
index 00000000..7128395e
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.cu
@@ -0,0 +1,176 @@
+/* gpu_fft.cu */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain cublas and magma encapsulation routines,
+ * that will be callable from fortran routines
+ *
+ */
+
+#include
+#include
+
+cufftHandle plan_fft;
+static cudaStream_t stream_compute;
+
+//! utility function to select eigen type
+static cufftType select_cufft_type(const int fftType_int)
+{
+ switch(fftType_int){
+ case(CUFFT_R2C): return CUFFT_R2C;
+ case(CUFFT_C2R): return CUFFT_C2R;
+ case(CUFFT_C2C): return CUFFT_C2C;
+ case(CUFFT_D2Z): return CUFFT_D2Z;
+ case(CUFFT_Z2D): return CUFFT_Z2D;
+ case(CUFFT_Z2Z): return CUFFT_Z2Z;
+ default:
+ fprintf(stderr, "Provided wrong enum value for FFT type: %d\n",fftType_int);
+ fflush(stderr);
+ abi_cabort();
+ return CUFFT_R2C;
+ }
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_plan_many
+ *
+ * FUNCTION
+ * Initialize a FFT plan with custom dimension, strided and batch size.
+ *
+ * INPUTS
+ * rank Dimensionality of the transform (1, 2, or 3).
+ * n Array of size rank, describing the size of each dimension,
+ * n[0] being the size of the outermost and n[rank-1] innermost
+ * (contiguous) dimension of a transform.
+ * inembed Pointer of size rank that indicates the storage dimensions
+ * of the input data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * istride Indicates the distance between two successive input elements
+ * in the least significant (i.e., innermost) dimension
+ * idist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the input data
+ * onembed Pointer of size rank that indicates the storage dimensions of
+ * the output data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * ostride Indicates the distance between two successive output elements in
+ * the output array in the least significant (i.e., innermost) dimension
+ * odist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the output data
+ * type The transform data type
+ * (e.g., FFT_R2C for single precision real to complex)
+ * batch Batch size for this transform
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_many_cpp(int *rank, int **n, int **inembed,
+ int *istride, int *idist, int **onembed, int *ostride,
+ int *odist, int *fft_type, int *batch){
+
+ assert(CUFFT_Z2Z==0x69 && "cuFFT_Type enum value mismatch !(CUDA update?)");
+ assert(CUFFT_FORWARD==-1 && "cuFFT direction enum value mismatch (CUDA update?)");
+ assert(CUFFT_INVERSE== 1 && "cuFFT direction enum value mismatch (CUDA update?)");
+
+ cufftType type = select_cufft_type(*fft_type);
+ CUDA_API_CHECK(cufftPlanMany(
+ &plan_fft,
+ *rank,
+ *n,
+ *inembed,
+ *istride,
+ *idist,
+ *onembed,
+ *ostride,
+ *odist,
+ type,
+ *batch));
+ CUDA_API_CHECK( cudaStreamCreate(&stream_compute) );
+ CUDA_API_CHECK( cufftSetStream(plan_fft,stream_compute) );
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_stream_synchronize
+ *
+ * FUNCTION
+ * Wait for any FFT operations still running on stream
+ */
+/*=========================================================================*/
+
+extern "C" void gpu_fft_stream_synchronize_cpp()
+{
+ CUDA_API_CHECK( cudaStreamSynchronize(stream_compute) );
+}
+
+
+/*=========================================================================*/
+// NAME
+// gpu_fft_plan_destroy
+//
+// FUNCTION
+// Destroy FFT plan
+//
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_destroy_cpp(void){
+ CUDA_API_CHECK(cufftDestroy(plan_fft));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_z2z
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on double-complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_z2z_cpp(void **idata, void **odata, int *direction){
+
+ CUDA_API_CHECK(cufftExecZ2Z(plan_fft, (cufftDoubleComplex*) (*idata),
+ (cufftDoubleComplex*) (*odata), *direction));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_c2c
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on float complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_c2c_cpp(void **idata, void **odata, int *direction){
+ CUDA_API_CHECK(cufftExecC2C(plan_fft, (cufftComplex*) *idata,
+ (cufftComplex*) *odata, *direction));
+}
+
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.h b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.h
new file mode 100644
index 00000000..de35e740
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft.h
@@ -0,0 +1,21 @@
+#ifndef ABINIT_SHARED_COMMON_SRC_17_GPU_FFT_H
+#define ABINIT_SHARED_COMMON_SRC_17_GPU_FFT_H
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_GPU_CUDA
+#include
+#include
+extern cufftHandle plan_fft;
+#endif
+
+#ifdef HAVE_GPU_HIP
+#include
+#include
+extern hipfftHandle plan_fft;
+#endif
+
+#endif // ABINIT_SHARED_COMMON_SRC_17_GPU_FFT_H
+
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_cuda.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_cuda.cpp
new file mode 100644
index 00000000..7128395e
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_cuda.cpp
@@ -0,0 +1,176 @@
+/* gpu_fft.cu */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain cublas and magma encapsulation routines,
+ * that will be callable from fortran routines
+ *
+ */
+
+#include
+#include
+
+cufftHandle plan_fft;
+static cudaStream_t stream_compute;
+
+//! utility function to select eigen type
+static cufftType select_cufft_type(const int fftType_int)
+{
+ switch(fftType_int){
+ case(CUFFT_R2C): return CUFFT_R2C;
+ case(CUFFT_C2R): return CUFFT_C2R;
+ case(CUFFT_C2C): return CUFFT_C2C;
+ case(CUFFT_D2Z): return CUFFT_D2Z;
+ case(CUFFT_Z2D): return CUFFT_Z2D;
+ case(CUFFT_Z2Z): return CUFFT_Z2Z;
+ default:
+ fprintf(stderr, "Provided wrong enum value for FFT type: %d\n",fftType_int);
+ fflush(stderr);
+ abi_cabort();
+ return CUFFT_R2C;
+ }
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_plan_many
+ *
+ * FUNCTION
+ * Initialize a FFT plan with custom dimension, strided and batch size.
+ *
+ * INPUTS
+ * rank Dimensionality of the transform (1, 2, or 3).
+ * n Array of size rank, describing the size of each dimension,
+ * n[0] being the size of the outermost and n[rank-1] innermost
+ * (contiguous) dimension of a transform.
+ * inembed Pointer of size rank that indicates the storage dimensions
+ * of the input data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * istride Indicates the distance between two successive input elements
+ * in the least significant (i.e., innermost) dimension
+ * idist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the input data
+ * onembed Pointer of size rank that indicates the storage dimensions of
+ * the output data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * ostride Indicates the distance between two successive output elements in
+ * the output array in the least significant (i.e., innermost) dimension
+ * odist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the output data
+ * type The transform data type
+ * (e.g., FFT_R2C for single precision real to complex)
+ * batch Batch size for this transform
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_many_cpp(int *rank, int **n, int **inembed,
+ int *istride, int *idist, int **onembed, int *ostride,
+ int *odist, int *fft_type, int *batch){
+
+ assert(CUFFT_Z2Z==0x69 && "cuFFT_Type enum value mismatch !(CUDA update?)");
+ assert(CUFFT_FORWARD==-1 && "cuFFT direction enum value mismatch (CUDA update?)");
+ assert(CUFFT_INVERSE== 1 && "cuFFT direction enum value mismatch (CUDA update?)");
+
+ cufftType type = select_cufft_type(*fft_type);
+ CUDA_API_CHECK(cufftPlanMany(
+ &plan_fft,
+ *rank,
+ *n,
+ *inembed,
+ *istride,
+ *idist,
+ *onembed,
+ *ostride,
+ *odist,
+ type,
+ *batch));
+ CUDA_API_CHECK( cudaStreamCreate(&stream_compute) );
+ CUDA_API_CHECK( cufftSetStream(plan_fft,stream_compute) );
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_stream_synchronize
+ *
+ * FUNCTION
+ * Wait for any FFT operations still running on stream
+ */
+/*=========================================================================*/
+
+extern "C" void gpu_fft_stream_synchronize_cpp()
+{
+ CUDA_API_CHECK( cudaStreamSynchronize(stream_compute) );
+}
+
+
+/*=========================================================================*/
+// NAME
+// gpu_fft_plan_destroy
+//
+// FUNCTION
+// Destroy FFT plan
+//
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_destroy_cpp(void){
+ CUDA_API_CHECK(cufftDestroy(plan_fft));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_z2z
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on double-complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_z2z_cpp(void **idata, void **odata, int *direction){
+
+ CUDA_API_CHECK(cufftExecZ2Z(plan_fft, (cufftDoubleComplex*) (*idata),
+ (cufftDoubleComplex*) (*odata), *direction));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_c2c
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on float complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_c2c_cpp(void **idata, void **odata, int *direction){
+ CUDA_API_CHECK(cufftExecC2C(plan_fft, (cufftComplex*) *idata,
+ (cufftComplex*) *odata, *direction));
+}
+
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_hip.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_hip.cpp
new file mode 100644
index 00000000..b5b32878
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_fft_hip.cpp
@@ -0,0 +1,176 @@
+/* gpu_fft.cu */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain cublas and magma encapsulation routines,
+ * that will be callable from fortran routines
+ *
+ */
+
+#include
+#include
+
+hipfftHandle plan_fft;
+static hipStream_t stream_compute;
+
+//! utility function to select eigen type
+static hipfftType select_hipfft_type(const int fftType_int)
+{
+ switch(fftType_int){
+ case(HIPFFT_R2C): return HIPFFT_R2C;
+ case(HIPFFT_C2R): return HIPFFT_C2R;
+ case(HIPFFT_C2C): return HIPFFT_C2C;
+ case(HIPFFT_D2Z): return HIPFFT_D2Z;
+ case(HIPFFT_Z2D): return HIPFFT_Z2D;
+ case(HIPFFT_Z2Z): return HIPFFT_Z2Z;
+ default:
+ fprintf(stderr, "Provided wrong enum value for FFT type: %d\n",fftType_int);
+ fflush(stderr);
+ abi_cabort();
+ return HIPFFT_R2C;
+ }
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_plan_many
+ *
+ * FUNCTION
+ * Initialize a FFT plan with custom dimension, strided and batch size.
+ *
+ * INPUTS
+ * rank Dimensionality of the transform (1, 2, or 3).
+ * n Array of size rank, describing the size of each dimension,
+ * n[0] being the size of the outermost and n[rank-1] innermost
+ * (contiguous) dimension of a transform.
+ * inembed Pointer of size rank that indicates the storage dimensions
+ * of the input data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * istride Indicates the distance between two successive input elements
+ * in the least significant (i.e., innermost) dimension
+ * idist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the input data
+ * onembed Pointer of size rank that indicates the storage dimensions of
+ * the output data in memory.
+ * If set to NULL all other advanced data layout parameters are ignored.
+ * ostride Indicates the distance between two successive output elements in
+ * the output array in the least significant (i.e., innermost) dimension
+ * odist Indicates the distance between the first element of two
+ * consecutive signals in a batch of the output data
+ * type The transform data type
+ * (e.g., FFT_R2C for single precision real to complex)
+ * batch Batch size for this transform
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_many_cpp(int *rank, int **n, int **inembed,
+ int *istride, int *idist, int **onembed, int *ostride,
+ int *odist, int *fft_type, int *batch){
+
+ assert(HIPFFT_Z2Z==0x69 && "hipFFT_Type enum value mismatch !(HIP update?)");
+ assert(HIPFFT_FORWARD==-1 && "hipFFT direction enum value mismatch (HIP update?)");
+ assert(HIPFFT_BACKWARD == 1 && "hipFFT direction enum value mismatch (HIP update?)");
+
+ hipfftType type = select_hipfft_type(*fft_type);
+ HIP_API_CHECK(hipfftPlanMany(
+ &plan_fft,
+ *rank,
+ *n,
+ *inembed,
+ *istride,
+ *idist,
+ *onembed,
+ *ostride,
+ *odist,
+ type,
+ *batch));
+ HIP_API_CHECK( hipStreamCreate(&stream_compute) );
+ HIP_API_CHECK( hipfftSetStream(plan_fft,stream_compute) );
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_stream_synchronize
+ *
+ * FUNCTION
+ * Wait for any FFT operations still running on stream
+ */
+/*=========================================================================*/
+
+extern "C" void gpu_fft_stream_synchronize_cpp()
+{
+ HIP_API_CHECK( hipStreamSynchronize(stream_compute) );
+}
+
+
+/*=========================================================================*/
+// NAME
+// gpu_fft_plan_destroy
+//
+// FUNCTION
+// Destroy FFT plan
+//
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_plan_destroy_cpp(void){
+ HIP_API_CHECK(hipfftDestroy(plan_fft));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_z2z
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on double-complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_z2z_cpp(void **idata, void **odata, int *direction){
+
+ HIP_API_CHECK(hipfftExecZ2Z(plan_fft, (hipfftDoubleComplex*) (*idata),
+ (hipfftDoubleComplex*) (*odata), *direction));
+}
+
+
+/*=========================================================================*/
+/* NAME
+ * gpu_fft_exec_c2c
+ *
+ * FUNCTION
+ * Run a Fast Fourrier Transform on float complex input and output
+ *
+ * INPUTS
+ * idata Pointer to the complex input data (in GPU memory) to transform
+ * odata Pointer to the complex output data (in GPU memory)
+ * direction The transform direction: FFT_FORWARD or FFT_INVERSE
+ *
+ * OUTPUT
+ * odata Contains the complex Fourier coefficients
+ */
+/*=========================================================================*/
+
+extern "C"
+void gpu_fft_exec_c2c_cpp(void **idata, void **odata, int *direction){
+ HIP_API_CHECK(hipfftExecC2C(plan_fft, (hipfftComplex*) *idata,
+ (hipfftComplex*) *odata, *direction));
+}
+
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.cpp
new file mode 100644
index 00000000..fc9c77aa
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.cpp
@@ -0,0 +1,23 @@
+/* gpu_linalg.cpp */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MSarraute)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain GPU linear algebra encapsulation routines,
+ * that will be callable from fortran routines, by pointing to the relevant
+ * GPU runtime libraries (CUDA for NVIDIA targets, HIP for AMD targets).
+ *
+ */
+
+#include
+
+#ifdef HAVE_GPU_CUDA
+#include "gpu_linalg_cuda.cpp"
+#endif
+#ifdef HAVE_GPU_HIP
+#include "gpu_linalg_hip.cpp"
+#endif
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.h b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.h
new file mode 100644
index 00000000..d3629845
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg.h
@@ -0,0 +1,27 @@
+#ifndef ABINIT_SHARED_COMMON_SRC_17_GPU_LINALG_H
+#define ABINIT_SHARED_COMMON_SRC_17_GPU_LINALG_H
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_GPU_CUDA
+#include
+#include
+#include
+
+extern cublasHandle_t cublas_handle;
+extern cusolverDnHandle_t cusolverDn_handle;
+#endif
+
+#ifdef HAVE_GPU_HIP
+#include
+#include
+#include
+#include
+
+extern hipblasHandle_t hip_handle;
+extern hipsolverDnHandle_t hipsolverDn_handle;
+#endif
+
+#endif // ABINIT_SHARED_COMMON_SRC_17_GPU_LINALG_H
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_cuda.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_cuda.cpp
new file mode 100644
index 00000000..37f11b6a
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_cuda.cpp
@@ -0,0 +1,856 @@
+/* gpu_linalg.cu */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini,FDahm)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain cublas and magma encapsulation routines,
+ * that will be callable from fortran routines
+ *
+ */
+
+#include
+
+cublasHandle_t cublas_handle;
+cusolverDnHandle_t cusolverDn_handle;
+static cudaStream_t stream_compute;
+
+//! utility function for compatiblity between cublas v1/v2 API
+cublasOperation_t select_cublas_op(const char *c)
+{
+ cublasOperation_t op;
+
+ if (*c == 'n' or *c == 'N')
+ op = CUBLAS_OP_N;
+ else if (*c == 't' or *c == 'T')
+ op = CUBLAS_OP_T;
+ else if (*c == 'c' or *c == 'C')
+ op = CUBLAS_OP_C;
+ else
+ printf("CUBLAS API error, character can't be converted to a valid cublas operation !\n");
+
+ return op;
+}
+
+//! utility function for compatiblity between cublas v1/v2 API
+cublasSideMode_t select_cublas_side(const char *c)
+{
+ cublasSideMode_t mode;
+
+ if (*c == 'l' or *c == 'L')
+ mode = CUBLAS_SIDE_LEFT;
+ else if (*c == 'r' or *c == 'R')
+ mode = CUBLAS_SIDE_RIGHT;
+ else
+ printf("CUBLAS API error, character can't be converted to a valid cublas side mode !\n");
+
+ return mode;
+}
+
+//! utility function for compatiblity between cublas v1/v2 API
+cublasFillMode_t select_cublas_fill_mode(const char *c)
+{
+ cublasFillMode_t mode;
+
+ if (*c == 'u' or *c == 'U')
+ mode = CUBLAS_FILL_MODE_UPPER;
+ else if (*c == 'l' or *c == 'L')
+ mode = CUBLAS_FILL_MODE_LOWER;
+ else
+ printf("CUBLAS API error, character can't be converted to a valid cublas fill mode !\n");
+
+ return mode;
+}
+
+//! utility function for compatiblity between cublas v1/v2 API
+cublasDiagType_t select_cublas_diag_type(const char *c)
+{
+ cublasDiagType_t diag;
+
+ if (*c == 'n' or *c == 'N')
+ diag = CUBLAS_DIAG_NON_UNIT;
+ else if (*c == 'u' or *c == 'U')
+ diag = CUBLAS_DIAG_UNIT;
+ else
+ printf("CUBLAS API error, character can't be converted to a valid cublas diag type !\n");
+
+ return diag;
+}
+
+//! utility function to select eigen type
+cusolverEigType_t select_eigen_type(const int eigType_int)
+{
+ cusolverEigType_t eigType = CUSOLVER_EIG_TYPE_1;
+
+ if (eigType_int < 1 or eigType_int > 3)
+ printf("CUSOLVER API error, input can't be converted to a valid cusolver eigen type !\n");
+ else
+ eigType = static_cast(eigType_int);
+
+ return eigType;
+}
+
+//! utility function to select eigen mode
+cusolverEigMode_t select_eigen_mode(const char* c)
+{
+
+ cusolverEigMode_t eigMode = CUSOLVER_EIG_MODE_NOVECTOR;
+
+ if (*c =='n' or *c=='N')
+ eigMode = CUSOLVER_EIG_MODE_NOVECTOR;
+ else if (*c =='v' or *c=='V')
+ eigMode = CUSOLVER_EIG_MODE_VECTOR;
+ else
+ printf("CUSOLVER API error, character can't be converted to a valid eigen mode !\n");
+
+ return eigMode;
+}
+
+
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_init
+//
+// FUNCTION
+// Initialisation of linalg environnement on GPU
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_init_()
+{
+ CUDA_API_CHECK( cublasCreate(&cublas_handle) );
+ CUDA_API_CHECK( cusolverDnCreate(&cusolverDn_handle) );
+ CUDA_API_CHECK( cudaStreamCreate(&stream_compute) );
+ CUDA_API_CHECK( cusolverDnSetStream(cusolverDn_handle,stream_compute) );
+ CUDA_API_CHECK( cublasSetStream(cublas_handle,stream_compute) );
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_shutdown
+//
+// FUNCTION
+// Close linalg environnement on GPU
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_shutdown_()
+{
+ CUDA_API_CHECK( cublasDestroy(cublas_handle) );
+ CUDA_API_CHECK( cusolverDnDestroy(cusolverDn_handle) );
+ CUDA_API_CHECK( cudaStreamDestroy(stream_compute) );
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_stream_synchronize
+//
+// FUNCTION
+// Wait for any linalg operations still running on stream
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_stream_synchronize_()
+{
+ CUDA_API_CHECK( cudaStreamSynchronize(stream_compute) );
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_xgemm
+//
+// FUNCTION
+// Compute a scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// transa= from of op(a) to be used in the matrix multiplication
+// transb= from of op(b) to be used in the matrix multiplication
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xgemm_(int* cplx, char *transA, char *transB, int *N, int *M, int *K,
+ cuDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ cuDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ cublasOperation_t opA = select_cublas_op(transA);
+ cublasOperation_t opB = select_cublas_op(transB);
+
+ (*cplx==1)?
+ CUDA_API_CHECK( cublasDgemm(cublas_handle, opA, opB, *N, *M, *K, &((*alpha).x),
+ (double *)(*A_ptr), *lda,
+ (double *)(*B_ptr), *ldb,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc)) :
+ CUDA_API_CHECK( cublasZgemm(cublas_handle, opA, opB, *N, *M, *K, alpha,
+ (cuDoubleComplex *)(*A_ptr), *lda,
+ (cuDoubleComplex *)(*B_ptr), *ldb,
+ beta,
+ (cuDoubleComplex *)(*C_ptr), *ldc));
+
+} // gpu_xgemm
+
+/*=========================================================================*/
+// NAME
+// gpu_xgemm_strided_batched
+//
+// FUNCTION
+// Compute a batched scalar-matrix-matrix product and return a scalar-matrix product on GPU.
+// Meant to be used on non-contiguous matrixes with data is uniformly split in the same number of batches in each matrix.
+// c = alpha * op(a) * op(b) + beta * c
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// transa = from of op(a) to be used in the matrix multiplication
+// transb = from of op(b) to be used in the matrix multiplication
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// strideC = stride between each batch in matrix a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// strideC = stride between each batch in matrix b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+// strideC = stride between each batch in matrix c
+// batchCount = number of batches in any matrix
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xgemm_strided_batched_(int* cplx, char *transA, char *transB,
+ int *N, int *M, int *K,
+ cuDoubleComplex *alpha,
+ void **A_ptr, int *lda, int *strideA,
+ void** B_ptr, int *ldb, int *strideB,
+ cuDoubleComplex *beta,
+ void** C_ptr, int *ldc, int *strideC, int *batchCount)
+{
+
+ cublasOperation_t opA = select_cublas_op(transA);
+ cublasOperation_t opB = select_cublas_op(transB);
+
+ (*cplx==1)?
+ CUDA_API_CHECK( cublasDgemmStridedBatched(cublas_handle, opA, opB,
+ *N, *M, *K, &((*alpha).x),
+ (double *)(*A_ptr), *lda, *strideA,
+ (double *)(*B_ptr), *ldb, *strideB,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc, *strideC, *batchCount)) :
+ CUDA_API_CHECK( cublasZgemmStridedBatched(cublas_handle, opA, opB,
+ *N, *M, *K, alpha,
+ (cuDoubleComplex *)(*A_ptr), *lda, *strideA,
+ (cuDoubleComplex *)(*B_ptr), *ldb, *strideB,
+ beta,
+ (cuDoubleComplex *)(*C_ptr), *ldc, *strideC, *batchCount));
+} // gpu_xgemm_strided_batched
+
+/*=========================================================================*/
+// NAME
+// gpu_xsymm
+//
+// FUNCTION
+// Compute a symmetric scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c , if side == L
+// c = alpha * op(b) * op(a) + beta * c , if side == R
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// side = Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo = Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsymm_(int* cplx, char *side, char *uplo, int *N, int *M,
+ cuDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ cuDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ cublasSideMode_t sideMode = select_cublas_side(side);
+ cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ (*cplx==1)?
+ CUDA_API_CHECK( cublasDsymm(cublas_handle, sideMode, fillMode, *N, *M, &((*alpha).x),
+ (double *)(*A_ptr), *lda,
+ (double *)(*B_ptr), *ldb,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc)) :
+ CUDA_API_CHECK( cublasZsymm(cublas_handle, sideMode, fillMode, *N, *M, alpha,
+ (cuDoubleComplex *)(*A_ptr), *lda,
+ (cuDoubleComplex *)(*B_ptr), *ldb,
+ beta,
+ (cuDoubleComplex *)(*C_ptr), *ldc));
+} // gpu_xsymm_omp
+
+/*=========================================================================*/
+// NAME
+// gpu_xhemm
+//
+// FUNCTION
+// Compute a Hermitian scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c , if side == L
+// c = alpha * op(b) * op(a) + beta * c , if side == R
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// side = Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo = Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_zhemm_(char *side, char *uplo, int *N, int *M,
+ cuDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ cuDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ cublasSideMode_t sideMode = select_cublas_side(side);
+ cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ CUDA_API_CHECK( cublasZhemm(cublas_handle, sideMode, fillMode, *N, *M, alpha,
+ (cuDoubleComplex *)(*A_ptr), *lda,
+ (cuDoubleComplex *)(*B_ptr), *ldb,
+ beta,
+ (cuDoubleComplex *)(*C_ptr), *ldc));
+} // gpu_zhemm_omp
+
+/*=========================================================================*/
+// NAME
+// gpu_xtrsm
+//
+// FUNCTION
+// Solves a matrix equation (one matrix operand is triangular) on GPU.
+// The xtrsm routines solve one of the following matrix equations
+// op(a)*x = alpha*b
+// or
+// x*op(a) = alpha*b,
+//
+// INPUTS
+// cplx= 1 if real 2 if complex
+// side= Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo= Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// transa= Specifies the form of op(a) to be used in the matrix
+// multiplication as follows:
+// N or n op(a) = a
+// T or t op(a) = a'
+// C or c op(a) = conjg(a')
+// diag= Specifies whether or not a is unit triangular as follows:
+// U or u Matrix a is assumed to be unit triangular.
+// N or n Matrix a is not assumed to be unit triangular.
+// m= Specifies the number of rows of b. The value of m must be at least zero
+// n= Specifies the number of columns of b. The value of n must be at least zero
+// alpha= Specifies the scalar alpha. When alpha is zero, then a is not referenced and b
+// need not be set before entry.
+// a_gpu = pointer to gpu memory location of array a, DIMENSION (lda, k), where k is m when side = 'L' or 'l' and is n
+// when side = 'R' or 'r'.
+// lda= Specifies the first dimension of a as declared in the calling
+// (sub)program. When side = 'L' or 'l', then lda must be at least max(1,
+// m), when side = 'R' or 'r', then lda must be at least max(1, n).
+// b_gpu = pointer to gpu memory location of b Array, DIMENSION (ldb,n). Before entry, the leading m-by-n part of the array
+// b must contain the right-hand side matrix b.
+// ldb= Specifies the first dimension of b as declared in the calling
+// (sub)program. The value of ldb must be at least max(1, m).
+//
+// OUTPUT
+// b_gpu
+/*=========================================================================*/
+
+extern "C" void gpu_xtrsm_(int* cplx, char *side, char *uplo, char *transA, char *diag,
+ int *N, int *M, cuDoubleComplex *alpha,
+ void **A_ptr, int *ldA,
+ void** B_ptr, int *ldB)
+{
+
+ cublasSideMode_t sideMode = select_cublas_side(side);
+ cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+ cublasDiagType_t diagType = select_cublas_diag_type(diag);
+ cublasOperation_t opA = select_cublas_op(transA);
+
+ (*cplx==1) ?
+ cublasDtrsm(cublas_handle, sideMode, fillMode, opA, diagType,
+ *N, *M, &((*alpha).x),
+ (double *)(*A_ptr), *ldA,
+ (double *)(*B_ptr), *ldB):
+ cublasZtrsm(cublas_handle, sideMode, fillMode, opA, diagType,
+ *N, *M, alpha,
+ (cuDoubleComplex *)(*A_ptr), *ldA,
+ (cuDoubleComplex *)(*B_ptr), *ldB);
+} // gpu_xtrsm_
+
+/*=========================================================================*/
+// NAME
+// gpu_xaxpy
+//
+// FUNCTION
+// Compute blas-1 AXPY on GPU
+// y = alpha * x + y
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// alpha = scalar complex value (when doing computation with real value, only the real part is used)
+// x = input vector
+// incrx = increment between two consecutive values of x
+// y = in/out vector
+// incry = increment between two consecutive values of y
+//
+// OUTPUT
+// y
+/*=========================================================================*/
+
+extern "C" void gpu_xaxpy_(int* cplx, int *N,
+ cuDoubleComplex *alpha,
+ void **X_ptr, int *incrx, void** Y_ptr, int *incry)
+{
+
+ CUDA_API_CHECK( (*cplx==1) ?
+ cublasDaxpy(cublas_handle,*N,
+ &((*alpha).x),
+ (double *)(*X_ptr), *incrx,
+ (double *)(*Y_ptr), *incry) :
+ cublasZaxpy(cublas_handle, *N,
+ alpha,
+ (cuDoubleComplex *)(*X_ptr), *incrx,
+ (cuDoubleComplex *)(*Y_ptr), *incry) );
+} // gpu_xaxpy_
+
+/*=========================================================================*/
+// NAME
+// gpu_xcopy
+//
+// FUNCTION
+// Compute blas-1 COPY on GPU
+// y = x (copy x into y)
+//
+// INPUTS / OUTPUTS
+// cplx = 1 if real 2 if complex
+// N = input vector size
+// x = input vector
+// incrx = increment between two consecutive values of x
+// y = output vector
+// incry = increment between two consecutive values of y
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xcopy_(int* cplx, int *N,
+ void **X_ptr, int *incrx,
+ void **Y_ptr, int *incry)
+{
+
+ CUDA_API_CHECK( (*cplx==1) ?
+ cublasDcopy(cublas_handle,*N,
+ (const double *)(*X_ptr), *incrx,
+ ( double *)(*Y_ptr), *incry) :
+ cublasZcopy(cublas_handle, *N,
+ (const cuDoubleComplex *)(*X_ptr), *incrx,
+ ( cuDoubleComplex *)(*Y_ptr), *incry) );
+} // gpu_xcopy_
+
+/*=========================================================================*/
+// NAME
+// gpu_xscal
+//
+// FUNCTION
+// Compute blas-1 SCAL on GPU
+// x = alpha * x
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// N = vector size
+// alpha = scalar complex value (when doing computation with real value, only the real part is used)
+// x = input/output vector
+// incrx = increment between two consecutive values of x
+//
+// OUTPUT
+// x
+/*=========================================================================*/
+
+extern "C" void gpu_xscal_(int* cplx, int *N,
+ cuDoubleComplex *alpha,
+ void **X_ptr, int *incrx)
+{
+
+ CUDA_API_CHECK( (*cplx==1) ?
+ cublasDscal(cublas_handle,*N,
+ &((*alpha).x),
+ (double *)(*X_ptr), *incrx) :
+ cublasZscal(cublas_handle, *N,
+ alpha,
+ (cuDoubleComplex *)(*X_ptr), *incrx) );
+} // gpu_xscal_
+
+/*=========================================================================*/
+// NAME
+// gpu_xpotrf
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// computes the Cholesky factorization of a Hermitian positive-definite matrix
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dpotrf.f
+//
+// INPUTS
+// uplo = character, 'u' or 'l'
+// n = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xpotrf_(const int* cplx,
+ const char* uplo,
+ const int* n,
+ void **A_ptr,
+ const int *lda,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ int* devInfo;
+ CUDA_API_CHECK( cudaMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDpotrf(cusolverDn_handle,
+ fillMode, *n,
+ (double*)(*A_ptr), *lda,
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZpotrf(cusolverDn_handle,
+ fillMode, *n,
+ (cuDoubleComplex*)(*A_ptr), *lda,
+ (cuDoubleComplex*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+
+ CUDA_API_CHECK( cudaMemcpy(info, devInfo, 1*sizeof(int), cudaMemcpyDefault) );
+
+ CUDA_API_CHECK( cudaFree(devInfo) );
+
+} // gpu_xpotrf_
+
+extern "C" void gpu_xpotrf_buffersize_(const int* cplx,
+ const char* uplo,
+ const int* n,
+ void **A_ptr,
+ const int *lda,
+ int* lwork)
+{
+
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDpotrf_bufferSize(cusolverDn_handle,
+ fillMode, *n,
+ (double*)(*A_ptr), *lda,
+ lwork) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZpotrf_bufferSize(cusolverDn_handle,
+ fillMode, *n,
+ (cuDoubleComplex*)(*A_ptr), *lda,
+ lwork) );
+ }
+
+} // gpu_xpotrf_bufferSize_
+
+/*=========================================================================*/
+// NAME
+// gpu_xsygvd
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// compute eigen values/vectors of a real generalized
+// symmetric-definite eigenproblem
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dsygvd.f
+//
+// INPUTS
+// itype = integer, type of problem
+// jobz = character, 'n'(eigenvalues only) or 'v' (eigenvalues + eigenvectors)
+// uplo = character, 'u' or 'l'
+// A_nrows = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// B_ptr = pointer to gpu memory location of matrix B
+// ldb = leading dimension of matrix B
+// W_ptr = pointer to gpu memory location of matrix W (output eigen values)
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsygvd_(const int* cplx,
+ const int* itype,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** B_ptr,
+ const int* ldb,
+ void** W_ptr,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const cusolverEigType_t itype_cu = select_eigen_type(*itype);
+ const cusolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ int* devInfo;
+ CUDA_API_CHECK( cudaMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDsygvd(cusolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*B_ptr), *ldb,
+ (double*)(*W_ptr),
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZhegvd(cusolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (cuDoubleComplex*)(*A_ptr), *lda,
+ (cuDoubleComplex*)(*B_ptr), *ldb,
+ (double*)(*W_ptr),
+ (cuDoubleComplex*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+
+ CUDA_API_CHECK( cudaMemcpy(info, devInfo, 1*sizeof(int), cudaMemcpyDefault) );
+
+ CUDA_API_CHECK( cudaFree(devInfo) );
+
+} // gpu_xsygvd_
+
+
+extern "C" void gpu_xsygvd_buffersize_(const int* cplx,
+ const int* itype,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** B_ptr,
+ const int* ldb,
+ void** W_ptr,
+ int* lwork)
+{
+
+ const cusolverEigType_t itype_cu = select_eigen_type(*itype);
+ const cusolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDsygvd_bufferSize(cusolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (const double*)(*A_ptr), *lda,
+ (const double*)(*B_ptr), *ldb,
+ (const double*)(*W_ptr), lwork) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZhegvd_bufferSize(cusolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (const cuDoubleComplex*)(*A_ptr), *lda,
+ (const cuDoubleComplex*)(*B_ptr), *ldb,
+ (const double*)(*W_ptr), lwork) );
+ }
+
+} // gpu_xsygvd_bufferSize_
+
+
+/*=========================================================================*/
+// NAME
+// gpu_xsyevd
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// compute eigen values/vectors of a real generalized
+// symmetric-definite eigenproblem
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dsyevd.f
+//
+// INPUTS
+// itype = integer, type of problem
+// jobz = character, 'n'(eigenvalues only) or 'v' (eigenvalues + eigenvectors)
+// uplo = character, 'u' or 'l'
+// A_nrows = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// B_ptr = pointer to gpu memory location of matrix B
+// ldb = leading dimension of matrix B
+// W_ptr = pointer to gpu memory location of matrix W (output eigen values)
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsyevd_(const int* cplx,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** W_ptr,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const cusolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ int* devInfo;
+ CUDA_API_CHECK( cudaMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDsyevd(cusolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*W_ptr),
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZheevd(cusolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (cuDoubleComplex*)(*A_ptr), *lda,
+ (double*)(*W_ptr),
+ (cuDoubleComplex*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+
+ CUDA_API_CHECK( cudaMemcpy(info, devInfo, 1*sizeof(int), cudaMemcpyDefault) );
+
+ CUDA_API_CHECK( cudaFree(devInfo) );
+
+} // gpu_xsyevd_
+
+extern "C" void gpu_xsyevd_buffersize_(const int* cplx,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** W_ptr,
+ int* lwork)
+{
+
+ const cusolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const cublasFillMode_t fillMode = select_cublas_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ CUDA_API_CHECK( cusolverDnDsyevd_bufferSize(cusolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (const double*)(*A_ptr), *lda,
+ (const double*)(*W_ptr), lwork) );
+ }
+ else
+ {
+ CUDA_API_CHECK( cusolverDnZheevd_bufferSize(cusolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (const cuDoubleComplex*)(*A_ptr), *lda,
+ (const double*)(*W_ptr), lwork) );
+ }
+
+} // gpu_xsyevd_bufferSize_
diff --git a/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_hip.cpp b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_hip.cpp
new file mode 100644
index 00000000..f0d4d3c9
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/gpu_linalg_hip.cpp
@@ -0,0 +1,894 @@
+/* gpu_linalg.cu */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini,FDahm)
+ * this file is distributed under the terms of the
+ * gnu general public license, see ~abinit/COPYING
+ * or http://www.gnu.org/copyleft/gpl.txt .
+ * for the initials of contributors, see ~abinit/doc/developers/contributors.txt.
+ *
+ * The main goal of this file is to contain hipblas and magma encapsulation routines,
+ * that will be callable from fortran routines
+ *
+ */
+
+#include
+#include
+#include
+
+// SYEVG/SYGVD are too slow when using HIP (on CRAY)
+// We choose instead SYEVJ/SYGVJ (Jacobi) instead
+// with a ridiculous number of iterations
+// This has to be tested forward...
+hipblasHandle_t hipblas_handle;
+hipsolverDnHandle_t hipsolverDn_handle;
+static hipStream_t stream_compute;
+
+// Parameters to HIP SYEVJ and SYGVJ (Jacobi-based eigensolver)
+hipsolverSyevjInfo_t syevj_params = nullptr;
+const int MAX_SWEEPS = 1;
+const double TOLERANCE = 1.e-5;
+
+//! utility function for compatiblity between hipblas v1/v2 API
+hipblasOperation_t select_hipblas_op(char *c)
+{
+ hipblasOperation_t op;
+
+ if (*c == 'n' or *c == 'N')
+ op = HIPBLAS_OP_N;
+ else if (*c == 't' or *c == 'T')
+ op = HIPBLAS_OP_T;
+ else if (*c == 'c' or *c == 'C')
+ op = HIPBLAS_OP_C;
+ else
+ printf("HIPBLAS API error, character can't be converted to a valid hipblas operation !\n");
+
+ return op;
+}
+
+//! utility function for compatiblity between hipblas v1/v2 API
+hipblasSideMode_t select_hipblas_side(char *c)
+{
+ hipblasSideMode_t mode;
+
+ if (*c == 'l' or *c == 'L')
+ mode = HIPBLAS_SIDE_LEFT;
+ else if (*c == 'r' or *c == 'R')
+ mode = HIPBLAS_SIDE_RIGHT;
+ else
+ printf("HIPBLAS API error, character can't be converted to a valid hipblas side mode !\n");
+
+ return mode;
+}
+
+//! utility function for compatiblity between hipblas v1/v2 API
+hipblasFillMode_t select_hipblas_fill_mode(const char *c)
+{
+ hipblasFillMode_t mode;
+
+ if (*c == 'u' or *c == 'U')
+ mode = HIPBLAS_FILL_MODE_UPPER;
+ else if (*c == 'l' or *c == 'L')
+ mode = HIPBLAS_FILL_MODE_LOWER;
+ else
+ printf("HIPBLAS API error, character can't be converted to a valid hipblas fill mode !\n");
+
+ return mode;
+}
+
+//! utility function for compatiblity between hipblas v1/v2 API
+hipblasDiagType_t select_hipblas_diag_type(char *c)
+{
+ hipblasDiagType_t diag;
+
+ if (*c == 'n' or *c == 'N')
+ diag = HIPBLAS_DIAG_NON_UNIT;
+ else if (*c == 'u' or *c == 'U')
+ diag = HIPBLAS_DIAG_UNIT;
+ else
+ printf("HIPBLAS API error, character can't be converted to a valid hipblas diag type !\n");
+
+ return diag;
+}
+
+//! utility function to select eigen type
+hipsolverEigType_t select_eigen_type(const int eigType_int)
+{
+ hipsolverEigType_t eigType = HIPSOLVER_EIG_TYPE_1;
+
+ if (eigType_int < 1 or eigType_int > 3)
+ printf("HIPSOLVER API error, input can't be converted to a valid hipsolver eigen type !\n");
+ else if(eigType_int == 1)
+ eigType = HIPSOLVER_EIG_TYPE_1;
+ else if(eigType_int == 2)
+ eigType = HIPSOLVER_EIG_TYPE_2;
+ else if(eigType_int == 3)
+ eigType = HIPSOLVER_EIG_TYPE_3;
+
+ return eigType;
+}
+
+//! utility function to select eigen mode
+hipsolverEigMode_t select_eigen_mode(const char* c)
+{
+
+ hipsolverEigMode_t eigMode = HIPSOLVER_EIG_MODE_NOVECTOR;
+
+ if (*c =='n' or *c=='N')
+ eigMode = HIPSOLVER_EIG_MODE_NOVECTOR;
+ else if (*c =='v' or *c=='V')
+ eigMode = HIPSOLVER_EIG_MODE_VECTOR;
+ else
+ printf("HIPSOLVER API error, character can't be converted to a valid eigen mode !\n");
+
+ return eigMode;
+}
+
+hipsolverFillMode_t select_hipsolver_fill_mode(const char *c)
+{
+ hipsolverFillMode_t mode;
+
+ if (*c == 'u' or *c == 'U')
+ mode = HIPSOLVER_FILL_MODE_UPPER;
+ else if (*c == 'l' or *c == 'L')
+ mode = HIPSOLVER_FILL_MODE_LOWER;
+ else
+ printf("HIPBLAS API error, character can't be converted to a valid hipsolver fill mode !\n");
+
+ return mode;
+}
+
+
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_init
+//
+// FUNCTION
+// Initialisation of linalg environnement on GPU
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_init_()
+{
+ HIP_API_CHECK( hipblasCreate(&hipblas_handle) );
+ HIP_API_CHECK( hipsolverDnCreate(&hipsolverDn_handle) );
+ HIP_API_CHECK( hipStreamCreate(&stream_compute) );
+ HIP_API_CHECK( hipsolverDnSetStream(hipsolverDn_handle,stream_compute) );
+ HIP_API_CHECK( hipblasSetStream(hipblas_handle,stream_compute) );
+
+ HIP_API_CHECK(hipsolverCreateSyevjInfo(&syevj_params));
+ HIP_API_CHECK(hipsolverXsyevjSetTolerance(syevj_params, TOLERANCE));
+ HIP_API_CHECK(hipsolverXsyevjSetMaxSweeps(syevj_params, MAX_SWEEPS));
+ //fprintf(stdout, "Initializing hipBLAS, this may take 10 seconds...\n");
+ //fflush(stdout);
+ rocblas_initialize();
+ rocfft_setup();
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_shutdown
+//
+// FUNCTION
+// Close linalg environnement on GPU
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_shutdown_()
+{
+ //FIXME
+ //HIP_API_CHECK( hipblasDestroy(hipblas_handle) );
+ hipblasDestroy(hipblas_handle);
+ HIP_API_CHECK( hipsolverDestroySyevjInfo(syevj_params) );
+ HIP_API_CHECK( hipsolverDnDestroy(hipsolverDn_handle) );
+ HIP_API_CHECK( hipStreamDestroy(stream_compute) );
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_linalg_stream_synchronize
+//
+// FUNCTION
+// Wait for any linalg operations still running on stream
+//
+/*=========================================================================*/
+
+extern "C" void gpu_linalg_stream_synchronize_()
+{
+ HIP_API_CHECK( hipStreamSynchronize(stream_compute) );
+}
+
+/*=========================================================================*/
+// NAME
+// gpu_xgemm
+//
+// FUNCTION
+// Compute a scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// transa= from of op(a) to be used in the matrix multiplication
+// transb= from of op(b) to be used in the matrix multiplication
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xgemm_(int* cplx, char *transA, char *transB, int *N, int *M, int *K,
+ hipDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ hipDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ hipblasOperation_t opA = select_hipblas_op(transA);
+ hipblasOperation_t opB = select_hipblas_op(transB);
+
+ (*cplx==1)?
+ hipblasDgemm(hipblas_handle, opA, opB, *N, *M, *K, &((*alpha).x),
+ (double *)(*A_ptr), *lda,
+ (double *)(*B_ptr), *ldb,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc) :
+ hipblasZgemm(hipblas_handle, opA, opB, *N, *M, *K, (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*A_ptr), *lda,
+ (hipblasDoubleComplex *)(*B_ptr), *ldb,
+ (hipblasDoubleComplex *) beta,
+ (hipblasDoubleComplex *)(*C_ptr), *ldc);
+
+} // gpu_xgemm
+
+/*=========================================================================*/
+// NAME
+// gpu_xgemm_strided_batched
+//
+// FUNCTION
+// Compute a batched scalar-matrix-matrix product and return a scalar-matrix product on GPU.
+// Meant to be used on non-contiguous matrixes with data is uniformly split in the same number of batches in each matrix.
+// c = alpha * op(a) * op(b) + beta * c
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// transa = from of op(a) to be used in the matrix multiplication
+// transb = from of op(b) to be used in the matrix multiplication
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// strideC = stride between each batch in matrix a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// strideC = stride between each batch in matrix b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+// strideC = stride between each batch in matrix c
+// batchCount = number of batches in any matrix
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xgemm_strided_batched_(int* cplx, char *transA, char *transB,
+ int *N, int *M, int *K,
+ hipDoubleComplex *alpha,
+ void **A_ptr, int *lda, int *strideA,
+ void** B_ptr, int *ldb, int *strideB,
+ hipDoubleComplex *beta,
+ void** C_ptr, int *ldc, int *strideC, int *batchCount)
+{
+
+ hipblasOperation_t opA = select_hipblas_op(transA);
+ hipblasOperation_t opB = select_hipblas_op(transB);
+
+ (*cplx==1)?
+ HIP_API_CHECK( hipblasDgemmStridedBatched(hipblas_handle, opA, opB,
+ *N, *M, *K, &((*alpha).x),
+ (double *)(*A_ptr), *lda, *strideA,
+ (double *)(*B_ptr), *ldb, *strideB,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc, *strideC, *batchCount)) :
+ HIP_API_CHECK( hipblasZgemmStridedBatched(hipblas_handle, opA, opB,
+ *N, *M, *K, (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*A_ptr), *lda, *strideA,
+ (hipblasDoubleComplex *)(*B_ptr), *ldb, *strideB,
+ (hipblasDoubleComplex *) beta,
+ (hipblasDoubleComplex *)(*C_ptr), *ldc, *strideC, *batchCount));
+} // gpu_xgemm_strided_batched
+
+/*=========================================================================*/
+// NAME
+// gpu_xsymm
+//
+// FUNCTION
+// Compute a symmetric scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c , if side == L
+// c = alpha * op(b) * op(a) + beta * c , if side == R
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// side = Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo = Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsymm_(int* cplx, char *side, char *uplo, int *N, int *M,
+ hipDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ hipDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ hipblasSideMode_t sideMode = select_hipblas_side(side);
+ hipblasFillMode_t fillMode = select_hipblas_fill_mode(uplo);
+
+ (*cplx==1)?
+ HIP_API_CHECK( hipblasDsymm(hipblas_handle, sideMode, fillMode, *N, *M, &((*alpha).x),
+ (double *)(*A_ptr), *lda,
+ (double *)(*B_ptr), *ldb,
+ &((*beta).x),
+ (double *)(*C_ptr), *ldc)) :
+ HIP_API_CHECK( hipblasZsymm(hipblas_handle, sideMode, fillMode, *N, *M, (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*A_ptr), *lda,
+ (hipblasDoubleComplex *)(*B_ptr), *ldb,
+ (hipblasDoubleComplex *) beta,
+ (hipblasDoubleComplex *)(*C_ptr), *ldc));
+} // gpu_xsymm_omp
+
+/*=========================================================================*/
+// NAME
+// gpu_xhemm
+//
+// FUNCTION
+// Compute a Hermitian scalar-matrix-matrix product and return a scalar-matrix product on GPU
+// c = alpha * op(a) * op(b) + beta * c , if side == L
+// c = alpha * op(b) * op(a) + beta * c , if side == R
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// side = Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo = Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// m = number of rows of the matrix op(a) and of the matrix c
+// n = number of rows of the matrix op(b) and the number of columns of the matrix c
+// k = number of columns of the matrix op(a) and the number of rows of the matrix op(b)
+// alpha = alpha scalar coefficient for matrix op(a)
+// a_gpu = pointer to gpu memory location of matrix a
+// lda = first dimension of a
+// b_gpu = pointer to gpu memory location of matrix b
+// ldb = first dimension of b
+// beta = beta scalar coefficient for matrix c
+// c_gpu = pointer to gpu memory location of matrix c
+// ldc = first dimension of c
+//
+// OUTPUT
+// c_gpu = c_gpu matrix
+//
+/*=========================================================================*/
+
+extern "C" void gpu_zhemm_(char *side, char *uplo, int *N, int *M,
+ hipDoubleComplex *alpha,
+ void **A_ptr, int *lda, void** B_ptr, int *ldb,
+ hipDoubleComplex *beta, void** C_ptr, int *ldc)
+{
+
+ hipblasSideMode_t sideMode = select_hipblas_side(side);
+ hipblasFillMode_t fillMode = select_hipblas_fill_mode(uplo);
+
+ HIP_API_CHECK( hipblasZhemm(hipblas_handle, sideMode, fillMode, *N, *M, (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*A_ptr), *lda,
+ (hipblasDoubleComplex *)(*B_ptr), *ldb,
+ (hipblasDoubleComplex *) beta,
+ (hipblasDoubleComplex *)(*C_ptr), *ldc));
+} // gpu_zhemm_omp
+
+/*=========================================================================*/
+// NAME
+// gpu_xtrsm
+//
+// FUNCTION
+// Solves a matrix equation (one matrix operand is triangular) on GPU.
+// The xtrsm routines solve one of the following matrix equations
+// op(a)*x = alpha*b
+// or
+// x*op(a) = alpha*b,
+//
+// INPUTS
+// cplx= 1 if real 2 if complex
+// side= Specifies whether op(a) appears on the left or right of x for
+// the operation to be performed as follows:
+// L or l op(a)*x = alpha*b
+// R or r x*op(a) = alpha*b
+// uplo= Specifies whether the matrix a is an upper or lower triangular
+// matrix as follows:
+// U or u Matrix a is an upper triangular matrix.
+// L or l Matrix a is a lower triangular matrix
+// transa= Specifies the form of op(a) to be used in the matrix
+// multiplication as follows:
+// N or n op(a) = a
+// T or t op(a) = a'
+// C or c op(a) = conjg(a')
+// diag= Specifies whether or not a is unit triangular as follows:
+// U or u Matrix a is assumed to be unit triangular.
+// N or n Matrix a is not assumed to be unit triangular.
+// m= Specifies the number of rows of b. The value of m must be at least zero
+// n= Specifies the number of columns of b. The value of n must be at least zero
+// alpha= Specifies the scalar alpha. When alpha is zero, then a is not referenced and b
+// need not be set before entry.
+// a_gpu = pointer to gpu memory location of array a, DIMENSION (lda, k), where k is m when side = 'L' or 'l' and is n
+// when side = 'R' or 'r'.
+// lda= Specifies the first dimension of a as declared in the calling
+// (sub)program. When side = 'L' or 'l', then lda must be at least max(1,
+// m), when side = 'R' or 'r', then lda must be at least max(1, n).
+// b_gpu = pointer to gpu memory location of b Array, DIMENSION (ldb,n). Before entry, the leading m-by-n part of the array
+// b must contain the right-hand side matrix b.
+// ldb= Specifies the first dimension of b as declared in the calling
+// (sub)program. The value of ldb must be at least max(1, m).
+//
+// OUTPUT
+// b_gpu
+/*=========================================================================*/
+
+extern "C" void gpu_xtrsm_(int* cplx, char *side, char *uplo, char *transA, char *diag,
+ int *N, int *M, hipDoubleComplex *alpha,
+ void **A_ptr, int *ldA,
+ void** B_ptr, int *ldB)
+{
+
+ hipblasSideMode_t sideMode = select_hipblas_side(side);
+ hipblasFillMode_t fillMode = select_hipblas_fill_mode(uplo);
+ hipblasDiagType_t diagType = select_hipblas_diag_type(diag);
+ hipblasOperation_t opA = select_hipblas_op(transA);
+
+ (*cplx==1) ?
+ hipblasDtrsm(hipblas_handle, sideMode, fillMode, opA, diagType,
+ *N, *M, &((*alpha).x),
+ (double *)(*A_ptr), *ldA,
+ (double *)(*B_ptr), *ldB):
+ hipblasZtrsm(hipblas_handle, sideMode, fillMode, opA, diagType,
+ *N, *M, (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*A_ptr), *ldA,
+ (hipblasDoubleComplex *)(*B_ptr), *ldB);
+} // gpu_xtrsm_
+
+/*=========================================================================*/
+// NAME
+// gpu_xaxpy
+//
+// FUNCTION
+// Compute blas-1 AXPY on GPU
+// y = alpha * x + y
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// alpha = scalar complex value (when doing computation with real value, only the real part is used)
+// x = input vector
+// incrx = increment between two consecutive values of x
+// y = in/out vector
+// incry = increment between two consecutive values of y
+//
+// OUTPUT
+// y
+/*=========================================================================*/
+
+extern "C" void gpu_xaxpy_(int* cplx, int *N,
+ hipDoubleComplex *alpha,
+ void **X_ptr, int *incrx, void** Y_ptr, int *incry)
+{
+ HIP_API_CHECK( (*cplx==1) ?
+ hipblasDaxpy(hipblas_handle,*N,
+ &((*alpha).x),
+ (double *)(*X_ptr), *incrx,
+ (double *)(*Y_ptr), *incry) :
+ hipblasZaxpy(hipblas_handle, *N,
+ (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*X_ptr), *incrx,
+ (hipblasDoubleComplex *)(*Y_ptr), *incry) );
+} // gpu_xaxpy_
+
+/*=========================================================================*/
+// NAME
+// gpu_xcopy
+//
+// FUNCTION
+// Compute blas-1 COPY on GPU
+// y = x (copy x into y)
+//
+// INPUTS / OUTPUTS
+// cplx = 1 if real 2 if complex
+// N = input vector size
+// x = input vector
+// incrx = increment between two consecutive values of x
+// y = output vector
+// incry = increment between two consecutive values of y
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xcopy_(int* cplx, int *N,
+ void **X_ptr, int *incrx,
+ void **Y_ptr, int *incry)
+{
+
+ HIP_API_CHECK( (*cplx==1) ?
+ hipblasDcopy(hipblas_handle,*N,
+ (const double *)(*X_ptr), *incrx,
+ ( double *)(*Y_ptr), *incry) :
+ hipblasZcopy(hipblas_handle, *N,
+ (const hipblasDoubleComplex *)(*X_ptr), *incrx,
+ ( hipblasDoubleComplex *)(*Y_ptr), *incry) );
+} // gpu_xcopy_
+
+/*=========================================================================*/
+// NAME
+// gpu_xscal
+//
+// FUNCTION
+// Compute blas-1 SCAL on GPU
+// x = alpha * x
+//
+// INPUTS
+// cplx = 1 if real 2 if complex
+// N = vector size
+// alpha = scalar complex value (when doing computation with real value, only the real part is used)
+// x = input/output vector
+// incrx = increment between two consecutive values of x
+//
+// OUTPUT
+// x
+/*=========================================================================*/
+
+extern "C" void gpu_xscal_(int* cplx, int *N,
+ hipDoubleComplex *alpha,
+ void **X_ptr, int *incrx)
+{
+ HIP_API_CHECK( (*cplx==1) ?
+ hipblasDscal(hipblas_handle,*N,
+ &((*alpha).x),
+ (double *)(*X_ptr), *incrx) :
+ hipblasZscal(hipblas_handle, *N,
+ (hipblasDoubleComplex *) alpha,
+ (hipblasDoubleComplex *)(*X_ptr), *incrx) );
+} // gpu_xscal_
+
+/*=========================================================================*/
+// NAME
+// gpu_xpotrf
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// computes the Cholesky factorization of a Hermitian positive-definite matrix
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dpotrf.f
+//
+// INPUTS
+// uplo = character, 'u' or 'l'
+// n = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xpotrf_(const int* cplx,
+ const char* uplo,
+ const int* n,
+ void **A_ptr,
+ const int *lda,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ int* devInfo;
+ HIP_API_CHECK( hipMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDpotrf(hipsolverDn_handle,
+ fillMode, *n,
+ (double*)(*A_ptr), *lda,
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZpotrf(hipsolverDn_handle,
+ fillMode, *n,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ (hipDoubleComplex*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+
+ HIP_API_CHECK( hipMemcpy(info, devInfo, 1*sizeof(int), hipMemcpyDefault) );
+
+ HIP_API_CHECK( hipFree(devInfo) );
+
+} // gpu_xpotrf_
+
+extern "C" void gpu_xpotrf_buffersize_(const int* cplx,
+ const char* uplo,
+ const int* n,
+ void **A_ptr,
+ const int *lda,
+ int* lwork)
+{
+
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDpotrf_bufferSize(hipsolverDn_handle,
+ fillMode, *n,
+ (double*)(*A_ptr), *lda,
+ lwork) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZpotrf_bufferSize(hipsolverDn_handle,
+ fillMode, *n,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ lwork) );
+ }
+
+} // gpu_xpotrf_bufferSize_
+
+/*=========================================================================*/
+// NAME
+// gpu_xsygvd
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// compute eigen values/vectors of a real generalized
+// symmetric-definite eigenproblem
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dsygvd.f
+//
+// INPUTS
+// itype = integer, type of problem
+// jobz = character, 'n'(eigenvalues only) or 'v' (eigenvalues + eigenvectors)
+// uplo = character, 'u' or 'l'
+// A_nrows = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// B_ptr = pointer to gpu memory location of matrix B
+// ldb = leading dimension of matrix B
+// W_ptr = pointer to gpu memory location of matrix W (output eigen values)
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsygvd_(const int* cplx,
+ const int* itype,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** B_ptr,
+ const int* ldb,
+ void** W_ptr,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const hipsolverEigType_t itype_cu = select_eigen_type(*itype);
+ const hipsolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ int* devInfo;
+ HIP_API_CHECK( hipMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDsygvd(hipsolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*B_ptr), *ldb,
+ (double*)(*W_ptr),
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZhegvj(hipsolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ (hipDoubleComplex*)(*B_ptr), *ldb,
+ (double*)(*W_ptr),
+ (hipDoubleComplex*)(*work_ptr),
+ *lwork, devInfo, syevj_params) );
+ }
+
+ HIP_API_CHECK( hipMemcpy(info, devInfo, 1*sizeof(int), hipMemcpyDefault) );
+
+ HIP_API_CHECK( hipFree(devInfo) );
+
+} // gpu_xsygvd_
+
+
+extern "C" void gpu_xsygvd_buffersize_(const int* cplx,
+ const int* itype,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** B_ptr,
+ const int* ldb,
+ void** W_ptr,
+ int* lwork)
+{
+
+ const hipsolverEigType_t itype_cu = select_eigen_type(*itype);
+ const hipsolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDsygvd_bufferSize(hipsolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*B_ptr), *ldb,
+ (double*)(*W_ptr), lwork) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZhegvj_bufferSize(hipsolverDn_handle, itype_cu,
+ jobz_cu, fillMode, *A_nrows,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ (hipDoubleComplex*)(*B_ptr), *ldb,
+ (double*)(*W_ptr), lwork, syevj_params) );
+ }
+
+} // gpu_xsygvd_bufferSize_
+
+
+/*=========================================================================*/
+// NAME
+// gpu_xsyevd
+//
+// FUNCTION
+// Compute a LAPACK SYGVD operation on GPU
+// compute eigen values/vectors of a real generalized
+// symmetric-definite eigenproblem
+//
+// See LAPACK doc in reference implementation:
+// https://github.com/Reference-LAPACK/lapack/blob/master/SRC/dsyevd.f
+//
+// INPUTS
+// itype = integer, type of problem
+// jobz = character, 'n'(eigenvalues only) or 'v' (eigenvalues + eigenvectors)
+// uplo = character, 'u' or 'l'
+// A_nrows = matrix size
+// A_ptr = pointer to gpu memory location of matrix A
+// lda = leading dimension of matrix A
+// B_ptr = pointer to gpu memory location of matrix B
+// ldb = leading dimension of matrix B
+// W_ptr = pointer to gpu memory location of matrix W (output eigen values)
+// work_ptr =
+// lwork =
+// devInfo =
+//
+/*=========================================================================*/
+
+extern "C" void gpu_xsyevd_(const int* cplx,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** W_ptr,
+ void** work_ptr,
+ int* lwork,
+ int* info)
+{
+
+ const hipsolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ int* devInfo;
+ HIP_API_CHECK( hipMalloc( (void**) &devInfo, 1*sizeof(int)) );
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDsyevd(hipsolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*W_ptr),
+ (double*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZheevd(hipsolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ (double*)(*W_ptr),
+ (hipDoubleComplex*)(*work_ptr),
+ *lwork, devInfo) );
+ }
+
+ HIP_API_CHECK( hipMemcpy(info, devInfo, 1*sizeof(int), hipMemcpyDefault) );
+
+ HIP_API_CHECK( hipFree(devInfo) );
+
+} // gpu_xsyevd_
+
+extern "C" void gpu_xsyevd_buffersize_(const int* cplx,
+ const char* jobz,
+ const char* uplo,
+ const int* A_nrows,
+ void **A_ptr,
+ const int *lda,
+ void** W_ptr,
+ int* lwork)
+{
+
+ const hipsolverEigMode_t jobz_cu = select_eigen_mode(jobz);
+ const hipsolverFillMode_t fillMode = select_hipsolver_fill_mode(uplo);
+
+ if (*cplx == 1)
+ {
+ HIP_API_CHECK( hipsolverDnDsyevd_bufferSize(hipsolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (double*)(*A_ptr), *lda,
+ (double*)(*W_ptr), lwork) );
+ }
+ else
+ {
+ HIP_API_CHECK( hipsolverDnZheevd_bufferSize(hipsolverDn_handle,
+ jobz_cu, fillMode, *A_nrows,
+ (hipDoubleComplex*)(*A_ptr), *lda,
+ (double*)(*W_ptr), lwork) );
+ }
+
+} // gpu_xsyevd_bufferSize_
diff --git a/GX-PAW/common/src/17_gpu_toolbox/hip_api_error_check.h b/GX-PAW/common/src/17_gpu_toolbox/hip_api_error_check.h
new file mode 100644
index 00000000..1cb69168
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/hip_api_error_check.h
@@ -0,0 +1,554 @@
+/**
+ * HIP API error checking utilities.
+ *
+ * This header is loosely translated from its CUDA counterpart,
+ * which itself is slightly adapted from cuda samples
+ * https://github.com/Nvidia/cuda-samples
+ *
+ * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of NVIDIA CORPORATION nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef HIP_API_ERROR_CHECK_H_
+#define HIP_API_ERROR_CHECK_H_
+
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+//#include
+#include
+#include // for fflush
+#include
+
+#ifndef assertm
+#define assertm(exp, msg) assert(((void)msg, exp))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ // this is defined in shared/common/src/16_hideleave/m_errors.F90
+ void abi_cabort();
+
+#ifdef __cplusplus
+}
+#endif
+
+// when this header is used inside abinit, call abi_cabort when an error happens
+// otherwise, do a regular exit
+// we assume here that if config.h (from abinit is included first, then ABINIT_VERSION will be defined)
+#ifdef ABINIT_VERSION
+#define ABORT() abi_cabort()
+#else
+#define ABORT() { \
+ exit(EXIT_FAILURE); \
+ }
+#endif
+
+
+/*
+ * If symbol ALWAYS_SYNC_GPU is defined in your build system
+ * then we will always call hipDeviceSynchronize, before checking
+ * last error from a hip kernel call.
+ *
+ * It may help in case of debugging to define ALWAYS_SYNC_GPU, but for a
+ * regular run, it should remains to 0.
+ *
+ * Note: you can also enforce syncing CPU/GPU by set environment variable HIP_LAUNCH_BLOCKING to 1
+ *
+ * See also: https://www.olcf.ornl.gov/wp-content/uploads/2021/06/hip_training_series_hip_debugging.pdf
+ */
+#ifdef ALWAYS_SYNC_GPU
+#define FORCE_SYNC_GPU 1
+#else
+#define FORCE_SYNC_GPU 0
+#endif
+
+
+// HIP Runtime error messages
+static const char *_hipGetErrorEnum(hipError_t error) {
+ return hipGetErrorName(error);
+}
+
+// cuBLAS API errors
+static const char *_hipGetErrorEnum(hipblasStatus_t error) {
+ return hipblasStatusToString(error);
+}
+
+#ifdef HIP_DRIVER_API
+// HIP Driver API errors
+static const char *_hipGetErrorEnum(CUresult error) {
+ static char unknown[] = "";
+ const char *ret = NULL;
+ cuGetErrorName(error, &ret);
+ return ret ? ret : unknown;
+}
+#endif
+
+#ifdef HIPBLAS_API_H_
+// cuBLAS API errors
+static const char *_hipGetErrorEnum(cublasStatus_t error) {
+ switch (error) {
+ case HIPBLAS_STATUS_SUCCESS:
+ return "HIPBLAS_STATUS_SUCCESS";
+
+ case HIPBLAS_STATUS_NOT_INITIALIZED:
+ return "HIPBLAS_STATUS_NOT_INITIALIZED";
+
+ case HIPBLAS_STATUS_ALLOC_FAILED:
+ return "HIPBLAS_STATUS_ALLOC_FAILED";
+
+ case HIPBLAS_STATUS_INVALID_VALUE:
+ return "HIPBLAS_STATUS_INVALID_VALUE";
+
+ case HIPBLAS_STATUS_ARCH_MISMATCH:
+ return "HIPBLAS_STATUS_ARCH_MISMATCH";
+
+ case HIPBLAS_STATUS_MAPPING_ERROR:
+ return "HIPBLAS_STATUS_MAPPING_ERROR";
+
+ case HIPBLAS_STATUS_EXEHIPTION_FAILED:
+ return "HIPBLAS_STATUS_EXEHIPTION_FAILED";
+
+ case HIPBLAS_STATUS_INTERNAL_ERROR:
+ return "HIPBLAS_STATUS_INTERNAL_ERROR";
+
+ case HIPBLAS_STATUS_NOT_SUPPORTED:
+ return "HIPBLAS_STATUS_NOT_SUPPORTED";
+
+ case HIPBLAS_STATUS_LICENSE_ERROR:
+ return "HIPBLAS_STATUS_LICENSE_ERROR";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef HIPFFT_H_
+// hipFFT API errors
+static const char *_hipGetErrorEnum(hipfftResult error) {
+ switch (error) {
+ case HIPFFT_SUCCESS:
+ return "HIPFFT_SUCCESS";
+
+ case HIPFFT_INVALID_PLAN:
+ return "HIPFFT_INVALID_PLAN";
+
+ case HIPFFT_ALLOC_FAILED:
+ return "HIPFFT_ALLOC_FAILED";
+
+ case HIPFFT_INVALID_TYPE:
+ return "HIPFFT_INVALID_TYPE";
+
+ case HIPFFT_INVALID_VALUE:
+ return "HIPFFT_INVALID_VALUE";
+
+ case HIPFFT_INTERNAL_ERROR:
+ return "HIPFFT_INTERNAL_ERROR";
+
+ case HIPFFT_EXEC_FAILED:
+ return "HIPFFT_EXEC_FAILED";
+
+ case HIPFFT_SETUP_FAILED:
+ return "HIPFFT_SETUP_FAILED";
+
+ case HIPFFT_INVALID_SIZE:
+ return "HIPFFT_INVALID_SIZE";
+
+ case HIPFFT_UNALIGNED_DATA:
+ return "HIPFFT_UNALIGNED_DATA";
+
+ case HIPFFT_INCOMPLETE_PARAMETER_LIST:
+ return "HIPFFT_INCOMPLETE_PARAMETER_LIST";
+
+ case HIPFFT_INVALID_DEVICE:
+ return "HIPFFT_INVALID_DEVICE";
+
+ case HIPFFT_PARSE_ERROR:
+ return "HIPFFT_PARSE_ERROR";
+
+ case HIPFFT_NO_WORKSPACE:
+ return "HIPFFT_NO_WORKSPACE";
+
+ case HIPFFT_NOT_IMPLEMENTED:
+ return "HIPFFT_NOT_IMPLEMENTED";
+
+ case HIPFFT_NOT_SUPPORTED:
+ return "HIPFFT_NOT_SUPPORTED";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef _HIPSPARSE_H_
+// cuSPARSE API errors
+static const char *_hipGetErrorEnum(hipsparseStatus_t error) {
+ switch (error) {
+ case HIPSPARSE_STATUS_SUCCESS:
+ return "HIPSPARSE_STATUS_SUCCESS";
+
+ case HIPSPARSE_STATUS_NOT_INITIALIZED:
+ return "HIPSPARSE_STATUS_NOT_INITIALIZED";
+
+ case HIPSPARSE_STATUS_ALLOC_FAILED:
+ return "HIPSPARSE_STATUS_ALLOC_FAILED";
+
+ case HIPSPARSE_STATUS_INVALID_VALUE:
+ return "HIPSPARSE_STATUS_INVALID_VALUE";
+
+ case HIPSPARSE_STATUS_ARCH_MISMATCH:
+ return "HIPSPARSE_STATUS_ARCH_MISMATCH";
+
+ case HIPSPARSE_STATUS_MAPPING_ERROR:
+ return "HIPSPARSE_STATUS_MAPPING_ERROR";
+
+ case HIPSPARSE_STATUS_EXECUTION_FAILED:
+ return "HIPSPARSE_STATUS_EXECUTION_FAILED";
+
+ case HIPSPARSE_STATUS_INTERNAL_ERROR:
+ return "HIPSPARSE_STATUS_INTERNAL_ERROR";
+
+ case HIPSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED:
+ return "HIPSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED";
+
+ case HIPSPARSE_STATUS_ZERO_PIVOT:
+ return "HIPSPARSE_STATUS_ZERO_PIVOT";
+
+ case HIPSPARSE_STATUS_NOT_SUPPORTED:
+ return "HIPSPARSE_STATUS_NOT_SUPPORTED";
+
+ case HIPSPARSE_STATUS_INSUFFICIENT_RESOURCES:
+ return "HIPSPARSE_STATUS_INSUFFICIENT_RESOURCES";
+ }
+
+ return "";
+}
+#endif
+
+#ifdef HIPSOLVER_H
+// cuSOLVER API errors
+static const char *_hipGetErrorEnum(hipsolverStatus_t error) {
+ switch (error) {
+ case HIPSOLVER_STATUS_SUCCESS:
+ return "HIPSOLVER_STATUS_SUCCESS";
+ case HIPSOLVER_STATUS_NOT_INITIALIZED:
+ return "HIPSOLVER_STATUS_NOT_INITIALIZED";
+ case HIPSOLVER_STATUS_ALLOC_FAILED:
+ return "HIPSOLVER_STATUS_ALLOC_FAILED";
+ case HIPSOLVER_STATUS_INVALID_VALUE:
+ return "HIPSOLVER_STATUS_INVALID_VALUE";
+ case HIPSOLVER_STATUS_ARCH_MISMATCH:
+ return "HIPSOLVER_STATUS_ARCH_MISMATCH";
+ case HIPSOLVER_STATUS_MAPPING_ERROR:
+ return "HIPSOLVER_STATUS_MAPPING_ERROR";
+ case HIPSOLVER_STATUS_EXECUTION_FAILED:
+ return "HIPSOLVER_STATUS_EXECUTION_FAILED";
+ case HIPSOLVER_STATUS_INTERNAL_ERROR:
+ return "HIPSOLVER_STATUS_INTERNAL_ERROR";
+ case HIPSOLVER_STATUS_HANDLE_IS_NULLPTR:
+ return "HIPSOLVER_STATUS_HANDLE_IS_NULLPTR";
+ case HIPSOLVER_STATUS_INVALID_ENUM:
+ return "HIPSOLVER_STATUS_INVALID_ENUM";
+ case HIPSOLVER_STATUS_UNKNOWN:
+ return "HIPSOLVER_STATUS_UNKNOWN";
+ case HIPSOLVER_STATUS_NOT_SUPPORTED:
+ return "HIPSOLVER_STATUS_NOT_SUPPORTED ";
+ }
+
+ return "";
+}
+#endif
+
+
+#ifdef HIPRAND_H_
+// hipRAND API errors
+static const char *_hipGetErrorEnum(hiprandStatus_t error) {
+ switch (error) {
+ case HIPRAND_STATUS_SUCCESS:
+ return "HIPRAND_STATUS_SUCCESS";
+
+ case HIPRAND_STATUS_VERSION_MISMATCH:
+ return "HIPRAND_STATUS_VERSION_MISMATCH";
+
+ case HIPRAND_STATUS_NOT_INITIALIZED:
+ return "HIPRAND_STATUS_NOT_INITIALIZED";
+
+ case HIPRAND_STATUS_ALLOCATION_FAILED:
+ return "HIPRAND_STATUS_ALLOCATION_FAILED";
+
+ case HIPRAND_STATUS_TYPE_ERROR:
+ return "HIPRAND_STATUS_TYPE_ERROR";
+
+ case HIPRAND_STATUS_OUT_OF_RANGE:
+ return "HIPRAND_STATUS_OUT_OF_RANGE";
+
+ case HIPRAND_STATUS_LENGTH_NOT_MULTIPLE:
+ return "HIPRAND_STATUS_LENGTH_NOT_MULTIPLE";
+
+ case HIPRAND_STATUS_DOUBLE_PRECISION_REQUIRED:
+ return "HIPRAND_STATUS_DOUBLE_PRECISION_REQUIRED";
+
+ case HIPRAND_STATUS_LAUNCH_FAILURE:
+ return "HIPRAND_STATUS_LAUNCH_FAILURE";
+
+ case HIPRAND_STATUS_PREEXISTING_FAILURE:
+ return "HIPRAND_STATUS_PREEXISTING_FAILURE";
+
+ case HIPRAND_STATUS_INITIALIZATION_FAILED:
+ return "HIPRAND_STATUS_INITIALIZATION_FAILED";
+
+ case HIPRAND_STATUS_ARCH_MISMATCH:
+ return "HIPRAND_STATUS_ARCH_MISMATCH";
+
+ case HIPRAND_STATUS_NOT_IMPLEMENTED:
+ return "HIPRAND_STATUS_NOT_IMPLEMENTED";
+
+ case HIPRAND_STATUS_INTERNAL_ERROR:
+ return "HIPRAND_STATUS_INTERNAL_ERROR";
+ }
+
+ return "";
+}
+#endif
+
+template
+void check_hip_error(T result, char const *const func, const char *const file,
+ int const line) {
+ if (result) {
+ fprintf(stderr, "HIP error at :\n\t%s:%d \n\treturn code = %d (%s)\n\t\"%s\" \n\n",
+ file, line,
+ static_cast(result), _hipGetErrorEnum(result), func);
+ fflush(stderr);
+ ABORT();
+ }
+}
+
+// This will output the proper HIP error strings in the event
+// that a HIP host call returns an error
+#define CHECK_HIP_ERROR(value) check_hip_error((value), #value, __FILE__, __LINE__)
+#define HIP_API_CHECK(value) CHECK_HIP_ERROR(value)
+
+
+// This will output the proper error string when calling hipGetLastError
+#define getLastHipError(msg) __getLastHipError(msg, __FILE__, __LINE__)
+#define GET_LAST_HIP_ERROR(msg) getLastHipError(msg)
+
+inline void __getLastHipError(const char *errorMessage, const char *file,
+ const int line) {
+ hipError_t err = hipGetLastError();
+
+ if (hipSuccess != err) {
+ fprintf(stderr,
+ "%s(%i) : getLastHipError() HIP error :"
+ " %s : (%d) %s.\n",
+ file, line, errorMessage, static_cast(err),
+ hipGetErrorString(err));
+
+ // Make sure we call HIP Device Reset before exiting
+ err = hipDeviceReset();
+
+ ABORT();
+ }
+}
+
+// This will only print the proper error string when calling hipGetLastError
+// but not exit program incase error detected.
+#define printLastHipError(msg) __printLastHipError(msg, __FILE__, __LINE__)
+#define PRINT_LAST_HIP_ERROR(msg) printLastHipError(msg)
+
+inline void __printLastHipError(const char *errorMessage, const char *file,
+ const int line) {
+ hipError_t err = hipGetLastError();
+
+ if (hipSuccess != err) {
+ fprintf(stderr,
+ "%s(%i) : getLastHipError() HIP error :"
+ " %s : (%d) %s.\n",
+ file, line, errorMessage, static_cast(err),
+ hipGetErrorString(err));
+ }
+}
+
+
+/**
+ * enum used below; can be used as the second argument of macro
+ * HIP_KERNEL_CHECK
+ */
+enum device_sync_t {
+ DEVICE_NO_SYNC = 0,
+ DEVICE_SYNC = 1
+};
+
+
+/**
+ * a simple macro helper:
+ * GET_KERNEL_CHECK_MACRO always picks the 3rd arg
+ *
+ * see https://stackoverflow.com/questions/11761703/overloading-macro-on-number-of-arguments
+ */
+#define GET_KERNEL_CHECK_MACRO(_1,_2,NAME,...) NAME
+
+/**
+ * another simple macro helper :
+ * - if HIP_KERNEL_CHECK is called with only 1 argument, then HIP_KERNEL_CHECK1 is chosen
+ * - if HIP_KERNEL_CHECK is called with 2 arguments, then HIP_KERNEL_CHECK2 is chosen
+ *
+ *
+ * this is the macro we want to call
+ */
+#define HIP_KERNEL_CHECK(...) GET_KERNEL_CHECK_MACRO(__VA_ARGS__, HIP_KERNEL_CHECK2, HIP_KERNEL_CHECK1)(__VA_ARGS__)
+
+/**
+ * Preprocessor macro helping to retrieve the exact code
+ * location where the error was emitted.
+ *
+ * Default behavior, don't synchronize device
+ */
+#define HIP_KERNEL_CHECK1(msg) hip_kernel_check((msg), __FILE__, __LINE__, DEVICE_NO_SYNC)
+
+/**
+ * Same as above, but let the user chose if we want to synchronize device.
+ */
+#define HIP_KERNEL_CHECK2(msg,sync) hip_kernel_check((msg), __FILE__, __LINE__, sync)
+
+/**
+ * Check last HIP kernel call status.
+ * If it was not successfull then print error message.
+ *
+ * \param[in] errstr error message to print
+ * \param[in] file source filename where error occured
+ * \param[in] line line number where error occured
+ * \param[in] sync integer, 0 means no device synchronization
+ */
+static void hip_kernel_check(const char* errstr,
+ const char* file,
+ const int line,
+ const int sync)
+{
+
+ auto status = hipGetLastError();
+
+ if (sync or FORCE_SYNC_GPU) {
+ //fprintf(stderr, "syncing device\n");
+ hipDeviceSynchronize();
+ }
+
+ if (status != hipSuccess) {
+ fprintf(stderr,
+ "%s(%i) : getLastHipError() HIP error :"
+ " %s : (%d) %s.\n",
+ file, line, errstr, static_cast(status),
+ hipGetErrorString(status));
+
+ //hipDeviceReset();
+ //exit(EXIT_FAILURE);
+ }
+
+} // hip_kernel_check
+
+inline const char* _ConvertSMVer2ArchName(int major, int minor) {
+ // Defines for GPU Architecture types (using the SM version to determine
+ // the GPU Arch name)
+ typedef struct {
+ int SM; // 0xMm (hexidecimal notation), M = SM Major version,
+ // and m = SM minor version
+ const char* name;
+ } sSMtoArchName;
+
+ sSMtoArchName nGpuArchNameSM[] = {
+ {0x30, "Kepler"},
+ {0x32, "Kepler"},
+ {0x35, "Kepler"},
+ {0x37, "Kepler"},
+ {0x50, "Maxwell"},
+ {0x52, "Maxwell"},
+ {0x53, "Maxwell"},
+ {0x60, "Pascal"},
+ {0x61, "Pascal"},
+ {0x62, "Pascal"},
+ {0x70, "Volta"},
+ {0x72, "Xavier"},
+ {0x75, "Turing"},
+ {0x80, "Ampere"},
+ {0x86, "Ampere"},
+ {0x89, "AdaLovelace"},
+ {0x90, "Hopper"},
+ {-1, "Graphics Device"}};
+
+ int index = 0;
+
+ while (nGpuArchNameSM[index].SM != -1) {
+ if (nGpuArchNameSM[index].SM == ((major << 4) + minor)) {
+ return nGpuArchNameSM[index].name;
+ }
+
+ index++;
+ }
+
+ // If we don't find the values, we default use the previous one
+ // to run properly
+ printf(
+ "MapSMtoArchName for SM %d.%d is undefined."
+ " Default to use %s\n",
+ major, minor, nGpuArchNameSM[index - 1].name);
+ return nGpuArchNameSM[index - 1].name;
+}
+
+
+#ifdef __HIP_RUNTIME_H__
+
+// General check for HIP GPU SM Capabilities
+inline bool checkHipCapabilities(int major_version, int minor_version) {
+ int dev;
+ int major = 0, minor = 0;
+
+ CHECK_HIP_ERROR(hipGetDevice(&dev));
+ CHECK_HIP_ERROR(hipDeviceGetAttribute(&major, hipDevAttrComputeCapabilityMajor, dev));
+ CHECK_HIP_ERROR(hipDeviceGetAttribute(&minor, hipDevAttrComputeCapabilityMinor, dev));
+
+ if ((major > major_version) ||
+ (major == major_version &&
+ minor >= minor_version)) {
+ printf(" Device %d: <%16s >, Compute SM %d.%d detected\n", dev,
+ _ConvertSMVer2ArchName(major, minor), major, minor);
+ return true;
+ } else {
+ printf(
+ " No GPU device was found that can support "
+ "HIP compute capability %d.%d.\n",
+ major_version, minor_version);
+ return false;
+ }
+}
+#endif /* __HIP_RUNTIME_H__ */
+
+
+#endif /* HIP_API_ERROR_CHECK_H_ */
diff --git a/GX-PAW/common/src/17_gpu_toolbox/m_gpu_detect.F90 b/GX-PAW/common/src/17_gpu_toolbox/m_gpu_detect.F90
new file mode 100644
index 00000000..75e57faa
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/m_gpu_detect.F90
@@ -0,0 +1,196 @@
+!!****m* ABINIT/m_gpu_detect
+!! NAME
+!! m_gpu_detect
+!!
+!! FUNCTION
+!! Detects the GPU associated to any cpu and associates a GPU, if
+!! possible, to any proc
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group (MMancini)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+
+module m_gpu_detect
+
+ use m_abicore
+
+ use defs_basis
+ use m_xmpi
+
+#if defined HAVE_GPU_CUDA
+ use m_initcuda, only : Get_ndevice
+#endif
+
+
+ implicit none
+
+ private
+
+ public :: &
+ find_set_gpu, & !Calc. the number of point,GPU,for any proc
+ get_topo !Put the topology of machine in an integer
+CONTAINS !===========================================================
+!!***
+
+
+!!****f* m_gpu_detect/find_set_gpu
+!! NAME
+!! find_set_gpu
+!!
+!! FUNCTION
+!! Calculate the number of point,GPU,for any proc
+!!
+!! INPUTS
+!! nproc= number of processor
+!! commcart= mpi communicator
+!!
+!! OUTPUT
+!! ngpu=total number of gpu distributed on all node <=nproc
+!! gpu_map(0,nproc-1)=contains for any proc the associated device
+!! number. -1 if no gpu is associated
+!!
+!! SOURCE
+
+ subroutine find_set_gpu(nproc,commcart,gpu_map,ngpu)
+
+ implicit none
+
+
+!Arguments ------------------------------------
+ integer,intent(in) :: nproc,commcart
+ integer,intent(out) :: ngpu
+ integer,intent(out) :: gpu_map(0:nproc-1)
+!Local ---------------------------
+ integer :: ierr,ndev,avail_gpu
+ integer :: me,icpu,cpu_map_me
+ character(20) :: name_ch
+ character(20) :: nodes(0:nproc-1)
+ character(500) :: msg
+! *********************************************************************
+
+ ngpu = 0
+ gpu_map = -1
+ ndev = 0
+ me = 0
+
+#if defined HAVE_GPU_CUDA
+ me = xmpi_comm_rank(commcart)
+
+ !--Get the number of compatible device on this CPU
+ call Get_ndevice(ndev)
+
+ if(nproc == 1) then
+ if(ndev /= 0) gpu_map(0) = 0
+ ngpu = count(gpu_map>-1)
+ return
+ end if
+
+ !--Get the name of the node
+ call xmpi_name(name_ch,ierr)
+
+ !--Array containing the number of gpu seen by any cpu
+ call xmpi_allgather(ndev,gpu_map,commcart,ierr)
+ ! write(std_out,*)' me,nedevice ',gpu_map
+
+ !--Array containing the name of the cpu
+ call xmpi_allgather(name_ch,nodes,commcart,ierr)
+
+ !--Printing Nodes name
+ write(msg,'(3a)')&
+ & ' -Node names---------------',ch10,&
+ & ' me name '
+ call wrtout(std_out,msg,'COLL')
+ do icpu=0,nproc-1
+ write(msg,'(i5,a22)') icpu,trim(nodes(icpu))
+ call wrtout(std_out,msg,'COLL')
+ end do
+
+ !--research of the cpu on the same node of this cpu
+ ! write(std_out,*)'ndev ',ndev
+ icpu = 0
+ avail_gpu = ndev
+ cpu_map_me = -1
+ do while(avail_gpu /= 0 .and. icpu <= me )
+ if( trim(nodes(icpu)) == trim(name_ch)) then
+ !--yes on the same node
+ if(me == icpu) cpu_map_me = ndev-avail_gpu
+ avail_gpu = avail_gpu -1
+ endif
+ icpu = icpu +1
+ end do
+
+ !--All cpu know the cpu with associated gpu (and which gpu on the node)
+ !--Now gpu_map contains the number of the device which is associated
+ ! with any cpu (-1 if not)
+ call xmpi_allgather(cpu_map_me,gpu_map,commcart,ierr)
+
+ !--Count the total number of gpu
+ ngpu = count(gpu_map>-1)
+ !write(std_out,*)'total gpu',ngpu
+
+#endif
+
+end subroutine find_set_gpu
+!!***
+
+!!****f* m_gpu_detect/get_topo
+!! NAME
+!! get_topo
+!!
+!! FUNCTION
+!! Put the topology of machine in an integer
+!!
+!! INPUTS
+!! nproc= number of processor
+!! ngpu = mpi communicator
+!!
+!! OUTPUT
+!! topo= 0: 1 cpu;
+!! 1: n cpu;
+!! 2: 1 cpu 1 gpu;
+!! 3: n cpu n gpu
+!! 4: n cpu > m gpu;
+!! 5: n cpu < m gpu
+!!
+!! SOURCE
+
+ subroutine get_topo(nproc,ngpu,topo)
+
+ implicit none
+
+!Arguments ------------------------------------
+ integer,intent(in) :: nproc,ngpu
+ integer,intent(out) :: topo
+!Local ---------------------------
+ integer :: ierr,ndev,avail_gpu
+! *********************************************************************
+ topo = 0
+ if(nproc>1) topo = 1 !ncpu>1
+ if(ngpu==0) return !no gpu
+
+ if(ngpu==nproc)then
+ topo = 2 !1cpu,1gpu
+ if (nproc>1)topo = 3 !ncpu,ngpu
+ return
+ else
+ topo = 4 !ncpu>ngpu
+ if(nproc=0)
+ ! device can be CPU deviceId = -1)
+ subroutine gpu_data_prefetch_async(dev_ptr, count, deviceId)
+ use, intrinsic :: iso_c_binding
+ implicit none
+ type(c_ptr), value :: dev_ptr
+ integer(kind=C_SIZE_T), value :: count
+ integer(kind=C_INT32_T), value,optional :: deviceId
+
+ integer(kind=C_INT32_T) :: currentDevId
+
+ ! if a device id is provided, use it
+ ! if not, just probe driver to get current device id
+ if (present(deviceId)) then
+
+ if ( deviceId >= CPU_DEVICE_ID ) then
+ call gpu_data_prefetch_async_f(dev_ptr, count, deviceId)
+ end if
+
+ else
+
+ call gpu_get_device(currentDevId)
+ call gpu_data_prefetch_async_f(dev_ptr, count, currentDevId)
+
+ end if
+
+ end subroutine gpu_data_prefetch_async
+
+#endif
+#endif
+
+end module m_gpu_toolbox
+!!***
diff --git a/GX-PAW/common/src/17_gpu_toolbox/m_initcuda.F90 b/GX-PAW/common/src/17_gpu_toolbox/m_initcuda.F90
new file mode 100644
index 00000000..48de0809
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/m_initcuda.F90
@@ -0,0 +1,584 @@
+!!****m* ABINIT/m_initcuda
+!! NAME
+!! m_initcuda
+!!
+!! FUNCTION
+!! Module containing all variables concerning GPU device
+!! and the functions needed to extract them
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (MMancini, MT, FDahm)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! Is an experimental development
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#if defined HAVE_GPU_CUDA
+#include "cuda_common.h"
+#endif
+
+#include "abi_common.h"
+
+module m_initcuda
+
+ use defs_basis
+ use m_abicore
+ use m_xomp
+ use m_xmpi, only: xmpi_world,xmpi_comm_rank,xmpi_comm_size,xmpi_abort
+
+#ifdef HAVE_KOKKOS
+ use m_kokkos_utils
+#endif
+
+#ifdef HAVE_YAKL
+ use gator_mod
+#endif
+
+ implicit none
+
+#if defined HAVE_GPU_CUDA
+ integer,parameter,public :: cudap=kind(CUDA_KIND)
+#endif
+
+!Structures
+!!***
+
+!!****t* m_initcuda/devGPU_type
+!! NAME
+!! devGPU_type
+!!
+!! FUNCTION
+!! This structured datatype used to contains GPU properties
+!!
+!!
+!! SOURCE
+ type,public :: devGPU_type
+ integer :: ndevice !--number of available devices
+ real(dp),allocatable :: maxmemdev(:) !--max global memory on any device
+ end type devGPU_type
+!!***
+
+ private
+
+ private :: &
+ prt_device_info !, & ! To print information about GPU
+ ! get_fastest_devices ! Get fastest GPU devices
+
+ public :: &
+ InitGPU, & ! Initialise GPU
+ Get_Mem_Dev, & ! To obtain the max memory available on GPU device
+ Get_ndevice, & ! Number of devices of Capability>1.2
+ CleanGPU, & ! Clean devGPU_type variables
+ setdevice_cuda, & ! Set device, print info, ...
+ unsetdevice_cuda ! Unset device
+
+
+CONTAINS !===========================================================
+!!***
+
+
+!!****f* m_initcuda/prt_device_info
+!! NAME
+!! prt_device_info
+!!
+!! FUNCTION
+!! Print information about GPU device
+!!
+!! SOURCE
+
+ subroutine prt_device_info(device)
+
+ implicit none
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: device
+!Local variables ------------------------------
+!scalars
+ integer :: gflops,constmem,sharemem
+ integer :: ii,regist,lenname,ncores,nprocs
+ real(sp) :: globalmem,clockRate
+ character(20) :: name
+ character(20) :: formatdev
+ character(60) :: gflops_stg
+ character(500) :: msg
+!arrays
+ integer :: vers(0:1)
+! *********************************************************************
+#if defined HAVE_GPU
+ write(msg,'(a,80a)')' ',('_',ii=1,80)
+ call wrtout(std_out,msg,'PERS')
+ write(msg,'(a25,a25,a31,a)') '________________________',&
+& ' Graphic Card Properties ','_______________________________' ,ch10
+ call wrtout(std_out,msg,'PERS')
+
+ call get_dev_info(device,name,lenname,vers,globalmem,clockRate,gflops,constmem,sharemem,regist,nprocs,ncores)
+ if (gflops<0) then
+ gflops_stg="undefined (add new def. in version_2_cores function)"
+ else
+ write(gflops_stg,'(i7,a)') gflops,' GFP'
+ end if
+
+ write(formatdev,'(a12,i4,a)') '(a23,i4,a3,a',lenname,')'
+ write (msg,formatdev)&
+ & ' Device ',device,' : ',name(1:lenname)
+ call wrtout(std_out,msg,'PERS')
+ write (msg,'(a,2(i1,a),a,i9,a,a,a,f7.1,a,a,a,i9,a,i9,4a,2(a,i9,2a),a,i9,a)')&
+ & ' Revision number: ',vers(0),'.',vers(1),ch10, &
+ & ' Total amount of global memory: ',nint(globalmem),' Mbytes',ch10, &
+ & ' Clock rate: ',clockRate,' GHz',ch10, &
+ & ' Number of processors/cores: ',nprocs,'/',ncores,ch10, &
+ & ' Max GFLOPS: ',trim(gflops_stg),ch10, &
+ & ' Total constant memory: ',constmem,' bytes',ch10, &
+ & ' Shared memory per block: ',sharemem,' bytes',ch10, &
+ & ' Number of registers per block: ',regist,ch10
+ call wrtout(std_out,msg,'PERS')
+ if(device == -1)then
+ write(msg,'(a)')' no cuda-GPU devices found'
+ call wrtout(std_out,msg,'PERS')
+ end if
+ write(msg,'(a,80a)')' ',('_',ii=1,80)
+ call wrtout(std_out,msg,'PERS')
+#endif
+ end subroutine prt_device_info
+!!***
+
+
+!!****f* m_initcuda/InitGPU
+!! NAME
+!! InitGPU
+!!
+!! FUNCTION
+!! Print information about GPU device
+!!
+!! SOURCE
+
+ subroutine InitGPU(gpuinfo,device)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: device
+ type(devGPU_type),intent(inout) :: gpuinfo
+!Local variables ------------------------------
+!scalars
+ real(sp) :: locmax
+! *********************************************************************
+ gpuinfo%ndevice = 0
+#if defined HAVE_GPU
+!--Initialization
+ if(device>-1)then
+ !--Get the number of device for this proc
+ gpuinfo%ndevice = 1
+ ABI_MALLOC(gpuinfo%maxmemdev,(0:1))
+ call get_GPU_max_mem(device,locmax)
+ gpuinfo%maxmemdev(0:1) = locmax
+ call prt_device_info(device)
+ endif
+#endif
+ end subroutine InitGPU
+!!***
+
+
+!****f* m_initcuda/Get_ndevice
+!! NAME
+!! Get_ndevice
+!!
+!! FUNCTION
+!! Give the number of device with capability>=1.2
+!!
+!! SOURCE
+
+ subroutine Get_ndevice(ndevice)
+
+ implicit none
+!Arguments ------------------------------------
+!scalars
+ integer,intent(out) :: ndevice
+! *********************************************************************
+#if defined HAVE_GPU
+!--Get the number of device for this proc
+ call c_get_ndevice(ndevice)
+#endif
+ end subroutine Get_ndevice
+!!***
+
+
+
+!!****f* m_initcuda/Get_Mem_Dev
+!! NAME
+!! Get_Mem_Dev
+!!
+!! FUNCTION
+!! Get the max memory availeble on device
+!!
+!! INPUTS
+!! device device number
+!!
+!! OUTPUT
+!! max_mem_dev
+!!
+!! SOURCE
+
+subroutine Get_Mem_Dev(device,max_mem_dev)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: device
+ real(sp),intent(out) :: max_mem_dev
+!Local variables ------------------------------
+! *********************************************************************
+#if defined HAVE_GPU
+ call get_GPU_max_mem(device,max_mem_dev)
+#endif
+end subroutine Get_Mem_Dev
+!!***
+
+
+!!****f* m_initcuda/CleanGPU
+!! NAME
+!! CleanGPU
+!!
+!! FUNCTION
+!! Print information about GPU device
+!!
+!! SOURCE
+
+ subroutine CleanGPU(gpuinfo)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ type(devGPU_type),intent(inout) :: gpuinfo
+! *********************************************************************
+#if defined HAVE_GPU
+ if (allocated(gpuinfo%maxmemdev)) then
+ ABI_FREE(gpuinfo%maxmemdev)
+ end if
+#endif
+
+ end subroutine CleanGPU
+!!***
+
+
+!!****f* m_initcuda/setdevice_cuda
+!! NAME
+!! setdevice_cuda
+!!
+!! FUNCTION
+!! Detect and activate a GPU device from current CPU core
+!!
+!! INPUTS
+!! gpu_devices(12)= list of GPU devices to choose on one node (in case of multiple devices);
+!! if set to 20*-1, will choose the devices by order of performances.
+!!
+!! SIDE EFFECTS
+!! gpu_option= which GPU implementation is used (None, CUDA, OpenMP, Kokkos)
+!!
+!! SOURCE
+
+ subroutine setdevice_cuda(gpu_devices_node,gpu_option)
+
+#ifdef FC_NAG
+ use f90_unix_proc
+#endif
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(inout) :: gpu_option
+!arrays
+ integer, intent(in) :: gpu_devices_node(12)
+!Local variables ------------------------------
+!scalars
+ integer :: device,ii,jj,me,nb_devices,nproc
+ logical :: testopen
+ character(len=500) :: msg
+ type(devGPU_type) :: gpuinfo
+!arrays
+ integer,allocatable :: fastest_devices(:)
+! *********************************************************************
+
+ if (gpu_option==ABI_GPU_DISABLED) return
+
+ nproc=xmpi_comm_size(xmpi_world)
+ me=xmpi_comm_rank(xmpi_world)
+
+#if defined HAVE_GPU
+ device=-1
+ call c_get_ndevice(nb_devices)
+ !nb_devices=min(nb_devices,20)
+ if(nb_devices>0) then
+ if(nb_devices==1) then
+ device=0
+ else if(all(gpu_devices_node(1:nb_devices)==-1)) then
+ ABI_MALLOC(fastest_devices,(0:nproc-1))
+ call get_fastest_devices(fastest_devices,nb_devices)
+ device=fastest_devices(me)
+ ABI_FREE(fastest_devices)
+ else
+ jj=nb_devices
+ do ii=jj,2,-1
+ if(gpu_devices_node(ii)==-1) nb_devices=ii-1
+ end do
+ device=gpu_devices_node(1+mod(me,nb_devices))
+ end if
+
+ ! Initialize Kokkos and YAKL if requested
+ if(gpu_option==ABI_GPU_KOKKOS .or. gpu_option==ABI_GPU_LEGACY) then
+#ifdef HAVE_KOKKOS
+ ! initialize kokkos
+ if (xmpi_comm_rank(xmpi_world) == 0) then
+ write(std_out,*)'initializinging kokkos in MPI process ', xmpi_comm_rank(xmpi_world)
+ end if
+ call kokkos_initialize()
+
+ ! only master MPI process print kokkos config
+ if (xmpi_comm_rank(xmpi_world) == 0) then
+ call abinit_kokkos_print_config()
+ endif
+#endif
+
+#ifdef HAVE_YAKL
+ call gator_init()
+#endif
+ end if
+
+ call set_dev(device)
+ call check_context(nb_devices,msg)
+ if(gpu_option==ABI_GPU_OPENMP) then
+ call xomp_set_default_device(device)
+ end if
+ if(nb_devices==1) then !allocation succeed
+ write(msg, '(4a,i1,2a)' ) ch10,&
+& ' setdevice_cuda : COMMENT -',ch10,&
+& ' GPU ',device,' has been properly initialized, continuing...',ch10
+ call wrtout(std_out,msg,'PERS')
+ else !gpu allocation failed we print error message returned and exit
+ device=-1
+ call wrtout(std_out,msg,'COLL')
+ call xmpi_abort()
+ inquire(std_out,OPENED=testopen)
+ if (testopen) close(std_out)
+#if defined FC_NAG
+ call exit(-1)
+#elif defined HAVE_FC_EXIT
+ call exit(1)
+#else
+ stop 1
+#endif
+ end if
+ call InitGPU(gpuinfo,device)
+ call CleanGPU(gpuinfo)
+ else
+ gpu_option=ABI_GPU_DISABLED
+ end if
+#endif
+ end subroutine setdevice_cuda
+!!***
+
+
+!!****f* m_initcuda/unsetdevice_cuda
+!! NAME
+!! unsetdevice_cuda
+!!
+!! FUNCTION
+!! Deactivate a GPU device from current CPU core
+!!
+!! INPUTS
+!! gpu_option= which GPU implementation is used (None, CUDA, OpenMP, Kokkos)
+!!
+!! SOURCE
+
+ subroutine unsetdevice_cuda(gpu_option)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: gpu_option
+!Local variables ------------------------------
+!scalars
+ character(len=500) :: msg
+! *********************************************************************
+
+ if (gpu_option==ABI_GPU_DISABLED) return
+
+#if defined HAVE_GPU
+
+ ! Closing YAKL and Kokkos if opened
+ if (gpu_option==ABI_GPU_KOKKOS) then
+#ifdef HAVE_YAKL
+ call gator_finalize()
+ write(std_out,*)'yakl gator finalized'
+#endif
+#ifdef HAVE_KOKKOS
+ ! finalize kokkos
+ call kokkos_finalize()
+ write(std_out,*)'kokkos finalized'
+#endif
+ !kokkos_finalize already reset GPU context
+ !if (gpu_option/=ABI_GPU_KOKKOS) call unset_dev()
+ end if
+
+ if (gpu_option==ABI_GPU_LEGACY) then
+ call unset_dev()
+ end if
+
+#endif
+ end subroutine unsetdevice_cuda
+!!***
+
+
+!!****f* m_initcuda/get_fastest_devices
+!! NAME
+!! get_fastest_devices
+!!
+!! FUNCTION
+!! In case of multiple devices, sort them by performances
+!! and output the resulting list of devices.
+!!
+!! SOURCE
+
+ subroutine get_fastest_devices(devices,nb_devices)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nb_devices
+ integer,intent(out) :: devices(:)
+!Local variables ------------------------------
+!scalars
+ integer :: ii,nproc
+ character(len=500) :: msg
+#if defined HAVE_GPU
+ integer :: constmem,gflops,jj,lenname,nprocs,ncores,regist,sharemem
+ real(sp) :: clockRate,globalmem
+ character(len=20) :: name
+#endif
+!arrays
+#if defined HAVE_GPU
+ integer :: vers(0:1)
+ integer,allocatable :: isort(:)
+ real(dp),allocatable :: flops(:),mem(:)
+#endif
+
+! *********************************************************************
+
+ nproc=xmpi_comm_size(xmpi_world)
+ if (size(devices)/=nproc) stop 'wrong size for devices array!'
+
+!Default
+ do ii=0,nproc-1
+ devices(ii+1) = MOD(ii,nb_devices)
+ end do
+ if (nb_devices==1) return
+
+ write(msg,'(a,i2,a)') ch10,nb_devices,' GPU device(s) have been detected on the current node:'
+ call wrtout(std_out,msg,'PERS')
+
+#if defined HAVE_GPU
+!Check device(s) properties
+ ABI_MALLOC(flops,(nb_devices))
+ ABI_MALLOC(mem, (nb_devices))
+ do ii=0,nb_devices-1
+ call set_dev(ii)
+ call get_dev_info(ii,name,lenname,vers,globalmem,clockRate,gflops,constmem,&
+& sharemem,regist,nprocs,ncores)
+ flops(ii+1)=dble(gflops) ; mem(ii+1)=dble(globalmem)
+ call unset_dev()
+ write(msg,'(a,i2,3a,i1,a,i1,a,i6,a,f7.1,a,i7,a,i4,a,i4,a)') &
+& ' Device ',ii,': ',trim(name(1:lenname)),', v',vers(0),'.',vers(1),', Mem=',nint(globalmem),&
+& ' Mbytes, Clock=',clockrate,' GHz, ',gflops,' GFLOPS, ',nprocs,' processors, ',ncores,' cores'
+ call wrtout(std_out,msg,'PERS')
+ end do
+
+!Sort devices (first by flops, then by memory)
+ ABI_MALLOC(isort,(nb_devices))
+ isort(:)=(/(ii,ii=1,nb_devices)/)
+ call my_sort(flops,mem,isort)
+
+!Distribute cards among procs
+ do ii=0,nproc-1
+ jj=MOD(ii,nb_devices)
+ devices(ii+1) = isort(jj+1)-1
+ end do
+
+ ABI_FREE(isort)
+ ABI_FREE(flops)
+ ABI_FREE(mem)
+#endif
+
+contains
+!!***
+
+!!****f* m_initcuda/my_sort
+!! NAME
+!! my_sort
+!!
+!! FUNCTION
+!! Small sorting routine: change iperm array
+!! according to list1 values then list2 values
+!!
+!! SOURCE
+
+ subroutine my_sort(list1,list2,iperm)
+
+ implicit none
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(inout) :: iperm(:)
+ real(dp),intent(in) :: list1(:),list2(:)
+!Local variables ------------------------------
+!scalars
+ integer :: ll,mm,nn,pp
+ real(dp) :: xx
+!arrays
+ real(dp),allocatable :: llist(:)
+
+! *********************************************************************
+
+ nn=size(iperm)
+ ABI_MALLOC(llist,(nn))
+ llist(:)=list1(:)
+ do ll=1,nn-1
+ do mm=ll+1,nn
+ if (llist(mm)>llist(ll)) then
+ xx=llist(ll);llist(ll)=llist(mm);llist(mm)=xx
+ pp=iperm(ll);iperm(ll)=iperm(mm);iperm(mm)=pp
+ end if
+ end do
+ end do
+ do ll=1,nn-1
+ do mm=ll+1,nn
+ if (abs(llist(mm)-llist(ll))list2(iperm(ll))) then
+ xx=llist(ll);llist(ll)=llist(mm);llist(mm)=xx
+ pp=iperm(ll);iperm(ll)=iperm(mm);iperm(mm)=pp
+ end if
+ end if
+ end do
+ end do
+ ABI_FREE(llist)
+
+ end subroutine my_sort
+!!***
+
+ end subroutine get_fastest_devices
+!!***
+
+end module m_initcuda
+!!***
diff --git a/GX-PAW/common/src/17_gpu_toolbox/m_nvtx.F90 b/GX-PAW/common/src/17_gpu_toolbox/m_nvtx.F90
new file mode 100644
index 00000000..9545cea3
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/m_nvtx.F90
@@ -0,0 +1,145 @@
+!!****m* ABINIT/m_nvtx
+!! NAME
+!! m_nvtx
+!!
+!! FUNCTION
+!! Provide profiling helper routine to annotate execution ranges on both CPU and GPU
+!! The code below is just a wrapper around the Nvidia NVTX (version 3) library.
+!! It is borrowed from https://developer.nvidia.com/blog/customize-cuda-fortran-profiling-nvtx/
+!! This module should (TBC) only be activated when GPU execution is enabled.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2010-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+
+module m_nvtx
+ use, intrinsic :: iso_c_binding
+ implicit none
+
+ integer,private,parameter :: nbcol=19
+ integer(kind=C_INT32_T),private :: col(nbcol) = [ &
+ & int(Z'0000ff00',kind=C_INT32_T), & ! GREEN
+ & int(Z'000000ff',kind=C_INT32_T), & ! BLUE
+ & int(Z'00ffff00',kind=C_INT32_T), & ! YELLOW
+ & int(Z'00ff00ff',kind=C_INT32_T), & ! PURPLE
+ & int(Z'0000ffff',kind=C_INT32_T), & ! CYAN
+ & int(Z'00ff0000',kind=C_INT32_T), & ! READ
+ & int(Z'00ff8000',kind=C_INT32_T), & ! ORANGE
+ & int(Z'000080ff',kind=C_INT32_T), & ! LIGHT BLUE
+ & int(Z'00ff80ff',kind=C_INT32_T), & ! PINK
+ & int(Z'0080ff80',kind=C_INT32_T), & ! LIGHT GREEN
+ & int(Z'00b832ff',kind=C_INT32_T), &
+ & int(Z'00f9fa7d',kind=C_INT32_T), & ! LIGHT YELLOW
+ & int(Z'00f96c56',kind=C_INT32_T), &
+ & int(Z'0094b5dc',kind=C_INT32_T), &
+ & int(Z'00cc99ff',kind=C_INT32_T), & ! LIGHT PURPLE
+ & int(Z'00a50201',kind=C_INT32_T), & ! DARK RED
+ & int(Z'0001a4a5',kind=C_INT32_T), & ! KIND OF CYAN
+ & int(Z'00d8fb08',kind=C_INT32_T), & ! FLASHY YELLOW
+ & int(Z'0090aacc',kind=C_INT32_T) ]
+ character,private,target :: tempName(256)
+
+ type, bind(C):: nvtxEventAttributes
+ integer(C_INT16_T):: version=1
+ integer(C_INT16_T):: size=48 !
+ integer(C_INT):: category=0
+ integer(C_INT):: colorType=1 ! NVTX_COLOR_ARGB = 1
+ integer(C_INT):: color
+ integer(C_INT):: payloadType=0 ! NVTX_PAYLOAD_UNKNOWN = 0
+ integer(C_INT):: reserved0
+ integer(C_INT64_T):: payload ! union uint,int,double
+ integer(C_INT):: messageType=1 ! NVTX_MESSAGE_TYPE_ASCII = 1
+ type(C_PTR):: message ! ascii char
+ end type nvtxEventAttributes
+
+#ifdef HAVE_GPU_MARKERS
+
+ interface nvtxRangePush
+ ! push range with custom label and standard color
+#if defined HAVE_GPU_CUDA
+ subroutine nvtxRangePushA(name) bind(C, name='nvtxRangePushA')
+#elif defined HAVE_GPU_HIP
+ subroutine nvtxRangePushA(name) bind(C, name='roctxRangePushA')
+#endif
+ use, intrinsic :: iso_c_binding
+ character(kind=C_CHAR) :: name(256)
+ end subroutine nvtxRangePushA
+#ifdef HAVE_GPU_CUDA
+ ! push range with custom label and custom color
+ subroutine nvtxRangePushEx(event) bind(C, name='nvtxRangePushEx')
+ use, intrinsic :: iso_c_binding
+ import:: nvtxEventAttributes
+ type(nvtxEventAttributes):: event
+ end subroutine nvtxRangePushEx
+#endif
+ end interface nvtxRangePush
+
+ interface nvtxRangePop
+#if defined HAVE_GPU_CUDA
+ subroutine nvtxRangePop() bind(C, name='nvtxRangePop')
+#elif defined HAVE_GPU_HIP
+ subroutine nvtxRangePop() bind(C, name='roctxRangePop')
+#endif
+ end subroutine nvtxRangePop
+ end interface nvtxRangePop
+
+ interface
+ ! start profiling
+ subroutine nvtxProfilerStart() bind(C, name='cudaProfilerStart')
+ end subroutine nvtxProfilerStart
+ ! stop profiling
+ subroutine nvtxProfilerStop() bind(C, name='cudaProfilerStop')
+ end subroutine nvtxProfilerStop
+
+ end interface
+
+contains
+
+ subroutine nvtxStartRange(name,id)
+
+ implicit none
+
+ character(kind=c_char,len=*) :: name
+ integer, optional:: id
+ type(nvtxEventAttributes):: event
+ character(kind=c_char,len=256) :: trimmed_name
+ integer:: i
+
+ trimmed_name=trim(name)//c_null_char
+
+ ! move scalar trimmed_name into character array tempName
+ do i=1,LEN(trim(name)) + 1
+ tempName(i) = trimmed_name(i:i)
+ enddo
+
+#if defined HAVE_GPU_CUDA
+ if ( .not. present(id)) then
+ call nvtxRangePush(tempName)
+ else
+ event%color=col(mod(id,nbcol)+1)
+ event%message=c_loc(tempName)
+ call nvtxRangePushEx(event)
+ end if
+#elif defined HAVE_GPU_HIP
+ call nvtxRangePush(tempName)
+#endif
+
+ end subroutine nvtxStartRange
+
+ subroutine nvtxEndRange
+ call nvtxRangePop
+ end subroutine nvtxEndRange
+
+#endif
+
+end module m_nvtx
+!!***
diff --git a/GX-PAW/common/src/17_gpu_toolbox/timing.cpp b/GX-PAW/common/src/17_gpu_toolbox/timing.cpp
new file mode 100644
index 00000000..cdb15b0c
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/timing.cpp
@@ -0,0 +1,21 @@
+/* timing_cuda.cpp */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini)
+ *
+ * This file is part of the ABINIT software package. For license information,
+ * please see the COPYING file in the top-level directory of the ABINIT source
+ * distribution.
+ *
+ */
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_GPU_CUDA
+#include "timing_cuda.cpp"
+#endif
+#ifdef HAVE_GPU_HIP
+#include "timing_hip.cpp"
+#endif
diff --git a/GX-PAW/common/src/17_gpu_toolbox/timing_cuda.cpp b/GX-PAW/common/src/17_gpu_toolbox/timing_cuda.cpp
new file mode 100644
index 00000000..01e37ee8
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/timing_cuda.cpp
@@ -0,0 +1,63 @@
+/* timing_cuda.cpp */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini)
+ *
+ * This file is part of the ABINIT software package. For license information,
+ * please see the COPYING file in the top-level directory of the ABINIT source
+ * distribution.
+ *
+ */
+
+#include
+#include
+#include
+
+/*=========================================================================*/
+/*_________________________TIMING IN CUDA ROUTINES_________________________*/
+/*=========================================================================*/
+/* This file contains some basic utils from the time measuration in
+ * cuda subroutines. A more particular version is contained in
+ * prt_utils_rec.cu (to put together)
+*/
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~ INTERFACE WITH FORTRAN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+extern "C"
+void start_cuda_tm_(cudaEvent_t* start,cudaEvent_t* stop)
+{
+ cudaEventCreate(start);
+ cudaEventCreate(stop);
+ cudaEventRecord(*start,0);
+ return;
+};
+
+extern "C"
+void stop_cuda_tm_(cudaEvent_t* stop)
+{
+ cudaEventRecord(*stop,0);
+ cudaEventSynchronize(*stop);
+ printf("stop %d\n",*stop);
+ return;
+}
+
+extern "C"
+void calc_cuda_time_(cudaEvent_t* stop,cudaEvent_t* start,float* time_ms)
+{
+#if defined HAVE_GPU_CUDA3
+ cudaThreadSynchronize();
+#else
+ cudaDeviceSynchronize();
+#endif
+ *time_ms = 0.;
+ stop_cuda_tm_(stop);
+ cudaEventElapsedTime(time_ms,*start,*stop);
+ printf("stop %d\n",*start);
+ printf("stop %d\n",*stop);
+ printf("stop %f\n",time_ms);
+ cudaEventDestroy(*start);
+ cudaEventDestroy(*stop);
+ return ;
+}
diff --git a/GX-PAW/common/src/17_gpu_toolbox/timing_hip.cpp b/GX-PAW/common/src/17_gpu_toolbox/timing_hip.cpp
new file mode 100644
index 00000000..27c36b66
--- /dev/null
+++ b/GX-PAW/common/src/17_gpu_toolbox/timing_hip.cpp
@@ -0,0 +1,58 @@
+/* timing_hip.cpp */
+
+/*
+ * Copyright (C) 2008-2024 ABINIT Group (MMancini)
+ *
+ * This file is part of the ABINIT software package. For license information,
+ * please see the COPYING file in the top-level directory of the ABINIT source
+ * distribution.
+ *
+ */
+
+#include "stdio.h"
+#include
+
+/*=========================================================================*/
+/*_________________________TIMING IN HIP ROUTINES__________________________*/
+/*=========================================================================*/
+/* This file contains some basic utils from the time measuration in
+ * hip subroutines. A more particular version is contained in
+ * prt_utils_rec.cu (to put together)
+*/
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~ INTERFACE WITH FORTRAN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+extern "C"
+void start_cuda_tm_(hipEvent_t* start,hipEvent_t* stop)
+{
+ hipEventCreate(start);
+ hipEventCreate(stop);
+ hipEventRecord(*start,0);
+ return;
+};
+
+extern "C"
+void stop_cuda_tm_(hipEvent_t* stop)
+{
+ hipEventRecord(*stop,0);
+ hipEventSynchronize(*stop);
+ printf("stop %d\n",*stop);
+ return;
+}
+
+extern "C"
+void calc_cuda_time_(hipEvent_t* stop,hipEvent_t* start,float* time_ms)
+{
+ hipDeviceSynchronize();
+ *time_ms = 0.;
+ stop_cuda_tm_(stop);
+ hipEventElapsedTime(time_ms,*start,*stop);
+ printf("stop %d\n",*start);
+ printf("stop %d\n",*stop);
+ printf("stop %f\n",time_ms);
+ hipEventDestroy(*start);
+ hipEventDestroy(*stop);
+ return ;
+}
diff --git a/GX-PAW/common/src/17_libtetra_ext/Makefile b/GX-PAW/common/src/17_libtetra_ext/Makefile
new file mode 100644
index 00000000..08809bfd
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/Makefile
@@ -0,0 +1,1503 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/17_libtetra_ext/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/17_libtetra_ext
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_libtetra_ext_a_AR = $(AR) $(ARFLAGS)
+lib17_libtetra_ext_a_LIBADD =
+am__objects_1 = libtetrabz.$(OBJEXT) libtetrabz_common.$(OBJEXT) \
+ libtetrabz_dbldelta_mod.$(OBJEXT) \
+ libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) \
+ libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) \
+ libtetrabz_polcmplx_mod.$(OBJEXT) \
+ libtetrabz_polstat_mod.$(OBJEXT) m_simtet.$(OBJEXT) \
+ m_krank.$(OBJEXT) m_tetrahedron.$(OBJEXT)
+am_lib17_libtetra_ext_a_OBJECTS = $(am__objects_1)
+lib17_libtetra_ext_a_OBJECTS = $(am_lib17_libtetra_ext_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib17_libtetra_ext_a_SOURCES)
+DIST_SOURCES = $(lib17_libtetra_ext_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_libtetra_ext
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_libtetra_ext
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi \
+ -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi \
+ -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite \
+ -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave \
+ -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+
+
+
+# Regular source files
+lib17_libtetra_ext_srcs = \
+ libtetrabz.F90 \
+ libtetrabz_common.F90 \
+ libtetrabz_dbldelta_mod.F90 \
+ libtetrabz_dblstep_mod.F90 \
+ libtetrabz_dos_mod.F90 \
+ libtetrabz_fermigr_mod.F90 \
+ libtetrabz_occ_mod.F90 \
+ libtetrabz_polcmplx_mod.F90 \
+ libtetrabz_polstat_mod.F90 \
+ m_simtet.F90 \
+ m_krank.F90 \
+ m_tetrahedron.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_libtetra_ext.a
+lib17_libtetra_ext_a_SOURCES = $(lib17_libtetra_ext_srcs)
+
+# Dependencies (inside the directory) of directory 17_libtetra_ext
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = libtetrabz_cpp.f90 libtetrabz_common_cpp.f90 \
+ libtetrabz_dbldelta_mod_cpp.f90 libtetrabz_dblstep_mod_cpp.f90 \
+ libtetrabz_dos_mod_cpp.f90 libtetrabz_fermigr_mod_cpp.f90 \
+ libtetrabz_occ_mod_cpp.f90 libtetrabz_polcmplx_mod_cpp.f90 \
+ libtetrabz_polstat_mod_cpp.f90 m_simtet_cpp.f90 \
+ m_krank_cpp.f90 m_tetrahedron_cpp.f90 libtetrabz.$(MODEXT) \
+ libtetrabz_common.$(MODEXT) libtetrabz_dbldelta_mod.$(MODEXT) \
+ libtetrabz_dblstep_mod.$(MODEXT) libtetrabz_dos_mod.$(MODEXT) \
+ libtetrabz_fermigr_mod.$(MODEXT) libtetrabz_occ_mod.$(MODEXT) \
+ libtetrabz_polcmplx_mod.$(MODEXT) \
+ libtetrabz_polstat_mod.$(MODEXT) m_krank.$(MODEXT) \
+ m_simtet.$(MODEXT) m_tetrahedron.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf libtetra.h \
+ _17_libtetra_ext_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_libtetra_ext/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_libtetra_ext/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_libtetra_ext.a: $(lib17_libtetra_ext_a_OBJECTS) $(lib17_libtetra_ext_a_DEPENDENCIES) $(EXTRA_lib17_libtetra_ext_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_libtetra_ext.a
+ $(AM_V_AR)$(lib17_libtetra_ext_a_AR) lib17_libtetra_ext.a $(lib17_libtetra_ext_a_OBJECTS) $(lib17_libtetra_ext_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_libtetra_ext.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+libtetrabz.$(OBJEXT): libtetrabz_dbldelta_mod.$(OBJEXT) libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) libtetrabz_polcmplx_mod.$(OBJEXT) libtetrabz_polstat_mod.$(OBJEXT)
+
+libtetrabz_dbldelta_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dblstep_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dos_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_fermigr_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_occ_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polcmplx_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polstat_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+m_tetrahedron.$(OBJEXT): m_krank.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_libtetra_ext/Makefile.am b/GX-PAW/common/src/17_libtetra_ext/Makefile.am
new file mode 100644
index 00000000..b0105bc3
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/Makefile.am
@@ -0,0 +1,111 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_libtetra_ext@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_libtetra_ext_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib17_libtetra_ext_srcs = \
+ libtetrabz.F90 \
+ libtetrabz_common.F90 \
+ libtetrabz_dbldelta_mod.F90 \
+ libtetrabz_dblstep_mod.F90 \
+ libtetrabz_dos_mod.F90 \
+ libtetrabz_fermigr_mod.F90 \
+ libtetrabz_occ_mod.F90 \
+ libtetrabz_polcmplx_mod.F90 \
+ libtetrabz_polstat_mod.F90 \
+ m_simtet.F90 \
+ m_krank.F90 \
+ m_tetrahedron.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib17_libtetra_ext.a
+
+lib17_libtetra_ext_a_SOURCES= $(lib17_libtetra_ext_srcs)
+
+CLEANFILES = \
+ libtetrabz_cpp.f90 \
+ libtetrabz_common_cpp.f90 \
+ libtetrabz_dbldelta_mod_cpp.f90 \
+ libtetrabz_dblstep_mod_cpp.f90 \
+ libtetrabz_dos_mod_cpp.f90 \
+ libtetrabz_fermigr_mod_cpp.f90 \
+ libtetrabz_occ_mod_cpp.f90 \
+ libtetrabz_polcmplx_mod_cpp.f90 \
+ libtetrabz_polstat_mod_cpp.f90 \
+ m_simtet_cpp.f90 \
+ m_krank_cpp.f90 \
+ m_tetrahedron_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 17_libtetra_ext
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ libtetrabz.$(MODEXT) \
+ libtetrabz_common.$(MODEXT) \
+ libtetrabz_dbldelta_mod.$(MODEXT) \
+ libtetrabz_dblstep_mod.$(MODEXT) \
+ libtetrabz_dos_mod.$(MODEXT) \
+ libtetrabz_fermigr_mod.$(MODEXT) \
+ libtetrabz_occ_mod.$(MODEXT) \
+ libtetrabz_polcmplx_mod.$(MODEXT) \
+ libtetrabz_polstat_mod.$(MODEXT) \
+ m_krank.$(MODEXT) \
+ m_simtet.$(MODEXT) \
+ m_tetrahedron.$(MODEXT)
+
+libtetrabz.$(OBJEXT): libtetrabz_dbldelta_mod.$(OBJEXT) libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) libtetrabz_polcmplx_mod.$(OBJEXT) libtetrabz_polstat_mod.$(OBJEXT)
+
+libtetrabz_dbldelta_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dblstep_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dos_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_fermigr_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_occ_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polcmplx_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polstat_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+m_tetrahedron.$(OBJEXT): m_krank.$(OBJEXT)
+EXTRA_DIST += abinit.amf
+
+EXTRA_DIST += \
+ libtetra.h
+
+EXTRA_DIST += _17_libtetra_ext_
diff --git a/GX-PAW/common/src/17_libtetra_ext/Makefile.in b/GX-PAW/common/src/17_libtetra_ext/Makefile.in
new file mode 100644
index 00000000..8fc28198
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/Makefile.in
@@ -0,0 +1,1503 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/17_libtetra_ext
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_libtetra_ext_a_AR = $(AR) $(ARFLAGS)
+lib17_libtetra_ext_a_LIBADD =
+am__objects_1 = libtetrabz.$(OBJEXT) libtetrabz_common.$(OBJEXT) \
+ libtetrabz_dbldelta_mod.$(OBJEXT) \
+ libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) \
+ libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) \
+ libtetrabz_polcmplx_mod.$(OBJEXT) \
+ libtetrabz_polstat_mod.$(OBJEXT) m_simtet.$(OBJEXT) \
+ m_krank.$(OBJEXT) m_tetrahedron.$(OBJEXT)
+am_lib17_libtetra_ext_a_OBJECTS = $(am__objects_1)
+lib17_libtetra_ext_a_OBJECTS = $(am_lib17_libtetra_ext_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+SOURCES = $(lib17_libtetra_ext_a_SOURCES)
+DIST_SOURCES = $(lib17_libtetra_ext_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_libtetra_ext@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_12_hide_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_libtetra_ext_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib17_libtetra_ext_srcs = \
+ libtetrabz.F90 \
+ libtetrabz_common.F90 \
+ libtetrabz_dbldelta_mod.F90 \
+ libtetrabz_dblstep_mod.F90 \
+ libtetrabz_dos_mod.F90 \
+ libtetrabz_fermigr_mod.F90 \
+ libtetrabz_occ_mod.F90 \
+ libtetrabz_polcmplx_mod.F90 \
+ libtetrabz_polstat_mod.F90 \
+ m_simtet.F90 \
+ m_krank.F90 \
+ m_tetrahedron.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_libtetra_ext.a
+lib17_libtetra_ext_a_SOURCES = $(lib17_libtetra_ext_srcs)
+
+# Dependencies (inside the directory) of directory 17_libtetra_ext
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = libtetrabz_cpp.f90 libtetrabz_common_cpp.f90 \
+ libtetrabz_dbldelta_mod_cpp.f90 libtetrabz_dblstep_mod_cpp.f90 \
+ libtetrabz_dos_mod_cpp.f90 libtetrabz_fermigr_mod_cpp.f90 \
+ libtetrabz_occ_mod_cpp.f90 libtetrabz_polcmplx_mod_cpp.f90 \
+ libtetrabz_polstat_mod_cpp.f90 m_simtet_cpp.f90 \
+ m_krank_cpp.f90 m_tetrahedron_cpp.f90 libtetrabz.$(MODEXT) \
+ libtetrabz_common.$(MODEXT) libtetrabz_dbldelta_mod.$(MODEXT) \
+ libtetrabz_dblstep_mod.$(MODEXT) libtetrabz_dos_mod.$(MODEXT) \
+ libtetrabz_fermigr_mod.$(MODEXT) libtetrabz_occ_mod.$(MODEXT) \
+ libtetrabz_polcmplx_mod.$(MODEXT) \
+ libtetrabz_polstat_mod.$(MODEXT) m_krank.$(MODEXT) \
+ m_simtet.$(MODEXT) m_tetrahedron.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep abinit.amf libtetra.h \
+ _17_libtetra_ext_
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_libtetra_ext/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_libtetra_ext/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_libtetra_ext.a: $(lib17_libtetra_ext_a_OBJECTS) $(lib17_libtetra_ext_a_DEPENDENCIES) $(EXTRA_lib17_libtetra_ext_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_libtetra_ext.a
+ $(AM_V_AR)$(lib17_libtetra_ext_a_AR) lib17_libtetra_ext.a $(lib17_libtetra_ext_a_OBJECTS) $(lib17_libtetra_ext_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_libtetra_ext.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+libtetrabz.$(OBJEXT): libtetrabz_dbldelta_mod.$(OBJEXT) libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) libtetrabz_polcmplx_mod.$(OBJEXT) libtetrabz_polstat_mod.$(OBJEXT)
+
+libtetrabz_dbldelta_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dblstep_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dos_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_fermigr_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_occ_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polcmplx_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polstat_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+m_tetrahedron.$(OBJEXT): m_krank.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_libtetra_ext/_17_libtetra_ext_ b/GX-PAW/common/src/17_libtetra_ext/_17_libtetra_ext_
new file mode 100644
index 00000000..49d769b6
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/_17_libtetra_ext_
@@ -0,0 +1,29 @@
+!!****d* ABINIT/17_libtetra_ext
+!! NAME
+!! 17_libtetra_ext
+!!
+!! DESCRIPTION
+!! Library for tetrahedron integration.
+!!
+!! COPYRIGHT
+!! Copyright (C) 1998-2024 ABINIT group
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!! For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
+!!
+!! CHILDREN
+!! interfaces_17_libtetra_ext.F90
+!! libtetrabz.F90
+!! libtetrabz_common.F90
+!! libtetrabz_dbldelta_mod.F90
+!! libtetrabz_dblstep_mod.F90
+!! libtetrabz_dos_mod.F90
+!! libtetrabz_fermigr_mod.F90
+!! libtetrabz_occ_mod.F90
+!! libtetrabz_polcmplx_mod.F90
+!! libtetrabz_polstat_mod.F90
+!! m_kptrank.F90
+!! m_tetrahedron.F90
+!!
+!!***
diff --git a/GX-PAW/common/src/17_libtetra_ext/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/17_libtetra_ext/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..529bfb79
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/abinit.amf b/GX-PAW/common/src/17_libtetra_ext/abinit.amf
new file mode 100644
index 00000000..d4d5a543
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/abinit.amf
@@ -0,0 +1,2 @@
+EXTRA_DIST += \
+ libtetra.h
diff --git a/GX-PAW/common/src/17_libtetra_ext/abinit.dep b/GX-PAW/common/src/17_libtetra_ext/abinit.dep
new file mode 100644
index 00000000..f8c40186
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/abinit.dep
@@ -0,0 +1,37 @@
+# Dependencies (inside the directory) of directory 17_libtetra_ext
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ libtetrabz.$(MODEXT) \
+ libtetrabz_common.$(MODEXT) \
+ libtetrabz_dbldelta_mod.$(MODEXT) \
+ libtetrabz_dblstep_mod.$(MODEXT) \
+ libtetrabz_dos_mod.$(MODEXT) \
+ libtetrabz_fermigr_mod.$(MODEXT) \
+ libtetrabz_occ_mod.$(MODEXT) \
+ libtetrabz_polcmplx_mod.$(MODEXT) \
+ libtetrabz_polstat_mod.$(MODEXT) \
+ m_krank.$(MODEXT) \
+ m_simtet.$(MODEXT) \
+ m_tetrahedron.$(MODEXT)
+
+libtetrabz.$(OBJEXT): libtetrabz_dbldelta_mod.$(OBJEXT) libtetrabz_dblstep_mod.$(OBJEXT) libtetrabz_dos_mod.$(OBJEXT) libtetrabz_fermigr_mod.$(OBJEXT) libtetrabz_occ_mod.$(OBJEXT) libtetrabz_polcmplx_mod.$(OBJEXT) libtetrabz_polstat_mod.$(OBJEXT)
+
+libtetrabz_dbldelta_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dblstep_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_dos_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_fermigr_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_occ_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polcmplx_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+libtetrabz_polstat_mod.$(OBJEXT): libtetrabz_common.$(OBJEXT)
+
+m_tetrahedron.$(OBJEXT): m_krank.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_libtetra_ext/abinit.dir b/GX-PAW/common/src/17_libtetra_ext/abinit.dir
new file mode 100644
index 00000000..1c079d51
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/abinit.dir
@@ -0,0 +1,13 @@
+# Dependencies (outside the directory) of directory 17_libtetra_ext
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs',
+ '11_memory_mpi',
+ '12_hide_mpi',
+ '14_hidewrite',
+ '16_hideleave',
+ '17_libtetra_ext']
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_libtetra_ext/abinit.src b/GX-PAW/common/src/17_libtetra_ext/abinit.src
new file mode 100644
index 00000000..dd79c5b9
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/abinit.src
@@ -0,0 +1,36 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the numeric library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ # source files from libtetrabz http://libtetrabz.osdn.jp/en/_build/html/index.html
+ "libtetrabz.F90",
+ "libtetrabz_common.F90",
+ "libtetrabz_dbldelta_mod.F90",
+ "libtetrabz_dblstep_mod.F90",
+ "libtetrabz_dos_mod.F90",
+ "libtetrabz_fermigr_mod.F90",
+ "libtetrabz_occ_mod.F90",
+ "libtetrabz_polcmplx_mod.F90",
+ "libtetrabz_polstat_mod.F90",
+ "m_simtet.F90",
+ "m_krank.F90",
+ "m_tetrahedron.F90",
+ ]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/17_libtetra_ext/lib17_libtetra_ext.a b/GX-PAW/common/src/17_libtetra_ext/lib17_libtetra_ext.a
new file mode 100644
index 00000000..799f1a0a
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/lib17_libtetra_ext.a differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetra.h b/GX-PAW/common/src/17_libtetra_ext/libtetra.h
new file mode 100644
index 00000000..ee4757f4
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetra.h
@@ -0,0 +1,20 @@
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_LIBTETRA_ABINIT
+#include "abi_common.h"
+# define TETRA_ALLOCATE(ARR,SIZE) ABI_MALLOC(ARR,SIZE)
+# define TETRA_DEALLOCATE(ARR) ABI_FREE(ARR)
+# define TETRA_ERROR(MSG) ABI_ERROR(MSG)
+# define USE_MEMORY_PROFILING use m_profiling_abi
+# define USE_MSG_HANDLING use m_errors, only : msg_hndl
+
+#else
+# define TETRA_ALLOCATE(ARR,SIZE) allocate(ARR SIZE)
+# define TETRA_DEALLOCATE(ARR) deallocate(ARR)
+# define TETRA_ERROR(MSG) write (stdout,'(a)') MSG ; stop "ERROR"
+# define USE_MEMORY_PROFILING
+# define USE_MSG_HANDLING
+#endif
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz.F90
new file mode 100644
index 00000000..bd49f9ca
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz.F90
@@ -0,0 +1,41 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz
+ !
+ USE libtetrabz_occ_mod, ONLY : libtetrabz_occ
+ USE libtetrabz_occ_mod, ONLY : libtetrabz_fermieng
+ USE libtetrabz_dos_mod, ONLY : libtetrabz_dos
+ USE libtetrabz_dos_mod, ONLY : libtetrabz_intdos
+ USE libtetrabz_dblstep_mod, ONLY : libtetrabz_dblstep
+ USE libtetrabz_dbldelta_mod, ONLY : libtetrabz_dbldelta
+ USE libtetrabz_polstat_mod, ONLY : libtetrabz_polstat
+ USE libtetrabz_fermigr_mod, ONLY : libtetrabz_fermigr
+ USE libtetrabz_polcmplx_mod, ONLY : libtetrabz_polcmplx
+ !
+END MODULE libtetrabz
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz.o
new file mode 100644
index 00000000..21795e99
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz2abi.py b/GX-PAW/common/src/17_libtetra_ext/libtetrabz2abi.py
new file mode 100755
index 00000000..28ed44f1
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz2abi.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+"""
+Change libtetrabz source file so that they are compatible with the Abinit build system.
+"""
+from __future__ import unicode_literals, division, print_function, absolute_import
+
+import os
+
+here = os.path.dirname(__file__)
+f90_files = [f for f in os.listdir(here) if f.startswith("libtetrabz") and f.endswith(".F90")]
+paths = [os.path.join(here, f) for f in f90_files]
+
+def abi_sanitize(line):
+ line = line.replace("__MPI", "HAVE_MPI")
+ # Bind(C) with optional args requires F2015
+ line = line.replace("BIND(C)", "")
+ return line
+
+print("Replacing __MPI with HAVE_MPI in the following routines:")
+for path in paths:
+ print("\t", path)
+ lines = ["""
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+"""]
+ lines = []
+
+ with open(path, "rt") as fh:
+ lines += [abi_sanitize(l) for l in fh]
+
+ print(lines)
+ with open(path, "wt") as fh:
+ fh.writelines(lines)
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.F90
new file mode 100644
index 00000000..3d8b7f71
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.F90
@@ -0,0 +1,849 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_common
+ !
+ use m_abicore
+ use m_errors
+#if defined HAVE_MPI2
+ use mpi, ONLY : MPI_DOUBLE_PRECISION, MPI_DOUBLE_COMPLEX, MPI_SUM, MPI_IN_PLACE
+#endif
+
+ IMPLICIT NONE
+
+#if defined HAVE_MPI1
+ include 'mpif.h'
+#endif
+ !
+ PRIVATE
+
+ PUBLIC :: libtetrabz_initialize, libtetrabz_sort, libtetrabz_interpol_indx, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, libtetrabz_tsmall_c3, &
+ & libtetrabz_triangle_a1, libtetrabz_triangle_b1, &
+ & libtetrabz_triangle_b2, libtetrabz_triangle_c1, &
+ & libtetrabz_mpisum_d, libtetrabz_mpisum_dv, libtetrabz_mpisum_zv
+ !
+
+CONTAINS
+!
+! define shortest diagonal line & define type of tetragonal
+!
+SUBROUTINE libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ !
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: ltetra, nge(3), ngw(3)
+ REAL(8),INTENT(IN) :: bvec(3,3)
+ LOGICAL,INTENT(OUT) :: linterpol
+ REAL(8),INTENT(OUT) :: wlsm(4,20)
+ INTEGER,INTENT(OUT) :: nk_local, nt_local, nkBZ
+ INTEGER,INTENT(OUT),ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8),INTENT(OUT),ALLOCATABLE :: kvec(:,:)
+ INTEGER,INTENT(IN),OPTIONAL :: comm
+ !
+ INTEGER :: itype, i1, i2, i3, it, divvec(4,4), ivvec0(4), ivvec(3,20,6)
+ REAL(8) :: l(4), bvec2(3,3), bvec3(3,4)
+ !
+ nkBZ = PRODUCT(nge(1:3))
+ linterpol = .NOT. ALL(nge(1:3) == ngw(1:3))
+ !
+ DO i1 = 1, 3
+ bvec2(1:3,i1) = bvec(1:3,i1) / DBLE(nge(i1))
+ END DO
+ !
+ bvec3(1:3,1) = -bvec2(1:3,1) + bvec2(1:3,2) + bvec2(1:3,3)
+ bvec3(1:3,2) = bvec2(1:3,1) - bvec2(1:3,2) + bvec2(1:3,3)
+ bvec3(1:3,3) = bvec2(1:3,1) + bvec2(1:3,2) - bvec2(1:3,3)
+ bvec3(1:3,4) = bvec2(1:3,1) + bvec2(1:3,2) + bvec2(1:3,3)
+ !
+ ! length of delta bvec
+ !
+ DO i1 = 1, 4
+ l(i1) = DOT_PRODUCT(bvec3(1:3,i1),bvec3(1:3,i1))
+ END DO
+ !
+ itype = MINLOC(l(1:4),1)
+ !
+ ! start & last
+ !
+ ivvec0(1:4) = (/ 0, 0, 0, 0 /)
+ !
+ divvec(1:4,1) = (/ 1, 0, 0, 0 /)
+ divvec(1:4,2) = (/ 0, 1, 0, 0 /)
+ divvec(1:4,3) = (/ 0, 0, 1, 0 /)
+ divvec(1:4,4) = (/ 0, 0, 0, 1 /)
+ !
+ ivvec0(itype) = 1
+ divvec(itype, itype) = - 1
+ !
+ ! Corners of tetrahedra
+ !
+ it = 0
+ DO i1 = 1, 3
+ DO i2 = 1, 3
+ IF(i2 == i1) CYCLE
+ DO i3 = 1, 3
+ IF(i3 == i1 .OR. i3 == i2) CYCLE
+ !
+ it = it + 1
+ !
+ ivvec(1:3,1,it) = ivvec0(1:3)
+ ivvec(1:3,2,it) = ivvec(1:3,1,it) + divvec(1:3,i1)
+ ivvec(1:3,3,it) = ivvec(1:3,2,it) + divvec(1:3,i2)
+ ivvec(1:3,4,it) = ivvec(1:3,3,it) + divvec(1:3,i3)
+ !
+ END DO
+ END DO
+ END DO
+ !
+ ! Additional points
+ !
+ ivvec(1:3, 5,1:6) = 2 * ivvec(1:3,1,1:6) - ivvec(1:3,2,1:6)
+ ivvec(1:3, 6,1:6) = 2 * ivvec(1:3,2,1:6) - ivvec(1:3,3,1:6)
+ ivvec(1:3, 7,1:6) = 2 * ivvec(1:3,3,1:6) - ivvec(1:3,4,1:6)
+ ivvec(1:3, 8,1:6) = 2 * ivvec(1:3,4,1:6) - ivvec(1:3,1,1:6)
+ !
+ ivvec(1:3, 9,1:6) = 2 * ivvec(1:3,1,1:6) - ivvec(1:3,3,1:6)
+ ivvec(1:3,10,1:6) = 2 * ivvec(1:3,2,1:6) - ivvec(1:3,4,1:6)
+ ivvec(1:3,11,1:6) = 2 * ivvec(1:3,3,1:6) - ivvec(1:3,1,1:6)
+ ivvec(1:3,12,1:6) = 2 * ivvec(1:3,4,1:6) - ivvec(1:3,2,1:6)
+ !
+ ivvec(1:3,13,1:6) = 2 * ivvec(1:3,1,1:6) - ivvec(1:3,4,1:6)
+ ivvec(1:3,14,1:6) = 2 * ivvec(1:3,2,1:6) - ivvec(1:3,1,1:6)
+ ivvec(1:3,15,1:6) = 2 * ivvec(1:3,3,1:6) - ivvec(1:3,2,1:6)
+ ivvec(1:3,16,1:6) = 2 * ivvec(1:3,4,1:6) - ivvec(1:3,3,1:6)
+ !
+ ivvec(1:3,17,1:6) = ivvec(1:3,4,1:6) - ivvec(1:3,1,1:6) + ivvec(1:3,2,1:6)
+ ivvec(1:3,18,1:6) = ivvec(1:3,1,1:6) - ivvec(1:3,2,1:6) + ivvec(1:3,3,1:6)
+ ivvec(1:3,19,1:6) = ivvec(1:3,2,1:6) - ivvec(1:3,3,1:6) + ivvec(1:3,4,1:6)
+ ivvec(1:3,20,1:6) = ivvec(1:3,3,1:6) - ivvec(1:3,4,1:6) + ivvec(1:3,1,1:6)
+ !
+ IF(ltetra == 1) THEN
+ !
+ !WRITE(*,*) "[libtetrabz] Linear tetrahedron method is used."
+ !
+ wlsm(1:4,1:20) = 0.0d0
+ wlsm(1,1) = 1.0d0
+ wlsm(2,2) = 1.0d0
+ wlsm(3,3) = 1.0d0
+ wlsm(4,4) = 1.0d0
+ !
+ ELSE IF(ltetra == 2) THEN
+ !
+ !WRITE(*,*) "[libtetrabz] Improved tetrahedron method is used."
+ !
+ wlsm(1, 1: 4) = DBLE((/1440, 0, 30, 0/))
+ wlsm(2, 1: 4) = DBLE((/ 0, 1440, 0, 30/))
+ wlsm(3, 1: 4) = DBLE((/ 30, 0, 1440, 0/))
+ wlsm(4, 1: 4) = DBLE((/ 0, 30, 0, 1440/))
+ !
+ wlsm(1, 5: 8) = DBLE((/ -38, 7, 17, -28/))
+ wlsm(2, 5: 8) = DBLE((/ -28, -38, 7, 17/))
+ wlsm(3, 5: 8) = DBLE((/ 17, -28, -38, 7/))
+ wlsm(4, 5: 8) = DBLE((/ 7, 17, -28, -38/))
+ !
+ wlsm(1, 9:12) = DBLE((/ -56, 9, -46, 9/))
+ wlsm(2, 9:12) = DBLE((/ 9, -56, 9, -46/))
+ wlsm(3, 9:12) = DBLE((/ -46, 9, -56, 9/))
+ wlsm(4, 9:12) = DBLE((/ 9, -46, 9, -56/))
+ !
+ wlsm(1,13:16) = DBLE((/ -38, -28, 17, 7/))
+ wlsm(2,13:16) = DBLE((/ 7, -38, -28, 17/))
+ wlsm(3,13:16) = DBLE((/ 17, 7, -38, -28/))
+ wlsm(4,13:16) = DBLE((/ -28, 17, 7, -38/))
+ !
+ wlsm(1,17:20) = DBLE((/ -18, -18, 12, -18/))
+ wlsm(2,17:20) = DBLE((/ -18, -18, -18, 12/))
+ wlsm(3,17:20) = DBLE((/ 12, -18, -18, -18/))
+ wlsm(4,17:20) = DBLE((/ -18, 12, -18, -18/))
+ !
+ wlsm(1:4,1:20) = wlsm(1:4,1:20) / 1260d0
+ !
+ ELSE
+ !
+ ABI_ERROR("[libtetrabz] STOP! ltetrta is invalid.")
+ !
+ END IF
+ !
+ IF (PRESENT(comm)) THEN
+ CALL libtetrabz_kgrid(linterpol,ivvec,nge,nkBZ,nk_local,nt_local,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_kgrid(linterpol,ivvec,nge,nkBZ,nk_local,nt_local,ik_global,ik_local,kvec)
+ END IF
+ !
+END SUBROUTINE libtetrabz_initialize
+!
+! Initialize grid
+!
+SUBROUTINE libtetrabz_kgrid(linterpol,ivvec,ng,nkBZ,nk_local,nt_local,ik_global,ik_local,kvec,comm)
+ !
+ IMPLICIT NONE
+ !
+ LOGICAL,INTENT(INOUT) :: linterpol
+ INTEGER,INTENT(IN) :: ivvec(3,20,6), ng(3), nkBZ
+ INTEGER,INTENT(OUT) :: nk_local, nt_local
+ INTEGER,INTENT(OUT),ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8),INTENT(OUT),ALLOCATABLE :: kvec(:,:)
+ INTEGER,INTENT(IN),OPTIONAL :: comm
+ !
+ INTEGER :: it, i1, i2, i3, ii, ikv(3), nt, ik, nt_front, loc2glob(nkBZ), glob2loc(nkBZ)
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_divideMPI(comm,6 * nkBZ,nt_front,nt_local)
+ linterpol = linterpol .OR. (6*nkBZ /= nt_local)
+ ELSE
+ nt_front = 0
+ nt_local = 6 * nkBZ
+ END IF
+ ABI_MALLOC(ik_global, (20, nt_local))
+ ABI_MALLOC(ik_local, (20, nt_local))
+ !
+ ! k-index for energy (Global index)
+ !
+ nt = 0
+ DO i3 = 1, ng(3)
+ DO i2 = 1, ng(2)
+ DO i1 = 1, ng(1)
+ !
+ DO it = 1, 6
+ !
+ nt = nt + 1
+ IF(nt <= nt_front .OR. nt_front + nt_local < nt) CYCLE
+ !
+ DO ii = 1, 20
+ !
+ ikv(1:3) = (/i1, i2, i3/) + ivvec(1:3,ii,it) - 1
+ ikv(1:3) = MODULO(ikv(1:3), ng(1:3))
+ !
+ ik_global(ii,nt - nt_front) = 1 + ikv(1) + ng(1) * ikv(2) + ng(1) * ng(2) * ikv(3)
+ !
+ END DO
+ !
+ END DO
+ !
+ END DO
+ END DO
+ END DO
+ !
+ ! k-index for weight (Local index)
+ !
+ IF(.NOT. linterpol) THEN
+ nk_local = nkBZ
+ ik_local(1:20,1:nt_local) = ik_global(1:20,1:nt_local)
+ RETURN
+ END IF
+ !
+ glob2loc(1:nkBZ) = 0
+ nk_local = 0
+ DO nt = 1, nt_local
+ DO ii = 1, 20
+ !
+ IF(glob2loc(ik_global(ii,nt)) /= 0) THEN
+ ik_local(ii,nt) = glob2loc(ik_global(ii,nt))
+ ELSE
+ !
+ nk_local = nk_local + 1
+ loc2glob(nk_local) = ik_global(ii,nt)
+ glob2loc(ik_global(ii,nt)) = nk_local
+ ik_local(ii,nt) = nk_local
+ !
+ END IF
+ !
+ END DO
+ END DO
+ !
+ ! k-vector in the fractional coordinate
+ !
+ ABI_MALLOC(kvec, (3,nk_local))
+ DO ik = 1, nk_local
+ ! loc2glob(ik) - 1 = i1 + ng(1) * i2 + ng(1) * ng(2) * i3
+ i1 = MOD(loc2glob(ik) - 1, ng(1))
+ i2 = MOD((loc2glob(ik) - 1) / ng(1), ng(2))
+ i3 = (loc2glob(ik) - 1) / (ng(1) * ng(2))
+ kvec(1:3,ik) = DBLE((/i1, i2, i3/)) / DBLE(ng(1:3))
+ END DO
+ !
+END SUBROUTINE libtetrabz_kgrid
+!
+! Compute cnt and dsp
+!
+SUBROUTINE libtetrabz_divideMPI(comm,nt,nt_front,nt_local)
+ !
+#if defined HAVE_MPI2
+ USE mpi, ONLY : MPI_COMM_SIZE, MPI_COMM_RANK
+#endif
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: comm, nt
+ INTEGER,INTENT(OUT) :: nt_front, nt_local
+ !
+ INTEGER :: petot = 1, my_rank = 0
+#if defined(HAVE_MPI)
+ INTEGER :: ierr
+ CALL MPI_COMM_SIZE(comm, petot, ierr)
+ CALL MPI_COMM_RANK(comm, my_rank, ierr)
+#endif
+ !
+ IF(my_rank < MOD(nt, petot)) THEN
+ nt_local = nt / petot + 1
+ nt_front = my_rank * nt_local
+ ELSE
+ nt_local = nt / petot
+ nt_front = my_rank * nt_local + MOD(nt, petot)
+ END IF
+ !
+END SUBROUTINE libtetrabz_divideMPI
+!
+! Simple sort
+!
+pure SUBROUTINE libtetrabz_sort(n,key,indx)
+ !
+ IMPLICIT NONE
+ !
+ integer,INTENT(IN) :: n
+ REAL(8),INTENT(inout) :: key(n)
+ INTEGER,INTENT(OUT) :: indx(n)
+ !
+ INTEGER :: i, i0, indx0
+ REAL(8) :: key0
+ !
+ DO i = 1, n
+ indx(i) = i
+ END DO
+ !
+ DO i = 1, n - 1
+ key0 = MINVAL(key(i+1:n))
+ i0 = MINLOC(key(i+1:n),1) + i
+ IF(key(i) > key0) THEN
+ key(i0) = key(i)
+ key(i) = key0
+ !
+ indx0 = indx(i0)
+ indx(i0) = indx(i)
+ indx(i) = indx0
+ END IF
+ END DO
+ !
+END SUBROUTINE libtetrabz_sort
+!
+! Linear interpolation
+!
+pure SUBROUTINE libtetrabz_interpol_indx(nintp,ng,kvec,kintp,wintp)
+ !
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(in) :: nintp, ng(3)
+ REAL(8),INTENT(in) :: kvec(3)
+ INTEGER,INTENT(out) :: kintp(nintp)
+ REAL(8),INTENT(out) :: wintp(nintp)
+ !
+ INTEGER :: ikv(3,20), dikv(3,3), ii
+ REAL(8) :: x, y, z, xv(3)
+ !
+ ! Search nearest neighbor grid points.
+ !
+ xv(1:3) = kvec(1:3) * DBLE(ng(1:3))
+ ikv(1:3,1) = NINT(xv(1:3))
+ dikv(1:3,1:3) = 0
+ DO ii = 1, 3
+ dikv(ii,ii) = ikv(ii,1) - FLOOR(xv(ii))
+ dikv(ii,ii) = 1 - 2 * dikv(ii,ii)
+ END DO
+ xv(1:3) = ABS(xv(1:3) - DBLE(ikv(1:3,1)))
+ x = xv(1)
+ y = xv(2)
+ z = xv(3)
+ !
+ ikv(1:3, 2) = ikv(1:3,1) + dikv(1:3,1)
+ ikv(1:3, 3) = ikv(1:3,1) + dikv(1:3,2)
+ ikv(1:3, 4) = ikv(1:3,1) + dikv(1:3,3)
+ !
+ IF(nintp == 4) THEN
+ !
+ wintp(1) = 1d0 - x - y - z
+ wintp(2) = x
+ wintp(3) = y
+ wintp(4) = z
+ !
+ ELSE
+ !
+ ikv(1:3, 5) = ikv(1:3,1) + SUM(dikv(1:3,1:3), 2)
+ !
+ ikv(1:3, 6) = ikv(1:3,1) - dikv(1:3,1)
+ ikv(1:3, 7) = ikv(1:3,1) - dikv(1:3,2)
+ ikv(1:3, 8) = ikv(1:3,1) - dikv(1:3,3)
+ !
+ ikv(1:3, 9) = ikv(1:3,1) + 2*dikv(1:3,1)
+ ikv(1:3,10) = ikv(1:3,1) + 2*dikv(1:3,2)
+ ikv(1:3,11) = ikv(1:3,1) + 2*dikv(1:3,3)
+ !
+ ikv(1:3,12) = ikv(1:3,1) + dikv(1:3,2) + dikv(1:3,3)
+ ikv(1:3,13) = ikv(1:3,1) + dikv(1:3,3) + dikv(1:3,1)
+ ikv(1:3,14) = ikv(1:3,1) + dikv(1:3,1) + dikv(1:3,2)
+ !
+ ikv(1:3,15) = ikv(1:3,1) - dikv(1:3,1) + dikv(1:3,3)
+ ikv(1:3,16) = ikv(1:3,1) - dikv(1:3,2) + dikv(1:3,1)
+ ikv(1:3,17) = ikv(1:3,1) - dikv(1:3,3) + dikv(1:3,2)
+ !
+ ikv(1:3,18) = ikv(1:3,1) + dikv(1:3,1) - dikv(1:3,3)
+ ikv(1:3,19) = ikv(1:3,1) + dikv(1:3,2) - dikv(1:3,1)
+ ikv(1:3,20) = ikv(1:3,1) + dikv(1:3,3) - dikv(1:3,2)
+ !
+ wintp( 1) = ( (x - 2d0)*(x - 1d0)*(1d0 + x) &
+ & + (y - 2d0)*(y - 1d0)*(1d0 + y) &
+ & + (z - 2d0)*(z - 1d0)*(1d0 + z) &
+ & + 2d0*(x*y + y*z + z*x)*(x + y + z - 1d0) &
+ & - 8d0*x*y*z - 4d0) * 0.5d0
+ wintp( 2) = x * ( 2d0 + x*(1d0 - x - y - z) &
+ & + y*(1d0 - 2d0*y + z) &
+ & + z*(1d0 - 2d0*z + y)) * 0.5d0
+ wintp( 3) = y * ( 2d0 + y*(1d0 - x - y - z) &
+ & + x*(1d0 - 2d0*x + z) &
+ & + z*(1d0 - 2d0*z + x)) * 0.5d0
+ wintp( 4) = z * ( 2d0 + z*(1d0 - x - y - z) &
+ & + y*(1d0 - 2d0*y + x) &
+ & + x*(1d0 - 2d0*x + y)) * 0.5d0
+ wintp( 5) = x * y * z
+ wintp( 6) = x * (1d0 - x) * ( x + 3d0*y + 3d0*z - 2d0) / 6d0
+ wintp( 7) = y * (1d0 - y) * (3d0*x + y + 3d0*z - 2d0) / 6d0
+ wintp( 8) = z * (1d0 - z) * (3d0*x + 3d0*y + z - 2d0) / 6d0
+ wintp( 9) = x * (x - 1d0) * (x + 1d0) / 6d0
+ wintp(10) = y * (y - 1d0) * (y + 1d0) / 6d0
+ wintp(11) = z * (z - 1d0) * (z + 1d0) / 6d0
+ wintp(12) = y * z * (y + z - 2d0 * x) * 0.5d0
+ wintp(13) = z * x * (z + x - 2d0 * y) * 0.5d0
+ wintp(14) = x * y * (x + y - 2d0 * z) * 0.5d0
+ wintp(15) = x * z * (x - 1d0) * 0.5d0
+ wintp(16) = x * y * (y - 1d0) * 0.5d0
+ wintp(17) = y * z * (z - 1d0) * 0.5d0
+ wintp(18) = x * z * (z - 1d0) * 0.5d0
+ wintp(19) = x * y * (x - 1d0) * 0.5d0
+ wintp(20) = y * z * (y - 1d0) * 0.5d0
+ !
+ END IF
+ !
+ DO ii = 1, nintp
+ ikv(1:3,ii) = MODULO(ikv(1:3,ii), ng(1:3))
+ kintp(ii) = 1 + ikv(1,ii) + ng(1) * ikv(2,ii) + ng(1) * ng(2) * ikv(3,ii)
+ END DO
+ !
+END SUBROUTINE libtetrabz_interpol_indx
+
+pure function a_from_e(e) result(a)
+
+ IMPLICIT NONE
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8) :: a(4,4)
+
+ INTEGER :: ii
+ REAL(8) :: ediff(4)
+
+ DO ii = 1, 4
+ ediff = e(1:4) - e(ii)
+ where (abs(ediff) < 1.e-10)
+ ediff = 1.e-10
+ end where
+ a(1:4,ii) = (0d0 - e(ii)) / ediff
+ END DO
+
+end function a_from_e
+
+!
+! Cut small tetrahedron A1
+!
+pure SUBROUTINE libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(2,1) * a(3,1) * a(4,1)
+ !
+ tsmall(1, 1:4) = (/ 1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/a(1,2), a(2,1), 0d0, 0d0/)
+ tsmall(3, 1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(4, 1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_a1
+!
+! Cut small tetrahedron B1
+!
+pure SUBROUTINE libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(3,1) * a(4,1) * a(2,4)
+ !
+ tsmall(1, 1:4) = (/ 1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(3, 1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ tsmall(4, 1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_b1
+!
+! Cut small tetrahedron B2
+!
+pure SUBROUTINE libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(3,2) * a(4,2)
+ !
+ tsmall(1, 1:4) = (/1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/0d0, 1d0, 0d0, 0d0/)
+ tsmall(3, 1:4) = (/0d0, a(2,3), a(3,2), 0d0/)
+ tsmall(4, 1:4) = (/0d0, a(2,4), 0d0, a(4,2)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_b2
+!
+! Cut small tetrahedron B3
+!
+pure SUBROUTINE libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(2,3) * a(3,1) * a(4,2)
+ !
+ tsmall(1, 1:4) = (/ 1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(3, 1:4) = (/ 0d0, a(2,3), a(3,2), 0d0/)
+ tsmall(4, 1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_b3
+!
+! Cut small tetrahedron C1
+!
+pure SUBROUTINE libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(4,3)
+ !
+ tsmall(1, 1:4) = (/1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/0d0, 1d0, 0d0, 0d0/)
+ tsmall(3, 1:4) = (/0d0, 0d0, 1d0, 0d0/)
+ tsmall(4, 1:4) = (/0d0, 0d0, a(3,4), a(4,3)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_c1
+!
+! Cut small tetrahedron C2
+!
+pure SUBROUTINE libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(3,4) * a(4,2)
+ !
+ tsmall(1, 1:4) = (/1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/0d0, 1d0, 0d0, 0d0/)
+ tsmall(3, 1:4) = (/0d0, a(2,4), 0d0, a(4,2)/)
+ tsmall(4, 1:4) = (/0d0, 0d0, a(3,4), a(4,3)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_c2
+!
+! Cut small tetrahedron C3
+!
+pure SUBROUTINE libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(4,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ V = a(3,4) * a(2,4) * a(4,1)
+ !
+ tsmall(1, 1:4) = (/ 1d0, 0d0, 0d0, 0d0/)
+ tsmall(2, 1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ tsmall(3, 1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ tsmall(4, 1:4) = (/ 0d0, 0d0, a(3,4), a(4,3)/)
+ !
+END SUBROUTINE libtetrabz_tsmall_c3
+!
+! Cut triangle A1
+!
+pure SUBROUTINE libtetrabz_triangle_a1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(3,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ !V = 3d0 * a(2,1) * a(3,1) * a(4,1) / (0d0 - e(1))
+ V = 3d0 * a(2,1) * a(3,1) / (e(4) - e(1))
+ !
+ tsmall(1,1:4) = (/a(1,2), a(2,1), 0d0, 0d0/)
+ tsmall(2,1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(3,1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ !
+END SUBROUTINE libtetrabz_triangle_a1
+!
+! Cut triangle B1
+!
+pure SUBROUTINE libtetrabz_triangle_b1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(3,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ !V = 3d0 * a(3,1) * a(4,1) * a(2,4) / (0d0 - e(1))
+ V = 3d0 * a(4,1) * a(2,4) / (e(3) - e(1))
+ !
+ tsmall(1,1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(2,1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ tsmall(3,1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ !
+END SUBROUTINE libtetrabz_triangle_b1
+!
+! Cut triangle B2
+!
+pure SUBROUTINE libtetrabz_triangle_b2(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(3,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ !V = 3d0 * a(2,3) * a(3,1) * a(4,2) / (0d0 - e(1))
+ V = 3d0 * a(2,3) * a(4,2) / (e(3) - e(1))
+ !
+ tsmall(1,1:4) = (/a(1,3), 0d0, a(3,1), 0d0/)
+ tsmall(2,1:4) = (/ 0d0, a(2,3), a(3,2), 0d0/)
+ tsmall(3,1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ !
+END SUBROUTINE libtetrabz_triangle_b2
+!
+! Cut triangle C1
+!
+pure SUBROUTINE libtetrabz_triangle_c1(e,V,tsmall)
+ !
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: e(4)
+ REAL(8),INTENT(OUT) :: V
+ REAL(8),INTENT(OUT) :: tsmall(3,4)
+ !
+ !INTEGER :: ii
+ REAL(8) :: a(4,4)
+ !
+ a = a_from_e(e)
+ !DO ii = 1, 4
+ ! a(1:4,ii) = (0d0 - e(ii)) / (e(1:4) - e(ii))
+ !END DO
+ !
+ !V = 3d0 * a(1,4) * a(2,4) * a(3,4) / (e(4) - 0d0)
+ V = 3d0 * a(1,4) * a(2,4) / (e(4) - e(3))
+ !
+ tsmall(1,1:4) = (/a(1,4), 0d0, 0d0, a(4,1)/)
+ tsmall(2,1:4) = (/ 0d0, a(2,4), 0d0, a(4,2)/)
+ tsmall(3,1:4) = (/ 0d0, 0d0, a(3,4), a(4,3)/)
+ !
+END SUBROUTINE libtetrabz_triangle_c1
+!
+! MPI_Allreduce for double scaler
+!
+SUBROUTINE libtetrabz_mpisum_d(comm,scaler)
+ !
+ IMPLICIT NONE
+ !
+ INTEGER :: comm
+ REAL(8) :: scaler
+ !
+#if defined(HAVE_MPI)
+ INTEGER :: ierr
+ REAL(8) :: arr_scaler(1)
+ !
+ CALL MPI_allREDUCE([scaler], arr_scaler, 1, &
+ & MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr)
+ scaler=arr_scaler(1)
+#endif
+ !
+END SUBROUTINE libtetrabz_mpisum_d
+!
+! MPI_Allreduce for double vector
+!
+SUBROUTINE libtetrabz_mpisum_dv(comm,ndim,vector)
+ !
+ IMPLICIT NONE
+ !
+ INTEGER :: comm, ndim
+ REAL(8) :: vector(ndim)
+ !
+#if defined(HAVE_MPI)
+ INTEGER :: ierr
+#ifndef HAVE_MPI2_INPLACE
+ REAL(8) :: vector_out(ndim)
+#endif
+ !
+#ifdef HAVE_MPI2_INPLACE
+ CALL MPI_allREDUCE(MPI_IN_PLACE, vector, ndim, &
+ & MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr)
+#else
+ CALL MPI_allREDUCE(vector, vector_out, ndim, &
+ & MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr)
+ vector(1:ndim)=vector_out(1:ndim)
+#endif
+#endif
+ !
+END SUBROUTINE libtetrabz_mpisum_dv
+!
+! MPI_Allreduce for double complex vector
+!
+SUBROUTINE libtetrabz_mpisum_zv(comm,ndim,vector)
+ !
+ IMPLICIT NONE
+ !
+ INTEGER :: comm, ndim
+ COMPLEX(8) :: vector(ndim)
+ !
+#if defined(HAVE_MPI)
+ INTEGER :: ierr
+#ifndef HAVE_MPI2_INPLACE
+ COMPLEX(8) :: vector_out(ndim)
+#endif
+ !
+#ifdef HAVE_MPI2_INPLACE
+ CALL MPI_allREDUCE(MPI_IN_PLACE, vector, ndim, &
+ & MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr)
+#else
+ CALL MPI_allREDUCE(vector, vector_out, ndim, &
+ & MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr)
+ vector(1:ndim)=vector_out(1:ndim)
+#endif
+#endif
+ !
+END SUBROUTINE libtetrabz_mpisum_zv
+!
+END MODULE libtetrabz_common
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.o
new file mode 100644
index 00000000..85cfaa60
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_common.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.F90
new file mode 100644
index 00000000..c710ae25
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.F90
@@ -0,0 +1,269 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_dbldelta_mod
+ !
+
+ use m_abicore
+ use m_errors
+
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_dbldelta
+ !
+CONTAINS
+!
+! Compute doubledelta
+!
+SUBROUTINE libtetrabz_dbldelta(ltetra,bvec,nb,nge,eig1,eig2,ngw,wght,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3)
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig1(nb,PRODUCT(nge(1:3))), eig2(nb,PRODUCT(nge(1:3)))
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(nb*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (nb*nb,1,nk_local))
+ CALL libtetrabz_dbldelta_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:nb*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:nb*nb,kintp(1:nintp)) = wght(1:nb*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:nb*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, nb*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_dbldelta_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_dbldelta
+!
+! Main SUBROUTINE for Delta(E1) * Delta(E2)
+!
+SUBROUTINE libtetrabz_dbldelta_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,dbldelta)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_triangle_a1, libtetrabz_triangle_b1, &
+ & libtetrabz_triangle_b2, libtetrabz_triangle_c1
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig1(nb,nkBZ), eig2(nb,nkBZ)
+ REAL(8),INTENT(OUT) :: dbldelta(nb,nb,nk_local)
+ !
+ INTEGER :: ib, indx(4), it
+ REAL(8) :: e(4), ei1(4,nb), ej1(4,nb), ej2(3,nb), V, thr = 1d-10, &
+ & tsmall(3,4), w1(nb,4), w2(nb,3)
+ !
+ dbldelta(1:nb,1:nb,1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(dbldelta,eig1,eig2,ik_global,ik_local,nb,nt_local,thr,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ej1,ej2,ib,indx,it,tsmall,V,w1,w2)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4,ib) = MATMUL(wlsm(1:4,1:20), eig1(ib, ik_global(1:20,it)))
+ ej1(1:4,ib) = MATMUL(wlsm(1:4,1:20), eig2(ib, ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:nb,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(e(1) < 0d0 .AND. 0d0 <= e(2)) THEN
+ !
+ CALL libtetrabz_triangle_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ej2(1:3,1:nb) = MATMUL(tsmall(1:3,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dbldelta2(nb,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:3), tsmall(1:3,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(2) < 0d0 .AND. 0d0 <= e(3)) THEN
+ !
+ CALL libtetrabz_triangle_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ej2(1:3,1:nb) = MATMUL(tsmall(1:3,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dbldelta2(nb,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:3), tsmall(1:3,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_triangle_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ej2(1:3,1:nb) = MATMUL(tsmall(1:3,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dbldelta2(nb,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:3), tsmall(1:3,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(3) < 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_triangle_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ej2(1:3,1:nb) = MATMUL(tsmall(1:3,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dbldelta2(nb,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:3), tsmall(1:3,1:4))
+ !
+ END IF
+ !
+ END IF
+ !
+ dbldelta(1:nb,ib,ik_local(1:20,it)) = dbldelta(1:nb,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:nb,1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ dbldelta(1:nb,1:nb,1:nk_local) = dbldelta(1:nb,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_dbldelta_main
+!
+! 2nd step of tetrahedra method.
+!
+SUBROUTINE libtetrabz_dbldelta2(nb,ej,w)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nb
+ REAL(8),INTENT(IN) :: ej(3,nb)
+ REAL(8),INTENT(INOUT) :: w(nb,3)
+ !
+ INTEGER :: ib, ii, indx(3)
+ REAL(8) :: a(3,3), e(3), V
+ REAL(8) :: ediff(3)
+ !character(len=500) :: msg
+ !
+ DO ib = 1, nb
+ !
+ IF(maxval(ABS(ej(1:3,ib))) < 1d-10) then
+ ! MG reduce tolerance wrt original version.
+ !IF(maxval(ABS(ej(1:3,ib))) < 1d-22) then
+ !write(std_out, ej(1:3,ib))
+ !write(msg, *)"Nesting for band index:", ib, "ej:", ej(1:3,ib)
+ !ABI_WARNING(msg)
+ !ABI_ERROR(msg)
+ !ABI_ERROR("STOP Nesting !!")
+ w(ib,1:3) = 0d0
+ cycle
+ end if
+ !
+ w(ib,1:3) = 0d0
+ e(1:3) = ej(1:3, ib)
+ CALL libtetrabz_sort(3,e,indx)
+ !
+ DO ii = 1, 3
+ ediff = e(1:3) - e(ii)
+ where (abs(ediff) < 1.e-10)
+ ediff = 1.e-10
+ end where
+ a(1:3,ii) = (0d0 - e(ii)) / ediff
+ !a(1:3,ii) = (0d0 - e(ii)) / (e(1:3) - e(ii))
+ END DO
+ !
+ IF((e(1) < 0d0 .AND. 0d0 <= e(2)) .OR. (e(1) <= 0d0 .AND. 0d0 < e(2))) THEN
+ !
+ !V = a(2,1) * a(3,1) / (0d0 - e(1))
+ V = a(2,1) / (e(3) - e(1))
+ !
+ w(ib,indx(1)) = V * (a(1,2) + a(1,3))
+ w(ib,indx(2)) = V * a(2,1)
+ w(ib,indx(3)) = V * a(3,1)
+ !
+ ELSE IF((e(2) <= 0d0 .AND. 0d0 < e(3)) .OR. (e(2) < 0d0 .AND. 0d0 <= e(3))) THEN
+ !
+ !V = a(1,3) * a(2,3) / (e(3) - 0d0)
+ V = a(2,3) / (e(3) - e(1))
+ !
+ w(ib,indx(1)) = V * a(1,3)
+ w(ib,indx(2)) = V * a(2,3)
+ w(ib,indx(3)) = V * (a(3,1) + a(3,2))
+ !
+ END IF
+ !
+ END DO ! ib
+ !
+END SUBROUTINE libtetrabz_dbldelta2
+!
+END MODULE libtetrabz_dbldelta_mod
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.o
new file mode 100644
index 00000000..eb85bfd4
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dbldelta_mod.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.F90
new file mode 100644
index 00000000..ae8a1804
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.F90
@@ -0,0 +1,319 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_dblstep_mod
+ !
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_dblstep
+ !
+CONTAINS
+!
+! Compute Occ * Step
+!
+SUBROUTINE libtetrabz_dblstep(ltetra,bvec,nb,nge,eig1,eig2,ngw,wght,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3)
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig1(nb,PRODUCT(nge(1:3))), eig2(nb,PRODUCT(nge(1:3)))
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(nb*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (nb*nb,1,nk_local))
+ CALL libtetrabz_dblstep_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:nb*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:nb*nb,kintp(1:nintp)) = wght(1:nb*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:nb*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, nb*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_dblstep_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_dblstep
+!
+! Main SUBROUTINE for Theta(- E1) * Theta(E1 - E2)
+!
+SUBROUTINE libtetrabz_dblstep_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,nk_local,dblstep)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig1(nb,nkBZ), eig2(nb,nkBZ)
+ REAL(8),INTENT(OUT) :: dblstep(nb,nb,nk_local)
+ !
+ INTEGER :: ib, indx(4), it
+ REAL(8) :: e(4), ei1(4,nb), ei2(4), ej1(4,nb), ej2(4,nb), thr = 1d-10, &
+ & tsmall(4,4), V, w1(nb,4), w2(nb,4)
+ !
+ dblstep(1:nb,1:nb,1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(dblstep,eig1,eig2,ik_global,ik_local,nb,nt_local,thr,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ei2,ej1,ej2,ib,indx,it,tsmall,V,w1,w2)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig1(ib, ik_global(1:20,it)))
+ ej1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig2(ib, ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:nb,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(e(1) <= 0d0 .AND. 0d0 < e(2) ) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(2) <= 0d0 .AND. 0d0 < e(3)) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(3) <= 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ ei2(1:4 ) = ei1(1:4, ib)
+ ej2(1:4,1:nb) = ej1(1:4,1:nb)
+ CALL libtetrabz_dblstep2(nb,ei2,ej2,w2)
+ w1(1:nb,1:4) = w1(1:nb,1:4) + w2(1:nb,1:4)
+ !
+ ELSE
+ !
+ CYCLE
+ !
+ END IF
+ !
+ dblstep(1:nb,ib,ik_local(1:20,it)) = dblstep(1:nb,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:nb, 1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ dblstep(1:nb,1:nb,1:nk_local) = dblstep(1:nb,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_dblstep_main
+!
+! Tetrahedra method for theta( - de)
+!
+SUBROUTINE libtetrabz_dblstep2(nb,ei1,ej1,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nb
+ REAL(8),INTENT(IN) :: ei1(4), ej1(4,nb)
+ REAL(8),INTENT(OUT) :: w1(nb,4)
+ !
+ INTEGER :: ib, indx(4)
+ REAL(8) :: e(4), thr = 1d-8, tsmall(4,4), V
+ !
+ DO ib = 1, nb
+ !
+ w1(ib,1:4) = 0d0
+ e(1:4) = - ei1(1:4) + ej1(1:4,ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(ABS(e(1)) < thr .AND. ABS(e(4)) < thr) THEN
+ !
+ ! Theta(0) = 0.5
+ !
+ V = 0.5d0
+ w1(ib,1:4) = w1(ib,1:4) + V * 0.25d0
+ !
+ ELSE IF((e(1) <= 0d0 .AND. 0d0 < e(2)) .OR. (e(1) < 0d0 .AND. 0d0 <= e(2))) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF((e(2) <= 0d0 .AND. 0d0 < e(3)) .OR. (e(2) < 0d0 .AND. 0d0 <= e(3))) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF((e(3) <= 0d0 .AND. 0d0 < e(4)) .OR. (e(3) < 0d0 .AND. 0d0 <= e(4))) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ w1(ib,1:4) = w1(ib,1:4) + 0.25d0
+ !
+ END IF
+ !
+ END DO ! ib = 1, nb
+ !
+END SUBROUTINE libtetrabz_dblstep2
+!
+END MODULE libtetrabz_dblstep_mod
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.o
new file mode 100644
index 00000000..459495b2
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dblstep_mod.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.F90
new file mode 100644
index 00000000..548c3cf2
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.F90
@@ -0,0 +1,332 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_dos_mod
+ !
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_dos, libtetrabz_intdos
+ !
+CONTAINS
+!
+! Compute DOS
+!
+SUBROUTINE libtetrabz_dos(ltetra,bvec,nb,nge,eig,ngw,wght,ne,e0,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3), ne
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig(nb,PRODUCT(nge(1:3))), e0(ne)
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(ne*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (ne*nb,1,nk_local))
+ CALL libtetrabz_dos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:ne*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:ne*nb,kintp(1:nintp)) = wght(1:ne*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:ne*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, ne*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_dos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_dos
+!
+! Compute Integrated DOS
+!
+SUBROUTINE libtetrabz_intdos(ltetra,bvec,nb,nge,eig,ngw,wght,ne,e0,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3), ne
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig(nb,PRODUCT(nge(1:3))), e0(ne)
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(ne*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (ne*nb,1,nk_local))
+ CALL libtetrabz_intdos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:ne*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:ne*nb,kintp(1:nintp)) = wght(1:ne*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:ne*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, ne*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_intdos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_intdos
+!
+! Main SUBROUTINE for Dos : Delta(E - E1)
+!
+SUBROUTINE libtetrabz_dos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,dos)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_triangle_a1, libtetrabz_triangle_b1, &
+ & libtetrabz_triangle_b2, libtetrabz_triangle_c1
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, ne, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig(nb,nkBZ), e0(ne)
+ REAL(8),INTENT(OUT) :: dos(ne,nb,nk_local)
+ !
+ INTEGER :: ib, it, ie, indx(4) !, ii
+ REAL(8) :: e(4), ei1(4,nb), tsmall(3,4), V, w1(ne,4) !, wmul(ne,20)
+ !
+ dos(1:ne, 1:nb, 1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(dos,eig,e0,ik_global,ik_local,nb,ne,nt_local,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ib,ie,indx,it,tsmall,V,w1)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4,ib) = MATMUL(wlsm(1:4,1:20), eig(ib,ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:ne,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ DO ie = 1, ne
+ !
+ IF((e(1) < e0(ie) .AND. e0(ie) <= e(2)) .OR. &
+ & (e(1) <= e0(ie) .AND. e0(ie) < e(2))) THEN
+ !
+ CALL libtetrabz_triangle_a1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ ELSE IF((e(2) < e0(ie) .AND. e0(ie) <= e(3)) .OR. &
+ & (e(2) <= e0(ie) .AND. e0(ie) < e(3))) THEN
+ !
+ CALL libtetrabz_triangle_b1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ CALL libtetrabz_triangle_b2(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ ELSE IF((e(3) < e0(ie) .AND. e0(ie) <= e(4)) .OR. &
+ & (e(3) <= e0(ie) .AND. e0(ie) < e(4))) THEN
+ !
+ CALL libtetrabz_triangle_c1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ END IF
+ !
+ END DO ! ie
+ !
+
+ !call DGEMM("N", "N", ne, 20, 4, 1d0, w1, ne, wlsm, 4, 0d0, wmul, ne)
+ !wmul(:, 1:4) = MATMUL(w1, wlsm(:, 1:4))
+ !do ii=1,4
+ ! ie = ik_local(ii,it)
+ ! dos(:,ib, ie) = dos(:,ib, ie) + wmul(:, ii)
+ !end do
+
+ ! This call is expensive and 1:20 can be reduced to 1:4 if Blochl
+ dos(1:ne,ib,ik_local(1:20,it)) = dos(1:ne,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:ne, 1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ dos(1:ne,1:nb,1:nk_local) = dos(1:ne,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_dos_main
+!
+! Main SUBROUTINE for integrated Dos : theta(E - E1)
+!
+SUBROUTINE libtetrabz_intdos_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,ne,e0,nk_local,intdos)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, ne, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig(nb,nkBZ), e0(ne)
+ REAL(8),INTENT(OUT) :: intdos(ne,nb,nk_local)
+ !
+ INTEGER :: ib, it, ie, indx(4)
+ REAL(8) :: e(4), ei1(4,nb), tsmall(4,4), V, w1(ne,4)
+ !
+ intdos(1:ne, 1:nb, 1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(eig,e0,ik_global,ik_local,intdos,nb,ne,nt_local,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ib,ie,indx,it,tsmall,V,w1)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4,ib) = MATMUL(wlsm(1:4,1:20), eig(ib,ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:ne,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ DO ie = 1, ne
+ !
+ IF((e(1) <= e0(ie) .AND. e0(ie) < e(2)) .OR. &
+ & (e(1) < e0(ie) .AND. e0(ie) <= e(2))) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF((e(2) <= e0(ie) .AND. e0(ie) < e(3)) .OR. &
+ & (e(2) < e0(ie) .AND. e0(ie) <= e(3))) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b2(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b3(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF((e(3) <= e0(ie) .AND. e0(ie) < e(4)) .OR. &
+ & (e(3) < e0(ie) .AND. e0(ie) <= e(4))) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c2(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c3(e - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF(e(4) <= e0(ie)) THEN
+ !
+ w1(ie,1:4) = 0.25d0
+ !
+ ELSE
+ !
+ CYCLE
+ !
+ END IF
+ !
+ END DO ! ie
+ !
+ intdos(1:ne,ib,ik_local(1:20,it)) = intdos(1:ne,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:ne, 1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ intdos(1:ne,1:nb,1:nk_local) = intdos(1:ne,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_intdos_main
+!
+END MODULE libtetrabz_dos_mod
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.o
new file mode 100644
index 00000000..9df22a58
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_dos_mod.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.F90
new file mode 100644
index 00000000..ea7ea2b0
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.F90
@@ -0,0 +1,413 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_fermigr_mod
+ !
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_fermigr
+ !
+CONTAINS
+!
+! Compute Fermi's golden rule
+!
+SUBROUTINE libtetrabz_fermigr(ltetra,bvec,nb,nge,eig1,eig2,ngw,wght,ne,e0,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3), ne
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), e0(ne), eig1(nb,PRODUCT(nge(1:3))), eig2(nb,PRODUCT(nge(1:3)))
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(ne*nb*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (ne*nb*nb,1,nk_local))
+ CALL libtetrabz_fermigr_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:ne*nb*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:ne*nb*nb,kintp(1:nintp)) = wght(1:ne*nb*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:ne*nb*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, ne*nb*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_fermigr_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_fermigr
+!
+! Main SUBROUTINE for Fermi's Gorlden rule : Theta(- E1) * Theta(E2) * Delta(E2 - E1 - w)
+!
+SUBROUTINE libtetrabz_fermigr_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,fermigr)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, ne, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig1(nb,nkBZ), eig2(nb,nkBZ), e0(ne)
+ REAL(8),INTENT(OUT) :: fermigr(ne*nb,nb,nk_local)
+ !
+ INTEGER :: it, ib, indx(4)
+ REAL(8) :: e(4), ei1(4,nb), ei2(4), ej1(4,nb), ej2(4,nb), thr = 1d-10, tsmall(4,4), V, w1(ne*nb,4), w2(ne*nb,4)
+ !
+ fermigr(1:ne*nb,1:nb,1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(eig1,eig2,e0,fermigr,ik_global,ik_local,nb,ne,nt_local,thr,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ei2,ej1,ej2,ib,indx,it,tsmall,V,w1,w2)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig1(ib, ik_global(1:20,it)))
+ ej1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig2(ib, ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:ne*nb,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(e(1) <= 0d0 .AND. 0d0 < e(2)) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(2) <= 0d0 .AND. 0d0 < e(3)) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(3) <= 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ ei2(1:4 ) = ei1(1:4, ib)
+ ej2(1:4,1:nb) = ej1(1:4,1:nb)
+ CALL libtetrabz_fermigr2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,1:4) = w1(1:ne*nb,1:4) + w2(1:ne*nb,1:4)
+ !
+ END IF
+ !
+ fermigr(1:ne*nb,ib,ik_local(1:20,it)) = fermigr(1:ne*nb,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:ne*nb,1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib = 1, nb
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ fermigr(1:ne*nb,1:nb,1:nk_local) = fermigr(1:ne*nb,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_fermigr_main
+!
+! Tetrahedra method for theta( - E2)
+!
+SUBROUTINE libtetrabz_fermigr2(nb,ne,e0,ei1,ej1,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nb, ne
+ REAL(8),INTENT(IN) :: e0(ne), ei1(4), ej1(4,nb)
+ REAL(8),INTENT(OUT) :: w1(ne,nb,4)
+ !
+ INTEGER :: ib, indx(4)
+ REAL(8) :: de(4), e(4), thr = 1d-8, tsmall(4,4), V, w2(ne,4)
+ !
+ DO ib = 1, nb
+ !
+ w1(1:ne,ib,1:4) = 0d0
+ e(1:4) = - ej1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF((e(1) <= 0d0 .AND. 0d0 < e(2)) .OR. (e(1) < 0d0 .AND. 0d0 <= e(2))) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(2) <= 0d0 .AND. 0d0 < e(3)) .OR. (e(2) < 0d0 .AND. 0d0 <= e(3))) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(3) <= 0d0 .AND. 0d0 < e(4)) .OR. (e(3) < 0d0 .AND. 0d0 <= e(4))) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib,indx(1:4)) &
+ & + V * MATMUL(w2(1:ne, 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ de(1:4) = ej1(1:4,ib) - ei1(1:4)
+ CALL libtetrabz_fermigr3(ne,e0,de,w2)
+ w1(1:ne,ib,1:4) = w1(1:ne,ib,1:4) + w2(1:ne,1:4)
+ !
+ END IF
+ !
+ END DO ! ib = 1, nb
+ !
+END SUBROUTINE libtetrabz_fermigr2
+!
+!
+!
+SUBROUTINE libtetrabz_fermigr3(ne,e0,de,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_triangle_a1, libtetrabz_triangle_b1, &
+ & libtetrabz_triangle_b2, libtetrabz_triangle_c1
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: ne
+ REAL(8),INTENT(IN) :: e0(ne), de(4)
+ REAL(8),INTENT(OUT) :: w1(ne,4)
+ !
+ INTEGER :: ie, indx(4)
+ REAL(8) :: e(4), tsmall(3,4), V, w2(3)
+ !
+ w2(1:3) = 1d0 / 3d0
+ !
+ w1(1:ne,1:4) = 0d0
+ e(1:4) = de(1:4)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ DO ie = 1, ne
+ !
+ IF(e(1) < e0(ie) .AND. e0(ie) <= e(2)) THEN
+ !
+ CALL libtetrabz_triangle_a1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ ELSE IF(e(2) < e0(ie) .AND. e0(ie) <= e(3)) THEN
+ !
+ CALL libtetrabz_triangle_b1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ CALL libtetrabz_triangle_b2(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ ELSE IF(e(3) < e0(ie) .AND. e0(ie) < e(4)) THEN
+ !
+ CALL libtetrabz_triangle_c1(e(1:4) - e0(ie),V,tsmall)
+ w1(ie,indx(1:4)) = w1(ie,indx(1:4)) + V * SUM(tsmall(1:3,1:4), 1) / 3d0
+ !
+ END IF
+ !
+ END DO ! ie
+ !
+END SUBROUTINE libtetrabz_fermigr3
+!
+END MODULE libtetrabz_fermigr_mod
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.o
new file mode 100644
index 00000000..25fe07c7
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_fermigr_mod.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.F90
new file mode 100644
index 00000000..6c36e0a9
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.F90
@@ -0,0 +1,279 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_occ_mod
+ !
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_occ, libtetrabz_fermieng
+ !
+CONTAINS
+!
+! Compute occupation
+!
+SUBROUTINE libtetrabz_occ(ltetra,bvec,nb,nge,eig,ngw,wght,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3)
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig(nb,PRODUCT(nge(1:3)))
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (nb,1,nk_local))
+ CALL libtetrabz_occ_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,nk_local,wghtd,0d0)
+ !
+ ! Interpolation
+ !
+ wght(1:nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:nb,kintp(1:nintp)) = wght(1:nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, nb * PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_occ_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,nk_local,wght,0d0)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_occ
+!
+! Calculate Fermi energy
+!
+SUBROUTINE libtetrabz_fermieng(ltetra,bvec,nb,nge,eig,ngw,wght,ef,nelec,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, &
+ & libtetrabz_mpisum_d, libtetrabz_mpisum_dv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3)
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), nelec, eig(nb,PRODUCT(nge(1:3)))
+ REAL(C_DOUBLE),INTENT(OUT) :: ef
+ REAL(C_DOUBLE),INTENT(OUT) :: wght(nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: wghtd(:,:,:), kvec(:,:)
+ !
+ INTEGER :: iter, maxiter = 300
+ REAL(8) :: elw, eup, eps= 1d-10, sumkmid
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) then
+ ABI_MALLOC(wghtd, (nb,1,nk_local))
+ end if
+ !
+ elw = MINVAL(eig(1:nb,1:PRODUCT(nge(1:3))))
+ eup = MAXVAL(eig(1:nb,1:PRODUCT(nge(1:3))))
+ !
+ ! Bisection method
+ !
+ DO iter = 1, maxiter
+ !
+ ef = (eup + elw) / 2.d0
+ !
+ ! Calc. # of electrons
+ !
+ IF(linterpol) THEN
+ CALL libtetrabz_occ_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,nk_local,wghtd,ef)
+ sumkmid = SUM(wghtd(1:nb,1,1:nk_local))
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_d(comm,sumkmid)
+ !
+ ELSE
+ CALL libtetrabz_occ_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,nk_local,wght,ef)
+ sumkmid = SUM(wght(1:nb,1:nk_local))
+ END IF
+ !
+ ! convergence check
+ !
+ IF(ABS(sumkmid - nelec) < eps) THEN
+ EXIT
+ ELSE IF(sumkmid < nelec) THEN
+ elw = ef
+ ELSE
+ eup = ef
+ ENDIF
+ !
+ END DO ! iter
+ !
+ IF(iter >= maxiter) STOP "libtetrabz_fermieng"
+ !
+ IF(linterpol) THEN
+ !
+ ! Interpolation
+ !
+ wght(1:nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:nb,kintp(1:nintp)) = wght(1:nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_dv(comm, nb * PRODUCT(ngw(1:3)), wght)
+ !
+ END IF ! (linterpol)
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_fermieng
+!
+! Main SUBROUTINE for occupation : Theta(EF - E1)
+!
+SUBROUTINE libtetrabz_occ_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig,nk_local,occ,ef)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), ef, eig(nb,nkBZ)
+ REAL(8),INTENT(OUT) :: occ(nb,nk_local)
+ !
+ INTEGER :: ib, indx(4), it
+ REAL(8) :: e(4), ei1(4,nb), tsmall(4,4), V, w1(4)
+ !
+ occ(1:nb,1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(ef,eig,ik_global,ik_local,nb,nt_local,occ,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ib,indx,it,tsmall,V,w1)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4,ib) = MATMUL(wlsm(1:4,1:20), eig(ib,ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:4) = 0d0
+ e(1:4) = ei1(1:4, ib) - ef
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(e(1) <= 0d0 .AND. 0d0 < e(2)) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF(e(2) <= 0d0 .AND. 0d0 < e(3)) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF(e(3) <= 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ w1(indx(1:4)) = w1(indx(1:4)) + V * SUM(tsmall(1:4,1:4), 1) * 0.25d0
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ w1(1:4) = 0.25d0
+ !
+ ELSE
+ !
+ CYCLE
+ !
+ END IF
+ !
+ occ(ib,ik_local(1:20,it)) = occ(ib,ik_local(1:20,it)) &
+ & + MATMUL(w1(1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ occ(1:nb,1:nk_local) = occ(1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_occ_main
+!
+END MODULE libtetrabz_occ_mod
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.o b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.o
new file mode 100644
index 00000000..af39b581
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_occ_mod.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/libtetrabz_polcmplx_mod.F90 b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_polcmplx_mod.F90
new file mode 100644
index 00000000..4c2e5ab6
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/libtetrabz_polcmplx_mod.F90
@@ -0,0 +1,790 @@
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+!
+! Copyright (C) 2014 Mitsuaki Kawamura
+!
+! Permission is hereby granted, free of charge, to any person obtaining a
+! copy of this software and associated documentation files (the
+! "Software"), to deal in the Software without restriction, including
+! without limitation the rights to use, copy, modify, merge, publish,
+! distribute, sublicense, and/or sell copies of the Software, and to
+! permit persons to whom the Software is furnished to do so, subject to
+! the following conditions:
+!
+! The above copyright notice and this permission notice shall be included
+! in all copies or substantial portions of the Software.
+!
+! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+!
+MODULE libtetrabz_polcmplx_mod
+ !
+ IMPLICIT NONE
+ !
+ PRIVATE
+ PUBLIC :: libtetrabz_polcmplx
+ !
+CONTAINS
+!
+! Compute Polarization of imaginary frequency
+!
+SUBROUTINE libtetrabz_polcmplx(ltetra,bvec,nb,nge,eig1,eig2,ngw,wght,ne,e0,comm)
+ !
+ use, intrinsic :: iso_c_binding
+ USE libtetrabz_common, ONLY : libtetrabz_initialize, libtetrabz_interpol_indx, libtetrabz_mpisum_zv
+ IMPLICIT NONE
+ !
+ INTEGER(C_INT),INTENT(IN) :: ltetra, nb, nge(3), ngw(3), ne
+ REAL(C_DOUBLE),INTENT(IN) :: bvec(9), eig1(nb,PRODUCT(nge(1:3))), eig2(nb,PRODUCT(nge(1:3)))
+ COMPLEX(C_DOUBLE_COMPLEX),INTENT(IN) :: e0(ne)
+ COMPLEX(C_DOUBLE_COMPLEX),INTENT(OUT) :: wght(ne*nb*nb,PRODUCT(ngw(1:3)))
+ INTEGER(C_INT),INTENT(IN),OPTIONAL :: comm
+ !
+ LOGICAL :: linterpol
+ INTEGER :: nt_local, nk_local, nkBZ, ik, kintp(20), nintp
+ INTEGER,ALLOCATABLE :: ik_global(:,:), ik_local(:,:)
+ REAL(8) :: wlsm(4,20), wintp(1,20)
+ REAL(8),ALLOCATABLE :: kvec(:,:)
+ COMPLEX(8),ALLOCATABLE :: wghtd(:,:,:)
+ !
+ nintp = 16 * ltetra - 12
+ !
+ IF(PRESENT(comm)) THEN
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec,comm)
+ ELSE
+ CALL libtetrabz_initialize(ltetra,nge,ngw,bvec,linterpol,wlsm,nk_local,&
+ & nt_local,nkBZ,ik_global,ik_local,kvec)
+ END IF
+ !
+ IF(linterpol) THEN
+ !
+ ABI_MALLOC(wghtd, (ne*nb*nb,1,nk_local))
+ CALL libtetrabz_polcmplx_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,wghtd)
+ !
+ ! Interpolation
+ !
+ wght(1:ne*nb*nb,1:PRODUCT(ngw(1:3))) = 0d0
+ DO ik = 1, nk_local
+ CALL libtetrabz_interpol_indx(nintp,ngw,kvec(1:3,ik),kintp,wintp)
+ wght(1:ne*nb*nb,kintp(1:nintp)) = wght(1:ne*nb*nb, kintp(1:nintp)) &
+ & + MATMUL(wghtd(1:ne*nb*nb,1:1,ik), wintp(1:1,1:nintp))
+ END DO ! ik = 1, nk_local
+ ABI_FREE(wghtd)
+ ABI_FREE(kvec)
+ !
+ IF(PRESENT(comm)) CALL libtetrabz_mpisum_zv(comm, ne*nb*nb*PRODUCT(ngw(1:3)), wght)
+ !
+ ELSE
+ CALL libtetrabz_polcmplx_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,wght)
+ END IF
+ !
+ ABI_FREE(ik_global)
+ ABI_FREE(ik_local)
+ !
+END SUBROUTINE libtetrabz_polcmplx
+!
+! Main SUBROUTINE for Polaization (Imaginaly axis) : Theta(- E1) * Theta(E2) / (E2 - E1 - iw)
+!
+SUBROUTINE libtetrabz_polcmplx_main(wlsm,nt_local,ik_global,ik_local,nb,nkBZ,eig1,eig2,ne,e0,nk_local,polcmplx)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nt_local, nb, nkBZ, nk_local, ne, &
+ & ik_global(20,nt_local), ik_local(20,nt_local)
+ REAL(8),INTENT(IN) :: wlsm(4,20), eig1(nb,nkBZ), eig2(nb,nkBZ)
+ COMPLEX(8),INTENT(IN) :: e0(ne)
+ COMPLEX(8),INTENT(OUT) :: polcmplx(ne*nb,nb,nk_local)
+ !
+ INTEGER :: ib, indx(4), it
+ REAL(8) :: e(4), ei1(4,nb), ej1(4,nb), ei2(4), ej2(4,nb), thr = 1d-8, tsmall(4,4), V
+ COMPLEX(8) :: w1(ne*nb,4), w2(ne*nb,4)
+ !
+ polcmplx(1:ne*nb,1:nb,1:nk_local) = 0d0
+ !
+ !$OMP PARALLEL DEFAULT(NONE) &
+ !$OMP & SHARED(eig1,eig2,e0,ik_global,ik_local,nb,ne,nt_local,polcmplx,thr,wlsm) &
+ !$OMP & PRIVATE(e,ei1,ei2,ej1,ej2,ib,indx,it,tsmall,V,w1,w2)
+ !
+ DO it = 1, nt_local
+ !
+ DO ib = 1, nb
+ ei1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig1(ib, ik_global(1:20,it)))
+ ej1(1:4, ib) = MATMUL(wlsm(1:4,1:20), eig2(ib, ik_global(1:20,it)))
+ END DO
+ !
+ !$OMP DO
+ DO ib = 1, nb
+ !
+ w1(1:ne*nb,1:4) = 0d0
+ e(1:4) = ei1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF(e(1) <= 0d0 .AND. 0d0 < e(2)) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(2) <= 0d0 .AND. 0d0 < e(3)) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(3) <= 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,indx(1:4)) = w1(1:ne*nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne*nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(4) <= 0d0 ) THEN
+ !
+ ei2(1:4 ) = ei1(1:4, ib)
+ ej2(1:4,1:nb) = ej1(1:4,1:nb)
+ CALL libtetrabz_polcmplx2(nb,ne,e0,ei2,ej2,w2)
+ w1(1:ne*nb,1:4) = w1(1:ne*nb,1:4) + w2(1:ne*nb,1:4)
+ !
+ ELSE
+ !
+ CYCLE
+ !
+ END IF
+ !
+ polcmplx(1:ne*nb,ib,ik_local(1:20,it)) = polcmplx(1:ne*nb,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:ne*nb,1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib = 1, nb
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ polcmplx(1:ne*nb,1:nb,1:nk_local) = polcmplx(1:ne*nb,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_polcmplx_main
+!
+! Tetrahedra method for theta( - E2)
+!
+SUBROUTINE libtetrabz_polcmplx2(nb,ne,e0,ei1,ej1,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nb, ne
+ COMPLEX(8),INTENT(IN) :: e0(ne)
+ REAL(8),INTENT(IN) :: ei1(4), ej1(4,nb)
+ COMPLEX(8),INTENT(OUT) :: w1(ne,nb,4)
+ !
+ INTEGER :: ib, indx(4)
+ REAL(8) :: de(4), e(4), thr = 1d-8, tsmall(4,4), V
+ COMPLEX(8) :: w2(ne,4)
+ !
+ DO ib = 1, nb
+ !
+ w1(1:ne,ib,1:4) = 0d0
+ e(1:4) = - ej1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF((e(1) <= 0d0 .AND. 0d0 < e(2)) .OR. (e(1) < 0d0 .AND. 0d0 <= e(2))) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(2) <= 0d0 .AND. 0d0 < e(3)) .OR. (e(2) < 0d0 .AND. 0d0 <= e(3))) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(3) <= 0d0 .AND. 0d0 < e(4)) .OR. (e(3) < 0d0 .AND. 0d0 <= e(4))) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,indx(1:4)) = w1(1:ne,ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:ne,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ de(1:4) = ej1(1:4,ib) - ei1(1:4)
+ CALL libtetrabz_polcmplx3(ne,e0,de,w2)
+ w1(1:ne,ib,1:4) = w1(1:ne,ib,1:4) + w2(1:ne,1:4)
+ !
+ END IF
+ !
+ END DO
+ !
+END SUBROUTINE libtetrabz_polcmplx2
+!
+! Tetarahedra method for delta(om - ep + e)
+!
+SUBROUTINE libtetrabz_polcmplx3(ne,e0,de,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: ne
+ COMPLEX(8),INTENT(IN) :: e0(ne)
+ REAL(8),INTENT(IN) :: de(4)
+ COMPLEX(8),INTENT(OUT) :: w1(ne,4)
+ !
+ INTEGER :: ie, indx(4)
+ REAL(8) :: e(4), thr, w2(2,4), x(4)
+ !
+ e(1:4) = de(1:4)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ DO ie = 1, ne
+ !
+ ! I don't know which one is better.
+ ! The former is more stable.
+ ! The latter is more accurate ?
+ !
+ w1(ie,1:4) = 0.25d0 / (de(1:4) + e0(ie))
+ !
+ CYCLE
+ !
+ x(1:4) = (e(1:4) + DBLE(e0(ie))) / AIMAG(e0(ie))
+ !thr = maxval(de(1:4)) * 1d-3
+ thr = max(1d-3, MAXVAL(x(1:4)) * 1d-2)
+ !
+ IF(ABS(x(4) - x(3)) < thr) THEN
+ IF(ABS(x(4) - x(2)) < thr) THEN
+ IF(ABS(x(4) - x(1)) < thr) THEN
+ !
+ ! e(4) = e(3) = e(2) = e(1)
+ !
+ w2(1,4) = 0.25d0 * x(4) / ((1d0 + x(4)**2))
+ w2(2,4) = 0.25d0 / ((1d0 + x(4)**2))
+ w2(1:2,3) = w2(1:2,4)
+ w2(1:2,2) = w2(1:2,4)
+ w2(1:2,1) = w2(1:2,4)
+ !
+ ELSE
+ !
+ ! e(4) = e(3) = e(2)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1211(x(4),x(1))
+ w2(1:2,3) = w2(1:2,4)
+ w2(1:2,2) = w2(1:2,4)
+ w2(1:2,1) = libtetrabz_polcmplx_1222(x(1),x(4))
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 4=3=2"
+ !END IF
+ !
+ END IF
+ ELSE IF(ABS(x(2) - x(1)) < thr ) THEN
+ !
+ ! e(4) = e(3), e(2) = e(1)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1221(x(4),x(2))
+ w2(1:2,3) = w2(1:2,4)
+ w2(1:2,2) = libtetrabz_polcmplx_1221(x(2),x(4))
+ w2(1:2,1) = w2(1:2,2)
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 4=3 2=1"
+ !END IF
+ !
+ ELSE
+ !
+ ! e(4) = e(3)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1231(x(4),x(1),x(2))
+ w2(1:2,3) = w2(1:2,4)
+ w2(1:2,2) = libtetrabz_polcmplx_1233(x(2),x(1),x(4))
+ w2(1:2,1) = libtetrabz_polcmplx_1233(x(1),x(2),x(4))
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 4=3"
+ !END IF
+ !
+ END IF
+ ELSE IF(ABS(x(3) - x(2)) < thr) THEN
+ IF(ABS(x(3) - x(1)) < thr) THEN
+ !
+ ! e(3) = e(2) = e(1)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1222(x(4),x(3))
+ w2(1:2,3) = libtetrabz_polcmplx_1211(x(3),x(4))
+ w2(1:2,2) = w2(1:2,3)
+ w2(1:2,1) = w2(1:2,3)
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 3=2=1"
+ !END IF
+ !
+ ELSE
+ !
+ ! e(3) = e(2)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1233(x(4),x(1),x(3))
+ w2(1:2,3) = libtetrabz_polcmplx_1231(x(3),x(1),x(4))
+ w2(1:2,2) = w2(1:2,3)
+ w2(1:2,1) = libtetrabz_polcmplx_1233(x(1),x(4),x(3))
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 3=2"
+ !END IF
+ !
+ END IF
+ ELSE IF(ABS(x(2) - x(1)) < thr) THEN
+ !
+ ! e(2) = e(1)
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1233(x(4),x(3),x(2))
+ w2(1:2,3) = libtetrabz_polcmplx_1233(x(3),x(4),x(2))
+ w2(1:2,2) = libtetrabz_polcmplx_1231(x(2),x(3),x(4))
+ w2(1:2,1) = w2(1:2,2)
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting 2=1"
+ !END IF
+ !
+ ELSE
+ !
+ ! Different each other.
+ !
+ w2(1:2,4) = libtetrabz_polcmplx_1234(x(4),x(1),x(2),x(3))
+ w2(1:2,3) = libtetrabz_polcmplx_1234(x(3),x(1),x(2),x(4))
+ w2(1:2,2) = libtetrabz_polcmplx_1234(x(2),x(1),x(3),x(4))
+ w2(1:2,1) = libtetrabz_polcmplx_1234(x(1),x(2),x(3),x(4))
+ !
+ !IF(ANY(w2(1:2,1:4) < 0d0)) THEN
+ ! WRITE(*,*) ie
+ ! WRITE(*,'(100e15.5)') x(1:4)
+ ! WRITE(*,'(2e15.5)') w2(1:2,1:4)
+ ! STOP "weighting"
+ !END IF
+ !
+ END IF
+ !
+ w1(ie,indx(1:4)) = CMPLX(w2(1,1:4) / AIMAG(e0(ie)), &
+ & w2(2,1:4) / (- AIMAG(e0(ie))), KIND(0d0))
+ !
+ END DO ! ie
+ !
+END SUBROUTINE libtetrabz_polcmplx3
+!
+! Results of Integration (1-x-y-z)/(g0+(g1-g0)x+(g2-g0)y+(g3-g0))
+! for 0 thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(2) <= 0d0 .AND. 0d0 < e(3)) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(3) <= 0d0 .AND. 0d0 < e(4)) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ ei2(1:4 ) = MATMUL(tsmall(1:4,1:4), ei1(indx(1:4), ib))
+ ej2(1:4,1:nb) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),1:nb))
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,indx(1:4)) = w1(1:nb, indx(1:4)) &
+ & + V * MATMUL(w2(1:nb,1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF(e(4) <= 0d0) THEN
+ !
+ ei2(1:4 ) = ei1(1:4, ib)
+ ej2(1:4,1:nb) = ej1(1:4,1:nb)
+ CALL libtetrabz_polstat2(nb,ei2,ej2,w2)
+ w1(1:nb,1:4) = w1(1:nb,1:4) + w2(1:nb,1:4)
+ !
+ ELSE
+ !
+ CYCLE
+ !
+ END IF
+ !
+ polstat(1:nb,ib,ik_local(1:20,it)) = polstat(1:nb,ib, ik_local(1:20,it)) &
+ & + MATMUL(w1(1:nb,1:4), wlsm(1:4,1:20))
+ !
+ END DO ! ib
+ !$OMP END DO NOWAIT
+ !
+ END DO ! it
+ !
+ !$OMP END PARALLEL
+ !
+ polstat(1:nb,1:nb,1:nk_local) = polstat(1:nb,1:nb,1:nk_local) / DBLE(6 * nkBZ)
+ !
+END SUBROUTINE libtetrabz_polstat_main
+!
+! Tetrahedra method for theta( - E2)
+!
+SUBROUTINE libtetrabz_polstat2(nb,ei1,ej1,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort, &
+ & libtetrabz_tsmall_a1, libtetrabz_tsmall_b1, &
+ & libtetrabz_tsmall_b2, libtetrabz_tsmall_b3, &
+ & libtetrabz_tsmall_c1, libtetrabz_tsmall_c2, &
+ & libtetrabz_tsmall_c3
+ IMPLICIT NONE
+ !
+ INTEGER,INTENT(IN) :: nb
+ REAL(8),INTENT(IN) :: ei1(4), ej1(4,nb)
+ REAL(8),INTENT(INOUT) :: w1(nb,4)
+ !
+ INTEGER :: ib, indx(4)
+ REAL(8) :: de(4), e(4), thr = 1d-8, tsmall(4,4), V, w2(4)
+ !
+ DO ib = 1, nb
+ !
+ w1(ib,1:4) = 0d0
+ e(1:4) = - ej1(1:4, ib)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ IF((e(1) <= 0d0 .AND. 0d0 < e(2)) .OR. (e(1) < 0d0 .AND. 0d0 <= e(2))) THEN
+ !
+ CALL libtetrabz_tsmall_a1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(2) <= 0d0 .AND. 0d0 < e(3)) .OR. (e(2) < 0d0 .AND. 0d0 <= e(3))) THEN
+ !
+ CALL libtetrabz_tsmall_b1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib,indx(1:4)) &
+ & + V * MATMUL(w2( 1:4 ), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_b3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF((e(3) <= 0d0 .AND. 0d0 < e(4)) .OR. (e(3) < 0d0 .AND. 0d0 <= e(4))) THEN
+ !
+ CALL libtetrabz_tsmall_c1(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c2(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ CALL libtetrabz_tsmall_c3(e,V,tsmall)
+ !
+ IF(V > thr) THEN
+ !
+ de(1:4) = MATMUL(tsmall(1:4,1:4), ej1(indx(1:4),ib) - ei1(indx(1:4)))
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,indx(1:4)) = w1(ib, indx(1:4)) &
+ & + V * MATMUL(w2(1:4), tsmall(1:4,1:4))
+ !
+ END IF
+ !
+ ELSE IF( e(4) <= 0d0 ) THEN
+ !
+ de(1:4) = ej1(1:4,ib) - ei1(1:4)
+ CALL libtetrabz_polstat3(de,w2)
+ w1(ib,1:4) = w1(ib,1:4) + w2(1:4)
+ !
+ END IF
+ !
+ END DO ! ib = 1, nb
+ !
+END SUBROUTINE libtetrabz_polstat2
+!
+! Tetarahedra method for delta(om - ep + e)
+!
+SUBROUTINE libtetrabz_polstat3(de,w1)
+ !
+ USE libtetrabz_common, ONLY : libtetrabz_sort
+ IMPLICIT NONE
+ !
+ REAL(8),INTENT(IN) :: de(4)
+ REAL(8),INTENT(INOUT) :: w1(4)
+ !
+ INTEGER :: ii, indx(4)
+ REAL(8) :: e(4), ln(4), thr, thr2
+ !
+ e(1:4) = de(1:4)
+ CALL libtetrabz_sort(4,e,indx)
+ !
+ thr = MAXVAL(e(1:4)) * 1d-3
+ thr2 = 1d-8
+ !
+ DO ii = 1, 4
+ IF(e(ii) < thr2) THEN
+ IF(ii == 3) THEN
+ STOP " Nesting ! "
+ END IF
+ ln(ii) = 0d0
+ e(ii) = 0d0
+ ELSE
+ ln(ii) = LOG(e(ii))
+ END IF
+ END DO
+ !
+ IF(ABS(e(4) - e(3)) < thr ) THEN
+ IF(ABS(e(4) - e(2)) < thr ) THEN
+ IF(ABS(e(4) - e(1)) < thr ) THEN
+ !
+ ! e(4) = e(3) = e(2) = e(1)
+ !
+ w1(indx(4)) = 0.25d0 / e(4)
+ w1(indx(3)) = w1(indx(4))
+ w1(indx(2)) = w1(indx(4))
+ w1(indx(1)) = w1(indx(4))
+ !
+ ELSE
+ !
+ ! e(4) = e(3) = e(2)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1211(e(4),e(1),ln(4),ln(1))
+ w1(indx(3)) = w1(indx(4))
+ w1(indx(2)) = w1(indx(4))
+ w1(indx(1)) = libtetrabz_polstat_1222(e(1),e(4),ln(1),ln(4))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 4=3=2")
+ END IF
+ !
+ END IF
+ ELSE IF(ABS(e(2) - e(1)) < thr) THEN
+ !
+ ! e(4) = e(3), e(2) = e(1)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1221(e(4),e(2), ln(4),ln(2))
+ w1(indx(3)) = w1(indx(4))
+ w1(indx(2)) = libtetrabz_polstat_1221(e(2),e(4), ln(2),ln(4))
+ w1(indx(1)) = w1(indx(2))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 4=3 2=1")
+ END IF
+ !
+ ELSE
+ !
+ ! e(4) = e(3)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1231(e(4),e(1),e(2),ln(4),ln(1),ln(2))
+ w1(indx(3)) = w1(indx(4))
+ w1(indx(2)) = libtetrabz_polstat_1233(e(2),e(1),e(4),ln(2),ln(1),ln(4))
+ w1(indx(1)) = libtetrabz_polstat_1233(e(1),e(2),e(4),ln(1),ln(2),ln(4))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 4=3")
+ END IF
+ !
+ END IF
+ ELSE IF(ABS(e(3) - e(2)) < thr) THEN
+ IF(ABS(e(3) - e(1)) < thr) THEN
+ !
+ ! e(3) = e(2) = e(1)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1222(e(4),e(3), ln(4),ln(3))
+ w1(indx(3)) = libtetrabz_polstat_1211(e(3),e(4), ln(3),ln(4))
+ w1(indx(2)) = w1(indx(3))
+ w1(indx(1)) = w1(indx(3))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 3=2=1")
+ END IF
+ !
+ ELSE
+ !
+ ! e(3) = e(2)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1233(e(4),e(1),e(3),ln(4),ln(1),ln(3))
+ w1(indx(3)) = libtetrabz_polstat_1231(e(3),e(1),e(4),ln(3),ln(1),ln(4))
+ w1(indx(2)) = w1(indx(3))
+ w1(indx(1)) = libtetrabz_polstat_1233(e(1),e(4),e(3),ln(1),ln(4),ln(3))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 3=2")
+ END IF
+ !
+ END IF
+ ELSE IF(ABS(e(2) - e(1)) < thr) THEN
+ !
+ ! e(2) = e(1)
+ !
+ w1(indx(4)) = libtetrabz_polstat_1233(e(4),e(3),e(2),ln(4),ln(3),ln(2))
+ w1(indx(3)) = libtetrabz_polstat_1233(e(3),e(4),e(2),ln(3),ln(4),ln(2))
+ w1(indx(2)) = libtetrabz_polstat_1231(e(2),e(3),e(4),ln(2),ln(3),ln(4))
+ w1(indx(1)) = w1(indx(2))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting 2=1")
+ END IF
+ !
+ ELSE
+ !
+ ! Different each other.
+ !
+ w1(indx(4)) = libtetrabz_polstat_1234(e(4),e(1),e(2),e(3),ln(4),ln(1),ln(2),ln(3))
+ w1(indx(3)) = libtetrabz_polstat_1234(e(3),e(1),e(2),e(4),ln(3),ln(1),ln(2),ln(4))
+ w1(indx(2)) = libtetrabz_polstat_1234(e(2),e(1),e(3),e(4),ln(2),ln(1),ln(3),ln(4))
+ w1(indx(1)) = libtetrabz_polstat_1234(e(1),e(2),e(3),e(4),ln(1),ln(2),ln(3),ln(4))
+ !
+ IF(ANY(w1(1:4) < 0d0)) THEN
+ WRITE(std_out,'(100e15.5)') e(1:4)
+ WRITE(std_out,'(100e15.5)') w1(indx(1:4))
+ ABI_ERROR("weighting")
+ END IF
+ !
+ END IF
+ !
+END SUBROUTINE libtetrabz_polstat3
+!
+! Results of Integration (1-x-y-z)/(g0+(g1-g0)x+(g2-g0)y+(g3-g0))
+! for 0 krank_get_index
+ ! Return the index of the k-point `kpt` in the initial set. -1 if not found.
+
+ procedure :: copy => krank_copy
+ ! Deep copy of the object
+
+ procedure :: free => krank_free
+ ! Free memory
+
+ procedure :: print => krank_print
+ ! Prints the arrays and dimensions of a krank_t structure
+
+ procedure :: get_mapping => krank_get_mapping
+ ! Use symmetries to map input kptn2 to the list of k-points used to generate krank_t.
+ ! Similar to listkk but, unlike listkk, this algo does not try to minimize the distance.
+ ! Must faster than listkk for dense meshes
+
+ end type krank_t
+
+ public :: krank_from_kptrlatt ! Initialize object from kptrlatt
+ public :: krank_new ! Sets up the kpt ranks for comparing kpts
+
+ public :: get_ibz2bz ! Return array with the index of the IBZ wave vectors in the BZ.
+ public :: star_from_ibz_idx ! Return array with the indices of the star of the ik_ibz wavevector in the IBZ.
+!!***
+
+contains
+
+
+!!****f* m_krank/krank_from_kptrlatt
+!! NAME
+!! krank_from_kptrlatt
+!!
+!! FUNCTION
+!! This routine sets up the kpt ranks for comparing kpts
+!!
+!! INPUTS
+!! npt = number of kpoints (eventually irreducible)
+!! kpt = coordinates of kpoints
+!!
+!! OUTPUT
+!! krank = object containing ranking and inverse ranking
+!!
+!! NOTES
+!! By default, the object holds a reference to kpts so do not change/deallocate this array
+!! while using krank.
+!!
+!! SOURCE
+
+type(krank_t) function krank_from_kptrlatt(nkpt, kpts, kptrlatt, compute_invrank) result(new)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nkpt
+ logical,optional,intent(in) :: compute_invrank
+!arrays
+ integer,intent(in) :: kptrlatt(3,3)
+ real(dp),target,intent(in) :: kpts(3,nkpt)
+
+!Local variables -------------------------
+!scalars
+ integer :: ii, jj, max_linear_density
+ logical :: compute_invrank_
+
+! *********************************************************************
+
+ do jj=1,3
+ do ii=1,3
+ if (ii == jj .and. kptrlatt(ii, ii) == 0) then
+ ABI_ERROR("kptrlatt with zero matrix element on the diagonal!")
+ end if
+ if (ii /= jj .and. kptrlatt(ii, jj) /= 0) then
+ ABI_ERROR("kptrlatt with non-zero off-diagonal matrix elements is not supported")
+ end if
+ end do
+ end do
+
+ compute_invrank_ = .True.; if (present(compute_invrank)) compute_invrank_ = compute_invrank
+
+ max_linear_density = maxval([kptrlatt(1,1), kptrlatt(2,2), kptrlatt(3,3)])
+ new = krank_new(nkpt, kpts, max_linear_density=max_linear_density, compute_invrank=compute_invrank_)
+
+end function krank_from_kptrlatt
+!!***
+
+!!****f* m_krank/krank_new
+!! NAME
+!! krank_new
+!!
+!! FUNCTION
+!! This routine sets up the kpt ranks for comparing kpts
+!!
+!! INPUTS
+!! npt = number of kpoints (eventually irreducible)
+!! kpt = coordinates of kpoints
+!! time_reversal = true or false to use time reversal symmetry.
+!! Default is true, but only important if nsym and symrec are present
+!!
+!! SOURCE
+
+type(krank_t) function krank_new(nkpt, kpts, nsym, symrec, time_reversal, max_linear_density, compute_invrank) result(new)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nkpt
+ integer,intent(in), optional :: nsym
+ logical,intent(in), optional :: time_reversal
+ integer,optional,intent(in) :: max_linear_density
+ logical,optional,intent(in) :: compute_invrank
+!arrays
+ real(dp),target,intent(in) :: kpts(3,nkpt)
+ integer,intent(in), optional :: symrec(3,3, *)
+
+!Local variables -------------------------
+!scalars
+ integer :: ikpt, isym, symkptrank, irank, timrev, itim
+ logical :: compute_invrank_
+ real(dp) :: smallestlen
+ character(len=500) :: msg
+!arrays
+ real(dp) :: symkpt(3)
+
+! *********************************************************************
+
+ compute_invrank_ = .True.; if (present(compute_invrank)) compute_invrank_ = compute_invrank
+
+ new%kpts => kpts
+ new%kpts_owns_memory = .False.
+
+ if (.not. present(max_linear_density)) then
+ ! Find smallest linear length from input kpts
+ smallestlen = one
+ do ikpt=1, nkpt
+ if (abs(kpts(1,ikpt)) > tol10) smallestlen = min(smallestlen, abs(kpts(1,ikpt)))
+ if (abs(kpts(2,ikpt)) > tol10) smallestlen = min(smallestlen, abs(kpts(2,ikpt)))
+ if (abs(kpts(3,ikpt)) > tol10) smallestlen = min(smallestlen, abs(kpts(3,ikpt)))
+ end do
+ new%max_linear_density = nint(one/smallestlen)
+ else
+ ! Get it from input
+ new%max_linear_density = max_linear_density
+ end if
+
+ new%npoints = nkpt
+ new%min_rank = nint(real(new%max_linear_density)*(half+tol8 +&
+ real(new%max_linear_density)*(half+tol8 +&
+ real(new%max_linear_density)*(half+tol8))))
+
+ new%max_rank = nint(real(new%max_linear_density)*(1+half+tol8 +&
+ real(new%max_linear_density)*(1+half+tol8 +&
+ real(new%max_linear_density)*(1+half+tol8))))
+
+ timrev = 2
+ new%time_reversal = .true.
+ if (present(time_reversal)) then
+ if (.not. time_reversal) timrev = 1
+ new%time_reversal = .false.
+ end if
+
+ ! Ensure kpt(i)+one is positive, and the smallest difference between kpts should be larger than 1/100 ie ngkpt < 100.
+ ! the following fills invrank for the k-points in the list provided (may be only the irred kpts)
+ if (compute_invrank_) then
+ ABI_MALLOC(new%invrank, (new%min_rank:new%max_rank))
+ new%invrank(:) = -1
+
+ do ikpt=1,nkpt
+ irank = new%get_rank(kpts(:,ikpt))
+
+ if (irank > new%max_rank .or. irank < new%min_rank) then
+ write(msg,'(a,2i0)')" rank above max_rank or below min_rank, ikpt, rank ", ikpt, irank
+ ABI_ERROR(msg)
+ end if
+ new%invrank(irank) = ikpt
+ end do
+ end if
+
+ ! if symrec is provided, fill invrank with appropriate irred kpt indices
+ ! for symmetry completion: kptrank_t%invrank points to the irred k-point
+ ! equivalent to the k-point whose rank is provided
+ if (present(symrec)) then
+ if(.not. present(nsym)) then
+ ABI_ERROR("need both symrec and nsym arguments together")
+ end if
+ do ikpt=1,nkpt
+ ! itim == 1 for positive, and itim==2 gives Kramers opposite of k-point
+ ! favor the former by looping it last
+ do itim = timrev, 1, -1
+ do isym = 1, nsym
+ symkpt = (-1)**(itim+1) * matmul(symrec(:,:,isym), kpts(:, ikpt))
+ symkptrank = new%get_rank(symkpt(:))
+ new%invrank(symkptrank) = ikpt
+ end do
+ end do
+ end do
+ end if
+
+end function krank_new
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/get_rank
+!! NAME
+!! get_rank
+!!
+!! FUNCTION
+!! This routine calculates the rank for one kpt
+!!
+!! INPUTS
+!! kpt = coordinates of kpoints
+!! krank = rank object for the k-grid we are using
+!!
+!! OUTPUT
+!! rank = rank of the kpoint
+!!
+!! SOURCE
+
+integer function get_rank(krank, kpt) result(rank)
+
+!Arguments ------------------------------------
+!scalars
+ class(krank_t), intent(in) :: krank
+!arrays
+ real(dp),intent(in) :: kpt(3)
+
+!Local variables-------------------------------
+!scalars
+ character(len=500) :: msg
+!arrays
+ real(dp) :: redkpt(3)
+
+! *************************************************************************
+
+ ! wrap to [0, 1[ -> replaced call to wrap2_zero2one inline, to encapsulate this module
+ if (kpt(1)>zero) then
+ redkpt(1)=mod((kpt(1)+tol12),one)-tol12
+ else
+ redkpt(1)=-mod(-(kpt(1)-one+tol12),one)+one-tol12
+ end if
+ if(abs(redkpt(1))zero) then
+ redkpt(2)=mod((kpt(2)+tol12),one)-tol12
+ else
+ redkpt(2)=-mod(-(kpt(2)-one+tol12),one)+one-tol12
+ end if
+ if(abs(redkpt(2))zero) then
+ redkpt(3)=mod((kpt(3)+tol12),one)-tol12
+ else
+ redkpt(3)=-mod(-(kpt(3)-one+tol12),one)+one-tol12
+ end if
+ if(abs(redkpt(3)) krank%max_rank) then
+ write(msg,'(2(a,i0))') ' Rank should be <= max_rank: ', krank%max_rank, ' but got: ', rank
+ ABI_ERROR(msg)
+ end if
+ if (rank < krank%min_rank) then
+ !print *, "redkpt", redkpt
+ write(msg,'(2(a,i0))') ' Rank should be >= min_rank ', krank%min_rank, ' but got: ', rank
+ ABI_ERROR(msg)
+ end if
+
+end function get_rank
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/krank_get_index
+!! NAME
+!! krank_get_index
+!!
+!! FUNCTION
+!! Return the index of the k-point `kpt` in the initial set. -1 if not found.
+!!
+!! INPUTS
+!! krank = rank object for the k-grid we are using
+!! kpt = coordinates of kpoints
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+integer function krank_get_index(krank, kpt) result(ikpt)
+
+!Arguments ------------------------------------
+!scalars
+ class(krank_t), intent(in) :: krank
+!arrays
+ real(dp),intent(in) :: kpt(3)
+
+!Local variables-------------------------------
+!scalars
+ integer :: kpt_rank
+
+! *************************************************************************
+
+ kpt_rank = krank%get_rank(kpt)
+ ikpt = -1
+ if (kpt_rank < krank%max_rank) ikpt = krank%invrank(kpt_rank)
+
+end function krank_get_index
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/krank_copy
+!!
+!! NAME
+!! krank_copy
+!!
+!! FUNCTION
+!! Deep copy of the object
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!! krank = object containing ranking and inverse ranking, to be deallocated
+!!
+!! SOURCE
+
+type(krank_t) function krank_copy(krank_in) result(krank_out)
+
+!Arguments ------------------------------------
+!scalars
+ class(krank_t), intent(in) :: krank_in
+
+! *********************************************************************
+
+ krank_out%max_linear_density = krank_in%max_linear_density
+ krank_out%min_rank = krank_in%min_rank
+ krank_out%max_rank = krank_in%max_rank
+ krank_out%npoints = krank_in%npoints
+
+ ABI_MALLOC(krank_out%invrank, (krank_out%min_rank:krank_out%max_rank))
+ krank_out%invrank = krank_in%invrank
+
+ ! This is why I call it deep copy!
+ ABI_MALLOC(krank_out%kpts, (3, size(krank_in%kpts, dim=2)))
+ krank_out%kpts = krank_in%kpts
+ krank_out%kpts_owns_memory = .True.
+
+end function krank_copy
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/krank_free
+!! NAME
+!! krank_free
+!!
+!! FUNCTION
+!! This routine deallocates the arrays in a krank_t structure
+!!
+!! INPUTS
+!! krank = object containing ranking and inverse ranking, to be deallocated
+!!
+!! SOURCE
+
+subroutine krank_free(krank)
+
+!Arguments ------------------------------------
+ class(krank_t), intent(inout) :: krank
+
+! *********************************************************************
+
+ ABI_SFREE(krank%invrank)
+ ABI_SFREE(krank%rank2ikpt_)
+ ABI_SFREE(krank%rank2symtime_)
+
+ if (krank%kpts_owns_memory) then
+ ABI_SFREE_PTR(krank%kpts)
+ krank%kpts_owns_memory = .False.
+ krank%kpts => null()
+ else
+ krank%kpts => null()
+ end if
+
+end subroutine krank_free
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/krank_print
+!!
+!! NAME
+!! krank_print
+!!
+!! FUNCTION
+!! This routine prints the arrays and dimensions of a krank_t structure
+!!
+!! INPUTS
+!! krank = object containing ranking and inverse ranking
+!! unout = unit for open file to print to
+!!
+!! SOURCE
+
+subroutine krank_print(krank, unout)
+
+!Arguments ------------------------------------
+!scalars
+ integer, intent(in) :: unout
+!arrays
+ class(krank_t), intent(in) :: krank
+
+! *********************************************************************
+
+ write(unout, *)
+ write(unout, '(a)') ' Dump of the contents of a krank_t structure with k-point rank information'
+ write(unout, '(a,i0)') ' max linear density of points in 3 directions: max_linear_density = ', krank%max_linear_density
+ write(unout, '(a,i0)') ' maximum rank for any point in grid: max_rank = ', krank%max_rank
+ write(unout, '(a,i0)') ' number of points in input grid: npoints = ', krank%npoints
+ write(unout, *)
+ write(unout, '(a)') ' invrank array = '
+ write(unout, '(i0)') krank%invrank(:)
+ write(unout, *)
+
+end subroutine krank_print
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/krank_get_mapping
+!! NAME
+!! krank_get_mapping
+!!
+!! FUNCTION
+!! Use symmetries to map input kptn2 to the list of k-points used to generate krank_t.
+!! Similar to listkk but, unlike listkk, this algo does not try to minimize the distance
+!! Mainly used to map two set of k-points associated to the same grid (e.g. BZ --> IBZ, IBZ(q) --> IBZ etc.
+!! Must faster than listkk for dense meshes
+!! although this routine requires the allocation of temporary array of shape (2, self%min_rank:self%max_rank)
+!! Returns indirect indexing list indkk.
+!!
+!! INPUTS
+!! kptns2(3,nkpt2)=list of final k points
+!! nkpt2=number of final k points
+!! gmet(3,3)=reciprocal space metric (bohr^-2)
+!! nsym=number of symmetry elements
+!! symafm(nsym)=(anti)ferromagnetic part of symmetry operations
+!! symmat(3,3,nsym)=symmetry operations (symrel or symrec, depending on value of use_symrec)
+!! timrev=1 if the use of time-reversal is allowed; 0 otherwise
+!! [use_symrec]: if present and true, symmat assumed to be symrec, otherwise assumed to be symrel (default)
+!! [qpt]: q-point to be added to kptns2. 0 if not specified.
+!!
+!! OUTPUT
+!! dksqmax=maximal value of the norm**2 of the difference between
+!! a kpt2 vector and the closest k-point found from the kptns1 set, using symmetries.
+!! indkk(6, nkpt2)=
+!! indkk(:,1)=k point index of kptns1
+!! indkk(:,2)=symmetry operation to be applied to kpt1, to give kpt1a
+!! indkk(:,3:5)=shift in reciprocal space to be given to kpt1a,
+!! to give kpt1b, that is the closest to kpt2.
+!! indkk(:,6)=1 if time-reversal was used to generate kpt1a from kpt1, 0 otherwise
+!!
+!! SOURCE
+
+subroutine krank_get_mapping(self, nkpt2, kptns2, dksqmax, gmet, indkk, nsym, symafm, symmat, timrev, &
+ use_symrec, qpt) ! optional
+
+!Arguments ------------------------------------
+!scalars
+ class(krank_t),intent(inout) :: self
+ integer,intent(in) :: nkpt2, nsym, timrev
+ real(dp),intent(out) :: dksqmax
+ logical,optional,intent(in) :: use_symrec
+!arrays
+ integer,intent(in) :: symafm(nsym), symmat(3,3,nsym)
+ integer,intent(out) :: indkk(6, nkpt2)
+ real(dp),intent(in) :: gmet(3,3), kptns2(3,nkpt2)
+ real(dp),optional,intent(in) :: qpt(3)
+
+!Local variables-------------------------------
+!scalars
+ integer :: irank, ikpt1, ikpt2, itimrev, isym, ii
+ logical :: my_use_symrec
+!arrays
+ integer :: dkint(3), my_symmat(3, 3, nsym)
+ !integer,allocatable :: rank2ikpt(:), rank2symtime(:)
+ real(dp) :: kpt1a(3), dk(3), my_qpt(3)
+
+! *************************************************************************
+
+ my_use_symrec = .False.; if (present(use_symrec)) my_use_symrec = use_symrec
+ my_qpt = zero; if (present(qpt)) my_qpt = qpt
+
+ if (my_use_symrec) then
+ ! Symrec k
+ my_symmat = symmat
+ else
+ ! Symrel^T k
+ do isym=1,nsym
+ my_symmat(:,:,isym) = transpose(symmat(:,:,isym))
+ end do
+ end if
+
+ ABI_MALLOC_IFNOT(self%rank2symtime_, (self%min_rank:self%max_rank))
+ ABI_MALLOC_IFNOT(self%rank2ikpt_, (self%min_rank:self%max_rank))
+ self%rank2ikpt_ = -1 !; self%rank2symtime_ = -1
+
+ do ikpt1=1,self%npoints
+
+ do itimrev=0,timrev
+ do isym=1,nsym
+ ! Do not use magnetic symmetries.
+ if (symafm(isym) == -1) cycle
+
+ kpt1a = (1 - 2*itimrev) * matmul(my_symmat(:, :, isym), self%kpts(:, ikpt1))
+ irank = self%get_rank(kpt1a)
+ if (self%rank2ikpt_(irank) == -1) then
+ self%rank2ikpt_(irank) = ikpt1
+ self%rank2symtime_(irank) = isym + itimrev * nsym
+ end if
+ end do
+ end do
+
+ end do
+
+ dksqmax = zero
+ do ikpt2=1,nkpt2
+ irank = self%get_rank(kptns2(:, ikpt2) + my_qpt)
+ ikpt1 = self%rank2ikpt_(irank)
+ ii = self%rank2symtime_(irank)
+ isym = 1 + mod(ii - 1, nsym)
+ itimrev = (ii - 1) / nsym
+ kpt1a = (1 - 2 * itimrev) * matmul(my_symmat(:, :, isym), self%kpts(:, ikpt1))
+ dk(:) = kptns2(:,ikpt2) + my_qpt - kpt1a(:)
+ dkint(:) = nint(dk(:) + tol12)
+
+ indkk(1, ikpt2) = ikpt1
+ indkk(2, ikpt2) = isym
+ indkk(3:5, ikpt2) = dkint(:)
+ indkk(6, ikpt2) = itimrev
+
+ ! Compute norm of the difference vector.
+ dk(:) = dk(:) - dkint(:)
+
+ dksqmax = max(dksqmax, &
+ gmet(1,1)*dk(1)**2 + gmet(2,2)*dk(2)**2 + gmet(3,3)*dk(3)**2 + &
+ two * (gmet(2,1)*dk(2)*dk(1) + gmet(3,2)*dk(3)*dk(2)+gmet(3,1)*dk(3)*dk(1)))
+
+ !if (dksqmax > tol8) then
+ ! print *, "kbase:", self%kpts(:, ikpt1)
+ ! print *, "k", kptns2(:, ikpt2)
+ ! print *, "k + q", kptns2(:, ikpt2) + my_qpt
+ ! print *, "dk", dk, "dksqmax", dksqmax
+ !end if
+ end do
+
+ !ABI_FREE(self%rank2ikpt_)
+ !ABI_FREE(self%rank2symtime_)
+
+end subroutine krank_get_mapping
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/get_ibz2bz
+!! NAME
+!! get_ibz2bz
+!!
+!! FUNCTION
+!! Return array with the index of the IBZ wave vectors in the BZ.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine get_ibz2bz(nibz, nbz, bz2ibz, ibz2bz, ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nibz, nbz
+ integer,intent(in) :: bz2ibz(6, nbz)
+ integer,intent(out) :: ierr
+!arrays
+ integer,allocatable,intent(out) :: ibz2bz(:)
+
+!Local variables-------------------------------
+!scalars
+ integer :: iq_bz, iq_ibz, isym_q, trev_q, cnt, g0_q(3)
+ logical :: isirr_q
+
+!----------------------------------------------------------------------
+
+ ABI_MALLOC(ibz2bz, (nibz))
+
+ cnt = 0
+ do iq_bz=1,nbz
+ iq_ibz = bz2ibz(1, iq_bz); isym_q = bz2ibz(2, iq_bz)
+ trev_q = bz2ibz(6, iq_bz); g0_q = bz2ibz(3:5,iq_bz)
+ isirr_q = (isym_q == 1 .and. trev_q == 0 .and. all(g0_q == 0))
+ if (isirr_q) then
+ cnt = cnt + 1
+ ibz2bz(iq_ibz) = iq_bz
+ end if
+ end do
+
+ ierr = merge(0, 1, cnt == nibz)
+
+end subroutine get_ibz2bz
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_krank/star_from_ibz_idx
+!! NAME
+!! star_from_ibz_idx
+!!
+!! FUNCTION
+!! Return array with the indices of the star of the ik_ibz wavevector in the IBZ.
+!! Return number of points in the star, allocate array with the indices of the
+!! star points in the BZ.
+!!
+!! INPUTS
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine star_from_ibz_idx(ik_ibz, nkbz, bz2ibz, nk_in_star, kstar_bz_inds)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ik_ibz, nkbz
+ integer,intent(out) :: nk_in_star
+ integer,intent(in) :: bz2ibz(6, nkbz)
+ integer,allocatable,intent(out) :: kstar_bz_inds(:)
+
+!Local variables-------------------------------
+!scalars
+ integer :: iq_bz
+
+!----------------------------------------------------------------------
+
+ nk_in_star = count(bz2ibz(1, :) == ik_ibz)
+ ABI_MALLOC(kstar_bz_inds, (nk_in_star))
+
+ nk_in_star = 0
+ do iq_bz=1,nkbz
+ if (bz2ibz(1, iq_bz) /= ik_ibz) cycle
+ nk_in_star = nk_in_star + 1
+ kstar_bz_inds(nk_in_star) = iq_bz
+ end do
+
+end subroutine star_from_ibz_idx
+!!***
+
+!----------------------------------------------------------------------
+
+end module m_krank
+!!***
diff --git a/GX-PAW/common/src/17_libtetra_ext/m_krank.o b/GX-PAW/common/src/17_libtetra_ext/m_krank.o
new file mode 100644
index 00000000..b5a1c9c6
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/m_krank.o differ
diff --git a/GX-PAW/common/src/17_libtetra_ext/m_simtet.F90 b/GX-PAW/common/src/17_libtetra_ext/m_simtet.F90
new file mode 100644
index 00000000..99c8328c
--- /dev/null
+++ b/GX-PAW/common/src/17_libtetra_ext/m_simtet.F90
@@ -0,0 +1,2385 @@
+!!****m* ABINIT/m_simtet
+!! NAME
+!! m_simtet
+!!
+!! FUNCTION
+!!
+!! COPYRIGHT
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_simtet
+
+ use defs_basis
+ use m_errors, only: unused_var
+
+ implicit none
+
+ private
+
+ public :: sim0onei
+ public :: sim0twoi
+!!***
+
+ contains
+
+!C file: sim0onei.f
+!C date: 2011-04-01
+!C who: S.Kaprzyk
+!C what: Complex linear form integral over standard terahedron
+!C ------------------------------------------------------------
+!C - * -
+!C - * 1 -
+!C - SIM0=6 * dt1*dt2*dt3 ---------------------------------- -
+!C - * verm(4)+(verm(1)-verm(4))*t1+ ..... -
+!C - * -
+!C - 0e]; [|w1-w2|e,|w3-w2|e]; [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2|e];
+!C [|w1-w2|e,|w3-w2| tetra_list to avoid cycling inside big loop over ntetra
+!! 4) Add options to get only delta and/or theta ?
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "libtetra.h"
+
+module m_tetrahedron
+
+ ! make sure stdout is defined, as libtetra.h needs it
+ use, intrinsic :: iso_fortran_env, only : stdin=>input_unit, &
+ stdout=>output_unit, &
+ stderr=>error_unit
+ USE_MEMORY_PROFILING
+ USE_MSG_HANDLING
+ use m_krank
+#ifdef HAVE_MPI2
+ use mpi
+#endif
+#ifdef HAVE_LIBTETRA_ABINIT
+ use m_io_tools, only : open_file
+ use m_xmpi
+#endif
+
+implicit none
+
+#if defined HAVE_MPI1
+ include 'mpif.h'
+#endif
+
+private
+!!***
+
+integer, parameter :: dp = kind(1.0d0)
+
+real(dp),parameter :: tol6 = 1.d-14, tol14 = 1.d-14, zero = 0.d0, one = 1.d0
+
+real(dp), parameter :: sqrtpi = 1.7724538509055159d0
+
+
+!!****t* m_tetrahedron/t_tetrahedron
+!! NAME
+!! t_tetrahedron
+!!
+!! FUNCTION
+!! tetrahedron geometry object
+!!
+!! SOURCE
+
+type, public :: t_tetrahedron
+
+ integer :: ntetra = 0
+ ! Number of tetrahedra
+
+ real(dp) :: vv
+ ! volume of the tetrahedra
+
+ real(dp) :: klatt(3, 3)
+ ! reciprocal of lattice vectors for full kpoint grid
+
+ integer,allocatable :: tetra_full(:,:,:)
+ !(4,2,ntetra)
+ ! For each tetra
+ ! (:,1,itetra) indices of the vertex in IBZ (symmetrical image)
+ ! (:,2,itetra) indices of the vertexes in the BZ
+
+ integer,allocatable :: tetra_mult(:)
+ !(ntetra)
+ ! multiplicity of each irred tetrahedron
+
+ integer,allocatable :: tetra_wrap(:,:,:)
+ !(3,4,ntetra)
+ ! flag to wrap tetrahedron summit into IBZ
+
+ integer,allocatable :: ibz_tetra_count(:)
+ ! ibz_tetra_mapping(nkpt_ibz)
+ ! Number of tetrahedra associated to a point in the IBZ.
+
+ integer,allocatable :: ibz_tetra_mapping(:,:)
+ ! ibz_tetra_mapping(nkpt_ibz, maxval(tetra%ibz_tetra_count)))
+ ! map ikbz to tetra index.
+
+end type t_tetrahedron
+
+public :: init_tetra ! Initialize the object
+ ! See also the high-level interface tetra_from_kptrlatt provided by m_kpts.
+public :: get_tetra_weight ! Calculate integration weights and their derivatives. shape (nkpt, nene).
+public :: tetra_blochl_weights ! Same as in get_tetra_weight but weights have shape (nene, nkpt).
+public :: get_dbl_tetra_weight ! Calculate integration weights for double tetrahedron integration of delta functions.
+ ! (NB these correspond to the derivative terms in normal tetrahedron).
+public :: destroy_tetra ! Free memory.
+public :: tetra_write ! Write text file (XML format) with tetra info.
+public :: tetralib_has_mpi ! Return True if the library has been compiled with MPI support.
+public :: tetra_get_onewk ! Calculate integration weights and their derivatives for a single k-point in the IBZ.
+public :: tetra_get_onewk_wvals ! Similar to tetra_get_onewk_wvalsa but receives arbitrary list of frequency points.
+public :: tetra_get_onetetra_wvals ! Get weights for one tetrahedra with arbitrary list of frequency points
+!!***
+
+contains
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/destroy_tetra
+!! NAME
+!! destroy_tetra
+!!
+!! FUNCTION
+!! deallocate tetrahedra pointers if needed
+!!
+!! SOURCE
+
+subroutine destroy_tetra (tetra)
+
+ type(t_tetrahedron), intent(inout) :: tetra
+
+ if (allocated(tetra%tetra_full)) then
+ TETRA_DEALLOCATE(tetra%tetra_full)
+ end if
+ if (allocated(tetra%tetra_mult)) then
+ TETRA_DEALLOCATE(tetra%tetra_mult)
+ end if
+ if (allocated(tetra%tetra_wrap)) then
+ TETRA_DEALLOCATE(tetra%tetra_wrap)
+ end if
+ if (allocated(tetra%ibz_tetra_count)) then
+ TETRA_DEALLOCATE(tetra%ibz_tetra_count)
+ end if
+ if (allocated(tetra%ibz_tetra_mapping)) then
+ TETRA_DEALLOCATE(tetra%ibz_tetra_mapping)
+ end if
+
+end subroutine destroy_tetra
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/init_tetra
+!! NAME
+!! init_tetra
+!!
+!! FUNCTION
+!! get tetrahedra characterized by apexes
+!!
+!! INPUTS
+!! indkpt(nkpt_fullbz)=indexes of irred kpoints equivalent to kpt_fullbz
+!! gprimd(3,3) = reciprocal space vectors
+!! klatt(3,3)=reciprocal of lattice vectors for full kpoint grid
+!! kpt_fullbz(3,nkpt_fullbz)=kpoints in full brillouin zone
+!! nkpt_fullbz=number of kpoints in full brillouin zone
+!! comm= MPI communicator
+!!
+!! OUTPUT
+!! tetra%tetra_full(4,2,ntetra)=for each tetrahedron,
+!! the different instances of the tetrahedron (fullbz kpoints)
+!! tetra%tetra_mult(ntetra) = store multiplicity of each irred tetrahedron
+!! tetra%tetra_wrap(3,4,ntetra) = store flag to wrap tetrahedron summit into IBZ
+!! tetra%ntetra = final number of irred tetra (dimensions of tetra_* remain larger)
+!! tetra%vv = tetrahedron volume divided by full BZ volume
+!!
+!! SOURCE
+
+subroutine init_tetra(indkpt, gprimd, klatt, kpt_fullbz, nkpt_fullbz, tetra, ierr, errorstring, comm)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nkpt_fullbz, comm
+ integer, intent(out) :: ierr
+ character(len=80), intent(out) :: errorstring
+ type(t_tetrahedron),intent(out) :: tetra
+!arrays
+ integer,intent(in) :: indkpt(nkpt_fullbz)
+ real(dp) ,intent(in) :: gprimd(3,3),klatt(3,3),kpt_fullbz(3,nkpt_fullbz)
+
+!Local variables-------------------------------
+!scalars
+ integer :: ialltetra,ikpt2,ikpt_full,isummit,itetra,jalltetra,jsummit
+ integer :: ii,jj,ikibz,nkpt_ibz, my_rank, nprocs
+ integer :: symrankkpt,mtetra,itmp,ntetra_irred
+ real(dp) :: shift1,shift2,shift3, rcvol,hashfactor
+ !real :: cpu_start, cpu_stop
+ type(krank_t) :: krank
+!arrays
+ integer :: ind_ibz(4), tetra_shifts(3,4,6) ! 3 dimensions, 4 summits, and 6 tetrahedra / kpoint box
+ real(dp) :: k1(3),k2(3),k3(3)
+ integer,allocatable :: tetra_full_(:,:,:)
+ integer,allocatable :: tetra_mult_(:)
+ integer,allocatable :: tetra_wrap_(:,:,:)
+ integer, allocatable :: reforder(:)
+ integer, allocatable :: irred_itetra(:)
+ real(dp), allocatable :: tetra_hash(:)
+
+! *********************************************************************
+
+ !call cpu_time(cpu_start)
+
+ my_rank = 0; nprocs = 1
+#ifdef HAVE_LIBTETRA_ABINIT
+ my_rank = xmpi_comm_rank(comm); nprocs = xmpi_comm_size(comm)
+#endif
+
+ ierr = 0
+ errorstring = ""
+!jmb
+ shift1 = zero
+ shift2 = zero
+ shift3 = zero
+
+ tetra%klatt = klatt
+
+ mtetra = 6 * nkpt_fullbz
+ TETRA_ALLOCATE(tetra_full_, (4,2,mtetra))
+ TETRA_ALLOCATE(tetra_mult_, (mtetra))
+ TETRA_ALLOCATE(tetra_wrap_, (3,4,mtetra))
+
+ tetra_mult_ = 1
+ tetra_full_ = 0
+ tetra_wrap_ = 0
+
+! tetra_shifts(:,1,1) = (/0,0,0/)
+! tetra_shifts(:,2,1) = (/0,1,0/)
+! tetra_shifts(:,3,1) = (/0,1,1/)
+! tetra_shifts(:,4,1) = (/1,1,0/)
+! tetra_shifts(:,1,2) = (/0,0,0/)
+! tetra_shifts(:,2,2) = (/0,1,1/)
+! tetra_shifts(:,3,2) = (/1,1,0/)
+! tetra_shifts(:,4,2) = (/1,1,1/)
+! tetra_shifts(:,1,3) = (/0,0,0/)
+! tetra_shifts(:,2,3) = (/1,0,0/)
+! tetra_shifts(:,3,3) = (/1,1,0/)
+! tetra_shifts(:,4,3) = (/1,1,1/)
+! tetra_shifts(:,1,4) = (/0,0,0/)
+! tetra_shifts(:,2,4) = (/0,0,1/)
+! tetra_shifts(:,3,4) = (/1,0,0/)
+! tetra_shifts(:,4,4) = (/1,1,1/)
+! tetra_shifts(:,1,5) = (/0,0,1/)
+! tetra_shifts(:,2,5) = (/1,0,0/)
+! tetra_shifts(:,3,5) = (/1,0,1/)
+! tetra_shifts(:,4,5) = (/1,1,1/)
+! tetra_shifts(:,1,6) = (/0,0,0/)
+! tetra_shifts(:,2,6) = (/0,0,1/)
+! tetra_shifts(:,3,6) = (/0,1,1/)
+! tetra_shifts(:,4,6) = (/1,1,1/)
+
+ ! bxu, the following division scheme is according to Bloechl's paper
+ tetra_shifts(:,1,1) = (/0,0,0/)
+ tetra_shifts(:,2,1) = (/1,0,0/)
+ tetra_shifts(:,3,1) = (/0,1,0/)
+ tetra_shifts(:,4,1) = (/1,0,1/)
+ tetra_shifts(:,1,2) = (/1,0,0/)
+ tetra_shifts(:,2,2) = (/1,1,0/)
+ tetra_shifts(:,3,2) = (/0,1,0/)
+ tetra_shifts(:,4,2) = (/1,0,1/)
+ tetra_shifts(:,1,3) = (/0,1,0/)
+ tetra_shifts(:,2,3) = (/1,1,0/)
+ tetra_shifts(:,3,3) = (/1,0,1/)
+ tetra_shifts(:,4,3) = (/1,1,1/)
+ tetra_shifts(:,1,4) = (/0,0,0/)
+ tetra_shifts(:,2,4) = (/0,1,0/)
+ tetra_shifts(:,3,4) = (/0,0,1/)
+ tetra_shifts(:,4,4) = (/1,0,1/)
+ tetra_shifts(:,1,5) = (/0,0,1/)
+ tetra_shifts(:,2,5) = (/1,0,1/)
+ tetra_shifts(:,3,5) = (/0,1,0/)
+ tetra_shifts(:,4,5) = (/0,1,1/)
+ tetra_shifts(:,1,6) = (/0,1,0/)
+ tetra_shifts(:,2,6) = (/1,0,1/)
+ tetra_shifts(:,3,6) = (/0,1,1/)
+ tetra_shifts(:,4,6) = (/1,1,1/)
+
+ ! Make full k-point rank arrays
+ ! TODO: Lot of memory allocated here if dense mesh e.g ~ 300 ** 3
+ krank = krank_new(nkpt_fullbz, kpt_fullbz)
+
+ ialltetra = 1
+ do ikpt_full=1,nkpt_fullbz
+ do itetra=1,6
+ !ialltetra = itetra + (ikpt_full -1) * 6
+ !if (mod(ialltetra, nprocs) /= my_rank) cycle ! MPI parallelism.
+ do isummit=1,4
+ k1(:) = kpt_fullbz(:,ikpt_full) &
+ + tetra_shifts(1,isummit,itetra)*klatt(:,1) &
+ + tetra_shifts(2,isummit,itetra)*klatt(:,2) &
+ + tetra_shifts(3,isummit,itetra)*klatt(:,3)
+
+ ! Find full kpoint which is summit isummit of tetrahedron itetra around full kpt ikpt_full !
+ symrankkpt = krank%get_rank(k1)
+ ikpt2 = krank%invrank(symrankkpt)
+ if (ikpt2 < 1) then
+ errorstring='Error in ranking k-points - exiting with un-initialized tetrahedra.'
+ ierr = 2
+ call krank%free()
+ TETRA_ALLOCATE(tetra%tetra_full, (4,2,1))
+ TETRA_ALLOCATE(tetra%tetra_mult, (1))
+ TETRA_ALLOCATE(tetra%tetra_wrap, (3,4,1))
+ TETRA_DEALLOCATE(tetra_full_)
+ TETRA_DEALLOCATE(tetra_mult_)
+ TETRA_DEALLOCATE(tetra_wrap_)
+ return
+ end if
+
+ ! Store irreducible kpoint equivalent to kpt_fullbz(:,ikpt2)
+ tetra_full_(isummit,1,ialltetra) = indkpt(ikpt2)
+ tetra_full_(isummit,2,ialltetra) = ikpt2
+ shift1 = k1(1)-kpt_fullbz(1,ikpt2)
+ shift2 = k1(2)-kpt_fullbz(2,ikpt2)
+ shift3 = k1(3)-kpt_fullbz(3,ikpt2)
+ if (shift1>0.5d0) then
+ tetra_wrap_(1,isummit,ialltetra) = 1
+ else if (shift1<-0.5d0) then
+ tetra_wrap_(1,isummit,ialltetra) = -1
+ end if
+ if (shift2>0.5d0) then
+ tetra_wrap_(2,isummit,ialltetra) = 1
+ else if (shift2<-0.5d0) then
+ tetra_wrap_(2,isummit,ialltetra) = -1
+ end if
+ if (shift3>0.5d0) then
+ tetra_wrap_(3,isummit,ialltetra) = 1
+ else if (shift3<-0.5d0) then
+ tetra_wrap_(3,isummit,ialltetra) = -1
+ end if
+
+ ! sort itetra summits
+ ! TODO: replace with sort_int
+ do jsummit=isummit,2,-1
+ if ( tetra_full_(jsummit,1,ialltetra) < tetra_full_(jsummit-1,1,ialltetra) ) then
+ itmp = tetra_full_(jsummit,1,ialltetra)
+ tetra_full_(jsummit,1,ialltetra) = tetra_full_(jsummit-1,1,ialltetra)
+ tetra_full_(jsummit-1,1,ialltetra) = itmp
+ itmp = tetra_full_(jsummit,2,ialltetra)
+ tetra_full_(jsummit,2,ialltetra) = tetra_full_(jsummit-1,2,ialltetra)
+ tetra_full_(jsummit-1,2,ialltetra) = itmp
+ ! keep fullbz_kpt tetrahedra points in same order
+ itmp = tetra_wrap_(1,jsummit,ialltetra)
+ tetra_wrap_(1,jsummit,ialltetra) = tetra_wrap_(1,jsummit-1,ialltetra)
+ tetra_wrap_(1,jsummit-1,ialltetra) = itmp
+ itmp = tetra_wrap_(2,jsummit,ialltetra)
+ tetra_wrap_(2,jsummit,ialltetra) = tetra_wrap_(2,jsummit-1,ialltetra)
+ tetra_wrap_(2,jsummit-1,ialltetra) = itmp
+ itmp = tetra_wrap_(1,jsummit,ialltetra)
+ tetra_wrap_(3,jsummit,ialltetra) = tetra_wrap_(3,jsummit-1,ialltetra)
+ tetra_wrap_(3,jsummit-1,ialltetra) = itmp
+ end if
+ end do ! jsummit
+
+ end do ! isummit
+
+ if (ialltetra > mtetra) then
+ write (errorstring, '(3a,i0,a,i0)' ) &
+ 'init_tetra: BUG - ',&
+ ' ialltetra > mtetra ',&
+ ' ialltetra= ',ialltetra,', mtetra= ',mtetra
+ ierr = 1
+ return
+ end if
+ ialltetra = ialltetra+1
+ end do ! itetra
+ end do ! ikpt_full
+
+ !call cpu_time(cpu_stop)
+ !write(*,*)"tetra_init ikpt_loop:", cpu_stop - cpu_start
+ !cpu_start = cpu_stop
+
+ call krank%free()
+
+ rcvol = abs (gprimd(1,1)*(gprimd(2,2)*gprimd(3,3)-gprimd(3,2)*gprimd(2,3)) &
+& -gprimd(2,1)*(gprimd(1,2)*gprimd(3,3)-gprimd(3,2)*gprimd(1,3)) &
+& +gprimd(3,1)*(gprimd(1,2)*gprimd(2,3)-gprimd(2,2)*gprimd(1,3)))
+
+ ! Volume of all tetrahedra should be the same as that of tetra 1
+ ! this is the volume of 1 tetrahedron, should be coherent with notation in Lehmann & Taut
+ k1(:) = gprimd(:,1)*klatt(1,1) + gprimd(:,2)*klatt(2,1) + gprimd(:,3)*klatt(3,1)
+ k2(:) = gprimd(:,1)*klatt(1,2) + gprimd(:,2)*klatt(2,2) + gprimd(:,3)*klatt(3,2)
+ k3(:) = gprimd(:,1)*klatt(1,3) + gprimd(:,2)*klatt(2,3) + gprimd(:,3)*klatt(3,3)
+ tetra%vv = abs (k1(1)*(k2(2)*k3(3)-k2(3)*k3(2)) &
+& -k1(2)*(k2(1)*k3(3)-k2(3)*k3(1)) &
+& +k1(3)*(k2(1)*k3(2)-k2(2)*k3(1))) / 6.d0 / rcvol
+
+ ! eliminate equivalent tetrahedra by symmetry and account for them in multiplicity tetra_mult
+ tetra%ntetra = mtetra
+
+ ! FIXME: could we replace this with a ranking algorithm to avoid the O(tetra%ntetra^2) step? For example:
+ ! get tetrahedron rank - problem too many combinations in principle = nkpt_irred^4 - only a few used in practice
+ ! sort ranks and keep indices
+
+ ! make hash table = tetra_full_(1)*nkptirred**3+tetra_full_(2)*nkptirred**2+tetra_full_(3)*nkptirred**1+tetra_full_(4)
+
+ hashfactor = 100.d0 ! *acos(-1.d0) ! 100 pi should be far from an integer...
+ TETRA_ALLOCATE(tetra_hash, (tetra%ntetra))
+ TETRA_ALLOCATE(reforder, (tetra%ntetra))
+
+ !MG: In principle the order of the indices should not matter.
+ do ialltetra=1, tetra%ntetra
+ tetra_hash(ialltetra) = tetra_full_(1,1,ialltetra)*hashfactor**3+&
+& tetra_full_(2,1,ialltetra)*hashfactor**2+&
+& tetra_full_(3,1,ialltetra)*hashfactor**1+&
+& tetra_full_(4,1,ialltetra)
+ reforder(ialltetra) = ialltetra
+ end do
+
+ call sort_tetra(tetra%ntetra, tetra_hash, reforder, tol6)
+ ! Most of the wall-time is spent in the preamble of this routine (up to this point).
+ ! sort_tetra is not easy to parallelize...
+
+ ! determine number of tetra after reduction
+ TETRA_ALLOCATE(irred_itetra, (tetra%ntetra))
+ jalltetra = 1
+ irred_itetra(1) = 1
+ do ialltetra=2, tetra%ntetra
+ if (abs(tetra_hash(ialltetra)-tetra_hash(ialltetra-1)) > tol6) then
+ ! found a new series
+ jalltetra = jalltetra + 1
+ end if
+ irred_itetra(ialltetra) = jalltetra
+ end do
+
+ ! reset number of tetra
+ ntetra_irred = jalltetra
+
+ ! allocate definitive tetra arrays and transfer to new arrays
+ TETRA_ALLOCATE(tetra%tetra_full, (4,2,ntetra_irred))
+ TETRA_ALLOCATE(tetra%tetra_mult, (ntetra_irred))
+ TETRA_ALLOCATE(tetra%tetra_wrap, (3,4,ntetra_irred))
+
+ ! eliminate equal rank tetrahedra and accumulate multiplicity into first one
+ tetra%tetra_full = 0
+ tetra%tetra_mult = 0
+ tetra%tetra_wrap = 0
+ jalltetra = 1
+ tetra%tetra_full(:,:,1) = tetra_full_(:,:,reforder(1))
+ tetra%tetra_mult(1) = 1
+ tetra%tetra_wrap(:,:,1) = tetra_wrap_(:,:,reforder(1))
+ do ialltetra=2, tetra%ntetra
+ ! TODO: check if tolerance is adapted
+ if (abs(tetra_hash(ialltetra)-tetra_hash(ialltetra-1)) > tol6) then
+ ! found a new series
+ jalltetra = jalltetra + 1
+ tetra%tetra_full(:,:,jalltetra) = tetra_full_(:,:,reforder(ialltetra))
+ tetra%tetra_wrap(:,:,jalltetra) = tetra_wrap_(:,:,reforder(ialltetra))
+ tetra%tetra_mult(jalltetra) = 1
+ else
+ ! TODO: add real check that the tetra are equivalent...
+ ! otherwise increment jalltetra here as well, generate new series?
+ tetra%tetra_mult(jalltetra) = tetra%tetra_mult(jalltetra) + tetra_mult_(reforder(ialltetra))
+ !tetra_mult_(reforder(ialltetra)) = 0
+ end if
+ end do
+
+ ! reset of ntetra for final version after checks and debu
+ tetra%ntetra = ntetra_irred
+
+ TETRA_DEALLOCATE(tetra_hash)
+ TETRA_DEALLOCATE(reforder)
+ TETRA_DEALLOCATE(irred_itetra)
+ TETRA_DEALLOCATE(tetra_full_)
+ TETRA_DEALLOCATE(tetra_mult_)
+ TETRA_DEALLOCATE(tetra_wrap_)
+
+ ! Create mapping between the irreducible k-points
+ ! and all the tetrahedron contributing with some weight
+ nkpt_ibz = maxval(indkpt)
+
+ ! 1. First we count what is the maximum number of distinct tetrahedra that each k-point contains
+ TETRA_ALLOCATE(tetra%ibz_tetra_count,(nkpt_ibz))
+ tetra%ibz_tetra_count(:) = 0
+
+ ! Count max tetra contributing
+ do ii=1,tetra%ntetra
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ind_ibz(:) = tetra%tetra_full(:,1,ii)
+ ! count max tetra contributing
+ do jj=1,4
+ ikibz = ind_ibz(jj)
+ if (ikibz > nkpt_ibz) cycle
+ tetra%ibz_tetra_count(ikibz) = tetra%ibz_tetra_count(ikibz) + 1
+ end do
+ end do
+
+ ! 2. Then we build mapping of ikbz to tetra
+ TETRA_ALLOCATE(tetra%ibz_tetra_mapping,(nkpt_ibz,maxval(tetra%ibz_tetra_count)))
+ tetra%ibz_tetra_count(:) = 0
+ do ii=1,tetra%ntetra
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ind_ibz(:) = tetra%tetra_full(:,1,ii)
+ ! Use the counter to move pointer and then fill index
+ do jj=1,4
+ ikibz = ind_ibz(jj)
+ if (ikibz > nkpt_ibz) cycle
+ ! avoid putting the same index twice
+ if (tetra%ibz_tetra_count(ikibz) > 0) then
+ if (tetra%ibz_tetra_mapping(ikibz,tetra%ibz_tetra_count(ikibz)) == ii) cycle
+ end if
+ tetra%ibz_tetra_count(ikibz) = tetra%ibz_tetra_count(ikibz) + 1
+ tetra%ibz_tetra_mapping(ikibz,tetra%ibz_tetra_count(ikibz)) = ii
+ end do
+ end do
+
+ !call cpu_time(cpu_stop)
+ !write(*,*)"tetra_init 2nd part:", cpu_stop - cpu_start
+ !cpu_start = cpu_stop
+
+end subroutine init_tetra
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetra_write
+!! NAME
+!! tetra_write
+!!
+!! FUNCTION
+!! Write text file with tetra info.
+!!
+!! INPUTS
+!! tetra=tetrahedron geometry object
+!! nkibz=Number of k-points in the IBZ used to generate tetra
+!! kibz(3,nkibz)=Reduced coordinates of the IBZ
+!! path=Name of output file
+!!
+!! OUTPUT
+!! Output is written to file.
+!!
+!! SOURCE
+
+subroutine tetra_write(tetra, nkibz, kibz, path)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nkibz
+ character(len=*),intent(in) :: path
+ type(t_tetrahedron),intent(in) :: tetra
+!arrays
+ real(dp),intent(in) :: kibz(3,nkibz)
+
+!Local variables-------------------------------
+ integer,parameter :: version=1
+ integer :: ik,it,unt
+#ifdef HAVE_LIBTETRA_ABINIT
+ character(len=500) :: msg
+#endif
+
+! *********************************************************************
+
+#ifdef HAVE_LIBTETRA_ABINIT
+ if (open_file(file=trim(path),iomsg=msg,newunit=unt,form="formatted",status="unknown",action="write")/=0) then
+ TETRA_ERROR(msg)
+ end if
+#else
+ open(file=trim(path),newunit=unt,form="formatted",status="unknown",action="write")
+#endif
+
+ write(unt,*)version, " # version number"
+
+ ! Write IBZ
+ write(unt,*)nkibz, " # number of k-points in the IBZ"
+ write(unt,"(a)")""
+ do ik=1,nkibz
+ write(unt,"(3es22.12)") kibz(:,ik)
+ end do
+ write(unt,"(a)")""
+
+ ! Write tetra info
+ write(unt,"(i0,a)")tetra%ntetra, " # number of tetrahedra"
+ write(unt,"(es22.12,a)")tetra%vv, " # tetrahedron volume"
+
+ write(unt,"(a)")""
+ do it=1,tetra%ntetra
+ write(unt,"(8(i0,1x))")tetra%tetra_full(:,:,it)
+ end do
+ write(unt,"(a)")""
+
+ write(unt,"(a)")""
+ do it=1,tetra%ntetra
+ write(unt,"(i0)")tetra%tetra_mult(it)
+ end do
+ write(unt,"(a)")""
+
+ write(unt,"(a)")""
+ do it=1,tetra%ntetra
+ write(unt,"(12(i0,1x))")tetra%tetra_wrap(:,:,it)
+ end do
+ write(unt,"(a)")""
+
+ close(unt)
+
+end subroutine tetra_write
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/get_tetra_weight
+!! NAME
+!! get_tetra_weight
+!!
+!! FUNCTION
+!! calculate integration weights and their derivatives from Blochl et al PRB 49 16223 [[cite:Bloechl1994a]]
+!!
+!! INPUTS
+!! eigen_in(nkpt)=eigenenergies for each k point
+!! enemin=minimal energy for DOS
+!! enemax=maximal energy for DOS
+!! max_occ=maximal occupation number (2 for nsppol=1, 1 for nsppol=2)
+!! nene=number of energies for DOS
+!! nkpt=number of irreducible kpoints
+!! tetra
+!! %ntetra=number of tetrahedra
+!! %tetra_full(4,2,ntetra)=for each irred tetrahedron, the list of k point vertices
+!! 1 -> irred kpoint 2 -> fullkpt
+!! %tetra_mult(ntetra)=for each irred tetrahedron, its multiplicity
+!! %vv = ratio of volume of one tetrahedron in reciprocal space to full BZ volume
+!! bcorr=1 to include Blochl correction else 0.
+!! comm=MPI communicator
+!!
+!! OUTPUT
+!! tweight(nkpt,nene) = integration weights for each irred kpoint from all adjacent tetrahedra
+!! dtweightde(nkpt,nene) = derivative of tweight wrt energy
+!!
+!! SOURCE
+
+! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+! THIS FUNCTION IS DEPRECATED, USE tetra_blochl_weights
+! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+subroutine get_tetra_weight(eigen_in,enemin,enemax,max_occ,nene,nkpt,tetra,&
+ bcorr,tweight,dtweightde,comm)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nene,nkpt,bcorr,comm
+ type(t_tetrahedron), intent(in) :: tetra
+ real(dp) ,intent(in) :: enemax,enemin,max_occ
+!arrays
+ real(dp) ,intent(in) :: eigen_in(nkpt)
+ real(dp) ,intent(out) :: dtweightde(nkpt,nene),tweight(nkpt,nene)
+
+!Local variables-------------------------------
+ real(dp), allocatable :: dtweightde_ek(:, :), tweight_ek(:, :)
+
+! *********************************************************************
+
+ TETRA_ALLOCATE(dtweightde_ek, (nene, nkpt))
+ TETRA_ALLOCATE(tweight_ek, (nene, nkpt))
+
+ call tetra_blochl_weights(tetra,eigen_in,enemin,enemax,max_occ,nene,nkpt,bcorr,tweight_ek,dtweightde_ek,comm)
+
+ ! transpose: otherwise the data access is crap and the code slows by an order of magnitude
+ tweight = transpose(tweight_ek)
+ dtweightde = transpose(dtweightde_ek)
+
+ TETRA_DEALLOCATE(dtweightde_ek)
+ TETRA_DEALLOCATE(tweight_ek)
+
+end subroutine get_tetra_weight
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetra_blochl_weights
+!! NAME
+!! tetra_blochl_weights
+!!
+!! FUNCTION
+!! calculate integration weights and their derivatives from Blochl et al PRB 49 16223 [[cite:Bloechl1994a]]
+!! Same API as get_tetra_weight but output weights here have shape (nene, nkpt)
+!!
+!! SOURCE
+
+subroutine tetra_blochl_weights(tetra,eigen_in,enemin,enemax,max_occ,nene,nkpt,&
+ bcorr,tweight_t,dtweightde_t,comm)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nene,nkpt,bcorr,comm
+ type(t_tetrahedron), intent(in) :: tetra
+ real(dp) ,intent(in) :: enemax,enemin,max_occ
+!arrays
+ real(dp) ,intent(in) :: eigen_in(nkpt)
+ real(dp) ,intent(out) :: dtweightde_t(nene,nkpt),tweight_t(nene,nkpt)
+
+!Local variables-------------------------------
+!scalars
+ integer :: itetra,nprocs,my_start,my_stop,ierr,ii
+!arrays
+ integer :: ind_ibz(4)
+ real(dp) :: eigen_1tetra(4)
+ real(dp), allocatable :: tweight_tmp(:,:),dtweightde_tmp(:,:),buffer(:,:)
+
+! *********************************************************************
+
+ TETRA_ALLOCATE(tweight_tmp, (nene, 4))
+ TETRA_ALLOCATE(dtweightde_tmp, (nene, 4))
+ tweight_t = zero; dtweightde_t = zero
+
+ call split_work(tetra%ntetra, comm, nprocs, my_start, my_stop, ierr)
+ if (ierr /= 0) TETRA_ERROR("Error in MPI layer")
+
+ ! for each tetrahedron
+ do itetra=my_start,my_stop
+ tweight_tmp = zero
+ dtweightde_tmp = zero
+
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ind_ibz(:) = tetra%tetra_full(:,1,itetra)
+
+ ! Sort energies before calling get_onetetra_
+ eigen_1tetra(:) = eigen_in(ind_ibz(:))
+ call sort_tetra(4, eigen_1tetra, ind_ibz, tol14)
+
+ call get_onetetra_(tetra,itetra,eigen_1tetra,enemin,enemax,max_occ,nene,bcorr,tweight_tmp,dtweightde_tmp)
+
+ ! NOTE: the following blas calls are not working systematically, or do not give speed ups, strange...
+ !if (nene > 100) then
+ ! do ii=1,4
+ ! call daxpy (nene, 1.d0, tweight_tmp(:,ii), 1, tweight_t(:,ind_ibz(ii)), 1)
+ ! end do
+ ! do ii=1,4
+ ! call daxpy (nene, 1.d0, dtweightde_tmp(:,ii), 1, dtweightde_t(:,ind_ibz(ii)), 1)
+ ! end do
+ !else
+ do ii=1,4
+ tweight_t(:,ind_ibz(ii)) = tweight_t(:,ind_ibz(ii)) + tweight_tmp(:,ii)
+ end do
+ do ii=1,4
+ dtweightde_t(:,ind_ibz(ii)) = dtweightde_t(:,ind_ibz(ii)) + dtweightde_tmp(:,ii)
+ end do
+ !end if
+ end do ! itetra
+
+ TETRA_DEALLOCATE(tweight_tmp)
+ TETRA_DEALLOCATE(dtweightde_tmp)
+
+ if (nprocs > 1) then
+#ifdef HAVE_MPI
+ TETRA_ALLOCATE(buffer, (nene, nkpt))
+ call MPI_ALLREDUCE(tweight_t,buffer,nene*nkpt,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ierr)
+ tweight_t = buffer
+
+ call MPI_ALLREDUCE(dtweightde_t,buffer,nene*nkpt,MPI_DOUBLE_PRECISION,MPI_SUM,comm,ierr)
+ dtweightde_t = buffer
+ TETRA_DEALLOCATE(buffer)
+#endif
+ end if
+
+end subroutine tetra_blochl_weights
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/get_dbl_tetra_weight
+!! NAME
+!! get_dbl_tetra_weight
+!!
+!! FUNCTION
+!! calculate integration weights and their derivatives
+!! for double tetrahedron method from Allen Phys Stat Sol B 120 529 (1983) [[cite:Allen1983b]]
+!! the k-points and tetrahedra must be the same for both grids, of course,
+!! but the range of energies is arbitrary
+!!
+!! Omega is called eigen1 here
+!! E is called eigen2 here
+!! indexing goes from 1 to 4 for the tetrahedron corners, in order of increasing eigen1
+!! in Allen, from 0 to 3...
+!!
+!! INPUTS
+!! eigen1_in(nkpt)=eigenenergies for each k point
+!! eigen2_in(nkpt)=eigenenergies for each k point
+!! enemin1=minimal energy for DOS in energy 1
+!! enemax1=maximal energy for DOS
+!! enemin2=minimal energy for DOS in energy 2
+!! enemax2=maximal energy for DOS
+!! max_occ=maximal occupation number (2 for nsppol=1, 1 for nsppol=2)
+!! nene1=number of energies for DOS in energy 1
+!! nene2=number of energies for DOS in energy 2
+!! nkpt=number of irreducible kpoints
+!! tetra%ntetra=number of tetra
+!! tetra%tetra_full(4,2,ntetra)=for each irred tetrahedron, the list of k point vertices
+!! 1 -> irred kpoint 2 -> fullkpt
+!! tetra%tetra_mult(ntetra)=for each irred tetrahedron, its multiplicity
+!! tetra%vv = ratio of volume of one tetrahedron in reciprocal space to full BZ volume
+!! ierr = error code on exit
+!!
+!! OUTPUT
+!! tweight(nkpt,nene1,nene2) = integration weights for each irred kpoint from all adjacent tetrahedra
+!! dtweightde(nkpt,nene1,nene2) = derivative of tweight wrt energy
+!!
+!! SOURCE
+
+subroutine get_dbl_tetra_weight(eigen1_in,eigen2_in,enemin1,enemax1,enemin2,enemax2,&
+& max_occ,nene1,nene2,nkpt,tetra,tweight,dtweightde, ierr)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nene1,nene2,nkpt
+ integer,intent(out) :: ierr
+ type(t_tetrahedron), intent(in) :: tetra
+ real(dp),intent(in) :: enemax1,enemin1
+ real(dp),intent(in) :: enemax2,enemin2
+ real(dp),intent(in) :: max_occ
+!arrays
+ real(dp),intent(in) :: eigen1_in(nkpt)
+ real(dp),intent(in) :: eigen2_in(nkpt)
+ real(dp),intent(out) :: dtweightde(nkpt,nene1,nene2),tweight(nkpt,nene1,nene2)
+
+!Local variables-------------------------------
+! needed for gaussian replacement of Dirac functions
+! the three coefficients of the DOS as quadratic form,
+! in the interval [eig(ikpt-1), eig(ikpt)]
+! for ikpt = 1 we add a point below eigen(1) which doesnt
+! contribute to the DOS in any tetrahedron
+!scalars
+ integer :: ieps1,ieps2,itetra
+ integer :: nn1_1,nn1_2,nn1_3,nn1_4
+ integer :: nn2_1,nn2_2,nn2_3
+ integer :: ind_a(3), ind_b(3), ind_c(3)
+ real(dp) :: deltaene1,eps1
+ real(dp) :: deltaene2,eps2
+! real(dp) :: gau_prefactor,gau_width,gau_width2
+ real(dp) :: epsilon1(4,4)
+ real(dp) :: epsilon2(4,4)
+ real(dp) :: inv_epsilon1(4,4)
+ real(dp) :: aa(3),bb(3),cc(3)
+ real(dp) :: delaa(3),delbb(3),delcc(3)
+ real(dp) :: delaa0,delbb0,delcc0
+ real(dp) :: inv_delaa(3),inv_delbb(3),inv_delcc(3)
+ real(dp) :: deleps1, deleps2
+ real(dp) :: inv_deleps1
+ real(dp) :: dccde1, dccde1_pre
+ real(dp) :: volconst,volconst_mult
+ real(dp) :: ii0, ii1, ii3
+!arrays
+ integer :: ind_k(4)
+ real(dp), allocatable :: tweight_tmp(:,:,:)
+ real(dp), allocatable :: dtweightde_tmp(:,:,:)
+ real(dp) :: eigen1_1tetra(4)
+ real(dp) :: eigen2_1tetra(4)
+
+! *********************************************************************
+
+ ierr = 0
+ if (nene1 <= 1 .or. nene2 <= 1) then
+ !'get_dbl_tetra_weight: nene must be at least 2'
+ ierr = 1
+ return
+ else
+ deltaene1 = (enemax1-enemin1) / (nene1-1)
+ deltaene2 = (enemax2-enemin2) / (nene2-1)
+ end if
+
+ TETRA_ALLOCATE(tweight_tmp, (4, nene2, nene1))
+ TETRA_ALLOCATE(dtweightde_tmp, (4, nene2, nene1))
+
+!print *, "warning: for the moment, heaviside weights are 0. The delta function / DOS weights are the only ones calculated "
+
+ volconst = tetra%vv/4.d0
+
+ ! for each tetrahedron
+ do itetra=1,tetra%ntetra
+ ! these are for 1 tetrahedron only.
+ tweight_tmp = zero
+ dtweightde_tmp = zero
+
+ volconst_mult = max_occ*volconst*dble(tetra%tetra_mult(itetra))
+
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ! ind_k refers to the index in the full k list of the summits of the present tetrahedra
+ ! we can forget the order of the summits within the tetrahedron, because eigen1 fixes that
+ ! order with its increasing value
+ ind_k(1) = tetra%tetra_full(1,1,itetra)
+ ind_k(2) = tetra%tetra_full(2,1,itetra)
+ ind_k(3) = tetra%tetra_full(3,1,itetra)
+ ind_k(4) = tetra%tetra_full(4,1,itetra)
+ eigen1_1tetra(1) = eigen1_in(ind_k(1))
+ eigen1_1tetra(2) = eigen1_in(ind_k(2))
+ eigen1_1tetra(3) = eigen1_in(ind_k(3))
+ eigen1_1tetra(4) = eigen1_in(ind_k(4))
+ call sort_tetra(4,eigen1_1tetra,ind_k,tol14)
+
+ ! re-sort eigen2 values according to order chosen for eigen1. Eigen2 are _not_ in increasing order!
+ eigen2_1tetra(1) = eigen2_in(ind_k(1))
+ eigen2_1tetra(2) = eigen2_in(ind_k(2))
+ eigen2_1tetra(3) = eigen2_in(ind_k(3))
+ eigen2_1tetra(4) = eigen2_in(ind_k(4))
+
+ ! the epsilons are energy differences for the two eigenvalue sets
+ epsilon1 = zero
+ epsilon2 = zero
+ do ieps1 = 1, 4
+ do ieps2 = ieps1+1, 4
+ epsilon1(ieps1,ieps2) = eigen1_1tetra(ieps1)-eigen1_1tetra(ieps2)
+ epsilon1(ieps2,ieps1) = -epsilon1(ieps1,ieps2)
+ epsilon2(ieps1,ieps2) = eigen2_1tetra(ieps1)-eigen2_1tetra(ieps2)
+ epsilon2(ieps2,ieps1) = -epsilon2(ieps1,ieps2)
+ end do
+ end do
+
+ ! we precalculate the inverses to avoid doing tons of divisions in the energy loops below
+ ! Allen formulae only require the inverses of the differences of eigen1 + the a b c below
+ inv_epsilon1 = zero
+ do ieps1 = 1, 4
+ do ieps2 = ieps1+1, 4
+ if (abs(epsilon1(ieps1,ieps2)) > tol6) then
+ inv_epsilon1(ieps1,ieps2) = 1.d0 / epsilon1(ieps1,ieps2)
+ inv_epsilon1(ieps2,ieps1) = -inv_epsilon1(ieps1,ieps2)
+ end if
+ end do
+ end do
+
+ ! these bounds determine the intervals for Omega in Allen paper, and cases A, B, C
+ nn1_1 = int((eigen1_1tetra(1)-enemin1)/deltaene1)+1
+ nn1_2 = int((eigen1_1tetra(2)-enemin1)/deltaene1)+1
+ nn1_3 = int((eigen1_1tetra(3)-enemin1)/deltaene1)+1
+ nn1_4 = int((eigen1_1tetra(4)-enemin1)/deltaene1)+1
+
+ nn1_1 = max(1,nn1_1)
+ nn1_1 = min(nn1_1,nene1)
+ nn1_2 = max(1,nn1_2)
+ nn1_2 = min(nn1_2,nene1)
+ nn1_3 = max(1,nn1_3)
+ nn1_3 = min(nn1_3,nene1)
+ nn1_4 = max(1,nn1_4)
+ nn1_4 = min(nn1_4,nene1)
+
+ ! calculate Allen a_i b_i and c_i parameters
+ ! sort the a_i b_i c_i
+ !
+ ! NOTE: indices here go from 1 to 4 instead of 0 to 3 as in Allen...
+ aa(1) = epsilon2(2,1) * inv_epsilon1(2,1)
+ aa(2) = epsilon2(3,1) * inv_epsilon1(3,1)
+ aa(3) = epsilon2(4,1) * inv_epsilon1(4,1)
+ ind_a = (/2,3,4/)
+ call sort_tetra(3,aa,ind_a,tol14)
+ ! aa are now in order a_s a_m a_l !!! Preserve the hash function ind_a to order the positions of k below
+ delaa(1) = aa(2)-aa(1)
+ delaa(2) = aa(3)-aa(1)
+ delaa(3) = aa(3)-aa(2)
+ inv_delaa = zero
+ if(delaa(1)> tol6) inv_delaa(1)= 1.0d0 / delaa(1)
+ if(delaa(2)> tol6) inv_delaa(2)= 1.0d0 / delaa(2)
+ if(delaa(3)> tol6) inv_delaa(3)= 1.0d0 / delaa(3)
+
+ bb(1) = epsilon2(1,2) * inv_epsilon1(1,2)
+ bb(2) = epsilon2(3,2) * inv_epsilon1(3,2)
+ bb(3) = epsilon2(4,2) * inv_epsilon1(4,2)
+ ind_b = (/1,3,4/)
+ call sort_tetra(3,bb,ind_b,tol14)
+ delbb(1) = bb(2)-bb(1)
+ delbb(2) = bb(3)-bb(1)
+ delbb(3) = bb(3)-bb(2)
+ inv_delbb = zero
+ if(delbb(1)> tol6) inv_delbb(1)= 1.0d0 / delbb(1)
+ if(delbb(2)> tol6) inv_delbb(2)= 1.0d0 / delbb(2)
+ if(delbb(3)> tol6) inv_delbb(3)= 1.0d0 / delbb(3)
+
+ cc(1) = epsilon2(1,4) * inv_epsilon1(1,4)
+ cc(2) = epsilon2(2,4) * inv_epsilon1(2,4)
+ cc(3) = epsilon2(3,4) * inv_epsilon1(3,4)
+ ind_c = (/1,2,3/)
+ call sort_tetra(3,cc,ind_c,tol14)
+ delcc(1) = cc(2)-cc(1)
+ delcc(2) = cc(3)-cc(1)
+ delcc(3) = cc(3)-cc(2)
+ inv_delcc = zero
+ if(delcc(1)> tol6) inv_delcc(1)= 1.0d0 / delcc(1)
+ if(delcc(2)> tol6) inv_delcc(2)= 1.0d0 / delcc(2)
+ if(delcc(3)> tol6) inv_delcc(3)= 1.0d0 / delcc(3)
+
+ !----------------------------------------------------------------------
+ ! start main loop A B C over eps1
+ !----------------------------------------------------------------------
+
+ !
+ ! interval enemin1 < eps1 < e1 nothing to do
+ !
+ !
+ ! interval e1 < eps1 < e3 CASE A in Allen + first term in B
+ !
+ ! NB: eps1 is not updated inside the loop, only between the loops
+ eps1 = enemin1+nn1_1*deltaene1
+ deleps1 = eps1-eigen1_1tetra(1) ! this is Omega - omega_0
+ dccde1_pre = 6.d0*volconst_mult*inv_epsilon1(2,1)*inv_epsilon1(3,1)*inv_epsilon1(4,1)
+
+ ! note we go to nn1_3
+ do ieps1=nn1_1+1,nn1_3
+
+ dccde1 = dccde1_pre * deleps1 ! this is f_0(Omega)*6*v
+
+ ! at fixed ieps1 we can find the pivot indices for the ieps2 loop
+ nn2_1 = int((eigen2_1tetra(1)+deleps1*aa(1) -enemin2)/deltaene2)+1
+ nn2_2 = int((eigen2_1tetra(1)+deleps1*aa(2) -enemin2)/deltaene2)+1
+ nn2_3 = int((eigen2_1tetra(1)+deleps1*aa(3) -enemin2)/deltaene2)+1
+
+ nn2_1 = max(1,nn2_1)
+ nn2_1 = min(nn2_1,nene2)
+ nn2_2 = max(1,nn2_2)
+ nn2_2 = min(nn2_2,nene2)
+ nn2_3 = max(1,nn2_3)
+ nn2_3 = min(nn2_3,nene2)
+
+ inv_deleps1 = 1.0d0 / deleps1
+
+ eps2 = enemin2+nn2_1*deltaene2 ! this is E
+ deleps2 = eps2 - eigen2_1tetra(1) ! this is E-epsilon_0
+
+ !-----------------------------------------------------------------------
+ ! This is case AI
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_1+1, nn2_2
+ ! calculate running value of del "a" = a-a_s: first term should really mix eps1 and eps2
+ delaa0 = deleps2*inv_deleps1 - aa(1) ! a - a_s
+
+ ii0 = dccde1*delaa0*inv_delaa(1)*inv_delaa(2) ! this is I_0(Omega E)
+
+ dtweightde_tmp(1,ieps2,ieps1) = dtweightde_tmp(1,ieps2,ieps1) + &
+& ii0*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_a(1),1)* &
+& (-2.0d0 + delaa0*inv_delaa(1)*epsilon1(ind_a(2),ind_a(1))*inv_epsilon1(ind_a(2),1) &
+& + delaa0*inv_delaa(2)*epsilon1(ind_a(3),ind_a(1))*inv_epsilon1(ind_a(3),1)))
+ dtweightde_tmp(ind_a(1),ieps2,ieps1) = dtweightde_tmp(ind_a(1),ieps2,ieps1) + &
+& ii0*0.5d0*deleps1*inv_epsilon1(ind_a(1),1)*(2.0d0 - delaa0*inv_delaa(1) - delaa0*inv_delaa(2))
+ dtweightde_tmp(ind_a(2),ieps2,ieps1) = dtweightde_tmp(ind_a(2),ieps2,ieps1) + &
+& ii0*0.5d0*delaa0*inv_delaa(1)*deleps1*inv_epsilon1(ind_a(2),1)
+ dtweightde_tmp(ind_a(3),ieps2,ieps1) = dtweightde_tmp(ind_a(3),ieps2,ieps1) + &
+& ii0*0.5d0*delaa0*inv_delaa(2)*deleps1*inv_epsilon1(ind_a(3),1)
+ deleps2 = deleps2 + deltaene2
+ end do
+
+
+ eps2 = enemin2+nn2_2*deltaene2 ! this is E
+ deleps2 = eps2 - eigen2_1tetra(1) ! E-E_0
+
+ !-----------------------------------------------------------------------
+ ! This is case AII
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_2+1, nn2_3
+ ! calculate running value of del "a" = a_l-a: first term should really mix eps1 and eps2
+ delaa0 = aa(3) - deleps2*inv_deleps1 ! a_l - a
+
+ ii0 = dccde1*delaa0*inv_delaa(3)*inv_delaa(2) ! this is I_0(Omega E)
+
+ dtweightde_tmp(1,ieps2,ieps1) = dtweightde_tmp(1,ieps2,ieps1) + &
+& ii0*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_a(3),1)* &
+& (-2.0d0 + delaa0*inv_delaa(3)*epsilon1(ind_a(2),ind_a(3))*inv_epsilon1(ind_a(2),1) &
+& + delaa0*inv_delaa(2)*epsilon1(ind_a(1),ind_a(3))*inv_epsilon1(ind_a(1),1)))
+ dtweightde_tmp(ind_a(3),ieps2,ieps1) = dtweightde_tmp(ind_a(3),ieps2,ieps1) + &
+& ii0*0.5d0*deleps1*inv_epsilon1(ind_a(3),1)*(2.0d0 - delaa0*inv_delaa(3) - delaa0*inv_delaa(2))
+ dtweightde_tmp(ind_a(2),ieps2,ieps1) = dtweightde_tmp(ind_a(2),ieps2,ieps1) + &
+& ii0*0.5d0*delaa0*inv_delaa(3)*deleps1*inv_epsilon1(ind_a(2),1)
+ dtweightde_tmp(ind_a(1),ieps2,ieps1) = dtweightde_tmp(ind_a(1),ieps2,ieps1) + &
+& ii0*0.5d0*delaa0*inv_delaa(2)*deleps1*inv_epsilon1(ind_a(1),1)
+
+ deleps2 = deleps2 + deltaene2
+ end do
+ deleps1 = deleps1 + deltaene1
+ end do
+ !
+ ! interval e2 < eps < e3
+ !
+ eps1 = eps1 + (nn1_2-nn1_1)*deltaene1
+
+ deleps1 = eps1-eigen1_1tetra(2) ! Omega - omega_1
+
+ dccde1_pre = 6.d0*volconst_mult*inv_epsilon1(2,1)*inv_epsilon1(3,2)*inv_epsilon1(4,2) ! f1 function
+ do ieps1=nn1_2+1,nn1_3
+
+ dccde1 = dccde1_pre * deleps1 ! f2(Omega) * 6 * v
+
+ ! at fixed ieps1 we can find the pivot indices for the ieps2 loop
+ nn2_1 = int((eigen2_1tetra(2)+deleps1*bb(1) -enemin2)/deltaene2)+1
+ nn2_2 = int((eigen2_1tetra(2)+deleps1*bb(2) -enemin2)/deltaene2)+1
+ nn2_3 = int((eigen2_1tetra(2)+deleps1*bb(3) -enemin2)/deltaene2)+1
+
+ nn2_1 = max(1,nn2_1)
+ nn2_1 = min(nn2_1,nene2)
+ nn2_2 = max(1,nn2_2)
+ nn2_2 = min(nn2_2,nene2)
+ nn2_3 = max(1,nn2_3)
+ nn2_3 = min(nn2_3,nene2)
+
+ inv_deleps1 = 1.0d0 / deleps1
+
+ eps2 = enemin2+nn2_1*deltaene2 ! starting value for E
+ deleps2 = eps2 - eigen2_1tetra(2) ! E - epsilon_1
+
+ !-----------------------------------------------------------------------
+ ! This is case BI
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_1+1, nn2_2
+ ! calculate running value of del "b" = b-b_s: first term should really mix eps1 and eps2
+ delbb0 = deleps2*inv_deleps1 - bb(1)
+
+ ii1 = dccde1*delbb0*inv_delbb(1)*inv_delbb(2) ! this is I_1(Omega E)
+
+ ! note negative sign here - we are correcting the I0 a0 term already calculated above
+ dtweightde_tmp(2,ieps2,ieps1) = dtweightde_tmp(2,ieps2,ieps1) - &
+& ii1*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_b(1),2)* &
+& (-2.0d0 + delbb0*inv_delbb(1)*epsilon1(ind_b(2),ind_b(1))*inv_epsilon1(ind_b(2),2) &
+& + delbb0*inv_delbb(2)*epsilon1(ind_b(3),ind_b(1))*inv_epsilon1(ind_b(3),2)))
+ dtweightde_tmp(ind_b(1),ieps2,ieps1) = dtweightde_tmp(ind_b(1),ieps2,ieps1) - &
+& ii1*0.5d0*deleps1*inv_epsilon1(ind_b(1),2)*(2.0d0 - delbb0*inv_delbb(1) - delbb0*inv_delbb(2))
+ dtweightde_tmp(ind_b(2),ieps2,ieps1) = dtweightde_tmp(ind_b(2),ieps2,ieps1) - &
+& ii1*0.5d0*delbb0*inv_delbb(1)*deleps1*inv_epsilon1(ind_b(2),2)
+ dtweightde_tmp(ind_b(3),ieps2,ieps1) = dtweightde_tmp(ind_b(3),ieps2,ieps1) - &
+& ii1*0.5d0*delbb0*inv_delbb(2)*deleps1*inv_epsilon1(ind_b(3),2)
+ deleps2 = deleps2 + deltaene2
+ end do
+
+ eps2 = enemin2+nn2_2*deltaene2
+ deleps2 = eps2 - eigen2_1tetra(2)
+
+ !-----------------------------------------------------------------------
+ ! This is case BII
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_2+1, nn2_3
+ ! calculate running value of del "b" = b_l-b: first term should really mix eps1 and eps2
+ delbb0 = bb(3) - deleps2*inv_deleps1
+
+ ii1 = dccde1*delbb0*inv_delbb(3)*inv_delbb(2) ! this is I_1(Omega E)
+
+ ! note negative sign here - we are correcting the I0 a0 term already calculated above
+ dtweightde_tmp(2,ieps2,ieps1) = dtweightde_tmp(2,ieps2,ieps1) - &
+& ii1*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_b(3),2)* &
+& (-2.0d0 + delbb0*inv_delbb(3)*epsilon1(ind_b(2),ind_b(3))*inv_epsilon1(ind_b(2),2) &
+& + delbb0*inv_delbb(2)*epsilon1(ind_b(1),ind_b(3))*inv_epsilon1(ind_b(1),2)))
+ dtweightde_tmp(ind_b(3),ieps2,ieps1) = dtweightde_tmp(ind_b(3),ieps2,ieps1) - &
+& ii1*0.5d0*deleps1*inv_epsilon1(ind_b(3),2)*(2.0d0 - delbb0*inv_delbb(3) - delbb0*inv_delbb(2))
+ dtweightde_tmp(ind_b(2),ieps2,ieps1) = dtweightde_tmp(ind_b(2),ieps2,ieps1) - &
+& ii1*0.5d0*delbb0*inv_delbb(3)*deleps1*inv_epsilon1(ind_b(2),2)
+ dtweightde_tmp(ind_b(1),ieps2,ieps1) = dtweightde_tmp(ind_b(1),ieps2,ieps1) - &
+& ii1*0.5d0*delbb0*inv_delbb(2)*deleps1*inv_epsilon1(ind_b(1),2)
+
+ deleps2 = deleps2 + deltaene2
+ end do
+
+ deleps1 = deleps1 + deltaene1
+ end do
+
+ !
+ ! interval e3 < eps < e4
+ !
+ eps1 = eps1 + (nn1_3-nn1_2)*deltaene1
+ deleps1 = eps1-eigen1_1tetra(4)
+ dccde1_pre = 6.d0*volconst_mult*inv_epsilon1(4,1)*inv_epsilon1(4,2)*inv_epsilon1(4,3)
+ do ieps1=nn1_3+1,nn1_4
+ ! note - sign from definition of f3
+ dccde1 = -dccde1_pre * deleps1 ! f3(Omega) * 6 * v
+
+ ! at fixed ieps1 we can find the pivot indices for the ieps2 loop
+ ! NB: order is inverted for cc because deleps1 is defined negative (Omega is always less than omega_3)
+ nn2_1 = int((eigen2_1tetra(4)+deleps1*cc(3) -enemin2)/deltaene2)+1
+ nn2_2 = int((eigen2_1tetra(4)+deleps1*cc(2) -enemin2)/deltaene2)+1
+ nn2_3 = int((eigen2_1tetra(4)+deleps1*cc(1) -enemin2)/deltaene2)+1
+
+ nn2_1 = max(1,nn2_1)
+ nn2_1 = min(nn2_1,nene2)
+ nn2_2 = max(1,nn2_2)
+ nn2_2 = min(nn2_2,nene2)
+ nn2_3 = max(1,nn2_3)
+ nn2_3 = min(nn2_3,nene2)
+ inv_deleps1 = 1.0d0 / deleps1
+
+ eps2 = enemin2+nn2_1*deltaene2 ! starting value for E
+ deleps2 = eps2 - eigen2_1tetra(4) ! E - epsilon_3
+
+ !-----------------------------------------------------------------------
+ ! This is case CII
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_1+1, nn2_2
+ ! calculate running value of del "c" = c_l-c: first term should really mix eps1 and eps2
+ delcc0 = cc(3) - deleps2*inv_deleps1
+
+ ii3 = dccde1*delcc0*inv_delcc(3)*inv_delcc(2) ! this is I_3(Omega E)
+
+ dtweightde_tmp(4,ieps2,ieps1) = dtweightde_tmp(4,ieps2,ieps1) + &
+& ii3*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_c(3),4)* &
+& (-2.0d0 + delcc0*inv_delcc(3)*epsilon1(ind_c(2),ind_c(3))*inv_epsilon1(ind_c(2),4) &
+& + delcc0*inv_delcc(2)*epsilon1(ind_c(1),ind_c(3))*inv_epsilon1(ind_c(1),4)))
+ dtweightde_tmp(ind_c(3),ieps2,ieps1) = dtweightde_tmp(ind_c(3),ieps2,ieps1) + &
+& ii3*0.5d0*deleps1*inv_epsilon1(ind_c(3),4)*(2.0d0 - delcc0*inv_delcc(3) - delcc0*inv_delcc(2))
+ dtweightde_tmp(ind_c(2),ieps2,ieps1) = dtweightde_tmp(ind_c(2),ieps2,ieps1) + &
+& ii3*0.5d0*delcc0*inv_delcc(3)*deleps1*inv_epsilon1(ind_c(2),4)
+ dtweightde_tmp(ind_c(1),ieps2,ieps1) = dtweightde_tmp(ind_c(1),ieps2,ieps1) + &
+& ii3*0.5d0*delcc0*inv_delcc(2)*deleps1*inv_epsilon1(ind_c(1),4)
+
+ deleps2 = deleps2 + deltaene2
+ end do
+
+
+ eps2 = enemin2+nn2_2*deltaene2
+ deleps2 = eps2 - eigen2_1tetra(4)
+
+ !-----------------------------------------------------------------------
+ ! This is case CI
+ !-----------------------------------------------------------------------
+ do ieps2 = nn2_2+1, nn2_3
+ ! calculate running value of del "c" = c-c_s: first term should really mix eps1 and eps2
+ delcc0 = deleps2*inv_deleps1 - cc(1) ! c - c_s
+
+ ii3 = dccde1*delcc0*inv_delcc(1)*inv_delcc(2) ! this is I_3(Omega E)
+
+ dtweightde_tmp(4,ieps2,ieps1) = dtweightde_tmp(4,ieps2,ieps1) + &
+& ii3*(1.d0 + 0.5d0*deleps1*inv_epsilon1(ind_c(1),4)* &
+& (-2.0d0 + delcc0*inv_delcc(1)*epsilon1(ind_c(2),ind_c(1))*inv_epsilon1(ind_c(2),4) &
+& + delcc0*inv_delcc(2)*epsilon1(ind_c(3),ind_c(1))*inv_epsilon1(ind_c(3),4)))
+ dtweightde_tmp(ind_c(1),ieps2,ieps1) = dtweightde_tmp(ind_c(1),ieps2,ieps1) + &
+& ii3*0.5d0*deleps1*inv_epsilon1(ind_c(1),4)*(2.0d0 - delcc0*inv_delcc(1) - delcc0*inv_delcc(2))
+ dtweightde_tmp(ind_c(2),ieps2,ieps1) = dtweightde_tmp(ind_c(2),ieps2,ieps1) + &
+& ii3*0.5d0*delcc0*inv_delcc(1)*deleps1*inv_epsilon1(ind_c(2),4)
+ dtweightde_tmp(ind_c(3),ieps2,ieps1) = dtweightde_tmp(ind_c(3),ieps2,ieps1) + &
+& ii3*0.5d0*delcc0*inv_delcc(2)*deleps1*inv_epsilon1(ind_c(3),4)
+ deleps2 = deleps2 + deltaene2
+ end do
+
+ deleps1 = deleps1 + deltaene1
+ end do
+
+ eps1 = eps1 + (nn1_4-nn1_3)*deltaene1
+ !
+ !
+ ! interval e4 < eps < enemax
+ !
+ do ieps1=nn1_4+1,nene1
+ ! dtweightde unchanged by this tetrahedron
+ end do
+
+ ! if we have a fully degenerate tetrahedron,
+ ! 1) the tweight is a Heaviside (step) function, which is correct above, but
+ ! 2) the dtweightde should contain a Dirac function: add a Gaussian here
+
+ ! TODO: add treatment in double tetra case
+ ! end degenerate tetrahedron if
+
+ ! the following blas calls are not working systematically, or do not give speed ups, strange...
+ !call daxpy (nene, 1.d0, dtweightde_tmp(:,1), 1, dtweightde_t(:,ind_ibz(1)), 1)
+ !call daxpy (nene, 1.d0, dtweightde_tmp(:,2), 1, dtweightde_t(:,ind_ibz(2)), 1)
+ !call daxpy (nene, 1.d0, dtweightde_tmp(:,3), 1, dtweightde_t(:,ind_ibz(3)), 1)
+ !call daxpy (nene, 1.d0, dtweightde_tmp(:,4), 1, dtweightde_t(:,ind_ibz(4)), 1)
+
+ do ieps2 = 1, nene2
+ dtweightde(ind_k(1),:,ieps2) = dtweightde(ind_k(1),:,ieps2) + dtweightde_tmp(1,ieps2,:)
+ dtweightde(ind_k(2),:,ieps2) = dtweightde(ind_k(2),:,ieps2) + dtweightde_tmp(2,ieps2,:)
+ dtweightde(ind_k(3),:,ieps2) = dtweightde(ind_k(3),:,ieps2) + dtweightde_tmp(3,ieps2,:)
+ dtweightde(ind_k(4),:,ieps2) = dtweightde(ind_k(4),:,ieps2) + dtweightde_tmp(4,ieps2,:)
+ !tweight(nkpt,nene1,nene2)
+ end do
+
+ end do ! itetra
+
+ ! transpose: otherwise the data access is crap and the code slows by an order of magnitude
+ TETRA_DEALLOCATE(tweight_tmp)
+ TETRA_DEALLOCATE(dtweightde_tmp)
+
+end subroutine get_dbl_tetra_weight
+!!***
+
+!!****f* m_tetrahedron/sort_tetra
+!! NAME
+!! sort_tetra
+!!
+!! FUNCTION
+!! Sort double precision array list(n) into ascending numerical order using Heapsort
+!! algorithm, while making corresponding rearrangement of the integer
+!! array iperm. Consider that two double precision numbers
+!! within tolerance tol are equal.
+!!
+!! INPUTS
+!! n intent(in) dimension of the list
+!! tol intent(in) numbers within tolerance are equal
+!! list(n) intent(inout) list of double precision numbers to be sorted
+!! iperm(n) intent(inout) iperm(i)=i (very important)
+!!
+!! OUTPUT
+!! list(n) sorted list
+!! iperm(n) index of permutation given the right ascending order
+!!
+!! SOURCE
+
+
+subroutine sort_tetra(n,list,iperm,tol)
+
+ integer, intent(in) :: n
+ integer, intent(inout) :: iperm(n)
+ real(dp), intent(inout) :: list(n)
+ real(dp), intent(in) :: tol
+
+ integer :: l,ir,iap,i,j
+ real(dp) :: ap
+ character(len=500) :: msg
+
+ if (n==1) then
+ ! Accomodate case of array of length 1: already sorted!
+ return
+ else if (n<1) then
+ ! Should not call with n<1
+ write(msg,1000) n
+ 1000 format(/,' sort_tetra has been called with array length n=',i12,/, &
+& ' having a value less than 1. This is not allowed.')
+ TETRA_ERROR(msg)
+
+ else ! n>1
+
+ ! Conduct the usual sort
+ l=n/2+1
+ ir=n
+
+ do ! Infinite do-loop
+ if (l>1) then
+ l=l-1
+ ap=list(l)
+ iap=iperm(l)
+
+ else ! l<=1
+ ap=list(ir)
+ iap=iperm(ir)
+ list(ir)=list(1)
+ iperm(ir)=iperm(1)
+ ir=ir-1
+
+ if (ir==1) then
+ list(1)=ap
+ iperm(1)=iap
+ exit ! This is the end of this algorithm
+ end if
+ end if ! l>1
+
+ i=l
+ j=l+l
+
+ do while (j<=ir)
+ if (j1
+
+end subroutine sort_tetra
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetralib_has_mpi
+!! NAME
+!! tetralib_has_mpi
+!!
+!! FUNCTION
+!! Return True if library has been compiled with MPI support
+!!
+!! SOURCE
+
+logical function tetralib_has_mpi() result(ans)
+
+ ans = .False.
+#ifdef HAVE_MPI
+ ans = .True.
+#endif
+
+end function tetralib_has_mpi
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/split_work
+!! NAME
+!! split_work
+!!
+!! FUNCTION
+!! Splits the number of tasks, ntasks, among nprocs processors. Used for the MPI parallelization of simple loops.
+!!
+!! INPUTS
+!! ntasks=number of tasks
+!! comm=MPI communicator.
+!!
+!! OUTPUT
+!! nprocs=Number of MPI processes in the communicator.
+!! my_start,my_stop= indices defining the initial and final task for this processor
+!! ierr=Exit status.
+!!
+!! NOTES
+!! If nprocs>ntasks then :
+!! my_start=ntasks+1
+!! my_stop=ntask
+!!
+!! In this particular case, loops of the form
+!!
+!! do ii=my_start,my_stop
+!! ...
+!! end do
+!!
+!! are not executed. Moreover allocation such as foo(my_start:my_stop) will generate a zero-sized array.
+!!
+!! SOURCE
+
+subroutine split_work(ntasks,comm,nprocs,my_start,my_stop,ierr)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: ntasks,comm
+ integer,intent(out) :: nprocs,my_start,my_stop,ierr
+
+!Local variables-------------------------------
+ integer :: res,my_rank,block_p1,block,mpierr
+
+! *************************************************************************
+
+ nprocs = 1; my_start = 1; my_stop = ntasks; ierr = 1
+#ifdef HAVE_MPI
+ call MPI_COMM_SIZE(comm,nprocs,mpierr); if (mpierr /= MPI_SUCCESS) return
+ call MPI_COMM_RANK(comm,my_rank,mpierr); if (mpierr /= MPI_SUCCESS) return
+
+ block = ntasks/nprocs
+ res = MOD(ntasks,nprocs)
+ block_p1= block+1
+
+ if (my_rank tol6) inv_epsilon21 = 1.d0 / epsilon21
+ inv_epsilon31 = zero; if (epsilon31 > tol6) inv_epsilon31 = 1.d0 / epsilon31
+ inv_epsilon41 = zero; if (epsilon41 > tol6) inv_epsilon41 = 1.d0 / epsilon41
+ inv_epsilon32 = zero; if (epsilon32 > tol6) inv_epsilon32 = 1.d0 / epsilon32
+ inv_epsilon42 = zero; if (epsilon42 > tol6) inv_epsilon42 = 1.d0 / epsilon42
+ inv_epsilon43 = zero; if (epsilon43 > tol6) inv_epsilon43 = 1.d0 / epsilon43
+
+ nn1 = int((eigen_1tetra(1)-enemin)/deltaene)+1
+ nn2 = int((eigen_1tetra(2)-enemin)/deltaene)+1
+ nn3 = int((eigen_1tetra(3)-enemin)/deltaene)+1
+ nn4 = int((eigen_1tetra(4)-enemin)/deltaene)+1
+
+ nn1 = max(1,nn1)
+ nn1 = min(nn1,nene)
+ nn2 = max(1,nn2)
+ nn2 = min(nn2,nene)
+ nn3 = max(1,nn3)
+ nn3 = min(nn3,nene)
+ nn4 = max(1,nn4)
+ nn4 = min(nn4,nene)
+
+ eps = enemin+nn1*deltaene
+ !
+ !interval enemin < eps < e1 nothing to do
+ !
+ !
+ !interval e1 < eps < e2
+ !
+ deleps1 = eps-eigen_1tetra(1)
+ cc_pre = volconst_mult*inv_epsilon21*inv_epsilon31*inv_epsilon41
+ invepsum = inv_epsilon21+inv_epsilon31+inv_epsilon41
+ dccde_pre = 3.d0*volconst_mult*inv_epsilon21*inv_epsilon31*inv_epsilon41
+ do ieps=nn1+1,nn2
+ cc = cc_pre * deleps1*deleps1*deleps1
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + cc*(4.d0-deleps1*invepsum)
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + cc*deleps1*inv_epsilon21
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + cc*deleps1*inv_epsilon31
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + cc*deleps1*inv_epsilon41
+
+ dccde = dccde_pre * deleps1*deleps1
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) + dccde*(4.d0 - deleps1*invepsum) -cc*invepsum
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) + (dccde*deleps1 + cc) * inv_epsilon21
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) + (dccde*deleps1 + cc) * inv_epsilon31
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) + (dccde*deleps1 + cc) * inv_epsilon41
+
+ if (bcorr == 1) then
+ ! bxu, correction terms based on Bloechl's paper
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + &
+& 4.d0*dccde_pre*deleps1*deleps1*(epsilon21+epsilon31+epsilon41)/40.d0
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + &
+& 4.d0*dccde_pre*deleps1*deleps1*(-epsilon21+epsilon32+epsilon42)/40.d0
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + &
+& 4.d0*dccde_pre*deleps1*deleps1*(-epsilon31-epsilon32+epsilon43)/40.d0
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + &
+& 4.d0*dccde_pre*deleps1*deleps1*(-epsilon41-epsilon42-epsilon43)/40.d0
+
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) + &
+& 8.d0*dccde_pre*deleps1*(epsilon21+epsilon31+epsilon41)/40.d0
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) + &
+& 8.d0*dccde_pre*deleps1*(-epsilon21+epsilon32+epsilon42)/40.d0
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) + &
+& 8.d0*dccde_pre*deleps1*(-epsilon31-epsilon32+epsilon43)/40.d0
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) + &
+& 8.d0*dccde_pre*deleps1*(-epsilon41-epsilon42-epsilon43)/40.d0
+ end if
+
+ deleps1 = deleps1 + deltaene
+ end do
+
+ eps = eps + (nn2-nn1)*deltaene
+ !
+ ! interval e2 < eps < e3
+ !
+ deleps1 = eps-eigen_1tetra(1)
+ deleps2 = eps-eigen_1tetra(2)
+ deleps3 = eigen_1tetra(3)-eps
+ deleps4 = eigen_1tetra(4)-eps
+
+ cc1_pre = volconst_mult*inv_epsilon31*inv_epsilon41
+ cc2_pre = volconst_mult*inv_epsilon41*inv_epsilon32*inv_epsilon31
+ cc3_pre = volconst_mult*inv_epsilon42*inv_epsilon32*inv_epsilon41
+
+ dcc1de_pre = 2.d0*cc1_pre
+ dcc2de_pre = cc2_pre
+ dcc3de_pre = cc3_pre
+ do ieps=nn2+1,nn3
+ cc1 = cc1_pre * deleps1*deleps1
+ cc2 = cc2_pre * deleps1*deleps2*deleps3
+ cc3 = cc3_pre * deleps2*deleps2*deleps4
+
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + &
+& cc1 + (cc1+cc2)*deleps3*inv_epsilon31 + (cc1+cc2+cc3)*deleps4*inv_epsilon41
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + &
+& cc1+cc2+cc3+(cc2+cc3)*deleps3*inv_epsilon32 + cc3*deleps4*inv_epsilon42
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + &
+& (cc1+cc2)*deleps1*inv_epsilon31 + (cc2+cc3)*deleps2*inv_epsilon32
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + &
+& (cc1+cc2+cc3)*deleps1*inv_epsilon41 + cc3*deleps2*inv_epsilon42
+
+
+ dcc1de = dcc1de_pre * deleps1
+ dcc2de = dcc2de_pre * (-deleps1*deleps2 +deleps1*deleps3 +deleps2*deleps3)
+ dcc3de = dcc3de_pre * (2.d0*deleps2*deleps4 -deleps2*deleps2)
+
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) &
+& + dcc1de &
+& + ((dcc1de+dcc2de)*deleps3 -(cc1+cc2)) * inv_epsilon31 &
+& + ((dcc1de+dcc2de+dcc3de)*deleps4 -(cc1+cc2+cc3)) * inv_epsilon41
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) &
+& + dcc1de+dcc2de+dcc3de &
+& + ((dcc2de+dcc3de)*deleps3 -(cc2+cc3) ) * inv_epsilon32 &
+& + (dcc3de*deleps4 -cc3 ) * inv_epsilon42
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) &
+& + ((dcc1de+dcc2de)*deleps1 + (cc1+cc2) ) * inv_epsilon31 &
+& + ((dcc2de+dcc3de)*deleps2 + (cc2+cc3) ) * inv_epsilon32
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) &
+& + ((dcc1de+dcc2de+dcc3de)*deleps1 + (cc1+cc2+cc3) ) * inv_epsilon41 &
+& + (dcc3de*deleps2 + cc3) * inv_epsilon42
+
+ if (bcorr == 1) then
+ ! bxu, correction terms based on Bloechl's paper
+ ! The correction terms may cause the dtweightde become negative
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + &
+& 4.d0*cc1_pre* &
+& (3.d0*epsilon21+6.d0*deleps2-3.d0*(epsilon31+epsilon42)*deleps2**2.d0*inv_epsilon32*inv_epsilon42)* &
+& (epsilon21+epsilon31+epsilon41)/40.d0
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + &
+& 4.d0*cc1_pre* &
+& (3.d0*epsilon21+6.d0*deleps2-3.d0*(epsilon31+epsilon42)*deleps2**2.d0*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon21+epsilon32+epsilon42)/40.d0
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + &
+& 4.d0*cc1_pre* &
+& (3.d0*epsilon21+6.d0*deleps2-3.d0*(epsilon31+epsilon42)*deleps2**2.d0*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon31-epsilon32+epsilon43)/40.d0
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + &
+& 4.d0*cc1_pre* &
+& (3.d0*epsilon21+6.d0*deleps2-3.d0*(epsilon31+epsilon42)*deleps2**2.d0*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon41-epsilon42-epsilon43)/40.d0
+
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) + &
+& 4.d0*cc1_pre* &
+& (6.d0-6.d0*(epsilon31+epsilon42)*deleps2*inv_epsilon32*inv_epsilon42)* &
+& (epsilon21+epsilon31+epsilon41)/40.d0
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) + &
+& 4.d0*cc1_pre* &
+& (6.d0-6.d0*(epsilon31+epsilon42)*deleps2*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon21+epsilon32+epsilon42)/40.d0
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) + &
+& 4.d0*cc1_pre* &
+& (6.d0-6.d0*(epsilon31+epsilon42)*deleps2*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon31-epsilon32+epsilon43)/40.d0
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) + &
+& 4.d0*cc1_pre* &
+& (6.d0-6.d0*(epsilon31+epsilon42)*deleps2*inv_epsilon32*inv_epsilon42)* &
+& (-epsilon41-epsilon42-epsilon43)/40.d0
+ end if
+
+ deleps1 = deleps1 + deltaene
+ deleps2 = deleps2 + deltaene
+ deleps3 = deleps3 - deltaene
+ deleps4 = deleps4 - deltaene
+ end do
+
+ eps = eps + (nn3-nn2)*deltaene
+ !
+ ! interval e3 < eps < e4
+ !
+ deleps4 = eigen_1tetra(4)-eps
+ cc_pre = volconst_mult*inv_epsilon41*inv_epsilon42*inv_epsilon43
+ invepsum = inv_epsilon41+inv_epsilon42+inv_epsilon43
+ dccde_pre = -3.d0*cc_pre
+ do ieps=nn3+1,nn4
+ cc = cc_pre * deleps4*deleps4*deleps4
+ cc_tmp = cc * deleps4
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + volconst_mult - cc_tmp*inv_epsilon41
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + volconst_mult - cc_tmp*inv_epsilon42
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + volconst_mult - cc_tmp*inv_epsilon43
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + volconst_mult - cc*4.d0 + cc_tmp*invepsum
+
+ dccde = dccde_pre * deleps4*deleps4
+ dccde_tmp = -dccde*deleps4 + cc
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) + dccde_tmp * inv_epsilon41
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) + dccde_tmp * inv_epsilon42
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) + dccde_tmp * inv_epsilon43
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) - dccde*4.d0 - dccde_tmp*invepsum
+
+ if (bcorr == 1) then
+ ! bxu, correction terms based on Bloechl's paper
+ ! The correction terms may cause the dtweightde become negative
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + &
+& 12.d0*cc_pre*deleps4*deleps4*(epsilon21+epsilon31+epsilon41)/40.d0
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + &
+& 12.d0*cc_pre*deleps4*deleps4*(-epsilon21+epsilon32+epsilon42)/40.d0
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + &
+& 12.d0*cc_pre*deleps4*deleps4*(-epsilon31-epsilon32+epsilon43)/40.d0
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + &
+& 12.d0*cc_pre*deleps4*deleps4*(-epsilon41-epsilon42-epsilon43)/40.d0
+
+ dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) - &
+& 24.d0*cc_pre*deleps4*(epsilon21+epsilon31+epsilon41)/40.d0
+ dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) - &
+& 24.d0*cc_pre*deleps4*(-epsilon21+epsilon32+epsilon42)/40.d0
+ dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) - &
+& 24.d0*cc_pre*deleps4*(-epsilon31-epsilon32+epsilon43)/40.d0
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) - &
+& 24.d0*cc_pre*deleps4*(-epsilon41-epsilon42-epsilon43)/40.d0
+ end if
+
+ deleps4 = deleps4 - deltaene
+ end do
+ eps = eps + (nn4-nn3)*deltaene
+ !
+ !
+ ! interval e4 < eps < enemax
+ !
+ do ieps=nn4+1,nene
+ tweight_tmp(ieps,1) = tweight_tmp(ieps,1) + volconst_mult
+ tweight_tmp(ieps,2) = tweight_tmp(ieps,2) + volconst_mult
+ tweight_tmp(ieps,3) = tweight_tmp(ieps,3) + volconst_mult
+ tweight_tmp(ieps,4) = tweight_tmp(ieps,4) + volconst_mult
+ ! dtweightde unchanged by this tetrahedron
+ end do
+
+ !
+ ! if we have a fully degenerate tetrahedron,
+ ! 1) the tweight is a Heaviside (step) function, which is correct above, but
+ ! 2) the dtweightde should contain a Dirac function: add a Gaussian here
+ !
+ if (epsilon41 < tol6) then
+
+ ! to ensure the gaussian will integrate properly:
+ ! WARNING: this smearing could be problematic if too large
+ ! and doesnt integrate well if its too small
+ gau_width = 10.0d0*deltaene
+ gau_width2 = 1.0 / gau_width / gau_width
+ gau_prefactor = volconst_mult / gau_width / sqrtpi
+ !
+ ! average position since bracket for epsilon41 is relatively large
+ cc = (eigen_1tetra(1)+eigen_1tetra(2)+eigen_1tetra(3)+eigen_1tetra(4))/4.d0
+ eps = enemin
+ do ieps=1,nene
+ tmp = eps - cc
+ gval = gau_prefactor*exp(-tmp*tmp*gau_width2)
+ ! MG TODO: I think this is not correct, because we have divided by 4 so
+ ! the other points should be accumulated as well.
+ ! There are however changes in the unit tests if I activate these lines...
+ !dtweightde_tmp(ieps,1) = dtweightde_tmp(ieps,1) + gval
+ !dtweightde_tmp(ieps,2) = dtweightde_tmp(ieps,2) + gval
+ !dtweightde_tmp(ieps,3) = dtweightde_tmp(ieps,3) + gval
+ dtweightde_tmp(ieps,4) = dtweightde_tmp(ieps,4) + gval
+ eps = eps + deltaene
+ end do
+ end if ! end degenerate tetrahedron if
+
+end subroutine get_onetetra_
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetra_get_onewk
+!! NAME
+!! tetra_get_onewk
+!!
+!! FUNCTION
+!! Calculate integration weights and their derivatives for a single k-point in the IBZ.
+!!
+!! INPUTS
+!! tetra=Object with tables for tetrahedron method.
+!! ik_ibz=Index of the k-point in the IBZ array
+!! bcorr=1 to include Blochl correction else 0.
+!! nene=number of energies for DOS
+!! nibz=number of irreducible kpoints
+!! eigen_ibz(nkibz)=eigenenergies for each k point
+!! enemin=minimal energy for DOS
+!! enemax=maximal energy for DOS
+!! max_occ=maximal occupation number (2 for nsppol=1, 1 for nsppol=2)
+!!
+!! OUTPUT
+!! weights(nene,2) = integration weights for
+!! Dirac delta (derivative of theta wrt energy) and Theta (Heaviside function)
+!! for a given (band, k-point, spin).
+!!
+!! SOURCE
+
+subroutine tetra_get_onewk(tetra,ik_ibz,bcorr,nene,nkibz,eig_ibz,enemin,enemax,max_occ,weights)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: ik_ibz,nene,nkibz,bcorr
+ type(t_tetrahedron), intent(in) :: tetra
+ real(dp) ,intent(in) :: enemin,enemax,max_occ
+!arrays
+ real(dp),intent(in) :: eig_ibz(nkibz)
+ real(dp),intent(out) :: weights(nene,2)
+
+!Local variables-------------------------------
+!scalars
+ integer :: itetra,ii
+!arrays
+ integer :: ind_ibz(4)
+ real(dp) :: tweight_tmp(nene,4),dtweightde_tmp(nene,4),eigen_1tetra(4)
+
+! *********************************************************************
+
+ weights = zero
+
+ ! For each tetrahedron
+ do itetra=1,tetra%ntetra
+
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ind_ibz(:) = tetra%tetra_full(:,1,itetra)
+ ! Cycle if this tetra does not contribute to this k-point.
+ if (all(ind_ibz /= ik_ibz)) cycle
+
+ ! Sort energies before calling get_onetetra_
+ eigen_1tetra(:) = eig_ibz(ind_ibz(:))
+ call sort_tetra(4, eigen_1tetra, ind_ibz, tol14)
+
+ call get_onetetra_(tetra, itetra, eigen_1tetra, enemin, enemax, max_occ, nene, bcorr, &
+ tweight_tmp, dtweightde_tmp)
+
+ ! Accumulate contributions to ik_ibz (there might be multiple vertexes that map onto ik_ibz)
+ do ii=1,4
+ if (ind_ibz(ii) == ik_ibz) then
+ weights(:,1) = weights(:,1) + dtweightde_tmp(:,ii)
+ weights(:,2) = weights(:,2) + tweight_tmp(:,ii)
+ end if
+ end do
+ end do ! itetra
+
+end subroutine tetra_get_onewk
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetra_get_onewk_wvals
+!! NAME
+!! tetra_get_onewk_wvals
+!!
+!! FUNCTION
+!! Calculate integration weights and their derivatives for a single k-point in the IBZ.
+!!
+!! INPUTS
+!! tetra=Object with tables for tetrahedron method.
+!! ik_ibz=Index of the k-point in the IBZ array
+!! bcorr=1 to include Blochl correction else 0.
+!! nw=number of energies in wvals
+!! nibz=number of irreducible kpoints
+!! wvals(nw)=Frequency points.
+!! eigen_ibz(nkibz)=eigenenergies for each k point
+!! [wtol]: If present, frequency points that differ by less that wtol are treated as equivalent.
+!! and the tetrahedron integration is performed only once per frequency point.
+!!
+!! OUTPUT
+!! weights(nw,2) = integration weights for
+!! Dirac delta (derivative of theta wrt energy) and Theta (Heaviside function)
+!! for a given (band, k-point, spin).
+!!
+!! SOURCE
+
+subroutine tetra_get_onewk_wvals(tetra, ik_ibz, bcorr, nw, wvals, nkibz, eig_ibz, weights, wtol)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: ik_ibz,nw,nkibz,bcorr
+ real(dp), optional, intent(in) :: wtol
+ type(t_tetrahedron), intent(in) :: tetra
+!arrays
+ real(dp),intent(in) :: wvals(nw)
+ real(dp),intent(in) :: eig_ibz(nkibz)
+ real(dp),intent(out) :: weights(nw, 2)
+
+!Local variables-------------------------------
+!scalars
+ !integer,save :: done = 0
+ integer,parameter :: nene=3
+ integer :: itetra,ii,jj,iw,ie
+ logical :: samew
+ real(dp),parameter :: max_occ1 = one
+ real(dp) :: enemin, enemax
+!arrays
+ integer :: ind_ibz(4)
+ real(dp) :: theta_tmp(nene,4), delta_tmp(nene,4), eigen_1tetra(4)
+
+! *********************************************************************
+
+ weights = zero
+
+ ! For each tetrahedron
+ do jj=1,tetra%ibz_tetra_count(ik_ibz)
+ itetra = tetra%ibz_tetra_mapping(ik_ibz,jj)
+
+ ! Here we need the original ordering to reference the correct irred kpoints
+ ind_ibz(:) = tetra%tetra_full(:,1,itetra)
+
+ ! Sort energies before calling get_onetetra_
+ eigen_1tetra(:) = eig_ibz(ind_ibz(:))
+ call sort_tetra(4, eigen_1tetra, ind_ibz, tol14)
+
+ do iw=1,nw
+ samew = .False.
+ if (present(wtol)) then
+ if (iw > 1) samew = abs(wvals(iw) - wvals(iw - 1)) < wtol
+ end if
+ if (.not. samew) then
+ enemin = wvals(iw) - 0.01; enemax = wvals(iw) + 0.01
+ ie = nene / 2 + 1
+ call get_onetetra_(tetra, itetra, eigen_1tetra, enemin, enemax, max_occ1, nene, bcorr, &
+ theta_tmp, delta_tmp)
+ end if
+
+ ! Accumulate contributions to ik_ibz (there might be multiple vertexes that map onto ik_ibz)
+ do ii=1,4
+ if (ind_ibz(ii) == ik_ibz) then
+ weights(iw, 1) = weights(iw, 1) + delta_tmp(ie, ii)
+ weights(iw, 2) = weights(iw, 2) + theta_tmp(ie, ii)
+ end if
+ end do
+ end do ! iw
+ end do ! itetra
+
+end subroutine tetra_get_onewk_wvals
+!!***
+
+!----------------------------------------------------------------------
+
+!!****f* m_tetrahedron/tetra_get_onetetra_wvals
+!! NAME
+!! tetra_get_onetetra_wvals
+!!
+!! FUNCTION
+!! Calculate integration weights and their derivatives for a single k-point in the IBZ.
+!!
+!! INPUTS
+!! tetra=Object with tables for tetrahedron method.
+!! ik_ibz=Index of the k-point in the IBZ array
+!! bcorr=1 to include Blochl correction else 0.
+!! nw=number of energies in wvals
+!! nibz=number of irreducible kpoints
+!! wvals(nw)=Frequency points.
+!! eigen_ibz(nkibz)=eigenenergies for each k point
+!! [wtol]: If present, frequency points that differ by less that wtol are treated as equivalent.
+!! and the tetrahedron integration is performed only once per frequency point.
+!!
+!! OUTPUT
+!! weights(nw,2) = integration weights for
+!! Dirac delta (derivative of theta wrt energy) and Theta (Heaviside function)
+!! for a given (band, k-point, spin).
+!!
+!! SOURCE
+
+subroutine tetra_get_onetetra_wvals(tetra, itetra, eigen_1tetra, bcorr, nw, wvals, weights, wtol)
+
+!Arguments ------------------------------------
+!scalars
+ integer,intent(in) :: nw,bcorr
+ real(dp), optional, intent(in) :: wtol
+ type(t_tetrahedron), intent(in) :: tetra
+!arrays
+ real(dp),intent(in) :: wvals(nw)
+ real(dp),intent(out) :: weights(nw, 2, 4)
+
+!Local variables-------------------------------
+!scalars
+ !integer,save :: done = 0
+ integer,parameter :: nene3=3
+ integer :: itetra,ii,idx,iw,ie
+ integer :: ind(4)
+ logical :: samew
+ real(dp),parameter :: max_occ1 = one
+ real(dp) :: enemin, enemax
+!arrays
+ real(dp) :: theta_tmp(nene3,4), delta_tmp(nene3,4), eigen_1tetra(4)
+
+! *********************************************************************
+
+ ind = [1,2,3,4]
+ call sort_tetra(4, eigen_1tetra, ind, tol14)
+ weights = 0
+
+ !for all the frequencies
+ do iw=1,nw
+ samew = .False.
+ if (present(wtol)) then
+ if (iw > 1) samew = abs(wvals(iw) - wvals(iw - 1)) < wtol
+ end if
+ if (.not. samew) then
+ enemin = wvals(iw) - 0.01
+ enemax = wvals(iw) + 0.01
+ ie = nene3 / 2 + 1
+ call get_onetetra_(tetra, itetra, eigen_1tetra, enemin, enemax, max_occ1, nene3, bcorr, &
+ theta_tmp, delta_tmp)
+ end if
+
+ ! Accumulate contributions to ik_ibz (there might be multiple vertexes that map onto ik_ibz)
+ do ii=1,4
+ idx = ind(ii)
+ weights(iw, 1, idx) = weights(iw, 1, idx) + delta_tmp(ie, ii)
+ weights(iw, 2, idx) = weights(iw, 2, idx) + theta_tmp(ie, ii)
+ end do
+ end do !iw
+
+end subroutine tetra_get_onetetra_wvals
+!!***
+
+end module m_tetrahedron
+!!***
diff --git a/GX-PAW/common/src/17_libtetra_ext/m_tetrahedron.o b/GX-PAW/common/src/17_libtetra_ext/m_tetrahedron.o
new file mode 100644
index 00000000..2c61db84
Binary files /dev/null and b/GX-PAW/common/src/17_libtetra_ext/m_tetrahedron.o differ
diff --git a/GX-PAW/common/src/17_minimax/Makefile b/GX-PAW/common/src/17_minimax/Makefile
new file mode 100644
index 00000000..3e44ce97
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/Makefile
@@ -0,0 +1,1481 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/17_minimax/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/17_minimax
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_minimax_a_AR = $(AR) $(ARFLAGS)
+lib17_minimax_a_LIBADD =
+am__objects_1 = minimax_grids.$(OBJEXT) minimax_omega.$(OBJEXT) \
+ minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+am_lib17_minimax_a_OBJECTS = $(am__objects_1)
+lib17_minimax_a_OBJECTS = $(am_lib17_minimax_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_minimax_a_SOURCES)
+DIST_SOURCES = $(lib17_minimax_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_minimax
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_minimax
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave \
+ -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+ \
+ -I/opt/local/include \
+
+
+
+# Regular source files
+lib17_minimax_srcs = \
+ gx_common.h \
+ minimax_grids.F90 \
+ minimax_omega.F90 \
+ minimax_tau.F90 \
+ minimax_utils.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_minimax.a
+lib17_minimax_a_SOURCES = $(lib17_minimax_srcs)
+
+# Dependencies (inside the directory) of directory 17_minimax
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = minimax_grids_cpp.f90 minimax_omega_cpp.f90 \
+ minimax_tau_cpp.f90 minimax_utils_cpp.f90 \
+ minimax_grids.$(MODEXT) minimax_omega.$(MODEXT) \
+ minimax_tau.$(MODEXT) minimax_utils.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_minimax/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_minimax/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_minimax.a: $(lib17_minimax_a_OBJECTS) $(lib17_minimax_a_DEPENDENCIES) $(EXTRA_lib17_minimax_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_minimax.a
+ $(AM_V_AR)$(lib17_minimax_a_AR) lib17_minimax.a $(lib17_minimax_a_OBJECTS) $(lib17_minimax_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_minimax.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+minimax_grids.$(OBJEXT): minimax_omega.$(OBJEXT) minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+
+minimax_omega.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+minimax_tau.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_minimax/Makefile.am b/GX-PAW/common/src/17_minimax/Makefile.am
new file mode 100644
index 00000000..8a99caf3
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/Makefile.am
@@ -0,0 +1,69 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_minimax@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_minimax_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_linalg_cppflags@ \
+ @sd_linalg_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib17_minimax_srcs = \
+ gx_common.h \
+ minimax_grids.F90 \
+ minimax_omega.F90 \
+ minimax_tau.F90 \
+ minimax_utils.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib17_minimax.a
+
+lib17_minimax_a_SOURCES= $(lib17_minimax_srcs)
+
+CLEANFILES = \
+ minimax_grids_cpp.f90 \
+ minimax_omega_cpp.f90 \
+ minimax_tau_cpp.f90 \
+ minimax_utils_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 17_minimax
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ minimax_grids.$(MODEXT) \
+ minimax_omega.$(MODEXT) \
+ minimax_tau.$(MODEXT) \
+ minimax_utils.$(MODEXT)
+
+minimax_grids.$(OBJEXT): minimax_omega.$(OBJEXT) minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+
+minimax_omega.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+minimax_tau.$(OBJEXT): minimax_utils.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_minimax/Makefile.in b/GX-PAW/common/src/17_minimax/Makefile.in
new file mode 100644
index 00000000..31d80bb0
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/Makefile.in
@@ -0,0 +1,1481 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/17_minimax
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_minimax_a_AR = $(AR) $(ARFLAGS)
+lib17_minimax_a_LIBADD =
+am__objects_1 = minimax_grids.$(OBJEXT) minimax_omega.$(OBJEXT) \
+ minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+am_lib17_minimax_a_OBJECTS = $(am__objects_1)
+lib17_minimax_a_OBJECTS = $(am_lib17_minimax_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_minimax_a_SOURCES)
+DIST_SOURCES = $(lib17_minimax_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_minimax@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_minimax_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @sd_linalg_cppflags@ \
+ @sd_linalg_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib17_minimax_srcs = \
+ gx_common.h \
+ minimax_grids.F90 \
+ minimax_omega.F90 \
+ minimax_tau.F90 \
+ minimax_utils.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_minimax.a
+lib17_minimax_a_SOURCES = $(lib17_minimax_srcs)
+
+# Dependencies (inside the directory) of directory 17_minimax
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = minimax_grids_cpp.f90 minimax_omega_cpp.f90 \
+ minimax_tau_cpp.f90 minimax_utils_cpp.f90 \
+ minimax_grids.$(MODEXT) minimax_omega.$(MODEXT) \
+ minimax_tau.$(MODEXT) minimax_utils.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_minimax/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_minimax/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_minimax.a: $(lib17_minimax_a_OBJECTS) $(lib17_minimax_a_DEPENDENCIES) $(EXTRA_lib17_minimax_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_minimax.a
+ $(AM_V_AR)$(lib17_minimax_a_AR) lib17_minimax.a $(lib17_minimax_a_OBJECTS) $(lib17_minimax_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_minimax.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+minimax_grids.$(OBJEXT): minimax_omega.$(OBJEXT) minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+
+minimax_omega.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+minimax_tau.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_minimax/README.md b/GX-PAW/common/src/17_minimax/README.md
new file mode 100644
index 00000000..405e4759
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/README.md
@@ -0,0 +1,6 @@
+
+This directory contains Fortran routines and include files taken
+from the [GreenX library](https://github.com/nomad-coe/greenX),
+in particular the files located in the GX-TimeFrequency directory.
+
+It should be relatively easy to keep the local copy in synch with the official one provide by the Green-X library.
diff --git a/GX-PAW/common/src/17_minimax/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/17_minimax/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..a1693a40
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/17_minimax/abinit.dep b/GX-PAW/common/src/17_minimax/abinit.dep
new file mode 100644
index 00000000..dac67b4b
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/abinit.dep
@@ -0,0 +1,17 @@
+# Dependencies (inside the directory) of directory 17_minimax
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ minimax_grids.$(MODEXT) \
+ minimax_omega.$(MODEXT) \
+ minimax_tau.$(MODEXT) \
+ minimax_utils.$(MODEXT)
+
+minimax_grids.$(OBJEXT): minimax_omega.$(OBJEXT) minimax_tau.$(OBJEXT) minimax_utils.$(OBJEXT)
+
+minimax_omega.$(OBJEXT): minimax_utils.$(OBJEXT)
+
+minimax_tau.$(OBJEXT): minimax_utils.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_minimax/abinit.dir b/GX-PAW/common/src/17_minimax/abinit.dir
new file mode 100644
index 00000000..7567a0cf
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 17_minimax
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs', '16_hideleave', '17_minimax']
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_minimax/abinit.src b/GX-PAW/common/src/17_minimax/abinit.src
new file mode 100644
index 00000000..0c6a8c23
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/abinit.src
@@ -0,0 +1,29 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 67_recursion library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "gx_common.h",
+ "minimax_grids.F90",
+ "minimax_omega.F90",
+ "minimax_tau.F90",
+ "minimax_utils.F90",
+]
+
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
+# This is important to avoid numerous conflicts at merge time. Thank you very much. Xavier.
diff --git a/GX-PAW/common/src/17_minimax/gx_common.h b/GX-PAW/common/src/17_minimax/gx_common.h
new file mode 100644
index 00000000..4cf35fce
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/gx_common.h
@@ -0,0 +1,14 @@
+! **************************************************************************************************
+! Copyright (C) 2020-2023 Green-X library
+! This file is distributed under the terms of the APACHE2 License.
+!
+! **************************************************************************************************
+/*
+#ifdef HAVE_FC_LONG_LINES
+#define _REGISTER_EXC(msg) call register_exc(msg, filename=__FILE__, lineno=__LINE__)
+#else
+#define _REGISTER_EXC(msg) call register_exc(msg)
+#endif
+*/
+
+#define _REGISTER_EXC(msg) ABI_ERROR(msg)
diff --git a/GX-PAW/common/src/17_minimax/lib17_minimax.a b/GX-PAW/common/src/17_minimax/lib17_minimax.a
new file mode 100644
index 00000000..3c21f778
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/lib17_minimax.a differ
diff --git a/GX-PAW/common/src/17_minimax/minimax_grids.F90 b/GX-PAW/common/src/17_minimax/minimax_grids.F90
new file mode 100644
index 00000000..acd3f7f8
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/minimax_grids.F90
@@ -0,0 +1,545 @@
+! **************************************************************************************************
+! Copyright (C) 2020-2023 Green-X library
+! This file is distributed under the terms of the APACHE2 License.
+!
+! **************************************************************************************************
+!> \brief Routines to calculate frequency and time grids (integration points and weights)
+!> for correlation methods as well as weights for the inhomogeneous cosine/sine transform.
+!>
+!> NB: When dealing with runtime exceptions, we set ierr to a non-zero value and return immediately
+! to the caller so we don't need to goto to a cleanup section at the end of the procedure.
+! Assume -std=f2008: i.e. allocatable arrays are automatically deallocated when going out of scope.
+!> reference: [https://doi.org/10.1021/ct5001268](https://doi.org/10.1021/ct5001268)
+!> reference: [https://doi.org/10.1103/PhysRevB.94.165109](https://doi.org/10.1103/PhysRevB.94.165109)
+! **************************************************************************************************
+
+module minimax_grids
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "abi_common.h"
+
+#include "gx_common.h"
+ use defs_basis, only: dp, pi
+ use m_errors
+ !use kinds, only: dp
+ !use error_handling, only: register_exc
+ !use constants, only: pi
+ use minimax_tau, only: get_points_weights_tau
+ use minimax_omega, only: get_points_weights_omega
+ use minimax_utils, only: cosine_wt, cosine_tw, sine_tw
+ !use lapack_interfaces, only: dgemm, dgesdd
+
+ implicit none
+
+ private
+
+ !> Main entry point for client code.
+ public :: gx_minimax_grid, gx_minimax_grid_frequency
+
+contains
+
+ !> \brief Compute minimax grid for GW calculation on imaginary time/frequency domain.
+ !! @param[in] num_points: Number of mesh points.
+ !! @param[in] e_min: Minimum transition energy. Arbitrary units as we only need e_max/e_min
+ !! @param[in] e_max: Maximum transition energy.
+ !! @param[out] tau_points: imaginary time grid points
+ !! @param[out] tau_weights: weights for imaginary time grid points weights
+ !! @param[out] omega_points: imaginary frequency grid points
+ !! @param[out] omega_weights: weights for imaginary frequency grid points
+ !! @param[out] cosft_wt: weights for tau -> omega cosine transform. cos(w*t) factor is included.
+ !! @param[out] cosft_tw: weights for omega -> tau cosine transform. cos(w*t) factor is included.
+ !! @param[out] sinft_wt: weights for tau -> omega sine transform. sin(w*t) factor is included.
+ !! @param[out] max_errors: Max error for the three kind of transforms (same order as previous args)
+ !! @param[out] cosft_duality_error. Max_{ij} |AB - I| where A and B are the cosft_wt and cosft_tw matrices.
+ !! @param[out] ierr: Exit status
+ !! @param[in] bare_cos_sin_weights: whether the cosine and sine weights are multiplied by cos and sin term, optional
+ subroutine gx_minimax_grid(num_points, e_min, e_max, &
+ tau_points, tau_weights, omega_points, omega_weights, &
+ cosft_wt, cosft_tw, sinft_wt, &
+ max_errors, cosft_duality_error, ierr, bare_cos_sin_weights, regterm)
+
+ integer, intent(in) :: num_points
+ real(kind=dp), intent(in) :: e_min, e_max
+ real(kind=dp), allocatable, dimension(:), &
+ intent(out) :: tau_points, tau_weights
+ real(kind=dp), allocatable, dimension(:), &
+ intent(out) :: omega_points, omega_weights
+ real(kind=dp), allocatable, dimension(:, :), &
+ intent(out) :: cosft_wt, cosft_tw, sinft_wt
+ real(kind=dp), intent(out) :: max_errors(3), cosft_duality_error
+ logical, intent(in), optional :: bare_cos_sin_weights
+ integer, intent(out) :: ierr
+ real(kind=dp),optional,intent(in) :: regterm
+
+ ! Internal variables
+ logical :: my_bare_cos_sin_weights
+ integer, parameter :: cos_t_to_cos_w = 1
+ integer, parameter :: cos_w_to_cos_t = 2
+ integer, parameter :: sin_t_to_sin_w = 3
+ integer :: i_point, j_point
+ real(kind=dp) :: e_range, scaling, regterm__
+ real(kind=dp), dimension(:), allocatable :: x_tw
+ real(kind=dp), dimension(:, :), allocatable :: mat
+ real(kind=dp), dimension(:, :), allocatable :: tmp_cosft_wt, tmp_cosft_tw
+
+ my_bare_cos_sin_weights = .false.
+ if (present(bare_cos_sin_weights)) then
+ my_bare_cos_sin_weights = bare_cos_sin_weights
+ endif
+
+ regterm__ = 0.0_dp; if (present(regterm)) regterm__ = regterm
+
+ ! Begin work
+ e_range = e_max/e_min
+ ierr = 0
+
+ ! Allocations
+ allocate (x_tw(2*num_points))
+ if (.not. allocated(omega_points)) then
+ allocate (omega_points(num_points))
+ end if
+ if (.not. allocated(omega_weights)) then
+ allocate (omega_weights(num_points))
+ end if
+ if (.not. allocated(tau_points)) then
+ allocate (tau_points(num_points))
+ end if
+ if (.not. allocated(tau_weights)) then
+ allocate (tau_weights(num_points))
+ end if
+
+ ! Get the frequency grid points and weights
+ call get_points_weights_omega(num_points, e_range, x_tw, ierr)
+ if (ierr /= 0) return
+
+ ! Scale the frequency grid points and weights from [1,R] to [e_min,e_max]
+ ! Note: the frequency grid points and weights include a factor of two
+ scaling = e_min
+ omega_points(:) = x_tw(1: num_points) *scaling
+ omega_weights(:) = x_tw(num_points+1: 2* num_points) *scaling
+
+ ! Get the time grid points and weights
+ call get_points_weights_tau(num_points, e_range, x_tw, ierr)
+ if (ierr /= 0) return
+
+ ! Scale the time grid points and weights from [1,R] to [e_min,e_max]
+ scaling = 2.0_dp *e_min
+ tau_points(:) = x_tw(1:num_points) / scaling
+ tau_weights(:) = x_tw(num_points+1:2*num_points) / scaling
+
+ allocate (cosft_wt(num_points, num_points))
+ allocate (cosft_tw(num_points, num_points))
+ allocate (sinft_wt(num_points, num_points))
+ allocate (tmp_cosft_wt(num_points, num_points))
+ allocate (tmp_cosft_tw(num_points, num_points))
+
+ ! get the weights for the cosine transform W^c(it) -> W^c(iw)
+ call get_transformation_weights(num_points, tau_points, omega_points, cosft_wt, e_min, e_max, &
+ max_errors(1), cos_t_to_cos_w, regterm__, ierr)
+ if (ierr /= 0) return
+
+ ! get the weights for the cosine transform W^c(iw) -> W^c(it)
+ call get_transformation_weights(num_points, tau_points, omega_points, cosft_tw, e_min, e_max, &
+ max_errors(2), cos_w_to_cos_t, regterm__, ierr)
+ if (ierr /= 0) return
+
+ ! get the weights for the sine transform Sigma^sin(it) -> Sigma^sin(iw) (PRB 94, 165109 (2016), Eq. 71)
+ call get_transformation_weights(num_points, tau_points, omega_points, sinft_wt, e_min, e_max, &
+ max_errors(3), sin_t_to_sin_w, regterm__, ierr)
+ if (ierr /= 0) return
+
+ ! Compute the actual weights used for the inhomogeneous cosine/ FT and check whether
+ ! the two matrices for the forward/backward transform are the inverse of each other.
+ if(.not.my_bare_cos_sin_weights) then
+ do j_point = 1, num_points
+ do i_point = 1, num_points
+ cosft_wt(j_point, i_point) = cosft_wt(j_point, i_point)*cos(tau_points(i_point)*omega_points(j_point))
+ cosft_tw(i_point, j_point) = cosft_tw(i_point, j_point)*cos(tau_points(i_point)*omega_points(j_point))
+ sinft_wt(j_point, i_point) = sinft_wt(j_point, i_point)*sin(tau_points(i_point)*omega_points(j_point))
+ end do
+ end do
+ else
+ do j_point = 1, num_points
+ do i_point = 1, num_points
+ tmp_cosft_wt(j_point, i_point) = cosft_wt(j_point, i_point)*cos(tau_points(i_point)*omega_points(j_point))
+ tmp_cosft_tw(i_point, j_point) = cosft_tw(i_point, j_point)*cos(tau_points(i_point)*omega_points(j_point))
+ end do
+ end do
+ end if
+
+ allocate (mat(num_points, num_points))
+ if(.not.my_bare_cos_sin_weights) then
+ mat(:,:) = matmul(cosft_wt, cosft_tw)
+ else
+ mat(:,:) = matmul(tmp_cosft_wt, tmp_cosft_tw)
+ endif
+
+ do i_point = 1, num_points
+ mat(i_point, i_point) = mat(i_point, i_point) - 1.0_dp
+ end do
+ cosft_duality_error = maxval(abs(mat))
+
+ deallocate (mat)
+ deallocate (x_tw)
+ deallocate (tmp_cosft_wt,tmp_cosft_tw)
+
+ end subroutine gx_minimax_grid
+
+ !> \brief Retrieves the frequency grid for a canonical GW/RPA calculation
+ !! @param[in] num_points: Number of mesh points.
+ !! @param[in] e_min: Minimum transition energy. Arbitrary units as we only need e_max/e_min
+ !! @param[in] e_max: Maximum transition energy.
+ !! @param[out] omega_points: imaginary frequency grid points
+ !! @param[out] omega_weights: weights for imaginary frequency grid points
+ !! @param[out] ierr: Exit status
+ subroutine gx_minimax_grid_frequency (num_points, e_min, e_max, omega_points, omega_weights, ierr)
+ integer, intent(in) :: num_points
+ real(kind=dp), intent(in) :: e_min, e_max
+ real(kind=dp), allocatable, dimension(:), &
+ intent(out) :: omega_points(:), omega_weights(:)
+ integer, intent(out) :: ierr
+
+ ! Internal variables
+ real(kind=dp) :: e_range, scaling
+ real(kind=dp), dimension(:), allocatable :: x_tw
+
+ ! Begin work
+ e_range = e_max/e_min
+ ierr = 0
+
+ ! Allocations
+ allocate (x_tw(2*num_points))
+ if (.not. allocated(omega_points)) then
+ allocate (omega_points(num_points))
+ end if
+ if (.not. allocated(omega_weights)) then
+ allocate (omega_weights(num_points))
+ end if
+
+ ! Get the frequency grid points and weights
+ call get_points_weights_omega(num_points, e_range, x_tw, ierr)
+ if (ierr /= 0) return
+
+ ! Scale the frequency grid points and weights from [1,R] to [e_min,e_max]
+ ! Note: the frequency grid points and weights include a factor of two
+ scaling = e_min
+ omega_points(:) = x_tw(1: num_points) *scaling
+ omega_weights(:) = x_tw(num_points+1: 2* num_points) *scaling
+
+ deallocate (x_tw)
+
+ end subroutine gx_minimax_grid_frequency
+
+
+ !> \brief Get the weights eiter for the cosine/sin transformation for tau to omega or viceversa
+ !! @param[in] num_points: Number of mesh points.
+ !! @param[in] tau_points: imaginary time grid points
+ !! @param[in] omega_points: imaginary frequency grid points
+ !! @param[inout] weights: corresponding tranformation weights
+ !! @param[in] e_min: Minimum transition energy.
+ !! @param[in] e_max: Maximum transition energy.
+ !! @param[inout] max_error: Max error for the transform
+ !! @param[in] transformation type : 1 the cosine transform cos(it) -> cos(iw)
+ !! : 2 the cosine transform cos(iw) -> cos(it)
+ !! : 3 the sine transform sin(it) -> sin(iw)
+ !! @param[in] ierr: exit status
+ subroutine get_transformation_weights(num_points, tau_points, omega_points, weights, e_min, e_max, &
+ max_error, transformation_type, regterm, ierr)
+
+ integer, intent(in) :: num_points
+ real(kind=dp), allocatable, dimension(:), &
+ intent(in) :: tau_points
+ real(kind=dp), allocatable, dimension(:), &
+ intent(in) :: omega_points
+ real(kind=dp), allocatable, dimension(:, :), &
+ intent(inout) :: weights
+ real(kind=dp), intent(in) :: e_min, e_max
+ real(kind=dp), intent(inout) :: max_error
+ integer, intent(in) :: transformation_type
+ integer, intent(out) :: ierr
+ real(kind=dp),intent(in) :: regterm
+
+ ! Internal variables
+ integer :: i_node, i_point, j_point, k_point, &
+ num_x_nodes
+ integer, parameter :: nodes_factor = 200
+ real(kind=dp) :: current_point, x_factor
+ real(kind=dp), allocatable, dimension(:) :: weights_work, x_mu, psi
+ real(kind=dp), allocatable, dimension(:, :) :: mat_A
+
+ integer :: lwork
+ integer, allocatable, dimension(:) :: iwork
+ real(kind=dp), allocatable, dimension(:) :: vec_S, vec_UT_psi, work
+ real(kind=dp), allocatable, dimension(:, :) :: mat_U, mat_VT, mat_VT_s
+
+ ! Begin work
+ ierr = 0
+
+ allocate (weights_work(num_points), source=0.0_dp)
+
+ ! compute the number of x nodes per magnitude points per 10-interval
+ num_x_nodes = (int(log10(e_max/e_min)) + 1)*nodes_factor
+
+ ! make sure that the number of x nodes are at least as many integration points
+ num_x_nodes = max(num_x_nodes, num_points)
+
+ allocate (x_mu(num_x_nodes), source=0.0_dp)
+ allocate (psi(num_x_nodes), source=0.0_dp)
+
+ ! Allocations for the BLAS routines
+ ! double the value nessary for 'A' to achieve good performance
+ lwork = 8*num_points*num_points + 12*num_points + 2*num_x_nodes
+ allocate (iwork(8*num_points), source=0)
+ allocate (work(lwork), source=0.0_dp)
+
+ allocate (mat_A(num_x_nodes, num_points), source=0.0_dp)
+ allocate (mat_U(num_x_nodes, num_x_nodes), source=0.0_dp)
+ allocate (mat_VT(num_x_nodes, num_points), source=0.0_dp)
+ allocate (mat_VT_s(num_points, num_x_nodes), source=0.0_dp)
+ allocate (vec_S(num_points), source=0.0_dp)
+ allocate (vec_UT_psi(num_x_nodes), source=0.0_dp)
+
+ ! set the x-mu logarithmically in the interval [e_min,e_max]
+ x_factor = (e_max/e_min)**(1.0_dp/(real(num_x_nodes, kind=dp) - 1.0_dp))
+ do i_node = 1, num_x_nodes
+ x_mu(i_node) = e_min*x_factor**(i_node - 1)
+ end do
+
+ current_point = 0.0_dp
+ max_error = 0.0_dp
+
+ ! loop over all grid points
+ do i_point = 1, num_points
+ ! calculate psi and mat_A
+ call calculate_psi_and_mat_A(num_points, tau_points, omega_points, num_x_nodes, x_mu, psi, &
+ mat_A, i_point, current_point, transformation_type)
+
+ ! Singular value decomposition of mat_A = U*Sigma*V^T
+ call dgesdd('A', num_x_nodes, num_points, mat_A, num_x_nodes, vec_S, mat_U, num_x_nodes, &
+ mat_VT, num_x_nodes, work, lwork, iwork, ierr)
+
+ if (ierr /= 0) then
+ _REGISTER_EXC("DGESDD returned ierr != 0")
+ return
+ end if
+
+ ! integration weights = (V Sigma^-1 U^T)*psi
+
+ ! 1) V * Sigma^-1
+ !regterm = 0.01_dp
+ do j_point = 1, num_points
+ do k_point = 1, num_points
+ if (regterm > tiny(regterm)) then
+ mat_VT_s(k_point, j_point) = mat_VT(j_point, k_point)*vec_S(j_point) / &
+ (vec_S(j_point)**2+regterm**2)
+ else
+ mat_VT_s(k_point, j_point) = mat_VT(j_point, k_point) / vec_S(j_point)
+ end if
+ end do ! k_point
+ end do ! j_point
+
+ ! 2) (U^T)*psi
+ call dgemm('T', 'N', num_x_nodes, 1, num_x_nodes, 1.0_dp, mat_U, num_x_nodes, psi, num_x_nodes, &
+ 0.0_dp, vec_UT_psi, num_x_nodes)
+
+ ! 3) (V*Sigma^-1) * (U^T*psi)
+ call dgemm('N', 'N', num_points, 1, num_x_nodes, 1.0_dp, mat_VT_s, num_points, vec_UT_psi, &
+ num_x_nodes, 0.0_dp, weights_work, num_points)
+
+ weights(i_point, :) = weights_work(:)
+
+ ! calculate the maximum error of the fitting
+ call calculate_max_error(num_points, tau_points, omega_points, weights_work, num_x_nodes, x_mu, &
+ psi, current_point, max_error, transformation_type)
+ end do ! i_point
+
+ deallocate (x_mu, psi, mat_A, weights_work, vec_S, mat_U, mat_VT, work, iwork, mat_VT_s, vec_UT_psi)
+
+ end subroutine get_transformation_weights
+
+ !> \brief Calculate the auxiliary matrix for cosine/sin transformation for tau to omega or viceversa
+ !! @param[in] num_points: Number of mesh points.
+ !! @param[in] tau_points: imaginary time grid points
+ !! @param[in] omega_points: imaginary frequency grid points
+ !! @param[in] num_x_nodes: Number of node in the interval [e_min,e_max]
+ !! @param[in] x_mu : Transition energy (nodes in the interval [e_min,e_max])
+ !! @param[inout] psi: corresponding auxiliary function (see transformation type definition)
+ !! @param[inout] mat_A: auxiliary matrix (see transformation type definition)
+ !! @param[in] i_point: pointer for the current grid point
+ !! @param[inout] current_point: current grid point ether omega(i_point) or tau_(i_point)
+ !! @param[in] transformation type :
+ !! (1) the cosine transform cos(it) -> cos(iw): psi(omega,x), mat_A = cos(omega*tau)*psi(tau,x)
+ !! (2) the cosine transform cos(iw) -> cos(it): psi(tau,x) , mat_A = cos(omega*tau)*psi(omega,x)
+ !! (3) the sine transform sin(it) -> sin(iw): psi(omega,x), mat_A = sin(omega*tau)*psi(tau,x)
+ subroutine calculate_psi_and_mat_A(num_points, tau_points, omega_points, num_x_nodes, x_mu, psi, &
+ mat_A, i_point, current_point, transformation_type)
+
+ integer, intent(in) :: num_points, num_x_nodes, i_point
+ real(kind=dp), allocatable, dimension(:), &
+ intent(in) :: tau_points, omega_points, x_mu
+ real(kind=dp), allocatable, dimension(:), &
+ intent(inout) :: psi
+ real(kind=dp), allocatable, dimension(:, :), &
+ intent(inout) :: mat_A
+ real(kind=dp), intent(inout) :: current_point
+ integer, intent(in) :: transformation_type
+
+ ! Internal variables
+ integer :: i_node, j_point
+ real(kind=dp) :: tau, omega
+
+ ! Begin work
+
+ ! the cosine transform cos(it) -> cos(iw)
+ if (transformation_type == cosine_tw) then
+ omega = omega_points(i_point)
+ current_point = omega
+
+ ! psi(omega_k,x) = 2x/(x^2+omega_k^2)
+ do i_node = 1, num_x_nodes
+ psi(i_node) = 2.0_dp*x_mu(i_node)/((x_mu(i_node))**2 + omega**2)
+ end do
+
+ ! mat_A = cos(omega_k * tau) psi(tau,x)
+ do j_point = 1, num_points
+ tau = tau_points(j_point)
+ do i_node = 1, num_x_nodes
+ mat_A(i_node, j_point) = cos(omega*tau)*exp(-x_mu(i_node)*tau)
+ end do
+ end do
+
+ ! the cosine transform cos(iw) -> cos(it)
+ else if (transformation_type == cosine_wt) then
+ tau = tau_points(i_point)
+ current_point = tau
+
+ ! psi(tau_k,x) = =exp(-x*|tau_k|)
+ do i_node = 1, num_x_nodes
+ psi(i_node) = exp(-x_mu(i_node)*tau)
+ end do
+
+ ! mat_A = cos(tau_k,omega) psi(omega,x)
+ do j_point = 1, num_points
+ omega = omega_points(j_point)
+ do i_node = 1, num_x_nodes
+ mat_A(i_node, j_point) = cos(tau*omega)*2.0_dp*x_mu(i_node)/(x_mu(i_node)**2 + omega**2)
+ end do
+ end do
+
+ ! the sine transform sin(it) -> sin(iw)
+ else if (transformation_type == sine_tw) then
+ omega = omega_points(i_point)
+ current_point = omega
+
+ ! psi(omega_k,x) = 2*omega_k/(x^2+omega_k^2)
+ do i_node = 1, num_x_nodes
+ psi(i_node) = 2.0_dp*omega/(x_mu(i_node)**2 + omega**2)
+ end do
+
+ ! mat_A = sin(omega_k,tau)*phi(tau,x)
+ do j_point = 1, num_points
+ tau = tau_points(j_point)
+ do i_node = 1, num_x_nodes
+ mat_A(i_node, j_point) = sin(omega*tau)*exp(-x_mu(i_node)*tau)
+ end do
+ end do
+ end if
+
+ end subroutine calculate_psi_and_mat_A
+
+ !> /brief calculate the error of the fit function for the cosine/sin transformation for tau to omega or viceversa
+ !! @param[in] num_points: Number of mesh points.
+ !! @param[in] tau_points: imaginary time grid points
+ !! @param[in] omega_points: imaginary frequency grid points
+ !! @param[in] weights_work: work vector for the transformation weights
+ !! @param[in] num_x_nodes: Number of node in the interval [e_min,e_max]
+ !! @param[in] x_mu : Transition energy (nodes in the interval [e_min,e_max])
+ !! @param[in] psi: corresponding auxiliary function (see transformation type definition)
+ !! @param[in] current_point: current grid point ether omega(i_point) or tau_(i_point)
+ !! @param[out] max_error: Max error for the transform.
+ !! @param[in] transformation type : 1 fit function for the cosine transform cos(it) -> cos(iw), psi(omeaga,x)
+ !! : 2 fit function for the cosine transform cos(iw) -> cos(it), psi(tau,x)
+ !! : 3 fit function for the sine transform sin(it) -> sin(iw), psi(omega,x)
+ subroutine calculate_max_error(num_points, tau_points, omega_points, weights_work, num_x_nodes, x_mu, &
+ psi, current_point, max_error, transformation_type)
+
+ real(kind=dp), intent(out) :: max_error
+ real(kind=dp), intent(in) :: current_point
+ real(kind=dp), allocatable, dimension(:), &
+ intent(in) :: tau_points, omega_points, x_mu, psi, &
+ weights_work
+ integer, intent(in) :: num_points, num_x_nodes
+ integer, intent(in) :: transformation_type
+
+ ! Internal variables
+ integer :: i_node,i_point
+ real(kind=dp) :: func_val, func_val_temp, max_error_tmp, &
+ tau, omega, x_val
+
+ ! Begin work
+ max_error_tmp = 0.0_dp
+
+ ! the cosine transform cos(it) -> cos(iw)
+ if (transformation_type == cosine_tw) then
+ omega=current_point
+
+ do i_node = 1, num_x_nodes
+ func_val = 0.0_dp
+ ! calculate value of the fit function f(x) = f(x) + weights(omega)cos(omega*tau)psi(tau.x)
+ do i_point = 1, num_points
+ tau = tau_points(i_point)
+ func_val = func_val + weights_work(i_point)*cos(omega*tau)*exp(-x_mu(i_node)*tau)
+ end do
+
+ if (abs(psi(i_node) - func_val) > max_error_tmp) then
+ max_error_tmp = abs(psi(i_node) - func_val)
+ func_val_temp = func_val
+ end if
+ end do
+
+ ! the cosine transform cos(iw) -> cos(it)
+ else if (transformation_type == cosine_wt) then
+ tau = current_point
+
+ do i_node = 1, num_x_nodes
+ func_val = 0.0_dp
+ x_val=x_mu(i_node)
+ ! calculate value of the fit function f(x) = f(x) + weights(tau)cos(omega*tau)psi(omega.x)
+ do i_point = 1, num_points
+ omega = omega_points(i_point)
+ func_val = func_val + weights_work(i_point)*cos(tau*omega)*2.0_dp*x_val/(x_val**2 + omega**2)
+ end do
+
+ if (abs(psi(i_node) - func_val) > max_error_tmp) then
+ max_error_tmp = abs(psi(i_node) - func_val)
+ func_val_temp = func_val
+ end if
+ end do
+
+ ! the sine transform sin(it) -> sin(iw)
+ else if (transformation_type == sine_tw) then
+ omega = current_point
+
+ do i_node = 1, num_x_nodes
+ func_val = 0.0_dp
+ ! calculate value of the fit function f(x) = f(x) + weights(omega)sin(omega*tau)psi(tau.x)
+ do i_point = 1, num_points
+ tau = tau_points(i_point)
+ func_val = func_val + weights_work(i_point)*sin(omega*tau)*exp(-x_mu(i_node)*tau)
+ end do
+
+ if (abs(psi(i_node) - func_val) > max_error_tmp) then
+ max_error_tmp = abs(psi(i_node) - func_val)
+ func_val_temp = func_val
+ end if
+ end do
+ end if
+
+ if (max_error_tmp > max_error) then
+ max_error = max_error_tmp
+ end if
+
+ end subroutine calculate_max_error
+
+end module minimax_grids
diff --git a/GX-PAW/common/src/17_minimax/minimax_grids.o b/GX-PAW/common/src/17_minimax/minimax_grids.o
new file mode 100644
index 00000000..08f2f7b1
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/minimax_grids.o differ
diff --git a/GX-PAW/common/src/17_minimax/minimax_omega.F90 b/GX-PAW/common/src/17_minimax/minimax_omega.F90
new file mode 100644
index 00000000..f828ab59
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/minimax_omega.F90
@@ -0,0 +1,2240 @@
+! ***************************************************************************************************
+! Copyright (C) 2020-2023 Green-X library
+! This file is distributed under the terms of the APACHE2 License.
+!
+! ***************************************************************************************************
+!> \brief This module contains the tabulated minimax coefficients that approximate
+!> 1/x ~ 1/pi \sum_{i} w_i x^2/(x^2+a_i^2)^2 with x \in [1:rc]
+!> The arrays containing the coefficients and weights are stored in the `er_aw_aux` derived type.
+!> To extend this module, add the new entries to `omega_npoints_supported`, `energy_ranges_grids`,
+!> and fill the corresponding arrays in the derived type.
+!> reference: [https://doi.org/10.1021/ct5001268](https://doi.org/10.1021/ct5001268)
+!> reference: [https://doi.org/10.1103/PhysRevB.94.165109](https://doi.org/10.1103/PhysRevB.94.165109)
+! ***************************************************************************************************
+module minimax_omega
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "abi_common.h"
+#include "gx_common.h"
+ use defs_basis, only: dp
+ use m_errors
+ !use kinds, only: dp
+ !use error_handling, only: register_exc
+ use minimax_utils, only: er_aw_aux
+ implicit none
+
+ private
+
+ !> list with the number of points supported for the imag-time meshes
+ integer, parameter :: ngrids = 15
+ integer, parameter, public :: omega_npoints_supported(ngrids) = &
+ [6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
+ integer, parameter :: energy_ranges_grids(ngrids) = &
+ [13, 13, 15, 18, 21, 36, 37, 40, 40, 40, 19, 28, 28, 18, 7]
+
+ public :: get_points_weights_omega
+
+contains
+
+ !> \brief Stores the minimax coefficients for all supported grid sizes
+ !! @param[in] grid_size - grid size
+ !! @param[inout] aw - derived type of energy ranges and coefficients:weights
+ subroutine set_aw_array_omega(grid_size, aw)
+ integer, intent(in) :: grid_size
+ type(er_aw_aux), intent(inout) :: aw
+
+ select case(grid_size)
+ case(6)
+ aw%energy_range(:) = [1.5849_dp,2.5119_dp,3.9811_dp,6.3096_dp,10.0000_dp,15.8489_dp,25.1189_dp,39.8107_dp,63.0957_dp,&
+ 100.0000_dp,158.4893_dp,251.1886_dp,398.1072_dp]
+ aw%aw_erange_matrix(:,1) = [0.1655921867_dp,0.5209012738_dp,0.9601309570_dp,1.5943859351_dp,2.7306701362_dp,5.8749472842_dp,0.3350409678_dp,0.3850084475_dp,0.5102784088_dp,&
+ 0.8010367883_dp,1.6389781325_dp,6.1530434388_dp]
+ aw%aw_erange_matrix(:,2) = [0.1805946879_dp,0.5710657016_dp,1.0624914384_dp,1.7847101379_dp,3.0902608916_dp,6.7008049407_dp,0.3658827843_dp,0.4263996093_dp,0.5761737092_dp,&
+ 0.9174724599_dp,1.8850148010_dp,7.0551807646_dp]
+ aw%aw_erange_matrix(:,3) = [0.2107412898_dp,0.6758353424_dp,1.2899365007_dp,2.2366556977_dp,3.9937219129_dp,8.8543593569_dp,0.4284867076_dp,0.5184556747_dp,0.7378491813_dp,&
+ 1.2226010100_dp,2.5465173691_dp,9.4627147137_dp]
+ aw%aw_erange_matrix(:,4) = [0.2398913915_dp,0.7830273741_dp,1.5440300762_dp,2.7906304931_dp,5.1927614407_dp,11.8692704652_dp,0.4899249120_dp,0.6209200162_dp,0.9423639946_dp,&
+ 1.6456777707_dp,3.5063104284_dp,12.9449494205_dp]
+ aw%aw_erange_matrix(:,5) = [0.2673892983_dp,0.8903650428_dp,1.8225708515_dp,3.4589903359_dp,6.7690150328_dp,16.0814892391_dp,0.5487973414_dp,0.7321630617_dp,1.1933651064_dp,&
+ 2.2183473080_dp,4.8878751777_dp,17.9923442029_dp]
+ aw%aw_erange_matrix(:,6) = [0.2928309791_dp,0.9958642183_dp,2.1219318882_dp,4.2497817154_dp,8.8133486370_dp,21.9427374532_dp,0.6041411724_dp,0.8499697001_dp,1.4915299424_dp,&
+ 2.9717516759_dp,6.8532141469_dp,25.3187548500_dp]
+ aw%aw_erange_matrix(:,7) = [0.3159877346_dp,1.0977576875_dp,2.4369534500_dp,5.1642537452_dp,11.4185878867_dp,30.0488928270_dp,0.6553089559_dp,0.9716623387_dp,1.8340079795_dp,&
+ 3.9316976361_dp,9.6037639984_dp,35.9602691606_dp]
+ aw%aw_erange_matrix(:,8) = [0.3367465699_dp,1.1944388989_dp,2.7609613838_dp,6.1944061883_dp,14.6663452364_dp,41.1631772657_dp,0.7018712769_dp,1.0942251613_dp,2.2141179142_dp,&
+ 5.1124612568_dp,13.3702621560_dp,51.4089921368_dp]
+ aw%aw_erange_matrix(:,9) = [0.3550728269_dp,1.2844528796_dp,3.0859658208_dp,7.3210405275_dp,18.6070113241_dp,56.2194168750_dp,0.7435582547_dp,1.2144539917_dp,2.6213742311_dp,&
+ 6.5100771106_dp,18.3838109224_dp,73.7809389606_dp]
+ aw%aw_erange_matrix(:,10) = [0.3709877153_dp,1.3665230999_dp,3.4030538180_dp,8.5128437088_dp,23.2337294933_dp,76.2759655370_dp,0.7802273935_dp,1.3291370683_dp,3.0419246526_dp,&
+ 8.0964568401_dp,24.8212721126_dp,105.9887144250_dp]
+ aw%aw_erange_matrix(:,11) = [0.3845515600_dp,1.4395817104_dp,3.7029023900_dp,9.7268226520_dp,28.4534055091_dp,102.3628470217_dp,0.8118390150_dp,1.4352343393_dp,3.4593757378_dp,&
+ 9.8157444418_dp,32.7233122900_dp,151.7982620088_dp]
+ aw%aw_erange_matrix(:,12) = [0.3958434305_dp,1.5027520411_dp,3.9761855968_dp,10.9096324549_dp,34.0580373848_dp,135.1079781755_dp,0.8384180383_dp,1.5299753461_dp,3.8557072482_dp,&
+ 11.5832713988_dp,41.8902966573_dp,215.3882300448_dp]
+ aw%aw_erange_matrix(:,13) = [0.4049246607_dp,1.5552016328_dp,4.2134089372_dp,11.9977032386_dp,39.6930350498_dp,173.9106681833_dp,0.8599721981_dp,1.6107309991_dp,4.2114952563_dp,&
+ 13.2844959178_dp,51.7581905099_dp,299.3780119369_dp]
+ aw%aw_erange_matrix(:,14) = [0.4117629031_dp,1.5957145113_dp,4.4032949099_dp,12.9112278362_dp,44.7999640048_dp,215.2118480052_dp,0.8763104024_dp,1.6743960921_dp,4.5039003347_dp,&
+ 14.7656672369_dp,61.2249538434_dp,398.9837714449_dp]
+ case(8)
+ aw%energy_range(:) = [10.0000_dp,15.8489_dp,25.1189_dp,39.8107_dp,63.0957_dp,100.0000_dp,158.4893_dp,251.1886_dp,398.1072_dp,&
+ 630.9573_dp,1000.0000_dp,1584.8932_dp,2511.8864_dp]
+ aw%aw_erange_matrix(:,1) = [0.2071657943_dp,0.6610068185_dp,1.2441397724_dp,2.0831497522_dp,3.3887988553_dp,5.5847789422_dp,9.8270353946_dp,1.7281350381_dp,0.4207454390_dp,&
+ 0.5014976440_dp,0.6851766586_dp,1.0262600603_dp,1.6496784456_dp,2.9041456023_dp,6.2037554522_dp,23.2093654407_dp]
+ aw%aw_erange_matrix(:,2) = [0.2281975509_dp,0.7378108396_dp,1.4244318649_dp,2.4707104240_dp,4.1905418464_dp,7.2131597201_dp,13.1990042083_dp,29.9997176794_dp,0.4649882690_dp,&
+ 0.5742245008_dp,0.8283885406_dp,1.3139969363_dp,2.2222991557_dp,4.0573273175_dp,8.7886716040_dp,32.6307167054_dp]
+ aw%aw_erange_matrix(:,3) = [0.2478325384_dp,0.8123920588_dp,1.6105407106_dp,2.8990088123_dp,5.1406825221_dp,9.2811129613_dp,17.7585094674_dp,41.7034890992_dp,0.5067204192_dp,&
+ 0.6488380257_dp,0.9885419393_dp,1.6617137904_dp,2.9674466307_dp,5.6611212463_dp,12.5401854734_dp,46.3415559475_dp]
+ aw%aw_erange_matrix(:,4) = [0.2659623770_dp,0.8840006194_dp,1.8001085399_dp,3.3647028374_dp,6.2468323093_dp,11.8655812207_dp,23.8618997130_dp,58.2201559306_dp,0.5456512836_dp,&
+ 0.7242341275_dp,1.1636891030_dp,2.0709124861_dp,3.9122188078_dp,7.8497209223_dp,17.9508953905_dp,66.3317026050_dp]
+ aw%aw_erange_matrix(:,5) = [0.2825286714_dp,0.9519740012_dp,1.9904683567_dp,3.8621957498_dp,7.5094353654_dp,15.0358645326_dp,31.9280725161_dp,81.4355610562_dp,0.5815837142_dp,&
+ 0.7992370771_dp,1.3509789933_dp,2.5397840102_dp,5.0777819156_dp,10.7708899999_dp,25.6817056446_dp,95.5142824872_dp]
+ aw%aw_erange_matrix(:,6) = [0.2975081621_dp,1.0157197989_dp,2.1786795733_dp,4.3835258184_dp,8.9196010680_dp,18.8421849707_dp,42.4191477984_dp,113.8785066010_dp,0.6143889942_dp,&
+ 0.8726271509_dp,1.5467092421_dp,3.0626313217_dp,6.4748941133_dp,14.5714440993_dp,36.5813059769_dp,138.1359857525_dp]
+ aw%aw_erange_matrix(:,7) = [0.3109044422_dp,1.0747189671_dp,2.3616257812_dp,4.9184789791_dp,10.4573448605_dp,23.3016349187_dp,55.7970544598_dp,158.8526834842_dp,0.6439946472_dp,&
+ 0.9431868807_dp,1.7464589798_dp,3.6295451089_dp,8.0992146383_dp,19.3741257946_dp,51.6724717864_dp,200.3405959261_dp]
+ aw%aw_erange_matrix(:,8) = [0.3227426886_dp,1.1285376083_dp,2.5361560368_dp,5.4549563099_dp,12.0906636709_dp,28.3830633636_dp,72.4478080141_dp,220.5115689924_dp,0.6703777562_dp,&
+ 1.0097564124_dp,1.9453052591_dp,4.2264715904_dp,9.9271812582_dp,25.2464912037_dp,72.0737340430_dp,290.8984786126_dp]
+ aw%aw_erange_matrix(:,9) = [0.3330653429_dp,1.1768381468_dp,2.6992426824_dp,5.9795753281_dp,13.7758193804_dp,33.9934529728_dp,92.5691845452_dp,303.7688360097_dp,0.6935592742_dp,&
+ 1.0712866459_dp,2.1381008841_dp,4.8357521746_dp,11.9134085419_dp,32.1651386464_dp,98.8188127849_dp,422.0268465485_dp]
+ aw%aw_erange_matrix(:,10) = [0.3419271677_dp,1.2193812021_dp,2.8481167646_dp,6.4783947849_dp,15.4589061277_dp,39.9686099759_dp,116.0253061549_dp,413.8290580287_dp,0.7135957406_dp,&
+ 1.1268764982_dp,2.3197607958_dp,5.4370721963_dp,13.9903510517_dp,39.9811217952_dp,132.5423013393_dp,609.9378472851_dp]
+ aw%aw_erange_matrix(:,11) = [0.3493873557_dp,1.2560051022_dp,2.9803168477_dp,6.9374999179_dp,17.0780527326_dp,46.0690845013_dp,142.1776489457_dp,554.9087117432_dp,0.7305630635_dp,&
+ 1.1757734018_dp,2.4854579125_dp,6.0084938106_dp,16.0699904831_dp,48.3919200908_dp,173.0191454100_dp,873.9156615559_dp]
+ aw%aw_erange_matrix(:,12) = [0.3554939312_dp,1.2865572716_dp,3.0935328862_dp,7.3429185821_dp,18.5642203900_dp,51.9760118440_dp,169.6889674060_dp,727.2704120894_dp,0.7445214007_dp,&
+ 1.2172980158_dp,2.6305474321_dp,6.5268067690_dp,18.0450614155_dp,56.9170815136_dp,218.5505156517_dp,1230.5349651906_dp]
+ aw%aw_erange_matrix(:,13) = [0.3602495964_dp,1.3107201533_dp,3.1850020782_dp,7.6788144410_dp,19.8359971798_dp,57.2679524910_dp,196.2327143675_dp,920.7799560162_dp,0.7554361141_dp,&
+ 1.2506098187_dp,2.7498665119_dp,6.9656401678_dp,19.7831086916_dp,64.8519815020_dp,265.1056052278_dp,1674.6829767463_dp]
+ aw%aw_erange_matrix(:,14) = [0.3635299969_dp,1.3275808457_dp,3.2498551555_dp,7.9215394123_dp,20.7780605758_dp,61.3311078827_dp,217.8756023806_dp,1101.7305989568_dp,0.7629878767_dp,&
+ 1.2741002658_dp,2.8355822804_dp,7.2879118995_dp,21.0979770379_dp,71.1253081773_dp,304.8441281342_dp,2131.3275131179_dp]
+ case(10)
+ aw%energy_range(:) = [10.0000_dp,15.8489_dp,25.1189_dp,39.8107_dp,63.0957_dp,100.0000_dp,158.4893_dp,251.1886_dp,398.1072_dp,&
+ 630.9573_dp,1000.0000_dp,1584.8932_dp,2511.8864_dp,3981.0717_dp,6309.5734_dp]
+ aw%aw_erange_matrix(:,1) = [0.1691355148_dp,0.5284642103_dp,0.9545511712_dp,1.5047418958_dp,2.2597115867_dp,3.3454936705_dp,4.9862966533_dp,7.6650093063_dp,12.7796542255_dp,&
+ 27.2864801899_dp,0.3417226652_dp,0.3844227596_dp,0.4771272671_dp,0.6363706526_dp,0.8938238488_dp,1.3129879948_dp,2.0414882487_dp,3.5103169114_dp,7.4908908101_dp,28.4904121016_dp]
+ aw%aw_erange_matrix(:,2) = [0.1869871309_dp,0.5895532734_dp,1.0837264945_dp,1.7513396673_dp,2.7113373418_dp,4.1525884587_dp,6.4085359717_dp,10.1783866742_dp,17.4346686857_dp,&
+ 37.8980985815_dp,0.3786450204_dp,0.4367817026_dp,0.5649171097_dp,0.7896364896_dp,1.1607673493_dp,1.7743885110_dp,2.8435711821_dp,4.9711742872_dp,10.6201538876_dp,40.0398066552_dp]
+ aw%aw_erange_matrix(:,3) = [0.2039012435_dp,0.6490652017_dp,1.2154617028_dp,2.0166038170_dp,3.2247481157_dp,5.1221232176_dp,8.2115606004_dp,13.5286265845_dp,23.9062720036_dp,&
+ 53.0749019920_dp,0.4138813037_dp,0.4900973682_dp,0.6611573329_dp,0.9690511968_dp,1.4926655730_dp,2.3817399021_dp,3.9551983098_dp,7.0759673349_dp,15.2045183691_dp,56.8572918710_dp]
+ aw%aw_erange_matrix(:,4) = [0.2215612726_dp,0.7130836108_dp,1.3641220347_dp,2.3327570045_dp,3.8722111284_dp,6.4171323475_dp,10.7641098295_dp,18.5487568360_dp,34.1014651224_dp,&
+ 77.8384401962_dp,0.4509585163_dp,0.5500867058_dp,0.7775819091_dp,1.2005601561_dp,1.9481146439_dp,3.2680298069_dp,5.6771590916_dp,10.5041265527_dp,22.8758677846_dp,84.9127568138_dp]
+ aw%aw_erange_matrix(:,5) = [0.2345329395_dp,0.7614514514_dp,1.4815009224_dp,2.5950035869_dp,4.4373238158_dp,7.6084809054_dp,13.2446162815_dp,23.7066487254_dp,45.1296102041_dp,&
+ 105.6515405245_dp,0.4783942076_dp,0.5972714864_dp,0.8751233602_dp,1.4057763384_dp,2.3748072156_dp,4.1473552541_dp,7.4887345561_dp,14.3092728834_dp,31.6856232830_dp,117.1748283873_dp]
+ aw%aw_erange_matrix(:,6) = [0.2464823496_dp,0.8071022381_dp,1.5964864475_dp,2.8627114558_dp,5.0394486965_dp,8.9364966681_dp,16.1470780375_dp,30.0602271613_dp,59.4110826768_dp,&
+ 143.0796327614_dp,0.5038292544_dp,0.6433038741_dp,0.9752840930_dp,1.6265181595_dp,2.8558127957_dp,5.1896016186_dp,9.7542857946_dp,19.3262236939_dp,43.7567202430_dp, 161.6443914088_dp]
+ aw%aw_erange_matrix(:,7) = [0.2654151573_dp,0.8817697294_dp,1.7938027165_dp,3.3470666145_dp,6.1913419928_dp,11.6351237642_dp,22.4546568543_dp,44.9392680518_dp,95.5658998932_dp,&
+ 244.1384121888_dp,0.5444673083_dp,0.7217806651_dp,1.1573032493_dp,2.0521555932_dp,3.8424395191_dp,7.4786895698_dp,15.1258300988_dp,32.2334439760_dp,77.0350952259_dp,286.6561721471_dp]
+ aw%aw_erange_matrix(:,8) = [0.2762854262_dp,0.9260414313_dp,1.9164695671_dp,3.6641228087_dp,6.9876700672_dp,13.6157081584_dp,27.4080928631_dp,57.5664213221_dp,128.9747437104_dp,&
+ 344.8292437935_dp,0.5679986258_dp,0.7701986486_dp,1.2766274473_dp,2.3475292633_dp,4.5697038635_dp,9.2840896357_dp,19.7029788976_dp,44.2289545620_dp,110.6270863337_dp,417.1647742251_dp]
+ aw%aw_erange_matrix(:,9) = [0.2820309257_dp,0.9498823515_dp,1.9843457172_dp,3.8448332437_dp,7.4562107662_dp,14.8232425960_dp,30.5554359026_dp,65.9925282444_dp,152.5750528656_dp,&
+ 419.9454634243_dp,0.5804976867_dp,0.7968584417_dp,1.3446054795_dp,2.5213920887_dp,5.0132488016_dp,10.4308177021_dp,22.7523418007_dp,52.6831372017_dp,135.7521321651_dp,517.8733383965_dp]
+ aw%aw_erange_matrix(:,10) = [0.2916392096_dp,0.9904672599_dp,2.1029049829_dp,4.1695234368_dp,8.3244617815_dp,17.1414352405_dp,36.8575879013_dp,83.7621447531_dp,205.6283870841_dp,&
+ 600.5018496162_dp,0.6014985087_dp,0.8431887875_dp,1.4665763527_dp,2.8432978010_dp,5.8636306085_dp,12.7210853018_dp,29.1509189638_dp,71.5379751769_dp,195.8981148161_dp,770.3526395770_dp]
+ aw%aw_erange_matrix(:,11) = [0.2997413607_dp,1.0254167167_dp,2.2081204281_dp,4.4673434763_dp,9.1504060805_dp,19.4417624082_dp,43.4386668156_dp,103.5471053219_dp,269.7738483758_dp,&
+ 840.2848331258_dp,0.6193060617_dp,0.8840434321_dp,1.5781675031_dp,3.1488061460_dp,6.7046855839_dp,15.0996376420_dp,36.2060502309_dp,93.9657265595_dp,274.5288412137_dp,1126.0984805870_dp]
+ aw%aw_erange_matrix(:,12) = [0.3068119265_dp,1.0564844599_dp,2.3041382741_dp,4.7471116229_dp,9.9518408796_dp,21.7608680962_dp,50.3946041349_dp,125.7778595593_dp,348.0823679645_dp,&
+ 1165.5956152032_dp,0.6349224147_dp,0.9211050699_dp,1.6826698673_dp,3.4442834592_dp,7.5487363569_dp,17.5953310413_dp,44.0329344049_dp,120.7330042899_dp,378.0891314432_dp,1642.4900496712_dp]
+ aw%aw_erange_matrix(:,13) = [0.3128903217_dp,1.0836325633_dp,2.3900037820_dp,5.0037876383_dp,10.7087987937_dp,24.0290199661_dp,57.5035919858_dp,149.8665589334_dp,440.3163793218_dp,&
+ 1597.3324135008_dp,0.6484056036_dp,0.9540645582_dp,1.7782223062_dp,3.7222989519_dp,8.3698000470_dp,20.1241272281_dp,52.3878207087_dp,151.3903898996_dp,509.3860603144_dp,2383.3770295017_dp]
+ aw%aw_erange_matrix(:,14) = [0.3180208381_dp,1.1068742715_dp,2.4649964188_dp,5.2330020840_dp,11.4022590556_dp,26.1726545478_dp,64.4968153514_dp,174.8953978169_dp,544.3139194265_dp,&
+ 2152.9928502293_dp,0.6598289811_dp,0.9827062576_dp,1.8632606978_dp,3.9759704470_dp,9.1413408907_dp,22.5889526629_dp,60.9288369969_dp,184.8771547581_dp,668.1120868220_dp,3424.9941233446_dp]
+ aw%aw_erange_matrix(:,15) = [0.3222327278_dp,1.1261846760_dp,2.5283617927_dp,5.4303608672_dp,12.0125527722_dp,28.1109550492_dp,71.0481159543_dp,199.5351883274_dp,654.9414770847_dp,&
+ 2834.2166166353_dp,0.6692367974_dp,1.0068010254_dp,1.9362446833_dp,4.1983457774_dp,9.8350334132_dp,24.8769328455_dp,69.1997933226_dp,219.3240772356_dp,848.0876503767_dp,4831.8698300660_dp]
+ aw%aw_erange_matrix(:,16) = [0.3255214101_dp,1.1414100173_dp,2.5790085497_dp,5.5905435586_dp,12.5168740676_dp,29.7491494348_dp,76.7532744950_dp,221.9330386256_dp,762.7629878613_dp,&
+ 3600.8832911895_dp,0.6766014703_dp,1.0259889580_dp,1.9953123273_dp,4.3814587926_dp,10.4182966230_dp,26.8526025391_dp,76.6027833431_dp,251.8170602854_dp,1033.5460450322_dp,6581.5947573428_dp]
+ case(12)
+ aw%energy_range(:) = [10.0000_dp,15.8489_dp,25.1189_dp,39.8107_dp,63.0957_dp,100.0000_dp,158.4893_dp,251.1886_dp,398.1072_dp,&
+ 630.9573_dp,1000.0000_dp,1584.8932_dp,2511.8864_dp,3981.0717_dp,6309.5734_dp,10000.0000_dp,15848.9319_dp,25118.8643_dp]
+ aw%aw_erange_matrix(:,1) = [0.1429218755_dp,0.4413040082_dp,0.7787608801_dp,1.1864502692_dp,1.7042237511_dp,2.3869386764_dp,3.3160967043_dp,4.6250055507_dp,6.5625649934_dp,&
+ 9.6884369954_dp,15.6631146136_dp,32.7980178888_dp,0.2879096642_dp,0.3132260593_dp,0.3668155938_dp,0.4551062337_dp,0.5894057676_dp,0.7892350989_dp,1.0903935815_dp,&
+ 1.5663175771_dp,2.3928796682_dp,4.0893782104_dp,8.7825606869_dp,33.8102751115_dp]
+ aw%aw_erange_matrix(:,2) = [0.1584039050_dp,0.4923328393_dp,0.8800124739_dp,1.3655907229_dp,2.0071985270_dp,2.8866096232_dp,4.1262350784_dp,5.9244211841_dp,8.6433443828_dp,&
+ 13.0785495268_dp,21.5592271650_dp,45.7118338614_dp,0.3196222832_dp,0.3542571191_dp,0.4283564047_dp,0.5523360633_dp,0.7442466481_dp,1.0344524304_dp,1.4766097932_dp,&
+ 2.1765609805_dp,3.3811001812_dp,5.8128874205_dp,12.4386306554_dp,47.5132218404_dp]
+ aw%aw_erange_matrix(:,3) = [0.1732162492_dp,0.5421693623_dp,0.9824597614_dp,1.5548177385_dp,2.3422035365_dp,3.4651351072_dp,5.1078262325_dp,7.5699331662_dp,11.3905202972_dp,&
+ 17.7236693379_dp,29.8814434759_dp,64.2938771336_dp,0.3501242235_dp,0.3957859959_dp,0.4947508394_dp,0.6635483653_dp,0.9309027084_dp,1.3448855041_dp,1.9886743748_dp,&
+ 3.0204285513_dp,4.7952476232_dp,8.3319958117_dp,17.8065500802_dp,67.4765078414_dp]
+ aw%aw_erange_matrix(:,4) = [0.1872798507_dp,0.5905014926_dp,1.0854206804_dp,1.7532172531_dp,2.7093772498_dp,4.1282041031_dp,6.2843865572_dp,9.6323358121_dp,14.9869260172_dp,&
+ 24.0540642157_dp,41.6061199649_dp,91.0579838939_dp,0.3792435644_dp,0.4375045382_dp,0.5656048578_dp,0.7888458222_dp,1.1518726945_dp,1.7303560649_dp,2.6551434426_dp,&
+ 4.1695556253_dp,6.7988935390_dp,12.0017657848_dp,25.7012299118_dp,96.6398811058_dp]
+ aw%aw_erange_matrix(:,5) = [0.2005431091_dp,0.6370759298_dp,1.1882131903_dp,1.9596143934_dp,3.1080141107_dp,4.8798810059_dp,7.6781144945_dp,12.1876192174_dp,19.6488402798_dp,&
+ 32.6228933481_dp,58.0768113011_dp,129.6233187971_dp,0.4068597097_dp,0.4791053751_dp,0.6403871274_dp,0.9279233717_dp,1.4089046869_dp,2.2000500441_dp,3.5065734207_dp,&
+ 5.7089766044_dp,9.6048855357_dp,17.3210624857_dp,37.3219713868_dp,139.3487102141_dp]
+ aw%aw_erange_matrix(:,6) = [0.2129723629_dp,0.6816735477_dp,1.2901205273_dp,2.1725086187_dp,3.5363611280_dp,5.7219435274_dp,9.3081177834_dp,15.3135513250_dp,25.6240110606_dp,&
+ 44.1260843459_dp,81.1209689443_dp,185.1814120492_dp,0.4328851129_dp,0.5202704606_dp,0.7184166502_dp,1.0800067147_dp,1.7027459853_dp,2.7617892731_dp,4.5740080605_dp,&
+ 7.7357979157_dp,13.4820663628_dp,24.9778985366_dp,54.4233997075_dp,202.0289741531_dp]
+ aw%aw_erange_matrix(:,7) = [0.2245470036_dp,0.7240993142_dp,1.3903836822_dp,2.3900535856_dp,3.9914711962_dp,6.6532201376_dp,11.1882815305_dp,19.0846043138_dp,33.1849165684_dp,&
+ 59.4159094721_dp,113.1875318972_dp,265.1423802300_dp,0.4572563533_dp,0.5606704196_dp,0.7988654765_dp,1.2438096034_dp,2.0328893255_dp,3.4211580276_dp,5.8867908786_dp,&
+ 10.3557613983_dp,18.7581531731_dp,35.8993571496_dp,79.5506004677_dp,294.1829550392_dp]
+ aw%aw_erange_matrix(:,8) = [0.2352569289_dp,0.7641800006_dp,1.4882116081_dp,2.6100766743_dp,4.4691309002_dp,7.6689956608_dp,13.3248903807_dp,23.5651210903_dp,42.6155684811_dp,&
+ 79.5012479303_dp,157.4966041219_dp,380.0140548312_dp,0.4799299760_dp,0.5999706068_dp,0.8807759597_dp,1.4175212571_dp,2.3973518587_dp,4.1805461970_dp,7.4696971805_dp,&
+ 13.6771070681_dp,25.8156997830_dp,51.2989610152_dp,116.3509369773_dp,429.8532978855_dp]
+ aw%aw_erange_matrix(:,9) = [0.2451010324_dp,0.8017654177_dp,1.5828017133_dp,2.8301315091_dp,4.9638755099_dp,8.7605637856_dp,15.7142019721_dp,28.8008583603_dp,54.1903386201_dp,&
+ 105.5249731655_dp,218.1800947562_dp,544.5701280399_dp,0.5008804244_dp,0.6378406025_dp,0.9630900436_dp,1.5988302974_dp,2.7925242877_dp,5.0382073210_dp,9.3394978690_dp,&
+ 17.8013122631_dp,35.0774426337_dp,72.7082927464_dp,169.9652196055_dp,629.7648944090_dp]
+ aw%aw_erange_matrix(:,10) = [0.2540860929_dp,0.8367307788_dp,1.6733652691_dp,3.0475761199_dp,5.4690974483_dp,9.9150059248_dp,18.3402496051_dp,34.8093868001_dp,68.1439425172_dp,&
+ 138.7068831809_dp,300.3728140052_dp,779.3504064325_dp,0.5200987061_dp,0.6739648288_dp,1.0446871754_dp,1.7849867539_dp,3.2131230326_dp,5.9874580217_dp,11.5012197452_dp,&
+ 22.8106613081_dp,46.9772400931_dp,101.9720804684_dp,247.4758767966_dp,924.4338269797_dp]
+ aw%aw_erange_matrix(:,11) = [0.2622257858_dp,0.8689789279_dp,1.7591538896_dp,3.2596687994_dp,5.9772463916_dp,11.1152640178_dp,21.1732100622_dp,41.5702473402_dp,84.6330027911_dp,&
+ 180.2402911075_dp,410.1862989334_dp,1112.4892104442_dp,0.5375911789_dp,0.7080527257_dp,1.1244271067_dp,1.9728991568_dp,3.6522685550_dp,7.0161575650_dp,13.9445301437_dp,&
+ 28.7532181011_dp,61.9137136958_dp,141.1783745973_dp,358.3390054868_dp,1358.6237808356_dp]
+ aw%aw_erange_matrix(:,12) = [0.2695397145_dp,0.8984418080_dp,1.8394842699_dp,3.4636731491_dp,6.4801097618_dp,12.3405489690_dp,24.1686845488_dp,49.0161813673_dp,103.6916002257_dp,&
+ 231.1334699402_dp,554.4649729304_dp,1581.7521816579_dp,0.5533782107_dp,0.7398474700_dp,1.2011938191_dp,2.1592596327_dp,4.1016985956_dp,8.1065950190_dp,16.6408070873_dp,&
+ 35.6265963621_dp,80.1860664335_dp,192.4911013451_dp,514.6393661077_dp,1997.6015554757_dp]
+ aw%aw_erange_matrix(:,13) = [0.2760524229_dp,0.9250808413_dp,1.9137590003_dp,3.6569632156_dp,6.9691521519_dp,13.5670860508_dp,27.2681820098_dp,57.0270405663_dp,125.1857068673_dp,&
+ 291.9952897702_dp,740.1948138210_dp,2236.4143292529_dp,0.5674926172_dp,0.7691325599_dp,1.2739369142_dp,2.3406863163_dp,4.5521069506_dp,9.2358710776_dp,19.5415050994_dp,&
+ 43.3627936431_dp,101.9156324042_dp,257.8561654396_dp,730.8786122152_dp,2935.5916108398_dp]
+ aw%aw_erange_matrix(:,14) = [0.2817923316_dp,0.9488858958_dp,1.9814813109_dp,3.8371183004_dp,7.4358800759_dp,14.7691411930_dp,30.4009348015_dp,65.4279344217_dp,148.7737052777_dp,&
+ 362.7781053922_dp,973.4258195636_dp,3138.1182553730_dp,0.5799777558_dp,0.7957356560_dp,1.3417066692_dp,2.5138686631_dp,4.9935763572_dp,10.3767865261_dp,22.5783236670_dp,&
+ 51.8169502523_dp,126.9620346466_dp,338.5696696685_dp,1022.8563670293_dp,4306.3486764644_dp]
+ aw%aw_erange_matrix(:,15) = [0.2867904139_dp,0.9698720269_dp,2.0422603506_dp,4.0019927656_dp,7.8721789655_dp,15.9201852024_dp,33.4868654474_dp,73.9924717306_dp,173.8808134122_dp,&
+ 442.5068881766_dp,1257.6017567738_dp,4358.8912675126_dp,0.5908848778_dp,0.8195285979_dp,1.4036776623_dp,2.6756952059_dp,5.4160438292_dp,11.4991268023_dp,25.6653392884_dp,&
+ 60.7626525470_dp,154.8473999059_dp,434.7285925715_dp,1405.0882864622_dp,1293.9857358549_dp]
+ aw%aw_erange_matrix(:,16) = [0.2910780860_dp,0.9880717528_dp,2.0957994347_dp,4.1497340080_dp,8.2705289811_dp,16.9939014393_dp,36.4399516317_dp,82.4500835175_dp,199.6913462924_dp,&
+ 529.0300260431_dp,1591.2609924507_dp,5972.6134097078_dp,0.6002686025_dp,0.8404208888_dp,1.4591515488_dp,2.8233296403_dp,5.8096852863_dp,12.5710278432_dp,28.7025282055_dp,&
+ 69.8944444213_dp,184.7013394375_dp,544.6171058090_dp,1886.1991561619_dp,1636.7409625631_dp]
+ aw%aw_erange_matrix(:,17) = [0.2946830135_dp,1.0035172315_dp,2.1418493923_dp,4.2786919199_dp,8.6239165593_dp,17.9644477245_dp,39.1701771936_dp,90.4925192593_dp,225.1497724816_dp,&
+ 618.7984682735_dp,1965.0906091672_dp,8032.3776354955_dp,0.6081776611_dp,0.8583399368_dp,1.5075185249_dp,2.9541692000_dp,6.1650041879_dp,13.5597425826_dp,31.5787233026_dp,&
+ 78.8332286894_dp,215.2252971871_dp,664.0736526166_dp,2461.7976878738_dp,13101.2227769949_dp]
+ aw%aw_erange_matrix(:,18) = [0.2976197396_dp,1.0161987870_dp,2.1800846641_dp,4.3870919140_dp,8.9250517003_dp,18.8047527393_dp,41.5801589448_dp,97.7669240973_dp,248.9317783904_dp,&
+ 706.5698042833_dp,2358.0029706570_dp,10518.0301237170_dp,0.6146340927_dp,0.8731818667_dp,1.5481304343_dp,3.0655438415_dp,6.4721849704_dp,14.4304002566_dp,34.1694206849_dp,&
+ 87.1199659748_dp,244.6345912064_dp,785.7486816858_dp,3104.0521536434_dp,18366.2833303773_dp]
+ aw%aw_erange_matrix(:,19) = [0.2998670956_dp,1.0259644793_dp,2.2097926993_dp,4.4721489070_dp,9.1639446473_dp,19.4800041119_dp,43.5475134513_dp,103.8257383340_dp,269.2803013626_dp,&
+ 784.6486318135_dp,2730.6250483393_dp,13221.1901021026_dp,0.6195831378_dp,0.8846907737_dp,1.5799656761_dp,3.1538099965_dp,6.7186856110_dp,15.1395754616_dp,36.3189542433_dp,&
+ 94.1609721175_dp,270.4429681576_dp,897.7357862925_dp,3745.2859315653_dp,24671.3210710722_dp]
+ case(14)
+ aw%energy_range(:) = [10.0000_dp,15.8489_dp,25.1189_dp,39.8107_dp,63.0957_dp,100.0000_dp,158.4893_dp,251.1886_dp,398.1072_dp,&
+ 630.9573_dp,1000.0000_dp,1584.8932_dp,2511.8864_dp,3981.0717_dp,6309.5734_dp,10000.0000_dp,15848.9319_dp,25118.8643_dp,39810.7171_dp,&
+ 63095.7344_dp,100000.0000_dp]
+ aw%aw_erange_matrix(:,1) = [0.1237520189_dp,0.3793210576_dp,0.6597671782_dp,0.9840308063_dp,1.3749190589_dp,1.8615001814_dp,2.4828690979_dp,3.2948316051_dp,4.3831950418_dp,&
+ 5.8934107334_dp,8.1059865442_dp,11.6655039451_dp,18.5015048397_dp,38.2819532635_dp,0.2488370146_dp,0.2650794331_dp,0.2989413739_dp,0.3533487033_dp,0.4332130096_dp,&
+ 0.5463612200_dp,0.7054753585_dp,0.9323118806_dp,1.2675835756_dp,1.7965516204_dp,2.7252931763_dp,4.6615549872_dp,10.0839562478_dp,39.1544232431_dp]
+ aw%aw_erange_matrix(:,2) = [0.1374094319_dp,0.4232874675_dp,0.7434627635_dp,1.1246519429_dp,1.5998350917_dp,2.2119848549_dp,3.0197111559_dp,4.1068823716_dp,5.6011802735_dp,&
+ 7.7149478780_dp,10.8492870266_dp,15.9125394356_dp,25.6080428343_dp,53.4755730624_dp,0.2766436526_dp,0.2989467997_dp,0.3458113038_dp,0.4220036888_dp,0.5354349601_dp,&
+ 0.6984826350_dp,0.9306650650_dp,1.2643532502_dp,1.7581552449_dp,2.5320019406_dp,3.8730686134_dp,6.6286669095_dp,14.2653278687_dp,55.0281302896_dp]
+ aw%aw_erange_matrix(:,3) = [0.1505666691_dp,0.4663185031_dp,0.8277068519_dp,1.2712878156_dp,1.8436088079_dp,2.6071668363_dp,3.6492744660_dp,5.0966470423_dp,7.1423813249_dp,&
+ 10.1035301725_dp,14.5662361716_dp,21.8316004103_dp,35.7316313060_dp,75.4226567085_dp,0.3035404850_dp,0.3330713582_dp,0.3957256454_dp,0.4990979554_dp,0.6558183478_dp,&
+ 0.8856202117_dp,1.2193001614_dp,1.7067737275_dp,2.4354797344_dp,3.5786067486_dp,5.5425490305_dp,9.5203253363_dp,20.4055935443_dp,78.1654326549_dp]
+ aw%aw_erange_matrix(:,4) = [0.1631562520_dp,0.5081770951_dp,0.9120372525_dp,1.4233448685_dp,2.1061443172_dp,3.0494194848_dp,4.3813220072_dp,6.2921913817_dp,9.0755650205_dp,&
+ 13.2120067673_dp,19.5745958656_dp,30.0570187431_dp,50.1492744094_dp,107.1783297388_dp,0.3293860261_dp,0.3672500562_dp,0.4484587525_dp,0.5846770059_dp,0.7955240571_dp,&
+ 1.1120199476_dp,1.5828730610_dp,2.2865361693_dp,3.3573874234_dp,5.0527187015_dp,7.9582310915_dp,13.7699199075_dp,29.4466322395_dp,111.9883059949_dp]
+ aw%aw_erange_matrix(:,5) = [0.1751328845_dp,0.5486776639_dp,0.9960210811_dp,1.5801351784_dp,2.3869791803_dp,3.5403675980_dp,5.2247498897_dp,7.7222102918_dp,11.4770489386_dp,&
+ 17.2224496874_dp,26.2781750027_dp,41.4427682146_dp,70.6620174299_dp,153.1839920115_dp,0.3540807601_dp,0.4012905745_dp,0.5037213598_dp,0.6785936111_dp,0.9553641327_dp,&
+ 1.3815652392_dp,2.0332043125_dp,3.0338539093_dp,4.5937656003_dp,7.1052263662_dp,11.4303112105_dp,20.0061321519_dp,42.7874318856_dp,161.5637932500_dp]
+ aw%aw_erange_matrix(:,6) = [0.1864652922_dp,0.5876633466_dp,1.0792191469_dp,1.7408187754_dp,2.6851623062_dp,4.0805890775_dp,6.1868950019_dp,9.4146722805_dp,14.4288638472_dp,&
+ 22.3464969167_dp,35.1805962456_dp,57.1239822554_dp,99.7934538596_dp,219.8849251090_dp,0.3775511583_dp,0.4349982165_dp,0.5611463585_dp,0.7804726447_dp,1.1356966669_dp,&
+ 1.6975108670_dp,2.5819061296_dp,3.9814540008_dp,6.2266818203_dp,9.9270851610_dp,16.3796136997_dp,29.1318891212_dp,62.5017658877_dp,234.4013377657_dp]
+ aw%aw_erange_matrix(:,7) = [0.1971320791_dp,0.6249956559_dp,1.1611723802_dp,1.9043787816_dp,2.9991713766_dp,4.6693370438_dp,7.2727561475_dp,11.3950369748_dp,18.0156522854_dp,&
+ 28.8229704372_dp,46.8960302078_dp,78.5862781220_dp,141.0502377875_dp,316.6100822049_dp,0.3997417912_dp,0.4681716805_dp,0.6202849713_dp,0.8896863729_dp,1.3363204068_dp,&
+ 2.0621694870_dp,3.2396561944_dp,5.1633036255_dp,8.3493271249_dp,13.7533070113_dp,23.3648778784_dp,42.4276062839_dp,91.6530813193_dp,341.6356160655_dp]
+ aw%aw_erange_matrix(:,8) = [0.2071196561_dp,0.6605509163_dp,1.2414020419_dp,2.0696221481_dp,3.3268716611_dp,5.3043048684_dp,8.4841749046_dp,13.6840687647_dp,22.3200876467_dp,&
+ 36.9116410253_dp,62.1534675938_dp,107.7376013130_dp,199.2542570825_dp,456.8148338118_dp,0.4206116673_dp,0.5006042902_dp,0.6806119502_dp,1.0053444289_dp,1.5563837555_dp,&
+ 2.4765762114_dp,4.0152964555_dp,6.6127134579_dp,11.0633152384_dp,18.8639006227_dp,33.1094249311_dp,61.6803117299_dp,134.7433279119_dp,249.7791775842_dp]
+ aw%aw_erange_matrix(:,9) = [0.2164211208_dp,0.6942199530_dp,1.3194178020_dp,2.2351995560_dp,3.6655163476_dp,5.9814567261_dp,9.8190406778_dp,16.2953330419_dp,27.4167071273_dp,&
+ 46.8819737408_dp,81.7899193598_dp,146.9723500158_dp,280.9494882357_dp,659.8171183904_dp,0.4401325181_dp,0.5320881774_dp,0.7415378106_dp,1.1263002544_dp,1.7943210878_dp,&
+ 2.9401644200_dp,4.9148026024_dp,8.3597883164_dp,14.4738828904_dp,25.5798337763_dp,46.5220179584_dp,89.3352189162_dp,198.3395493241_dp,733.3143455343_dp]
+ aw%aw_erange_matrix(:,10) = [0.2250355201_dp,0.7259090833_dp,1.3947298426_dp,2.3996392595_dp,4.0117873209_dp,6.6949449046_dp,11.2705993355_dp,19.2325359337_dp,33.3642363588_dp,&
+ 58.9958553993_dp,106.7269043438_dp,199.2107206824_dp,394.8716061946_dp,953.1877173873_dp,0.4582878540_dp,0.5624197640_dp,0.8024260872_dp,1.2511740402_dp,2.0478267482_dp,&
+ 3.4504904254_dp,5.9402028103_dp,10.4282848334_dp,18.6826463204_dp,34.2518029731_dp,64.7040280062_dp,128.6569747902_dp,291.9231783438_dp,1078.5150247338_dp]
+ aw%aw_erange_matrix(:,11) = [0.2329672393_dp,0.7555413998_dp,1.4668625114_dp,2.5613905063_dp,4.3618737487_dp,7.4371311516_dp,12.8269527907_dp,22.4869444262_dp,40.1967444694_dp,&
+ 73.4837764659_dp,137.9240966582_dp,267.8878409083_dp,552.4401168858_dp,1375.9767397362_dp,0.4750722360_dp,0.5914055029_dp,0.8626137302_dp,1.3783908160_dp,2.3138738004_dp,&
+ 4.0030452232_dp,7.0885544544_dp,12.8320538455_dp,23.7778167607_dp,45.2396241167_dp,88.9322108883_dp,183.8727618124_dp,428.9924509359_dp,1589.0574882567_dp]
+ aw%aw_erange_matrix(:,12) = [0.2402254166_dp,0.7830578426_dp,1.5353678880_dp,2.7188726288_dp,4.7115837714_dp,8.1987224212_dp,14.4708344316_dp,26.0351871851_dp,47.9142866742_dp,&
+ 90.5147950650_dp,176.3046192376_dp,356.8585531562_dp,768.1850111560_dp,1982.9500242172_dp,0.4904905322_dp,0.6188672200_dp,0.9214329207_dp,1.5062311781_dp,2.5887805355_dp,&
+ 4.5911873826_dp,8.3511084620_dp,15.5713777752_dp,29.8221820388_dp,58.8806263183_dp,120.6042717758_dp,260.2481833296_dp,628.4008054380_dp,2344.2037701947_dp]
+ aw%aw_erange_matrix(:,13) = [0.2468233492_dp,0.8084178279_dp,1.5998381346_dp,2.8705261553_dp,5.0564823086_dp,8.9690218562_dp,16.1797300245_dp,29.8377700205_dp,56.4740220701_dp,&
+ 110.1618693375_dp,222.6488481804_dp,470.1773374173_dp,1059.9473360129_dp,2849.9290757236_dp,0.5045570755_dp,0.6446466508_dp,0.9782327448_dp,1.6328911714_dp,2.8683231326_dp,&
+ 5.2062217421_dp,9.7127961169_dp,18.6296360315_dp,36.8397037996_dp,75.4467599949_dp,161.1342170119_dp,364.0212493064_dp,915.8061534622_dp,3460.6173145631_dp]
+ aw%aw_erange_matrix(:,14) = [0.2527778876_dp,0.8315993357_dp,1.6599158447_dp,3.0148625096_dp,5.3920458557_dp,9.7362845660_dp,17.9263848498_dp,33.8386264546_dp,65.7830638131_dp,&
+ 132.3657077044_dp,277.4583246669_dp,611.7132434736_dp,1448.5954171971_dp,4080.0961955192_dp,0.5172947070_dp,0.6686089264_dp,1.0323993525_dp,1.7565471256_dp,3.1478880630_dp,&
+ 5.8376343335_dp,11.1521569039_dp,21.9708116140_dp,44.8021855325_dp,95.0923352411_dp,211.7879402237_dp,502.0958885177_dp,1324.9016742343_dp,5109.1479217630_dp]
+ aw%aw_erange_matrix(:,15) = [0.2581088191_dp,0.8525984201_dp,1.7153018106_dp,3.1505090575_dp,5.7138232801_dp,10.4881555752_dp,19.6796959600_dp,37.9659478012_dp,75.6944278689_dp,&
+ 156.9018728488_dp,340.7986066435_dp,784.5727195079_dp,1956.8887152134_dp,5810.5946526557_dp,0.5287337062_dp,0.6906448661_dp,1.0833734070_dp,1.8754207705_dp,3.4226532212_dp,&
+ 6.4734757869_dp,12.6417849586_dp,25.5383524518_dp,53.6179916839_dp,117.7972403305_dp,273.4582120634_dp,681.3862209558_dp,1897.7667932019_dp,7538.0176679465_dp]
+ aw%aw_erange_matrix(:,16) = [0.2628382234_dp,0.8714280605_dp,1.7657596164_dp,3.2762461263_dp,6.0175894628_dp,11.2121536455_dp,21.4059326227_dp,42.1343821843_dp,86.0072674859_dp,&
+ 183.3569410967_dp,412.1386866853_dp,990.3340957722_dp,2607.0355156257_dp,8217.6518865426_dp,0.5389105748_dp,0.7106719317_dp,1.1306636688_dp,1.9878394438_dp,3.6877820943_dp,&
+ 7.1008636764_dp,14.1493031685_dp,29.2557818247_dp,63.1250213151_dp,143.3135345823_dp,346.3927806276_dp,907.7234332819_dp,2683.2231510780_dp,11103.1863555287_dp]
+ aw%aw_erange_matrix(:,17) = [0.2669897168_dp,0.8881160366_dp,1.8111159140_dp,3.3910312600_dp,6.2994739200_dp,11.8961448564_dp,23.0701486723_dp,46.2484254367_dp,96.4719312295_dp,&
+ 211.1191385393_dp,490.2118567969_dp,1228.1451103779_dp,3416.4888677083_dp,11516.2764247119_dp,0.5478665013_dp,0.7286334755_dp,1.1738551166_dp,2.0922847636_dp,3.9386087483_dp,&
+ 7.7065456968_dp,15.6387696490_dp,33.0291620045_dp,73.0897431844_dp,171.1251080115_dp,429.9069845345_dp,1184.3032522341_dp,3731.5986458489_dp,16303.6463671380_dp]
+ aw%aw_erange_matrix(:,18) = [0.2705873339_dp,0.9027008262_dp,1.8512534027_dp,3.4940013018_dp,6.5560338595_dp,12.5287105641_dp,24.6375162990_dp,50.2063656122_dp,106.7989482477_dp,&
+ 239.3855189704_dp,572.9217973825_dp,1493.7802560807_dp,4391.6531513823_dp,15946.3157069551_dp,0.5556449687_dp,0.7444951812_dp,1.2126082806_dp,2.1874187044_dp,4.1707779482_dp,&
+ 8.2774187326_dp,17.0722537538_dp,36.7509601270_dp,83.2126077162_dp,200.4282185106_dp,522.1239375852_dp,1509.7550525312_dp,5083.9915726941_dp,23809.4872933868_dp]
+ aw%aw_erange_matrix(:,19) = [0.2736534033_dp,0.9152228943_dp,1.8860889161_dp,3.5844307219_dp,6.7842091626_dp,13.0992262603_dp,26.0740471238_dp,53.9032916651_dp,116.6682197836_dp,&
+ 267.1788894394_dp,657.2957186602_dp,1778.7428167398_dp,5519.3340205550_dp,21728.1102484379_dp,0.5622871153_dp,0.7582357751_dp,1.2466418911_dp,2.2720643515_dp,4.3802733591_dp,&
+ 8.8008061721_dp,18.4110184365_dp,40.3038468518_dp,93.1367925368_dp,230.1312226533_dp,619.7711046485_dp,1875.9814388890_dp,6754.1179845509_dp,34441.9288939212_dp]
+ aw%aw_erange_matrix(:,20) = [0.2762038751_dp,0.9257049710_dp,1.9155181787_dp,3.6615955500_dp,6.9810205813_dp,13.5972653572_dp,27.3456018037_dp,57.2299813261_dp,125.7291850483_dp,&
+ 293.3488003957_dp,739.4224775091_dp,2069.3129722892_dp,6755.4499384197_dp,28953.1020102810_dp,0.5678214945_dp,0.7698248185_dp,1.2756800070_dp,2.3450904474_dp,4.5631932604_dp,&
+ 9.2640941495_dp,19.6151475842_dp,43.5610242519_dp,102.4505562674_dp,258.8483817322_dp,717.9870196681_dp,2265.7579672866_dp,8700.5852876781_dp,23988.4028262284_dp]
+ aw%aw_erange_matrix(:,21) = [0.2782372627_dp,0.9341052990_dp,1.9392811143_dp,3.7244178713_dp,7.1426775987_dp,14.0104317718_dp,28.4127187100_dp,60.0605983468_dp,133.5708071158_dp,&
+ 316.4906323388_dp,814.1646091006_dp,2344.8657889336_dp,8008.3640462208_dp,37336.4453482422_dp,0.5722398731_dp,0.7791695364_dp,1.2993167745_dp,2.4050765797_dp,4.7149464686_dp,&
+ 9.6528320691_dp,20.6390719566_dp,46.3754930149_dp,110.6595490445_dp,284.8116113011_dp,809.8918933503_dp,2649.3019212461_dp,10784.5707432897_dp,67552.5430413666_dp]
+ aw%aw_erange_matrix(:,22) = [0.2797061105_dp,0.9401976208_dp,1.9566150716_dp,3.7705342696_dp,7.2621588744_dp,14.3181598521_dp,29.2146691724_dp,62.2108644129_dp,139.6075090217_dp,&
+ 334.6128282321_dp,874.0601697758_dp,2573.2407688027_dp,9106.9093547352_dp,45681.2634053412_dp,0.5754349166_dp,0.7859786803_dp,1.3166648423_dp,2.4494118770_dp,4.8279665616_dp,&
+ 9.9449041050_dp,21.4163941175_dp,48.5390530841_dp,117.0692434004_dp,305.4980103858_dp,885.1734856830_dp,2976.7201952819_dp,12696.1696497372_dp,12778.6824362300_dp]
+ case(16)
+ aw%energy_range(:) = [100.0000_dp,200.0000_dp,300.0000_dp,400.0000_dp,500.0000_dp,600.0000_dp,700.0000_dp,800.0000_dp,900.0000_dp,&
+ 1000.0000_dp,2000.0000_dp,3000.0000_dp,4000.0000_dp,5000.0000_dp,6000.0000_dp,7000.0000_dp,8000.0000_dp,9000.0000_dp,&
+ 10000.0000_dp,20000.0000_dp,30000.0000_dp,40000.0000_dp,50000.0000_dp,60000.0000_dp,70000.0000_dp,80000.0000_dp,100000.0000_dp,&
+ 200000.0000_dp,300000.0000_dp,400000.0000_dp,500000.0000_dp,600000.0000_dp,700000.0000_dp,900000.0000_dp,1000000.0000_dp,2000000.0000_dp]
+ aw%aw_erange_matrix(:,1) = [0.1658239563_dp,0.5171334987_dp,0.9303765657_dp,1.4570328304_dp,2.1653332837_dp,3.1504614774_dp,4.5493907204_dp,6.5633618109_dp,9.4930875435_dp,&
+ 13.7964356275_dp,20.1903405767_dp,29.8547208171_dp,44.9220344899_dp,69.9611336073_dp,118.0767404750_dp,254.2593005437_dp,0.3348764695_dp,0.3746857163_dp,&
+ 0.4602578814_dp,0.6042610194_dp,0.8279633068_dp,1.1647585940_dp,1.6660742054_dp,2.4110700070_dp,3.5231064904_dp,5.2000156651_dp,7.7774760619_dp,&
+ 11.8871228315_dp,18.9384589784_dp,32.9637281791_dp,70.4783921035_dp,266.9897014276_dp]
+ aw%aw_erange_matrix(:,2) = [0.1796188680_dp,0.5640280477_dp,1.0284857024_dp,1.6421539724_dp,2.5006876754_dp,3.7435994693_dp,5.5807790003_dp,8.3344011034_dp,12.5067566445_dp,&
+ 18.8932813718_dp,28.7803521422_dp,44.3247744642_dp,69.4123519683_dp,112.1580355482_dp,195.1385370534_dp,428.7889331091_dp,0.3633588263_dp,0.4144472317_dp,&
+ 0.5257979977_dp,0.7172007538_dp,1.0226908688_dp,1.4974394233_dp,2.2295271553_dp,3.3596316448_dp,5.1145469104_dp,7.8671158960_dp,12.2541055605_dp,&
+ 19.4492942193_dp,31.9606311600_dp,56.6861571917_dp,121.5342919900_dp,456.2757433765_dp]
+ aw%aw_erange_matrix(:,3) = [0.1884206558_dp,0.5944581318_dp,1.0939595566_dp,1.7698243503_dp,2.7399902108_dp,4.1815948362_dp,6.3691396726_dp,9.7367276671_dp,14.9817468349_dp,&
+ 23.2417208469_dp,36.4072939505_dp,57.7165006394_dp,93.0524051206_dp,154.5727044051_dp,275.3415317763_dp,614.8206695657_dp,0.3816114859_dp,0.4409681802_dp,&
+ 0.5715874075_dp,0.7994100006_dp,1.1698313059_dp,1.7581297911_dp,2.6876523229_dp,4.1609421883_dp,6.5137596498_dp,10.3121683937_dp,16.5396985487_dp,&
+ 27.0108280205_dp,45.5192320567_dp,82.1625739085_dp,177.0957911240_dp,661.1497609718_dp]
+ aw%aw_erange_matrix(:,4) = [0.1942245489_dp,0.6147551504_dp,1.1384592804_dp,1.8585037172_dp,2.9099802892_dp,4.4998377208_dp,6.9552594441_dp,10.8043246093_dp,16.9133032253_dp,&
+ 26.7254744252_dp,42.6898191774_dp,69.0766171353_dp,113.7276867204_dp,192.8055539393_dp,349.6006065415_dp,790.3452737603_dp,0.3936831697_dp,0.4589820405_dp,&
+ 0.6036357188_dp,0.8584885627_dp,1.2781808217_dp,1.9547747000_dp,3.0418929157_dp,4.7968259440_dp,7.6549361447_dp,12.3649985948_dp,20.2496262505_dp,&
+ 33.7670856027_dp,58.0126849704_dp,106.2423790202_dp,230.2949013970_dp,856.7974792736_dp]
+ aw%aw_erange_matrix(:,5) = [0.1977793344_dp,0.6272812805_dp,1.1662618497_dp,1.9146970328_dp,3.0192751478_dp,4.7074780059_dp,7.3434611868_dp,11.5225402840_dp,18.2342831138_dp,&
+ 29.1500315315_dp,47.1447614801_dp,77.2947047525_dp,129.0029463514_dp,221.6596281574_dp,406.7355719018_dp,927.2785886489_dp,0.4010914531_dp,0.4702308484_dp,&
+ 0.6240364829_dp,0.8967364985_dp,1.3494396924_dp,2.0861507928_dp,3.2824399973_dp,5.2360918865_dp,8.4577514041_dp,13.8375110832_dp,22.9665285321_dp,&
+ 38.8239553182_dp,67.5699243680_dp,125.0145140343_dp,272.2104357523_dp,1010.7843885329_dp]
+ aw%aw_erange_matrix(:,6) = [0.2010199598_dp,0.6387647242_dp,1.1919823186_dp,1.9672237865_dp,3.1225339638_dp,4.9057820342_dp,7.7183469335_dp,12.2242186521_dp,19.5408274593_dp,&
+ 31.5798875131_dp,51.6732052000_dp,85.7770369270_dp,145.0284244241_dp,252.4408886700_dp,468.6362428400_dp,1077.3185674270_dp,0.4078548995_dp,0.4806325979_dp,&
+ 0.6431662648_dp,0.9330450826_dp,1.4178702260_dp,2.2137849058_dp,3.5189801563_dp,5.6736133804_dp,9.2684033321_dp,15.3464195837_dp,25.7949391503_dp,&
+ 44.1777207407_dp,77.8637319323_dp,145.5476370987_dp,318.4847845698_dp,1180.7283739724_dp]
+ aw%aw_erange_matrix(:,7) = [0.2036357272_dp,0.6480796035_dp,1.2130110734_dp,2.0105568730_dp,3.2085103104_dp,5.0724515279_dp,8.0364891453_dp,12.8257596802_dp,20.6730636781_dp,&
+ 33.7101155845_dp,55.6932870488_dp,93.4100340197_dp,159.6610710660_dp,280.9748180399_dp,526.8369133777_dp,1219.8782585539_dp,0.4133212123_dp,0.4891333035_dp,&
+ 0.6589889393_dp,0.9633962334_dp,1.4756465826_dp,2.3226398100_dp,3.7228583371_dp,6.0549753566_dp,9.9835456561_dp,16.6949014551_dp,28.3582444400_dp,&
+ 49.1030685081_dp,87.4821676279_dp,165.0097234930_dp,362.7425520277_dp,1343.2809779482_dp]
+ aw%aw_erange_matrix(:,8) = [0.2058745597_dp,0.6560851540_dp,1.2312036533_dp,2.0483275158_dp,3.2840295056_dp,5.2200001614_dp,8.3204227320_dp,13.3672158293_dp,21.7015229918_dp,&
+ 35.6641641476_dp,59.4203432588_dp,100.5691194919_dp,173.5582973450_dp,308.4325898904_dp,583.5453837457_dp,1360.0872526018_dp,0.4180048571_dp,0.4964846624_dp,&
+ 0.6728092420_dp,0.9901400253_dp,1.5269809838_dp,2.4201774666_dp,3.9071667252_dp,6.4030043433_dp,10.6428407911_dp,17.9517964627_dp,30.7760779219_dp,&
+ 53.8090647968_dp,96.7970063398_dp,184.0976852129_dp,406.5124764312_dp,1504.1053871788_dp]
+ aw%aw_erange_matrix(:,9) = [0.2077912924_dp,0.6629634515_dp,1.2469237706_dp,2.0811759162_dp,3.3501432124_dp,5.3500462336_dp,8.5724304784_dp,13.8513493414_dp,22.6283946159_dp,&
+ 37.4403000338_dp,62.8396973494_dp,107.2042380768_dp,186.5815850155_dp,334.4658066377_dp,637.9185442861_dp,1495.6706240607_dp,0.4220184019_dp,0.5028346837_dp,&
+ 0.6848492255_dp,1.0136143492_dp,1.5723626774_dp,2.5070345558_dp,4.0725558633_dp,6.7178768910_dp,11.2446128484_dp,19.1100572735_dp,33.0275110259_dp,&
+ 58.2410816559_dp,105.6752713292_dp,202.5005558789_dp,449.0416009016_dp,1660.4659036836_dp]
+ aw%aw_erange_matrix(:,10) = [0.2094923936_dp,0.6690871465_dp,1.2609893400_dp,2.1107332848_dp,3.4099787231_dp,5.4684406771_dp,8.8032721349_dp,14.2977110381_dp,23.4889292652_dp,&
+ 39.1018169779_dp,66.0648728347_dp,113.5194187887_dp,199.1000985493_dp,359.7546766569_dp,691.2795357746_dp,1629.7753326901_dp,0.4255833454_dp,0.5085145079_dp,&
+ 0.6956987766_dp,1.0349067155_dp,1.6137842105_dp,2.5868202378_dp,4.2255077367_dp,7.0111805679_dp,11.8095483158_dp,20.2066645740_dp,35.1789178138_dp,&
+ 62.5191992847_dp,114.3381260493_dp,220.6457384190_dp,491.2838223352_dp,1815.8906489997_dp]
+ aw%aw_erange_matrix(:,11) = [0.2199648199_dp,0.7071951819_dp,1.3500294829_dp,2.3014898753_dp,3.8039161896_dp,6.2640677360_dp,10.3883548409_dp,17.4342263733_dp,29.6892498137_dp,&
+ 51.4072666001_dp,90.6897262810_dp,163.4029142875_dp,301.8062739164_dp,576.0321730685_dp,1167.1668975223_dp,2866.3462242273_dp,0.4475919613_dp,0.5444247827_dp,&
+ 0.7660427188_dp,1.1760818110_dp,1.8944331370_dp,3.1396588060_dp,5.3110028691_dp,9.1474459873_dp,16.0425147770_dp,28.6838564013_dp,52.3961981225_dp,&
+ 98.1027617656_dp,189.5125190165_dp,385.0546230890_dp,886.8755808827_dp,3279.8478272665_dp]
+ aw%aw_erange_matrix(:,12) = [0.2254855052_dp,0.7275782696_dp,1.3987483827_dp,2.4085395227_dp,4.0308014702_dp,6.7346910616_dp,11.3525925922_dp,19.4003421223_dp,33.7045605198_dp,&
+ 59.6659845037_dp,107.8826671839_dp,199.8010945617_dp,380.5441566179_dp,751.1705566466_dp,1574.9757412239_dp,3976.4773412762_dp,0.4592382989_dp,0.5640363685_dp,&
+ 0.8057309987_dp,1.2580610596_dp,2.0620213178_dp,3.4794870345_dp,5.9992069045_dp,10.5478798269_dp,18.9204492344_dp,34.6829355162_dp,65.1335363101_dp,&
+ 125.7646065496_dp,251.2571114743_dp,528.1385400286_dp,1248.0730162840_dp,4633.2205691667_dp]
+ aw%aw_erange_matrix(:,13) = [0.2291458665_dp,0.7412092104_dp,1.4317646055_dp,2.4821649469_dp,4.1892346702_dp,7.0685405142_dp,12.0481267399_dp,20.8444486250_dp,36.7129393061_dp,&
+ 65.9914860689_dp,121.3803567467_dp,229.1872120887_dp,446.1810946735_dp,902.6024217645_dp,1941.8011404909_dp,5009.8797981362_dp,0.4669775049_dp,0.5773103204_dp,&
+ 0.8331017001_dp,1.3155491614_dp,2.1814882044_dp,3.7259467698_dp,6.5076857600_dp,11.6037988956_dp,21.1394644229_dp,39.4249699560_dp,75.4872508046_dp,&
+ 148.9751731359_dp,304.9770020045_dp,657.7086747979_dp,1587.3127020998_dp,5920.5836116932_dp]
+ aw%aw_erange_matrix(:,14) = [0.2318596903_dp,0.7513766684_dp,1.4566226975_dp,2.5381740443_dp,4.3110511476_dp,7.3280974803_dp,12.5953321268_dp,21.9953590831_dp,39.1449985136_dp,&
+ 71.1874381046_dp,132.6694525539_dp,254.2770222187_dp,503.5763265609_dp,1038.7505242344_dp,2281.9830831059_dp,5995.4201867196_dp,0.4727245350_dp,0.5872949645_dp,&
+ 0.8539595110_dp,1.3598710730_dp,2.2746638421_dp,3.9205272572_dp,6.9144790809_dp,12.4609259649_dp,22.9699959240_dp,43.4081130047_dp,84.3638508080_dp,&
+ 169.3475197779_dp,353.4300407609_dp,778.2539995976_dp,1912.5495272325_dp,7170.1862702921_dp]
+ aw%aw_erange_matrix(:,15) = [0.2339807060_dp,0.7593601296_dp,1.4762809337_dp,2.5828177926_dp,4.4089425095_dp,7.5384598077_dp,13.0428921163_dp,22.9461450702_dp,41.1765817165_dp,&
+ 75.5822463322_dp,142.3542055651_dp,276.1554260895_dp,554.5891223527_dp,1162.5126510088_dp,2599.2657303576_dp,6936.9282990729_dp,0.4772216588_dp,0.5951850642_dp,&
+ 0.8706052760_dp,1.3955573868_dp,2.3503508883_dp,4.0800752099_dp,7.2514580363_dp,13.1790000167_dp,24.5229388830_dp,46.8353673012_dp,92.1257860967_dp,&
+ 187.4970205995_dp,397.5505430031_dp,890.8446878113_dp,2224.2514849963_dp,8382.1693155268_dp]
+ aw%aw_erange_matrix(:,16) = [0.2356793956_dp,0.7657776935_dp,1.4921732725_dp,2.6191360223_dp,4.4890956483_dp,7.7118769938_dp,13.4145537890_dp,23.7420529926_dp,42.8924978643_dp,&
+ 79.3317990745_dp,150.7127022461_dp,295.2912232099_dp,599.9130242432_dp,1274.5505465661_dp,2892.8155189719_dp,7826.4112995750_dp,0.4808268417_dp,0.6015597181_dp,&
+ 0.8841592457_dp,1.4248201349_dp,2.4128521625_dp,4.2128183487_dp,7.5341272004_dp,13.7868247088_dp,25.8508308086_dp,49.7997024600_dp,98.9279932108_dp,&
+ 203.6471318934_dp,437.5258171102_dp,995.0542013082_dp,2519.2792916087_dp,9542.4090958235_dp]
+ aw%aw_erange_matrix(:,17) = [0.2371565111_dp,0.7713754938_dp,1.5061014152_dp,2.6511323500_dp,4.5600934351_dp,7.8663613515_dp,13.7476759824_dp,24.4602645785_dp,44.4526453154_dp,&
+ 82.7702439130_dp,158.4531745840_dp,313.2153957547_dp,642.9446106408_dp,1382.6658986086_dp,3181.5886752821_dp,8718.1400956821_dp,0.4839643244_dp,0.6071435314_dp,&
+ 0.8961089748_dp,1.4507707931_dp,2.4686060916_dp,4.3319773629_dp,7.7896221881_dp,14.3404299411_dp,27.0706817674_dp,52.5494620743_dp,105.3087850947_dp,&
+ 218.9962003902_dp,476.1150312763_dp,1097.5429367020_dp,2815.3425231749_dp,10719.5970542372_dp]
+ aw%aw_erange_matrix(:,18) = [0.2383791084_dp,0.7760210462_dp,1.5177070330_dp,2.6779122634_dp,4.6197910361_dp,7.9968899954_dp,14.0306238436_dp,25.0738482607_dp,45.7942010596_dp,&
+ 85.7488108977_dp,165.2155200571_dp,329.0306611577_dp,681.3643289726_dp,1480.5867105295_dp,3447.6614433086_dp,9554.0768038375_dp,0.4865630036_dp,0.6117940844_dp,&
+ 0.9061164509_dp,1.4726120633_dp,2.5157672599_dp,4.4333150345_dp,8.0081916631_dp,14.8171429018_dp,28.1288792974_dp,54.9549336775_dp,110.9450611137_dp,&
+ 232.7097323559_dp,511.0662157786_dp,1191.9134190740_dp,3092.9786516246_dp,11835.2685529071_dp]
+ aw%aw_erange_matrix(:,19) = [0.2394665902_dp,0.7801625788_dp,1.5280893080_dp,2.7019607355_dp,4.6736119972_dp,8.1150612069_dp,14.2879456072_dp,25.6346618970_dp,47.0272976636_dp,&
+ 88.5041660059_dp,171.5175017002_dp,343.8975074435_dp,717.8562386955_dp,1574.7785572547_dp,3707.5649743359_dp,10383.6173776339_dp,0.4888758675_dp,0.6159527397_dp,&
+ 0.9151075636_dp,1.4923189155_dp,2.5585033151_dp,4.5255698396_dp,8.2081862684_dp,15.2558256454_dp,29.1089076738_dp,57.1990378291_dp,116.2478565054_dp,&
+ 245.7410456839_dp,544.6795257491_dp,1284.0102386442_dp,3368.4543745396_dp,12953.5463215818_dp]
+ aw%aw_erange_matrix(:,20) = [0.2439619664_dp,0.7973783256_dp,1.5716141482_dp,2.8037227500_dp,4.9035780994_dp,8.6252020092_dp,15.4113137626_dp,28.1136928196_dp,52.5555501891_dp,&
+ 101.0585978770_dp,200.7780139937_dp,414.4852435996_dp,895.8803941817_dp,2050.0627104149_dp,5075.6686568281_dp,14954.4580822648_dp,0.4984506753_dp,0.6333689027_dp,&
+ 0.9531960652_dp,1.5766772529_dp,2.7433912393_dp,4.9292826236_dp,9.0945232101_dp,17.2277759200_dp,33.5858729046_dp,67.6424807184_dp,141.4668848886_dp,&
+ 309.3410134400_dp,714.0113279167_dp,1766.7070327012_dp,4881.8715715996_dp,19298.8728735009_dp]
+ aw%aw_erange_matrix(:,21) = [0.2478279300_dp,0.8123088648_dp,1.6098451410_dp,2.8943658057_dp,5.1114173621_dp,9.0934365297_dp,16.4599619538_dp,30.4718781049_dp,57.9279973917_dp,&
+ 113.5632674097_dp,230.7738103388_dp,489.3739960868_dp,1092.8458035605_dp,2604.4914515779_dp,6784.1755383131_dp,21126.5938719292_dp,0.5067031432_dp,0.6486421647_dp,&
+ 0.9871729657_dp,1.6531092746_dp,2.9135882831_dp,5.3073611547_dp,9.9405537607_dp,19.1508072532_dp,38.0595278081_dp,78.3761296950_dp,168.2580432143_dp,&
+ 379.6405402638_dp,910.5686482995_dp,2362.9849944263_dp,6902.2943103602_dp,28308.3872897900_dp]
+ aw%aw_erange_matrix(:,22) = [0.2514110598_dp,0.8262529170_dp,1.6459615928_dp,2.9810777709_dp,5.3128665077_dp,9.5536787342_dp,17.5067289098_dp,32.8670116462_dp,63.4939169303_dp,&
+ 126.8202428653_dp,263.4528827777_dp,573.6956888284_dp,1323.9079398301_dp,3290.3703991318_dp,9054.9595427138_dp,30108.6774943850_dp,0.5143672124_dp,0.6630486295_dp,&
+ 1.0197128862_dp,1.7273374322_dp,3.0812675888_dp,5.6857203227_dp,10.8021228802_dp,21.1482386282_dp,42.8128367051_dp,90.0863080323_dp,198.4197507679_dp,&
+ 461.8721798911_dp,1151.8268578609_dp,3142.5671960808_dp,9776.8791816980_dp,42218.0357732799_dp]
+ aw%aw_erange_matrix(:,23) = [0.2528648661_dp,0.8319400523_dp,1.6608070636_dp,3.0170254246_dp,5.3971276906_dp,9.7480354519_dp,17.9534629117_dp,33.9014551716_dp,65.9309509359_dp,&
+ 132.7183864347_dp,278.2715570858_dp,612.8301683368_dp,1434.3246872856_dp,3630.9670915019_dp,10244.6006180858_dp,35169.9484258880_dp,0.5174810704_dp,0.6689639360_dp,&
+ 1.0332116800_dp,1.7584224449_dp,3.1521769341_dp,5.8474418989_dp,11.1748131102_dp,22.0240893092_dp,44.9299973167_dp,95.3987073443_dp,212.4065171189_dp,&
+ 501.0472318215_dp,1270.7717805347_dp,3544.9212020745_dp,11358.6770977554_dp,50438.7867085082_dp]
+ aw%aw_erange_matrix(:,24) = [0.2540178287_dp,0.8364626133_dp,1.6726606843_dp,3.0458564268_dp,5.4650232643_dp,9.9054313390_dp,18.3172623041_dp,34.7491988801_dp,67.9427763605_dp,&
+ 137.6294300508_dp,290.7381148994_dp,646.1741312441_dp,1529.9418440504_dp,3932.3963561222_dp,11330.9240361175_dp,40008.6302545528_dp,0.5199523330_dp,0.6736843844_dp,&
+ 1.0440414321_dp,1.7834844605_dp,3.2096404326_dp,5.9792371720_dp,11.4804650089_dp,22.7476005967_dp,46.6936240903_dp,99.8680124417_dp,224.3149960761_dp,&
+ 534.9001420101_dp,1375.5456381947_dp,3908.7242534887_dp,12844.6064444480_dp,58542.0291926889_dp]
+ aw%aw_erange_matrix(:,25) = [0.2549866597_dp,0.8402713328_dp,1.6826763795_dp,3.0703054062_dp,5.5228184490_dp,10.0399627163_dp,18.6296349600_dp,35.4808942840_dp,69.6896819013_dp,&
+ 141.9241704959_dp,301.7339346247_dp,675.8978088757_dp,1616.3466709216_dp,4209.8606318184_dp,12358.3316621397_dp,44778.8527500268_dp,0.5220301394_dp,0.6776710138_dp,&
+ 1.0532273130_dp,1.8048276749_dp,3.2587821104_dp,6.0924657188_dp,11.7444239751_dp,23.3761442225_dp,48.2363839893_dp,103.8097568816_dp,234.9225954454_dp,&
+ 565.4312578691_dp,1471.5757374943_dp,4249.6766379633_dp,14284.3739993822_dp,66756.6799545079_dp]
+ aw%aw_erange_matrix(:,26) = [0.2557379623_dp,0.8432302665_dp,1.6904785022_dp,3.0894072855_dp,5.5681138327_dp,10.1457517019_dp,18.8761878055_dp,36.0608740066_dp,71.0812157353_dp,&
+ 145.3652502260_dp,310.6065038413_dp,700.0934038910_dp,1687.4839763069_dp,4441.8642446357_dp,13237.4233285534_dp,49012.9853448564_dp,0.5236421949_dp,0.6807753338_dp,&
+ 1.0604055083_dp,1.8215607028_dp,3.2974406445_dp,6.1818753132_dp,11.9537421510_dp,23.8770049585_dp,49.4727321296_dp,106.9899559504_dp,243.5512252355_dp,&
+ 590.5230779693_dp,1551.5664026893_dp,4539.0466303904_dp,15541.6302935884_dp,74231.5026953161_dp]
+ aw%aw_erange_matrix(:,27) = [0.2564010066_dp,0.8458454742_dp,1.6973895312_dp,3.1063685052_dp,5.6084358624_dp,10.2401858384_dp,19.0969567918_dp,36.5820317312_dp,72.3367447872_dp,&
+ 148.4850951264_dp,318.6981956473_dp,722.3220420976_dp,1753.4648026928_dp,4659.8942229397_dp,14080.0786413567_dp,53206.2646298460_dp,0.5250654315_dp,0.6835242044_dp,&
+ 1.0667801460_dp,1.8364605534_dp,3.3319609425_dp,6.2619625564_dp,12.1418947712_dp,24.3290376869_dp,50.5938079390_dp,109.8898305026_dp,251.4731553408_dp,&
+ 613.7591553860_dp,1626.4857294511_dp,4814.4131352645_dp,16767.8460227627_dp,81800.7679527001_dp]
+ aw%aw_erange_matrix(:,28) = [0.2569579799_dp,0.8480451452_dp,1.7032135982_dp,3.1206920238_dp,5.6425623211_dp,10.3203007309_dp,19.2847495852_dp,37.0266973365_dp,73.4118087721_dp,&
+ 151.1678172710_dp,325.6920218555_dp,741.6587582025_dp,1811.3449162210_dp,4853.3898389440_dp,14841.2606227166_dp,57109.6782120646_dp,0.5262613911_dp,0.6858400767_dp,&
+ 1.0721640653_dp,1.8490739264_dp,3.3612548402_dp,6.3301068408_dp,12.3024758825_dp,24.7161813844_dp,51.5578904486_dp,112.3958353629_dp,258.3601782316_dp,&
+ 634.1127155092_dp,1692.7687392040_dp,5061.4926908256_dp,17892.6585424032_dp,88993.4207075852_dp]
+ aw%aw_erange_matrix(:,29) = [0.2601086530_dp,0.8605372769_dp,1.7364832603_dp,3.2030405150_dp,5.8400927889_dp,10.7874442332_dp,20.3888339693_dp,39.6659293840_dp,79.8639942984_dp,&
+ 167.4841928139_dp,368.9281247815_dp,863.6957532433_dp,2186.7779179576_dp,6158.1308626283_dp,20299.1328844362_dp,88518.0624195757_dp,0.5330336883_dp,0.6990576419_dp,&
+ 1.1031270006_dp,1.9221308937_dp,3.5321977981_dp,6.7310729459_dp,13.2563078352_dp,27.0409938894_dp,57.4220651473_dp,127.8761716171_dp,301.7231778952_dp,&
+ 765.4361399106_dp,2134.7178433253_dp,6789.2247063929_dp,26396.7938069641_dp,151820.0966657112_dp]
+ aw%aw_erange_matrix(:,30) = [0.2614966852_dp,0.8660674107_dp,1.7513173842_dp,3.2400462999_dp,5.9295952618_dp,11.0010208697_dp,20.8987354919_dp,40.8990199295_dp,82.9197874585_dp,&
+ 175.3383856309_dp,390.1601646950_dp,925.1616158777_dp,2382.3435121866_dp,6871.1762964399_dp,23520.7435741661_dp,110153.9881294830_dp,0.5360210432_dp,0.7049445153_dp,&
+ 1.1170457625_dp,1.9552577903_dp,3.6104195243_dp,6.9164166856_dp,13.7023077006_dp,28.1425885947_dp,60.2445555475_dp,135.4684857718_dp,323.4906988269_dp,&
+ 833.3513502597_dp,2372.6392364149_dp,7775.2837755386_dp,31745.5832863604_dp,200031.9346445932_dp]
+ aw%aw_erange_matrix(:,31) = [0.2623927492_dp,0.8696462837_dp,1.7609524952_dp,3.2641782950_dp,5.9882069182_dp,11.1415264621_dp,21.2359218209_dp,41.7193109697_dp,84.9669229685_dp,&
+ 180.6447640614_dp,404.6557682024_dp,967.6939419883_dp,2520.1487688994_dp,7387.1215399292_dp,25957.6498637107_dp,128242.7476018067_dp,0.5379508276_dp,0.7087659818_dp,&
+ 1.1261236891_dp,1.9769586430_dp,3.6618994578_dp,7.0390289460_dp,13.9991008027_dp,28.8806875885_dp,62.1510894274_dp,140.6475316153_dp,338.5222526788_dp,&
+ 881.0021806147_dp,2543.2483567892_dp,8505.7649642908_dp,35939.1316653421_dp,243328.3687408177_dp]
+ aw%aw_erange_matrix(:,32) = [0.2627718541_dp,0.8711624407_dp,1.7650423724_dp,3.2744439752_dp,6.0131978634_dp,11.2015882891_dp,21.3804756521_dp,42.0721537208_dp,85.8509744751_dp,&
+ 182.9472918632_dp,410.9831456456_dp,986.4022841619_dp,2581.3991354344_dp,7619.9982039966_dp,27086.8268950307_dp,137169.1569910549_dp,0.5387675634_dp,0.7103875892_dp,&
+ 1.1299856469_dp,1.9862130069_dp,3.6839098411_dp,7.0916041097_dp,14.1267854429_dp,29.1994539835_dp,62.9782445560_dp,142.9069894020_dp,345.1258622933_dp,&
+ 902.1267806327_dp,2619.8368734934_dp,8839.9515605404_dp,37923.2973041788_dp,265681.1476518737_dp]
+ aw%aw_erange_matrix(:,33) = [0.2630563241_dp,0.8723010280_dp,1.7681172895_dp,3.2821715705_dp,6.0320340151_dp,11.2469199987_dp,21.4897444333_dp,42.3393399670_dp,86.5218140028_dp,&
+ 184.6989170267_dp,415.8117268558_dp,1000.7370869878_dp,2628.5923438906_dp,7800.9192070029_dp,27976.7347726542_dp,144460.9017578381_dp,0.5393805485_dp,0.7116065610_dp,&
+ 1.1328929300_dp,1.9931889395_dp,3.7005241796_dp,7.1313503089_dp,14.2234810120_dp,29.4413473310_dp,63.6074429868_dp,144.6307313309_dp,350.1822634135_dp,&
+ 918.3799832426_dp,2679.1608813270_dp,9101.4598729715_dp,39504.8220871568_dp,284420.3782975398_dp]
+ aw%aw_erange_matrix(:,34) = [0.2631220516_dp,0.8725641954_dp,1.7688284187_dp,3.2839599089_dp,6.0363962050_dp,11.2574261051_dp,21.5150897584_dp,42.4013736123_dp,86.6777403351_dp,&
+ 185.1066253440_dp,416.9375814523_dp,1004.0867366174_dp,2639.6521074329_dp,7843.5048705938_dp,28187.8193172578_dp,146224.5950682552_dp,0.5395221931_dp,0.7118884373_dp,&
+ 1.1335657430_dp,1.9948045635_dp,3.7043749873_dp,7.1405702071_dp,14.2459323077_dp,29.4975719842_dp,63.7538844428_dp,145.0325865154_dp,351.3634064255_dp,&
+ 922.1861683415_dp,2693.1017695894_dp,9163.2515901222_dp,39882.2284393060_dp,289017.1383106848_dp]
+ aw%aw_erange_matrix(:,35) = [0.2632430200_dp,0.8730486024_dp,1.7701375706_dp,3.2872526463_dp,6.0444296439_dp,11.2767795705_dp,21.5617948504_dp,42.5157341799_dp,86.9653380131_dp,&
+ 185.8590678941_dp,419.0170693894_dp,1010.2806915518_dp,2660.1360303686_dp,7922.5633528021_dp,28581.3200056667_dp,149548.2524287735_dp,0.5397828928_dp,0.7124073530_dp,&
+ 1.1348045430_dp,1.9977798579_dp,3.7114686158_dp,7.1575602956_dp,14.2873222561_dp,29.6012761437_dp,64.0241425762_dp,145.7747325103_dp,353.5470109870_dp,&
+ 929.2326291739_dp,2718.9608472867_dp,9278.1983512593_dp,40588.0967343748_dp,297748.1292678806_dp]
+ aw%aw_erange_matrix(:,36) = [0.2632429401_dp,0.8730483137_dp,1.7701369194_dp,3.2872513050_dp,6.0444269378_dp,11.2767744685_dp,21.5617863587_dp,42.5157223060_dp,86.9653280383_dp,&
+ 185.8590851153_dp,419.0171719308_dp,1010.2809208136_dp,2660.1364682755_dp,7922.5650536918_dp,28581.3263301165_dp,149548.1582384946_dp,0.5397827248_dp,0.7124070868_dp,&
+ 1.1348040577_dp,1.9977789035_dp,3.7114667697_dp,7.1575573632_dp,14.2873184980_dp,29.6012739603_dp,64.0241513050_dp,145.7747859397_dp,353.5471227288_dp,&
+ 929.2327874624_dp,2718.9611614626_dp,9278.2017268714_dp,40588.1035800849_dp,297747.7938530878_dp]
+ aw%aw_erange_matrix(:,37) = [0.2632429813_dp,0.8730484658_dp,1.7701372744_dp,3.2872520534_dp,6.0444284162_dp,11.2767770018_dp,21.5617897706_dp,42.5157249296_dp,86.9653208691_dp,&
+ 185.8590311595_dp,419.0169629233_dp,1010.2803149420_dp,2660.1347243218_dp,7922.5593417351_dp,28581.2923662009_dp,149547.9734559663_dp,0.5397828118_dp,0.7124072317_dp,&
+ 1.1348043344_dp,1.9977794407_dp,3.7114677002_dp,7.1575584514_dp,14.2873190018_dp,29.6012708257_dp,64.0241309025_dp,145.7747002374_dp,353.5468820873_dp,&
+ 929.2321366837_dp,2718.9594320326_dp,9278.1929046266_dp,40588.0340115379_dp,297747.5613474760_dp]
+ case(18)
+ aw%energy_range(:) = [100.0000_dp,200.0000_dp,300.0000_dp,400.0000_dp,500.0000_dp,600.0000_dp,700.0000_dp,800.0000_dp,900.0000_dp,&
+ 1000.0000_dp,2000.0000_dp,3000.0000_dp,4000.0000_dp,5000.0000_dp,6000.0000_dp,8000.0000_dp,9000.0000_dp,10000.0000_dp,&
+ 20000.0000_dp,30000.0000_dp,40000.0000_dp,50000.0000_dp,60000.0000_dp,70000.0000_dp,80000.0000_dp,100000.0000_dp,200000.0000_dp,&
+ 300000.0000_dp,400000.0000_dp,500000.0000_dp,600000.0000_dp,700000.0000_dp,1000000.0000_dp,2000000.0000_dp,3000000.0000_dp,4000000.0000_dp,5000000.0000_dp&
+ ]
+ aw%aw_erange_matrix(:,1) = [0.1527981223_dp,0.4736735191_dp,0.8422879268_dp,1.2969949102_dp,1.8866941753_dp,2.6768243548_dp,3.7576314748_dp,5.2560227000_dp,7.3529844088_dp,&
+ 10.3098202106_dp,14.5091054561_dp,20.5224221475_dp,29.2333380207_dp,42.0933873501_dp,61.7573643645_dp,94.0319878961_dp,155.8524525586_dp,331.6666454386_dp,&
+ 0.3081114816_dp,0.3389838301_dp,0.4045613209_dp,0.5129049024_dp,0.6772652660_dp,0.9178430315_dp,1.2646393907_dp,1.7618830445_dp,2.4749338974_dp,&
+ 3.5014291571_dp,4.9905064808_dp,7.1795753170_dp,10.4751687346_dp,15.6616554134_dp,24.5415634965_dp,42.3610859910_dp,90.6499809216_dp,345.5812203285_dp]
+ aw%aw_erange_matrix(:,2) = [0.1630595518_dp,0.5078454432_dp,0.9113242587_dp,1.4219143796_dp,2.1032373061_dp,3.0432092324_dp,4.3670504641_dp,6.2565617694_dp,8.9792704978_dp,&
+ 12.9333140459_dp,18.7182748971_dp,27.2516047571_dp,39.9742332838_dp,59.2607021773_dp,89.4001916667_dp,139.5646279037_dp,236.0119955160_dp,508.8712615468_dp,&
+ 0.3291860241_dp,0.3669636069_dp,0.4479530140_dp,0.5836830921_dp,0.7934040217_dp,1.1070968212_dp,1.5704132532_dp,2.2524718420_dp,3.2581634715_dp,&
+ 4.7480031887_dp,6.9716245615_dp,10.3290234975_dp,15.4980119683_dp,23.7506428902_dp,37.9159495927_dp,66.0684302416_dp,141.2646651462_dp,534.8041524444_dp]
+ aw%aw_erange_matrix(:,3) = [0.1705157849_dp,0.5329774509_dp,0.9631534900_dp,1.5180492354_dp,2.2742864325_dp,3.3403090241_dp,4.8743423617_dp,7.1117069959_dp,10.4071362841_dp,&
+ 15.3013839295_dp,22.6281315821_dp,33.6909746028_dp,50.5733327575_dp,76.7403326936_dp,118.4300130927_dp,188.7754427627_dp,324.7362218774_dp,708.1501449317_dp,&
+ 0.3445471260_dp,0.3879712607_dp,0.4817375016_dp,0.6406265045_dp,0.8896307917_dp,1.2683429214_dp,1.8382595742_dp,2.6945175568_dp,3.9847496713_dp,&
+ 5.9398737665_dp,8.9260338600_dp,13.5377629091_dp,20.7845131696_dp,32.5347358248_dp,52.8383624414_dp,93.0090646173_dp,199.0924806088_dp,749.7941673117_dp]
+ aw%aw_erange_matrix(:,4) = [0.1753724416_dp,0.5494915993_dp,0.9977173837_dp,1.5832956162_dp,2.3925275383_dp,3.5495056900_dp,5.2382028596_dp,7.7366662011_dp,11.4709080813_dp,&
+ 17.1011211083_dp,25.6620404322_dp,38.7975529653_dp,59.1717536234_dp,91.2571770104_dp,143.1147450183_dp,231.5674047467_dp,403.3643728158_dp,887.0367390720_dp,&
+ 0.3545753722_dp,0.4019794831_dp,0.5048425080_dp,0.6804591848_dp,0.9583294358_dp,1.3857363627_dp,2.0371295696_dp,3.0294111303_dp,4.5468532602_dp,&
+ 6.8822916295_dp,10.5070740928_dp,16.1959498886_dp,25.2721771652_dp,40.1736865810_dp,66.1018252049_dp,117.3386399133_dp,251.6255820785_dp,944.3885629150_dp]
+ aw%aw_erange_matrix(:,5) = [0.1792634140_dp,0.5628074380_dp,1.0258882361_dp,1.6371516574_dp,2.4914222321_dp,3.7268076313_dp,5.5507285118_dp,8.2808021364_dp,12.4102029358_dp,&
+ 18.7137008125_dp,28.4225509460_dp,43.5198027864_dp,67.2597852973_dp,105.1576978013_dp,167.1846844824_dp,274.0316583356_dp,482.5800516279_dp,1069.1455217709_dp,&
+ 0.3626230022_dp,0.4133949264_dp,0.5240129938_dp,0.7140417682_dp,1.0170969827_dp,1.4875843790_dp,2.2121408831_dp,3.3284979466_dp,5.0566306497_dp,&
+ 7.7508728374_dp,11.9891683644_dp,18.7325758390_dp,29.6347190103_dp,47.7398012261_dp,79.4699929121_dp,142.1908163494_dp,305.5941129510_dp,1143.8185002949_dp]
+ aw%aw_erange_matrix(:,6) = [0.1824275671_dp,0.5736934774_dp,1.0491222851_dp,1.6820304473_dp,2.5747196681_dp,3.8777631059_dp,5.8197221117_dp,8.7543843212_dp,13.2371920221_dp,&
+ 20.1507264819_dp,30.9140562606_dp,47.8396956470_dp,74.7650047430_dp,118.2516977816_dp,190.2115173141_dp,315.2750004868_dp,560.5441858754_dp,1250.0374608106_dp,&
+ 0.3691763555_dp,0.4228081801_dp,0.5400524031_dp,0.7425032375_dp,1.0674915506_dp,1.5759280281_dp,2.3657256452_dp,3.5941590911_dp,5.5152047015_dp,&
+ 8.5426973513_dp,13.3594489834_dp,21.1129759784_dp,33.7929507589_dp,55.0675461174_dp,92.6154883865_dp,166.9270513977_dp,359.6149740839_dp,1343.0921742095_dp]
+ aw%aw_erange_matrix(:,7) = [0.1845402510_dp,0.5809913394_dp,1.0648021114_dp,1.7125536673_dp,2.6318299464_dp,3.9821018390_dp,6.0071758416_dp,9.0871950403_dp,13.8234621614_dp,&
+ 21.1788583886_dp,32.7140056593_dp,50.9928543565_dp,80.3035192335_dp,128.0271172500_dp,207.6104411774_dp,346.8108778212_dp,620.7887994110_dp,1390.8547791118_dp,&
+ 0.3735565554_dp,0.4291597901_dp,0.5509930923_dp,0.7621042619_dp,1.1025040768_dp,1.6378374763_dp,2.4743053650_dp,3.7836997749_dp,5.8455413731_dp,&
+ 9.1189076723_dp,14.3673717310_dp,22.8839631506_dp,36.9240327578_dp,60.6541254041_dp,102.7587257895_dp,186.2028175932_dp,401.9170351636_dp,1498.9565722365_dp]
+ aw%aw_erange_matrix(:,8) = [0.1868028095_dp,0.5888334464_dp,1.0817455973_dp,1.7457516566_dp,2.6943634927_dp,4.0971241083_dp,6.2152460671_dp,9.4592277517_dp,14.4836733720_dp,&
+ 22.3456860772_dp,34.7736661548_dp,54.6327852171_dp,86.7572435755_dp,139.5319952300_dp,228.3021868469_dp,384.7072757845_dp,693.8618958579_dp,1562.7906525256_dp,&
+ 0.3782516137_dp,0.4360221814_dp,0.5629206924_dp,0.7836442748_dp,1.1412631241_dp,1.7068676743_dp,2.5962717093_dp,3.9982573034_dp,6.2225285063_dp,&
+ 9.7821717658_dp,15.5382258481_dp,24.9613535034_dp,40.6349607723_dp,67.3468998832_dp,115.0396342009_dp,209.7488892780_dp,453.8302508246_dp,1690.0724518598_dp]
+ aw%aw_erange_matrix(:,9) = [0.1889192323_dp,0.5961942268_dp,1.0977388657_dp,1.7772929339_dp,2.7541781755_dp,4.2078951751_dp,6.4170137568_dp,9.8225699892_dp,15.1332825355_dp,&
+ 23.5028395309_dp,36.8333949661_dp,58.3054821199_dp,93.3316171825_dp,151.3722280049_dp,249.8269779137_dp,424.5573643490_dp,771.4557948840_dp,1746.6429947131_dp,&
+ 0.3826473328_dp,0.4424985483_dp,0.5742792596_dp,0.8043204163_dp,1.1787417405_dp,1.7741030137_dp,2.7159546043_dp,4.2104439185_dp,6.5984257859_dp,&
+ 10.4493076166_dp,16.7268978412_dp,27.0913648258_dp,44.4802785076_dp,74.3592538063_dp,128.0493684396_dp,234.9282829482_dp,509.6295674211_dp,1895.3494531455_dp]
+ aw%aw_erange_matrix(:,10) = [0.1903879496_dp,0.6013168240_dp,1.1089208087_dp,1.7994640492_dp,2.7964566007_dp,4.2866286979_dp,6.5612419722_dp,10.0838243357_dp,15.6032531027_dp,&
+ 24.3454652121_dp,38.3436918964_dp,61.0185260176_dp,98.2269380823_dp,160.2640090902_dp,266.1379252521_dp,455.0313652623_dp,831.2881474395_dp,1889.2621396318_dp,&
+ 0.3857000407_dp,0.4470258630_dp,0.5822782434_dp,0.8189759799_dp,1.2054673384_dp,1.8223342042_dp,2.8023370561_dp,4.3645792132_dp,6.8733432774_dp,&
+ 10.9407585128_dp,17.6093055967_dp,28.6856426725_dp,47.3838669100_dp,79.7036000150_dp,138.0572536990_dp,254.4553065018_dp,553.1007480388_dp,2055.1987987535_dp]
+ aw%aw_erange_matrix(:,11) = [0.2004773481_dp,0.6368375672_dp,1.1876500661_dp,1.9583390236_dp,3.1049903474_dp,4.8719302829_dp,7.6540035084_dp,12.1029440095_dp,19.3126222915_dp,&
+ 31.1473126488_dp,50.8338732988_dp,84.0516485483_dp,140.9901400583_dp,240.3905954302_dp,418.1349129991_dp,749.0950031399_dp,1427.9283160510_dp,3346.5458889158_dp,&
+ 0.4067217569_dp,0.4788809259_dp,0.6399266301_dp,0.9268650214_dp,1.4061641204_dp,2.1918280699_dp,3.4779960725_dp,5.5969933640_dp,9.1237199299_dp,&
+ 15.0663243585_dp,25.2211938823_dp,42.8502473564_dp,74.0218425104_dp,130.4575379986_dp,236.5689891584_dp,453.0888523964_dp,1004.4155925382_dp,3714.2671841220_dp]
+ aw%aw_erange_matrix(:,12) = [0.2060923936_dp,0.6568656934_dp,1.2329832605_dp,2.0520357907_dp,3.2914706387_dp,5.2345868421_dp,8.3485657989_dp,13.4209241076_dp,21.8030961178_dp,&
+ 35.8535966396_dp,59.7602909927_dp,101.0994830552_dp,173.8694957238_dp,304.6097011437_dp,545.5713806587_dp,1007.6354663732_dp,1977.0084005764_dp,4735.0152742876_dp,&
+ 0.4184608131_dp,0.4972036411_dp,0.6741675114_dp,0.9927793132_dp,1.5320651526_dp,2.4298648191_dp,3.9254906978_dp,6.4374740045_dp,10.7070328659_dp,&
+ 18.0675541150_dp,30.9613891161_dp,53.9559505932_dp,95.8098141785_dp,173.9182100598_dp,325.1068088959_dp,640.0565130514_dp,1442.8622811605_dp,5330.2153116126_dp]
+ aw%aw_erange_matrix(:,13) = [0.2094752506_dp,0.6690253334_dp,1.2608469589_dp,2.1104329482_dp,3.4093675338_dp,5.4672211845_dp,8.8008565440_dp,14.2928786861_dp,23.4788549362_dp,&
+ 39.0785473296_dp,65.9992861070_dp,113.2752218097_dp,197.9172373939_dp,352.8303735122_dp,644.0840718013_dp,1213.8952851159_dp,2429.0637615777_dp,5906.9084339158_dp,&
+ 0.4255474045_dp,0.5084570324_dp,0.6955884802_dp,1.0346890513_dp,1.6133572157_dp,2.5859849971_dp,4.2238534821_dp,7.0077645581_dp,11.8017672094_dp,&
+ 20.1852821928_dp,35.1022677213_dp,62.1633910973_dp,112.3459056401_dp,207.8857691341_dp,396.5505381224_dp,795.8587346363_dp,1817.2294197627_dp,6715.7635445298_dp]
+ aw%aw_erange_matrix(:,14) = [0.2121581617_dp,0.6787202020_dp,1.2832499726_dp,2.1578321904_dp,3.5059957828_dp,5.6597904823_dp,9.1791392965_dp,15.0301826515_dp,24.9125941632_dp,&
+ 41.8731378865_dp,71.4815357600_dp,124.1393652143_dp,219.7421301739_dp,397.4317148687_dp,737.1595777719_dp,1413.3997553296_dp,2876.9782299657_dp,7091.0678107240_dp,&
+ 0.4311754820_dp,0.5174998412_dp,0.7130167803_dp,1.0691630744_dp,1.6809311462_dp,2.7171607638_dp,4.4774063857_dp,7.4983357144_dp,12.7559194999_dp,&
+ 22.0575880369_dp,38.8208607896_dp,69.6617108245_dp,127.7446017458_dp,240.1988094408_dp,466.1397468408_dp,951.4027569398_dp,2198.4961458203_dp,8133.3203336836_dp]
+ aw%aw_erange_matrix(:,15) = [0.2139921648_dp,0.6853739849_dp,1.2987228567_dp,2.1908018772_dp,3.5736987910_dp,5.7957235572_dp,9.4482495044_dp,15.5590537094_dp,25.9502231069_dp,&
+ 43.9153424776_dp,75.5306015660_dp,132.2581172941_dp,236.2663898368_dp,431.6998885572_dp,809.8664998975_dp,1572.1602361118_dp,3240.3954623280_dp,8067.4677286845_dp,&
+ 0.4350267749_dp,0.5237425120_dp,0.7251601402_dp,1.0933802360_dp,1.7287741808_dp,2.8107871087_dp,4.6599346945_dp,7.8547530404_dp,13.4560860148_dp,&
+ 23.4465065014_dp,41.6124750965_dp,75.3655610751_dp,139.6318053004_dp,265.5594759721_dp,521.7790434550_dp,1078.2496818124_dp,2514.6604163544_dp,9314.1638997611_dp]
+ aw%aw_erange_matrix(:,16) = [0.2178151179_dp,0.6993140505_dp,1.3313988591_dp,2.2610539640_dp,3.7192949294_dp,6.0908275329_dp,10.0383009651_dp,16.7310269976_dp,28.2761942458_dp,&
+ 48.5511764282_dp,84.8506107486_dp,151.2366932549_dp,275.5700358601_dp,514.8276950982_dp,990.2516885162_dp,1976.2621831459_dp,4191.2288257724_dp,10683.1908182285_dp,&
+ 0.4430653606_dp,0.5369178579_dp,0.7510882812_dp,1.1456226846_dp,1.8330157272_dp,3.0168938111_dp,5.0661839848_dp,8.6574888928_dp,15.0535279971_dp,&
+ 26.6605642029_dp,48.1744338564_dp,89.0091722681_dp,168.6305683277_dp,328.8251790857_dp,664.1592767767_dp,1412.0406993233_dp,3367.6131241992_dp,12525.3812822271_dp]
+ aw%aw_erange_matrix(:,17) = [0.2188081567_dp,0.7029508216_dp,1.3399817439_dp,2.2796476603_dp,3.7581319758_dp,6.1701789054_dp,10.1983028044_dp,17.0517005110_dp,28.9188643373_dp,&
+ 49.8458188665_dp,87.4842442568_dp,156.6703747359_dp,286.9896650454_dp,539.3866234032_dp,1044.5712481684_dp,2100.6359589853_dp,4490.8966264193_dp,11524.8126775818_dp,&
+ 0.4451558102_dp,0.5403766820_dp,0.7579621105_dp,1.1595935419_dp,1.8611279523_dp,3.0729639927_dp,5.1777339300_dp,8.8801319309_dp,15.5014537915_dp,&
+ 27.5726472053_dp,50.0613660602_dp,92.9907021237_dp,177.2345753094_dp,347.9535003042_dp,708.1450322595_dp,1517.6510781274_dp,3643.4817836702_dp,13572.1857422280_dp]
+ aw%aw_erange_matrix(:,18) = [0.2197828445_dp,0.7065268576_dp,1.3484452335_dp,2.2980407479_dp,3.7966747852_dp,6.2491922090_dp,10.3581829359_dp,17.3733379970_dp,29.5661089226_dp,&
+ 51.1555523006_dp,90.1619002253_dp,162.2258144685_dp,298.7390660052_dp,564.8375634919_dp,1101.3350723375_dp,2231.8691674585_dp,4810.4999157353_dp,12431.0893265124_dp,&
+ 0.4472086016_dp,0.5437865853_dp,0.7647663233_dp,1.1734727600_dp,1.8891535196_dp,3.1290645559_dp,5.2897782356_dp,9.1047033174_dp,15.9553383683_dp,&
+ 28.5015525163_dp,51.9939423727_dp,97.0943433317_dp,186.1660494056_dp,367.9733742722_dp,754.6199482807_dp,1630.4422765799_dp,3941.1471257651_dp,14706.2839701511_dp]
+ aw%aw_erange_matrix(:,19) = [0.2265068924_dp,0.7313723956_dp,1.4079029715_dp,2.4288666490_dp,4.0743494431_dp,6.8260310413_dp,11.5419454962_dp,19.7913469464_dp,34.5140986987_dp,&
+ 61.3557522089_dp,111.4538331601_dp,207.4531772156_dp,397.0044159553_dp,784.4559544064_dp,1609.5435792804_dp,3459.5173734479_dp,7955.7224057844_dp,21787.7872792344_dp,&
+ 0.4613964399_dp,0.5677182986_dp,0.8132820575_dp,1.2738440119_dp,2.0946622147_dp,3.5464814496_dp,6.1366541222_dp,10.8315244763_dp,19.5122061582_dp,&
+ 35.9359276337_dp,67.8312378331_dp,131.6382289194_dp,263.7064908785_dp,548.1543124891_dp,1191.1152093944_dp,2744.1365262322_dp,7034.9730156755_dp,26779.6427117294_dp]
+ aw%aw_erange_matrix(:,20) = [0.2299046347_dp,0.7440466445_dp,1.4386817413_dp,2.4977004608_dp,4.2229117582_dp,7.1400486674_dp,12.1983208840_dp,21.1590457313_dp,37.3746256619_dp,&
+ 67.3972149915_dp,124.4113415746_dp,235.8339174556_dp,460.8695878332_dp,933.1280623325_dp,1970.5451213787_dp,4383.4382370187_dp,10490.0415539656_dp,29853.7138953906_dp,&
+ 0.4685835491_dp,0.5800895256_dp,0.8388841363_dp,1.3277922637_dp,2.2071337130_dp,3.7792979087_dp,6.6187541544_dp,11.8367180574_dp,21.6341446873_dp,&
+ 40.4936762994_dp,77.8419038960_dp,154.2432177310_dp,316.5085486601_dp,676.6859045395_dp,1520.1522622007_dp,3640.7662046546_dp,9709.9025797711_dp,37642.0149894778_dp]
+ aw%aw_erange_matrix(:,21) = [0.2322426137_dp,0.7528155675_dp,1.4601566795_dp,2.5461768342_dp,4.3285472611_dp,7.3655789295_dp,12.6748091407_dp,22.1635689596_dp,39.5028735027_dp,&
+ 71.9574649193_dp,134.3529357777_dp,258.0191755122_dp,511.8853109587_dp,1054.9582203366_dp,2275.6093922057_dp,5194.4156325965_dp,12821.7854876095_dp,37657.6423999949_dp,&
+ 0.4735360781_dp,0.5887137683_dp,0.8569421263_dp,1.3662449059_dp,2.2881386212_dp,3.9488343848_dp,6.9740393893_dp,12.5872963374_dp,23.2418684237_dp,&
+ 44.0038125005_dp,85.6955724242_dp,172.3579359302_dp,359.8809360759_dp,785.4069036400_dp,1808.5700733323_dp,4462.1506943232_dp,12290.4942808444_dp,48494.3206443843_dp]
+ aw%aw_erange_matrix(:,22) = [0.2336768436_dp,0.7582143877_dp,1.4734520876_dp,2.5763743626_dp,4.3947703836_dp,7.5079066797_dp,12.9776624895_dp,22.8070387800_dp,40.8780295306_dp,&
+ 74.9328525019_dp,140.9115314301_dp,272.8423532693_dp,546.4815978838_dp,1139.0497298808_dp,2490.7560668022_dp,5782.0074376657_dp,14570.4471420771_dp,43741.3576559383_dp,&
+ 0.4765770918_dp,0.5940500004_dp,0.8682017317_dp,1.3903872862_dp,2.3393490281_dp,4.0568008584_dp,7.2021080821_dp,13.0733720716_dp,24.2932834607_dp,&
+ 46.3248131822_dp,90.9542469493_dp,184.6642780706_dp,389.8515787306_dp,862.0796631928_dp,2017.1246766216_dp,5075.1705599863_dp,14292.7434800951_dp,57167.3354554488_dp]
+ aw%aw_erange_matrix(:,23) = [0.2349711741_dp,0.7630994958_dp,1.4855312811_dp,2.6039326902_dp,4.4554861518_dp,7.6390323637_dp,13.2581387984_dp,23.4063874175_dp,42.1670929633_dp,&
+ 77.7420965786_dp,147.1549158039_dp,287.0876041224_dp,580.1016244922_dp,1221.8669259734_dp,2706.1509321370_dp,6382.6921105031_dp,16407.5280492903_dp,50341.3630128390_dp,&
+ 0.4793233813_dp,0.5988959516_dp,0.8784840550_dp,1.4125452718_dp,2.3865869706_dp,4.1569264641_dp,7.4148536739_dp,13.5297327259_dp,25.2875843255_dp,&
+ 48.5377313573_dp,96.0150836930_dp,196.6366941974_dp,419.3845618102_dp,938.8088067222_dp,2229.8751236449_dp,5716.1223474154_dp,16452.9800581583_dp,66773.6908077037_dp]
+ aw%aw_erange_matrix(:,24) = [0.2362056864_dp,0.7677702998_dp,1.4971240753_dp,2.6304912868_dp,4.5142511221_dp,7.7665188164_dp,13.5321609484_dp,23.9950874146_dp,43.4408449937_dp,&
+ 80.5367989944_dp,153.4142279527_dp,301.4979966589_dp,614.4734307780_dp,1307.6229833800_dp,2932.7423350003_dp,7027.5640383226_dp,18433.7806581014_dp,57865.4795639180_dp,&
+ 0.4819444399_dp,0.6035448238_dp,0.8883992010_dp,1.4340115990_dp,2.4325645800_dp,4.2548680283_dp,7.6240978812_dp,13.9813064760_dp,26.2781501086_dp,&
+ 50.7593479718_dp,101.1408282912_dp,208.8878226568_dp,449.9752198065_dp,1019.4696542107_dp,2457.7060905133_dp,6419.2205665980_dp,18898.5337435476_dp,77962.5285029020_dp]
+ aw%aw_erange_matrix(:,25) = [0.2373811804_dp,0.7722283067_dp,1.5082286277_dp,2.6560325699_dp,4.5709979484_dp,7.8901603872_dp,13.7991626271_dp,24.5716663778_dp,44.6955816594_dp,&
+ 83.3078107108_dp,159.6671289369_dp,316.0196927701_dp,649.4705607609_dp,1396.0394640284_dp,3170.0394143638_dp,7716.7206819492_dp,20659.4302682909_dp,66423.1120212093_dp,&
+ 0.4844417397_dp,0.6079960880_dp,0.8979397304_dp,1.4547589152_dp,2.4772012954_dp,4.3504088347_dp,7.8292862308_dp,14.4267153785_dp,27.2616042688_dp,&
+ 52.9814469879_dp,106.3116632913_dp,221.3708125829_dp,481.5183314923_dp,1103.8598269916_dp,2700.4771705858_dp,7186.6895812688_dp,21655.8394871780_dp,90981.2260411802_dp]
+ aw%aw_erange_matrix(:,26) = [0.2384929321_dp,0.7764541060_dp,1.5187910501_dp,2.6804190928_dp,4.6253918957_dp,8.0091653367_dp,14.0573010465_dp,25.1318593329_dp,45.9214125315_dp,&
+ 86.0320248361_dp,165.8589709257_dp,330.5213437011_dp,684.7716456399_dp,1486.3194127934_dp,3416.0807835360_dp,8445.7682576954_dp,23080.0500376109_dp,76077.3463064641_dp,&
+ 0.4868050225_dp,0.6122283656_dp,0.9070534966_dp,1.4746621676_dp,2.5202048636_dp,4.4428752109_dp,8.0288699041_dp,14.8623807033_dp,28.2295988616_dp,&
+ 55.1842978329_dp,111.4801345970_dp,233.9693080953_dp,513.7236927079_dp,1191.2537920844_dp,2956.4629917081_dp,8015.5672953765_dp,24733.8193867627_dp,106025.7763539200_dp]
+ aw%aw_erange_matrix(:,27) = [0.2424066958_dp,0.7914046541_dp,1.5564443104_dp,2.7680823572_dp,4.8226295707_dp,8.4446731203_dp,15.0114711050_dp,27.2256530508_dp,50.5608704286_dp,&
+ 96.4912212100_dp,190.0298069297_dp,388.2508224812_dp,828.6545663149_dp,1865.1697805908_dp,4487.8156685859_dp,11785.0441837860_dp,35002.1836037296_dp,128962.1250768669_dp,&
+ 0.4951355072_dp,0.6273021161_dp,0.9398489002_dp,1.5469558320_dp,2.6778932564_dp,4.7854195711_dp,8.7766219472_dp,16.5153607224_dp,31.9551714346_dp,&
+ 63.8025814509_dp,132.0903298321_dp,285.3568780777_dp,648.7347131305_dp,1570.3680700535_dp,4117.2842170109_dp,12010.0206109856_dp,40950.7873618795_dp,194612.8629584392_dp]
+ aw%aw_erange_matrix(:,28) = [0.2451483463_dp,0.8019477304_dp,1.5832664989_dp,2.8312249320_dp,4.9663414572_dp,8.7658865407_dp,15.7246398040_dp,28.8139006699_dp,54.1393916659_dp,&
+ 104.7144822098_dp,209.4610558075_dp,435.8986297272_dp,951.2536527997_dp,2201.0294283516_dp,5487.9035786263_dp,15127.5077224134_dp,48255.1157456922_dp,198725.3328400740_dp,&
+ 2.0039254651_dp,2.5521059930_dp,3.8540019382_dp,6.3989622653_dp,11.1779286325_dp,20.1685457731_dp,37.3818682463_dp,71.1764172917_dp,139.5702311295_dp,&
+ 282.9901494567_dp,596.5096927657_dp,1316.5702025323_dp,3072.3924881061_dp,7685.7784941115_dp,21038.1983744905_dp,65151.8935038286_dp,242901.2154403277_dp,1303987.3158731237_dp]
+ aw%aw_erange_matrix(:,29) = [0.2451584911_dp,0.8019868539_dp,1.5833664624_dp,2.8314613818_dp,4.9668822755_dp,8.7671015990_dp,15.7273526805_dp,28.8199804209_dp,54.1531881809_dp,&
+ 104.7464454026_dp,209.5372970267_dp,436.0876685648_dp,951.7466778391_dp,2202.4031805614_dp,5492.0861687473_dp,15141.9292444349_dp,48315.1164798901_dp,199069.2488759779_dp,&
+ 0.5010030137_dp,0.6380664445_dp,0.9635890952_dp,1.5999393770_dp,2.7949236246_dp,5.0431140248_dp,9.3476469670_dp,17.7990399522_dp,34.9039874892_dp,&
+ 70.7748108912_dp,149.1950441262_dp,329.3185677466_dp,768.5855483743_dp,1922.9069771868_dp,5264.4349177856_dp,16306.9754356859_dp,60818.5342949878_dp,326683.0762412191_dp]
+ aw%aw_erange_matrix(:,30) = [0.2460843831_dp,0.8055606841_dp,1.5925097532_dp,2.8531188820_dp,5.0164916215_dp,8.8787427624_dp,15.9770766339_dp,29.3807725841_dp,55.4287162064_dp,&
+ 107.7095964209_dp,216.6287632197_dp,453.7426000720_dp,998.0221583737_dp,2332.1646550623_dp,5890.4995870220_dp,16531.9236622109_dp,54208.2506864180_dp,234158.2961103953_dp,&
+ 0.5029791750_dp,0.6417196055_dp,0.9717065651_dp,1.6181802341_dp,2.8354963081_dp,5.1331308781_dp,9.5487949715_dp,18.2555079161_dp,35.9638756655_dp,&
+ 73.3120612863_dp,155.5108113290_dp,345.8365421606_dp,814.5932497073_dp,2061.9760197334_dp,5733.6867171101_dp,18158.2802893164_dp,70123.8908441199_dp,398633.9384505207_dp]
+ aw%aw_erange_matrix(:,31) = [0.2466623194_dp,0.8077948498_dp,1.5982387997_dp,2.8667234346_dp,5.0477367999_dp,8.9492548457_dp,16.1352880115_dp,29.7372894100_dp,56.2428185727_dp,&
+ 109.6094612719_dp,221.1999709041_dp,465.1963104174_dp,1028.2814580196_dp,2417.8718375738_dp,6157.2042805604_dp,17480.4794754592_dp,58357.0349287896_dp,260473.4413372097_dp,&
+ 0.5042131777_dp,0.6440079330_dp,0.9768069389_dp,1.6296735867_dp,2.8611344928_dp,5.1901916339_dp,9.6767456775_dp,18.5470129577_dp,36.6437851669_dp,&
+ 74.9482070859_dp,159.6086502713_dp,356.6335737870_dp,844.9445707055_dp,2154.8129629221_dp,6052.0114227348_dp,19444.0387880265_dp,76846.9611556469_dp,455064.7940782208_dp]
+ aw%aw_erange_matrix(:,32) = [0.2470052603_dp,0.8091218154_dp,1.6016463057_dp,2.8748276155_dp,5.0663795081_dp,8.9913991392_dp,16.2300284650_dp,29.9512323720_dp,56.7325330921_dp,&
+ 110.7554906838_dp,223.9664660987_dp,472.1556042268_dp,1046.7571381205_dp,2470.5309237515_dp,6322.4522482374_dp,18075.3893191007_dp,61011.6261370216_dp,278043.4319918001_dp,&
+ 0.5049456007_dp,0.6453687263_dp,0.9798456467_dp,1.6365329129_dp,2.8764626879_dp,5.2243720830_dp,9.7535545588_dp,18.7224245427_dp,37.0540406668_dp,&
+ 75.9386048198_dp,162.0985889041_dp,363.2242952357_dp,863.5775619736_dp,2212.2293119703_dp,6250.8786633660_dp,20259.3672008996_dp,81220.2624367206_dp,493903.7336261885_dp]
+ aw%aw_erange_matrix(:,33) = [0.2479070591_dp,0.8126156863_dp,1.6106355109_dp,2.8962520852_dp,5.1157722654_dp,9.1033195075_dp,16.4822737221_dp,30.5225047448_dp,58.0445152466_dp,&
+ 113.8376373968_dp,231.4406236551_dp,491.0606539737_dp,1097.2889246287_dp,2615.8193585517_dp,6783.7921251546_dp,19765.1665816340_dp,68773.2087073112_dp,332879.9902833110_dp,&
+ 0.5068722333_dp,0.6489576683_dp,0.9878804553_dp,1.6547124799_dp,2.9171851328_dp,5.3154164832_dp,9.9587430808_dp,19.1925744522_dp,38.1578179311_dp,&
+ 78.6150396384_dp,168.8626882537_dp,381.2426698660_dp,914.9252925831_dp,2372.0982841524_dp,6812.5177792103_dp,22611.4620307756_dp,94313.9725576750_dp,621003.7893413518_dp]
+ aw%aw_erange_matrix(:,34) = [0.2488445564_dp,0.8162546763_dp,1.6200245149_dp,2.9186987450_dp,5.1676891801_dp,9.2213672091_dp,16.7493449509_dp,31.1299547030_dp,59.4464473127_dp,&
+ 117.1499428429_dp,239.5273357413_dp,511.6827842253_dp,1152.9725592643_dp,2778.0302179810_dp,7308.1217912983_dp,21736.8287450385_dp,78245.3963530631_dp,407389.7568922244_dp,&
+ 0.5088761210_dp,0.6527048135_dp,0.9963009145_dp,1.6738302826_dp,2.9601613259_dp,5.4118721369_dp,10.1770679896_dp,19.6952763247_dp,39.3446624314_dp,&
+ 81.5118069612_dp,176.2408673541_dp,401.0839570649_dp,972.1435868244_dp,2553.0292718077_dp,7461.9282580860_dp,25420.7597614315_dp,110881.6155222195_dp,807717.4768339451_dp]
+ aw%aw_erange_matrix(:,35) = [0.2489027717_dp,0.8164809134_dp,1.6206092698_dp,2.9200994031_dp,5.1709349593_dp,9.2287620348_dp,16.7661108868_dp,31.1681785725_dp,59.5348987369_dp,&
+ 117.3595707997_dp,240.0409997763_dp,512.9984965777_dp,1156.5449506809_dp,2788.5118341189_dp,7342.3362280433_dp,21867.3537661850_dp,78888.3507304854_dp,412773.3816334762_dp,&
+ 0.5090005943_dp,0.6529381345_dp,0.9968264487_dp,1.6750258908_dp,2.9628544011_dp,5.4179295425_dp,10.1908113350_dp,19.7270039685_dp,39.4197954981_dp,&
+ 81.6958381899_dp,176.7115790119_dp,402.3563056081_dp,975.8367478350_dp,2564.8072390811_dp,7504.7021546451_dp,25609.0943418721_dp,112028.7196634320_dp,821824.7982251805_dp]
+ aw%aw_erange_matrix(:,36) = [0.2489028793_dp,0.8164812826_dp,1.6206100265_dp,2.9201007372_dp,5.1709371443_dp,9.2287653856_dp,16.7661154320_dp,31.1681839603_dp,59.5349042318_dp,&
+ 117.3595737483_dp,240.0409935634_dp,512.9985002870_dp,1156.5449881503_dp,2788.5116971549_dp,7342.3361726431_dp,21867.3597042521_dp,78888.3522147178_dp,412773.5597732165_dp,&
+ 0.5090008175_dp,0.6529384478_dp,0.9968269205_dp,1.6750265874_dp,2.9628554209_dp,5.4179308019_dp,10.1908123913_dp,19.7270045689_dp,39.4197948530_dp,&
+ 81.6958325873_dp,176.7115700855_dp,402.3563424594_dp,975.8367333780_dp,2564.8068659078_dp,7504.7037477325_dp,25609.1035816155_dp,112028.6869791661_dp,821825.9737785851_dp]
+ aw%aw_erange_matrix(:,37) = [0.2489028079_dp,0.8164810378_dp,1.6206095245_dp,2.9200998161_dp,5.1709354667_dp,9.2287624833_dp,16.7661110594_dp,31.1681786578_dp,59.5349016573_dp,&
+ 117.3595876258_dp,240.0410761551_dp,512.9988191375_dp,1156.5459366962_dp,2788.5140947174_dp,7342.3407649382_dp,21867.3686070922_dp,78888.4332660082_dp,412773.9966006952_dp,&
+ 0.5090006693_dp,0.6529382408_dp,0.9968266019_dp,1.6750260368_dp,2.9628544290_dp,5.4179293831_dp,10.1908109785_dp,19.7270045640_dp,39.4198017403_dp,&
+ 81.6958641187_dp,176.7116945056_dp,402.3567263825_dp,975.8376809767_dp,2564.8088840884_dp,7504.7057927441_dp,25609.1162370374_dp,112028.8631073939_dp,821826.1873703946_dp]
+ aw%aw_erange_matrix(:,38) = [0.2489028522_dp,0.8164811882_dp,1.6206098122_dp,2.9201002719_dp,5.1709361783_dp,9.2287636832_dp,16.7661132249_dp,31.1681828409_dp,59.5349119329_dp,&
+ 117.3596202973_dp,240.0411572863_dp,512.9989857692_dp,1156.5464150529_dp,2788.5158335943_dp,7342.3468180366_dp,21867.3834916361_dp,78888.4353980769_dp,412773.6537501516_dp,&
+ 0.5090007613_dp,0.6529383634_dp,0.9968267522_dp,1.6750262318_dp,2.9628547692_dp,5.4179300607_dp,10.1908123018_dp,19.7270076400_dp,39.4198129704_dp,&
+ 81.6958999381_dp,176.7117546132_dp,402.3568620295_dp,975.8382656500_dp,2564.8112405019_dp,7504.7120444986_dp,25609.1291848948_dp,112028.7748460801_dp,821825.5760266429_dp]
+ case(20)
+ aw%energy_range(:) = [100.0000_dp,200.0000_dp,300.0000_dp,400.0000_dp,500.0000_dp,600.0000_dp,700.0000_dp,800.0000_dp,900.0000_dp,&
+ 1000.0000_dp,2000.0000_dp,3000.0000_dp,4000.0000_dp,5000.0000_dp,6000.0000_dp,7000.0000_dp,8000.0000_dp,9000.0000_dp,&
+ 10000.0000_dp,20000.0000_dp,30000.0000_dp,40000.0000_dp,50000.0000_dp,60000.0000_dp,70000.0000_dp,80000.0000_dp,100000.0000_dp,&
+ 200000.0000_dp,300000.0000_dp,400000.0000_dp,500000.0000_dp,600000.0000_dp,700000.0000_dp,900000.0000_dp,1000000.0000_dp,2000000.0000_dp,&
+ 3000000.0000_dp,4000000.0000_dp,8000000.0000_dp,10000000.0000_dp]
+ aw%aw_erange_matrix(:,1) = [0.1269005661_dp,0.3893436383_dp,0.6784223260_dp,1.0143054963_dp,1.4209575480_dp,1.9280640442_dp,2.5734629819_dp,3.4063474143_dp,4.4916150233_dp,&
+ 5.9159470021_dp,7.7966091574_dp,10.2948349674_dp,13.6376091270_dp,18.1564082014_dp,24.3637900705_dp,33.1239654661_dp,46.0884630118_dp,67.0263507212_dp,&
+ 107.1915270177_dp,222.9766291753_dp,0.2552297265_dp,0.2726311907_dp,0.3088610134_dp,0.3668677723_dp,0.4513440201_dp,0.5691227872_dp,0.7298027520_dp,&
+ 0.9466832844_dp,1.2381561701_dp,1.6298372023_dp,2.1580142079_dp,2.8756651728_dp,3.8639634663_dp,5.2565377559_dp,7.2960714266_dp,10.4818575419_dp,&
+ 16.0127746431_dp,27.4249166322_dp,59.1658806072_dp,228.8684844393_dp]
+ aw%aw_erange_matrix(:,2) = [0.1487641846_dp,0.4603640033_dp,0.8158259805_dp,1.2500369197_dp,1.8069581625_dp,2.5446723364_dp,3.5422243445_dp,4.9092359416_dp,6.7996884178_dp,&
+ 9.4319683501_dp,13.1184778521_dp,18.3103368732_dp,25.6672898525_dp,36.1736796938_dp,51.3499975303_dp,73.6954851986_dp,107.7903192646_dp,163.6788697578_dp,&
+ 270.7085752167_dp,575.2960452142_dp,0.2998464753_dp,0.3282616729_dp,0.3884117226_dp,0.4872546392_dp,0.6361565358_dp,0.8522889325_dp,1.1608604696_dp,&
+ 1.5984996809_dp,2.2183218944_dp,3.0975820152_dp,4.3495025604_dp,6.1423404725_dp,8.7323602516_dp,12.5272476594_dp,18.2263003194_dp,27.1833348194_dp,&
+ 42.5198181117_dp,73.3349718913_dp,156.9707549667_dp,598.8882107641_dp]
+ aw%aw_erange_matrix(:,3) = [0.1553033321_dp,0.4819730674_dp,0.8589054503_dp,1.3267340899_dp,1.9376352225_dp,2.7619553370_dp,3.8974115944_dp,5.4823168482_dp,7.7149415235_dp,&
+ 10.8822280753_dp,15.4029303766_dp,21.8935434075_dp,31.2718335439_dp,44.9272234982_dp,65.0249340347_dp,95.1241869292_dp,141.6840250994_dp,218.6556268996_dp,&
+ 366.3368632313_dp,785.0727107663_dp,0.3132497414_dp,0.3457182041_dp,0.4148355207_dp,0.5294098044_dp,0.7039668881_dp,0.9607439790_dp,1.3329053603_dp,&
+ 1.8694832105_dp,2.6428897343_dp,3.7604095010_dp,5.3820811386_dp,7.7494027866_dp,11.2340289890_dp,16.4283684885_dp,24.3388578990_dp,36.8755634811_dp,&
+ 58.3510265348_dp,101.1969993687_dp,216.3941760866_dp,821.7863004547_dp]
+ aw%aw_erange_matrix(:,4) = [0.1602004477_dp,0.4982768628_dp,0.8918282994_dp,1.3862726480_dp,2.0407769840_dp,2.9363514353_dp,4.1872918884_dp,5.9579161540_dp,8.4874770477_dp,&
+ 12.1277050228_dp,17.4000555539_dp,25.0843007374_dp,36.3587398714_dp,53.0308860036_dp,77.9444988857_dp,115.7893855068_dp,175.0326856823_dp,273.7531584568_dp,&
+ 463.6315343486_dp,1000.6412716698_dp,0.3233065868_dp,0.3590615676_dp,0.4355111553_dp,0.5631070573_dp,0.7592170706_dp,1.0507088367_dp,1.4781533654_dp,&
+ 2.1023610716_dp,3.0144546403_dp,4.3514790279_dp,6.3209308272_dp,9.2402745759_dp,13.6035123636_dp,20.2025549258_dp,30.3787724867_dp,46.6452428752_dp,&
+ 74.5772897925_dp,130.0596055803_dp,278.0987366596_dp,1052.3224746964_dp]
+ aw%aw_erange_matrix(:,5) = [0.1638688488_dp,0.5105604532_dp,0.9168785055_dp,1.4321163876_dp,2.1211989903_dp,3.0740630119_dp,4.4191033387_dp,6.3431018079_dp,9.1212764540_dp,&
+ 13.1631392903_dp,19.0832782264_dp,27.8120992982_dp,40.7725452278_dp,60.1717228114_dp,89.5126977791_dp,134.5978846704_dp,205.8797927146_dp,325.4902463212_dp,&
+ 556.1414701978_dp,1207.3263758191_dp,0.3308512935_dp,0.3692149624_dp,0.4515227451_dp,0.5896214449_dp,0.8033146592_dp,1.1234887339_dp,1.5972344368_dp,&
+ 2.2958886770_dp,3.3275669505_dp,4.8568023156_dp,7.1357039513_dp,10.5544529160_dp,15.7262899198_dp,23.6407452337_dp,35.9746460773_dp,55.8450726898_dp,&
+ 90.0739692140_dp,157.8883317051_dp,337.7570557426_dp,1274.5553902054_dp]
+ aw%aw_erange_matrix(:,6) = [0.1666812473_dp,0.5200197880_dp,0.9363159150_dp,1.4680135301_dp,2.1847779446_dp,3.1839864675_dp,4.6059283508_dp,6.6565650054_dp,9.6421957068_dp,&
+ 14.0228927018_dp,20.4957937657_dp,30.1266222062_dp,44.5611562236_dp,66.3756371885_dp,99.6904809947_dp,151.3616213170_dp,233.7317810725_dp,372.7770246586_dp,&
+ 641.5652904001_dp,1399.5025565565_dp,0.3366421328_dp,0.3770934988_dp,0.4641134201_dp,0.6107224468_dp,0.8387891450_dp,1.1826400637_dp,1.6950085513_dp,&
+ 2.4564493367_dp,3.5901441623_dp,5.2853183249_dp,7.8347083231_dp,11.6956640563_dp,17.5931650358_dp,26.7044655011_dp,41.0283931704_dp,64.2634427909_dp,&
+ 104.4206964123_dp,183.8648608116_dp,393.5981950763_dp,1482.1123469086_dp]
+ aw%aw_erange_matrix(:,7) = [0.1689983670_dp,0.5278413162_dp,0.9524859226_dp,1.4980942342_dp,2.2384628937_dp,3.2775178203_dp,4.7661176411_dp,6.9274306303_dp,10.0959126890_dp,&
+ 14.7778992447_dp,21.7468510348_dp,32.1949647809_dp,47.9786541782_dp,72.0271500965_dp,109.0579600700_dp,166.9560061338_dp,259.9205313825_dp,417.6959062761_dp,&
+ 723.4174819692_dp,1584.7298779218_dp,0.3414175972_dp,0.3836475849_dp,0.4746985841_dp,0.6286311009_dp,0.8691546306_dp,1.2336868862_dp,1.7800761528_dp,&
+ 2.5973123241_dp,3.8225027660_dp,5.6679375388_dp,8.4647255049_dp,12.7343955668_dp,19.3099663809_dp,29.5523018192_dp,45.7781719211_dp,72.2624507871_dp,&
+ 118.1883304765_dp,208.9732397638_dp,447.7166658434_dp,1682.9251682933_dp]
+ aw%aw_erange_matrix(:,8) = [0.1709975801_dp,0.5346104341_dp,0.9665527031_dp,1.5244238634_dp,2.2857569714_dp,3.3604499415_dp,4.9090787048_dp,7.1707601199_dp,10.5062642169_dp,&
+ 15.4655323863_dp,22.8946056552_dp,34.1070735500_dp,51.1634950623_dp,77.3386634166_dp,117.9404792765_dp,181.8804039669_dp,285.2201402775_dp,461.4812139354_dp,&
+ 803.8200405044_dp,1767.6358274642_dp,0.3455411323_dp,0.3893490233_dp,0.4839888077_dp,0.6444742812_dp,0.8962114315_dp,1.2794858141_dp,1.8569268957_dp,&
+ 2.7254731305_dp,4.0354666725_dp,6.0213163325_dp,9.0512798536_dp,13.7096395972_dp,20.9361451675_dp,32.2748999074_dp,50.3627737688_dp,80.0575861694_dp,&
+ 131.7236728332_dp,233.8208784489_dp,501.4126707244_dp,1881.8947304241_dp]
+ aw%aw_erange_matrix(:,9) = [0.1728363280_dp,0.5408533960_dp,0.9795862984_dp,1.5489540702_dp,2.3300726590_dp,3.4386091506_dp,5.0445951101_dp,7.4027796571_dp,10.8999168753_dp,&
+ 16.1293383882_dp,24.0098862171_dp,35.9779368508_dp,54.3023627872_dp,82.6138138091_dp,126.8337910507_dp,196.9496532881_dp,310.9861906317_dp,506.4458754055_dp,&
+ 886.9824447716_dp,1957.7555762036_dp,0.3493363943_dp,0.3946314940_dp,0.4926645366_dp,0.6593741291_dp,0.9218200047_dp,1.3231002939_dp,1.9305653016_dp,&
+ 2.8490587713_dp,4.2421870714_dp,6.3667075825_dp,9.6287355654_dp,14.6770820798_dp,22.5622795853_dp,35.0204218560_dp,55.0265945555_dp,88.0576357175_dp,&
+ 145.7292992131_dp,259.6935178652_dp,557.4706539806_dp,2089.3700179412_dp]
+ aw%aw_erange_matrix(:,10) = [0.1747236608_dp,0.5472787064_dp,0.9930617083_dp,1.5744526151_dp,2.3763969335_dp,3.5207727637_dp,5.1878638223_dp,7.6494891918_dp,11.3209836695_dp,&
+ 16.8437657056_dp,25.2179952404_dp,38.0183385206_dp,57.7503322676_dp,88.4526053005_dp,136.7566607627_dp,213.9055578161_dp,340.2293509804_dp,557.9081484565_dp,&
+ 982.8584902244_dp,2178.0487007882_dp,0.3532346686_dp,0.4000927534_dp,0.5017031300_dp,0.6750038465_dp,0.9488503163_dp,1.3694128804_dp,2.0092328227_dp,&
+ 2.9819085667_dp,4.4658471680_dp,6.7429430083_dp,10.2622527490_dp,15.7464359524_dp,24.3739941067_dp,38.1048989064_dp,60.3120644386_dp,97.2046014714_dp,&
+ 161.8768332801_dp,289.7172339532_dp,622.7088267238_dp,2330.5550510347_dp]
+ aw%aw_erange_matrix(:,11) = [0.1838745625_dp,0.5786892739_dp,1.0598468503_dp,1.7028865109_dp,2.6137008180_dp,3.9489011076_dp,5.9473718311_dp,8.9806897085_dp,13.6350803488_dp,&
+ 20.8464416741_dp,32.1256332940_dp,49.9393672334_dp,78.3638910186_dp,124.2286594356_dp,199.1775712702_dp,323.5964676730_dp,535.0206455703_dp,910.8130205444_dp,&
+ 1657.5903483082_dp,3757.0281223492_dp,0.3721759923_dp,0.4271526160_dp,0.5475253024_dp,0.7558746146_dp,1.0913474028_dp,1.6180556646_dp,2.4394980262_dp,&
+ 3.7226755839_dp,5.7384807986_dp,8.9299655994_dp,14.0291217392_dp,22.2595825062_dp,35.6953004506_dp,57.9143208283_dp,95.2571205121_dp,159.5310630972_dp,&
+ 275.1830699133_dp,505.5360584493_dp,1097.2825503989_dp,4079.8052751862_dp]
+ aw%aw_erange_matrix(:,12) = [0.1893442233_dp,0.5976752765_dp,1.1009673746_dp,1.7836840623_dp,2.7663449388_dp,4.2305124459_dp,6.4583627568_dp,9.8972867136_dp,15.2672324439_dp,&
+ 23.7416603604_dp,37.2568521772_dp,59.0482829106_dp,94.5956167624_dp,153.3195984480_dp,251.7106390248_dp,419.3652380359_dp,711.7922522672_dp,1243.8026770051_dp,&
+ 2317.1948214930_dp,5340.4387162258_dp,0.3835304794_dp,0.4438057686_dp,0.5765838506_dp,0.8085345155_dp,1.1864117381_dp,1.7879159406_dp,2.7406303285_dp,&
+ 4.2543159880_dp,6.6762179522_dp,10.5868161488_dp,16.9678208963_dp,27.5015100275_dp,45.1142123920_dp,74.9889317930_dp,126.5354006363_dp,217.5697005416_dp,&
+ 384.9447949438_dp,721.8571663357_dp,1582.0813807270_dp,5862.7984242797_dp]
+ aw%aw_erange_matrix(:,13) = [0.1929640538_dp,0.6103308334_dp,1.1287011703_dp,1.8389229760_dp,2.8721747439_dp,4.4285304006_dp,6.8228632844_dp,10.5608772296_dp,16.4673389679_dp,&
+ 25.9056654089_dp,41.1595610556_dp,66.1066026800_dp,107.4272765066_dp,176.8178959446_dp,295.1453267194_dp,500.5708301967_dp,865.7939502029_dp,1542.1363147961_dp,&
+ 2923.8663861836_dp,6825.3663623913_dp,0.3910589308_dp,0.4550328658_dp,0.5965434966_dp,0.8453048888_dp,1.2538080536_dp,1.9101646448_dp,2.9607357991_dp,&
+ 4.6492516408_dp,7.3848369300_dp,11.8617470151_dp,19.2731872933_dp,31.6994620652_dp,52.8262769166_dp,89.3073795371_dp,153.4500850616_dp,268.9102192056_dp,&
+ 484.8471515734_dp,923.9508809596_dp,2042.4381629022_dp,7555.7714291597_dp]
+ aw%aw_erange_matrix(:,14) = [0.1953268529_dp,0.6186315144_dp,1.1470347510_dp,1.8757697123_dp,2.9434263672_dp,4.5631048003_dp,7.0729626672_dp,11.0207404044_dp,17.3077365919_dp,&
+ 27.4379440803_dp,43.9558913837_dp,71.2286774216_dp,116.8675691848_dp,194.3646884356_dp,328.1086307600_dp,563.2980208060_dp,987.0560823558_dp,1781.8374413443_dp,&
+ 3420.8334598571_dp,8059.7253799248_dp,0.3959791965_dp,0.4624522078_dp,0.6098967742_dp,0.8701722334_dp,1.2998481007_dp,1.9945168283_dp,3.1141917800_dp,&
+ 4.9276143462_dp,7.8900918050_dp,12.7820305921_dp,20.9592839967_dp,34.8134090969_dp,58.6347666239_dp,100.2713734263_dp,174.4335470338_dp,309.7252860155_dp,&
+ 565.9174595153_dp,1091.1791332967_dp,2428.3939374675_dp,8976.2684789511_dp]
+ aw%aw_erange_matrix(:,15) = [0.1979220756_dp,0.6277857441_dp,1.1673867666_dp,1.9169822219_dp,3.0237404335_dp,4.7159901539_dp,7.3593849231_dp,11.5518207748_dp,18.2869048651_dp,&
+ 29.2401475740_dp,47.2782513535_dp,77.3810455573_dp,128.3416896459_dp,215.9685447344_dp,369.2709270409_dp,642.8540289853_dp,1143.4943281987_dp,2096.7545149013_dp,&
+ 4085.4764949230_dp,9733.4147125769_dp,0.4013891591_dp,0.4706859123_dp,0.6248675868_dp,0.8983032593_dp,1.3523696718_dp,2.0915568230_dp,3.2922785955_dp,&
+ 5.2536478204_dp,8.4877039551_dp,13.8820055023_dp,22.9974199128_dp,38.6235354068_dp,65.8361819586_dp,114.0616190251_dp,201.2456490940_dp,362.7865858475_dp,&
+ 673.2812412339_dp,1316.6864159845_dp,2955.5779328169_dp,10919.2910161878_dp]
+ aw%aw_erange_matrix(:,16) = [0.1993791819_dp,0.6329426794_dp,1.1789139470_dp,1.9404690900_dp,3.0698025097_dp,4.8042386799_dp,7.5258072374_dp,11.8625304683_dp,18.8639570543_dp,&
+ 30.3105291734_dp,49.2680571847_dp,81.0992054850_dp,135.3443840989_dp,229.2954621089_dp,394.9635543219_dp,693.1603194264_dp,1243.8428121004_dp,2301.9027515682_dp,&
+ 4525.1220971822_dp,10853.8603929865_dp,0.4044292682_dp,0.4753481665_dp,0.6334154455_dp,0.9144830930_dp,1.3827858098_dp,2.1481427993_dp,3.3968720385_dp,&
+ 5.4465903028_dp,8.8442306363_dp,14.5439310045_dp,24.2353524597_dp,40.9611235878_dp,70.3029252891_dp,122.7179376050_dp,218.2984984777_dp,397.0258012296_dp,&
+ 743.6524001242_dp,1466.8140504486_dp,3310.5991720942_dp,12229.9813326092_dp]
+ aw%aw_erange_matrix(:,17) = [0.2007287666_dp,0.6377302769_dp,1.1896559856_dp,1.9624505391_dp,3.1131031720_dp,4.8875693338_dp,7.6836814310_dp,12.1587068457_dp,19.4168411849_dp,&
+ 31.3417174027_dp,51.1963607081_dp,84.7255865155_dp,142.2220551115_dp,242.4849819026_dp,420.6068715213_dp,743.8425862321_dp,1345.9981578952_dp,2513.1236504618_dp,&
+ 4982.9639601912_dp,12031.2882728258_dp,0.4072467615_dp,0.4796920152_dp,0.6414256270_dp,0.9297223696_dp,1.4115709668_dp,2.2019529685_dp,3.4968358422_dp,&
+ 5.6319773197_dp,9.1887497064_dp,15.1874794416_dp,25.4468668705_dp,43.2652212867_dp,74.7401103499_dp,131.3908637934_dp,235.5463785324_dp,432.0212860913_dp,&
+ 816.4059531201_dp,1623.8371874752_dp,3685.2386391427_dp,13615.2774199275_dp]
+ aw%aw_erange_matrix(:,18) = [0.2020840295_dp,0.6425489310_dp,1.2005071815_dp,1.9847477410_dp,3.1572137609_dp,4.9728273747_dp,7.8459300539_dp,12.4645182026_dp,19.9905584018_dp,&
+ 32.4174866719_dp,53.2196564781_dp,88.5545015972_dp,149.5336572481_dp,256.6123898725_dp,448.3028300934_dp,799.0904867364_dp,1458.5112786281_dp,2748.4098173074_dp,&
+ 5498.8688318388_dp,13370.3635889921_dp,0.4100777806_dp,0.4840791375_dp,0.6495606546_dp,0.9452750654_dp,1.4410840136_dp,2.2573816221_dp,3.6003093288_dp,&
+ 5.8248681410_dp,9.5492020231_dp,15.8648082978_dp,26.7302003384_dp,45.7230169360_dp,79.5095689997_dp,140.7919497274_dp,254.4173532130_dp,470.7090887768_dp,&
+ 897.7590223867_dp,1801.4936356453_dp,4113.0305585569_dp,15200.0410499012_dp]
+ aw%aw_erange_matrix(:,19) = [0.2032205695_dp,0.6465984181_dp,1.2096570722_dp,2.0036212512_dp,3.1946985238_dp,5.0455691472_dp,7.9849323186_dp,12.7276523813_dp,20.4864941198_dp,&
+ 33.3520284721_dp,54.9867771812_dp,91.9181816995_dp,155.9979832028_dp,269.1908123424_dp,473.1550907773_dp,849.0992659852_dp,1561.3529337435_dp,2965.7991208260_dp,&
+ 5980.8252030269_dp,14632.6142302186_dp,0.4124532089_dp,0.4877777262_dp,0.6564540765_dp,0.9585134479_dp,1.4663123889_dp,2.3049676386_dp,3.6895439071_dp,&
+ 5.9920148700_dp,9.8631540337_dp,16.4580266269_dp,27.8609119922_dp,47.9026672970_dp,83.7695736201_dp,149.2552286193_dp,271.5551657080_dp,506.1887949137_dp,&
+ 973.1779944256_dp,1968.0569962117_dp,4517.7640074971_dp,16702.4332984174_dp]
+ aw%aw_erange_matrix(:,20) = [0.2100467885_dp,0.6710867958_dp,1.2655966277_dp,2.1204488023_dp,3.4297162999_dp,5.5076322035_dp,8.8799491815_dp,14.4464326282_dp,23.7761722206_dp,&
+ 39.6552702974_dp,67.1241456556_dp,115.4870441158_dp,202.3027424707_dp,361.5321008587_dp,660.7054799726_dp,1238.4882754172_dp,2391.2466429102_dp,4792.5946650321_dp,&
+ 10209.5610089504_dp,26121.5962145944_dp,0.4267457680_dp,0.5103745955_dp,0.6992682155_dp,1.0419398350_dp,1.6275173138_dp,2.6133681708_dp,4.2765680933_dp,&
+ 7.1093051388_dp,11.9982862164_dp,20.5686675844_dp,35.8579383327_dp,63.6688292548_dp,115.3603001063_dp,213.7851141281_dp,406.3852699746_dp,795.4467675420_dp,&
+ 1613.4496474889_dp,3445.5938150773_dp,8247.6252410914_dp,30701.4510546252_dp]
+ aw%aw_erange_matrix(:,21) = [0.2134211415_dp,0.6832999754_dp,1.2938913455_dp,2.1804863813_dp,3.5524727238_dp,5.7530169518_dp,9.3635167855_dp,15.3921413624_dp,25.6219059850_dp,&
+ 43.2672961425_dp,74.2412586858_dp,129.6605522363_dp,230.9357343846_dp,420.4305728470_dp,784.5694186442_dp,1506.0086109926_dp,2987.7753404713_dp,6175.4472528435_dp,&
+ 13596.3071435874_dp,35790.3633594939_dp,0.4338273088_dp,0.5217934532_dp,0.7213589758_dp,1.0857823424_dp,1.7137308375_dp,2.7812811282_dp,4.6022721177_dp,&
+ 7.7418600433_dp,13.2336587334_dp,23.0037453201_dp,40.7184816207_dp,73.5253160601_dp,135.7348748315_dp,256.8755076852_dp,500.0120134270_dp,1005.4531221143_dp,&
+ 2102.5694231474_dp,4639.9562502971_dp,11424.8081725858_dp,42857.5681328368_dp]
+ aw%aw_erange_matrix(:,22) = [0.2154048306_dp,0.6905139694_dp,1.3107300197_dp,2.2165178156_dp,3.6267841342_dp,5.9028827283_dp,9.6615935230_dp,15.9808544186_dp,26.7831616219_dp,&
+ 45.5662657275_dp,78.8290086443_dp,138.9260518495_dp,249.9487133875_dp,460.2341641642_dp,869.9648330428_dp,1694.7284101600_dp,3420.0061213002_dp,7209.4431806666_dp,&
+ 16220.7724974093_dp,43535.7255823378_dp,0.4379955245_dp,0.5285852418_dp,0.7346430220_dp,1.1124030451_dp,1.7665688206_dp,2.8851827907_dp,4.8058758827_dp,&
+ 8.1416390320_dp,14.0237512217_dp,24.5814305810_dp,43.9127669455_dp,80.1057147054_dp,149.5786505165_dp,286.7398293421_dp,566.3838524293_dp,1158.2631897128_dp,&
+ 2469.5012711559_dp,5568.0985493326_dp,13982.7476296939_dp,52802.4632251246_dp]
+ aw%aw_erange_matrix(:,23) = [0.2173211080_dp,0.6975072808_dp,1.3271437824_dp,2.2518575469_dp,3.7001326120_dp,6.0517729437_dp,9.9597591924_dp,16.5740573443_dp,27.9625628780_dp,&
+ 47.9214414702_dp,83.5739597163_dp,148.6111402314_dp,270.0601611920_dp,502.9071881088_dp,962.9363686967_dp,1903.8962513689_dp,3909.2840000751_dp,8409.8263874927_dp,&
+ 19358.8810606264_dp,53065.9842160918_dp,0.4420257835_dp,0.5352028042_dp,0.7476902021_dp,1.1387347329_dp,1.8191920194_dp,2.9893972965_dp,5.0116395287_dp,&
+ 8.5489641930_dp,14.8359261888_dp,26.2190424023_dp,47.2641244408_dp,87.0925493281_dp,164.4757637376_dp,319.3690989999_dp,640.1806662632_dp,1331.6759700693_dp,&
+ 2896.1226974247_dp,6678.6718268326_dp,17138.0059712719_dp,65264.0692155336_dp]
+ aw%aw_erange_matrix(:,24) = [0.2193531513_dp,0.7049495461_dp,1.3447091867_dp,2.2899142584_dp,3.7796302540_dp,6.2142182128_dp,10.2873452565_dp,17.2306802824_dp,29.2786972691_dp,&
+ 50.5731813132_dp,88.9693208847_dp,159.7456029322_dp,293.4694015758_dp,553.2823373222_dp,1074.4843057459_dp,2159.6665041804_dp,4521.2568082323_dp,9952.9945444859_dp,&
+ 23528.1129162730_dp,66154.9862522529_dp,0.4463035027_dp,0.5422814483_dp,0.7617594998_dp,1.1673332908_dp,1.8767443882_dp,3.1041993470_dp,5.2400633384_dp,&
+ 9.0049401523_dp,15.7534327805_dp,28.0876681074_dp,51.1309398709_dp,95.2546322855_dp,182.1240661173_dp,358.6470914471_dp,730.6730596026_dp,1548.9997428759_dp,&
+ 3444.9107894353_dp,8153.0596082736_dp,21475.7473625549_dp,82745.2901188683_dp]
+ aw%aw_erange_matrix(:,25) = [0.2199556850_dp,0.7071616248_dp,1.3499499029_dp,2.3013165037_dp,3.8035517381_dp,6.2633169276_dp,10.3868212036_dp,17.4310747137_dp,29.6825632027_dp,&
+ 51.3917750880_dp,90.6459552077_dp,163.2314157746_dp,300.8594912800_dp,569.3374889456_dp,1110.4290304790_dp,2243.1545546858_dp,4724.1213696404_dp,10474.2783230759_dp,&
+ 24969.1774183049_dp,70787.9056406355_dp,0.4475727160_dp,0.5443927270_dp,0.7659785620_dp,1.1759505156_dp,1.8941667611_dp,3.1391208583_dp,5.3099073825_dp,&
+ 9.1451444214_dp,16.0372798748_dp,28.6696636488_dp,52.3442994499_dp,97.8372524796_dp,187.7612122269_dp,371.3292221168_dp,760.2592827024_dp,1621.1098798282_dp,&
+ 3630.2728339545_dp,8661.9987430013_dp,23010.5776793044_dp,89027.1877264543_dp]
+ aw%aw_erange_matrix(:,26) = [0.2213967225_dp,0.7124620182_dp,1.3625440438_dp,2.3288072141_dp,3.8614201529_dp,6.3825038823_dp,10.6291843551_dp,17.9212449302_dp,30.6746932010_dp,&
+ 53.4122903462_dp,94.8062798825_dp,171.9324347205_dp,319.4305524136_dp,609.9958576948_dp,1202.2760280137_dp,2458.7628453062_dp,5254.7959061760_dp,11859.8272869300_dp,&
+ 28876.4300087964_dp,83621.3584888344_dp,0.4506096931_dp,0.5494651356_dp,0.7761574759_dp,1.1968178614_dp,1.9365098729_dp,3.2243155683_dp,5.4809935891_dp,&
+ 9.4901034635_dp,16.7390513969_dp,30.1162910985_dp,55.3783262185_dp,104.3386324165_dp,202.0605295036_dp,403.7825310523_dp,836.7510481214_dp,1809.8393464491_dp,&
+ 4122.7132961454_dp,10039.4586895308_dp,27256.9773349684_dp,106669.4482880922_dp]
+ aw%aw_erange_matrix(:,27) = [0.2224633678_dp,0.7163943625_dp,1.3719211590_dp,2.3493577781_dp,3.9048579408_dp,6.4723510220_dp,10.8127104194_dp,18.2942246887_dp,31.4336342187_dp,&
+ 54.9669673773_dp,98.0283202070_dp,178.7205394600_dp,334.0395318624_dp,642.2863900989_dp,1276.0355268848_dp,2634.2100758602_dp,5693.5921229264_dp,13028.5986277815_dp,&
+ 32256.4716147261_dp,95035.7667695921_dp,0.4528589947_dp,0.5532406648_dp,0.7837727453_dp,1.2125008092_dp,1.9684751543_dp,3.2889301656_dp,5.6114015966_dp,&
+ 9.7544762384_dp,17.2800949143_dp,31.2389616706_dp,57.7502559085_dp,109.4634285227_dp,213.4387314049_dp,429.8879637881_dp,899.0683013216_dp,1965.9491929210_dp,&
+ 4537.6897182456_dp,11227.6210172707_dp,31024.3140825160_dp,122643.2181496294_dp]
+ aw%aw_erange_matrix(:,28) = [0.2270035179_dp,0.7332198213_dp,1.4123703151_dp,2.4388103627_dp,4.0957062773_dp,6.8709440976_dp,11.6353156671_dp,19.9847521336_dp,34.9159532511_dp,&
+ 62.1982419296_dp,113.2457066364_dp,211.3399667308_dp,405.6484519624_dp,804.2585035719_dp,1656.2452930299_dp,3568.8525746747_dp,8128.5951388481_dp,19864.2862011517_dp,&
+ 53453.5351595583_dp,172915.1665532315_dp,0.4624461756_dp,0.5695146586_dp,0.8169775175_dp,1.2815895432_dp,2.1107247940_dp,3.5795452147_dp,6.2047044555_dp,&
+ 10.9724629989_dp,19.8075121695_dp,36.5649147988_dp,69.1995242361_dp,134.6929562291_dp,270.7382314800_dp,564.8796459398_dp,1231.6238153148_dp,2831.6002200052_dp,&
+ 6952.2631308159_dp,18588.0043317405_dp,56341.6438905135_dp,237851.7740726325_dp]
+ aw%aw_erange_matrix(:,29) = [0.2282452994_dp,0.7378467772_dp,1.4235873662_dp,2.4638483499_dp,4.1496383234_dp,6.9847050121_dp,11.8725768460_dp,20.4779361720_dp,35.9446606584_dp,&
+ 64.3642984509_dp,117.8753890465_dp,221.4402103430_dp,428.2726175934_dp,856.6427196043_dp,1782.6521146754_dp,3890.1080292655_dp,9000.8493152889_dp,22446.8911166671_dp,&
+ 62057.6209967001_dp,207544.2604152353_dp,0.4650721038_dp,0.5740240208_dp,0.8262871486_dp,1.3011642069_dp,2.1514462179_dp,3.6636459744_dp,6.3784203874_dp,&
+ 11.3336694651_dp,20.5676692843_dp,38.1920219064_dp,72.7592346003_dp,142.6946633080_dp,289.3308298026_dp,609.8630677897_dp,1345.9979183502_dp,3140.9672008704_dp,&
+ 7857.7024751677_dp,21526.9070605909_dp,67335.1753726742_dp,292199.2083754797_dp]
+ aw%aw_erange_matrix(:,30) = [0.2302329800_dp,0.7452757671_dp,1.4416828789_dp,2.5044527384_dp,4.2375756404_dp,7.1712444839_dp,12.2639786439_dp,21.2968875142_dp,37.6653148941_dp,&
+ 68.0168392117_dp,125.7541243801_dp,238.8096013994_dp,467.6539561913_dp,949.1365523813_dp,2009.6995661194_dp,4479.4250976071_dp,10644.4747666966_dp,27491.3402238993_dp,&
+ 79749.2290866879_dp,284201.2216034857_dp,0.4692787280_dp,0.5812951424_dp,0.8413981073_dp,1.3331256476_dp,2.2183275752_dp,3.8026339752_dp,6.6674495133_dp,&
+ 11.9391083775_dp,21.8523111879_dp,40.9671715187_dp,78.8940703298_dp,156.6502558501_dp,322.2102932417_dp,690.7273514479_dp,1555.7163249990_dp,3722.3682098598_dp,&
+ 9614.2346334070_dp,27480.1654067523_dp,91042.1984510180_dp,418626.7623824707_dp]
+ aw%aw_erange_matrix(:,31) = [0.2309997652_dp,0.7481491652_dp,1.4487102104_dp,2.5202919496_dp,4.2720372785_dp,7.2446994523_dp,12.4188978358_dp,21.6228557718_dp,38.3544509116_dp,&
+ 69.4899002151_dp,128.9566358732_dp,245.9334937859_dp,483.9748566103_dp,987.9423670191_dp,2106.3746675355_dp,4734.9715827774_dp,11374.0526670871_dp,29802.1776879041_dp,&
+ 88233.9284246859_dp,323606.8205726882_dp,0.4709026293_dp,0.5841176915_dp,0.8472969826_dp,1.3456653710_dp,2.2446991698_dp,3.8577278692_dp,6.7826779609_dp,&
+ 12.1820097136_dp,22.3713323301_dp,42.0972287354_dp,81.4145349861_dp,162.4426397032_dp,336.0203223899_dp,725.1737456466_dp,1646.5888196690_dp,3979.7077292905_dp,&
+ 10413.4545368449_dp,30293.3774670340_dp,102890.7613584087_dp,486716.6945973909_dp]
+ aw%aw_erange_matrix(:,32) = [0.2317216671_dp,0.7508582400_dp,1.4553502446_dp,2.5352946574_dp,4.3047609754_dp,7.3146332056_dp,12.5668057721_dp,21.9350283572_dp,39.0166700294_dp,&
+ 70.9108372686_dp,132.0592352592_dp,252.8695660393_dp,499.9578397739_dp,1026.2066992849_dp,2202.4979190057_dp,4991.7130843994_dp,12116.9785521321_dp,32199.1397717070_dp,&
+ 97281.6652623537_dp,367557.7408342897_dp,0.4724320498_dp,0.5867840700_dp,0.8528864803_dp,1.3575799638_dp,2.2698244257_dp,3.9103698421_dp,6.8931246234_dp,&
+ 12.4156370380_dp,22.8724611966_dp,43.1930603877_dp,83.8707280295_dp,168.1194331310_dp,349.6448317936_dp,759.4272357179_dp,1737.8300995737_dp,4241.2567183729_dp,&
+ 11238.8274817755_dp,33264.2891459751_dp,115840.3068652384_dp,565032.8320210141_dp]
+ aw%aw_erange_matrix(:,33) = [0.2315723578_dp,0.7502976548_dp,1.4539752009_dp,2.5321852206_dp,4.2979726514_dp,7.3001120222_dp,12.5360618709_dp,21.8700659116_dp,38.8786859171_dp,&
+ 70.6143296572_dp,131.4107403383_dp,251.4170699709_dp,496.6034330584_dp,1018.1548395679_dp,2182.2059654894_dp,4937.2959217347_dp,11958.6904408133_dp,31684.7806037803_dp,&
+ 95319.1174596458_dp,357852.8059662599_dp,0.4721156826_dp,0.5862319504_dp,0.8517278701_dp,1.3551078642_dp,2.2646060976_dp,3.8994247207_dp,6.8701337691_dp,&
+ 12.3669407660_dp,22.7678540238_dp,42.9639318185_dp,83.3561980628_dp,166.9277005859_dp,346.7773613512_dp,752.1960779938_dp,1718.4964408708_dp,4185.5739886276_dp,&
+ 11062.0231565802_dp,32622.3714329241_dp,113004.7096290576_dp,547527.8009971447_dp]
+ aw%aw_erange_matrix(:,34) = [0.2330327465_dp,0.7557879577_dp,1.4674695396_dp,2.5627685619_dp,4.3648927073_dp,7.4436029263_dp,12.8406272949_dp,22.5154022539_dp,40.2536360812_dp,&
+ 73.5790953005_dp,137.9204825461_dp,266.0638269379_dp,530.6088760669_dp,1100.2979423094_dp,2390.8193260591_dp,5502.1832614508_dp,13622.9172653753_dp,37190.3510177558_dp,&
+ 116916.8682410683_dp,470023.6490242586_dp,0.4752111280_dp,0.5916491579_dp,0.8631275974_dp,1.3794916206_dp,2.3162037201_dp,4.0079285275_dp,7.0986967091_dp,&
+ 12.8525666419_dp,23.8146804455_dp,45.2658378904_dp,88.5485224119_dp,179.0166268464_dp,376.0424512008_dp,826.5356805498_dp,1919.0447455394_dp,4769.8029212309_dp,&
+ 12945.6412313694_dp,39612.4676004553_dp,144982.7424613823_dp,756968.8285960874_dp]
+ aw%aw_erange_matrix(:,35) = [0.2336917809_dp,0.7582706845_dp,1.4735909944_dp,2.5766905568_dp,4.3954654329_dp,7.5094042557_dp,12.9808579282_dp,22.8138487792_dp,40.8926315209_dp,&
+ 74.9645608438_dp,140.9816947594_dp,273.0014821883_dp,546.8530172131_dp,1139.9352317226_dp,2492.7321322551_dp,5782.4620143348_dp,14465.6745115322_dp,40059.1967586687_dp,&
+ 128683.0742356157_dp,536270.9828905459_dp,0.4766087737_dp,0.5941057386_dp,0.8683196623_dp,1.3906408024_dp,2.3398881961_dp,4.0579408165_dp,7.2045237306_dp,&
+ 13.0785379764_dp,24.3044984032_dp,46.3496670744_dp,91.0107736800_dp,184.7968202259_dp,390.1716259317_dp,862.8470043196_dp,2018.4159457724_dp,5064.6094943918_dp,&
+ 13919.4946699187_dp,43354.1266009085_dp,163081.8283592247_dp,887800.6101104312_dp]
+ aw%aw_erange_matrix(:,36) = [0.2355385238_dp,0.7652446928_dp,1.4908503515_dp,2.6161051844_dp,4.4823892214_dp,7.6973271787_dp,13.3832773956_dp,23.6748478611_dp,42.7470247408_dp,&
+ 79.0122012776_dp,149.9936478274_dp,293.6070803411_dp,595.6059838121_dp,1260.3986842078_dp,2807.2890323238_dp,6664.8121324150_dp,17189.9402657865_dp,49693.4223340807_dp,&
+ 170733.9762369749_dp,805469.2230494008_dp,0.4805277478_dp,0.6010292090_dp,0.8830277392_dp,1.4223703274_dp,2.4076048048_dp,4.2016395524_dp,7.5102407058_dp,&
+ 13.7352562402_dp,25.7375980707_dp,49.5449228420_dp,98.3333406215_dp,202.1619239973_dp,433.1318992402_dp,974.8691200400_dp,2330.5777436894_dp,6012.6125605664_dp,&
+ 17152.3502183949_dp,56371.8063813081_dp,231269.1995400906_dp,1471413.4587235544_dp]
+ aw%aw_erange_matrix(:,37) = [0.2362071507_dp,0.7677758110_dp,1.4971376489_dp,2.6305221598_dp,4.5143190664_dp,7.7666656655_dp,13.5324758503_dp,23.9957637090_dp,43.4423108596_dp,&
+ 80.5400224950_dp,153.4214474265_dp,301.5145297428_dp,614.5118221402_dp,1307.7048556028_dp,2932.7523689171_dp,7023.8190577394_dp,18328.4549698330_dp,53879.2052977139_dp,&
+ 190218.9242868384_dp,949194.0448591732_dp,0.4819475446_dp,0.6035502702_dp,0.8884107039_dp,1.4340363557_dp,2.4326174364_dp,4.2549803904_dp,7.6243378838_dp,&
+ 13.9818257869_dp,26.2792936842_dp,50.7619154150_dp,101.1467263538_dp,208.9017043246_dp,450.0072447952_dp,1019.5178319373_dp,2457.2729303758_dp,6406.5081871167_dp,&
+ 18539.3546761464_dp,62228.8072704350_dp,264565.1715539864_dp,1816006.0736520144_dp]
+ aw%aw_erange_matrix(:,38) = [0.2364530992_dp,0.7687077649_dp,1.4994560497_dp,2.6358469269_dp,4.5261314955_dp,7.7923613317_dp,13.5878673870_dp,24.1151440977_dp,43.7015244540_dp,&
+ 81.1110277037_dp,154.7061920184_dp,304.4880688618_dp,621.6490505745_dp,1325.6482610671_dp,2980.6219613941_dp,7161.8389722969_dp,18770.6868607551_dp,55530.0093352317_dp,&
+ 198106.2027454207_dp,1011151.4363131844_dp,0.4824699375_dp,0.6044797423_dp,0.8903993119_dp,1.4383537855_dp,2.4418905796_dp,4.2747928499_dp,7.6668029553_dp,&
+ 14.0737977482_dp,26.4818471532_dp,51.2182598778_dp,102.2051146882_dp,211.4467869967_dp,456.4084213622_dp,1036.5472513717_dp,2505.9293668235_dp,6559.1442235077_dp,&
+ 19083.5104881533_dp,64570.1582319044_dp,278327.6560799017_dp,1971462.0517839019_dp]
+ aw%aw_erange_matrix(:,39) = [0.2367095486_dp,0.7696799444_dp,1.5018761682_dp,2.6414095143_dp,4.5384812877_dp,7.8192485816_dp,13.6458809992_dp,24.2403057633_dp,43.9736166609_dp,&
+ 81.7112244189_dp,156.0587389971_dp,307.6242756745_dp,629.1931118456_dp,1344.6642439415_dp,3031.5179204175_dp,7309.2032431469_dp,19245.6104053433_dp,57318.3302885437_dp,&
+ 206780.8472123449_dp,1081955.9030865165_dp,0.4830146984_dp,0.6054499197_dp,0.8924769416_dp,1.4428683492_dp,2.4515956228_dp,4.2955476337_dp,7.7113346404_dp,&
+ 14.1703631996_dp,26.6948129146_dp,51.6988123571_dp,103.3216424614_dp,214.1373371973_dp,463.1924064512_dp,1054.6496457913_dp,2557.8478071162_dp,6722.8307602149_dp,&
+ 19671.1937760559_dp,67126.1132235567_dp,293647.8995180877_dp,2154156.0464118524_dp]
+ aw%aw_erange_matrix(:,40) = [0.2367095349_dp,0.7696798865_dp,1.5018760060_dp,2.6414091090_dp,4.5384803880_dp,7.8192469055_dp,13.6458785809_dp,24.2403033433_dp,43.9736154891_dp,&
+ 81.7112237157_dp,156.0587358919_dp,307.6242853845_dp,629.1931876082_dp,1344.6644722167_dp,3031.5183208785_dp,7309.2050560073_dp,19245.6245161903_dp,57318.4221315288_dp,&
+ 206781.1357473792_dp,1081957.0745627352_dp,0.4830146683_dp,0.6054498545_dp,0.8924767853_dp,1.4428679989_dp,2.4515949740_dp,4.2955467799_dp,7.7113341374_dp,&
+ 14.1703638145_dp,26.6948145327_dp,51.6988107401_dp,103.3216426489_dp,214.1373680273_dp,463.1925209623_dp,1054.6498000269_dp,2557.8481281643_dp,6722.8344505458_dp,&
+ 19671.2220756444_dp,67126.2577886249_dp,293648.2400787623_dp,2154159.1938336445_dp]
+ aw%aw_erange_matrix(:,41) = [0.2367095541_dp,0.7696799621_dp,1.5018762083_dp,2.6414096107_dp,4.5384815233_dp,7.8192491231_dp,13.6458822537_dp,24.2403086901_dp,43.9736233707_dp,&
+ 81.7112406038_dp,156.0587780238_dp,307.6243783226_dp,629.1933873974_dp,1344.6649288229_dp,3031.5198680274_dp,7309.2110293459_dp,19245.6405004830_dp,57318.4440887523_dp,&
+ 206781.2190072980_dp,1081956.3896388158_dp,0.4830147094_dp,0.6054499345_dp,0.8924769754_dp,1.4428684363_dp,2.4515958270_dp,4.2955480752_dp,7.7113357241_dp,&
+ 14.1703656022_dp,26.6948186934_dp,51.6988265456_dp,103.3216780396_dp,214.1374401511_dp,463.1926703671_dp,1054.6502565123_dp,2557.8502733234_dp,6722.8416355782_dp,&
+ 19671.2347474855_dp,67126.2610550484_dp,293648.2839700870_dp,2154156.9017522712_dp]
+
+ case(22)
+ aw%energy_range(:) = [300.0000_dp,400.0000_dp,500.0000_dp,600.0000_dp,700.0000_dp,800.0000_dp,900.0000_dp,1000.0000_dp,2000.0000_dp,&
+ 3000.0000_dp,4000.0000_dp,5000.0000_dp,6000.0000_dp,7000.0000_dp,8000.0000_dp,9000.0000_dp,10000.0000_dp,20000.0000_dp,&
+ 30000.0000_dp,40000.0000_dp,50000.0000_dp,60000.0000_dp,70000.0000_dp,80000.0000_dp,90000.0000_dp,100000.0000_dp,200000.0000_dp,&
+ 300000.0000_dp,400000.0000_dp,500000.0000_dp,600000.0000_dp,700000.0000_dp,900000.0000_dp,1000000.0000_dp,2000000.0000_dp,3000000.0000_dp,&
+ 4000000.0000_dp,8000000.0000_dp,10000000.0000_dp,20000000.0000_dp]
+ aw%aw_erange_matrix(:,1) = [0.1441170079_dp,0.4451145641_dp,0.7857939550_dp,1.1973661610_dp,1.7186472507_dp,2.4001934207_dp,3.3098070861_dp,4.5401370249_dp,6.2193688435_dp,&
+ 8.5264401723_dp,11.7129087711_dp,16.1347214090_dp,22.2990405865_dp,30.9348424021_dp,43.1034312355_dp,60.3826338002_dp,85.2055156575_dp,121.5752734763_dp,&
+ 176.8552726753_dp,267.2687084529_dp,440.3633877802_dp,933.5558599550_dp,0.2903383428_dp,0.3160954628_dp,0.3704109236_dp,0.4591352090_dp,0.5917629166_dp,&
+ 0.7825054649_dp,1.0519884735_dp,1.4297869951_dp,1.9581425612_dp,2.6974086133_dp,3.7340920396_dp,5.1929188031_dp,7.2554447161_dp,10.1901370325_dp,&
+ 14.4047979662_dp,20.5484937206_dp,29.7390957561_dp,44.1549395243_dp,68.8480988193_dp,118.5837954971_dp,253.9501486803_dp,970.2789416090_dp]
+ aw%aw_erange_matrix(:,2) = [0.1474105568_dp,0.4559130086_dp,0.8070286742_dp,1.2345389542_dp,1.7808470248_dp,2.5017389105_dp,3.4727994837_dp,4.7983711562_dp,6.6242944473_dp,&
+ 9.1562340866_dp,12.6862864221_dp,17.6319936874_dp,24.5942916675_dp,34.4452843471_dp,48.4656274751_dp,68.5719674822_dp,97.7297737183_dp,140.8119314461_dp,&
+ 206.7281558429_dp,314.9556889586_dp,522.2764283993_dp,1111.8020434921_dp,0.2970754887_dp,0.3246975236_dp,0.3831023542_dp,0.4789076184_dp,0.6229013216_dp,&
+ 0.8313334849_dp,1.1279698914_dp,1.5471809908_dp,2.1385090603_dp,2.9734175546_dp,4.1553361018_dp,5.8348147393_dp,8.2329276737_dp,11.6789033110_dp,&
+ 16.6748494761_dp,24.0192841580_dp,35.0782737284_dp,52.4847352813_dp,82.2838180992_dp,142.0622184717_dp,303.9925224140_dp,1158.6905294384_dp]
+ aw%aw_erange_matrix(:,3) = [0.1509114548_dp,0.4674397882_dp,0.8298629576_dp,1.2748765694_dp,1.8490035523_dp,2.6141134833_dp,3.6549567374_dp,5.0898154801_dp,7.0858322045_dp,&
+ 9.8813161595_dp,13.8184986598_dp,19.3920793856_dp,27.3220131651_dp,38.6645168307_dp,54.9862100984_dp,78.6510794212_dp,113.3349529261_dp,165.0780268890_dp,&
+ 244.8627444176_dp,376.4911344565_dp,628.9041822634_dp,1345.1582530811_dp,0.3042445363_dp,0.3339492071_dp,0.3969424873_dp,0.5007484871_dp,0.6576940599_dp,&
+ 0.8864769553_dp,1.2146730855_dp,1.6825377112_dp,2.3486802916_dp,3.2985363257_dp,4.6570969536_dp,6.6082616541_dp,9.4248453780_dp,13.5167161989_dp,&
+ 19.5126964524_dp,28.4139492475_dp,41.9238890770_dp,63.2887057983_dp,99.8733667932_dp,172.9695531491_dp,369.9196209268_dp,1406.2736900862_dp]
+ aw%aw_erange_matrix(:,4) = [0.1536955769_dp,0.4766431857_dp,0.8482212221_dp,1.3075836427_dp,1.9047706222_dp,2.7069072191_dp,3.8067527379_dp,5.3349075831_dp,7.4775506122_dp,&
+ 10.5024969217_dp,14.7978220987_dp,20.9296285029_dp,29.7293786467_dp,42.4279775826_dp,60.8668544973_dp,87.8452195912_dp,127.7374606155_dp,187.7396398310_dp,&
+ 280.8870352463_dp,435.2340572550_dp,731.5679695302_dp,1571.1092032473_dp,0.3099516325_dp,0.3413883875_dp,0.4082149191_dp,0.5187488871_dp,0.6866731163_dp,&
+ 0.9328608381_dp,1.2883077496_dp,1.7986072367_dp,2.5306860309_dp,3.5829468654_dp,5.1006370721_dp,7.2993849475_dp,10.5018746881_dp,15.1967144192_dp,&
+ 22.1379816124_dp,32.5291277259_dp,48.4117813933_dp,73.6440274365_dp,116.8901378887_dp,203.0436360961_dp,434.1404306477_dp,1646.8793814655_dp]
+ aw%aw_erange_matrix(:,5) = [0.1558744528_dp,0.4838689714_dp,0.8627147674_dp,1.3335806630_dp,1.9494171648_dp,2.7817388039_dp,3.9300549891_dp,5.5354412574_dp,7.8004098099_dp,&
+ 11.0183226847_dp,15.6173196140_dp,22.2265048555_dp,31.7767107976_dp,45.6561173235_dp,65.9561614006_dp,95.8760736092_dp,140.4382319943_dp,207.9178440912_dp,&
+ 313.2691722510_dp,488.5011213669_dp,825.3330516836_dp,1778.4598955036_dp,0.3144217358_dp,0.3472620250_dp,0.4172059508_dp,0.5332404256_dp,0.7101979337_dp,&
+ 0.9708090378_dp,1.3490122248_dp,1.8950335727_dp,2.6830828484_dp,3.8230245213_dp,5.4781864563_dp,7.8928076393_dp,11.4350158276_dp,16.6659401779_dp,&
+ 24.4562148221_dp,36.1991864700_dp,54.2555265945_dp,83.0592301482_dp,132.4851645401_dp,230.7461798524_dp,493.3677623531_dp,1868.3614859391_dp]
+ aw%aw_erange_matrix(:,6) = [0.1577420296_dp,0.4900788355_dp,0.8752275409_dp,1.3561497684_dp,1.9884059014_dp,2.8474770181_dp,4.0390177175_dp,5.7137100310_dp,8.0891555723_dp,&
+ 11.4824948537_dp,16.3594459705_dp,23.4086773838_dp,33.6557463687_dp,48.6400404477_dp,70.6954704396_dp,103.4126190545_dp,152.4529012532_dp,227.1621219673_dp,&
+ 344.4017643056_dp,540.0960501577_dp,916.7176409366_dp,1981.3800393377_dp,0.3182558030_dp,0.3523332401_dp,0.4250332577_dp,0.5459520475_dp,0.7309733738_dp,&
+ 1.0045360104_dp,1.4033026897_dp,1.9818183126_dp,2.8211326611_dp,4.0419585198_dp,5.8248758088_dp,8.4416547480_dp,12.3045371057_dp,18.0456850793_dp,&
+ 26.6509067698_dp,39.7026540781_dp,59.8808816713_dp,92.1955098840_dp,147.7226935005_dp,257.9376341497_dp,551.5733506510_dp,2085.6903898363_dp]
+ aw%aw_erange_matrix(:,7) = [0.1595766639_dp,0.4961941481_dp,0.8876018082_dp,1.3785833858_dp,2.0273709206_dp,2.9135345279_dp,4.1491070977_dp,5.8948089586_dp,8.3841166359_dp,&
+ 11.9593604585_dp,17.1263515456_dp,24.6377784386_dp,35.6217919538_dp,51.7828553129_dp,75.7217693626_dp,111.4634347167_dp,165.3839526969_dp,248.0336779114_dp,&
+ 378.4248655535_dp,596.8834139329_dp,1017.8967204650_dp,2206.9416060218_dp,0.3220246206_dp,0.3573485404_dp,0.4328331959_dp,0.5587069224_dp,0.7519487226_dp,&
+ 1.0387865473_dp,1.4587538002_dp,2.0709759914_dp,2.9638074450_dp,4.2696295778_dp,6.1877188747_dp,9.0199170047_dp,13.2270451038_dp,19.5201486658_dp,&
+ 29.0140129036_dp,43.5044754869_dp,66.0336664421_dp,102.2649561638_dp,164.6285305303_dp,288.2428905701_dp,616.5303843661_dp,2327.8897713507_dp]
+ aw%aw_erange_matrix(:,8) = [0.1607758370_dp,0.5001994629_dp,0.8957348627_dp,1.3933903711_dp,2.0532041805_dp,2.9575267169_dp,4.2227520566_dp,6.0165023287_dp,8.5832297537_dp,&
+ 12.2827798171_dp,17.6490051764_dp,25.4796436320_dp,36.9754961105_dp,53.9586928177_dp,79.2215722409_dp,117.1028760760_dp,174.4985213677_dp,262.8395830695_dp,&
+ 402.7145263321_dp,637.6680025120_dp,1090.9284951990_dp,2370.3030519817_dp,0.3244893294_dp,0.3606449683_dp,0.4379919839_dp,0.5671906911_dp,0.7659710933_dp,&
+ 1.0617934070_dp,1.4961780450_dp,2.1314381034_dp,3.0610397916_dp,4.4255789634_dp,6.4375758500_dp,9.4203116621_dp,13.8694767492_dp,20.5531330096_dp,&
+ 30.6799434891_dp,46.2020717059_dp,70.4282404222_dp,109.5032207396_dp,176.8498238540_dp,310.2367273619_dp,663.7309286332_dp,2503.6840921749_dp]
+ aw%aw_erange_matrix(:,9) = [0.1702949317_dp,0.5322291046_dp,0.9615962494_dp,1.5151290039_dp,2.2690279176_dp,3.3310549033_dp,4.8582988517_dp,7.0841296034_dp,10.3597776853_dp,&
+ 15.2192192939_dp,22.4814415016_dp,33.4131871038_dp,49.9905945622_dp,75.3247673562_dp,114.3645047607_dp,175.0835271486_dp,270.5694444089_dp,423.0035691868_dp,&
+ 672.4894120225_dp,1102.2467053651_dp,1941.0601164726_dp,4300.3213909263_dp,0.3440915125_dp,0.3873401394_dp,0.4807065242_dp,0.6388630857_dp,0.8866070222_dp,&
+ 1.2631916428_dp,1.8295180866_dp,2.6796325717_dp,3.9590078574_dp,5.8937480925_dp,8.8376065366_dp,13.3484020449_dp,20.3136743061_dp,31.1605701810_dp,&
+ 48.2150157017_dp,75.3433791336_dp,119.1971624550_dp,192.0205174951_dp,319.6439631329_dp,571.9142828487_dp,1229.1457147735_dp,4600.6335286739_dp]
+ aw%aw_erange_matrix(:,10) = [0.1751737113_dp,0.5488134918_dp,0.9962897074_dp,1.5805812543_dp,2.3875698497_dp,3.5406582649_dp,5.2226560654_dp,7.7095997631_dp,11.4238934505_dp,&
+ 17.0188181974_dp,25.5143694717_dp,38.5178939127_dp,58.5863953296_dp,89.8287076831_dp,138.9210470214_dp,216.8546735931_dp,342.0459845127_dp,546.2432659295_dp,&
+ 887.3346565379_dp,1484.7821847441_dp,2661.6442082050_dp,5969.3805448616_dp,0.3541646554_dp,0.4014009373_dp,0.5038786064_dp,0.6787816639_dp,0.9554085499_dp,&
+ 1.3806897245_dp,2.0284537527_dp,3.0144712625_dp,4.5208083482_dp,6.8354919016_dp,10.4176848007_dp,16.0058837975_dp,24.7997029446_dp,38.7698494521_dp,&
+ 61.1977786202_dp,97.6480183184_dp,157.8383419143_dp,259.7304550554_dp,440.7316633955_dp,799.5695689941_dp,1726.6346830857_dp,6437.6178577764_dp]
+ aw%aw_erange_matrix(:,11) = [0.1786605245_dp,0.5607391016_dp,1.0214944059_dp,1.6287106244_dp,2.4758421281_dp,3.6987251620_dp,5.5009421394_dp,8.1935410949_dp,12.2582875674_dp,&
+ 18.4496574426_dp,27.9611671890_dp,42.6996718386_dp,65.7430067681_dp,102.1132676984_dp,160.1028425852_dp,253.5924066567_dp,406.2255798146_dp,659.3610703780_dp,&
+ 1089.1052916976_dp,1852.3179473042_dp,3368.2046865402_dp,7629.7200789319_dp,0.3613752591_dp,0.4116146059_dp,0.5210026545_dp,0.7087356034_dp,1.0077570304_dp,&
+ 1.4712983380_dp,2.1839573403_dp,3.2798930404_dp,4.9726725077_dp,7.6045852128_dp,11.7289136623_dp,18.2487103549_dp,28.6538458757_dp,45.4319734700_dp,&
+ 72.7949838902_dp,118.0021317674_dp,193.9061669689_dp,324.4297576502_dp,559.1145859642_dp,1026.4106597221_dp,2227.1693511420_dp,8282.0067772426_dp]
+ aw%aw_erange_matrix(:,12) = [0.1813450973_dp,0.5699633994_dp,1.0411401995_dp,1.6665645720_dp,2.5459211440_dp,3.8253991316_dp,5.7260836687_dp,8.5888766643_dp,12.9467842565_dp,&
+ 19.6427530017_dp,30.0240408832_dp,46.2666324055_dp,71.9233970381_dp,112.8627012275_dp,178.9001052545_dp,286.6890467935_dp,464.9859737318_dp,764.7335015874_dp,&
+ 1280.5197283134_dp,2207.4752523151_dp,4062.5186031124_dp,9281.1213264381_dp,0.3669335038_dp,0.4195744584_dp,0.5345185794_dp,0.7326456820_dp,1.0499742563_dp,&
+ 1.5451051803_dp,2.3119173440_dp,3.5006092308_dp,5.3525783932_dp,8.2587061985_dp,12.8577717274_dp,20.2045879871_dp,32.0610577862_dp,51.4077134976_dp,&
+ 83.3599685472_dp,136.8550046716_dp,227.9113435888_dp,386.5773340372_dp,674.9690116950_dp,1252.0133781118_dp,2729.4415777034_dp,10130.7415306161_dp]
+ aw%aw_erange_matrix(:,13) = [0.1833338883_dp,0.5768212745_dp,1.0558321359_dp,1.6950684509_dp,2.5990673867_dp,3.9221558102_dp,5.8993011088_dp,8.8953008809_dp,13.4845628578_dp,&
+ 20.5822211246_dp,31.6622793027_dp,49.1250261247_dp,76.9238552397_dp,121.6495322931_dp,194.4351535622_dp,314.3668670048_dp,514.7553317662_dp,855.2146140510_dp,&
+ 1447.2985333385_dp,2521.5749798449_dp,4685.0915653480_dp,10776.8769976891_dp,0.3710549661_dp,0.4255263433_dp,0.5447226473_dp,0.7508512219_dp,1.0823705115_dp,&
+ 1.6021755303_dp,2.4116319975_dp,3.6739975702_dp,5.6535533366_dp,8.7815543992_dp,13.7686065252_dp,21.7985240141_dp,34.8673581133_dp,56.3856031945_dp,&
+ 92.2682670682_dp,152.9604066795_dp,257.3711559175_dp,441.2259101090_dp,778.3984647651_dp,1456.1530645300_dp,3187.5508156520_dp,11816.0652107334_dp]
+ aw%aw_erange_matrix(:,14) = [0.1846993927_dp,0.5815420244_dp,1.0659886574_dp,1.7148709205_dp,2.6361792700_dp,3.9900699229_dp,6.0215196900_dp,9.1126696936_dp,13.8681827815_dp,&
+ 21.2563233179_dp,32.8450833612_dp,51.2024131733_dp,80.5836340585_dp,128.1290319014_dp,205.9837254840_dp,335.1221389073_dp,552.4298912987_dp,924.4085445080_dp,&
+ 1576.2391837470_dp,2767.1649646297_dp,5177.0285760558_dp,11968.0101921659_dp,0.3738866518_dp,0.4296404103_dp,0.5518247314_dp,0.7635998287_dp,1.1051835638_dp,&
+ 1.6425850104_dp,2.4826334701_dp,3.7981811199_dp,5.8704424825_dp,9.1607763090_dp,14.4337771750_dp,22.9710593563_dp,36.9478243061_dp,60.1067835636_dp,&
+ 98.9873310955_dp,165.2254581116_dp,280.0407946667_dp,483.7490844027_dp,859.8059192899_dp,1618.5092634315_dp,3554.2352326421_dp,13164.8584113213_dp]
+ aw%aw_erange_matrix(:,15) = [0.1863159286_dp,0.5871435638_dp,1.0780861353_dp,1.7385623737_dp,2.6807832835_dp,4.0720717291_dp,6.1697823293_dp,9.3776312873_dp,14.3381504702_dp,&
+ 22.0865346935_dp,34.3099852655_dp,53.7906461618_dp,85.1725466571_dp,136.3093079270_dp,220.6715201873_dp,361.7306746046_dp,601.1493487618_dp,1014.7342015612_dp,&
+ 1746.2754646089_dp,3094.4730042350_dp,5839.2462359963_dp,13583.4717321030_dp,0.3772409197_dp,0.4345401521_dp,0.5603352643_dp,0.7789597942_dp,1.1328071284_dp,&
+ 1.6917566707_dp,2.5694667575_dp,3.9508550874_dp,6.1385688770_dp,9.6323320726_dp,15.2660503121_dp,24.4478778325_dp,39.5867564818_dp,64.8627666955_dp,&
+ 107.6453534898_dp,181.1704182944_dp,309.7963420236_dp,540.1439781093_dp,968.9375786961_dp,1838.3380293709_dp,4053.8917273431_dp,15002.9058091478_dp]
+ aw%aw_erange_matrix(:,16) = [0.1874491096_dp,0.5910786161_dp,1.0866144797_dp,1.7553323939_dp,2.7124897315_dp,4.1306103807_dp,6.2760804391_dp,9.5684449515_dp,14.6781771453_dp,&
+ 22.6901511739_dp,35.3806113482_dp,55.6927681520_dp,88.5650444889_dp,142.3954823450_dp,231.6746888189_dp,381.8130740649_dp,638.2186219844_dp,1084.0696401078_dp,&
+ 1878.0508173881_dp,3350.6845228755_dp,6362.5940066825_dp,14869.3790003703_dp,0.3795935452_dp,0.4379939369_dp,0.5663682251_dp,0.7899025747_dp,1.1525774075_dp,&
+ 1.7271089569_dp,2.6321873130_dp,4.0616703072_dp,6.3341813840_dp,9.9782253786_dp,15.8800577265_dp,25.5440999260_dp,41.5585006333_dp,68.4414805289_dp,&
+ 114.2100287782_dp,193.3604391435_dp,332.7498029047_dp,584.0715532503_dp,1054.8129830325_dp,2012.9829311354_dp,4453.3508278722_dp,16472.7282706270_dp]
+ aw%aw_erange_matrix(:,17) = [0.1885601309_dp,0.5949435551_dp,1.0950152212_dp,1.7719071153_dp,2.7439358430_dp,4.1888715677_dp,6.3822508125_dp,9.7597284816_dp,15.0203489378_dp,&
+ 23.3000361001_dp,36.4670111742_dp,57.6317844147_dp,92.0403898602_dp,148.6633790991_dp,243.0714308414_dp,402.7434914100_dp,677.1160380394_dp,1157.3658398981_dp,&
+ 2018.4815769762_dp,3626.0594871088_dp,6929.7141747184_dp,16271.5410347054_dp,0.3819012251_dp,0.4413957194_dp,0.5723379721_dp,0.8007750327_dp,1.1722948409_dp,&
+ 1.7624982958_dp,2.6952142291_dp,4.1734732902_dp,6.5323723645_dp,10.3302491537_dp,16.5079275583_dp,26.6707828007_dp,43.5961111463_dp,72.1615147521_dp,&
+ 121.0774167617_dp,206.2009442956_dp,357.1109028044_dp,631.0761653313_dp,1147.5021742117_dp,2203.0459385795_dp,4890.5029612894_dp,18081.8150431117_dp]
+ aw%aw_erange_matrix(:,18) = [0.1949721439_dp,0.6173833608_dp,1.1442706687_dp,1.8701975876_dp,2.9326176744_dp,4.5426256257_dp,7.0347798366_dp,10.9502950579_dp,17.1785341300_dp,&
+ 27.2014489279_dp,43.5223948903_dp,70.4304089244_dp,115.3855662997_dp,191.5763875326_dp,322.7363825403_dp,552.4214919992_dp,962.3597980213_dp,1710.0488185397_dp,&
+ 3110.5415198588_dp,5840.0703282200_dp,11642.5774305799_dp,28229.4187113292_dp,0.3952402409_dp,0.4613337535_dp,0.6078754830_dp,0.8663943938_dp,1.2928300232_dp,&
+ 1.9816150738_dp,3.0906376694_dp,4.8847277598_dp,7.8119316436_dp,12.6390187248_dp,20.6958382995_dp,34.3232956305_dp,57.7096225293_dp,98.4829095756_dp,&
+ 170.8120264454_dp,301.6028591803_dp,543.2970597500_dp,1001.7216600548_dp,1903.5448151789_dp,3806.3180661427_dp,8669.3134062261_dp,32033.8629627412_dp]
+ aw%aw_erange_matrix(:,19) = [0.1989936579_dp,0.6315770411_dp,1.1758570143_dp,1.9342303779_dp,3.0575467110_dp,4.7807182690_dp,7.4813737603_dp,11.7794206688_dp,18.7093013688_dp,&
+ 30.0230402179_dp,48.7323254479_dp,80.0951812638_dp,133.4456756804_dp,225.6565231393_dp,387.8397394358_dp,678.6406164985_dp,1211.3802849063_dp,2211.4874488749_dp,&
+ 4144.7367834599_dp,8037.5098416462_dp,16548.4305196300_dp,41164.1260029741_dp,0.4036247252_dp,0.4741118580_dp,0.6311438163_dp,0.9101749351_dp,1.3746722656_dp,&
+ 2.1330207366_dp,3.3688668648_dp,5.3948238511_dp,8.7483618785_dp,14.3654969511_dp,23.9006459132_dp,40.3265272169_dp,69.0821489178_dp,120.3188199799_dp,&
+ 213.4039721814_dp,386.2091970505_dp,714.9239674599_dp,1358.3716125206_dp,2666.1544529873_dp,5503.7069646357_dp,12825.2482547198_dp,47498.4176536332_dp]
+ aw%aw_erange_matrix(:,20) = [0.2012398251_dp,0.6395460651_dp,1.1937403319_dp,1.9708322316_dp,3.1296625400_dp,4.9195321781_dp,7.7444221494_dp,12.2730231350_dp,19.6309633750_dp,&
+ 31.7425193808_dp,51.9487229388_dp,86.1461083728_dp,144.9264642124_dp,247.6850987875_dp,430.6983554712_dp,763.4326099256_dp,1382.4880756646_dp,2564.8940904068_dp,&
+ 4894.8478751235_dp,9683.4857210923_dp,20349.8357700459_dp,51476.5126403194_dp,0.4083141186_dp,0.4813434144_dp,0.6444825088_dp,0.9355576386_dp,1.4226280417_dp,&
+ 2.2226888379_dp,3.5354855195_dp,5.7039073132_dp,9.3229230420_dp,15.4391028073_dp,25.9225083298_dp,44.1734243794_dp,76.4943715915_dp,134.8171272371_dp,&
+ 242.2667924135_dp,444.8560814685_dp,836.9407376956_dp,1619.2611464210_dp,3242.1602051841_dp,6830.5350237777_dp,16170.9299807350_dp,60052.6640642910_dp]
+ aw%aw_erange_matrix(:,21) = [0.2031013903_dp,0.6461734099_dp,1.2086954079_dp,2.0016344619_dp,3.1907461078_dp,5.0378865217_dp,7.9702265965_dp,12.6997643083_dp,20.4338313337_dp,&
+ 33.2525770312_dp,54.7982458408_dp,91.5581069943_dp,155.3022643479_dp,267.8221547321_dp,470.3748416022_dp,843.0417524393_dp,1545.6991555430_dp,2908.1006079514_dp,&
+ 5638.4548607852_dp,11354.0307723722_dp,24307.6261873841_dp,62454.1953729316_dp,0.4122040611_dp,0.4873890311_dp,0.6557280892_dp,0.9571166377_dp,1.4636458120_dp,&
+ 2.2999290014_dp,3.6800777992_dp,5.9742484168_dp,9.8297094546_dp,16.3946685455_dp,27.7397415678_dp,47.6678799194_dp,83.3060772782_dp,148.3119784438_dp,&
+ 269.5146984226_dp,501.1037686841_dp,956.0713638982_dp,1879.2062241708_dp,3829.5600216847_dp,8218.7718324805_dp,19754.2291589833_dp,73606.6628531452_dp]
+ aw%aw_erange_matrix(:,22) = [0.2044706274_dp,0.6510614115_dp,1.2197740916_dp,2.0245667788_dp,3.2364565258_dp,5.1269163503_dp,8.1409989236_dp,13.0243295830_dp,21.0481499450_dp,&
+ 34.4155005946_dp,57.0081317402_dp,95.7873860342_dp,163.4785724775_dp,283.8372264599_dp,502.2535952563_dp,907.7398648202_dp,1680.0621771135_dp,3194.8362150066_dp,&
+ 6270.3626608683_dp,12801.8342624381_dp,27813.0700007564_dp,72367.8368479170_dp,0.4150672770_dp,0.4918664757_dp,0.6641121553_dp,0.9732840170_dp,1.4945761136_dp,&
+ 2.3585007678_dp,3.7903687893_dp,6.1817486925_dp,10.2213048087_dp,17.1383810531_dp,29.1651807511_dp,50.4323715012_dp,88.7453993863_dp,159.1994923049_dp,&
+ 291.7511186854_dp,547.5995278200_dp,1055.9921467960_dp,2100.9062518821_dp,4340.2867613719_dp,9452.2928804385_dp,23004.4310131155_dp,85998.7587267308_dp]
+ aw%aw_erange_matrix(:,23) = [0.2056339913_dp,0.6552234254_dp,1.2292398492_dp,2.0442370789_dp,3.2758225079_dp,5.2039030315_dp,8.2892965859_dp,13.3074393893_dp,21.5865610271_dp,&
+ 35.4399702397_dp,58.9657788358_dp,99.5567529494_dp,170.8145030769_dp,298.3125292928_dp,531.3048638729_dp,967.2458165086_dp,1804.9420001729_dp,3464.5536118564_dp,&
+ 6873.1194736988_dp,14205.5621734136_dp,31274.7335599056_dp,82323.4357501457_dp,0.4175013571_dp,0.4956912645_dp,0.6713113061_dp,0.9872300013_dp,1.5213724870_dp,&
+ 2.4094684040_dp,3.8867869924_dp,6.3640474403_dp,10.5671697265_dp,17.7990155080_dp,30.4392843147_dp,52.9201923354_dp,93.6770014619_dp,169.1526099203_dp,&
+ 312.2675177799_dp,590.9469880749_dp,1150.2563016995_dp,2312.9292394903_dp,4836.5436768091_dp,10672.8741971187_dp,26278.5272782612_dp,98576.8398088366_dp]
+ aw%aw_erange_matrix(:,24) = [0.2069775040_dp,0.6600403189_dp,1.2402327852_dp,2.0671701032_dp,3.3219021337_dp,5.2943872625_dp,8.4643316662_dp,13.6430845236_dp,22.2279304584_dp,&
+ 36.6666360357_dp,61.3229363072_dp,104.1231900943_dp,179.7617000289_dp,316.0993748034_dp,567.3008660624_dp,1041.6720817014_dp,1962.8128315737_dp,3809.7592672350_dp,&
+ 7655.8017849026_dp,16059.6754897271_dp,35937.1573256609_dp,95979.7168344628_dp,0.4203139414_dp,0.5001321869_dp,0.6797133590_dp,1.0035802839_dp,1.5529244825_dp,&
+ 2.4697458496_dp,4.0013459453_dp,6.5817175578_dp,10.9823423117_dp,18.5966034510_dp,31.9871611128_dp,55.9633339786_dp,99.7550714105_dp,181.5226720347_dp,&
+ 338.0059839916_dp,645.9068723725_dp,1271.2310300312_dp,2588.8867103792_dp,5493.2080250041_dp,12319.3081132178_dp,30781.7220454709_dp,116032.3361356684_dp]
+ aw%aw_erange_matrix(:,25) = [0.2077600768_dp,0.6628512249_dp,1.2466664953_dp,2.0806362775_dp,3.3490518982_dp,5.3478846618_dp,8.5681905110_dp,13.8429992394_dp,22.6114911707_dp,&
+ 37.4034452225_dp,62.7455533529_dp,106.8936002490_dp,185.2211900665_dp,327.0222518995_dp,589.5644501511_dp,1088.0778452197_dp,2062.1588170631_dp,4029.3210732029_dp,&
+ 8159.8868646223_dp,17271.7242812273_dp,39038.0060180248_dp,105212.7558571776_dp,0.4219530067_dp,0.5027307873_dp,0.6846512915_dp,1.0132264590_dp,1.5716075243_dp,&
+ 2.5055718323_dp,4.0697026631_dp,6.7121470095_dp,11.2322439839_dp,19.0790457755_dp,32.9284400592_dp,57.8247358066_dp,103.4968820433_dp,189.1927368246_dp,&
+ 354.0939232709_dp,680.5742458585_dp,1348.3404179074_dp,2766.9321874856_dp,5923.0003828403_dp,13415.2124592168_dp,33832.0226596393_dp,127958.1253110201_dp]
+ aw%aw_erange_matrix(:,26) = [0.2081933907_dp,0.6644092995_dp,1.2502387307_dp,2.0881274955_dp,3.3641848468_dp,5.3777628442_dp,8.6263151792_dp,13.9551256504_dp,22.8271222335_dp,&
+ 37.8187145077_dp,63.5495604636_dp,108.4640724552_dp,188.3263905304_dp,333.2579881587_dp,602.3274434799_dp,1114.8061969430_dp,2119.6881360598_dp,4157.2632433470_dp,&
+ 8455.8029227834_dp,17989.5483700177_dp,40893.5201427240_dp,110793.3937650666_dp,0.4228608173_dp,0.5041734701_dp,0.6873996295_dp,1.0186071731_dp,1.5820510036_dp,&
+ 2.5256408657_dp,4.1080813740_dp,6.7855534851_dp,11.3732572424_dp,19.3520470382_dp,33.4627328234_dp,58.8849027429_dp,105.6360383871_dp,193.5959479043_dp,&
+ 363.3729426820_dp,700.6757280481_dp,1393.3257585172_dp,2871.5488135792_dp,6177.6869430943_dp,14071.1666852181_dp,35677.2966879028_dp,135212.4893551906_dp]
+ aw%aw_erange_matrix(:,27) = [0.2126896792_dp,0.6806463088_dp,1.2877207566_dp,2.1673388521_dp,3.5254761417_dp,5.6988175431_dp,9.2562253644_dp,15.1813044173_dp,25.2082899090_dp,&
+ 42.4533225674_dp,72.6275529540_dp,126.4250934438_dp,224.3499352542_dp,406.7658702139_dp,755.5306376950_dp,1442.3710717637_dp,2841.9040752803_dp,5809.6717047741_dp,&
+ 12410.4327513260_dp,27993.7566576718_dp,68112.6855855200_dp,197105.0711734123_dp,0.4322912965_dp,0.5193038647_dp,0.7165165519_dp,1.0761259374_dp,1.6946552790_dp,&
+ 2.7439544295_dp,4.5295089336_dp,7.5997918750_dp,12.9546020382_dp,22.4502390722_dp,39.6060527282_dp,71.2522576889_dp,130.9956580492_dp,246.7504440960_dp,&
+ 477.7177064352_dp,954.3214052744_dp,1976.8634044630_dp,4273.8859897270_dp,9730.3487791900_dp,23679.3321160828_dp,64242.9910056185_dp,251314.2383457562_dp]
+ aw%aw_erange_matrix(:,28) = [0.2148506623_dp,0.6884960952_dp,1.3060105620_dp,2.2063965034_dp,3.6058618945_dp,5.8605887338_dp,9.5772645824_dp,15.8138619829_dp,26.4528236083_dp,&
+ 44.9102492173_dp,77.5153928277_dp,136.2629278459_dp,244.4603760083_dp,448.6865704893_dp,845.0327763266_dp,1639.0867126265_dp,3289.7162486028_dp,6873.6362626559_dp,&
+ 15075.1917476659_dp,35124.4234356608_dp,88918.3748025578_dp,268262.3870982124_dp,0.4368306957_dp,0.5266819660_dp,0.7309096004_dp,1.1049021959_dp,1.7516438527_dp,&
+ 2.8557587918_dp,4.7480597843_dp,8.0277823096_dp,13.7980148178_dp,24.1290973780_dp,42.9934113931_dp,78.2036161505_dp,145.5571962110_dp,278.0120655497_dp,&
+ 546.8198535035_dp,1112.4669786357_dp,2354.1730370757_dp,5220.6504649706_dp,12258.1003979030_dp,30975.0629494139_dp,87667.7472601300_dp,351779.6569114250_dp]
+ aw%aw_erange_matrix(:,29) = [0.2162960739_dp,0.6937634781_dp,1.3183457165_dp,2.2328880527_dp,3.6607039037_dp,5.9716175520_dp,9.7989909978_dp,16.2536756436_dp,27.3244349773_dp,&
+ 46.6446372977_dp,80.9960047169_dp,143.3364569524_dp,259.0772035160_dp,479.5297940043_dp,911.8075091408_dp,1788.2313178298_dp,3635.7123210357_dp,7714.5068495501_dp,&
+ 17240.5593049632_dp,41126.8844351203_dp,107256.8315932670_dp,334468.4142116168_dp,0.4398695068_dp,0.5316560297_dp,0.7406846089_dp,1.1245732962_dp,1.7908465995_dp,&
+ 2.9331717561_dp,4.9004358219_dp,8.3284198219_dp,14.3952910496_dp,25.3286146616_dp,45.4374254892_dp,83.2738985787_dp,156.3084281805_dp,301.4138423068_dp,&
+ 599.3712464305_dp,1234.9595130365_dp,2652.8146881089_dp,5989.8447382865_dp,14379.3880386348_dp,37357.2157063584_dp,109268.7175994240_dp,448590.5277955089_dp]
+ aw%aw_erange_matrix(:,30) = [0.2175489615_dp,0.6983403824_dp,1.3291049343_dp,2.2560941408_dp,3.7089561760_dp,6.0697478824_dp,9.9958909398_dp,16.6462313546_dp,28.1066854919_dp,&
+ 48.2106183031_dp,84.1596278834_dp,149.8135414594_dp,272.5731644807_dp,508.2772508988_dp,974.7206949381_dp,1930.5269348597_dp,3970.7603418492_dp,8543.5263891771_dp,&
+ 19423.6436846440_dp,47355.7019649240_dp,127040.1189612220_dp,409445.8705308242_dp,0.4425052341_dp,0.5359932906_dp,0.7492554445_dp,1.1419058702_dp,1.8255532742_dp,&
+ 3.0020442357_dp,5.0367139881_dp,8.5988243515_dp,14.9358296058_dp,26.4215582445_dp,47.6810139402_dp,87.9673293454_dp,166.3542765990_dp,323.5145185104_dp,&
+ 649.6137627437_dp,1353.7622928283_dp,2947.4487643582_dp,6764.6820381226_dp,16572.9303100728_dp,44186.7283424959_dp,133460.3979620122_dp,561771.4053367316_dp]
+ aw%aw_erange_matrix(:,31) = [0.2183655321_dp,0.7013290003_dp,1.3361511974_dp,2.2713420130_dp,3.7407681622_dp,6.1346684432_dp,10.1266305250_dp,16.9079042504_dp,28.6303408601_dp,&
+ 49.2638104409_dp,86.2982926807_dp,154.2174006332_dp,281.8088166601_dp,528.0951327582_dp,1018.4600600214_dp,2030.4371999963_dp,4208.7872511490_dp,9140.9572351626_dp,&
+ 21025.2887042307_dp,52033.6921893655_dp,142382.9745163791_dp,470099.2643897415_dp,0.4442239173_dp,0.5388331067_dp,0.7548910589_dp,1.1533454759_dp,1.8485433178_dp,&
+ 3.0478384059_dp,5.1276930632_dp,8.7801354603_dp,15.3000002759_dp,27.1617591539_dp,49.2093322210_dp,91.1852548813_dp,173.2924797777_dp,338.9060844958_dp,&
+ 684.9422045330_dp,1438.2483388607_dp,3159.8300824946_dp,7332.5436483025_dp,18214.6557127919_dp,49442.5755149292_dp,152802.2864061145_dp,655909.8326738909_dp]
+ aw%aw_erange_matrix(:,32) = [0.2186742698_dp,0.7024601361_dp,1.3388223923_dp,2.2771328530_dp,3.7528722252_dp,6.1594172318_dp,10.1765707675_dp,17.0080735857_dp,28.8312664887_dp,&
+ 49.6689563903_dp,87.1233422844_dp,155.9217005828_dp,285.3957794177_dp,535.8233082895_dp,1035.5965855717_dp,2069.7953197016_dp,4303.1660507614_dp,9379.7304298714_dp,&
+ 21671.8682357735_dp,53947.3406519953_dp,148776.3411909367_dp,496015.8330232533_dp,0.4448739108_dp,0.5399095191_dp,0.7570321760_dp,1.1577006749_dp,1.8573135211_dp,&
+ 3.0653442416_dp,5.1625488328_dp,8.8497656811_dp,15.4402227276_dp,27.4475943113_dp,49.8013936782_dp,92.4363071552_dp,176.0007433716_dp,344.9417174036_dp,&
+ 698.8697765041_dp,1471.7638618206_dp,3244.7139487741_dp,7561.6130733739_dp,18884.7796936697_dp,51622.1097406976_dp,161002.6247092503_dp,696808.1581583555_dp]
+ aw%aw_erange_matrix(:,33) = [0.2198782128_dp,0.7068770903_dp,1.3492753836_dp,2.2998478985_dp,3.8004682907_dp,6.2569829743_dp,10.3739770360_dp,17.4051752184_dp,29.6303106739_dp,&
+ 51.2857373122_dp,90.4284787704_dp,162.7785957362_dp,299.8977953452_dp,567.2430641136_dp,1105.7187063146_dp,2232.0769799967_dp,4695.8805796643_dp,10384.5178072463_dp,&
+ 24432.0291527249_dp,62274.4829269457_dp,177368.6923233238_dp,616547.3782229358_dp,0.4474095073_dp,0.5441210056_dp,0.7654350773_dp,1.1748395273_dp,1.8919185945_dp,&
+ 3.1346104489_dp,5.3008774428_dp,9.1269978871_dp,16.0004962841_dp,28.5941391536_dp,52.1866082452_dp,97.5010391597_dp,187.0257125595_dp,369.6683449598_dp,&
+ 756.3504831659_dp,1611.3010131586_dp,3601.8754227676_dp,8538.2086436403_dp,21790.5978465254_dp,61293.6413919722_dp,198624.4160270221_dp,892097.8845087624_dp]
+ aw%aw_erange_matrix(:,34) = [0.2205755009_dp,0.7094397114_dp,1.3553564847_dp,2.3131026874_dp,3.8283285292_dp,6.3142767965_dp,10.4902942063_dp,17.6400128585_dp,30.1047304678_dp,&
+ 52.2498851800_dp,92.4090505664_dp,166.9098935930_dp,308.6890319929_dp,586.4239656771_dp,1148.8758631538_dp,2332.9165048231_dp,4942.7373086278_dp,11025.1617954126_dp,&
+ 26224.1209959338_dp,67814.4643245868_dp,197071.8130837686_dp,704030.7938736863_dp,0.4488787179_dp,0.5465704995_dp,0.7703414465_dp,1.1848813813_dp,1.9122625275_dp,&
+ 3.1754743020_dp,5.3827921486_dp,9.2918390922_dp,16.3351246999_dp,29.2823043794_dp,53.6260747158_dp,100.5763289562_dp,193.7665976955_dp,384.9076036113_dp,&
+ 792.1068957790_dp,1699.0621792049_dp,3829.5233339028_dp,9171.0744405107_dp,23714.4471176181_dp,67887.1739965544_dp,225396.6303648227_dp,1038874.3973506133_dp]
+ aw%aw_erange_matrix(:,35) = [0.2224377059_dp,0.7162996642_dp,1.3716949966_dp,2.3488612926_dp,3.9038067049_dp,6.4701726928_dp,10.8082522130_dp,18.2851453162_dp,31.4151173088_dp,&
+ 54.9289395078_dp,97.9492814189_dp,178.5534824685_dp,333.6786520013_dp,641.4848041205_dp,1274.1891627742_dp,2629.7223575866_dp,5681.3924050273_dp,12981.9776395896_dp,&
+ 31846.2925691313_dp,85845.5733578560_dp,264842.4043736593_dp,1033196.5811019712_dp,0.4528048661_dp,0.5531496173_dp,0.7835887038_dp,1.2121210746_dp,1.9676997164_dp,&
+ 3.2873595156_dp,5.6082247602_dp,9.7480209040_dp,17.2668500230_dp,31.2113983728_dp,57.6918295511_dp,109.3367311298_dp,213.1561628256_dp,429.2351241074_dp,&
+ 897.4862306011_dp,1961.7878918285_dp,4524.1985462233_dp,11149.5494849911_dp,29923.5093028414_dp,90140.2431887631_dp,322195.0066980188_dp,1626621.7226316575_dp]
+ aw%aw_erange_matrix(:,36) = [0.2239628349_dp,0.7219355060_dp,1.3851835473_dp,2.3785430503_dp,3.9668088400_dp,6.6010539366_dp,11.0768290063_dp,18.8336926711_dp,32.5373962751_dp,&
+ 57.2417989927_dp,102.7750045174_dp,188.7976056543_dp,355.9168822786_dp,691.1313918785_dp,1388.9298160111_dp,2906.5063814445_dp,6385.7594355512_dp,14901.0391217622_dp,&
+ 37566.6308767189_dp,105158.5712504577_dp,343432.4005668496_dp,1472923.8844171131_dp,0.4560229807_dp,0.5585787528_dp,0.7945963525_dp,1.2348954597_dp,2.0143300102_dp,&
+ 3.3820668359_dp,5.8003474242_dp,10.1396846683_dp,18.0733281755_dp,32.8962669883_dp,61.2787261993_dp,117.1534472128_dp,230.6822681245_dp,469.9066152974_dp,&
+ 995.8900705536_dp,2212.3499471505_dp,5204.1049563543_dp,13150.8079295981_dp,36485.4121522435_dp,115173.4190205108_dp,442490.0578465670_dp,2493513.1430867943_dp]
+ aw%aw_erange_matrix(:,37) = [0.2243965013_dp,0.7235409420_dp,1.3890367197_dp,2.3870485328_dp,3.9849206258_dp,6.6388051324_dp,11.1545712186_dp,18.9930833620_dp,32.8648647383_dp,&
+ 57.9198028342_dp,104.1969950480_dp,191.8339523060_dp,362.5524557845_dp,706.0600231939_dp,1423.7460810181_dp,2991.4083594542_dp,6604.7171596209_dp,15507.7421901125_dp,&
+ 39415.9362265085_dp,111603.1061980504_dp,371012.6224243028_dp,1643128.6270796654_dp,0.4569384765_dp,0.5601292542_dp,0.7977525237_dp,1.2414486178_dp,2.0277943095_dp,&
+ 3.4095131325_dp,5.8562441841_dp,10.2541265145_dp,18.3100902522_dp,33.3934954384_dp,62.3434883801_dp,119.4892526136_dp,235.9593169549_dp,482.2607809330_dp,&
+ 1026.0926003988_dp,2290.2227401019_dp,5418.7139363672_dp,13795.1304786747_dp,38655.0410926747_dp,123775.6738481261_dp,486536.0450457267_dp,2852917.4730972610_dp]
+ aw%aw_erange_matrix(:,38) = [0.2257280868_dp,0.7284787343_dp,1.4009186212_dp,2.4133523642_dp,4.0410989331_dp,6.7562599561_dp,11.3972381152_dp,19.4923653756_dp,33.8946132905_dp,&
+ 60.0610038276_dp,108.7094229805_dp,201.5218299780_dp,383.8565871173_dp,754.3383757573_dp,1537.3076264585_dp,3271.2067186961_dp,7335.5742038181_dp,17566.3480868639_dp,&
+ 45831.7044920070_dp,134698.6726713842_dp,475373.8675466694_dp,2370246.2019322505_dp,0.4597507654_dp,0.5649093236_dp,0.8075184620_dp,1.2617918420_dp,2.0697260288_dp,&
+ 3.4952761608_dp,6.0315410632_dp,10.6144464483_dp,19.0587908729_dp,34.9734966865_dp,65.7453442538_dp,126.9982293865_dp,253.0444886075_dp,522.5921175813_dp,&
+ 1125.6665078537_dp,2550.0437280359_dp,6145.5294802653_dp,16020.1320351972_dp,46350.6273161777_dp,155535.3340619753_dp,660935.4431146942_dp,4531788.9980076430_dp]
+ aw%aw_erange_matrix(:,39) = [0.2260960944_dp,0.7298455047_dp,1.4042154577_dp,2.4206704955_dp,4.0567721899_dp,6.7891239920_dp,11.4653468388_dp,19.6329684749_dp,34.1856733039_dp,&
+ 60.6687050686_dp,109.9960138655_dp,204.2984775948_dp,389.9991164296_dp,768.3550821883_dp,1570.5493708793_dp,3353.9236728895_dp,7554.3047013994_dp,18192.2530611664_dp,&
+ 47824.6037415822_dp,142101.8482716335_dp,510652.7132165922_dp,2648668.5120964348_dp,0.4605283085_dp,0.5662353265_dp,0.8102368088_dp,1.2674717305_dp,2.0814689820_dp,&
+ 3.5193707950_dp,6.0809598880_dp,10.7164098245_dp,19.2715422705_dp,35.4245562861_dp,66.7215685549_dp,129.1658164223_dp,258.0099439913_dp,534.4067343872_dp,&
+ 1155.1115416141_dp,2627.7595629551_dp,6366.0648192168_dp,16707.9785338324_dp,48791.6363938491_dp,166005.7221901024_dp,722469.0060948996_dp,5234589.6473626727_dp]
+ aw%aw_erange_matrix(:,40) = [0.2261733010_dp,0.7301323991_dp,1.4049080386_dp,2.4222091516_dp,4.0600702464_dp,6.7960450259_dp,11.4797022884_dp,19.6626311552_dp,34.2471415656_dp,&
+ 60.7971921298_dp,110.2683862617_dp,204.8871446678_dp,391.3035452124_dp,771.3373955617_dp,1577.6379738323_dp,3371.6096725859_dp,7601.2284769245_dp,18327.1102478198_dp,&
+ 48256.5019054435_dp,143720.2228231070_dp,518483.1882992422_dp,2712897.2449349295_dp,0.4606914567_dp,0.5665138676_dp,0.8108084502_dp,1.2686672317_dp,2.0839426746_dp,&
+ 3.5244506649_dp,6.0913885366_dp,10.7379499327_dp,19.3165403313_dp,35.5200796859_dp,66.9286031901_dp,129.6262695848_dp,259.0667452007_dp,536.9266561480_dp,&
+ 1161.4076992782_dp,2644.4284351048_dp,6413.5530026239_dp,16856.8500540382_dp,49323.6295552938_dp,168312.3706533907_dp,736293.7184796637_dp,5401331.4693767307_dp]
+ aw%aw_erange_matrix(:,41) = [0.2261732461_dp,0.7301322119_dp,1.4049076526_dp,2.4222084544_dp,4.0600690988_dp,6.7960433225_dp,11.4796999614_dp,19.6626279855_dp,34.2471373492_dp,&
+ 60.7971896142_dp,110.2683938690_dp,204.8871558975_dp,391.3034734250_dp,771.3370001893_dp,1577.6366809335_dp,3371.6062497252_dp,7601.2208578517_dp,18327.0899173436_dp,&
+ 48256.4331612689_dp,143719.9828438671_dp,518482.1905220594_dp,2712896.0135127371_dp,0.4606913432_dp,0.5665137093_dp,0.8108082029_dp,1.2686668512_dp,2.0839421606_dp,&
+ 3.5244500779_dp,6.0913878513_dp,10.7379488866_dp,19.3165397141_dp,35.5200850043_dp,66.9286165836_dp,129.6262502847_dp,259.0665725933_dp,536.9261347651_dp,&
+ 1161.4063004605_dp,2644.4255245315_dp,6413.5465926378_dp,16856.8275378510_dp,49323.5406084456_dp,168312.0958090605_dp,736292.1370502859_dp,5401335.3836557837_dp]
+ case(24)
+ aw%energy_range(:) = [700.0000_dp,800.0000_dp,900.0000_dp,1000.0000_dp,2000.0000_dp,3000.0000_dp,4000.0000_dp,5000.0000_dp,6000.0000_dp,&
+ 7000.0000_dp,8000.0000_dp,9000.0000_dp,10000.0000_dp,20000.0000_dp,30000.0000_dp,40000.0000_dp,50000.0000_dp,60000.0000_dp,&
+ 70000.0000_dp,80000.0000_dp,90000.0000_dp,100000.0000_dp,200000.0000_dp,300000.0000_dp,400000.0000_dp,500000.0000_dp,600000.0000_dp,&
+ 700000.0000_dp,900000.0000_dp,1000000.0000_dp,2000000.0000_dp,3000000.0000_dp,4000000.0000_dp,8000000.0000_dp,20000000.0000_dp,30000000.0000_dp,&
+ 40000000.0000_dp,50000000.0000_dp,60000000.0000_dp,70000000.0000_dp]
+ aw%aw_erange_matrix(:,1) = [0.1444831841_dp,0.4463129305_dp,0.7881428810_dp,1.2014614143_dp,1.7254689683_dp,2.4112775480_dp,3.3275084061_dp,4.5680241415_dp,6.2628063920_dp,&
+ 8.5934240114_dp,11.8152023682_dp,16.2892192514_dp,22.5288206461_dp,31.2678471963_dp,43.5619559201_dp,60.9420651793_dp,85.6545500191_dp,121.0591608460_dp,&
+ 172.3522673692_dp,248.0734198626_dp,363.8458976581_dp,553.8515140977_dp,917.7986693324_dp,1952.9117915519_dp,0.2910870254_dp,0.3170469290_dp,0.3718060277_dp,&
+ 0.4612957722_dp,0.5951464219_dp,0.7877810899_dp,1.0601464492_dp,1.4422957175_dp,1.9771680040_dp,2.7260990272_dp,3.7768785615_dp,5.2556016576_dp,&
+ 7.3442618251_dp,10.3072523710_dp,14.5322648586_dp,20.5960578770_dp,29.3777063234_dp,42.2751385759_dp,61.6812840242_dp,92.2133252902_dp,144.4837916238_dp,&
+ 249.3832447505_dp,533.6819506240_dp,2034.6812130298_dp]
+ aw%aw_erange_matrix(:,2) = [0.1462351224_dp,0.4520540968_dp,0.7994228466_dp,1.2211864610_dp,1.7584357941_dp,2.4650348251_dp,3.4136941332_dp,4.7044124886_dp,6.4764241313_dp,&
+ 8.9252888104_dp,12.3275308604_dp,17.0764098214_dp,23.7342251851_dp,33.1094526118_dp,46.3718374940_dp,65.2272650233_dp,92.1916981548_dp,131.0436704122_dp,&
+ 187.6411062375_dp,271.6082468252_dp,400.4981511560_dp,612.5417457455_dp,1018.8940111719_dp,2173.3280071422_dp,0.2946702604_dp,0.3216162729_dp,0.3785364862_dp,&
+ 0.4717652242_dp,0.6116114582_dp,0.8135669770_dp,1.1002227739_dp,1.5041403839_dp,2.0720738283_dp,2.8711592052_dp,3.9980154578_dp,5.5922033331_dp,&
+ 7.8563040850_dp,11.0862799686_dp,15.7184068280_dp,22.4046116197_dp,32.1413789683_dp,46.5137216101_dp,68.2261257303_dp,102.4653370494_dp,161.0806535929_dp,&
+ 278.4572085100_dp,595.6911596593_dp,2267.9697886947_dp]
+ aw%aw_erange_matrix(:,3) = [0.1480254215_dp,0.4579337645_dp,0.8110189757_dp,1.2415600901_dp,1.7926594407_dp,2.5211286991_dp,3.5040867940_dp,4.8481890429_dp,6.7027698187_dp,&
+ 9.2787577535_dp,12.8761137851_dp,17.9239105861_dp,25.0392947209_dp,35.1149478848_dp,49.4502635769_dp,69.9514249484_dp,99.4452959336_dp,142.1967669711_dp,&
+ 204.8365962245_dp,298.2605268262_dp,442.2824727194_dp,679.8553440442_dp,1135.4135593105_dp,2428.1922750715_dp,0.2983340021_dp,0.3263141520_dp,0.3855062739_dp,&
+ 0.4826798657_dp,0.6288796171_dp,0.8407612053_dp,1.1427161320_dp,1.5700685414_dp,2.1738000022_dp,3.0275157594_dp,4.2377477964_dp,5.9592805615_dp,&
+ 8.4181383582_dp,11.9464976910_dp,17.0367899874_dp,24.4284761387_dp,35.2557057237_dp,51.3239814800_dp,75.7055579826_dp,114.2569409241_dp,180.2699406534_dp,&
+ 312.1779089127_dp,667.6444661491_dp,2538.2837097538_dp]
+ aw%aw_erange_matrix(:,4) = [0.1495207465_dp,0.4628547668_dp,0.8207591322_dp,1.2587484912_dp,1.8216692929_dp,2.5689048829_dp,3.5814431792_dp,4.9718158210_dp,6.8983254114_dp,&
+ 9.5856273277_dp,13.3547404058_dp,18.6671136196_dp,26.1897918363_dp,36.8925672577_dp,52.1943604128_dp,74.1872982909_dp,105.9888838572_dp,152.3217269704_dp,&
+ 220.5481261826_dp,322.7717685540_dp,480.9542755105_dp,742.5159256330_dp,1244.3915104090_dp,2667.3021019704_dp,0.3013957086_dp,0.3302604655_dp,0.3914004560_dp,&
+ 0.4919676878_dp,0.6436556862_dp,0.8641511062_dp,1.1794484220_dp,1.6273447109_dp,2.2626275452_dp,3.1647612174_dp,4.4493120040_dp,6.2850287038_dp,&
+ 8.9195842042_dp,12.7188298679_dp,18.2277869335_dp,26.2684744543_dp,38.1057440783_dp,55.7555316005_dp,82.6418345370_dp,125.2598873133_dp,198.2669609027_dp,&
+ 343.9024155387_dp,735.3761760093_dp,2792.4007975812_dp]
+ aw%aw_erange_matrix(:,5) = [0.1581584545_dp,0.4914655700_dp,0.8780290019_dp,1.3612185024_dp,1.9971910555_dp,2.8623379317_dp,4.0637284684_dp,5.7542616489_dp,8.1550244560_dp,&
+ 11.5886381531_dp,16.5294112875_dp,23.6793452859_dp,34.0841888721_dp,49.3120741540_dp,71.7310702306_dp,104.9457479288_dp,154.4966301940_dp,229.0167848121_dp,&
+ 342.2593271762_dp,517.0527707275_dp,794.5036692063_dp,1261.3893969466_dp,2162.7398061845_dp,4705.9350887607_dp,0.3191110394_dp,0.3534686602_dp,0.4267939039_dp,&
+ 0.5488233603_dp,0.7356835113_dp,1.0122083638_dp,1.4156919494_dp,2.0016798733_dp,2.8528008777_dp,4.0922437829_dp,5.9044201005_dp,8.5668449726_dp,&
+ 12.4997077073_dp,18.3436967442_dp,27.0838216744_dp,40.2505374352_dp,60.2583466839_dp,91.0142703018_dp,139.1437232012_dp,216.9327357162_dp,351.1339455834_dp,&
+ 616.8079434404_dp,1319.8772466218_dp,4975.5101757964_dp]
+ aw%aw_erange_matrix(:,6) = [0.1631097620_dp,0.5080135567_dp,0.9116667485_dp,1.4225389648_dp,2.1043236614_dp,3.0450359010_dp,4.3700131540_dp,6.2611211321_dp,8.9856050855_dp,&
+ 12.9399049409_dp,18.7167879480_dp,27.2090533360_dp,39.7710395669_dp,58.4723061861_dp,86.4999013261_dp,128.8036555283_dp,193.1479506070_dp,291.8704906235_dp,&
+ 444.9645785607_dp,685.9916443587_dp,1075.4395233632_dp,1739.5672411434_dp,3029.3298737363_dp,6660.6016806705_dp,0.3292892917_dp,0.3671025078_dp,0.4481712623_dp,&
+ 0.5840409015_dp,0.7939862869_dp,1.1080155816_dp,1.5717812452_dp,2.2542645172_dp,3.2596882303_dp,4.7460262182_dp,6.9539264000_dp,10.2522278622_dp,&
+ 15.2101805373_dp,22.7131385208_dp,34.1501527103_dp,51.7234046577_dp,78.9730765643_dp,121.7140919219_dp,189.8748316532_dp,301.7465519058_dp,496.3642328717_dp,&
+ 880.9495966272_dp,1889.0610962342_dp,7090.4217269333_dp]
+ aw%aw_erange_matrix(:,7) = [0.1664674025_dp,0.5192992114_dp,0.9348305991_dp,1.4652599863_dp,2.1798809460_dp,3.1754829050_dp,4.5914060961_dp,6.6320592545_dp,9.6011642410_dp,&
+ 13.9544169906_dp,20.3812229064_dp,29.9326640661_dp,44.2235898076_dp,65.7546627134_dp,98.4306545184_dp,148.4042522886_dp,225.4705402984_dp,345.4244262409_dp,&
+ 534.2099602523_dp,835.8233970236_dp,1329.8280854082_dp,2181.2822208070_dp,3843.6799664110_dp,8519.1634651685_dp,0.3362016095_dp,0.3764914681_dp,0.4631460168_dp,&
+ 0.6090928797_dp,0.8360361451_dp,1.1780256329_dp,1.6873334714_dp,2.4437398939_dp,3.5690964004_dp,5.2502409163_dp,7.7752875394_dp,11.5915422657_dp,&
+ 17.3987403579_dp,26.3006419804_dp,40.0544557406_dp,61.4877246077_dp,95.2120979201_dp,148.8986862848_dp,235.7507129855_dp,380.0737118713_dp,633.1136329283_dp,&
+ 1133.3186348854_dp,2436.0577961080_dp,9116.6780863972_dp]
+ aw%aw_erange_matrix(:,8) = [0.1690776973_dp,0.5281095095_dp,0.9530417927_dp,1.4991313490_dp,2.2403191273_dp,3.2807596388_dp,4.7716782841_dp,6.9368306537_dp,10.1115966056_dp,&
+ 14.8036958093_dp,21.7883944857_dp,32.2591622719_dp,48.0682608207_dp,72.1146215914_dp,108.9756534578_dp,165.9485193173_dp,254.7915087282_dp,394.6980676439_dp,&
+ 617.5622271710_dp,977.9811277731_dp,1575.1218646365_dp,2613.9759091892_dp,4652.4661733029_dp,10382.7978511251_dp,0.3415811579_dp,0.3838728955_dp,0.4750640433_dp,&
+ 0.6292516218_dp,0.8702095713_dp,1.2354628915_dp,1.7830337174_dp,2.6021851733_dp,3.8304277561_dp,5.6805493356_dp,8.4838802661_dp,12.7601201248_dp,&
+ 19.3310759058_dp,29.5078437842_dp,45.4025661560_dp,70.4555770009_dp,110.3464794351_dp,174.6287171469_dp,279.8799006894_dp,456.6692570002_dp,768.9396428512_dp,&
+ 1387.0711545806_dp,2989.0749703627_dp,11161.0556901874_dp]
+ aw%aw_erange_matrix(:,9) = [0.1709557703_dp,0.5344686559_dp,0.9662573049_dp,1.5238691353_dp,2.2847567751_dp,3.3586881106_dp,4.9060235024_dp,7.1655139823_dp,10.4972872973_dp,&
+ 15.4500901467_dp,22.8675204274_dp,34.0574489068_dp,51.0647967947_dp,77.1150960111_dp,117.3434868279_dp,180.0072675174_dp,278.5322573782_dp,435.0365515056_dp,&
+ 686.6040010667_dp,1097.1993584122_dp,1783.4898352383_dp,2986.2142227836_dp,5356.0836020504_dp,12016.9059606308_dp,0.3454548628_dp,0.3892293024_dp,0.4837928296_dp,&
+ 0.6441385331_dp,0.8956351410_dp,1.2785039189_dp,1.8552630076_dp,2.7226521906_dp,4.0306368631_dp,6.0128362011_dp,9.0356096383_dp,13.6779344741_dp,&
+ 20.8626467845_dp,32.0743836708_dp,49.7259301183_dp,77.7832698071_dp,122.8543665835_dp,196.1515671140_dp,317.2657255647_dp,522.4150070505_dp,887.0057238075_dp,&
+ 1609.9115965938_dp,3477.1227916280_dp,12962.7512514722_dp]
+ aw%aw_erange_matrix(:,10) = [0.1726447830_dp,0.5402022810_dp,0.9782242070_dp,1.5463843073_dp,2.3254181485_dp,3.4303775442_dp,5.0302797273_dp,7.3781823188_dp,10.8579865286_dp,&
+ 16.0581304869_dp,23.8888077362_dp,35.7702460115_dp,53.9381215294_dp,81.9441090303_dp,125.4853484427_dp,193.7959335739_dp,302.0155051485_dp,475.3005938585_dp,&
+ 756.1877714365_dp,1218.5936533093_dp,1997.9473426011_dp,3373.4421522655_dp,6095.0561348602_dp,13744.7879009066_dp,0.3489409145_dp,0.3940794590_dp,0.4917547726_dp,&
+ 0.6578067504_dp,0.9191179687_dp,1.3184835161_dp,1.9227402786_dp,2.8358581620_dp,4.2199323354_dp,6.3290212303_dp,9.5641245019_dp,14.5633247217_dp,&
+ 22.3510726502_dp,34.5881630863_dp,53.9955472147_dp,85.0836236152_dp,135.4324631636_dp,218.0114762829_dp,355.6392245410_dp,590.6401417408_dp,1010.8425872098_dp,&
+ 1845.7325256463_dp,3995.9445980019_dp,14876.1560237048_dp]
+ aw%aw_erange_matrix(:,11) = [0.1738605393_dp,0.5443380620_dp,0.9868867334_dp,1.5627507674_dp,2.3551044797_dp,3.4829469465_dp,5.1217979994_dp,7.5355209805_dp,11.1260743095_dp,&
+ 16.5122194112_dp,24.6553358520_dp,37.0625585194_dp,56.1180969954_dp,85.6293729569_dp,131.7375179578_dp,204.4544488438_dp,320.2960832789_dp,506.8809564298_dp,&
+ 811.2057377731_dp,1315.4042726890_dp,2170.5222479635_dp,3687.8741411859_dp,6700.0179154473_dp,15167.5878795238_dp,0.3514515514_dp,0.3975902285_dp,0.4975525841_dp,&
+ 0.6678130090_dp,0.9363925476_dp,1.3480308458_dp,1.9728444581_dp,2.9203241384_dp,4.3618812340_dp,6.5673687306_dp,9.9647275133_dp,15.2383215088_dp,&
+ 23.4927406755_dp,36.5287652598_dp,57.3142122789_dp,90.7993513300_dp,145.3568831305_dp,235.4026772409_dp,386.4380005836_dp,645.9038040534_dp,1112.0689367858_dp,&
+ 2039.9867949721_dp,4425.0672231763_dp,16457.6314110225_dp]
+ aw%aw_erange_matrix(:,12) = [0.1753655164_dp,0.5494678874_dp,0.9976670809_dp,1.5831986606_dp,2.3923461136_dp,3.5491675380_dp,5.2375601555_dp,7.7353810978_dp,11.4680982283_dp,&
+ 17.0941702077_dp,25.6423723038_dp,38.7349608389_dp,58.9541546985_dp,90.4506116309_dp,139.9656122303_dp,218.5705032899_dp,344.6710685128_dp,549.2960926611_dp,&
+ 885.6771136835_dp,1447.5423259491_dp,2408.1530281330_dp,4124.7049256973_dp,7547.3043273828_dp,17171.9709510711_dp,0.3545610482_dp,0.4019591263_dp,0.5048080352_dp,&
+ 0.6803975269_dp,0.9582167603_dp,1.3855239964_dp,2.0367043909_dp,3.0284718185_dp,4.5444937849_dp,6.8755236067_dp,10.4853717613_dp,16.1204210430_dp,&
+ 24.9933884816_dp,39.0953047224_dp,61.7321009802_dp,98.4615076338_dp,158.7605363404_dp,259.0791626459_dp,428.7271349072_dp,722.4697634703_dp,1253.5792039363_dp,&
+ 2313.6572543644_dp,5032.2139735216_dp,18693.9190060109_dp]
+ aw%aw_erange_matrix(:,13) = [0.1762525278_dp,0.5524966749_dp,1.0040508933_dp,1.5953494848_dp,2.4145565226_dp,3.5888042694_dp,5.3071037767_dp,7.8558935977_dp,11.6751259028_dp,&
+ 17.4478358462_dp,26.2447351358_dp,39.7600958375_dp,60.7007012587_dp,93.4344188867_dp,145.0847228505_dp,227.4021853772_dp,360.0129611396_dp,576.1649809108_dp,&
+ 933.1802189583_dp,1532.4570953189_dp,2562.0641335204_dp,4409.9027665207_dp,8104.5389998819_dp,18497.1969702348_dp,0.3563945776_dp,0.4045461520_dp,0.5091256006_dp,&
+ 0.6879192306_dp,0.9713130436_dp,1.4081098242_dp,2.0753236739_dp,3.0941375016_dp,4.6558387310_dp,7.0642416323_dp,10.8056938539_dp,16.6657683060_dp,&
+ 25.9259213466_dp,40.6989072978_dp,64.5084644211_dp,103.3064950012_dp,167.2921824588_dp,274.2567753884_dp,456.0426876422_dp,772.3234133156_dp,1346.4655933627_dp,&
+ 2494.5638380344_dp,5435.1707231009_dp,20177.5066401676_dp]
+ aw%aw_erange_matrix(:,14) = [0.1829783682_dp,0.5755938137_dp,1.0531970558_dp,1.6899438035_dp,2.5894885088_dp,3.9046729855_dp,5.8679231710_dp,8.8396478506_dp,13.3866247544_dp,&
+ 20.4106346920_dp,31.3621347581_dp,48.5995152028_dp,76.0007561643_dp,120.0187127092_dp,191.5278286467_dp,309.1059913741_dp,504.9671486648_dp,835.8995406056_dp,&
+ 1403.9494370002_dp,2397.0991426389_dp,4175.7480862539_dp,7492.4429100080_dp,14302.6666713534_dp,33555.9419248088_dp,0.3703179667_dp,0.4244588968_dp,0.5428864332_dp,&
+ 0.7475654171_dp,1.0765075808_dp,1.5918195796_dp,2.3934883989_dp,3.6423586825_dp,5.5984672689_dp,8.6855481066_dp,13.6007516181_dp,21.5035284761_dp,&
+ 34.3450835002_dp,55.4512312859_dp,90.5696137480_dp,149.7836724584_dp,251.0801516726_dp,427.1647777877_dp,738.9719004826_dp,1304.3562792987_dp,2368.9196212347_dp,&
+ 4543.2054945270_dp,10079.2529978940_dp,37268.9585459828_dp]
+ aw%aw_erange_matrix(:,15) = [0.1864328591_dp,0.5875492898_dp,1.0789643041_dp,1.7402865658_dp,2.6840380111_dp,4.0780712696_dp,6.1806590053_dp,9.3971229425_dp,14.3728222885_dp,&
+ 22.1479648759_dp,34.4187048094_dp,53.9832910445_dp,85.5148902410_dp,136.9198284881_dp,221.7622052391_dp,363.6659505460_dp,604.4572621267_dp,1019.5465755022_dp,&
+ 1747.7402439870_dp,3051.1515592744_dp,5443.8681058120_dp,10014.0254933408_dp,19571.8504999681_dp,46737.2209709122_dp,0.3774836319_dp,0.4348958056_dp,0.5609552035_dp,&
+ 0.7800821684_dp,1.1348314252_dp,1.6953702560_dp,2.5758665583_dp,3.9621412099_dp,6.1584508458_dp,9.6674081750_dp,15.3281438612_dp,24.5583220846_dp,&
+ 39.7842045296_dp,65.2168705851_dp,108.2771491585_dp,182.2605473204_dp,311.4266558086_dp,540.9645390539_dp,957.1793336441_dp,1730.8219657637_dp,3222.4346623368_dp,&
+ 6320.4828281551_dp,14214.0487649746_dp,52510.9710846642_dp]
+ aw%aw_erange_matrix(:,16) = [0.1888673828_dp,0.5960135969_dp,1.0973453046_dp,1.7765141441_dp,2.7526956080_dp,4.2051369061_dp,6.4119579634_dp,9.8133747332_dp,15.1165441060_dp,&
+ 23.4719283795_dp,36.7740207159_dp,58.1812475623_dp,93.0278994207_dp,150.4486063818_dp,246.3207344899_dp,408.6913848578_dp,687.9884842007_dp,1176.6680482315_dp,&
+ 2048.0301817657_dp,3635.6622808178_dp,6606.1147808342_dp,12388.8768429516_dp,24670.4465803243_dp,59765.6786084483_dp,0.3825395972_dp,0.4423391997_dp,0.5739985133_dp,&
+ 0.8038071031_dp,1.1778066684_dp,1.7724143723_dp,2.7129170522_dp,4.2049553639_dp,6.5883275304_dp,10.4299109641_dp,16.6861925793_dp,26.9915765371_dp,&
+ 44.1776987280_dp,73.2245357881_dp,123.0341810517_dp,209.8052795947_dp,363.5965618859_dp,641.4271543159_dp,1154.3058667782_dp,2125.9959039706_dp,4035.3547351848_dp,&
+ 8060.2352858889_dp,18344.4026094871_dp,67781.7202153203_dp]
+ aw%aw_erange_matrix(:,17) = [0.1908012661_dp,0.6027605095_dp,1.1120797355_dp,1.8057447039_dp,2.8084669625_dp,4.3090570644_dp,6.6024368735_dp,10.1586238065_dp,15.7380385569_dp,&
+ 24.5870918153_dp,38.7746508920_dp,61.7792631772_dp,99.5296982089_dp,162.2789883408_dp,268.0395021411_dp,449.0011876172_dp,763.7792359281_dp,1321.3436607123_dp,&
+ 2329.0736920909_dp,4192.7194711633_dp,7736.4036043617_dp,14750.2565581519_dp,29855.8684036316_dp,73259.4938942780_dp,0.3865594411_dp,0.4483047301_dp,0.5845463388_dp,&
+ 0.8231452604_dp,1.2130930613_dp,1.8361346851_dp,2.8271157811_dp,4.4088710629_dp,6.9523315126_dp,11.0812505492_dp,17.8571269115_dp,29.1105993227_dp,&
+ 48.0449841567_dp,80.3549054679_dp,136.3396775154_dp,234.9807659012_dp,411.9945806478_dp,736.1685089361_dp,1343.6208414133_dp,2513.2762031319_dp,4849.9948833345_dp,&
+ 9844.1013924928_dp,22656.5439149310_dp,83782.4350216886_dp]
+ aw%aw_erange_matrix(:,18) = [0.1919275086_dp,0.6066993775_dp,1.1207162119_dp,1.8229571440_dp,2.8414643308_dp,4.3708369707_dp,6.7162289720_dp,10.3659192449_dp,16.1131786879_dp,&
+ 25.2639983229_dp,39.9963115681_dp,63.9904453046_dp,103.5530041949_dp,169.6542328021_dp,281.6889602727_dp,474.5581547092_dp,812.2969292007_dp,1414.9478643552_dp,&
+ 2513.0666715026_dp,4562.2632949378_dp,8497.4370986425_dp,16366.6024633931_dp,33466.2430685965_dp,82787.2172804636_dp,0.3889019836_dp,0.4518008519_dp,0.5907670865_dp,&
+ 0.8346137832_dp,1.2341277170_dp,1.8743137280_dp,2.8959011651_dp,4.5323761503_dp,7.1740882935_dp,11.4805267880_dp,18.5796868308_dp,30.4275119206_dp,&
+ 50.4668006262_dp,84.8571339354_dp,144.8165065913_dp,251.1773091777_dp,443.4670252683_dp,798.5123604322_dp,1469.8554010678_dp,2775.3655096322_dp,5410.4529573927_dp,&
+ 11092.7716344120_dp,25718.0669014744_dp,95181.4081571741_dp]
+ aw%aw_erange_matrix(:,19) = [0.1933564752_dp,0.6117072285_dp,1.1317332773_dp,1.8449986465_dp,2.8838871676_dp,4.4505826874_dp,6.8637146235_dp,10.6357387185_dp,16.6036560695_dp,&
+ 26.1532312813_dp,41.6093312507_dp,66.9259189279_dp,108.9256358365_dp,179.5658252755_dp,300.1599611170_dp,509.4060406167_dp,879.0070210811_dp,1544.8462284673_dp,&
+ 2771.0527089735_dp,5086.4824495012_dp,9591.3232342662_dp,18724.5089389590_dp,38815.6860863636_dp,97090.0884551632_dp,0.3918757640_dp,0.4562600553_dp,0.5987432017_dp,&
+ 0.8493866271_dp,1.2613397417_dp,1.9239173760_dp,2.9856672819_dp,4.6943066179_dp,7.4662809377_dp,12.0094024620_dp,19.5421859073_dp,32.1923730307_dp,&
+ 53.7336445114_dp,90.9733989748_dp,156.4213655496_dp,273.5386766621_dp,487.3256351897_dp,886.2968738300_dp,1649.6781570207_dp,3153.6366120257_dp,6231.3588092874_dp,&
+ 12950.7918869555_dp,30335.2973550919_dp,112436.4040300664_dp]
+ aw%aw_erange_matrix(:,20) = [0.1943108649_dp,0.6150583398_dp,1.1391286283_dp,1.8598474852_dp,2.9125723120_dp,4.5047064536_dp,6.9641970949_dp,10.8202994673_dp,16.9405572126_dp,&
+ 26.7667538902_dp,42.7275330578_dp,68.9713190578_dp,112.6899259480_dp,186.5519734475_dp,313.2643525875_dp,534.3064613806_dp,927.0515751223_dp,1639.2210763092_dp,&
+ 2960.3313694703_dp,5475.3667191272_dp,10413.0770973923_dp,20521.1923064040_dp,42954.0503775990_dp,108298.4636116199_dp,0.3938629079_dp,0.4592529596_dp,0.6041227721_dp,&
+ 0.8593932698_dp,1.2798463359_dp,1.9577875801_dp,3.0472157781_dp,4.8058207173_dp,7.6684349009_dp,12.3771167228_dp,20.2149315842_dp,33.4329555659_dp,&
+ 56.0441348430_dp,95.3280102273_dp,164.7438650793_dp,289.7034968450_dp,519.3108399542_dp,950.9467013146_dp,1783.5755312295_dp,3438.8306422667_dp,6859.0622879598_dp,&
+ 14393.4131448216_dp,33968.5865839197_dp,126069.5260881044_dp]
+ aw%aw_erange_matrix(:,21) = [0.1949032214_dp,0.6171408932_dp,1.1437339237_dp,1.8691160596_dp,2.9305208092_dp,4.5386549110_dp,7.0273811323_dp,10.9366543075_dp,17.1535354611_dp,&
+ 27.1557321237_dp,43.4386900404_dp,70.2765199610_dp,115.1006922353_dp,191.0437625747_dp,321.7261864634_dp,550.4612767752_dp,958.3845356844_dp,1701.1269394308_dp,&
+ 3085.3013461297_dp,5734.0280135783_dp,10964.2880847546_dp,21737.9946794511_dp,45785.8936787092_dp,116037.0486525428_dp,0.3950966654_dp,0.4611165613_dp,0.6074832097_dp,&
+ 0.8656616533_dp,1.2914696376_dp,1.9791158688_dp,3.0860784239_dp,4.8764334118_dp,7.7968297202_dp,12.6114183250_dp,20.6450781310_dp,34.2291299363_dp,&
+ 57.5329369882_dp,98.1462887434_dp,170.1559468014_dp,300.2707826044_dp,540.3423289538_dp,993.7338507104_dp,1872.8451331777_dp,3630.5621595573_dp,7285.0828648038_dp,&
+ 15382.7674510084_dp,36483.7054953274_dp,135535.8212170132_dp]
+ aw%aw_erange_matrix(:,22) = [0.1957720327_dp,0.6201990235_dp,1.1505096734_dp,1.8827832009_dp,2.9570477503_dp,4.5889452522_dp,7.1212022418_dp,11.1098543744_dp,17.4713901640_dp,&
+ 27.7378660787_dp,44.5061580411_dp,72.2419557300_dp,118.7435604274_dp,197.8568938439_dp,334.6141501693_dp,575.1781571063_dp,1006.5656809942_dp,1796.8561741546_dp,&
+ 3279.7752019921_dp,6139.4481789634_dp,11835.3955721937_dp,23679.2326211424_dp,50350.4509662074_dp,128623.6218266693_dp,0.3969067823_dp,0.4638582278_dp,0.6124418747_dp,&
+ 0.8749358787_dp,1.3087093028_dp,2.0108284560_dp,3.1440110917_dp,4.9819816166_dp,7.9893021889_dp,12.9637375819_dp,21.2940339582_dp,35.4345964000_dp,&
+ 59.7958078474_dp,102.4478997776_dp,178.4546346000_dp,316.5566527953_dp,572.9382481426_dp,1060.4671926503_dp,2013.0696387129_dp,3934.1906223460_dp,7966.0451652464_dp,&
+ 16980.6073115596_dp,40584.4378242144_dp,151021.1309224219_dp]
+ aw%aw_erange_matrix(:,23) = [0.2002461459_dp,0.6360169682_dp,1.1858073518_dp,1.9545646981_dp,3.0975480162_dp,4.8575927560_dp,7.6268085948_dp,12.0518525036_dp,19.2170535566_dp,&
+ 30.9684436655_dp,50.4969794088_dp,83.4072432416_dp,139.7137783912_dp,237.6491988999_dp,411.0974939497_dp,724.4779974750_dp,1303.4072415926_dp,2399.9188301826_dp,&
+ 4536.3545712665_dp,8836.7244095185_dp,17832.0695821586_dp,37588.7313101731_dp,84568.0625046655_dp,226966.2639682454_dp,0.4062390180_dp,0.4781358064_dp,0.6385508701_dp,&
+ 0.9242446811_dp,1.4012091057_dp,2.1825540574_dp,3.4607422084_dp,5.5649291451_dp,9.0639245813_dp,14.9538420687_dp,25.0059868007_dp,42.4241007821_dp,&
+ 73.1120947228_dp,128.1758008948_dp,228.9860170869_dp,417.7161578158_dp,779.9730587579_dp,1495.1570001170_dp,2953.2211352557_dp,6039.1568430082_dp,12875.3710433885_dp,&
+ 29029.3067895134_dp,72895.8090520912_dp,275268.7460731898_dp]
+ aw%aw_erange_matrix(:,24) = [0.2024815412_dp,0.6439643614_dp,1.2037021062_dp,1.9913302780_dp,3.1702718090_dp,4.9981368390_dp,7.8942337200_dp,12.5558382127_dp,20.1624293735_dp,&
+ 32.7408610623_dp,53.8300577411_dp,89.7139523154_dp,151.7555001583_dp,260.9145776443_dp,456.7106658891_dp,815.4955041133_dp,1488.8648679717_dp,2787.2541806911_dp,&
+ 5369.2458241369_dp,10690.6943830916_dp,22133.0553106771_dp,48080.4578752378_dp,111921.3929908081_dp,310054.3982273569_dp,0.4109084631_dp,0.4853706722_dp,0.6519640922_dp,&
+ 0.9498844425_dp,1.4498568430_dp,2.2739075720_dp,3.6312570729_dp,5.8827522877_dp,9.6577525920_dp,16.0695496943_dp,27.1196226053_dp,46.4715804298_dp,&
+ 80.9658775306_dp,143.6572985116_dp,260.0725160256_dp,481.4950700111_dp,914.1408442148_dp,1785.7458912894_dp,3604.4557769198_dp,7558.6415962404_dp,16595.2369123843_dp,&
+ 38690.8383591849_dp,100368.4160876864_dp,384003.2781817770_dp]
+ aw%aw_erange_matrix(:,25) = [0.2039567119_dp,0.6492254626_dp,1.2156080576_dp,2.0159319152_dp,3.2192215462_dp,5.0933017063_dp,8.0764294302_dp,12.9014270844_dp,20.8151563281_dp,&
+ 33.9736801250_dp,56.1669868274_dp,94.1743421713_dp,160.3531893150_dp,277.7002901640_dp,490.0030483859_dp,882.7913553629_dp,1627.9958775646_dp,3082.6829710924_dp,&
+ 6016.7364088544_dp,12164.4767840963_dp,25644.1479578213_dp,56926.2601799215_dp,135896.2211163915_dp,385806.8250424920_dp,0.4139924228_dp,0.4901828907_dp,0.6609540956_dp,&
+ 0.9671847902_dp,1.4828904550_dp,2.3363392233_dp,3.7485736650_dp,6.1029857769_dp,10.0723994400_dp,16.8550410343_dp,28.6209903116_dp,49.3745811661_dp,&
+ 86.6589100855_dp,155.0112635701_dp,283.1683034569_dp,529.5717113954_dp,1016.9467821925_dp,2012.6150198099_dp,4124.0260826563_dp,8802.2467366642_dp,19734.3484631149_dp,&
+ 47151.5875767643_dp,125438.4106855630_dp,485666.9083783065_dp]
+ aw%aw_erange_matrix(:,26) = [0.2055673467_dp,0.6549847994_dp,1.2286964022_dp,2.0431060098_dp,3.2735552217_dp,5.1994615206_dp,8.2807259499_dp,13.2910468289_dp,21.5553230270_dp,&
+ 35.3804009379_dp,58.8516753405_dp,99.3364742574_dp,170.3845470209_dp,297.4612814803_dp,529.5892192070_dp,963.7092597510_dp,1797.4232859338_dp,3447.7052295662_dp,&
+ 6830.3684580497_dp,14053.7281490869_dp,30254.7503089476_dp,68893.4388476543_dp,169553.8298265210_dp,496454.7630005633_dp,0.4173618876_dp,0.4954716961_dp,0.6708971787_dp,&
+ 0.9864262758_dp,1.5198254021_dp,2.4065203711_dp,3.8811991441_dp,6.3534602006_dp,10.5470373047_dp,17.7604653058_dp,30.3647360665_dp,52.7741998671_dp,&
+ 93.3866305692_dp,168.5641608069_dp,311.0474288038_dp,588.3411042745_dp,1144.4310035522_dp,2298.6212533427_dp,4791.7758490115_dp,10437.6142304121_dp,23979.2675978929_dp,&
+ 58996.0415985972_dp,161990.8672374849_dp,638001.6820435197_dp]
+ aw%aw_erange_matrix(:,27) = [0.2064011738_dp,0.6579726530_dp,1.2355091212_dp,2.0573041779_dp,3.3020544276_dp,5.2553652812_dp,8.3887498750_dp,13.4979535159_dp,21.9502037788_dp,&
+ 36.1346314572_dp,60.2988976236_dp,102.1356640703_dp,175.8594793244_dp,308.3241340257_dp,551.5250341372_dp,1008.9534798882_dp,1893.1294938710_dp,3656.3350617894_dp,&
+ 7301.8176749966_dp,15166.3913332697_dp,33024.3878930755_dp,76262.2133270944_dp,190937.6852233650_dp,569244.0191144008_dp,0.4191072142_dp,0.4982240484_dp,0.6760976197_dp,&
+ 0.9965344591_dp,1.5393100459_dp,2.4437019466_dp,3.9517791205_dp,6.4873953644_dp,10.8021459673_dp,18.2498228687_dp,31.3128861331_dp,54.6349452492_dp,&
+ 97.0957788302_dp,176.0965088937_dp,326.6818011124_dp,621.6340733884_dp,1217.4896215046_dp,2464.7258506438_dp,5185.7023064458_dp,11420.5986557085_dp,26590.0760656226_dp,&
+ 66494.1460453540_dp,185954.5871745703_dp,740487.4545925040_dp]
+ aw%aw_erange_matrix(:,28) = [0.2069473623_dp,0.6599321428_dp,1.2399855137_dp,2.0666533148_dp,3.3208617706_dp,5.2923403084_dp,8.4603636295_dp,13.6354580461_dp,22.2133210058_dp,&
+ 36.6386187468_dp,61.2689400365_dp,104.0182476066_dp,179.5553404692_dp,315.6874040485_dp,566.4625636771_dp,1039.9234228171_dp,1959.0297899986_dp,3800.9768763157_dp,&
+ 7631.3020520032_dp,15951.4927035377_dp,35001.7471899578_dp,81601.8175684925_dp,206733.5066518533_dp,624217.5061446414_dp,0.4202508244_dp,0.5000323042_dp,0.6795239323_dp,&
+ 1.0032108704_dp,1.5522101072_dp,2.4683780768_dp,3.9987402083_dp,6.5767534844_dp,10.9728473608_dp,18.5783075397_dp,31.9515376989_dp,55.8930431704_dp,&
+ 99.6140917521_dp,181.2342367570_dp,337.4010521710_dp,644.5943900368_dp,1268.2134649454_dp,2580.9523062512_dp,5463.8818279494_dp,12122.4744053872_dp,28479.9495951574_dp,&
+ 72017.3729303258_dp,203996.8322474206_dp,819009.0853796824_dp]
+ aw%aw_erange_matrix(:,29) = [0.2080560400_dp,0.6639152616_dp,1.2491054372_dp,2.0857494935_dp,3.3593782386_dp,5.3682673170_dp,8.6078320121_dp,13.9194491543_dp,22.7584698362_dp,&
+ 37.6864141852_dp,63.2932307438_dp,107.9629979857_dp,187.3348116528_dp,331.2648288771_dp,598.2430837050_dp,1106.2373789992_dp,2101.1756501406_dp,4115.6267659699_dp,&
+ 8355.2595234098_dp,17697.4412971776_dp,39464.9865942383_dp,93885.6595351764_dp,243995.2377014678_dp,757857.4157596451_dp,0.4225730372_dp,0.5037157949_dp,0.6865270616_dp,&
+ 1.0168977099_dp,1.5787311035_dp,2.5192573189_dp,4.0958664533_dp,6.7621752902_dp,11.3283177149_dp,19.2649813825_dp,33.2922034421_dp,58.5462453372_dp,&
+ 104.9520621780_dp,192.1864445864_dp,360.3978380572_dp,694.2110326979_dp,1378.7413088996_dp,2836.6754539486_dp,6083.0125894334_dp,13706.5409808708_dp,32820.1208767645_dp,&
+ 84990.3921886387_dp,247623.1992522239_dp,1013683.5125962318_dp]
+ aw%aw_erange_matrix(:,30) = [0.2086229906_dp,0.6659551693_dp,1.2537871783_dp,2.0955787863_dp,3.3792578586_dp,5.4075645609_dp,8.6843760162_dp,14.0673029317_dp,23.0432110022_dp,&
+ 38.2356161107_dp,64.3583119800_dp,110.0472074752_dp,191.4640570211_dp,339.5755459375_dp,615.2958976748_dp,1142.0521032722_dp,2178.5187904791_dp,4288.3166661044_dp,&
+ 8756.6648990544_dp,18677.4814402983_dp,42008.7829868896_dp,101025.2813056025_dp,266225.5339394037_dp,840189.0337543851_dp,0.4237610217_dp,0.5056064334_dp,0.6901342543_dp,&
+ 1.0239693692_dp,1.5924740338_dp,2.5457011394_dp,4.1465052178_dp,6.8591733952_dp,11.5149439368_dp,19.6269041586_dp,34.0018349981_dp,59.9571832820_dp,&
+ 107.8053907815_dp,198.0745027431_dp,372.8413526334_dp,721.2561856370_dp,1439.4986038208_dp,2978.6388931596_dp,6430.7685878544_dp,14609.0370583744_dp,35337.3204457132_dp,&
+ 92690.8378643312_dp,274318.1245022812_dp,1136158.3378886473_dp]
+ aw%aw_erange_matrix(:,31) = [0.2111806944_dp,0.6751827547_dp,1.2750561783_dp,2.1404498524_dp,3.4704630723_dp,5.5887796899_dp,9.0392391198_dp,14.7566598510_dp,24.3789215199_dp,&
+ 40.8290449665_dp,69.4244694660_dp,120.0406239881_dp,211.4397779839_dp,380.1812178791_dp,699.5546530760_dp,1321.2923396911_dp,2571.3552923339_dp,5180.7616058073_dp,&
+ 10874.4834095190_dp,23980.9003142699_dp,56222.5464472466_dp,142643.8057631811_dp,403694.9767809444_dp,1391473.9581879203_dp,0.4291241952_dp,0.5141930313_dp,0.7066212751_dp,&
+ 1.0564735310_dp,1.6559845279_dp,2.6685873696_dp,4.3832162627_dp,7.3154660928_dp,12.3988842590_dp,21.3539379109_dp,37.4158312967_dp,66.8065297429_dp,&
+ 121.7960864484_dp,227.2709704917_dp,435.3318534744_dp,859.0638901184_dp,1754.3542748555_dp,3729.1133253954_dp,8313.7392748885_dp,19642.6835388834_dp,49919.8202587492_dp,&
+ 139631.7262233275_dp,449045.0624672886_dp,2001280.6863545526_dp]
+ aw%aw_erange_matrix(:,32) = [0.2125969665_dp,0.6803102019_dp,1.2869401101_dp,2.1656777276_dp,3.5220698592_dp,5.6919883734_dp,9.2427260150_dp,15.1548178567_dp,25.1564155014_dp,&
+ 42.3514215141_dp,72.4259368188_dp,126.0217534493_dp,223.5309953320_dp,405.0717238833_dp,751.9446450040_dp,1434.5659541384_dp,2824.3239866350_dp,5768.2796567234_dp,&
+ 12306.0386561942_dp,27684.0954913213_dp,66565.5855619688_dp,174641.4608164631_dp,518013.8791092461_dp,1904957.6860556419_dp,0.4320966442_dp,0.5189888763_dp,0.7159049223_dp,&
+ 1.0749081224_dp,1.6922530620_dp,2.7392608109_dp,4.5203739564_dp,7.5819868126_dp,12.9196935934_dp,22.3811392637_dp,39.4674900536_dp,70.9698418255_dp,&
+ 130.4085513688_dp,245.5007781725_dp,474.9819812083_dp,948.1270588067_dp,1962.2383742802_dp,4237.2879515551_dp,9628.2131752047_dp,23291.8408956365_dp,61017.6014557670_dp,&
+ 177786.8621323129_dp,605226.9344436220_dp,2870733.8946965942_dp]
+ aw%aw_erange_matrix(:,33) = [0.2132695741_dp,0.6827498287_dp,1.2926110628_dp,2.1777560455_dp,3.5468611522_dp,5.7417402458_dp,9.3411717059_dp,15.3481851416_dp,25.5355758791_dp,&
+ 43.0971936674_dp,73.9035641690_dp,128.9823922196_dp,229.5525727490_dp,417.5523004302_dp,778.4177778483_dp,1492.3138719166_dp,2954.6271780646_dp,6074.6245254553_dp,&
+ 13063.5733753494_dp,29679.9486357327_dp,72273.4652868895_dp,192878.7961952659_dp,586367.5442187003_dp,2236309.3100171653_dp,0.4335089877_dp,0.5212769423_dp,0.7203531437_dp,&
+ 1.0837744875_dp,1.7097604899_dp,2.7735040793_dp,4.5870953547_dp,7.7121931725_dp,13.1753123415_dp,22.8878541390_dp,40.4851894216_dp,73.0476851150_dp,&
+ 134.7363351500_dp,254.7319156092_dp,495.2360230429_dp,994.0826779543_dp,2070.7747619650_dp,4506.3494196423_dp,10336.1536309671_dp,25299.7051970274_dp,67297.3647441372_dp,&
+ 200234.1922210731_dp,702701.4995745739_dp,3461740.1959740943_dp]
+ aw%aw_erange_matrix(:,34) = [0.2150829046_dp,0.6893415019_dp,1.3079869009_dp,2.2106327256_dp,3.6146141065_dp,5.8782715972_dp,9.6125021144_dp,15.8835991874_dp,26.5906849420_dp,&
+ 45.1838301234_dp,78.0627755497_dp,137.3716442069_dp,246.7428674929_dp,453.4824822938_dp,855.3653288675_dp,1662.0339954080_dp,3342.5859977612_dp,7000.9659576450_dp,&
+ 15398.1175701049_dp,35979.9458938123_dp,90869.7484760846_dp,255001.8023268931_dp,836010.4680315829_dp,3610137.9489567750_dp,0.4373188176_dp,0.5274790190_dp,0.7324720192_dp,&
+ 1.1080393825_dp,1.7578825773_dp,2.8680510468_dp,4.7721982641_dp,8.0752861022_dp,13.8921279284_dp,24.3175279960_dp,43.3760413994_dp,78.9944241952_dp,&
+ 147.2269685231_dp,281.6291372125_dp,554.8973653689_dp,1131.1713880854_dp,2399.3995675088_dp,5335.7345961901_dp,12567.2387424551_dp,31809.1061357633_dp,88442.4269198594_dp,&
+ 280054.4392423225_dp,1081281.8907916807_dp,6144477.1931226198_dp]
+ aw%aw_erange_matrix(:,35) = [0.2165930652_dp,0.6948475016_dp,1.3208906322_dp,2.2383689182_dp,3.6720827635_dp,5.9947219726_dp,9.8452725753_dp,16.3457796585_dp,27.5076111590_dp,&
+ 47.0105467502_dp,81.7334634348_dp,144.8422973338_dp,262.2054726695_dp,486.1705763020_dp,926.2835742482_dp,1820.8219585072_dp,3712.0243465929_dp,7901.9899443997_dp,&
+ 17728.9181774639_dp,42482.4642094690_dp,110935.1954153121_dp,326443.5813006668_dp,1154434.8260509006_dp,5781356.9989355495_dp,0.4404941569_dp,0.5326820484_dp,0.7427082354_dp,&
+ 1.1286586347_dp,1.7990134429_dp,2.9493499546_dp,4.9323877193_dp,8.3916905095_dp,14.5214900744_dp,25.5831661414_dp,45.9585680087_dp,84.3608268729_dp,&
+ 158.6270259471_dp,306.4949315504_dp,610.8703111254_dp,1262.0054175612_dp,2719.4503872294_dp,6163.5122768420_dp,14862.8018785892_dp,38774.3852334501_dp,112303.9756007481_dp,&
+ 377443.5489992495_dp,1608248.1327597764_dp,11094076.8939570524_dp]
+ aw%aw_erange_matrix(:,36) = [0.2168964316_dp,0.6959553706_dp,1.3234936713_dp,2.2439801696_dp,3.6837434635_dp,6.0184220373_dp,9.8927970601_dp,16.4404642464_dp,27.6961512705_dp,&
+ 47.3876757393_dp,82.4946502898_dp,146.3991269027_dp,265.4456163087_dp,493.0633053106_dp,941.3454924190_dp,1854.8287099511_dp,3791.9280212223_dp,8099.1945515460_dp,&
+ 18246.6079122569_dp,43954.2423941564_dp,115594.1123838407_dp,343661.4351591033_dp,1236140.9579337058_dp,6425268.6480215443_dp,0.4411323020_dp,0.5337314275_dp,0.7447804190_dp,&
+ 1.1328464721_dp,1.8073938481_dp,2.9659692183_dp,4.9652493357_dp,8.4568455273_dp,14.6516263430_dp,25.8460501330_dp,46.4976527613_dp,85.4872484983_dp,&
+ 161.0348837836_dp,311.7843337008_dp,622.8743701127_dp,1290.3324929360_dp,2789.5315523077_dp,6347.2730727057_dp,15381.2037871690_dp,40382.7525270133_dp,117984.7797854022_dp,&
+ 401713.0322907210_dp,1750477.9329989499_dp,12721107.1410644483_dp]
+ aw%aw_erange_matrix(:,37) = [0.2169478873_dp,0.6961433326_dp,1.3239354887_dp,2.2449330249_dp,3.6857245817_dp,6.0224507836_dp,9.9008803711_dp,16.4565786906_dp,27.7282595944_dp,&
+ 47.4519471087_dp,82.6244852079_dp,146.6649395716_dp,265.9994656071_dp,494.2429805873_dp,943.9269276343_dp,1860.6668801483_dp,3805.6732878833_dp,8133.1970629416_dp,&
+ 18336.1264451855_dp,44209.7091040348_dp,116407.0903538253_dp,346690.1240705280_dp,1250715.2222315413_dp,6544211.3271539956_dp,0.4412405490_dp,0.5339095341_dp,0.7451323337_dp,&
+ 1.1335580802_dp,1.8088186847_dp,2.9687965656_dp,4.9708434948_dp,8.4679443019_dp,14.6738099962_dp,25.8909020511_dp,46.5897246998_dp,85.6798576521_dp,&
+ 161.4471299613_dp,312.6911520817_dp,624.9356458304_dp,1295.2064355812_dp,2801.6167510162_dp,6379.0437501817_dp,15471.1386798570_dp,40663.0522792135_dp,118981.2717130096_dp,&
+ 406012.7170565017_dp,1776130.8402275355_dp,13029418.8102731034_dp]
+ aw%aw_erange_matrix(:,38) = [0.2169478264_dp,0.6961431310_dp,1.3239350833_dp,2.2449322868_dp,3.6857232781_dp,6.0224484819_dp,9.9008762124_dp,16.4565713050_dp,27.7282478624_dp,&
+ 47.4519313029_dp,82.6244671381_dp,146.6649193671_dp,265.9994282692_dp,494.2428842899_dp,943.9266830835_dp,1860.6659661581_dp,3805.6698149069_dp,8133.1886582707_dp,&
+ 18336.1134176163_dp,44209.6890770845_dp,116407.0371097728_dp,346689.9548800496_dp,1250714.0256065591_dp,6544214.1689795908_dp,0.4412404242_dp,0.5339093704_dp,0.7451320789_dp,&
+ 1.1335576530_dp,1.8088179504_dp,2.9687952328_dp,4.9708410108_dp,8.4679403632_dp,14.6738054972_dp,25.8908986825_dp,46.5897234836_dp,85.6798521392_dp,&
+ 161.4470960848_dp,312.6910643546_dp,624.9353852151_dp,1295.2050923634_dp,2801.6128421333_dp,6379.0383109776_dp,15471.1352540443_dp,40663.0366129218_dp,118981.2187605095_dp,&
+ 406012.4514282376_dp,1776130.0998965928_dp,13029440.2357217539_dp]
+ aw%aw_erange_matrix(:,39) = [0.2169478601_dp,0.6961432398_dp,1.3239352879_dp,2.2449326098_dp,3.6857237227_dp,6.0224490422_dp,9.9008770007_dp,16.4565726436_dp,27.7282499624_dp,&
+ 47.4519338851_dp,82.6244700195_dp,146.6649265568_dp,265.9994706539_dp,494.2430824024_dp,943.9273027902_dp,1860.6676639493_dp,3805.6748495209_dp,8133.2017341120_dp,&
+ 18336.1361661298_dp,44209.7150067573_dp,116407.0961493534_dp,346690.3346687911_dp,1250716.5858198206_dp,6544226.9576467071_dp,0.4412404929_dp,0.5339094543_dp,0.7451321872_dp,&
+ 1.1335577780_dp,1.8088180645_dp,2.9687953689_dp,4.9708413746_dp,8.4679410855_dp,14.6738061972_dp,25.8908989301_dp,46.5897243043_dp,85.6798634775_dp,&
+ 161.4471702996_dp,312.6913259474_dp,624.9360109932_dp,1295.2068805749_dp,2801.6182433885_dp,6379.0486819907_dp,15471.1415467669_dp,40663.0440192628_dp,118981.2970290090_dp,&
+ 406013.2421766578_dp,1776133.1830551089_dp,13029460.0603005476_dp]
+ aw%aw_erange_matrix(:,40) = [0.2169479967_dp,0.6961436853_dp,1.3239361471_dp,2.2449340725_dp,3.6857261237_dp,6.0224529463_dp,9.9008832907_dp,16.4565827169_dp,27.7282659546_dp,&
+ 47.4519585470_dp,82.6245082082_dp,146.6649938493_dp,265.9996029798_dp,494.2433169496_dp,943.9277081020_dp,1860.6683344416_dp,3805.6754034417_dp,8133.2001170045_dp,&
+ 18336.1289895845_dp,44209.6996877465_dp,116407.1332170651_dp,346690.5901280560_dp,1250716.7713186527_dp,6544221.5728685968_dp,0.4412407721_dp,0.5339098040_dp,0.7451326784_dp,&
+ 1.1335585175_dp,1.8088192407_dp,2.9687972497_dp,4.9708443493_dp,8.4679458110_dp,14.6738133960_dp,25.8909093105_dp,46.5897425393_dp,85.6799078188_dp,&
+ 161.4472551451_dp,312.6914494586_dp,624.9362441543_dp,1295.2071101789_dp,2801.6174908422_dp,6379.0447749927_dp,15471.1343512902_dp,40663.0398564033_dp,118981.4429058655_dp,&
+ 406013.4704579106_dp,1776132.5999892899_dp,13029447.5373880584_dp]
+ aw%aw_erange_matrix(:,41) = [0.2169478985_dp,0.6961433640_dp,1.3239355155_dp,2.2449329447_dp,3.6857241342_dp,6.0224494299_dp,9.9008770705_dp,16.4565717454_dp,27.7282471829_dp,&
+ 47.4519283504_dp,82.6244613012_dp,146.6649201632_dp,265.9994918861_dp,494.2431774153_dp,943.9275927639_dp,1860.6684146201_dp,3805.6761428686_dp,8133.2032452987_dp,&
+ 18336.1404962747_dp,44209.7307288540_dp,116407.0902591648_dp,346690.0500622534_dp,1250715.6210436232_dp,6544220.2872860357_dp,0.4412405713_dp,0.5339095492_dp,0.7451322969_dp,&
+ 1.1335578770_dp,1.8088181090_dp,2.9687952461_dp,4.9708407975_dp,8.4679396767_dp,14.6738038573_dp,25.8908957844_dp,46.5897217627_dp,85.6798744744_dp,&
+ 161.4472174171_dp,312.6914357359_dp,624.9363266513_dp,1295.2074549019_dp,2801.6186711074_dp,6379.0488934272_dp,15471.1492766609_dp,40663.0531671503_dp,118981.2047286658_dp,&
+ 406012.8144159144_dp,1776131.7484223465_dp,13029447.0094524790_dp]
+ case(26)
+ aw%energy_range(:) = [799.0_dp, 995.0_dp, 1293.0_dp, 1738.0_dp, 2238.0_dp, 3009.0_dp, 4377.0_dp,&
+ 6256.0_dp, 9034.0_dp, 15564.0_dp, 19500.0_dp, 22300.0_dp, 24783.0_dp, 41198.0_dp, 94407.0_dp, 189080.0_dp,&
+ 457444.0_dp, 2101965.0_dp, 14140999.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.13642311899920728_dp, 0.4200545572769177_dp, 0.7370807753440111_dp, 1.1133066772659823_dp, 1.5801544604816498_dp, 2.1776122735126364_dp,&
+ 2.958051608229127_dp, 3.9913517870782127_dp, 5.371912501848569_dp, 7.228355464212482_dp, 9.73704628190353_dp, 13.14105442578561_dp, 17.776888498885384_dp,&
+ 24.112423571820134_dp, 32.80110412846477_dp, 44.760201041042265_dp, 61.285574367976004_dp, 84.22431526497385_dp, 116.24572841708785_dp, 161.2969910194418_dp,&
+ 225.45259795885693_dp, 318.7313048003067_dp, 459.67927623297453_dp, 689.4586002694374_dp, 1129.2608611575954_dp, 2384.899332663137_dp, 0.27462662125713716_dp,&
+ 0.2963690140650455_dp, 0.34194449526494647_dp, 0.4156960072544763_dp, 0.5246016522241007_dp, 0.678958500149969_dp, 0.8934517120897347_dp, 1.1887228663585705_dp,&
+ 1.5936139137203535_dp, 2.1483557077661164_dp, 2.9090998337926104_dp, 3.9543808256482187_dp, 5.394380930104983_dp, 7.384320521229908_dp, 10.144053822937831_dp,&
+ 13.98732687567056_dp, 19.366933030106217_dp, 26.948262498364663_dp, 37.739388497689305_dp, 53.348600455664965_dp, 76.56744981421966_dp, 112.8945538518047_dp,&
+ 175.19453971323657_dp, 301.19411259128674_dp, 645.6383267719649_dp, 2472.504957810595_dp]
+ aw%aw_erange_matrix(:, 2) = [0.13925292153649474_dp, 0.4292451559612877_dp, 0.7548554587233549_dp, 1.1437833384686722_dp, 1.6300177124420845_dp, 2.2571802345230276_dp,&
+ 3.0828977198982144_dp, 4.1847303613644495_dp, 5.668362141207399_dp, 7.679038990085008_dp, 10.417660954546289_dp, 14.163558801605095_dp, 19.30691297965789_dp,&
+ 26.395168657294754_dp, 36.199950721972876_dp, 49.8144257942317_dp, 68.79692224946095_dp, 95.38754743793149_dp, 132.8473999791564_dp, 186.0241881676569_dp,&
+ 262.3929640997449_dp, 374.2539456946303_dp, 544.2375437714703_dp, 822.2186120363165_dp, 1354.4009319403576_dp, 2870.8477591124674_dp, 0.28040112472679574_dp,&
+ 0.30356564912420003_dp, 0.3522269185689752_dp, 0.43123890171761686_dp, 0.5484284775560514_dp, 0.7154038747678296_dp, 0.9488235797546415_dp, 1.2722683343829815_dp,&
+ 1.7189393959653365_dp, 2.3355248974949743_dp, 3.1877439258332987_dp, 4.368323267393725_dp, 6.008533513106221_dp, 8.294995170661158_dp, 11.494429371223015_dp,&
+ 15.990739727277512_dp, 22.342169324408708_dp, 31.373674894712472_dp, 44.337963681573235_dp, 63.228794541463415_dp, 91.4807612744294_dp, 135.78931506653154_dp,&
+ 211.68822580031673_dp, 364.5832859080767_dp, 780.7919711700442_dp, 2983.4784258039044_dp]
+ aw%aw_erange_matrix(:, 3) = [0.14255313239112444_dp, 0.44000221057671707_dp, 0.7757923584694003_dp, 1.1799690097399198_dp, 1.6897357815984675_dp, 2.3533173555606655_dp,&
+ 3.235072042865805_dp, 4.422504788444178_dp, 6.036065942606674_dp, 8.242988234525232_dp, 11.27697154139003_dp, 15.466358681870163_dp, 21.274694591939472_dp,&
+ 29.359452647866682_dp, 40.65762974807096_dp, 56.51155510141434_dp, 78.85603619054034_dp, 110.50208558142461_dp, 155.58114995208211_dp, 220.28032446631136_dp,&
+ 314.1757282936284_dp, 453.002579503336_dp, 665.5199679038552_dp, 1014.5604898901777_dp, 1683.22275383598_dp, 3584.316130956811_dp, 0.28714175969757383_dp,&
+ 0.31204447582876227_dp, 0.364492437091783_dp, 0.4499982622781763_dp, 0.5774890351263188_dp, 0.7602856703230421_dp, 1.0176474576111718_dp, 1.3770666782034746_dp,&
+ 1.8776058066032693_dp, 2.5747281832062225_dp, 3.5472996309663594_dp, 4.907773444426638_dp, 6.817081323539761_dp, 9.506552191680779_dp, 13.31048343115922_dp,&
+ 18.71524624188938_dp, 26.435090191201706_dp, 37.53395349827001_dp, 53.63476429545202_dp, 77.3183278694657_dp, 112.99764481556716_dp, 169.1712283981583_dp, 265.33605383413214_dp, 458.1910477032067_dp, 980.4158381921823_dp, 3736.258588894085_dp]
+ aw%aw_erange_matrix(:, 4) = [0.1461752355773306_dp, 0.45185762356828396_dp, 0.7990360544025357_dp, 1.2205083800767933_dp, 1.7572993236504337_dp, 2.4631760346842047_dp,&
+ 3.4107040936751862_dp, 4.699662235621062_dp, 6.468947005916596_dp, 8.913592437239087_dp, 12.309286000158947_dp, 17.047905694553386_dp, 23.689335953611156_dp,&
+ 33.03746908843982_dp, 46.25240948793399_dp, 65.01743260557059_dp, 91.79007233646534_dp, 130.18588342772145_dp, 185.58109233196095_dp, 266.1051496392308_dp,&
+ 384.41585349757804_dp, 561.3175220599338_dp, 834.5950790025629_dp, 1285.9791179040656_dp, 2151.82484272534_dp, 4607.654058324236_dp, 0.2945477387281676_dp,&
+ 0.3214595830325172_dp, 0.37830480422867613_dp, 0.4714034978877635_dp, 0.611040549973395_dp, 0.8126695125533263_dp, 1.0988217520443189_dp, 1.5019658160165765_dp,&
+ 2.06870896475044_dp, 2.8659496939699607_dp, 3.9899051060400774_dp, 5.579409370592633_dp, 7.835605731464965_dp, 11.051295593199974_dp, 15.655055606015468_dp,&
+ 22.278373441162756_dp, 31.859818549870184_dp, 45.8120996920796_dp, 66.3057001417783_dp, 96.79792736663595_dp, 143.16536816614507_dp, 216.57964119429673_dp, 342.31559687568875_dp, 593.3221880856304_dp, 1268.7961696472178_dp, 4820.528614472729_dp]
+ aw%aw_erange_matrix(:, 5) = [0.1491837006061548_dp, 0.46174475862674996_dp, 0.8185592742668346_dp, 1.2548602679290635_dp, 1.8150957152976515_dp, 2.558059962915574_dp,&
+ 3.563852447313441_dp, 4.943651210588896_dp, 6.8536849594075475_dp, 9.515417267221789_dp, 13.244928718595732_dp, 18.495967806145995_dp, 25.923415200427836_dp,&
+ 36.47741618080311_dp, 51.54392422008612_dp, 73.15615247652946_dp, 104.31586449506281_dp, 149.48862759379944_dp, 215.38537956732102_dp, 312.2481145191122_dp,&
+ 456.12776079236704_dp, 673.453709288462_dp, 1012.0267276035421_dp, 1574.3691121807644_dp, 2654.80297068303_dp, 5713.432382523477_dp, 0.30070547042796897_dp,&
+ 0.329369148940076_dp, 0.3900659972080265_dp, 0.4898601972791792_dp, 0.6402960685231848_dp, 0.8588226443075349_dp, 1.1710637934386325_dp, 1.6142423603884266_dp,&
+ 2.242256373868115_dp, 3.133186411937803_dp, 4.400427168655394_dp, 6.20926516954263_dp, 8.801701004315937_dp, 12.533857850605154_dp, 17.932816993690953_dp,&
+ 25.783927946483768_dp, 37.26719820010372_dp, 54.17638997139517_dp, 79.2886731198742_dp, 117.0433439522649_dp, 174.96435451384102_dp, 267.2144601065969_dp, 425.4335136047249_dp, 740.2128400786926_dp, 1582.657563073928_dp, 5997.255668095278_dp]
+ aw%aw_erange_matrix(:, 6) = [0.15260234927102537_dp, 0.47302539641929003_dp, 0.840991102837249_dp, 1.294672645194693_dp, 1.8827021467743683_dp, 2.6700932738662866_dp,&
+ 3.7463755633773785_dp, 5.2371602474102446_dp, 7.32087360313924_dp, 10.253221414128866_dp, 14.403238412842787_dp, 20.306771564613143_dp, 28.74634048361317_dp,&
+ 40.87115597284819_dp, 58.378725955266525_dp, 83.7917688772186_dp, 120.88443420446742_dp, 175.34684950976114_dp, 255.8424057631557_dp, 375.7503122503565_dp,&
+ 556.2295831578734_dp, 832.2606405042899_dp, 1266.9035893238452_dp, 1994.1233884282024_dp, 3394.9032163950633_dp, 7352.339298447235_dp, 0.3077100277629248_dp,&
+ 0.33845848997185407_dp, 0.4037598644074573_dp, 0.5116119745332622_dp, 0.6751498929108865_dp, 0.9143651994460601_dp, 1.2588616224335032_dp, 1.75204662427369_dp,&
+ 2.4574104002902457_dp, 3.4679202527071955_dp, 4.920122312459791_dp, 7.015412894339497_dp, 10.052310636158587_dp, 14.475746343180617_dp, 20.952944399378328_dp,&
+ 30.491434160561496_dp, 44.62526181307512_dp, 65.71573855063913_dp, 97.45740287039392_dp, 145.7937686814701_dp, 220.7911788117634_dp, 341.2160648337932_dp, 548.3643432689413_dp, 959.1555990081102_dp, 2051.35284281865_dp, 7749.544195896773_dp]
+ aw%aw_erange_matrix(:, 7) = [0.15677016271388225_dp, 0.4868453590049744_dp, 0.8687054372436632_dp, 1.3443711902060458_dp, 1.9680308145076961_dp, 2.8130758201236987_dp,&
+ 3.981916598375189_dp, 5.620150667525299_dp, 7.937365822573636_dp, 11.238009575994626_dp, 15.967571787550442_dp, 22.782179390039534_dp, 32.65420224580025_dp,&
+ 47.03362680645636_dp, 68.09645542153785_dp, 99.13012280380028_dp, 145.13706650883265_dp, 213.79117632911775_dp, 316.97982833553084_dp, 473.36316641843865_dp,&
+ 712.8558730426033_dp, 1085.3059686529182_dp, 1680.4570998839688_dp, 2686.878722527825_dp, 4633.878278204835_dp, 10122.376598223758_dp, 0.3162602891789823_dp,&
+ 0.3496899146467389_dp, 0.4209457453791445_dp, 0.5393025302878296_dp, 0.7200886783450724_dp, 0.9868388578481941_dp, 1.3747701483151744_dp, 1.9361268964127185_dp,&
+ 2.748293611495538_dp, 3.9261112821432245_dp, 5.640652928475169_dp, 8.14800606157719_dp, 11.833678475242102_dp, 17.28159907773421_dp, 25.382209512440305_dp,&
+ 37.50344417920538_dp, 55.76466551122398_dp, 83.48401940950261_dp, 125.93307609242711_dp, 191.6876355183379_dp, 295.31901285869344_dp, 463.7601116874953_dp, 755.1838770980437_dp, 1331.5355795873638_dp, 2851.124163900499_dp, 10729.678598478598_dp]
+ aw%aw_erange_matrix(:, 8) = [0.16057542542593983_dp, 0.49952962028824754_dp, 0.8943731123892699_dp, 1.3909076292240965_dp, 2.048865907808532_dp, 2.950126882998398_dp,&
+ 4.2103425278857385_dp, 5.995954911767919_dp, 8.549525380892058_dp, 12.227842251849554_dp, 17.559745488437873_dp, 25.33455063970661_dp, 36.7382813247586_dp,&
+ 53.565155655152715_dp, 78.54849962850257_dp, 115.8829384695536_dp, 172.05630085125_dp, 257.19020516627944_dp, 387.2342312585102_dp, 587.6466072063987_dp,&
+ 899.8509121387558_dp, 1393.5887995892674_dp, 2194.6568910457167_dp, 3565.0884460947423_dp, 6230.642206140841_dp, 13732.602514515214_dp, 0.32407734329056537_dp,&
+ 0.3600930324125088_dp, 0.43712641231000066_dp, 0.5657644526879636_dp, 0.7636093738551866_dp, 1.0579110134655951_dp, 1.4898487496937127_dp, 2.121183742243155_dp,&
+ 3.0444831771204277_dp, 4.398856321226892_dp, 6.39429509803701_dp, 9.349562092561689_dp, 13.751584428416358_dp, 20.349284881552315_dp, 30.303092531346753_dp,&
+ 45.425519514426874_dp, 68.57296149770674_dp, 104.29448877473207_dp, 159.93517513497875_dp, 247.604939611224_dp, 388.0261636148984_dp, 619.3536447537377_dp, 1022.6891506041642_dp, 1819.6861630933722_dp, 3904.600906393468_dp, 14642.034530501202_dp]
+ aw%aw_erange_matrix(:, 9) = [0.16432089011213946_dp, 0.5120783448939726_dp, 0.9199886972681118_dp, 1.437840597555715_dp, 2.1313000192264977_dp, 3.0914596821926974_dp,&
+ 4.448548492729215_dp, 6.392274593692749_dp, 9.202519740089308_dp, 13.296161754347343_dp, 19.29914269890146_dp, 28.158315667958256_dp, 41.31644063618593_dp,&
+ 60.98825519945388_dp, 90.59976907891678_dp, 135.49373172032819_dp, 204.0739991922362_dp, 309.6835071732142_dp, 473.73172471065976_dp, 731.0162782781778_dp,&
+ 1139.1233191834983_dp, 1796.2958792734264_dp, 2880.674779835234_dp, 4760.907205234219_dp, 8443.643014901543_dp, 18797.512140801202_dp, 0.33178166646984186_dp,&
+ 0.3704756224159047_dp, 0.4535273760622626_dp, 0.5929656383094599_dp, 0.8089125230587538_dp, 1.1327811095321214_dp, 1.6125162306884913_dp, 2.320823479534045_dp,&
+ 3.3679786225905852_dp, 4.921818456475184_dp, 7.239122346149252_dp, 10.715224167142727_dp, 15.963061445035835_dp, 23.94020351071544_dp, 36.154875568991734_dp,&
+ 55.00354905209596_dp, 84.33076754977621_dp, 130.3718204724196_dp, 203.3763607524491_dp, 320.5163292162362_dp, 511.499766113826_dp, 831.0632228122023_dp, 1393.996082618058_dp, 2507.6502273684464_dp, 5398.730047404666_dp, 20174.243482162154_dp]
+ aw%aw_erange_matrix(:, 10) = [0.16955168876185606_dp, 0.5297128492681893_dp, 0.9563682595025127_dp, 1.5053456637551013_dp, 2.251458851423233_dp, 3.30025374096381_dp,&
+ 4.805213971653435_dp, 6.993792120211177_dp, 10.207452358120111_dp, 14.963970947103403_dp, 22.05530884512796_dp, 32.702779510861056_dp, 48.80530736719183_dp,&
+ 73.34037086293017_dp, 111.01793202252156_dp, 169.3581666315736_dp, 260.4877531652313_dp, 404.17142433017716_dp, 633.0038005727723_dp, 1001.4735710632112_dp,&
+ 1602.2710504984482_dp, 2597.339796633601_dp, 4284.439326490744_dp, 7277.272159321957_dp, 13217.442145549_dp, 29915.954039362532_dp, 0.34255855985607125_dp,&
+ 0.3852211686852873_dp, 0.4772548827347379_dp, 0.6329784737782622_dp, 0.8765598435301294_dp, 1.246188563782287_dp, 1.800992159648441_dp, 2.6320669330081983_dp,&
+ 3.8799679680225974_dp, 5.762558150515838_dp, 8.61966780966633_dp, 12.985306239805702_dp, 19.705483921340985_dp, 30.13234025723871_dp, 46.44736905029676_dp,&
+ 72.20575596588289_dp, 113.2647934625349_dp, 179.39118814888906_dp, 287.0985893630822_dp, 464.81061857234823_dp, 762.7938761510428_dp, 1274.5462739445218_dp, 2193.7537015644107_dp, 4023.287609783773_dp, 8726.293698066565_dp, 32456.229019326278_dp]
+ aw%aw_erange_matrix(:, 11) = [0.17161078656390408_dp, 0.5366905364814994_dp, 0.97088881076514_dp, 1.5325699975422944_dp, 2.300445459098221_dp, 3.386304928549832_dp,&
+ 4.953814656226931_dp, 7.2471781401179225_dp, 10.635564848787308_dp, 15.682784328062063_dp, 23.257647540954054_dp, 34.710448891778356_dp, 52.15789633691571_dp,&
+ 78.94769861589022_dp, 120.42398853039909_dp, 185.20235595500606_dp, 287.3191078945018_dp, 449.9016881055523_dp, 711.5314989639854_dp, 1137.4846615524127_dp,&
+ 1840.156204841028_dp, 3018.1229428253846_dp, 5039.367148043016_dp, 8662.764242204496_dp, 15902.181332715702_dp, 36264.30820408944_dp, 0.3468065253991383_dp,&
+ 0.3911064628011852_dp, 0.48686770710592453_dp, 0.649407004504934_dp, 0.9046709269666874_dp, 1.2938615472397417_dp, 1.8811396766420316_dp, 2.7659895528533784_dp,&
+ 4.102970732081106_dp, 6.133424978400673_dp, 9.236763352774814_dp, 14.014155411820974_dp, 21.42640568242634_dp, 33.02345872650458_dp, 51.33068406408745_dp,&
+ 80.5068763005674_dp, 127.47998440706951_dp, 203.93737778272407_dp, 329.88071553711586_dp, 540.1552172919626_dp, 897.0521095218941_dp, 1517.2143251608513_dp, 2641.8070030495096_dp, 4889.503800534578_dp, 10648.322208945656_dp, 39537.49857015622_dp]
+ aw%aw_erange_matrix(:, 12) = [0.1728061198835349_dp, 0.5407506981101403_dp, 0.9793714038026303_dp, 1.5485484444330022_dp, 2.3293373186010964_dp, 3.4373065991570115_dp,&
+ 5.0423230776903445_dp, 7.398853217497418_dp, 10.89314740028624_dp, 16.11757919438818_dp, 23.988966085187993_dp, 35.93874008813103_dp, 54.22162060992446_dp,&
+ 82.42176042102257_dp, 126.29163129215709_dp, 195.15830646295916_dp, 304.3099266577351_dp, 479.10015694274045_dp, 762.1158665504651_dp, 1225.9324082258843_dp,&
+ 1996.438395305476_dp, 3297.6059283833983_dp, 5546.6394027927_dp, 9604.798156883016_dp, 17747.506304598486_dp, 40662.28777164996_dp, 0.3492740223484516_dp,&
+ 0.3945444048035226_dp, 0.4925209274047293_dp, 0.6591264626127379_dp, 0.9213922685098963_dp, 1.322366949443488_dp, 1.929314142208889_dp, 2.8469205908136956_dp,&
+ 4.238488142375349_dp, 6.360114867321287_dp, 9.616265458690265_dp, 14.650939404307358_dp, 22.498728594279285_dp, 34.837787125550584_dp, 54.418346394612065_dp,&
+ 85.79761930703064_dp, 136.61734637002158_dp, 219.8591273308433_dp, 357.9019839857931_dp, 590.021281618985_dp, 986.9076588661666_dp, 1681.5547940952313_dp, 2948.8741403686568_dp, 5489.390378606207_dp, 11987.379922744534_dp, 44468.08958434164_dp]
+ aw%aw_erange_matrix(:, 13) = [0.1737308948597355_dp, 0.5438966877521114_dp, 0.9859610380912929_dp, 1.560999073537973_dp, 2.3519219694926194_dp, 3.4773019976149877_dp,&
+ 5.11195442725365_dp, 7.518569316391805_dp, 11.09714005655843_dp, 16.463120094991794_dp, 24.572288754382765_dp, 36.922235617447974_dp, 55.880761448416834_dp,&
+ 85.22675085299979_dp, 131.05081429199765_dp, 203.27261201403803_dp, 318.2293711657402_dp, 503.152754643253_dp, 804.032555977885_dp, 1299.6927362845154_dp,&
+ 2127.667695664749_dp, 3534.0326704862105_dp, 5979.169285255363_dp, 10414.573972160117_dp, 19345.73831740431_dp, 44492.46471079593_dp, 0.3511837705016231_dp,&
+ 0.39721506693266434_dp, 0.4969316438045135_dp, 0.6667392102402926_dp, 0.9345354080893498_dp, 1.3448487389874917_dp, 1.967438938031642_dp, 2.9111947746582425_dp,&
+ 4.346509228913013_dp, 6.541503533662434_dp, 9.921152543346885_dp, 15.164693048542738_dp, 23.367741212788335_dp, 36.315072183771754_dp, 56.94501925463534_dp,&
+ 90.15017067236717_dp, 144.17713392303253_dp, 233.11210787240515_dp, 381.3788199371866_dp, 632.0944337435812_dp, 1063.2960978183357_dp, 1822.393451001988_dp, 3214.1964330189876_dp, 6011.5393853613305_dp, 13158.00196550311_dp, 48777.36298097777_dp]
+ aw%aw_erange_matrix(:, 14) = [0.17799130240706984_dp, 0.558445410809649_dp, 1.0166297309491044_dp, 1.6193831652945954_dp, 2.4586620686801695_dp, 3.667829742572521_dp,&
+ 5.446314891054136_dp, 8.098126747261656_dp, 12.093029411971516_dp, 18.164916061856836_dp, 27.47177125227526_dp, 41.85862387738217_dp, 64.29463269296241_dp,&
+ 99.6081132229676_dp, 155.73791067776023_dp, 245.8920402977068_dp, 392.3244219552829_dp, 633.0449562544749_dp, 1033.945999167842_dp, 1711.154006548549_dp,&
+ 2873.283514523331_dp, 4904.516412355985_dp, 8541.213772971501_dp, 15320.756510308098_dp, 29238.418877095413_dp, 68583.17313114721_dp, 0.35999057854489624_dp,&
+ 0.40964342132227255_dp, 0.517678596262729_dp, 0.702891167526621_dp, 0.9974953889055737_dp, 1.4534562037793455_dp, 2.1531958092699743_dp, 3.2271377404365795_dp,&
+ 4.882410917802139_dp, 7.450138129922876_dp, 11.464071575277625_dp, 17.792734308409212_dp, 27.864023043096953_dp, 44.05169019349174_dp, 70.34922266622794_dp,&
+ 113.5616876658134_dp, 185.44652039869408_dp, 306.62505535472695_dp, 513.8711614457693_dp, 874.0321926895938_dp, 1511.615678189863_dp, 2667.372553488233_dp, 4842.950527196566_dp, 9285.588160319077_dp, 20597.325965171356_dp, 76161.8596274348_dp]
+ aw%aw_erange_matrix(:, 15) = [0.18427327646299554_dp, 0.5800678142111884_dp, 1.062813174396542_dp, 1.7086710138090095_dp, 2.6245433407677226_dp, 3.9687456084576795_dp,&
+ 5.983088088759827_dp, 9.044214821988016_dp, 13.747180049983248_dp, 21.04333745984166_dp, 32.47068559616262_dp, 50.54348632696267_dp, 79.41986612597532_dp,&
+ 126.06149615339397_dp, 202.27775198215787_dp, 328.3861574350742_dp, 539.8798783942364_dp, 899.8005204338677_dp, 1522.1727316803415_dp, 2617.4198392181756_dp,&
+ 4582.775104882628_dp, 8188.716947049966_dp, 14986.46895717419_dp, 28322.082953313376_dp, 56826.75793518779_dp, 138481.00974898663_dp, 0.3730028368021069_dp,&
+ 0.428354171574684_dp, 0.549600032397171_dp, 0.7595995851576278_dp, 1.098014096850626_dp, 1.629865924998882_dp, 2.460250070930056_dp, 3.7589670939362154_dp,&
+ 5.801833730520023_dp, 9.040587178848838_dp, 14.222505427016364_dp, 22.59766467101562_dp, 36.28293067415338_dp, 58.9106289633826_dp, 96.80295342684235_dp,&
+ 161.1348984666336_dp, 271.99263116463095_dp, 466.14531748937003_dp, 812.2703291175023_dp, 1441.5731111728833_dp, 2611.4422570763995_dp, 4844.665731670444_dp, 9266.732583950343_dp, 18647.213606093355_dp, 42656.46566405554_dp, 157660.6216097217_dp]
+ aw%aw_erange_matrix(:, 16) = [0.1889166187549335_dp, 0.5961850834729495_dp, 1.097718788260886_dp, 1.7772527519739671_dp, 2.754100363430344_dp, 4.207746123352419_dp,&
+ 6.416725271991069_dp, 9.821987600643263_dp, 15.131996317599018_dp, 23.4995566780628_dp, 36.8234002615115_dp, 58.269695998899806_dp, 93.18703062085261_dp,&
+ 150.7367390335279_dp, 246.84666046331515_dp, 409.6601639519172_dp, 689.7883982951697_dp, 1180.0211938503542_dp, 2054.1392300559787_dp, 3645.406178397627_dp,&
+ 6610.227338646847_dp, 12282.21946267068_dp, 23479.16184253136_dp, 46536.49778293873_dp, 97988.005994822_dp, 248271.71627050647_dp, 0.3826418964555519_dp,&
+ 0.44249042636795055_dp, 0.5742647482387918_dp, 0.8042933870412514_dp, 1.1786909803221888_dp, 1.7740059766551828_dp, 2.7157599189739634_dp, 4.210014007474866_dp,&
+ 6.5973245402497005_dp, 10.445947244529027_dp, 16.71490137908719_dp, 27.043296616534693_dp, 44.27161732479843_dp, 73.39668617871985_dp, 123.35300047165461_dp,&
+ 210.40156572097126_dp, 364.7172011277595_dp, 643.5002779012159_dp, 1157.7720495453327_dp, 2128.791663589068_dp, 4011.0945220895405_dp, 7773.563988357228_dp, 15593.849284273198_dp, 32917.0364973997_dp, 78051.06376348506_dp, 289942.76429117593_dp]
+ aw%aw_erange_matrix(:, 17) = [0.194043824675455_dp, 0.6141201650984125_dp, 1.137056339966442_dp, 1.8556822490348746_dp, 2.9045171634501883_dp, 4.489491230295626_dp,&
+ 6.935918070559926_dp, 10.768297969516013_dp, 16.84551695032909_dp, 26.59345448264271_dp, 42.41124163468271_dp, 68.39190043336116_dp, 111.6218630548935_dp,&
+ 184.5662784702303_dp, 309.53243627996767_dp, 527.1995714305152_dp, 913.3020625088166_dp, 1612.1087655214071_dp, 2905.5631924229647_dp, 5360.760592207567_dp,&
+ 10156.351679516332_dp, 19836.90395856863_dp, 40153.56249059423_dp, 84945.40622185206_dp, 191879.29446083526_dp, 516853.91463486024_dp, 0.3933068197531215_dp,&
+ 0.45841433657798863_dp, 0.6026132459496706_dp, 0.8565818421331466_dp, 1.2746407100646033_dp, 1.948249294221966_dp, 3.029862020316641_dp, 4.774339119270673_dp,&
+ 7.611287961919275_dp, 12.27301847355483_dp, 20.02418710434074_dp, 33.08062796253295_dp, 55.38677548001659_dp, 94.08664339680347_dp, 162.36610582016837_dp,&
+ 285.0728404570405_dp, 510.11475389805196_dp, 932.2410214966416_dp, 1744.2541855756215_dp, 3351.323885452711_dp, 6636.946607638909_dp, 13613.456185258428_dp, 29125.998944110084_dp, 65928.95446339808_dp, 166172.86831676983_dp, 628359.6031461136_dp]
+ aw%aw_erange_matrix(:, 18) = [0.20097761439605452_dp, 0.6386142361636943_dp, 1.1916436123207983_dp, 1.9665277909771697_dp, 3.121155070595262_dp, 4.903104495370994_dp,&
+ 7.713190752815356_dp, 12.214218517736429_dp, 19.52076540766317_dp, 31.536135148981113_dp, 51.56105718002733_dp, 85.41349834924547_dp, 143.5295342840862_dp,&
+ 244.98992662983036_dp, 425.42112573916177_dp, 752.9079358406352_dp, 1360.9881333864396_dp, 2519.3466781523043_dp, 4791.042590791367_dp, 9397.53189950536_dp,&
+ 19109.699703842572_dp, 40556.572222445735_dp, 90659.45721129453_dp, 216333.95478046086_dp, 564416.1292362113_dp, 1760880.0389147545_dp, 0.4077664557826492_dp,&
+ 0.48049567628653145_dp, 0.6429124643807497_dp, 0.9325592299631679_dp, 1.4169440263827862_dp, 2.2120247106687776_dp, 3.515599466670522_dp, 5.666879358451872_dp,&
+ 9.253815059676851_dp, 15.309414383937733_dp, 25.677138365111702_dp, 43.7042055643289_dp, 75.58521070695693_dp, 133.0274420624619_dp, 238.67600100704755_dp,&
+ 437.47737171537983_dp, 821.2587051299821_dp, 1583.8578781748606_dp, 3150.0096236720124_dp, 6491.449657956827_dp, 13947.036522523289_dp, 31498.820504827483_dp, 75639.29476513214_dp, 196582.0757874882_dp, 575257.5915715584_dp, 2362446.5347060743_dp]
+ aw%aw_erange_matrix(:, 19) = [0.20658002404396444_dp, 0.6586140986839257_dp, 1.2369737792708104_dp, 2.060361497488803_dp, 3.3082012274969337_dp, 5.267442774090238_dp,&
+ 8.412127582372415_dp, 13.542811939893562_dp, 22.035981804979933_dp, 36.29881109275795_dp, 60.6146407237101_dp, 102.74788434800739_dp, 177.06018691028456_dp,&
+ 310.7136329238608_dp, 556.36637029124_dp, 1018.9766332082758_dp, 1914.422668305446_dp, 3702.980284069834_dp, 7407.809066534502_dp, 15417.95314386633_dp,&
+ 33651.57917590195_dp, 77878.97148771118_dp, 194227.98208713965_dp, 535582.0636490324_dp, 1709364.267502628_dp, 7045890.294848618_dp, 0.4194816618416714_dp,&
+ 0.49881572197479607_dp, 0.6772179216261252_dp, 0.9987160310392028_dp, 1.5435226281295777_dp, 2.451754987162261_dp, 3.9670946613559326_dp, 6.516517085204095_dp,&
+ 10.85773397839894_dp, 18.356701405781113_dp, 31.520492951672992_dp, 55.0435050002148_dp, 97.91266305771113_dp, 177.760944100452_dp, 330.14945470086406_dp,&
+ 629.0496827419165_dp, 1233.841581178721_dp, 2502.1075901274335_dp, 5274.877655599449_dp, 11644.098372122406_dp, 27178.121421602995_dp, 68003.68316809284_dp, 186203.45469776812_dp, 576894.7309753906_dp, 2152261.8479348915_dp, 11566361.80487531_dp]
+ aw%aw_erange_matrix(:, 20) = [0.20878089337233605_dp, 0.6665236543193817_dp, 1.2550931614146674_dp, 2.0983237232110734_dp, 3.38481582751189_dp, 5.418564331713917_dp,&
+ 8.705828067862388_dp, 14.108794066294884_dp, 23.12322697734966_dp, 38.390182043454885_dp, 64.65856322054098_dp, 110.63583466643804_dp, 192.63262310028742_dp,&
+ 341.932785309222_dp, 620.1449956190338_dp, 1152.2653509765064_dp, 2200.646613149521_dp, 4337.910771163601_dp, 8872.44998086692_dp, 18961.533603283864_dp,&
+ 42748.40639563531_dp, 103069.49259277884_dp, 271388.86064721714_dp, 808265.503410061_dp, 2915885.1156875044_dp, 15257006.288806498_dp, 0.4240919425078822_dp,&
+ 0.5061337957364646_dp, 0.6911418800611648_dp, 1.0259473122312546_dp, 1.5963227579992894_dp, 2.5531163460188835_dp, 4.160724269135366_dp, 6.8864489147035135_dp,&
+ 11.567503857113842_dp, 19.729006828740097_dp, 34.20240654961173_dp, 60.35680029031647_dp, 108.61537925165752_dp, 199.75021678633257_dp, 376.3927619922551_dp,&
+ 728.9995944299609_dp, 1456.9587839825_dp, 3019.6115675071173_dp, 6531.619658687757_dp, 14871.950539519852_dp, 36069.05923591306_dp, 94800.92746541071_dp, 277390.3096379278_dp, 946568.3924295901_dp, 4140822.150621181_dp, 30376446.323901277_dp]
+ case(28)
+ aw%energy_range(:) = [1545.0_dp, 2002.0_dp, 2600.0_dp, 3300.0_dp, 4000.0_dp, 5000.0_dp, 5800.0_dp,&
+ 7000.0_dp, 8500.0_dp, 11000.0_dp, 14000.0_dp, 18000.0_dp, 22000.0_dp, 30000.0_dp, 40000.0_dp, 55000.0_dp,&
+ 75000.0_dp, 100000.0_dp, 140000.0_dp, 200000.0_dp, 280000.0_dp, 400000.0_dp, 700000.0_dp, 1200000.0_dp,&
+ 2000000.0_dp, 4500000.0_dp, 10000000.0_dp, 50000000.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.13575757270404953_dp, 0.4178973639556045_dp, 0.7329236428021971_dp, 1.1062108040376035_dp, 1.568601536611355_dp, 2.1592688100674207_dp,&
+ 2.9294121393197234_dp, 3.9472075381811034_dp, 5.304565115169143_dp, 7.126455157872397_dp, 9.58387216560659_dp, 12.911957380816203_dp, 17.435457004483258_dp,&
+ 23.60465355900629_dp, 32.04632634372974_dp, 43.63642652454945_dp, 59.604434449969176_dp, 81.68464372636545_dp, 112.33867792077912_dp, 155.0906277872644_dp,&
+ 215.05233203699643_dp, 299.80262448398395_dp, 421.01528178406727_dp, 597.918699882043_dp, 865.992956895906_dp, 1303.7011000121163_dp, 2141.5524242895876_dp,&
+ 4531.217316508373_dp, 0.27326920724684195_dp, 0.2946860969732406_dp, 0.33955686148055997_dp, 0.4121109865279064_dp, 0.5191386834268464_dp, 0.6706479068869163_dp,&
+ 0.8808905660301858_dp, 1.1698656397567786_dp, 1.5654653694813896_dp, 2.106516824061551_dp, 2.847090389745759_dp, 3.8626161289484946_dp, 5.258596350357734_dp,&
+ 7.183071722294598_dp, 9.844561359899942_dp, 13.538086075854713_dp, 18.68336222220931_dp, 25.881909474247266_dp, 36.00509685683712_dp, 50.336922172287224_dp,&
+ 70.82460332971439_dp, 100.57024668126095_dp, 144.9365352509728_dp, 214.43007706895824_dp, 333.52874619054023_dp, 573.9031161499247_dp, 1229.5973040920514_dp, 4703.444164101694_dp]
+ aw%aw_erange_matrix(:, 2) = [0.13875490228933057_dp, 0.4276255171652803_dp, 0.7517156037290086_dp, 1.1383835985980468_dp, 1.6211543280535077_dp, 2.24298954813131_dp,&
+ 3.0605574074054775_dp, 4.150010628234262_dp, 5.614955400623468_dp, 7.597559757812928_dp, 10.294150717899024_dp, 13.977239772443514_dp, 19.02678365968016_dp,&
+ 25.97476748389089_dp, 35.56910288047172_dp, 48.86570866761254_dp, 67.36207051671413_dp, 93.19263977809487_dp, 129.41834545397384_dp, 180.464373940652_dp,&
+ 252.8054276668391_dp, 356.10337604440286_dp, 505.2839065614399_dp, 724.884011732378_dp, 1059.8824174872211_dp, 1608.9472923295727_dp, 2660.4222496990938_dp,&
+ 5652.953965854954_dp, 0.27938451496965105_dp, 0.3022942729129253_dp, 0.3504019114933159_dp, 0.42846797473594944_dp, 0.5441638095088057_dp, 0.7088566053659555_dp,&
+ 0.9388406258537662_dp, 1.2571515140355833_dp, 1.696177262039284_dp, 2.3013920551824687_dp, 3.1366969256786756_dp, 4.292078154026608_dp, 5.894629362616917_dp,&
+ 8.124486230083422_dp, 11.237991762535799_dp, 15.601617466229358_dp, 21.74214403705774_dp, 30.42206941171729_dp, 42.75588434748671_dp, 60.397316412895705_dp,&
+ 85.86308174160227_dp, 123.15573491240343_dp, 179.14126278900252_dp, 267.1160865820656_dp, 417.7474719630637_dp, 720.4456660885186_dp, 1542.1360738637661_dp, 5884.200372654236_dp]
+ aw%aw_erange_matrix(:, 3) = [0.14170133198228974_dp, 0.4372217263238123_dp, 0.7703667410153948_dp, 1.170561871979771_dp, 1.6741573415215183_dp, 2.328150315477383_dp,&
+ 3.1950959957750866_dp, 4.359823742790623_dp, 5.938793138824031_dp, 8.093266245009781_dp, 11.047988350138315_dp, 15.117836905873796_dp, 20.74603727817547_dp,&
+ 28.559241927240333_dp, 39.447320753058946_dp, 54.67958659957536_dp, 76.07517146731833_dp, 106.25479226978082_dp, 149.01700315289193_dp, 209.91049251369597_dp,&
+ 297.1309477297457_dp, 423.00157872210633_dp, 606.6410313436483_dp, 879.4603870251076_dp, 1298.7028908996313_dp, 1988.89250689582_dp, 3311.7439315777756_dp,&
+ 7068.809688414042_dp, 0.28540132117732764_dp, 0.30984707978323456_dp, 0.36129794839002666_dp, 0.44508976371473236_dp, 0.5698536211227944_dp, 0.7484481979075869_dp,&
+ 0.9994281881329805_dp, 1.349221631283907_dp, 1.8352885387908624_dp, 2.5106794264046326_dp, 3.4506197143865025_dp, 4.7620484853517535_dp, 6.597491611853674_dp,&
+ 9.175333108649932_dp, 12.809599627131021_dp, 17.954022803045103_dp, 25.267822915246338_dp, 35.715254750483545_dp, 50.719550256407835_dp, 72.40992923579321_dp,&
+ 104.04357266683634_dp, 150.80209138086602_dp, 221.51983619636096_dp, 333.11222703164094_dp, 524.1575321727823_dp, 906.5045080905089_dp, 1939.0883159241562_dp,&
+ 7379.912745615771_dp]
+ aw%aw_erange_matrix(:, 4) = [0.1443213439813841_dp, 0.4457831750819166_dp, 0.7871040955754438_dp, 1.199649305615617_dp, 1.7224480814853638_dp, 2.406363780432981_dp,&
+ 3.3196484980978123_dp, 4.555610260714856_dp, 6.243390548485977_dp, 8.563273777666188_dp, 11.768595390094813_dp, 16.217282570542377_dp, 22.41751110034019_dp,&
+ 31.094143991937496_dp, 43.28592662828489_dp, 60.4884812383459_dp, 84.86601967785074_dp, 119.56722092591784_dp, 169.20143472321413_dp, 240.5679228390866_dp,&
+ 343.80218836354004_dp, 494.2629646656425_dp, 715.8986735090695_dp, 1048.0827251136477_dp, 1562.2463425593953_dp, 2412.584383401865_dp, 4044.261841910583_dp,&
+ 8670.083651639381_dp, 0.29075611057246903_dp, 0.3166261585220409_dp, 0.3711885602570686_dp, 0.46033854458071854_dp, 0.5936453499685163_dp, 0.7854359258485714_dp,&
+ 1.0565085213633747_dp, 1.436688222670177_dp, 1.968561659570244_dp, 2.712912087952586_dp, 3.7566401596502166_dp, 5.224345933312585_dp, 7.295336462823744_dp,&
+ 10.228723138518374_dp, 14.400665352704436_dp, 20.36000930380217_dp, 28.912119534169648_dp, 41.246715659956386_dp, 59.136507003494074_dp, 85.2557783449816_dp,&
+ 123.72029659330352_dp, 181.09033026269378_dp, 268.50693202646386_dp, 407.097383174319_dp, 644.5187891323013_dp, 1118.0760747835973_dp, 2390.794104288915_dp, 9077.664025334678_dp]
+ aw%aw_erange_matrix(:, 5) = [0.14638817647917096_dp, 0.4525562304919969_dp, 0.8004113661058508_dp, 1.2229192620590597_dp, 1.7613392882634402_dp, 2.46978131492719_dp,&
+ 3.4213217718648257_dp, 4.716508123125715_dp, 6.495398953009317_dp, 8.954788755571927_dp, 12.373034589954802_dp, 17.14606176978465_dp, 23.83987749306696_dp,&
+ 33.26757985490672_dp, 46.60291342057746_dp, 65.54869201567364_dp, 92.58820799313293_dp, 131.36337282507247_dp, 187.24910181582314_dp, 268.2384452991122_dp,&
+ 386.33916361080026_dp, 559.8711155854782_dp, 817.5377393277938_dp, 1206.597963677244_dp, 1812.5358477762866_dp, 2818.7486911520996_dp, 4751.872883766852_dp,&
+ 10224.75043407236_dp, 0.2949833929923809_dp, 0.3220167305947149_dp, 0.37912854664712514_dp, 0.4726893344740349_dp, 0.6130690229748341_dp, 0.815855353412895_dp,&
+ 1.103786627022251_dp, 1.5096476978683913_dp, 2.0805275568641997_dp, 2.8840571372482406_dp, 4.0175653372807405_dp, 5.6215679248366985_dp, 7.899729561825618_dp,&
+ 11.148556975090484_dp, 15.801822722811611_dp, 22.49747280636011_dp, 32.179229771450665_dp, 46.2526111584764_dp, 66.82858029050779_dp, 97.11489993975235_dp,&
+ 142.07650817080304_dp, 209.6486242985047_dp, 313.28112229681227_dp, 478.2993974050695_dp, 761.3056079394062_dp, 1324.411398249371_dp, 2831.738972704671_dp, 10731.431828374814_dp]
+ aw%aw_erange_matrix(:, 6) = [0.14873276811274175_dp, 0.4602604435552678_dp, 0.8156202251610892_dp, 1.2496712569060364_dp, 1.8063333929867138_dp, 2.5436216992100222_dp,&
+ 3.5404623300065525_dp, 4.906249870587573_dp, 6.794488603605298_dp, 9.422467064090277_dp, 13.09985016154952_dp, 18.270496883841385_dp, 25.573981534747755_dp,&
+ 35.93662127761815_dp, 50.706943480264954_dp, 71.85851387250909_dp, 102.29562759788192_dp, 146.31752861965646_dp, 210.33006795552657_dp, 303.95126003728876_dp,&
+ 441.76539937885485_dp, 646.211368042272_dp, 952.6710416909058_dp, 1419.5536773254755_dp, 2152.239930114691_dp, 3375.245128381901_dp, 5728.981212116223_dp,&
+ 12382.677743050794_dp, 0.29978212482122407_dp, 0.3281783565393207_dp, 0.38828614617008406_dp, 0.4870536747556686_dp, 0.6358284060736311_dp, 0.8517463850003115_dp,&
+ 1.159944468384693_dp, 1.5968934307453053_dp, 2.2153322272555918_dp, 3.0915535322808045_dp, 4.336186457224601_dp, 6.110220047392288_dp, 8.648930492647603_dp,&
+ 12.297804765083454_dp, 17.566800104918254_dp, 25.212855803295792_dp, 36.36638248551193_dp, 52.727201300860486_dp, 76.87269143077049_dp, 112.75446596355195_dp,&
+ 166.53426131891115_dp, 248.1027496502268_dp, 374.209851157723_dp, 576.1670830958_dp, 923.1971063861915_dp, 1612.0060664213056_dp, 3447.1144071775916_dp, 13034.665823606138_dp]
+ aw%aw_erange_matrix(:, 7) = [0.1502608626762777_dp, 0.46529381929136415_dp, 0.8255984287192656_dp, 1.2673137696821588_dp, 1.836171369209371_dp, 2.5928648745864002_dp,&
+ 3.620360959868694_dp, 5.03420711947541_dp, 6.997322718003583_dp, 9.741445894989209_dp, 13.598470784165613_dp, 19.046535582715773_dp, 26.77821561373657_dp,&
+ 37.802020863101404_dp, 53.59437014367614_dp, 76.32857147441665_dp, 109.22216155171537_dp, 157.0678149109126_dp, 227.05242355977109_dp, 330.03689277986626_dp,&
+ 482.59561279417204_dp, 710.3800419453736_dp, 1054.0275615855337_dp, 1580.7806999365232_dp, 2411.814227215001_dp, 3804.1445503572704_dp, 6487.450697686814_dp,&
+ 14065.757793553257_dp, 0.30291165139633314_dp, 0.33222125521586104_dp, 0.39434230166254536_dp, 0.49662265274183637_dp, 0.6510887543947779_dp, 0.8759576781503452_dp,&
+ 1.1980509194264035_dp, 1.65644466400815_dp, 2.3078985102205145_dp, 3.2349123916804046_dp, 4.557716389303409_dp, 6.452190401185147_dp, 9.17678285087093_dp,&
+ 13.11317617239606_dp, 18.828100900733247_dp, 27.16794809144496_dp, 39.40475025321865_dp, 57.46370759694749_dp, 84.28289069496383_dp, 124.394912066618_dp,&
+ 184.90546198899864_dp, 277.2608566102862_dp, 420.8506637137679_dp, 651.7708792506397_dp, 1049.2452864243335_dp, 1837.0994387864066_dp, 3929.4241467171732_dp, 14836.654624922767_dp]
+ aw%aw_erange_matrix(:, 8) = [0.15216067096721872_dp, 0.471565223326128_dp, 0.8380780093696487_dp, 1.28948169785262_dp, 1.8738495345723247_dp, 2.6553598559323834_dp,&
+ 3.7222688062985685_dp, 5.19822827508094_dp, 7.258634966635491_dp, 10.154495182186366_dp, 14.247532860539385_dp, 20.062185372368273_dp, 28.363094298620563_dp,&
+ 40.27130480928199_dp, 57.43960199384115_dp, 82.31880941446532_dp, 118.5650689039139_dp, 171.66758912191602_dp, 249.9251651508212_dp, 365.9837744748739_dp,&
+ 539.3021607201113_dp, 800.2307440291746_dp, 1197.160479701725_dp, 1810.4543604483329_dp, 2784.8104361839814_dp, 4425.491363293105_dp, 7593.770462224588_dp,&
+ 16532.026633916616_dp, 0.30680462287335947_dp, 0.33727803632012604_dp, 0.40197064053453857_dp, 0.5087540933684152_dp, 0.6705478410902993_dp, 0.9069974242331109_dp,&
+ 1.247162385748679_dp, 1.7336002070451948_dp, 2.428475465424688_dp, 3.422685558563218_dp, 4.849534981128361_dp, 6.905320699402122_dp, 9.88048894377267_dp,&
+ 14.207072801318644_dp, 20.53138622494952_dp, 29.82621577753499_dp, 43.56537666330866_dp, 63.997988617140564_dp, 94.58522278172896_dp, 140.7101667657315_dp,&
+ 210.87312430131763_dp, 318.83821988553984_dp, 487.951265473417_dp, 761.4827237292491_dp, 1233.5478315642981_dp, 2167.935258865102_dp, 4639.411026254049_dp, 17485.041970829057_dp]
+ aw%aw_erange_matrix(:, 9) = [0.1540799216139811_dp, 0.47791627634651673_dp, 0.850769563354445_dp, 1.3121430573119903_dp, 1.9125794571765222_dp, 2.71995838496797_dp,&
+ 3.8281934943752236_dp, 5.369664505300357_dp, 7.533297508669478_dp, 10.591136793513773_dp, 14.937707413108372_dp, 21.14872971257977_dp, 30.069271553254573_dp,&
+ 42.94695048821831_dp, 61.63452932012581_dp, 88.90016193695817_dp, 128.90594661034356_dp, 187.95199381913332_dp, 275.6440545272999_dp, 406.74745153174376_dp,&
+ 604.1811788842098_dp, 903.9925961038582_dp, 1364.0684178021952_dp, 2080.9739321821835_dp, 3228.5707596988204_dp, 5171.757203514712_dp, 8933.185118640264_dp,&
+ 19534.126420802_dp, 0.31073990046537614_dp, 0.3424211000331794_dp, 0.40978979014005723_dp, 0.5212783171859456_dp, 0.6907658913737462_dp, 0.9394414583345747_dp,&
+ 1.2987972772142504_dp, 1.8151994912799103_dp, 2.556766327946643_dp, 3.6237110927440117_dp, 5.163950286772281_dp, 7.396774913472435_dp, 10.648956311521417_dp,&
+ 15.410163693505844_dp, 22.418599460431437_dp, 32.7943079459921_dp, 48.24841432234958_dp, 71.4147546141822_dp, 106.38218646397881_dp, 159.56520008768115_dp,&
+ 241.17359283608667_dp, 367.8412274406162_dp, 567.849453755969_dp, 893.4358642502303_dp, 1457.1994566202313_dp, 2571.939694554795_dp, 5508.2172091289185_dp, 20720.162172438253_dp]
+ aw%aw_erange_matrix(:, 10) = [0.15656226451877622_dp, 0.4861541997731515_dp, 0.8673131850431656_dp, 1.3418609364967635_dp, 1.9636960012374267_dp, 2.805769901664884_dp,&
+ 3.969811694463799_dp, 5.600354203716589_dp, 7.905313246191792_dp, 11.186501541338686_dp, 15.88524322405582_dp, 22.65105407014549_dp, 32.44576099810582_dp,&
+ 46.702425471088645_dp, 67.5696101585034_dp, 98.28954732885543_dp, 143.78811859550652_dp, 211.6029698300622_dp, 313.35735776243826_dp, 467.1276302319483_dp,&
+ 701.3067172895998_dp, 1061.0705297754337_dp, 1619.7132862760398_dp, 2500.373676035913_dp, 3925.0320573338013_dp, 6356.748668419306_dp, 11081.327581159301_dp,&
+ 24381.679371671577_dp, 0.3158335009912212_dp, 0.34912565992572775_dp, 0.4200753104160631_dp, 0.5378896525589358_dp, 0.7177805773200047_dp, 0.9830934888999047_dp,&
+ 1.368743715763372_dp, 1.9264972868488104_dp, 2.732981028075031_dp, 3.9018333932401776_dp, 5.602211794669996_dp, 8.087135781098235_dp, 11.737161876852092_dp,&
+ 17.128136373382_dp, 25.137060567441367_dp, 37.10879805120811_dp, 55.12084225228906_dp, 82.40796079967193_dp, 124.05157534923438_dp, 188.11812693397164_dp,&
+ 287.5913676589109_dp, 443.82063547247185_dp, 693.2803515796006_dp, 1103.1543539828035_dp, 1816.6489638049509_dp, 3226.5521973584873_dp, 6920.118346610322_dp, 25967.01374573565_dp]
+ aw%aw_erange_matrix(:, 11) = [0.15881564616129193_dp, 0.4936556598653273_dp, 0.8824588841815081_dp, 1.3692457113825114_dp, 2.0111264485492355_dp, 2.885950423092618_dp,&
+ 4.103059689428933_dp, 5.818927316225091_dp, 8.260287362001002_dp, 11.75871117291467_dp, 16.802727948824526_dp, 24.116981065069147_dp, 34.78330983777523_dp,&
+ 50.42729724265466_dp, 73.50780317707246_dp, 107.76979904893427_dp, 158.95837591286625_dp, 235.95442692125644_dp, 352.598636504137_dp, 530.6546935517891_dp,&
+ 804.6962971730163_dp, 1230.3548358289224_dp, 1898.8241278088317_dp, 2964.5082086762377_dp, 4706.457126412182_dp, 7704.024872038893_dp, 13551.675236040213_dp,&
+ 30000.20611112028_dp, 0.3204610031116597_dp, 0.3552640894565443_dp, 0.4295842351097504_dp, 0.5533833088806153_dp, 0.7431779324839743_dp, 1.0244390610175549_dp,&
+ 1.4354819295430314_dp, 2.0334801056157183_dp, 2.903655037921023_dp, 4.1733290625525665_dp, 6.0335143863200065_dp, 8.772275269918612_dp, 12.82662526184919_dp,&
+ 18.863835903341464_dp, 27.909803652722584_dp, 41.55338127934832_dp, 62.27454140110857_dp, 93.97671287155796_dp, 142.86069930469114_dp, 218.88238290006603_dp,&
+ 338.2447047196054_dp, 527.8483016510384_dp, 833.9328380491752_dp, 1341.6124089588006_dp, 2230.6304097502575_dp, 3987.780431784136_dp, 8568.294988757902_dp,&
+ 32079.26783423429_dp]
+ aw%aw_erange_matrix(:, 12) = [0.1610939781339949_dp, 0.5012631407780889_dp, 0.8978984268667602_dp, 1.3973374389835533_dp, 2.0601052994909983_dp, 2.9693037686025625_dp,&
+ 4.2425076374898465_dp, 6.049209333425932_dp, 8.63683304888055_dp, 12.369947100756928_dp, 17.78988041970464_dp, 25.70606845547581_dp, 37.33707453593626_dp,&
+ 54.529958798718575_dp, 80.10419787720568_dp, 118.39528522114581_dp, 176.12137581924918_dp, 263.7777454271281_dp, 397.90331695679896_dp, 604.8077130867456_dp,&
+ 926.7903239830885_dp, 1432.7407682152939_dp, 2236.883538210146_dp, 3534.396483826615_dp, 5679.4632854654_dp, 9404.641424310748_dp, 16707.201153452228_dp,&
+ 37236.60159840964_dp, 0.3251433866999734_dp, 0.3615219000652313_dp, 0.43936851892508155_dp, 0.5694605971527937_dp, 0.7697318471818748_dp, 1.0679770987543238_dp,&
+ 1.5062564601488997_dp, 2.147747329286371_dp, 3.0872938959644456_dp, 4.467674438671821_dp, 6.504813446418115_dp, 9.527106074077976_dp, 14.03718906734335_dp,&
+ 20.809713515195543_dp, 31.04736871222941_dp, 46.63203851421735_dp, 70.53290909444102_dp, 107.47651145953795_dp, 165.06008557957134_dp, 255.62996703107464_dp,&
+ 399.52200422464244_dp, 630.8696403435848_dp, 1008.8071793310638_dp, 1642.3274927796938_dp, 2759.7196504068343_dp, 4970.842422998521_dp, 10706.437123051388_dp, 39993.678157447954_dp]
+ aw%aw_erange_matrix(:, 13) = [0.16286202517738316_dp, 0.5071829401058993_dp, 0.9099691167949224_dp, 1.4194239255890508_dp, 2.0988437736405245_dp, 3.0356259048953707_dp,&
+ 4.35412840156482_dp, 6.2346505351972965_dp, 8.941919073444248_dp, 12.868307590765278_dp, 18.599987337738977_dp, 27.01899385998513_dp, 39.46194816028856_dp,&
+ 57.968842841688435_dp, 85.67620223471917_dp, 127.4437361103542_dp, 190.86221942438462_dp, 287.8902318415413_dp, 437.5401948107147_dp, 670.3390916786248_dp,&
+ 1035.844707784025_dp, 1615.5694884106663_dp, 2545.9657775567157_dp, 4062.078331546931_dp, 6592.278861303402_dp, 11020.719723335082_dp, 19740.079474062593_dp,&
+ 44247.269653501586_dp, 0.32877960783872057_dp, 0.36641441495071897_dp, 0.44708193429055737_dp, 0.5822306885078613_dp, 0.7909661025753427_dp, 1.1030159511231001_dp,&
+ 1.5635761654481883_dp, 2.2408877406025356_dp, 3.237972207764307_dp, 4.710846444376257_dp, 6.896950066089331_dp, 10.159810780070979_dp, 15.059747172258659_dp,&
+ 22.466688314211762_dp, 33.741746573072334_dp, 51.032123644139766_dp, 77.75480860637037_dp, 119.39847679866706_dp, 184.86920459563467_dp, 288.78280596198823_dp,&
+ 455.4522326064931_dp, 726.0680539550964_dp, 1172.5112874975482_dp, 1927.6011121765132_dp, 3268.0690080523195_dp, 5925.0502577809875_dp, 12791.74491637296_dp, 47700.6553314684_dp]
+ aw%aw_erange_matrix(:, 14) = [0.16550588765942553_dp, 0.516062009336416_dp, 0.9281674926129342_dp, 1.4529297711024542_dp, 2.1579962800811443_dp, 3.1375655705474386_dp,&
+ 4.526824919336864_dp, 6.52346781619548_dp, 9.420301579076966_dp, 13.655208883851635_dp, 19.888399623526567_dp, 29.122872846718497_dp, 42.89382564991708_dp,&
+ 63.56900112741913_dp, 94.82915018373326_dp, 142.44372123087916_dp, 215.53542531034506_dp, 328.6632843331655_dp, 505.2926101128234_dp, 783.6477805337622_dp,&
+ 1226.7296666006187_dp, 1939.7944616575992_dp, 3101.785623951648_dp, 5025.174302162332_dp, 8284.281861937603_dp, 14062.83179723175_dp, 25528.48971632664_dp,&
+ 57759.22356371914_dp, 0.3342213065985371_dp, 0.3737907231275688_dp, 0.45881732537071723_dp, 0.601819261468133_dp, 0.8237789857593867_dp, 1.1575413887012014_dp,&
+ 1.6533971399634884_dp, 2.3878799654780147_dp, 3.4775169315434225_dp, 5.100383812329383_dp, 7.530103230545625_dp, 11.189861262594912_dp, 16.738922378384462_dp,&
+ 25.212398544065515_dp, 38.249144800530594_dp, 58.46701561201135_dp, 90.0873039981285_dp, 139.9857380571293_dp, 219.48397400182492_dp, 347.4492001516725_dp,&
+ 555.763013631551_dp, 899.2679993238643_dp, 1474.9019487688392_dp, 2462.9199651441854_dp, 4236.78509184323_dp, 7766.730019457065_dp, 16842.450828736164_dp, 62648.76273159001_dp]
+ aw%aw_erange_matrix(:, 15) = [0.1678624984386396_dp, 0.5240039277065677_dp, 0.9445413343768262_dp, 1.4832899296027031_dp, 2.2119941166231323_dp, 3.231318139361639_dp,&
+ 4.686840531125701_dp, 6.793101100181927_dp, 9.870359826324044_dp, 14.401421486392543_dp, 21.120311419307942_dp, 31.151884233378865_dp, 46.23355566119178_dp,&
+ 69.07063891977168_dp, 103.9111329114676_dp, 157.48467618090592_dp, 240.55243987990312_dp, 370.4940225061482_dp, 575.6771054267826_dp, 902.9360411163456_dp,&
+ 1430.5655099944815_dp, 2291.326618763138_dp, 3714.3291401860997_dp, 6105.216711407023_dp, 10216.855593912702_dp, 17602.252858531945_dp, 32376.971831996485_dp,&
+ 73939.47243943921_dp, 0.3390761234013535_dp, 0.38042748095334855_dp, 0.46948517950905133_dp, 0.6197911244215307_dp, 0.8541350450818376_dp, 1.2083859869249218_dp,&
+ 1.737819635649183_dp, 2.5271580680576275_dp, 3.7063925373131634_dp, 5.475812712926834_dp, 8.145864684746673_dp, 12.201123189749161_dp, 18.403853838774207_dp,&
+ 27.96322210175245_dp, 42.81450321088113_dp, 66.08467665891509_dp, 102.87759879730325_dp, 161.61423975462415_dp, 256.35102809823303_dp, 410.8517040007441_dp,&
+ 665.8762082773686_dp, 1092.5932138672465_dp, 1818.4906655133614_dp, 3082.6261009452624_dp, 5379.192173747507_dp, 9973.306180469173_dp, 21737.4521360814_dp, 80688.08263620315_dp]
+ aw%aw_erange_matrix(:, 16) = [0.17036496307430077_dp, 0.5324663182632273_dp, 0.9620895318113227_dp, 1.516053047783045_dp, 2.2706890746569957_dp, 3.333970091290067_dp,&
+ 4.863327619652776_dp, 7.092693187729123_dp, 10.374220724548097_dp, 15.243403064520715_dp, 22.521699980194235_dp, 33.47979649400302_dp, 50.09973367935207_dp,&
+ 75.49983243992041_dp, 114.63042911159955_dp, 175.42509396717406_dp, 270.7269739485002_dp, 421.55091333978646_dp, 662.6791216153256_dp, 1052.3953320146977_dp,&
+ 1689.6875070139436_dp, 2745.231543799062_dp, 4518.674628346486_dp, 7549.367766712861_dp, 12851.219414149484_dp, 22522.974006977485_dp, 42073.064211266406_dp,&
+ 97154.3497922795_dp, 0.3442359726520383_dp, 0.38754007185862954_dp, 0.4810326806451499_dp, 0.6394198647471336_dp, 0.8875587091716534_dp, 1.2648037235106746_dp,&
+ 1.8322244813392865_dp, 2.684145960116962_dp, 3.966500195829279_dp, 5.906140569869111_dp, 8.858010554137483_dp, 13.381685635639329_dp, 20.36673130214467_dp,&
+ 31.24005706702999_dp, 48.31255482932005_dp, 75.36517063974274_dp, 118.6518389635584_dp, 188.6382478887288_dp, 303.059337317903_dp, 492.38182357709826_dp,&
+ 809.7503916539654_dp, 1349.5688287135445_dp, 2283.7129470839764_dp, 3938.318929170714_dp, 6988.303443289154_dp, 13136.528535241805_dp, 28826.90535778617_dp, 106792.5668680263_dp]
+ aw%aw_erange_matrix(:, 17) = [0.17269556592412857_dp, 0.5403748964029321_dp, 0.9785852679690707_dp, 1.5470653817948434_dp, 2.3266514376923366_dp, 3.4325577583865416_dp,&
+ 5.0340686756366715_dp, 7.384684578834457_dp, 10.86904453036137_dp, 16.076821539981736_dp, 23.92028394592648_dp, 35.82315617144631_dp, 54.02701058174775_dp,&
+ 82.09339856008381_dp, 125.73557580722034_dp, 194.2117754907147_dp, 302.6873267691643_dp, 476.2910454873438_dp, 757.1780279061045_dp, 1217.01315551735_dp,&
+ 1979.4070403165824_dp, 3261.0324543098973_dp, 5448.912148191038_dp, 9251.68321181564_dp, 16020.743424436212_dp, 28570.382753480066_dp, 54229.78154218437_dp,&
+ 126696.56228762324_dp, 0.3490457636631589_dp, 0.39422579301772903_dp, 0.49199588231797214_dp, 0.6582220201025798_dp, 0.9198335281974843_dp, 1.3197051837498925_dp,&
+ 1.9248079614290126_dp, 2.839336845230337_dp, 4.225765459102832_dp, 6.338790677137095_dp, 9.580492391710184_dp, 14.590781522893115_dp, 22.39718076042754_dp,&
+ 34.665500315997214_dp, 54.12415292925981_dp, 85.29113057050759_dp, 135.73577535381042_dp, 218.29950108939332_dp, 355.0638815393454_dp, 584.5607922611614_dp,&
+ 975.1302787959035_dp, 1650.2897030531005_dp, 2838.7772270165033_dp, 4980.693094157311_dp, 8991.001468037319_dp, 17151.64888313862_dp, 37936.68288424044_dp, 140330.3757792011_dp]
+ aw%aw_erange_matrix(:, 18) = [0.17476493191141415_dp, 0.5474193940515534_dp, 0.9933573948794411_dp, 1.5750134784958338_dp, 2.3774182245590976_dp, 3.5225875266569684_dp,&
+ 5.191031053231731_dp, 7.65493753438325_dp, 11.330235095244555_dp, 16.85924390942949_dp, 25.24328503055809_dp, 38.05761248430254_dp, 57.80337969002844_dp,&
+ 88.49020666120597_dp, 136.61135242458343_dp, 212.79570615428042_dp, 334.6422749519929_dp, 531.6505866599738_dp, 853.9241940929868_dp, 1387.782907449122_dp,&
+ 2284.2677480183024_dp, 3812.2510844331973_dp, 6459.925409369088_dp, 11136.186670622694_dp, 19600.27283250913_dp, 35545.19130000765_dp, 68536.45729392112_dp,&
+ 161999.07322111004_dp, 0.35331994251863175_dp, 0.4002125878121666_dp, 0.5019021590207834_dp, 0.675348992397178_dp, 0.9494484180546069_dp, 1.370438471536318_dp,&
+ 2.010972421797265_dp, 2.984828447386733_dp, 4.47068346087602_dp, 6.7507629145842705_dp, 10.274207336138101_dp, 15.761962819310062_dp, 24.382228769987734_dp,&
+ 38.04723731915354_dp, 59.92133877283344_dp, 95.30210365832416_dp, 153.1695274726372_dp, 248.9507054460044_dp, 409.5337510421667_dp, 682.5234878783859_dp,&
+ 1153.6752246200758_dp, 1980.5529864545388_dp, 3459.8436855153436_dp, 6170.831685857496_dp, 11326.739601304256_dp, 21929.575378095506_dp, 48923.087093047834_dp, 180801.94440922138_dp]
+ aw%aw_erange_matrix(:, 19) = [0.17707349703529857_dp, 0.5553034658173043_dp, 1.0099791730991756_dp, 1.6066610726001294_dp, 2.4352859938075695_dp, 3.6258937322871367_dp,&
+ 5.372347774805723_dp, 7.969256176272777_dp, 11.870406472074928_dp, 17.78239069764118_dp, 26.81626145155005_dp, 40.73582235231918_dp, 62.36857184593184_dp,&
+ 96.29361499410518_dp, 150.00711005408417_dp, 235.9221311383991_dp, 374.8476146182405_dp, 602.1299577709411_dp, 978.6687811138307_dp, 1611.0196047848676_dp,&
+ 2688.7838466688286_dp, 4555.662141059458_dp, 7848.009593576401_dp, 13774.881010275332_dp, 24721.57253813353_dp, 45756.96334453548_dp, 89961.78780041506_dp,&
+ 215802.3342656405_dp, 0.3580921418111161_dp, 0.40694849130748023_dp, 0.5131489467923581_dp, 0.6949501550098907_dp, 0.9835895138470994_dp, 1.429340141748686_dp,&
+ 2.1117265083379655_dp, 3.156213050221744_dp, 4.761412846546327_dp, 7.243742288102652_dp, 11.111375537133872_dp, 17.187982478782033_dp, 26.82207794053154_dp,&
+ 42.2454800002888_dp, 67.19501324394297_dp, 108.0057380925622_dp, 175.56201559076507_dp, 288.83560003555107_dp, 481.41389562366794_dp, 813.7768209755345_dp,&
+ 1396.8818687993016_dp, 2438.628712875254_dp, 4338.525137576797_dp, 7891.642771451579_dp, 14783.538737749648_dp, 29163.479733223845_dp, 65827.4645722146_dp, 243179.26518144744_dp]
+ aw%aw_erange_matrix(:, 20) = [0.17939121623291196_dp, 0.5632460962554191_dp, 1.0268207360191903_dp, 1.6389441207178375_dp, 2.494730975718965_dp, 3.732765899075506_dp,&
+ 5.561259778907539_dp, 8.299124280524993_dp, 12.441566280835362_dp, 18.766165667383223_dp, 28.506386171958923_dp, 43.638584384879934_dp, 67.36224738878316_dp,&
+ 104.91328976480246_dp, 164.9591150046168_dp, 262.0244972943479_dp, 420.7723136732652_dp, 683.6778754860417_dp, 1125.0251624529246_dp, 1876.914526701929_dp,&
+ 3178.594976788772_dp, 5472.221732744173_dp, 9593.809960559516_dp, 17167.666568195575_dp, 31469.64998425534_dp, 59575.37273864424_dp, 119738.62770948543_dp,&
+ 292181.0961057968_dp, 0.36288753563601406_dp, 0.4137727803438694_dp, 0.5246525197888982_dp, 0.7151692528977265_dp, 1.0190794875976732_dp, 1.4910294440355354_dp,&
+ 2.2180532993489983_dp, 3.3385033549868535_dp, 5.073189714925689_dp, 7.776982900408857_dp, 12.025161831532559_dp, 18.759485999109437_dp, 29.538246648034107_dp,&
+ 46.969812152842266_dp, 75.47470761821671_dp, 122.64510922855702_dp, 201.70899555206492_dp, 336.0740868831789_dp, 567.8651913799991_dp, 974.2972338202875_dp,&
+ 1699.8017696089582_dp, 3020.746535916867_dp, 5480.209144976741_dp, 10183.145007147052_dp, 19511.673781213012_dp, 39328.72129742758_dp, 90071.79118231079_dp, 332938.41349157074_dp]
+ aw%aw_erange_matrix(:, 21) = [0.18145787532761345_dp, 0.5703516980411364_dp, 1.041969987100468_dp, 1.668169762478659_dp, 2.548905102202213_dp, 3.8308153868700057_dp,&
+ 5.73575077606394_dp, 8.605924764080692_dp, 12.976605854940628_dp, 19.694664135422833_dp, 30.114196205027547_dp, 46.4231488999098_dp, 72.19529201520032_dp,&
+ 113.33495114684222_dp, 179.71600233232834_dp, 288.0668684898181_dp, 467.1287314532969_dp, 767.0353863539326_dp, 1276.6863337842099_dp, 2156.5782398644915_dp,&
+ 3702.2394624534754_dp, 6469.865405622618_dp, 11532.348640847953_dp, 21019.959826658564_dp, 39325.54785388118_dp, 76112.75783759716_dp, 156400.96081191118_dp,&
+ 388429.5049686922_dp, 0.3671671269112481_dp, 0.41991063535051504_dp, 0.5350925824270352_dp, 0.7336661302058223_dp, 1.051784230902112_dp, 1.5482836110025917_dp,&
+ 2.31745277890254_dp, 3.510201538782171_dp, 5.369167048208645_dp, 8.287401135959756_dp, 12.907497398486063_dp, 20.29096603628255_dp, 32.211289400182395_dp,&
+ 51.667875628946675_dp, 83.80064093288466_dp, 137.54326768587123_dp, 228.6628977463769_dp, 385.45278105561033_dp, 659.609584732442_dp, 1147.48083087963_dp,&
+ 2032.5976860626631_dp, 3673.224580494971_dp, 6788.760553221407_dp, 12875.900072438904_dp, 25223.35236302233_dp, 51966.7592745666_dp, 120920.32428947231_dp, 447736.17541344964_dp]
+ aw%aw_erange_matrix(:, 22) = [0.18352365749998711_dp, 0.5774767415391759_dp, 1.0572402465072317_dp, 1.6978091130093156_dp, 2.604194412635273_dp, 3.931521110681753_dp,&
+ 5.916123772874016_dp, 8.925163169995924_dp, 13.537158542380958_dp, 20.674441611900086_dp, 31.823697567083265_dp, 49.40770243187122_dp, 77.4199205005401_dp,&
+ 122.5224666728988_dp, 195.97318566547537_dp, 317.0604624119025_dp, 519.3281914726538_dp, 862.0631903466981_dp, 1451.9161062243747_dp, 2484.485489661112_dp,&
+ 4326.234527544991_dp, 7680.233304404955_dp, 13931.912588144245_dp, 25897.50172535608_dp, 49530.68109870176_dp, 98224.55152386216_dp, 206939.49053745338_dp,&
+ 524566.9562885154_dp, 0.3714484036559812_dp, 0.4260967455633218_dp, 0.5457049480928435_dp, 0.7526107268819361_dp, 1.085512849361448_dp, 1.6077308109599637_dp,&
+ 2.421373349769565_dp, 3.690999486571998_dp, 5.683179798418424_dp, 8.83322260839823_dp, 13.858958047223895_dp, 21.957146639909727_dp, 35.147034069885805_dp,&
+ 56.87996069901934_dp, 93.13791144680825_dp, 154.44652085662315_dp, 259.63116034555344_dp, 442.9649858732788_dp, 768.0687208011793_dp, 1355.5892058006805_dp,&
+ 2439.7899569103974_dp, 4487.76072780871_dp, 8459.538519483716_dp, 16402.660399711818_dp, 32921.61554906603_dp, 69533.14758216766_dp, 164947.39394785516_dp, 612800.2731138045_dp]
+ aw%aw_erange_matrix(:, 23) = [0.1865127174002091_dp, 0.5878264119237888_dp, 1.0795642254870847_dp, 1.7414647079050736_dp, 2.686262513059428_dp, 4.082172829391877_dp,&
+ 6.188096843488031_dp, 9.410456034264666_dp, 14.396547620814117_dp, 22.190018755083887_dp, 34.49317521293508_dp, 54.11536762065149_dp, 85.74999790790363_dp,&
+ 137.3406746169067_dp, 222.5209261857046_dp, 365.04500319056837_dp, 606.9830522872659_dp, 1024.1840598017022_dp, 1756.0972227796592_dp, 3064.6905800265477_dp,&
+ 5454.026428632921_dp, 9920.369530831516_dp, 18493.617558448037_dp, 35457.83700573299_dp, 70250.70208206157_dp, 144978.57163654402_dp, 318662.0049240475_dp,&
+ 837598.2931640423_dp, 0.3776493979310916_dp, 0.435138768215793_dp, 0.5613788375562351_dp, 0.7808493636204112_dp, 1.1362155303193089_dp, 1.6978417615255126_dp,&
+ 2.5802450840754427_dp, 3.9698657023594675_dp, 6.172064932079413_dp, 9.69144120022167_dp, 15.370728380706238_dp, 24.634198247900454_dp, 39.92036731837176_dp,&
+ 65.46330289853823_dp, 108.72733676148118_dp, 183.09024363050807_dp, 312.9622216519181_dp, 543.7670826405075_dp, 961.8761857704002_dp, 1735.4901623013577_dp,&
+ 3201.003196409115_dp, 6051.665762920312_dp, 11766.014824513828_dp, 23628.41759091035_dp, 49336.106221828624_dp, 108694.3328979675_dp, 267237.7291173849_dp, 1002021.1700926761_dp]
+ aw%aw_erange_matrix(:, 24) = [0.18910898992309827_dp, 0.5968553778314455_dp, 1.099179600396227_dp, 1.7801437973508598_dp, 2.7596026949493577_dp, 4.217972884397996_dp,&
+ 6.435421861591648_dp, 9.855784799002635_dp, 15.192663835695727_dp, 23.608087390187727_dp, 37.01748316805854_dp, 58.61754075464745_dp, 93.81326580419346_dp,&
+ 151.87161660723567_dp, 248.92100011282085_dp, 413.49172640188107_dp, 696.9547246299024_dp, 1193.621061792798_dp, 2080.3822432854854_dp, 3696.998493291677_dp,&
+ 6713.636172345608_dp, 12492.44299238403_dp, 23898.55659235671_dp, 47203.17808379973_dp, 96805.96561293019_dp, 207957.8998427237_dp, 477933.1522768045_dp,&
+ 1308114.0012041177_dp, 0.3830416352614052_dp, 0.4430819114148896_dp, 0.5753071318246739_dp, 0.8061988913511784_dp, 1.182158486497417_dp, 1.7802506103346156_dp,&
+ 2.726920016454761_dp, 4.229882717633601_dp, 6.632680284308672_dp, 10.509000784328796_dp, 16.82784984813855_dp, 27.24691097632485_dp, 44.64167580356611_dp,&
+ 74.07592303550199_dp, 124.61429974186086_dp, 212.77537227876334_dp, 369.25379542370973_dp, 652.3218043365148_dp, 1175.259654699904_dp, 2164.1710677218566_dp,&
+ 4083.922692671305_dp, 7922.927093368247_dp, 15865.524351752772_dp, 32963.81111451602_dp, 71590.44785506214_dp, 164831.2803483035_dp, 422312.83970923733_dp, 1607194.846517409_dp]
+ aw%aw_erange_matrix(:, 25) = [0.19132297837375925_dp, 0.6045842212401715_dp, 1.116075239909931_dp, 1.8137003319341403_dp, 2.823703852560562_dp, 4.3375571365379555_dp,&
+ 6.654879506061997_dp, 10.25406160102038_dp, 15.910566848875042_dp, 24.8980512789274_dp, 39.33518360062533_dp, 62.79250184241327_dp, 101.37073372724154_dp,&
+ 165.64870251297975_dp, 274.26536197966556_dp, 460.63593723457706_dp, 785.8148240324404_dp, 1363.7143426301643_dp, 2411.848280798477_dp, 4356.437870983105_dp,&
+ 8057.345689393333_dp, 15307.674322294604_dp, 29991.967793708438_dp, 60909.637552873915_dp, 129092.68815909834_dp, 288420.9208707836_dp, 693804.4807934643_dp,&
+ 1984726.5657356782_dp, 0.38764444414599436_dp, 0.4499221966702515_dp, 0.5874206914731522_dp, 0.8284384818447332_dp, 1.2227914287059967_dp, 1.8537196608025412_dp,&
+ 2.858764193877508_dp, 4.46563291856233_dp, 7.054128800394659_dp, 11.264308056241072_dp, 18.18795719360849_dp, 29.712689970242995_dp, 49.150504691840844_dp,&
+ 82.40656726563064_dp, 140.1950401391153_dp, 242.32987003504195_dp, 426.2290660460464_dp, 764.2086384943232_dp, 1399.6697911963972_dp, 2625.280715869226_dp,&
+ 5058.106540783201_dp, 10048.454253234977_dp, 20681.146673725165_dp, 44371.40116757773_dp, 100098.51304747425_dp, 240936.64519318528_dp, 645993.0255202315_dp, 2511145.760363479_dp]
+ aw%aw_erange_matrix(:, 26) = [0.19436594608582472_dp, 0.6152519388154075_dp, 1.1395565637382394_dp, 1.860708304267537_dp, 2.914238339347287_dp, 4.507855666735311_dp,&
+ 6.970054206984331_dp, 10.831076997871907_dp, 16.960267570555793_dp, 26.802718362766388_dp, 42.793217314755324_dp, 69.09173097076558_dp, 112.91204543512235_dp,&
+ 186.9652299761567_dp, 314.0415178600245_dp, 535.7867637150474_dp, 929.9119488429988_dp, 1644.8265501191415_dp, 2971.387935288634_dp, 5496.481343756791_dp,&
+ 10444.205167643195_dp, 20466.948914951925_dp, 41573.49202713281_dp, 88115.73197659155_dp, 196655.41477188517_dp, 468312.0718363519_dp, 1218658.020501648_dp,&
+ 3790777.501461529_dp, 0.39397762301074635_dp, 0.4594261340249453_dp, 0.6044348272087624_dp, 0.8599749829785104_dp, 1.2809242553853217_dp, 1.959763999342232_dp,&
+ 3.0508139495699504_dp, 4.812352417460658_dp, 7.680299553389941_dp, 12.398744349822774_dp, 20.2545889010679_dp, 33.50625966016763_dp, 56.1810053198472_dp,&
+ 95.58665349028226_dp, 165.23942057994483_dp, 290.66767214215037_dp, 521.2161338636482_dp, 954.7499892270533_dp, 1791.0386147663526_dp, 3451.3628492991857_dp,&
+ 6857.78940921672_dp, 14117.121205871057_dp, 30292.355037472884_dp, 68308.93744588633_dp, 163720.9776403595_dp, 424479.54068993696_dp, 1238540.16298379_dp,&
+ 5075528.538071685_dp]
+ aw%aw_erange_matrix(:, 27) = [0.19682681061058516_dp, 0.6239175967168831_dp, 1.1587697829037367_dp, 1.899493134270955_dp, 2.9895781441779548_dp, 4.650804912675836_dp,&
+ 7.236967535355107_dp, 11.324261660542758_dp, 17.866223883633104_dp, 28.463640303603217_dp, 45.84226954217273_dp, 74.71248548146892_dp, 123.3437137988759_dp,&
+ 206.5036090144391_dp, 351.0605506141016_dp, 606.9104628799121_dp, 1068.8355016906876_dp, 1921.4860373237475_dp, 3534.938103259401_dp, 6675.151370185142_dp,&
+ 12987.084625450672_dp, 26158.425843963676_dp, 54887.04107632314_dp, 120986.04511920984_dp, 283491.0124779256_dp, 718729.5124126623_dp, 2032037.8454332922_dp,&
+ 6994905.371452202_dp, 0.39910525153739623_dp, 0.46720011780848775_dp, 0.618510057951796_dp, 0.8863247571224414_dp, 1.3299488054374997_dp, 2.050026502879363_dp,&
+ 3.21586179306573_dp, 5.113357675674665_dp, 8.229788884254283_dp, 13.40574530515295_dp, 22.111763971910367_dp, 36.960758258119995_dp, 62.6753790751042_dp,&
+ 107.95244981242995_dp, 189.13916327630196_dp, 337.6660556617939_dp, 615.5008714320224_dp, 1148.2967230500535_dp, 2199.040277147706_dp, 4338.370096055334_dp,&
+ 8857.05088458885_dp, 18820.230015785593_dp, 41940.375294296646_dp, 99039.96110832106_dp, 251532.47511127745_dp, 702946.2892638468_dp, 2257925.6950304266_dp, 10050972.42119658_dp]
+ aw%aw_erange_matrix(:, 28) = [0.20028753559878754_dp, 0.636163845466183_dp, 1.1861370761903154_dp, 1.9552398102278608_dp, 3.0988787201672205_dp, 4.860155327990237_dp,&
+ 7.631666931241998_dp, 12.060973589284364_dp, 19.234093080159262_dp, 31.000249030237566_dp, 50.55650397769404_dp, 83.5192836105384_dp, 139.92647812445165_dp,&
+ 238.0575763348749_dp, 411.8925953402226_dp, 726.0520810993172_dp, 1306.5848049114_dp, 2406.4753954062408_dp, 4550.1807639341105_dp, 8866.114556558668_dp,&
+ 17889.50386772233_dp, 37615.62178522411_dp, 83127.72557060457_dp, 195408.6566631889_dp, 497429.1250321897_dp, 1411467.9993363773_dp, 4708143.792268462_dp,&
+ 20982067.79050034_dp, 0.4063254337661295_dp, 0.47826913702275475_dp, 0.6387969282983723_dp, 0.9247131283500699_dp, 1.4020945643989537_dp, 2.1842105605751816_dp,&
+ 3.4638219546199718_dp, 5.570645148922087_dp, 9.074555435905518_dp, 14.97371681097282_dp, 25.043435353654875_dp, 42.49539020969764_dp, 73.2495448121482_dp,&
+ 128.4448601273465_dp, 229.52203941450034_dp, 418.8057941608578_dp, 782.2389088299047_dp, 1499.9808360221182_dp, 2963.6575509358563_dp, 6060.980474110256_dp,&
+ 12905.219416347047_dp, 28829.611589852855_dp, 68285.64328511298_dp, 174085.66633020202_dp, 488713.1004068534_dp, 1569108.161138_dp, 6194788.779558858_dp, 36612022.104547605_dp]
+ aw%aw_erange_matrix(:, 29) = [0.20148359962188625_dp, 0.6404126846191118_dp, 1.1956914499421463_dp, 1.9748404662282764_dp, 3.1375902789765524_dp, 4.934852000261182_dp,&
+ 7.773570595927496_dp, 12.327952344136781_dp, 19.733992303134418_dp, 31.935665896373646_dp, 52.31190662715458_dp, 86.8332262967865_dp, 146.23818287831133_dp,&
+ 250.21865465340818_dp, 435.66229015608553_dp, 773.3205522921141_dp, 1402.527891101972_dp, 2605.9768107615196_dp, 4977.008179815615_dp, 9810.671652583082_dp,&
+ 20066.047813611207_dp, 42883.66712086875_dp, 96680.36874016587_dp, 233103.28859658248_dp, 613776.5842567491_dp, 1827984.087654119_dp, 6594610.0314337425_dp,&
+ 34505523.772945166_dp, 0.4088233220420713_dp, 0.48213225469004667_dp, 0.6459447763036226_dp, 0.9383525242997238_dp, 1.427930574234908_dp, 2.232645680425932_dp,&
+ 3.5540692271124623_dp, 5.738543059876525_dp, 9.387632026047086_dp, 15.56066926581158_dp, 26.1527798090333_dp, 44.61430119999274_dp, 77.34960393660401_dp,&
+ 136.50197172084523_dp, 245.64488988592876_dp, 451.7568092688549_dp, 851.2535497022337_dp, 1648.713481816509_dp, 3295.0758202094717_dp, 6829.19231168343_dp,&
+ 14772.00579885476_dp, 33634.6146271831_dp, 81574.2303691521_dp, 214402.9977956818_dp, 627349.5338890508_dp, 2140772.611660053_dp, 9364952.860952146_dp, 68700022.28914484_dp]
+ case(30)
+ aw%energy_range(:) = [2906.0_dp, 3236.0_dp, 3810.0_dp, 4405.0_dp, 5400.0_dp, 6800.0_dp, 8400.0_dp,&
+ 10000.0_dp, 12000.0_dp, 15000.0_dp, 20000.0_dp, 28000.0_dp, 38000.0_dp, 50000.0_dp, 64000.0_dp, 84000.0_dp,&
+ 110000.0_dp, 160000.0_dp, 220000.0_dp, 370000.0_dp, 520000.0_dp, 700000.0_dp, 1100000.0_dp, 1800000.0_dp,&
+ 3300000.0_dp, 6000000.0_dp, 18000000.0_dp, 50000000.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.13472077973006066_dp, 0.41454012407362284_dp, 0.7264650127115554_dp, 1.0952103821233763_dp, 1.5507340744641087_dp, 2.1309684610148_dp,&
+ 2.8853353291317902_dp, 3.879435757744625_dp, 5.201430031729745_dp, 6.970811684768931_dp, 9.350560848436539_dp, 12.564071001580649_dp, 16.918834424102887_dp,&
+ 22.83972781830551_dp, 30.915985544342572_dp, 41.967774219335894_dp, 57.14098640727171_dp, 78.0429357516686_dp, 106.93789608418125_dp, 147.0314580515426_dp,&
+ 202.88978553122783_dp, 281.07180694626186_dp, 391.1193573348081_dp, 547.2093677381681_dp, 771.1975057919235_dp, 1099.0536535908907_dp, 1596.9929628828843_dp,&
+ 2411.043015679036_dp, 3969.4542024452535_dp, 8410.91429702379_dp, 0.2711551412973589_dp, 0.2920716478256109_dp, 0.33586025075301174_dp, 0.40657866325776965_dp,&
+ 0.5107331186087983_dp, 0.6578956545676304_dp, 0.8616669035192411_dp, 1.141083396755036_dp, 1.5226214332468109_dp, 2.0430277403045745_dp, 2.7533146911523487_dp,&
+ 3.7244090770834286_dp, 5.055161408861251_dp, 6.883741530882366_dp, 9.403917834043737_dp, 12.888423735149207_dp, 17.72269370396895_dp, 24.453949230243484_dp,&
+ 33.86342292727139_dp, 47.07450697595598_dp, 65.71944005664618_dp, 92.20885123968911_dp, 130.2022391295589_dp, 185.52477786139306_dp, 268.21783125503725_dp,&
+ 397.8749440116057_dp, 619.9912456625073_dp, 1067.5959324975324_dp, 2286.544806677275_dp, 8738.901002766614_dp]
+ aw%aw_erange_matrix(:, 2) = [0.13585569926755156_dp, 0.41821529920891193_dp, 0.7335359382994969_dp, 1.1072550786213582_dp, 1.5703001886119063_dp, 2.1619633106722445_dp,&
+ 2.9336148368913126_dp, 3.9536785393619445_dp, 5.3144254385553475_dp, 7.141352466099918_dp, 9.606222474304257_dp, 12.945295441239312_dp, 17.484938603694847_dp,&
+ 23.67775987140482_dp, 32.153806670690884_dp, 43.793428768676115_dp, 59.83145780414573_dp, 82.00695648247473_dp, 112.7798752913388_dp, 155.64727131571763_dp,&
+ 215.6109099360864_dp, 299.8834977532089_dp, 418.99426494865514_dp, 588.6278555996877_dp, 832.992868332105_dp, 1191.901753683428_dp, 1738.4527532218908_dp,&
+ 2633.334968802445_dp, 4346.804005514949_dp, 9226.029101357823_dp, 0.27346932244426364_dp, 0.29493396442164976_dp, 0.3399080685990791_dp, 0.4126376624973753_dp,&
+ 0.5199403220488905_dp, 0.6718660354991877_dp, 0.8827295318060852_dp, 1.1726225736322562_dp, 1.5695736101023368_dp, 2.11260882730488_dp, 2.8560883332106437_dp,&
+ 3.8758604781327994_dp, 5.278022513223343_dp, 7.211435940783844_dp, 9.88567929424256_dp, 13.596923594598676_dp, 18.765442234455477_dp, 25.990394261374576_dp,&
+ 36.130687740769254_dp, 50.42631140632084_dp, 70.68536095476419_dp, 99.58565375015075_dp, 141.19809034005954_dp, 201.9985700024835_dp, 293.1161927876947_dp,&
+ 436.16688367969607_dp, 681.1401603164769_dp, 1173.9561106510982_dp, 2513.427330670278_dp, 9596.45252078042_dp]
+ aw%aw_erange_matrix(:, 3) = [0.1375558839742156_dp, 0.4237299246561157_dp, 0.7441765936480988_dp, 1.1254465790607633_dp, 1.599969145991199_dp, 2.209153355047187_dp,&
+ 3.007419074036812_dp, 4.067629377796827_dp, 5.488551916391047_dp, 7.4052176805776915_dp, 10.003405965567303_dp, 13.540012927877152_dp, 18.37183281919031_dp,&
+ 24.996410070481446_dp, 34.11028053997399_dp, 46.692377235692085_dp, 64.1240439733692_dp, 88.36264595714124_dp, 122.19431621878961_dp, 169.60498916584984_dp,&
+ 236.33171640990545_dp, 330.6978635702647_dp, 464.9206246434375_dp, 657.2768359572758_dp, 936.038129172727_dp, 1347.6645495728708_dp, 1977.1418257598443_dp,&
+ 3010.365247643635_dp, 4989.502375747524_dp, 10618.098959488718_dp, 0.2769375636736402_dp, 0.2992417954352494_dp, 0.3460350190138061_dp, 0.4218590106585124_dp,&
+ 0.5340215517074247_dp, 0.6933277649140891_dp, 0.9152251840626363_dp, 1.221486913213276_dp, 1.642626003597483_dp, 2.2213351486133592_dp, 3.0173862657746264_dp,&
+ 4.114624855968743_dp, 5.630986359973453_dp, 7.732893888537386_dp, 10.656041641143203_dp, 14.735541137742192_dp, 20.449897303637602_dp, 28.485619304084782_dp,&
+ 39.83308706520946_dp, 55.9309260308313_dp, 78.88877991500787_dp, 111.84546669541834_dp, 159.5854467970953_dp, 229.71687105279605_dp, 335.26062431596165_dp,&
+ 501.33247053904597_dp, 785.6426382482606_dp, 1356.1465778665718_dp, 2902.1064912290262_dp, 11063.595563099649_dp]
+ aw%aw_erange_matrix(:, 4) = [0.13904406912216055_dp, 0.4285658262322887_dp, 0.7535381269110286_dp, 1.1415170467922802_dp, 1.6262961987891298_dp, 2.251219295815267_dp,&
+ 3.073508947298677_dp, 4.170131059288361_dp, 5.64589044652921_dp, 7.644726401563794_dp, 10.365587059435269_dp, 14.084865660094467_dp, 19.18826867042609_dp,&
+ 26.216290635576655_dp, 35.929400137120936_dp, 49.401912630111426_dp, 68.15783436974851_dp, 94.36850091147679_dp, 131.14193494596577_dp, 182.94990655704783_dp,&
+ 256.26545423428075_dp, 360.5318037841861_dp, 509.6803886172214_dp, 724.6381601758845_dp, 1037.8525105472484_dp, 1502.6329781048792_dp, 2216.1957399484836_dp,&
+ 3390.239707940744_dp, 5640.184567731188_dp, 12031.914357631216_dp, 0.2799747756857045_dp, 0.3030322366372613_dp, 0.35146079871870245_dp, 0.4300750514997268_dp,&
+ 0.5466362705834609_dp, 0.7126509028520336_dp, 0.9446233777431962_dp, 1.265903264001014_dp, 1.7093454326345185_dp, 2.3211172345101936_dp, 3.1661481858067866_dp,&
+ 4.3359496851147625_dp, 5.959873147875833_dp, 8.221381778008848_dp, 11.381671588892244_dp, 15.81412949615409_dp, 22.054886195529974_dp, 30.877498691173102_dp,&
+ 43.404310509478876_dp, 61.27480112850241_dp, 86.90579792265169_dp, 123.90910951709412_dp, 177.80590692076998_dp, 257.378170487146_dp, 377.6084511567668_dp,&
+ 567.2233674632031_dp, 891.8325474154066_dp, 1541.8004917177743_dp, 3298.2637895129933_dp, 12556.72637834854_dp]
+ aw%aw_erange_matrix(:, 5) = [0.1410960680209205_dp, 0.43524771510986004_dp, 0.7665207024486466_dp, 1.1639061919509923_dp, 1.6631581543024647_dp, 2.3104184708475035_dp,&
+ 3.1669893883276354_dp, 4.31584603104468_dp, 5.870689930586957_dp, 7.98866892968443_dp, 10.88837830270718_dp, 14.875483870146642_dp, 20.379381338093896_dp,&
+ 28.00589822144426_dp, 38.61341811457132_dp, 53.4233672664893_dp, 74.1813854349557_dp, 103.39372381185264_dp, 144.67616311753628_dp, 203.27301335960897_dp,&
+ 286.8373320413796_dp, 406.623030913939_dp, 579.3566390283918_dp, 830.3204498005787_dp, 1198.869283622746_dp, 1749.6835713037394_dp, 2600.2624010801505_dp,&
+ 4004.8623767257905_dp, 6698.999233522065_dp, 14341.174561026246_dp, 0.28416489317358423_dp, 0.30828949437487013_dp, 0.3590402711124012_dp, 0.441630361459561_dp,&
+ 0.5644857180354212_dp, 0.7401452754725963_dp, 0.9866774703026394_dp, 1.329777825854361_dp, 1.8058067012349928_dp, 2.4661647204139823_dp, 3.3835989597835665_dp,&
+ 4.661316876386105_dp, 6.44620592460885_dp, 8.948088111649072_dp, 12.46789325682324_dp, 17.439091025312962_dp, 24.488970722743385_dp, 34.52989393893134_dp,&
+ 48.896371819916574_dp, 69.55355936542944_dp, 99.42066613014704_dp, 142.88959294052594_dp, 206.70580521988288_dp, 301.61265861851626_dp, 445.87454058368684_dp,&
+ 674.2295764664547_dp, 1065.3146704916662_dp, 1846.16967438266_dp, 3948.0236905716197_dp, 15001.510222225108_dp]
+ aw%aw_erange_matrix(:, 6) = [0.1433674220737173_dp, 0.4426628898148459_dp, 0.7809932553639084_dp, 1.1890061029798735_dp, 1.704736489813709_dp, 2.377608587440356_dp,&
+ 3.273747520531666_dp, 4.483286536624551_dp, 6.130604696754322_dp, 8.388821954366914_dp, 11.500472923115659_dp, 15.807168838438361_dp, 21.792381891352697_dp,&
+ 30.143468661033495_dp, 41.842032467696654_dp, 58.29624138024914_dp, 81.53560861416956_dp, 114.49935191584215_dp, 161.4660067158691_dp, 228.69835105975287_dp,&
+ 325.4212244904479_dp, 465.3259909564963_dp, 668.9419565107365_dp, 967.5375179808443_dp, 1410.04407287766_dp, 2076.991268832287_dp, 3114.140011343559_dp,&
+ 4834.667209637358_dp, 8139.076115188743_dp, 17497.251222371135_dp, 0.28880597793065726_dp, 0.3141509726409205_dp, 0.3675650580459323_dp, 0.45473435293913267_dp,&
+ 0.5848768476213745_dp, 0.7717685864556612_dp, 1.0353639404508452_dp, 1.40420681219775_dp, 1.9189447923955225_dp, 2.637427383030786_dp, 3.6421108679020224_dp,&
+ 5.050847015942239_dp, 7.032663994123608_dp, 9.830952206979282_dp, 13.797695578641337_dp, 19.444278287883428_dp, 27.51733560480189_dp, 39.112759774672554_dp,&
+ 55.84848632682428_dp, 80.12935385306108_dp, 115.56018244354962_dp, 167.60893912635234_dp, 244.72674037424497_dp, 360.41056089443987_dp, 537.5456031771105_dp,&
+ 819.2944118660395_dp, 1302.3421015152915_dp, 2264.016465253404_dp, 4840.7455216590715_dp, 18353.395351716823_dp]
+ aw%aw_erange_matrix(:, 7) = [0.14540131106958792_dp, 0.4493201231807535_dp, 0.7940459513320671_dp, 1.2117724207523894_dp, 1.742680949975074_dp, 2.4393090166647937_dp,&
+ 3.372391950439403_dp, 4.6389574815944155_dp, 6.373746357911509_dp, 8.76549528730057_dp, 12.080324874755885_dp, 16.69553805190378_dp, 23.14873214645153_dp,&
+ 32.20953897394508_dp, 44.9849668143921_dp, 63.07490757920756_dp, 88.80297222972374_dp, 125.5611681322551_dp, 178.32791033803593_dp, 254.45242267177184_dp,&
+ 364.85390471544207_dp, 525.8798118900401_dp, 762.2489971360726_dp, 1111.8955650866828_dp, 1634.515787335805_dp, 2428.5690684021565_dp, 3671.812768394607_dp,&
+ 5743.738068689888_dp, 9729.027159680023_dp, 20999.800616241264_dp, 0.29296462129985257_dp, 0.3194381187890608_dp, 0.3753221134330865_dp, 0.46675631543264745_dp,&
+ 0.603721438689452_dp, 0.8011914963522677_dp, 1.0809588799458272_dp, 1.4743627941460153_dp, 2.0262889424868957_dp, 2.8010104053825082_dp, 3.8907309938858594_dp,&
+ 5.428124636584_dp, 7.604818108996212_dp, 10.698763243148507_dp, 15.114982641820642_dp, 21.44655967928129_dp, 30.56648418002324_dp, 43.766908758055855_dp,&
+ 62.972012402581825_dp, 91.06685250734347_dp, 132.41339099298463_dp, 193.68120824830095_dp, 285.2463053053247_dp, 423.7403809729896_dp, 637.3320623502533_dp,&
+ 978.785932422185_dp, 1565.1330028308446_dp, 2729.7495636084445_dp, 5836.893913938098_dp, 22085.748007810864_dp]
+ aw%aw_erange_matrix(:, 8) = [0.14704498509396693_dp, 0.4547122051327194_dp, 0.8046596707087634_dp, 1.2303750029956346_dp, 1.7738485727322384_dp, 2.490259810187349_dp,&
+ 3.4542822843702057_dp, 4.768871567754432_dp, 6.577734807920994_dp, 9.08321025306724_dp, 12.572096360608057_dp, 17.453197931663386_dp, 24.312214399521167_dp,&
+ 33.99241851749717_dp, 47.713888969755104_dp, 67.25069977138067_dp, 95.19575945076387_dp, 135.35908014067192_dp, 193.37069282272213_dp, 277.60030747331535_dp,&
+ 400.57327496453024_dp, 581.1788761653216_dp, 848.1843494228331_dp, 1246.0269352662644_dp, 1844.99711942575_dp, 2761.311771739057_dp, 4204.4686241418385_dp,&
+ 6619.444613532952_dp, 11271.466932643574_dp, 24413.71197303721_dp, 0.2963273364593187_dp, 0.32373778596338965_dp, 0.38167760520153354_dp, 0.47667488142293696_dp,&
+ 0.6193657530314871_dp, 0.8257586307206471_dp, 1.1192417599126105_dp, 1.533595893064965_dp, 2.1174318721030514_dp, 2.94070601543572_dp, 4.104305072137064_dp,&
+ 5.7541994984779885_dp, 8.10243649038172_dp, 11.458433528239942_dp, 16.275877851241827_dp, 23.223421109964608_dp, 33.291908731012114_dp, 47.958153257319175_dp,&
+ 69.43709408889302_dp, 101.07403138845517_dp, 147.96365128967585_dp, 217.94992175702825_dp, 323.3082261097551_dp, 483.7891734632719_dp, 732.8442123233287_dp,&
+ 1132.825686861123_dp, 1820.9007070932764_dp, 3185.3327939434785_dp, 6812.567149441103_dp, 25734.79348292465_dp]
+ aw%aw_erange_matrix(:, 9) = [0.14873028953425532_dp, 0.46025228447257244_dp,&
+ 0.815604068464183_dp, 1.249642730565338_dp, 1.806285223311792_dp, 2.5435423302102835_dp, 3.540333750899514_dp, 4.906044230436624_dp, 6.79416292983886_dp,&
+ 9.421954935784605_dp, 13.09904827265635_dp, 18.269242442139955_dp, 25.57201171534198_dp, 35.93349371466727_dp, 50.70186253663502_dp, 71.84990624465202_dp,&
+ 102.27999990001246_dp, 146.28615444437523_dp, 210.25885598550244_dp, 303.76857082731135_dp, 441.24677896342706_dp, 644.626277933146_dp, 947.5662954369608_dp,&
+ 1402.4345459606109_dp, 2092.551420913222_dp, 3156.1169200796808_dp, 4842.013686573819_dp, 7676.179724663517_dp, 13145.496536528115_dp, 28580.5493144719_dp,&
+ 0.2997770495160067_dp, 0.328171810325839_dp, 0.3882763609129264_dp, 0.4870382457606423_dp, 0.6358038475084181_dp, 0.8517074887441279_dp, 1.1598833349774023_dp,&
+ 1.5967979705738689_dp, 2.2151837931186287_dp, 3.0913230528117115_dp, 4.335827775714694_dp, 6.109657533128254_dp, 8.648033701785389_dp, 12.296330771130819_dp,&
+ 17.564247818840375_dp, 25.20806484627957_dp, 36.35635494507822_dp, 52.70347606492981_dp, 76.80980640661534_dp, 112.57226010676658_dp, 165.9717478515792_dp,&
+ 246.28595384282085_dp, 368.1305098723015_dp, 555.1307149475209_dp, 847.33732032532_dp, 1319.0786553040762_dp, 2132.484724545273_dp, 3743.164994620193_dp,&
+ 8008.935958082978_dp, 30201.87390773344_dp]
+ aw%aw_erange_matrix(:, 10) = [0.15074658869167354_dp, 0.4668958035836203_dp, 0.8287813045866178_dp, 1.27295686026729_dp, 1.8457432235406386_dp,&
+ 2.6087085124986893_dp, 3.6461433188342913_dp, 5.0756183993344335_dp, 7.063160044261513_dp, 9.845291593081901_dp, 13.761294933072154_dp, 19.30074127352979_dp,&
+ 27.17394477351595_dp, 38.41701402640067_dp, 54.549426069506936_dp, 77.81182846954663_dp, 111.5272001496651_dp, 160.6530382259186_dp, 232.63167019101493_dp,&
+ 338.7100316718215_dp, 496.0070705705839_dp, 730.7907240768792_dp, 1083.762366034212_dp, 1618.8284659000788_dp, 2438.461166724189_dp, 3713.4370228988228_dp,&
+ 5751.214494532453_dp, 9197.732198940443_dp, 15865.762408736662_dp, 34662.09472159822_dp, 0.3039067430763809_dp, 0.3335109318096939_dp, 0.39628223332684037_dp,&
+ 0.4996995618831505_dp, 0.6560124551532797_dp, 0.8837941444637961_dp, 1.2104228747326704_dp, 1.6758387356208266_dp, 2.338139093731629_dp, 3.2818964868464273_dp,&
+ 4.630558114772758_dp, 6.565010733264908_dp, 9.3515186170747_dp, 13.384001926625498_dp, 19.24839955061762_dp, 27.821277621574968_dp, 40.421935481490465_dp,&
+ 59.048766447593984_dp, 86.74957609916163_dp, 128.20747215218674_dp, 190.67974791015314_dp, 285.53140615722333_dp, 430.82223445682513_dp, 655.9371796248371_dp,&
+ 1010.808613556427_dp, 1587.720772783595_dp, 2585.9493214732233_dp, 4560.104639212192_dp, 9764.47140618184_dp, 36744.78826999934_dp]
+ aw%aw_erange_matrix(:, 11) = [0.15327074211168326_dp, 0.47523666558201105_dp, 0.8454081293698346_dp, 1.302555423844387_dp, 1.8961670213435633_dp, 2.69253915656829_dp,&
+ 3.7831603662440982_dp, 5.296661745560639_dp, 7.416146989170787_dp, 10.404588465380735_dp, 14.642337577033341_dp, 20.682906910118618_dp, 29.33645605992322_dp,&
+ 41.795526321167316_dp, 59.825609960791006_dp, 86.05587769109584_dp, 124.42572946943761_dp, 180.87560328043566_dp, 264.42380444802404_dp, 388.8590073673682_dp,&
+ 575.4255155780847_dp, 857.1327939358282_dp, 1285.7823929714118_dp, 1943.721808327101_dp, 2964.44501552976_dp, 4572.099023467233_dp, 7170.690868688525_dp,&
+ 11603.357270785074_dp, 20212.957283840064_dp, 44452.062155362604_dp, 0.3090804319893144_dp, 0.34024841302588593_dp, 0.40647905218403607_dp, 0.5159643143279251_dp,&
+ 0.6821714531077357_dp, 0.9256259273559609_dp, 1.2767723822584245_dp, 1.7803337442227432_dp, 2.5018545143392776_dp, 3.5375123917367213_dp, 5.028880015326183_dp,&
+ 7.185241661144039_dp, 10.31751858363557_dp, 14.890153020130612_dp, 21.600969658960963_dp, 31.504943516808023_dp, 46.20741046677315_dp, 68.16803820969625_dp,&
+ 101.1831518566797_dp, 151.15859371819528_dp, 227.3632897864881_dp, 344.4976384132564_dp, 526.2026890949384_dp, 811.3228331489025_dp, 1266.1935178202223_dp,&
+ 2013.0176783429627_dp, 3312.4890760215126_dp, 5880.358930845362_dp, 12610.246229383727_dp, 47327.426186591925_dp]
+ aw%aw_erange_matrix(:, 12) = [0.15611582449200168_dp, 0.484670676531795_dp, 0.864327133672447_dp, 1.3364820958197925_dp, 1.95441681134768_dp, 2.7901462861902027_dp,&
+ 3.9439511540731202_dp, 5.558103736628507_dp, 7.836974880015686_dp, 11.076799625053408_dp, 15.710099980914652_dp, 22.372456900097028_dp, 32.00355723960249_dp,&
+ 46.00113943456652_dp, 66.45713829064987_dp, 96.52248517478913_dp, 140.97482131096695_dp, 207.10885220939085_dp, 306.14421022273984_dp, 455.47137403605_dp,&
+ 682.2697601790953_dp, 1029.4036326614776_dp, 1565.1742345818764_dp, 2399.817998955818_dp, 3714.5558190868474_dp, 5816.906307974656_dp, 9263.140996927303_dp,&
+ 15206.919687605141_dp, 26815.704784746697_dp, 59463.77740012989_dp, 0.31491712377093267_dp, 0.3479154795072989_dp, 0.41821106711586165_dp, 0.5348674813300344_dp,&
+ 0.7128490804971861_dp, 0.9750995854659087_dp, 1.3558946548404465_dp, 1.9059877530566083_dp, 2.700404389007717_dp, 3.8502466936019597_dp, 5.520642891704094_dp,&
+ 7.958186966900626_dp, 11.533140951457444_dp, 16.804769365680052_dp, 24.623195574865484_dp, 36.28937749112529_dp, 53.80834509662708_dp, 80.29343692857348_dp,&
+ 120.617438528961_dp, 182.4720644848956_dp, 278.11257974792727_dp, 427.27607514947135_dp, 662.181110971826_dp, 1036.4628530654331_dp, 1642.486743242303_dp,&
+ 2650.295375405498_dp, 4418.177298699454_dp, 7913.127380453787_dp, 17012.044780129974_dp, 63654.92138377425_dp]
+ aw%aw_erange_matrix(:, 13) = [0.1585986414808211_dp, 0.49293227874864953_dp, 0.8809949627642996_dp, 1.3665913620994945_dp, 2.0065154205489626_dp, 2.878132174317013_dp,&
+ 4.090028118330613_dp, 5.797486964911083_dp, 8.225361402603866_dp, 11.702236433624119_dp, 16.71188568127808_dp, 23.971353089725582_dp, 34.550285638470136_dp,&
+ 50.05461492230114_dp, 72.91135545553885_dp, 106.8135350467453_dp, 157.4208108370035_dp, 233.47191953414887_dp, 348.56667909998555_dp, 524.0475847624567_dp,&
+ 793.707794772235_dp, 1211.5739798923714_dp, 1864.96076865716_dp, 2896.8251945846673_dp, 4545.4128751191465_dp, 7219.5552340802415_dp, 11662.784361729111_dp,&
+ 19411.052011165215_dp, 34635.22084899565_dp, 77428.2594678933_dp, 0.32001521125658394_dp, 0.35467076049069735_dp, 0.4286612826978466_dp, 0.5518737641051952_dp,&
+ 0.7406950741154976_dp, 1.020384176642642_dp, 1.4289161118477156_dp, 2.022921463432152_dp, 2.8867554481509226_dp, 4.146355805574743_dp, 5.990514160302193_dp,&
+ 8.703718091097011_dp, 12.717190750178169_dp, 18.688773175675315_dp, 27.628891977363935_dp, 41.10078967616605_dp, 61.541495564791326_dp, 92.78097905404866_dp,&
+ 140.8899743107899_dp, 215.57923784028515_dp, 332.53694700008424_dp, 517.3923979879823_dp, 812.5836504864853_dp, 1289.6958474565083_dp, 2073.21922438688_dp,&
+ 3392.879910503737_dp, 5728.411572233089_dp, 10353.785071731596_dp, 22327.676016416055_dp, 83326.1396670659_dp]
+ aw%aw_erange_matrix(:, 14) = [0.16074983925508995_dp, 0.5001125329781305_dp, 0.895558007331798_dp, 1.3930676119416314_dp, 2.0526395034160516_dp, 2.9565619374491274_dp,&
+ 4.221130086493037_dp, 6.013805694103401_dp, 8.578774475403922_dp, 12.275421409740702_dp, 17.636750591062544_dp, 25.45877687591181_dp, 36.93833585853616_dp,&
+ 53.88713953905948_dp, 79.0668373760298_dp, 116.71771479662618_dp, 173.39998521474163_dp, 259.34441610997936_dp, 390.64111209658677_dp, 592.8223625140175_dp,&
+ 906.7916067039687_dp, 1398.75497341123_dp, 2177.101203426909_dp, 3421.6595296219302_dp, 5436.041196216437_dp, 8747.131818317119_dp, 14319.470865868023_dp,&
+ 24141.727891729002_dp, 43561.727407829894_dp, 98145.10564234719_dp, 0.3244358799675633_dp, 0.36057328739839345_dp, 0.43787941475989645_dp, 0.5670049256958328_dp,&
+ 0.7656628944752096_dp, 1.061285309171881_dp, 1.4953457271663428_dp, 2.130078015174346_dp, 3.0588087175505323_dp, 4.421869344637797_dp, 6.431225106069265_dp,&
+ 9.408834909529705_dp, 13.846816687671257_dp, 20.50252534817982_dp, 30.550011110026805_dp, 45.82334962368959_dp, 69.2111001525887_dp, 105.3018847464044_dp,&
+ 161.45180420057966_dp, 249.56900420929912_dp, 389.13450782321206_dp, 612.3924255583513_dp, 973.4482751978251_dp, 1564.7379361211877_dp, 2548.6891529503337_dp,&
+ 4226.38253248531_dp, 7222.917612404246_dp, 13174.2778180717_dp, 28509.267725054422_dp, 106160.2639173599_dp]
+ aw%aw_erange_matrix(:, 15) = [0.16262039381403579_dp, 0.5063730793021797_dp, 0.9083149017898943_dp, 1.4163907532992552_dp, 2.093511982304147_dp, 3.026477274832255_dp,&
+ 4.338696841349741_dp, 6.208955650732167_dp, 8.899549165899632_dp, 12.798932651615898_dp, 18.486939408625744_dp, 26.835311895791346_dp, 39.16387831263876_dp,&
+ 57.485091296067274_dp, 84.89004001294464_dp, 126.1629602905402_dp, 188.7682361032193_dp, 284.4506192138729_dp, 431.85558174323637_dp, 660.8659291039313_dp,&
+ 1019.8615285065216_dp, 1588.0275062829162_dp, 2496.5319476854356_dp, 3965.666107658971_dp, 6371.910543745203_dp, 10375.825366387413_dp, 17195.468551114795_dp,&
+ 29341.488754297978_dp, 53508.65421134318_dp, 121456.79271852584_dp, 0.3282825301877526_dp, 0.36574392060492084_dp, 0.44602159399289126_dp, 0.5804703376001655_dp,&
+ 0.7880316454913989_dp, 1.0981622518906817_dp, 1.5556172675403404_dp, 2.227923946607758_dp, 3.2169479016852027_dp, 4.676829032127763_dp, 6.84194682233671_dp,&
+ 10.070815237141659_dp, 14.915491370586214_dp, 22.232202221987517_dp, 33.35916502004518_dp, 50.40499220758785_dp, 76.72092077578877_dp, 117.6818705337546_dp,&
+ 181.9923044138381_dp, 283.8951043119145_dp, 446.95633356501054_dp, 710.6481252216735_dp, 1142.0217013584413_dp, 1857.0207285861836_dp, 3061.524750375996_dp,&
+ 5139.401571578885_dp, 8885.07671917959_dp, 16351.40165928286_dp, 35518.56312434257_dp, 132016.67889946306_dp]
+ aw%aw_erange_matrix(:, 16) = [0.16461121992013572_dp, 0.5130537467027886_dp, 0.9219891409850267_dp, 1.4415265282665501_dp, 2.137812541238478_dp, 3.1026919987933703_dp,&
+ 4.4675924708665224_dp, 6.4241492550129164_dp, 9.255358150849865_dp, 13.383148444589107_dp, 19.441687490427764_dp, 28.39127642576762_dp, 41.696760806942606_dp,&
+ 61.60931997659668_dp, 91.61536108245578_dp, 137.1580410041917_dp, 206.80796953910746_dp, 314.1817503489433_dp, 481.1195168715122_dp, 743.0074290063551_dp,&
+ 1157.8021962841462_dp, 1821.5380800469534_dp, 2895.3812180016926_dp, 4653.7282926606185_dp, 7572.086677425676_dp, 12495.669401832365_dp, 20997.801241262867_dp,&
+ 36325.86747707651_dp, 67064.21998527332_dp, 153559.877190311_dp, 0.3323792923495753_dp, 0.37128645855707815_dp, 0.45481882638693466_dp, 0.5951234815811263_dp,&
+ 0.8125303911554078_dp, 1.1387980677420937_dp, 1.6224364113285599_dp, 2.3370716045920283_dp, 3.394480042467526_dp, 4.96495158621143_dp, 7.309291980811711_dp,&
+ 10.829475690871233_dp, 16.149448348937934_dp, 24.245113751975293_dp, 36.65532694022094_dp, 55.82764892756104_dp, 85.69068300209298_dp, 132.6116968691035_dp,&
+ 207.0173551055982_dp, 326.1707659062317_dp, 518.9945518804797_dp, 834.5771689653424_dp, 1357.4620315784393_dp, 2235.8803375612997_dp, 3736.3891876038815_dp,&
+ 6360.155290450391_dp, 11143.129516033901_dp, 20727.354533996564_dp, 45246.467731381585_dp, 167864.82966862986_dp]
+ aw%aw_erange_matrix(:, 17) = [0.16651351865477473_dp, 0.519454577907408_dp, 0.9351507515667731_dp, 1.4658532410614418_dp, 2.1809354081217633_dp, 3.1773124769855223_dp,&
+ 4.594526615255376_dp, 6.637313429476753_dp, 9.609926239283139_dp, 13.968927280965282_dp, 20.40513523133305_dp, 29.97193207470911_dp, 44.28787090328388_dp,&
+ 65.85939691635402_dp, 98.59953714664259_dp, 148.66946924606546_dp, 225.85763585192822_dp, 345.86375336652645_dp, 534.124192482264_dp, 832.2963196222343_dp,&
+ 1309.3929484951884_dp, 2081.173047394442_dp, 3344.449587785483_dp, 5438.954165136708_dp, 8961.84030797197_dp, 14989.196056927289_dp, 25545.816609735895_dp,&
+ 44824.33409960151_dp, 83822.32422493344_dp, 193711.93304782244_dp, 0.3362966051832095_dp, 0.37662123463393204_dp, 0.4633544143824645_dp, 0.609443679214809_dp,&
+ 0.8366282415179814_dp, 1.1790166265088777_dp, 1.6889775685600297_dp, 2.4464495867510347_dp, 3.5735433123097637_dp, 5.257520611088955_dp, 7.787186659800698_dp,&
+ 11.61095992362215_dp, 17.43030221471878_dp, 26.351381738650314_dp, 40.13360778161903_dp, 61.60103361444086_dp, 95.33067886989048_dp, 148.81734792065342_dp,&
+ 234.46891374272712_dp, 373.0691144154962_dp, 599.8733847399587_dp, 975.5122812884488_dp, 1605.8677591621924_dp, 2679.2461731874328_dp, 4538.878632523566_dp,&
+ 7836.630003949259_dp, 13921.767968244894_dp, 26195.561124088643_dp, 57512.80156760765_dp, 213037.54770361463_dp]
+ aw%aw_erange_matrix(:, 18) = [0.1690396225959909_dp, 0.527980783630836_dp, 0.9527749551685267_dp, 1.498633358447118_dp, 2.2394273289730373_dp, 3.279200504430522_dp,&
+ 4.768998475289711_dp, 6.932282588250648_dp, 10.103948332171994_dp, 14.790913525485701_dp, 21.76710746310645_dp, 32.22374652919386_dp, 48.00922529285711_dp,&
+ 72.01561958382231_dp, 108.80743703784105_dp, 165.65487919516372_dp, 254.2501943193653_dp, 393.59144812337_dp, 614.8871476380654_dp, 970.0073946246416_dp,&
+ 1546.2520771713355_dp, 2492.5552724924996_dp, 4066.776314102136_dp, 6722.740655991635_dp, 11274.547185878206_dp, 19219.24710678121_dp, 33422.55081167871_dp,&
+ 59863.52522850395_dp, 114088.22675193982_dp, 267340.0098022138_dp, 0.34150265594038326_dp, 0.3837647419711019_dp, 0.4748885595852012_dp, 0.62895347380013_dp,&
+ 0.8697020693702873_dp, 1.234606483406498_dp, 1.7816009492315084_dp, 2.599802736845317_dp, 3.8264796009278195_dp, 5.674012679777352_dp, 8.473042796813875_dp,&
+ 12.742076623550743_dp, 19.300782196734378_dp, 29.456166689431363_dp, 45.31165528195391_dp, 70.28579444325638_dp, 109.99285877629794_dp, 173.7564076580376_dp,&
+ 277.24527030010586_dp, 447.12984357739214_dp, 729.4347143254225_dp, 1204.7788753069976_dp, 2016.732652224046_dp, 3425.9003452972343_dp, 5916.967870704429_dp,&
+ 10425.95017181254_dp, 18902.03087469423_dp, 36195.04534310194_dp, 80228.85952678222_dp, 296685.58400527935_dp]
+ aw%aw_erange_matrix(:, 19) = [0.17108080746256005_dp, 0.5348926066785868_dp, 0.9671403722271738_dp, 1.5255266347919436_dp, 2.28774274844055_dp, 3.3639396483885546_dp,&
+ 4.91510333449395_dp, 7.181015523939525_dp, 10.52351093743281_dp, 15.494175591137205_dp, 22.941350060033994_dp, 34.180859122853406_dp, 51.27100453309755_dp,&
+ 77.4598244795078_dp, 117.91998358022018_dp, 180.96932452902817_dp, 280.12130623254893_dp, 437.57174786980636_dp, 690.205645858275_dp, 1100.09105655256_dp,&
+ 1773.0902705202968_dp, 2892.412355453728_dp, 4780.204848654172_dp, 8012.96799945039_dp, 13643.383830950022_dp, 23642.754995570554_dp, 41847.26051761937_dp,&
+ 76336.01713020806_dp, 148006.18917830326_dp, 351302.6976256991_dp, 0.3457128544559845_dp, 0.38958721362433624_dp, 0.4843783651820528_dp, 0.6451406758484797_dp,&
+ 0.8973522100189902_dp, 1.2814196455666504_dp, 1.8601713021665005_dp, 2.7308645051656586_dp, 4.044329620340544_dp, 6.035636552378946_dp, 9.073587781716466_dp,&
+ 13.741287830611094_dp, 20.968542428515345_dp, 32.25164234427676_dp, 50.02217350804501_dp, 78.2730704718351_dp, 123.63448072667782_dp, 197.24709108663288_dp,&
+ 318.07033201598585_dp, 518.8138973365631_dp, 856.7493308578589_dp, 1433.7763216800754_dp, 2434.4354710513157_dp, 4199.723043713225_dp, 7375.479667359867_dp,&
+ 13229.498032764022_dp, 24425.382905474227_dp, 47540.939727448866_dp, 106401.9838008185_dp, 393145.5653859997_dp]
+ aw%aw_erange_matrix(:, 20) = [0.174208015078396_dp, 0.5455214527091232_dp, 0.9893700986809595_dp, 1.567453246082248_dp, 2.3636540955315315_dp, 3.498122562251638_dp,&
+ 5.14827993215702_dp, 7.581158591694967_dp, 11.204028439530992_dp, 16.64459737206355_dp, 24.87939231168654_dp, 37.44134013217713_dp, 56.75883515046388_dp,&
+ 86.71544891414382_dp, 133.58416570470814_dp, 207.60520215097725_dp, 325.68438918806163_dp, 516.070276345991_dp, 826.5786325694985_dp, 1339.2814449968866_dp,&
+ 2197.1869318584554_dp, 3653.596263478819_dp, 6165.272491162445_dp, 10572.339869517313_dp, 18455.027976540176_dp, 32866.476778294564_dp, 59929.80935369267_dp,&
+ 112813.36919811858_dp, 225478.89700441147_dp, 547806.2274616612_dp, 0.35216932807662665_dp, 0.39859666877705746_dp, 0.4992199916127204_dp, 0.6706989633151823_dp,&
+ 0.9413877281467774_dp, 1.3565962959075781_dp, 1.9874058221916224_dp, 2.944935529470972_dp, 4.403353007447031_dp, 6.637198331969463_dp, 10.082430143316417_dp,&
+ 15.437217064917919_dp, 23.830070641189668_dp, 37.103429138667835_dp, 58.297656696714924_dp, 92.48760514385602_dp, 148.24827340732497_dp, 240.26021813127747_dp,&
+ 394.0140410806184_dp, 654.4499869389458_dp, 1102.1183917626631_dp, 1884.023044363102_dp, 3273.8242918006918_dp, 5792.447112731419_dp, 10457.841973367156_dp,&
+ 19329.53596485672_dp, 36827.67063798521_dp, 73825.92204301585_dp, 168436.45444117606_dp, 622444.873239739_dp]
+ aw%aw_erange_matrix(:, 21) = [0.1761202582043389_dp, 0.5520447609872519_dp, 1.0030974507555772_dp, 1.5935326203454305_dp, 2.4112315066636985_dp, 3.582863330501751_dp,&
+ 5.296667728366527_dp, 7.8377867885008925_dp, 11.643980957560537_dp, 17.394560044285978_dp, 26.15386564019807_dp, 39.605200340498676_dp, 60.43629423022499_dp,&
+ 92.98154542968216_dp, 144.30465853295624_dp, 226.04648771845612_dp, 357.6210989688087_dp, 571.8230985597171_dp, 924.8176309939128_dp, 1514.236505987768_dp,&
+ 2512.5546787169756_dp, 4229.875717696101_dp, 7234.632430202447_dp, 12591.32549473927_dp, 22342.113889996825_dp, 40517.55575462074_dp, 75377.59785941406_dp,&
+ 144997.0428070577_dp, 296108.0338286232_dp, 731745.2865811108_dp, 0.35612112320338896_dp, 0.4041597774113941_dp, 0.5084797084927667_dp, 0.6867923770493396_dp,&
+ 0.9693484716162668_dp, 1.404717445752288_dp, 2.0695156681544655_dp, 3.084248878260065_dp, 4.639047881996104_dp, 7.035740134386317_dp, 10.757234904755125_dp,&
+ 16.58309947892346_dp, 25.78417424843358_dp, 40.454121614614245_dp, 64.0813539216139_dp, 102.54891398088944_dp, 165.90782834877612_dp, 271.5712510504401_dp,&
+ 450.164506454231_dp, 756.4348015438803_dp, 1290.0017302932613_dp, 2235.688380530208_dp, 3943.8151743642957_dp, 7094.4981359781395_dp, 13045.295369347426_dp,&
+ 24603.05448593095_dp, 47901.44750228873_dp, 98085.01445426073_dp, 227192.3617986822_dp, 840731.2172617969_dp]
+ aw%aw_erange_matrix(:, 22) = [0.1777047921517639_dp, 0.5574641492548221_dp, 1.0145511230139452_dp, 1.615403373339322_dp, 2.4513426308010158_dp, 3.654686527513127_dp,&
+ 5.423110673160765_dp, 8.057659233477818_dp, 12.023051097483231_dp, 18.04454685946229_dp, 27.2652711716243_dp, 41.50449808496695_dp, 63.68639951776318_dp,&
+ 98.56001627479766_dp, 153.92310734481697_dp, 242.72975295820916_dp, 386.770803794943_dp, 623.1980350390293_dp, 1016.2779319339597_dp, 1678.941978088846_dp,&
+ 2813.0616487372854_dp, 4786.311559672938_dp, 8282.29270001942_dp, 14601.419569806514_dp, 26282.105739415867_dp, 48430.57601768038_dp, 91721.68927815263_dp,&
+ 179924.08934574723_dp, 374820.9154378848_dp, 941327.26358562_dp, 0.35939787631562287_dp, 0.40880114349624547_dp, 0.5162611101798964_dp, 0.700403353403251_dp,&
+ 0.9931343712493289_dp, 1.4458855436673317_dp, 2.14016413580574_dp, 3.204825966103843_dp, 4.844304322301563_dp, 7.385060426051078_dp, 11.352727207647774_dp,&
+ 17.601567628385595_dp, 27.534196851429424_dp, 43.479077462900264_dp, 69.34760901334614_dp, 111.79404993830953_dp, 182.29420743169334_dp, 300.93178966239077_dp,&
+ 503.4177074926195_dp, 854.3541827114868_dp, 1472.829099303335_dp, 2582.950642714769_dp, 4616.207797210845_dp, 8424.894875912756_dp, 15742.71644167282_dp,&
+ 30226.322987810392_dp, 60011.99599547493_dp, 125336.8664775516_dp, 294698.3519483209_dp, 1092989.8333233916_dp]
+ aw%aw_erange_matrix(:, 23) = [0.1799647702096782_dp, 0.5652158330702483_dp, 1.0310122635781176_dp, 1.6470123533176932_dp, 2.5096521841629245_dp, 3.7597091666054_dp,&
+ 5.609096447864183_dp, 8.383032013517075_dp, 12.587531728381435_dp, 19.018811032717153_dp, 28.942669406068813_dp, 44.39198046554904_dp, 68.66582954328437_dp,&
+ 107.17728460643622_dp, 168.91213211075208_dp, 268.97398648093684_dp, 433.091609012251_dp, 705.730911521849_dp, 1164.951694181309_dp, 1950.1393511855931_dp,&
+ 3314.8576251656086_dp, 5729.913200878512_dp, 10089.505182983685_dp, 18135.458661616507_dp, 33359.02655596435_dp, 62993.26164148739_dp, 122648.53064183371_dp,&
+ 248143.1247122177_dp, 533911.066633673_dp, 1377658.9174851538_dp, 0.3640748855027726_dp, 0.4154710858336259_dp, 0.5275322007755151_dp, 0.7202571525801186_dp,&
+ 1.0280528203703319_dp, 1.5066998100771394_dp, 2.2451905408110053_dp, 3.385256860173649_dp, 5.153564269391184_dp, 7.915191281602387_dp, 12.263349591995896_dp,&
+ 19.17157925153088_dp, 30.255048026265875_dp, 48.22502671655241_dp, 77.69046144427213_dp, 126.59311361740465_dp, 208.81898401605096_dp, 349.03416680624724_dp,&
+ 591.8119175008418_dp, 1019.2202578014185_dp, 1785.4939265361284_dp, 3187.1280052231455_dp, 5808.604372665699_dp, 10835.102219391534_dp, 20748.74858833901_dp,&
+ 40952.890888395414_dp, 83848.098471279_dp, 180849.87459593892_dp, 436512.7424947387_dp, 1628215.5545881148_dp]
+ aw%aw_erange_matrix(:, 24) = [0.1822263529525982_dp, 0.5729996377421059_dp, 1.047635792810745_dp, 1.6791461382690935_dp, 2.569340077952974_dp, 3.8679621955823156_dp,&
+ 5.80214952385766_dp, 8.723197827758348_dp, 13.18207930971986_dp, 20.052986490730195_dp, 30.737880819936766_dp, 47.50921787860396_dp, 74.09130058582036_dp,&
+ 116.65928109072428_dp, 185.57975117283885_dp, 298.4887547568673_dp, 485.82262550322196_dp, 800.9299575569713_dp, 1338.911182611906_dp, 2272.4501320329528_dp,&
+ 3921.5269940453863_dp, 6892.49799005733_dp, 12363.437660742366_dp, 22688.291515470326_dp, 42722.85096985635_dp, 82860.32561548792_dp, 166362.18596925205_dp,&
+ 348621.725686658_dp, 779233.374778165_dp, 2079017.4769696286_dp, 0.36875937076082166_dp, 0.4222059972744914_dp, 0.5390198837588891_dp, 0.7406604412767378_dp,&
+ 1.064209794623797_dp, 1.5701371533427577_dp, 2.3555718741622864_dp, 3.5763689918945434_dp, 5.483812634926247_dp, 8.486176027552165_dp, 13.253067856267064_dp,&
+ 20.89439819576877_dp, 33.271277856794725_dp, 53.54362530829514_dp, 87.14918047880543_dp, 143.58213829294814_dp, 239.6811218766154_dp, 405.8231322234427_dp,&
+ 697.8346358530627_dp, 1220.419781249127_dp, 2174.402936582649_dp, 3954.658279362839_dp, 7359.4771270599895_dp, 14054.111690526057_dp, 27639.364929808464_dp,&
+ 56238.866456371696_dp, 119209.6009779448_dp, 267043.87988619285_dp, 666555.4805450162_dp, 2511681.1233505663_dp]
+ aw%aw_erange_matrix(:, 25) = [0.1847328901237733_dp, 0.5816579181920506_dp, 1.06623831659397_dp, 1.7153584342875687_dp, 2.6370944394526834_dp, 3.991747606377202_dp,&
+ 6.0245444078219315_dp, 9.118059462860709_dp, 13.87771304303639_dp, 21.273099986416568_dp, 32.874558748673664_dp, 51.25417761001875_dp, 80.67448644264461_dp,&
+ 128.28771388301732_dp, 206.25529162006907_dp, 335.55403757007736_dp, 552.9304377149555_dp, 923.8479731240166_dp, 1567.0928663554876_dp, 2702.6050494655915_dp,&
+ 4746.810112095555_dp, 8507.992746711141_dp, 15599.418914679965_dp, 29344.431295226907_dp, 56841.83138821593_dp, 113909.37304425648_dp, 237628.48164125465_dp,&
+ 520905.746109544_dp, 1225334.6216953252_dp, 3428882.660853226_dp, 0.3739561299590209_dp, 0.42974153402664883_dp, 0.5519996672430176_dp, 0.7639144679035607_dp,&
+ 1.1057476916121531_dp, 1.643586260939031_dp, 2.4843963114705385_dp, 3.801270659603255_dp, 5.875848620822421_dp, 9.170241595714248_dp, 14.45037787184633_dp,&
+ 23.0002074091981_dp, 36.99882559646296_dp, 60.19432989625214_dp, 99.12731724056621_dp, 165.39119652215672_dp, 279.8872363721547_dp, 481.0007472363202_dp,&
+ 840.6692554162208_dp, 1496.7525126524065_dp, 2720.0603815860054_dp, 5057.476332433218_dp, 9648.32206240805_dp, 18951.758348951535_dp, 38497.25395781284_dp,&
+ 81332.10767021636_dp, 180141.95260617262_dp, 424305.6328571203_dp, 1112162.6633453001_dp, 4275158.808925236_dp]
+ aw%aw_erange_matrix(:, 26) = [0.18691650786522696_dp, 0.5892282516421157_dp, 1.082601142199495_dp, 1.7474335701008017_dp, 2.697541917641801_dp, 4.102986967183923_dp,&
+ 6.2258726307243295_dp, 9.478229744358938_dp, 14.51725016133735_dp, 22.40416043035721_dp, 34.87275063631003_dp, 54.7892770133363_dp, 86.95106742502657_dp,&
+ 139.4937652327716_dp, 226.41043496205668_dp, 372.1384211072813_dp, 620.0671404995333_dp, 1048.6405945196989_dp, 1802.5180601563457_dp, 3154.370380781851_dp,&
+ 5630.817881197405_dp, 10277.053936391727_dp, 19232.435067105616_dp, 37032.92799563058_dp, 73696.42898519848_dp, 152437.06029497125_dp, 330262.7698185401_dp,&
+ 757951.6008420573_dp, 1883277.8699494905_dp, 5569496.903527443_dp, 0.37848766297101066_dp, 0.4363686681953113_dp, 0.5635257557534139_dp, 0.7847411896337352_dp,&
+ 1.1432429581246502_dp, 1.710400928686577_dp, 2.6025143390201344_dp, 4.00918762919726_dp, 6.241432379311925_dp, 9.814018030878975_dp, 15.58816401063637_dp,&
+ 25.02210792050149_dp, 40.617544040137886_dp, 66.72766316858582_dp, 111.04481815761915_dp, 187.3905962133754_dp, 321.0551681264537_dp, 559.2435025237448_dp,&
+ 992.0158501613989_dp, 1795.4100023823648_dp, 3322.951465507801_dp, 6306.521335539891_dp, 12314.481572253086_dp, 24843.55105667421_dp, 52058.072852874495_dp,&
+ 114094.52399515717_dp, 264080.7768830504_dp, 655640.4058250692_dp, 1818602.1997626221_dp, 7205611.5064693205_dp]
+ aw%aw_erange_matrix(:, 27) = [0.19022370155321527_dp, 0.600743360402157_dp, 1.1076668599949147_dp, 1.7969727227449328_dp, 2.7916954361292103_dp, 4.277740702902653_dp,&
+ 6.5449132123072955_dp, 10.054129405857609_dp, 15.549497842664334_dp, 24.247957163099166_dp, 38.164643624522434_dp, 60.67913113804187_dp, 97.53572421208379_dp,&
+ 158.6390445053919_dp, 261.3334003305023_dp, 436.50559155590565_dp, 740.1775348487877_dp, 1276.0295073067164_dp, 2240.2658443373566_dp, 4013.504032417865_dp,&
+ 7354.933813953658_dp, 13827.327012835409_dp, 26765.8040824929_dp, 53592.215438201536_dp, 111658.9332077399_dp, 244020.31011080078_dp, 565646.7162849859_dp,&
+ 1414014.9652098955_dp, 3921844.1534676724_dp, 13169687.030866666_dp, 0.38535856099370613_dp, 0.44651820489987665_dp, 0.581378827915768_dp, 0.817323895709002_dp,&
+ 1.2024468005348359_dp, 1.8168664498604732_dp, 2.792503569715967_dp, 4.346916881821315_dp, 6.841455614222962_dp, 10.882312536529671_dp, 17.498453583809766_dp,&
+ 28.45950172040968_dp, 46.85274666913898_dp, 78.1487335864584_dp, 132.20639852667364_dp, 227.12421582085403_dp, 396.8047794537329_dp, 706.1854709081963_dp,&
+ 1282.7567112370582_dp, 2383.8137152178447_dp, 4544.9881609113345_dp, 8921.411882096174_dp, 18107.46271796117_dp, 38212.670216679006_dp, 84456.33216515457_dp,&
+ 197425.42988053817_dp, 494979.5222323457_dp, 1359946.1830275727_dp, 4269995.133188314_dp, 18594665.56920044_dp]
+ aw%aw_erange_matrix(:, 28) = [0.19253210390672987_dp, 0.6088167991143922_dp, 1.1253694421581641_dp, 1.8322551698762215_dp, 2.8593371177556604_dp, 4.4043903646211_dp,&
+ 6.77820202691528_dp, 10.479140516198576_dp, 16.3186936413819_dp, 25.636021161233007_dp, 40.670025252886504_dp, 65.21432629001508_dp, 105.78867675687461_dp,&
+ 173.7699859169831_dp, 289.3412272171402_dp, 488.9577195527415_dp, 839.7790283388382_dp, 1468.253800848674_dp, 2618.293272053489_dp, 4773.313983139066_dp,&
+ 8921.221516951595_dp, 17152.781586299636_dp, 34075.58424824942_dp, 70338.2733815119_dp, 151993.0955958592_dp, 347390.7830575113_dp, 852464.8697898219_dp,&
+ 2298933.9421763406_dp, 7097047.894166372_dp, 27714975.772786345_dp, 0.39015997333677005_dp, 0.4536843511969253_dp, 0.5941303836763525_dp, 0.8408337569147337_dp,&
+ 1.2455691251977075_dp, 1.8951408073458809_dp, 2.933537085150634_dp, 4.600165407270463_dp, 7.296212807798878_dp, 11.701195546464378_dp, 18.980540228606937_dp,&
+ 31.16106108953815_dp, 51.82170019429503_dp, 87.38781813144793_dp, 149.60556002756704_dp, 260.3773737102548_dp, 461.44327006014964_dp, 834.290139541255_dp,&
+ 1542.3362969521413_dp, 2923.3653677825737_dp, 5699.927184905687_dp, 11479.628646828858_dp, 24006.639124934227_dp, 52485.55856206102_dp, 121068.69686949911_dp,&
+ 298453.56221816584_dp, 801312.2270425739_dp, 2415145.5599759216_dp, 8639654.807896439_dp, 43666635.56753933_dp]
+ aw%aw_erange_matrix(:, 29) = [0.1949107095730563_dp, 0.6171672239307736_dp, 1.143792172436484_dp, 1.8692333576553928_dp, 2.930748110931505_dp, 4.539085142263593_dp,&
+ 7.028182432141186_dp, 10.938130943606705_dp, 17.15624033998357_dp, 27.16067680457394_dp, 43.44774061879075_dp, 70.29315104327573_dp, 115.13144509398658_dp,&
+ 191.1011162579555_dp, 321.8342697698806_dp, 550.6671938372235_dp, 958.7797787732911_dp, 1701.8776841547697_dp, 3086.6003811493197_dp, 5735.080964660857_dp,&
+ 10953.106276804325_dp, 21590.73855228189_dp, 44160.136736286004_dp, 94375.76532091481_dp, 212768.38665855065_dp, 513000.1708834057_dp, 1350765.9399022928_dp,&
+ 4022932.679434288_dp, 14513078.288369589_dp, 75937900.62142041_dp, 0.39511226230548274_dp, 0.461140130776742_dp, 0.6075257413400078_dp, 0.8657410584741931_dp,&
+ 1.2916169964663862_dp, 1.979386468292054_dp, 3.0865718388636862_dp, 4.877330577353741_dp, 7.798462568355467_dp, 12.614401907780815_dp, 20.650563498437013_dp,&
+ 34.23929473043507_dp, 57.55196112216066_dp, 98.18231951367711_dp, 170.22503623388062_dp, 300.40452026165275_dp, 540.6000901136043_dp, 994.1995519608768_dp,&
+ 1873.38945083301_dp, 3628.392490521107_dp, 7251.604873762116_dp, 15029.267131045708_dp, 32509.31717011665_dp, 74021.0484408064_dp, 179523.81893802425_dp,&
+ 471846.2096834248_dp, 1380639.0831843547_dp, 4711303.6808049455_dp, 20609904.76278654_dp, 151191206.84136662_dp]
+ case(32)
+ aw%energy_range(:) = [4862.0_dp, 5846.0_dp, 6665.0_dp, 7800.0_dp, 10044.0_dp, 14058.0_dp,&
+ 19114.0_dp, 25870.0_dp, 35180.0_dp, 58986.0_dp, 85052.0_dp, 126612.0_dp, 247709.0_dp, 452410.0_dp,&
+ 1104308.0_dp, 2582180.0_dp, 10786426.0_dp, 72565710.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.13254275519610229_dp, 0.4075002434334006_dp, 0.7129653611128071_dp, 1.072311142230351_dp, 1.5137054634325515_dp, 2.072585907106472_dp,&
+ 2.7948198255241965_dp, 3.7408887157784005_dp, 4.991538722697482_dp, 6.655495576177275_dp, 8.880073834050316_dp, 11.865844968082882_dp, 15.88700871736706_dp,&
+ 21.319800434807853_dp, 28.682257688821725_dp, 38.69010148421391_dp, 52.335569763753064_dp, 70.99909077535013_dp, 96.60819689305963_dp, 131.86486082729905_dp,&
+ 180.57288090293983_dp, 248.11368921054333_dp, 342.14755601137466_dp, 473.67067120472257_dp, 658.6709548634489_dp, 920.892639935345_dp, 1296.9341360028814_dp,&
+ 1847.0377800992435_dp, 2682.1510880264454_dp, 4047.085323969744_dp, 6660.040272218769_dp, 14108.029689918747_dp, 0.2667161148094765_dp, 0.2866077185534088_dp,&
+ 0.32818422173681944_dp, 0.3951613742572797_dp, 0.4934816587166093_dp, 0.6318550781930461_dp, 0.8226002283812441_dp, 1.0828685966380414_dp, 1.4363782680324575_dp,&
+ 1.915847231861476_dp, 2.566403777298568_dp, 3.4503727336112044_dp, 4.654008952170379_dp, 6.29699863203509_dp, 8.545911800328465_dp, 11.633320983339523_dp,&
+ 15.885087444621595_dp, 21.759494015934315_dp, 29.903701501622987_dp, 41.235837219460294_dp, 57.06571237167945_dp, 79.27552554087899_dp, 110.59838219031958_dp,&
+ 155.06890815199284_dp, 218.81060764214297_dp, 311.5722127601456_dp, 450.16760079454133_dp, 667.4313363099551_dp, 1039.6543728256195_dp, 1789.9748349736915_dp, 3833.9681364720745_dp, 14655.44632366239_dp]
+ aw%aw_erange_matrix(:, 2) = [0.1343248849882633_dp, 0.4132592119099152_dp, 0.7240043390799359_dp, 1.091026925935713_dp, 1.54395256157537_dp, 2.120249021729213_dp,&
+ 2.8686740645792272_dp, 3.8538693799190424_dp, 5.162601596809094_dp, 6.912333890906867_dp, 9.263083009950755_dp, 12.433910552841194_dp, 16.725965711187758_dp,&
+ 22.554817278001472_dp, 30.49600178512726_dp, 41.3494455589017_dp, 56.23095197989688_dp, 76.70267881628598_dp, 104.96008395875586_dp, 144.10119183719314_dp,&
+ 198.5169327875596_dp, 274.4618860978532_dp, 380.899499080189_dp, 530.7797694607106_dp, 743.0392454072074_dp, 1045.9229630462034_dp, 1483.0537807692358_dp,&
+ 2126.1516611014854_dp, 3106.7411184121765_dp, 4713.500361879859_dp, 7790.3641571104345_dp, 16548.445240300603_dp, 0.2703480614473483_dp, 0.2910756261579897_dp,&
+ 0.3344559767841716_dp, 0.40448278489060463_dp, 0.5075565457043502_dp, 0.6530872691721998_dp, 0.8544340076849473_dp, 1.130277093651096_dp, 1.506570063148876_dp,&
+ 2.019293595727479_dp, 2.718337239493882_dp, 3.6729796521022116_dp, 4.9796461563368934_dp, 6.772925073652045_dp, 9.241267903229764_dp, 12.649452794111886_dp,&
+ 17.370863762271927_dp, 23.934101209739133_dp, 33.090676974430735_dp, 45.914061903125_dp, 63.94611611042478_dp, 89.41703574194196_dp, 125.58445451312652_dp,&
+ 177.27970461634078_dp, 251.853187763381_dp, 360.99548168525195_dp, 524.7699272889096_dp, 782.0601891451947_dp, 1222.611932252175_dp, 2108.162233431274_dp, 4512.831122628449_dp, 17222.120678400817_dp]
+ aw%aw_erange_matrix(:, 3) = [0.13557338601660668_dp, 0.41730065260389615_dp, 0.7317746815552322_dp, 1.104251698157746_dp, 1.5654155709323194_dp, 2.1542162086848187_dp,&
+ 2.9215329135167067_dp, 3.9350769825526832_dp, 5.286080227577014_dp, 7.0985194219082555_dp, 9.541929524180782_dp, 12.849299970750083_dp, 17.34218791649807_dp,&
+ 23.466110116962277_dp, 31.840626080497724_dp, 43.33050125803531_dp, 59.147245510736425_dp, 80.99462553628598_dp, 111.2781774935937_dp, 153.40846663158962_dp,&
+ 212.24282951584453_dp, 294.7341924733544_dp, 410.8955699804921_dp, 575.2616255690891_dp, 809.1768735737788_dp, 1144.5847770269388_dp, 1630.9076924124556_dp,&
+ 2349.3603614162894_dp, 3448.4571118322583_dp, 5252.914668389623_dp, 8709.488526056672_dp, 18538.811858380694_dp, 0.27289359484351916_dp, 0.294220982001665_dp,&
+ 0.3388980759862916_dp, 0.411123396942743_dp, 0.5176359133047135_dp, 0.668364809184891_dp, 0.8774440884042964_dp, 1.1646980641075588_dp, 1.557761149115098_dp,&
+ 2.0950797638638385_dp, 2.8301605859021666_dp, 3.837593566983341_dp, 5.221615251219452_dp, 7.128324609566002_dp, 9.763174149466698_dp, 13.41611573645175_dp,&
+ 18.497910846798998_dp, 25.59282079046985_dp, 35.53550575895753_dp, 49.524062051914576_dp, 69.28781614975094_dp, 97.34010675862754_dp, 137.36838088542098_dp,&
+ 194.86122705934486_dp, 278.18695350675137_dp, 400.6526832866276_dp, 585.0253370519614_dp, 875.1939500761971_dp, 1371.947991018934_dp, 2368.536327804507_dp,&
+ 5068.399861166353_dp, 9319.551508880766_dp]
+ aw%aw_erange_matrix(:, 4) = [0.1370499857872464_dp, 0.422087838650514_dp, 0.7410040914005517_dp, 1.1200141103213002_dp, 1.5910937845067552_dp, 2.195011651443817_dp,&
+ 2.985262954814932_dp, 4.033361919610758_dp, 5.436098124858981_dp, 7.325593527943965_dp, 9.883341376758114_dp, 13.359912878263156_dp, 18.102752475144438_dp,&
+ 24.595554809189636_dp, 33.51428674450282_dp, 45.80722857230063_dp, 62.80982762248363_dp, 86.41024933404324_dp, 119.28915593140628_dp, 165.26885298524112_dp,&
+ 229.82488386010735_dp, 320.8416671697241_dp, 449.7412806501914_dp, 633.1998473772219_dp, 895.83705332351_dp, 1274.6569305047908_dp, 1827.0549682010767_dp,&
+ 2647.329246149724_dp, 3907.374072374449_dp, 5981.275709049701_dp, 9956.014230886252_dp, 21245.91059831021_dp, 0.27590538134484827_dp, 0.2979573565068322_dp,&
+ 0.3442035946496803_dp, 0.41909606429356827_dp, 0.5297935391581631_dp, 0.6868712744253185_dp, 0.9054313778178337_dp, 1.2067332819592969_dp, 1.6205293980185511_dp,&
+ 2.1883874721831376_dp, 2.9684149635372044_dp, 4.041990934394181_dp, 5.523387463777131_dp, 7.573569384258536_dp, 10.420063818936963_dp, 14.385689720800096_dp,&
+ 19.930287584151156_dp, 27.711636209408702_dp, 38.67488869797654_dp, 54.18479605908046_dp, 76.22300391975581_dp, 107.6864815178738_dp, 152.8489241029493_dp,&
+ 218.10116939555124_dp, 313.21671931714536_dp, 453.742571335189_dp, 666.1923552433152_dp, 1001.3603174380673_dp, 1575.1576866889702_dp, 2723.745097867967_dp,&
+ 5826.475195617796_dp, 22177.608473258828_dp]
+ aw%aw_erange_matrix(:, 5) = [0.1393751435556022_dp, 0.4296428076126454_dp, 0.7556269118458908_dp, 1.1451112107395522_dp, 1.6321993263496475_dp, 2.260676043411754_dp,&
+ 3.088405025081973_dp, 4.193293537779408_dp, 5.681535826776683_dp, 7.69912759768035_dp, 10.448065969109644_dp, 14.209271435146666_dp, 19.375182226620723_dp,&
+ 26.496316789495793_dp, 36.34808912459801_dp, 50.02711707757524_dp, 69.09067912961464_dp, 95.75961436726789_dp, 133.21501966925618_dp, 186.03449395457477_dp,&
+ 260.83759278866273_dp, 367.24818341626917_dp, 519.3442915671452_dp, 737.8771467239039_dp, 1053.7584086797096_dp, 1513.801330668974_dp, 2190.9702417788335_dp,&
+ 3205.2140171776487_dp, 4774.210825118251_dp, 7368.122740715144_dp, 12344.973991941335_dp, 26456.259009955764_dp, 0.28065064408654583_dp, 0.3038780328549319_dp,&
+ 0.3526759573849975_dp, 0.4319215261801991_dp, 0.5494801124103226_dp, 0.7170195083647463_dp, 0.9512879181334657_dp, 1.2759995304848823_dp, 1.7245524024350398_dp,&
+ 2.3439221516534534_dp, 3.2002414143320297_dp, 4.386814440304756_dp, 6.0356680674184835_dp, 8.334263247492462_dp, 11.549773796002393_dp, 16.064517095499955_dp,&
+ 22.427907607712154_dp, 31.43303552982579_dp, 44.23019793781067_dp, 62.496359675110796_dp, 88.69028623168306_dp, 126.44134851448199_dp, 181.15338754218374_dp,&
+ 260.9731813081323_dp, 378.4325232446994_dp, 553.5022272702486_dp, 820.1059662618102_dp, 1242.61943354538_dp, 1966.3786822155184_dp, 3410.3262356194664_dp,&
+ 7292.46886903304_dp, 27693.855354838164_dp]
+ aw%aw_erange_matrix(:, 6) = [.14237486453944107_dp, 0.4394200534952092_dp, 0.7746555330683098_dp, 1.177996095520943_dp, 1.6864652619295697_dp,&
+ 2.3480282638346726_dp, 3.2266616421606034_dp, 4.409302651924302_dp, 6.015552554226239_dp, 8.21136864768518_dp, 11.228525969594424_dp, 15.392442739194209_dp,&
+ 21.162171526463748_dp, 29.18815796828059_dp, 40.3960633542662_dp, 56.109002958965746_dp, 78.22669193938121_dp, 109.4893460132257_dp, 153.8685432400606_dp,&
+ 217.14949285761446_dp, 307.80403247089794_dp, 438.30940204930323_dp, 627.1596980492438_dp, 901.9765906170177_dp, 1304.4290970945126_dp, 1898.3283702431997_dp,&
+ 2783.931515564688_dp, 4126.483644157721_dp, 6224.503686674229_dp, 9716.401957272288_dp, 16429.986790645627_dp, 35423.70971974651_dp, 0.28677747480312377_dp,&
+ 0.3115840468325672_dp, 0.36382211720758184_dp, 0.44896687419484355_dp, 0.5758826693409299_dp, 0.7577922978063393_dp, 1.013805148375157_dp, 1.371186351736884_dp,&
+ 1.8686546654955012_dp, 2.56115176168904_dp, 3.5267457265125604_dp, 4.876653159913234_dp, 6.769843587920379_dp, 9.434411669061411_dp, 13.198996941760914_dp,&
+ 18.53920060615783_dp, 26.14651426672167_dp, 37.03124772871653_dp, 52.677154132184704_dp, 75.27530196334217_dp, 108.08071153726374_dp, 155.96210569315744_dp,&
+ 226.2630374093172_dp, 330.18690270710874_dp, 485.1305151943868_dp, 718.9484199953382_dp, 1078.8257499526349_dp, 1653.3065930339428_dp, 2639.3168711629464_dp, 4598.936377351543_dp, 9833.306219117254_dp, 7228.01191754706_dp]
+ aw%aw_erange_matrix(:, 7) = [.14502370796551703_dp, 0.4480829010539378_dp, 0.7916157981286331_dp, 1.2075243508496802_dp,&
+ 1.7355837902840658_dp, 2.4277406075189805_dp, 3.353852391880919_dp, 4.609630408244423_dp, 6.327831185413123_dp, 8.694192211759745_dp, 11.970290957285025_dp,&
+ 16.5265343114819_dp, 22.890028099278148_dp, 31.81440016230547_dp, 44.38216963745914_dp, 62.15561490757339_dp, 87.40030591467784_dp, 123.41813625304623_dp,&
+ 175.04637990163923_dp, 249.4101615146111_dp, 357.06464925805403_dp, 513.7420529668599_dp, 743.0485870384754_dp, 1080.6808579217216_dp, 1581.14809900435_dp,&
+ 2328.8609813458747_dp, 3457.607083546514_dp, 5188.8198870627575_dp, 7921.499237107771_dp, 12501.58289355634_dp, 21329.60428145102_dp, 46259.92356298488_dp,&
+ 0.29219234212764755_dp, 0.31845370690034347_dp, 0.373872890610569_dp, 0.4645031477238152_dp, 0.600179586011295_dp, 0.7956470306437238_dp, 1.0723453581784659_dp,&
+ 1.4610762243702629_dp, 2.0059080326461616_dp, 2.76987145000088_dp, 3.8432790806788373_dp, 5.355919395975122_dp, 7.495003555741856_dp, 10.531701795474737_dp,&
+ 14.860576373030604_dp, 21.05848895536974_dp, 29.97309227512008_dp, 42.856552877705376_dp, 61.56891170854085_dp, 88.88951722712217_dp, 128.99783246328127_dp,&
+ 188.2232678787817_dp, 276.231225060434_dp, 407.9416932740777_dp, 606.7569403074244_dp, 910.3888055268573_dp, 1382.7234338831393_dp, 2142.64856112768_dp,&
+ 3450.91828637881_dp, 6043.794023233803_dp, 12927.644737686549_dp, 8805.08862191054_dp]
+ aw%aw_erange_matrix(:, 8) = [0.14754727473790832_dp, 0.4563621690490255_dp, 0.8079150128057052_dp, 1.2360970460871308_dp, 1.783465172289044_dp, 2.506029552409794_dp,&
+ 3.479706891724579_dp, 4.809331033064525_dp, 6.641460873789643_dp, 9.182776952331544_dp, 12.726704342125874_dp, 17.692182381254717_dp, 24.680446495334998_dp,&
+ 34.55864851933651_dp, 48.58367650175289_dp, 68.58652178045523_dp, 97.24837691414776_dp, 138.51657135506775_dp, 198.2350828975321_dp, 285.1066307856165_dp,&
+ 412.17114696470446_dp, 599.09566525532_dp, 875.7537331156108_dp, 1287.8873903467286_dp, 1906.2215953314396_dp, 2841.576751154979_dp, 4271.337323387628_dp,&
+ 6490.79405022356_dp, 10031.563416886413_dp, 16011.899712868733_dp, 27575.24726251585_dp, 60178.67874227437_dp, 0.2973552991659925_dp, 0.3250566186141874_dp,&
+ 0.38363560044751194_dp, 0.4797430677530813_dp, 0.6242227281583522_dp, 0.8334115127308077_dp, 1.131206159458274_dp, 1.552168109039008_dp, 2.146103694832248_dp,&
+ 2.984800054553381_dp, 4.171951997411542_dp, 5.857847187535488_dp, 8.26118966072219_dp, 11.701694869826639_dp, 16.64903553098479_dp, 23.796760202379794_dp,&
+ 34.17459871027205_dp, 49.32017560264589_dp, 71.54333486665355_dp, 104.33600828116667_dp, 153.01300195482676_dp, 225.72365375346706_dp, 335.069793993653_dp,&
+ 500.74431450896293_dp, 753.9795215702264_dp, 1145.5159990918794_dp, 1761.5202623948937_dp, 2761.370072156297_dp, 4489.970449108518_dp, 7909.344598672393_dp, 16932.78473977757_dp, 3749.23270457554_dp]
+ aw%aw_erange_matrix(:, 9) = [.15002348519433922_dp, 0.46451130342750646_dp, 0.824045021042684_dp, 1.2645625089537342_dp, 1.8315097984767872_dp, 2.5851574108560396_dp,&
+ 3.6078322639753786_dp, 5.014105379427872_dp, 6.965398429552594_dp, 9.69114538724383_dp, 13.519686414362274_dp, 18.92366324500486_dp, 26.587123387509088_dp,&
+ 37.50529299176741_dp, 53.13378944809952_dp, 75.61310381203099_dp, 108.10840448253303_dp, 155.3272050619175_dp, 224.31329381924482_dp, 325.67298187252476_dp,&
+ 475.48339517776736_dp, 698.2866475093558_dp, 1031.8319129009446_dp, 1534.6726862536486_dp, 2298.5349133548734_dp, 3468.9808108623843_dp, 5281.614870909423_dp,&
+ 8131.595592028999_dp, 12730.978340941307_dp, 20567.038495110464_dp, 35778.24682408639_dp, 78609.82719130651_dp, 0.3024254049895312_dp, 0.3315918385852816_dp,&
+ 0.3933970226398002_dp, 0.49512550705651104_dp, 0.6486960402797961_dp, 0.872153928090401_dp, 1.1920524512393371_dp, 1.6470520511792885_dp, 2.2932691781075087_dp,&
+ 3.212208165551602_dp, 4.522554416231983_dp, 6.3977829741741665_dp, 9.092580992760151_dp, 12.982711954934162_dp, 18.625509909639966_dp, 26.85224510411176_dp,&
+ 38.910067639696216_dp, 56.68163261798167_dp, 83.02738125985056_dp, 122.3231205179819_dp, 181.31153080692263_dp, 270.46417120445864_dp, 406.1868615016362_dp,&
+ 614.4531917978084_dp, 936.963281227043_dp, 1442.136769945214_dp, 2246.721112418363_dp, 3565.852508027438_dp, 5859.209649832797_dp, 10391.307380953114_dp,&
+ 22278.529118569048_dp, 3643.6346001724_dp]
+ aw%aw_erange_matrix(:, 10) = [0.15399032986872938_dp, 0.4776194738561411_dp, 0.8501753043803365_dp, 1.31107946792835_dp, 1.9107571034709487_dp, 2.7169110257810085_dp,&
+ 3.823183728851228_dp, 5.361535227120927_dp, 7.52023882937859_dp, 10.570320241106216_dp, 14.904710488340205_dp, 21.09662727004116_dp, 29.987193874300804_dp,&
+ 42.81777942605248_dp, 61.43118108216903_dp, 88.57949619935079_dp, 128.39852284791314_dp, 187.14404553452533_dp, 274.34323674515576_dp, 404.60959924450174_dp,&
+ 600.5280841395823_dp, 897.2831647081848_dp, 1350.157326096996_dp, 2046.8215895330711_dp, 3127.779028909418_dp, 4821.115088237592_dp, 7503.844806420884_dp,&
+ 11818.550736004621_dp, 18929.880007178966_dp, 31248.80735377127_dp, 55365.10950684564_dp, 123170.41015076623_dp, 0.310556146577657_dp, 0.3421802780606353_dp,&
+ 0.4094223614818588_dp, 0.5206878687071103_dp, 0.6898099116933477_dp, 0.9379031112155564_dp, 1.2963422286973751_dp, 1.8113088637921357_dp, 2.5506317768186104_dp,&
+ 3.6140696050359202_dp, 5.148822519751217_dp, 7.37304808270909_dp, 10.611713921777906_dp, 15.351596184949763_dp, 22.32620193123881_dp, 32.64780730303991_dp,&
+ 48.01425448983265_dp, 71.03533163849936_dp, 105.75208085448396_dp, 158.47022734372413_dp, 239.1101888774951_dp, 363.4164108225496_dp, 556.6165909250806_dp,&
+ 859.5761486038269_dp, 1339.388089086674_dp, 2108.33111127726_dp, 3360.4896315872797_dp, 5453.393419146713_dp, 9137.412009720016_dp, 16424.470778988587_dp,&
+ 35351.12874442453_dp, 32131.62635064372_dp]
+ aw%aw_erange_matrix(:, 11) = [.15665201491118563_dp, 0.48645255086696204_dp, 0.8679140908633145_dp, 1.3429441991327895_dp, 1.9655663020388237_dp, 2.8089215705883355_dp,&
+ 3.9750326498505615_dp, 5.608890975167092_dp, 7.919132231547877_dp, 11.208702795546053_dp, 15.920717165510954_dp, 22.707526807683728_dp, 32.53546396340545_dp,&
+ 46.84477048297584_dp, 67.79548225092432_dp, 98.64818052206019_dp, 144.35799385904798_dp, 212.50854417045272_dp, 314.7924737632916_dp, 469.3788283542409_dp,&
+ 704.7334196247324_dp, 1065.8446744796906_dp, 1624.4783236718592_dp, 2496.2720234668195_dp, 3869.6487189479203_dp, 6055.704970336431_dp, 9577.158206331736_dp,&
+ 15337.311175310337_dp, 24985.53443387876_dp, 41924.21370939059_dp, 75335.12561757576_dp, 169240.0831820107_dp, 0.31601774300631147_dp, 0.34936919542211453_dp,&
+ 0.42045090124222617_dp, 0.5384991728556235_dp, 0.718776108006642_dp, 0.9847086381286597_dp, 1.3713420192235894_dp, 1.9306481293657263_dp, 2.7395796341433103_dp,&
+ 3.912291447920088_dp, 5.6187616588370295_dp, 8.113318173320359_dp, 11.778610539345083_dp, 17.193842137070394_dp, 25.24140130107934_dp, 37.2747560295197_dp,&
+ 55.384907761264955_dp, 82.82679809483118_dp, 124.70772472447071_dp, 189.1091967049713_dp, 288.93348305516747_dp, 444.97622020020765_dp, 691.102363652001_dp,&
+ 1083.0962406902304_dp, 1714.1073266384424_dp, 2742.5244927502104_dp, 4445.571757485345_dp, 7336.150374476061_dp, 12481.117979830125_dp, 22687.396569080272_dp,&
+ 49029.27213151443_dp, 82714.99577064996_dp]
+ aw%aw_erange_matrix(:, 12) = [.15940855323823325_dp, 0.4956331404107984_dp, 0.8864643437510178_dp, 1.3765162067718617_dp, 2.023770980185183_dp, 2.9074148057363085_dp,&
+ 4.1388784725835_dp, 5.877927890230674_dp, 8.356513563090692_dp, 11.914499292816961_dp, 17.053639088844527_dp, 24.519740335146867_dp, 35.428643273777766_dp,&
+ 51.46079251611351_dp, 75.16399270031552_dp, 110.42815348333873_dp, 163.2357643618038_dp, 242.85834932021987_dp, 363.7810629576585_dp, 548.8279687880828_dp,&
+ 834.2882284949019_dp, 1278.4147835625017_dp, 1975.6780750770085_dp, 3080.979098507853_dp, 4851.394465485563_dp, 7719.529300718981_dp, 12426.190192755064_dp,&
+ 20273.565432739022_dp, 33665.94446711274_dp, 57559.451254663276_dp, 105152.47765026288_dp, 238976.3949138361_dp, 0.32167917419720454_dp, 0.35688752020406733_dp,&
+ 0.432113620138954_dp, 0.557526309412786_dp, 0.750001170356205_dp, 1.0355963446410574_dp, 1.4535706405145328_dp, 2.0626057961394766_dp, 2.9503327570367945_dp,&
+ 4.247930889038919_dp, 6.152607117843223_dp, 8.96241660484181_dp, 13.130563431815835_dp, 19.350693737814375_dp, 28.691905293869226_dp, 42.814199349842106_dp,&
+ 64.3152735879299_dp, 97.29381534174325_dp, 148.2732887039295_dp, 227.73244606015456_dp, 352.66878271895433_dp, 550.9427692926408_dp, 868.7360090031099_dp,&
+ 1383.5494745755586_dp, 2227.296811182226_dp, 3628.5346977825025_dp, 5993.829605644713_dp, 10082.06745111222_dp, 17463.261532301312_dp, 32186.387908159864_dp,&
+ 69962.03966745277_dp, 59964.04274551442_dp]
+ aw%aw_erange_matrix(:, 13) = [.16373958436697705_dp, 0.5101264978608379_dp, 0.9159896069529507_dp, 1.430480778525928_dp, 2.1183125355919272_dp, 3.069088155985158_dp,&
+ 4.410666493484344_dp, 6.328951180857867_dp, 9.097685942967209_dp, 13.123807198212786_dp, 19.017093457142934_dp, 27.69800527238066_dp, 40.56599533589728_dp,&
+ 59.76432998550568_dp, 88.60026000403526_dp, 132.21751623180904_dp, 198.68257999925436_dp, 300.7563968967366_dp, 458.81385584717975_dp, 705.7073030471846_dp,&
+ 1094.9631974180384_dp, 1714.7688190287618_dp, 2712.160181788416_dp, 4335.464784701027_dp, 7009.996439266402_dp, 11475.67124355327_dp, 19043.69699662228_dp,&
+ 32095.955514205307_dp, 55144.14939722096_dp, 97554.96015781426_dp, 183803.08980484723_dp, 427090.13572662364_dp, 0.33058526273756267_dp, 0.36885467782088144_dp,&
+ 0.450950093626708_dp, 0.5886660848688742_dp, 0.8017140595780422_dp, 1.12082540025602_dp, 1.592831379794522_dp, 2.2886261360881694_dp, 3.31553715895999_dp,&
+ 4.836588787162195_dp, 7.100671060940492_dp, 10.490115312417089_dp, 15.596294033961502_dp, 23.34074274734257_dp, 35.17091805226463_dp, 53.37952681146768_dp,&
+ 81.6305668168434_dp, 125.83495501612735_dp, 195.62426652036729_dp, 306.86047742079927_dp, 485.9640372839356_dp, 777.4791364469528_dp, 1257.4930839302167_dp,&
+ 2057.832096842602_dp, 3410.5310726374632_dp, 5731.642662527518_dp, 9785.587565752354_dp, 17033.465557765263_dp, 30505.194880449075_dp, 57794.75930208428_dp,&
+ 127350.9867284555_dp, 71374.61882211326_dp]
+ aw%aw_erange_matrix(:, 14) = [.16729345587752817_dp, 0.5220837915443625_dp, 0.9405741148525995_dp, 1.475915186417087_dp, 2.1988425579314264_dp, 3.2084229320437876_dp,&
+ 4.647658877867247_dp, 6.726900296718572_dp, 9.759556549152265_dp, 14.217184101692544_dp, 20.815259881214573_dp, 30.6479058416218_dp, 45.40134046704283_dp,&
+ 67.69506474900591_dp, 101.63225933231537_dp, 153.69629208332117_dp, 234.2259466666511_dp, 359.8693374590021_dp, 557.713000374505_dp, 872.3154950503812_dp,&
+ 1377.8469922115526_dp, 2199.339147354942_dp, 3550.4526300007215_dp, 5801.72143903217_dp, 9606.137468107807_dp, 16135.098020267218_dp, 27533.125876830458_dp,&
+ 47827.00298089529_dp, 84872.60988452473_dp, 155240.74372944486_dp, 301769.0915913182_dp, 717663.1356247213_dp, 0.3379034645137452_dp, 0.37881946738547795_dp,&
+ 0.46689089916190624_dp, 0.615406140323357_dp, 0.8467064090676832_dp, 1.1959082144868687_dp, 1.7170430113398156_dp, 2.4927824943410823_dp, 3.6497349710027573_dp,&
+ 5.382588868417295_dp, 7.992470539282596_dp, 11.948356757923296_dp, 17.986233607448835_dp, 27.27066375498558_dp, 41.66060391661398_dp, 64.15126447641241_dp,&
+ 99.61667730605177_dp, 156.07223690236458_dp, 246.84813859319397_dp, 394.3808745412634_dp, 636.9222168901913_dp, 1040.5940426531995_dp, 1721.4116028413248_dp,&
+ 2886.2600258571556_dp, 4910.7228383421725_dp, 8490.620025490385_dp, 14947.387548118924_dp, 26881.538126356885_dp, 49765.1843652489_dp, 97101.2613405646_dp,&
+ 217655.43736295513_dp, 04161.4023302288_dp]
+ aw%aw_erange_matrix(:, 15) = [.17199827765823103_dp, 0.5380059294727404_dp, 0.9736341997615289_dp, 1.5377352694938258_dp, 2.3097736290470463_dp, 3.402751176442763_dp,&
+ 4.982320081056548_dp, 7.295965784769458_dp, 10.718311338355647_dp, 15.822271186795035_dp, 23.491931948889743_dp, 35.10335805529794_dp, 52.81700264781087_dp,&
+ 80.05534788452564_dp, 122.29130031272524_dp, 188.3639662992407_dp, 292.70049836028585_dp, 459.11521059936763_dp, 727.3932946321102_dp, 1164.8655376002584_dp,&
+ 1887.0757702166622_dp, 3095.3089278858897_dp, 5145.990609712843_dp, 8681.612837930576_dp, 14883.222751239353_dp, 25969.45893893789_dp, 46211.24410112112_dp,&
+ 84069.60121476448_dp, 156951.2764731812_dp, 303071.86527144857_dp, 621318.3413283181_dp, 1540176.9421143653_dp, 0.3476062896043872_dp, 0.39221916200807294_dp,&
+ 0.4886942701051685_dp, 0.6525426235716102_dp, 0.9100580818924567_dp, 1.3030331602543401_dp, 1.8966193817904524_dp, 2.7919595402699877_dp, 4.146395650315994_dp,&
+ 6.205957727039082_dp, 9.35800145395578_dp, 14.217249893697428_dp, 21.767802513575838_dp, 33.599962887862425_dp, 52.309603978141894_dp, 82.17963968964122_dp,&
+ 130.3576745067898_dp, 208.91882658105692_dp, 338.53188644986636_dp, 555.0775251553036_dp, 921.7987850368266_dp, 1552.0204912904064_dp, 2652.486928566717_dp,&
+ 4607.857141150226_dp, 8149.500672123086_dp, 14702.176180519695_dp, 27120.413678845984_dp, 51329.09608829233_dp, 100319.89810256775_dp, 206207.35016280194_dp, 478990.19443877833_dp, 773158.149536881_dp]
+ aw%aw_erange_matrix(:, 16) = [.17588045499160682_dp, 0.5512257021498627_dp, 1.0013703118630188_dp, 1.5902434264445422_dp, 2.405215799012508_dp, 3.572121574953908_dp,&
+ 5.277810308974558_dp, 7.8050898047384285_dp, 11.587777615192842_dp, 17.298487998001825_dp, 25.990127895451295_dp, 39.32634673857857_dp, 59.96085024576093_dp,&
+ 92.16864779688744_dp, 142.9088285424604_dp, 223.63608103002358_dp, 353.42944347083966_dp, 564.4730793406918_dp, 911.8045474251959_dp, 1490.9411871748462_dp,&
+ 2470.3259539694427_dp, 4152.227298440316_dp, 7089.513439000162_dp, 12314.898215191599_dp, 21802.90624200313_dp, 39428.49288596958_dp, 73023.82463664327_dp,&
+ 138969.14164413267_dp, 272986.4175263669_dp, 557893.4292914037_dp, 1213363.1419136985_dp, 3160013.276178309_dp, 0.35562539358245254_dp, 0.4034598630828778_dp,&
+ 0.507310698035364_dp, 0.6847544241793833_dp, 0.965797905499124_dp, 1.3985904597574628_dp, 2.0590328917447116_dp, 3.0664136286150927_dp, 4.608786136806865_dp,&
+ 6.9844140449501895_dp, 10.67005177539468_dp, 16.434554413045298_dp, 25.529954614876807_dp, 40.0165712983268_dp, 63.323071537954775_dp, 101.22419148541576_dp,&
+ 163.5720951785129_dp, 267.4096498030514_dp, 442.6620147937182_dp, 742.7299414402248_dp, 1264.594124324258_dp, 2187.7911393276054_dp, 3851.763119153975_dp,&
+ 6913.383865787345_dp, 12677.15458167547_dp, 23810.25092763602_dp, 45950.63865686885_dp, 91498.37485707413_dp, 189213.13598878586_dp, 412506.46573426365_dp, 1004859.506854019_dp, 757500.169762731_dp]
+ aw%aw_erange_matrix(:, 17) = [.18118431919794764_dp, 0.569409896731795_dp, 1.0399575954447753_dp, 1.6642774050832718_dp, 2.5416705589038666_dp, 3.817686030211855_dp,&
+ 5.712321227186271_dp, 8.564613330770575_dp, 12.904350409701964_dp, 19.568888331266418_dp, 29.895695056866206_dp, 46.04343093576417_dp, 71.5338357343432_dp,&
+ 112.17788900752778_dp, 177.6801488903931_dp, 284.45814060206254_dp, 460.674367791145_dp, 755.3691485577447_dp, 1255.340718976754_dp, 2116.97044167198_dp,&
+ 3627.5472563405187_dp, 6326.311406095248_dp, 11249.843141984617_dp, 20444.63279555149_dp, 38074.51328278192_dp, 72907.33134133912_dp, 144152.9579642091_dp,&
+ 295906.8845605476_dp, 635237.5946890834_dp, 1441541.5594042293_dp, 3533032.483017847_dp, 10300282.297035703_dp, 0.3666004567229466_dp, 0.41909533951682115_dp,&
+ 0.5337007693305699_dp, 0.7311922617920863_dp, 1.047397173851464_dp, 1.5405811924145458_dp, 2.3040410310537687_dp, 3.4869635940224217_dp, 5.328980129783192_dp,&
+ 8.21786366292428_dp, 12.786862454319088_dp, 20.0807884362153_dp, 31.842977578575024_dp, 51.017784629932365_dp, 82.64330507271109_dp, 135.4622543365706_dp,&
+ 224.87803543778475_dp, 378.47920097589025_dp, 646.570836391214_dp, 1122.6914600829598_dp, 1984.5495359592944_dp, 3577.888523900694_dp, 6593.427321251175_dp,&
+ 12452.706002367568_dp, 24181.569964546125_dp, 48474.222324463255_dp, 100819.77620242331_dp, 219012.9151368635_dp, 501508.5608275271_dp, 1228961.4319415095_dp, 3359678.97519788_dp, 3198823.17240385_dp]
+ aw%aw_erange_matrix(:, 18) = [0.1860758083606257_dp, 0.5863105731285033_dp, 1.0762838189916888_dp, 1.735025194760996_dp, 2.6741091733730666_dp, 4.059774820324427_dp,&
+ 6.147499799667448_dp, 9.337719533159323_dp, 14.267190355767958_dp, 21.960866171726565_dp, 34.08763874663045_dp, 53.39659047772489_dp, 84.47130014903539_dp,&
+ 135.05292206821736_dp, 218.3968931937055_dp, 357.54107328410043_dp, 593.1761358820205_dp, 998.4464642388938_dp, 1707.390489925032_dp, 2970.9030847374506_dp,&
+ 5269.79573455244_dp, 9550.044752723195_dp, 17728.825622420598_dp, 33825.049900245765_dp, 66597.83794457617_dp, 136026.81652248927_dp, 290225.5203619125_dp,&
+ 652973.7303844218_dp, 1570277.6349969232_dp, 4120560.3068352453_dp, 12225526.961836666_dp, 44976022.1592941_dp, 0.37674253105568495_dp, 0.43381021502950023_dp,&
+ 0.5590636422872557_dp, 0.7766587789599726_dp, 1.1286591474829935_dp, 1.68435592509438_dp, 2.5563667570796293_dp, 3.9277652235068583_dp, 6.097912064812507_dp,&
+ 9.560625610789286_dp, 15.139088266420053_dp, 24.221728239197674_dp, 39.180550580116204_dp, 64.12452706067008_dp, 106.27918892115885_dp, 178.55890322928792_dp,&
+ 304.458022589578_dp, 527.5532342378145_dp, 930.4049107379313_dp, 1673.1477374753613_dp, 3074.6018027427394_dp, 5788.391058089275_dp, 11199.697804802257_dp,&
+ 22357.499058820344_dp, 46274.36537417859_dp, 99934.30172443499_dp, 227100.46858913172_dp, 549456.1902431552_dp, 1439654.5954696422_dp, 4195690.360297783_dp,&
+ 14287820.480068853_dp, 67797329.79665162_dp]
+ aw%aw_erange_matrix(:, 19) = [.18894944364096963_dp, 0.5962994473518639_dp, 1.0979679811546372_dp, 1.7777457879798018_dp, 2.755038431602313_dp, 4.2094890725295695_dp,&
+ 6.419910672165012_dp, 9.827743718777555_dp, 15.14232519057394_dp, 23.518028627832294_dp, 36.85642384608609_dp, 58.3288648866487_dp, 93.29351960290545_dp,&
+ 150.92965910813132_dp, 247.19917473345893_dp, 410.3110727485798_dp, 691.0051346282855_dp, 1182.327758062675_dp, 2058.578907101761_dp, 3654.0712480702805_dp,&
+ 6627.183883848432_dp, 12313.689493852524_dp, 23517.234882837332_dp, 46357.167452919886_dp, 94815.65398959102_dp, 202633.14120244567_dp, 456833.45962230937_dp,&
+ 1101461.096498392_dp, 2900225.249530281_dp, 8637618.748843128_dp, 31160984.654377617_dp, 163046130.3896004_dp, 0.3827101036463066_dp, 0.4425913279562002_dp,&
+ 0.5744425048624656_dp, 0.804618202373891_dp, 1.179281838121873_dp, 1.7750696801469283_dp, 2.717660210867893_dp, 4.213395860766345_dp, 6.603340508278996_dp,&
+ 10.45667355729473_dp, 16.73411042964203_dp, 27.07791316760568_dp, 44.334509463025526_dp, 73.51209156253726_dp, 123.56723754128413_dp, 210.80455542346078_dp,&
+ 365.486536699493_dp, 644.9928757856525_dp, 1160.7129102321292_dp, 2134.627971456765_dp, 4022.319779194768_dp, 7790.4608937563735_dp, 15569.825611679273_dp,&
+ 32269.164071811185_dp, 69800.37245131386_dp, 158930.03677550773_dp, 385455.2889064046_dp, 1013100.9672579938_dp, 2964362.2649549907_dp, 10115616.277159294_dp,&
+ 44251495.17814687_dp, 24622278.5292175_dp]
+ case(34)
+ aw%energy_range(:) = [9649.0_dp, 15161.0_dp, 29986.0_dp, 49196.0_dp, 109833.0_dp, 276208.0_dp, 852991.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.13207515772844727_dp, 0.405991108403864_dp, 0.7100791180957539_dp, 1.0674316993343833_dp, 1.5058443663983385_dp, 2.0602382660689633_dp,&
+ 2.7757484556313985_dp, 3.711806532052663_dp, 4.947645044945255_dp, 6.589801356244469_dp, 8.782420666111134_dp, 11.721478364771365_dp, 15.674500523350034_dp,&
+ 21.008017787373205_dp, 28.22593014264274_dp, 38.02331749903241_dp, 51.362195208386105_dp, 69.57856923496088_dp, 94.53432041984598_dp, 128.83359338669658_dp,&
+ 176.13249956696887_dp, 241.58470670964914_dp, 332.48668514742263_dp, 459.220222708152_dp, 636.6470551378719_dp, 886.216031469228_dp, 1239.261662676278_dp,&
+ 1742.4871050895674_dp, 2467.9964867366607_dp, 3534.353825869125_dp, 5159.135288744986_dp, 7820.30687542924_dp, 12915.999073999303_dp, 27423.79759942945_dp,&
+ 0.26576346823795405_dp, 0.2854396551016808_dp, 0.32655197737161484_dp, 0.39274601046287516_dp, 0.48984881388427076_dp, 0.6263944482633245_dp, 0.8144408041785135_dp,&
+ 1.070757575293203_dp, 1.4185065739762008_dp, 1.889596892023973_dp, 2.527980829463319_dp, 3.3942720864211324_dp, 4.572231822130947_dp, 6.17790432405361_dp,&
+ 8.372526211327902_dp, 11.380831596076106_dp, 15.517105781570788_dp, 21.222416096494825_dp, 29.118047224727174_dp, 40.08257127813093_dp, 55.363655573112425_dp,&
+ 76.74148031407067_dp, 106.77011264742791_dp, 149.13984256372788_dp, 209.23574802895516_dp, 295.0380382861162_dp, 418.6824781799572_dp, 599.4725232857328_dp,&
+ 870.5618605429147_dp, 1296.282804430787_dp, 2025.283801158086_dp, 3491.3059333297665_dp, 7474.317631875756_dp, 28531.55532533201_dp]
+ aw%aw_erange_matrix(:, 2) = [0.13599210879419024_dp, 0.41865733842571035_dp, 0.734387462880487_dp, 1.1087078459161832_dp, 1.5726641901039529_dp, 2.165714712843095_dp,&
+ 2.9394684766946595_dp, 3.962695691901657_dp, 5.328172864333448_dp, 7.162136411063943_dp, 9.637432516710518_dp, 12.991909466518228_dp, 17.55426383461847_dp,&
+ 23.78051806766095_dp, 32.30571538388694_dp, 44.01747962910964_dp, 60.161119876385705_dp, 82.49044121504559_dp, 113.48508380736385_dp, 156.6651752262542_dp,&
+ 217.04910217389076_dp, 301.823097180824_dp, 421.326779743335_dp, 590.5151234901978_dp, 831.1508175496598_dp, 1175.1475564541768_dp, 1669.8147612822702_dp,&
+ 2386.5033267913464_dp, 3436.11940867051_dp, 5000.901252994878_dp, 7412.324148921864_dp, 11389.23639096364_dp, 19014.75702535834_dp, 40656.29906587002_dp,&
+ 0.2737475207928825_dp, 0.2952786790800227_dp, 0.34039675533342323_dp, 0.4133708800225637_dp, 0.5210568682574819_dp, 0.6735634934463747_dp, 0.885293451950756_dp,&
+ 1.1764687033967232_dp, 1.575309481781747_dp, 2.1211239192365996_dp, 2.8686862980856427_dp, 3.8944530711305823_dp, 5.305413278430533_dp, 7.2517322156689525_dp,&
+ 9.944880861346203_dp, 13.683733937475726_dp, 18.89229644939318_dp, 26.1744814467069_dp, 36.39402095230821_dp, 50.791640045991635_dp, 71.15786208341221_dp,&
+ 100.0896105547862_dp, 141.37465650014659_dp, 200.57507440601208_dp, 285.9310387743719_dp, 409.81030920422364_dp, 591.1755952564811_dp, 860.2110797442753_dp,&
+ 1268.287932013144_dp, 1913.3787096119436_dp, 3017.958277485201_dp, 5225.5076295652025_dp, 11175.8295539236_dp, 42493.69287150706_dp]
+ aw%aw_erange_matrix(:, 3) = [0.14157456993085618_dp, 0.43680814305293825_dp, 0.7695603918544728_dp, 1.1691652838645754_dp, 1.6718472598074612_dp, 2.3244228725405374_dp,&
+ 3.189182451328711_dp, 4.350562914610808_dp, 5.924439306359134_dp, 8.071200190010469_dp, 11.014281956686672_dp, 15.066594360092068_dp, 20.668390911055305_dp,&
+ 28.44180291698298_dp, 39.26974002093017_dp, 54.41058484826287_dp, 75.66572466277076_dp, 105.6254757771726_dp, 148.03193881969935_dp, 208.3172512208018_dp,&
+ 294.4065207981018_dp, 417.9228078083311_dp, 596.0074159115596_dp, 854.090540688523_dp, 1230.1481604663468_dp, 1781.3282413698837_dp, 2594.479625814838_dp,&
+ 3803.497041610086_dp, 5619.84470555754_dp, 8392.880364891958_dp, 12752.616596160462_dp, 20039.19394160478_dp, 34069.0659733131_dp, 73716.52254207557_dp,&
+ 0.28514234691822854_dp, 0.30952051330129193_dp, 0.36082397822605955_dp, 0.444362626815503_dp, 0.5687241475224296_dp, 0.7466995085435535_dp, 0.9967403173431321_dp,&
+ 1.3451190863662297_dp, 1.8290618703769976_dp, 2.50126712171007_dp, 3.4364289749111423_dp, 4.740680380007788_dp, 6.565312747281522_dp, 9.12679076184029_dp,&
+ 12.73608082512356_dp, 17.84183040178123_dp, 25.094256075252144_dp, 35.44016472753401_dp, 50.26505189600494_dp, 71.60683168542646_dp, 102.47931445154013_dp,&
+ 147.3651890657808_dp, 212.9734421023194_dp, 309.41511024819323_dp, 452.05559786284186_dp, 664.5034127165376_dp, 983.6387878300005_dp, 1468.7306525598128_dp,&
+ 2220.152861116728_dp, 3425.255864392015_dp, 5497.180237430633_dp, 9607.611108068526_dp, 20546.39934902344_dp, 77652.80170951472_dp]
+ aw%aw_erange_matrix(:, 4) = [0.14537972365704172_dp, 0.44924937732846576_dp, 0.7939069438582139_dp, 1.2115293253508186_dp, 1.742274641402974_dp, 2.438646450121879_dp,&
+ 3.3713296629150684_dp, 4.637276320033501_dp, 6.371112976811227_dp, 8.761403563453904_dp, 12.07400661126176_dp, 16.685826322050936_dp, 23.133850907384492_dp,&
+ 32.18677637709266_dp, 44.95016073622998_dp, 63.02161541345043_dp, 88.72107581753308_dp, 125.43437293871429_dp, 178.12881222660047_dp, 254.13153300040636_dp,&
+ 364.31201181146474_dp, 524.8905530158796_dp, 760.2239712046822_dp, 1107.130506542137_dp, 1621.6666690030702_dp, 2389.8720059435745_dp, 3545.100289215905_dp,&
+ 5296.792046393856_dp, 7980.859332173258_dp, 12157.208254096504_dp, 18833.87560950116_dp, 30128.29725464392_dp, 51981.56843007888_dp, 113581.24285918285_dp,&
+ 0.29292046810329686_dp, 0.31938180850986814_dp, 0.3752391615051481_dp, 0.4666272739869208_dp, 0.6035184960523118_dp, 0.8008736626361799_dp, 1.0804648717121432_dp,&
+ 1.4736003482843745_dp, 2.025118651024602_dp, 2.7992210995810174_dp, 3.8880019577883864_dp, 5.423967095382597_dp, 7.598483671540265_dp, 10.689098259656856_dp,&
+ 15.100189404799776_dp, 21.423785021626927_dp, 30.53105704736921_dp, 43.71077401338752_dp, 62.88009577250318_dp, 90.90758923336087_dp, 132.11161052090677_dp,&
+ 193.0349397957077_dp, 283.65875554453504_dp, 419.32384092692257_dp, 623.8101438332048_dp, 934.3678665192813_dp, 1410.2058150916341_dp, 2147.682363184511_dp,&
+ 3310.5494277589387_dp, 5201.420046514296_dp, 8473.557800314775_dp, 14944.543756287507_dp, 32001.381350595566_dp, 120417.37064242488_dp]
+ aw%aw_erange_matrix(:, 5) = [0.15111478683237578_dp, 0.46811081455805653_dp, 0.8311975658154092_dp, 1.277245657117571_dp, 1.8530267811044683_dp, 2.6207793743639676_dp,&
+ 3.6658104514987024_dp, 5.107246498350614_dp, 7.113506495693816_dp, 9.924804821974032_dp, 13.886131394604528_dp, 19.49590677142994_dp, 27.47820253689281_dp,&
+ 38.89058150232696_dp, 55.28609346493793_dp, 78.95811810682723_dp, 113.31277487728954_dp, 163.43910700431258_dp, 236.9880966222402_dp, 345.5375832850856_dp,&
+ 506.7277789266936_dp, 747.6291874168176_dp, 1110.0992865921862_dp, 1659.3801603581437_dp, 2498.036749955731_dp, 3788.815996745633_dp, 5792.691112251481_dp,&
+ 8933.562233913393_dp, 13912.5117339868_dp, 21925.010151757728_dp, 35138.25619155491_dp, 58037.885439910475_dp, 102878.64576803103_dp, 228949.87062864064_dp,&
+ 0.30466116249925723_dp, 0.33448999997528_dp, 0.39775748201433164_dp, 0.5020431600763641_dp, 0.6597680435379347_dp, 0.8897794356898496_dp, 1.2198845885842693_dp,&
+ 1.6906902612632702_dp, 2.361327809416546_dp, 3.317974468669039_dp, 4.686572913471436_dp, 6.651901833209751_dp, 9.486316315170766_dp, 13.593305414380533_dp,&
+ 19.57390295671377_dp, 28.32858472187177_dp, 41.21465830698257_dp, 60.291072612452794_dp, 88.70200998589976_dp, 131.28259205540442_dp, 195.52312215176198_dp,&
+ 293.11741299959453_dp, 442.472251954802_dp, 672.8167062941227_dp, 1031.0121854686051_dp, 1593.012339907218_dp, 2483.590841950321_dp, 3911.6669142200035_dp,&
+ 6238.5231601672385_dp, 10129.751559788456_dp, 16981.74160635827_dp, 30536.056841551963_dp, 65732.37502124789_dp, 245660.71368655932_dp]
+ aw%aw_erange_matrix(:, 6) = [0.15704353232796245_dp, 0.4877544479660704_dp, 0.8705376156017336_dp, 1.3476766920864_dp, 1.9737426791979278_dp, 2.8227090946785225_dp,&
+ 3.997888328321955_dp, 5.646288443196994_dp, 7.979713585250564_dp, 11.306104853980733_dp, 16.076474036543857_dp, 22.955699193585055_dp, 32.930053373920856_dp,&
+ 47.47165037958756_dp, 68.79170082433475_dp, 100.23337165106483_dp, 146.88580759062535_dp, 216.55141603131435_dp, 321.2823482312382_dp, 479.84253008685556_dp,&
+ 721.6893163095895_dp, 1093.4758256486132_dp, 1669.780298225661_dp, 2571.0074565627824_dp, 3993.6144689187036_dp, 6261.819958404189_dp, 9917.405887043775_dp,&
+ 15878.648337580931_dp, 25729.53619615957_dp, 42273.37458242063_dp, 70711.43133488682_dp, 121772.29407575646_dp, 223895.20974520067_dp, 511167.1805753637_dp,&
+ 0.3168215245682693_dp, 0.35043246766637764_dp, 0.42209228667081694_dp, 0.5411651568675625_dp, 0.7231338255849368_dp, 0.9917838145432007_dp, 1.3827323888424163_dp,&
+ 1.948858523758149_dp, 2.7685520945936393_dp, 3.958248763359216_dp, 5.69155685455881_dp, 8.22860474914602_dp, 11.961351425605036_dp, 17.48401674923339_dp,&
+ 25.70334691811683_dp, 38.01255695679674_dp, 56.567920087611036_dp, 84.73230593273999_dp, 127.79279074297057_dp, 194.13262416830213_dp, 297.16429850617567_dp,&
+ 458.5516775688101_dp, 713.6415082198464_dp, 1120.7309215735056_dp, 1777.0914240859645_dp, 2847.100049696002_dp, 4612.5746467497465_dp, 7565.363105491919_dp,&
+ 12586.173245720442_dp, 21325.994478121225_dp, 37197.937321555175_dp, 68943.1032010462_dp, 150241.71258102785_dp, 557720.3208697784_dp]
+ aw%aw_erange_matrix(:, 7) = [0.16336922513552726_dp, 0.5088837963863347_dp, 0.9134464251208241_dp, 1.4258068793865757_dp, 2.110076760757019_dp, 3.0549223319570658_dp,&
+ 4.386714080773768_dp, 6.288970678299134_dp, 9.031595056512524_dp, 13.015314763001339_dp, 18.83983365553746_dp, 27.40919724979278_dp, 40.09598751880866_dp,&
+ 58.99925287825027_dp, 87.35305062053737_dp, 130.1791624944713_dp, 195.3394286468929_dp, 295.2486883643026_dp, 449.6914179453214_dp, 690.5032975197853_dp,&
+ 1069.4420394766496_dp, 1671.582707097392_dp, 2638.4152977365293_dp, 4208.234704650762_dp, 6787.845837025887_dp, 11081.975915584215_dp, 18331.11464078846_dp,&
+ 30757.7543831196_dp, 52425.18373362508_dp, 90952.31947001838_dp, 161183.38574164535_dp, 294404.0420740371_dp, 571514.7455391894_dp, 1357785.7335867172_dp,&
+ 0.3298231494705116_dp, 0.3678238583365475_dp, 0.44931443538568944_dp, 0.5859423647480262_dp, 0.7971613283485441_dp, 1.1132755348536536_dp, 1.5804195782403758_dp,&
+ 2.26835630112171_dp, 3.2825754864813064_dp, 4.7831079906178315_dp, 7.01394730221803_dp, 10.349374600517876_dp, 15.367451600728_dp, 22.967563824366035_dp,&
+ 34.56004919104946_dp, 52.374936525753725_dp, 79.96951316778983_dp, 123.07138037510275_dp, 190.99409829094074_dp, 299.04206165572833_dp, 472.6466080518463_dp,&
+ 754.5744583501951_dp, 1217.6699793620016_dp, 1987.724673849413_dp, 3285.207068806235_dp, 5502.805705516988_dp, 9352.508394580818_dp, 16151.576514128332_dp,&
+ 28398.10726253618_dp, 51001.74394184054_dp, 94285.04834791286_dp, 183730.02847568074_dp, 411506.64532360405_dp, 1520426.766419325_dp]
+ aw%aw_erange_matrix(:, 8) = [0.1835103101234003_dp, 0.5774305061474206_dp, 1.057140472868453_dp, 1.697614005082806_dp, 2.6038279115366483_dp, 3.930849397069668_dp,&
+ 5.914914021102437_dp, 8.92301131893533_dp, 13.533362340789761_dp, 20.667776233995074_dp, 31.812016357593226_dp, 49.387219863328404_dp, 77.3839092638016_dp,&
+ 122.4588606715459_dp, 195.86011110608575_dp, 316.8577691536953_dp, 518.9611571628808_dp, 861.3906597021048_dp, 1450.6667756885272_dp, 2482.126411324662_dp,&
+ 4321.685991308644_dp, 7671.18540800507_dp, 13912.797854700362_dp, 25850.79390530169_dp, 49371.03198418239_dp, 97320.21724486594_dp, 199052.03066138524_dp,&
+ 425399.7542270562_dp, 959057.1525395216_dp, 2312357.9736451125_dp, 6088604.151380904_dp, 18133512.159556706_dp, 65418675.293680795_dp, 342296590.6151682_dp,&
+ 0.37142071027541074_dp, 0.4260563273244676_dp, 0.5456348676942346_dp, 0.752484593582803_dp, 1.0852868522175914_dp, 1.6073303748410037_dp, 2.4206700397850627_dp,&
+ 3.6897704463837764_dp, 5.681035810947625_dp, 8.82947962399161_dp, 13.852405454162984_dp, 21.945623429966453_dp, 35.126642589694754_dp, 56.843590502572916_dp,&
+ 93.0724205769061_dp, 154.32725344417676_dp, 259.4111633804356_dp, 442.5533297274132_dp, 767.2854489636625_dp, 1354.0674261637732_dp, 2436.7445344093326_dp,&
+ 4481.335149019925_dp, 8444.272788875625_dp, 16354.953153653125_dp, 32686.61977168015_dp, 67744.54837929386_dp, 146536.159793689_dp, 333651.2446730961_dp,&
+ 809207.8445405798_dp, 2126855.0754410354_dp, 6223266.011027118_dp, 21236461.045184538_dp, 92901077.9747871_dp, 681507114.6255051_dp]
+ end select
+
+ end subroutine set_aw_array_omega
+
+ !> \brief Unpacks the minimax coefficients for the desired energy range
+ !! @param[in] grid_size - size of the grid
+ !! @param[in] e_range - the selected energy range
+ !! @param[inout] ac_we - vector containing coefficients and weights
+ !! @param[out] ierr - error code
+ subroutine get_points_weights_omega(grid_size, e_range, ac_we, ierr, erange_list)
+ integer, intent(in) :: grid_size
+ real(kind=dp), intent(in) :: e_range
+ real(kind=dp), dimension(2* grid_size), intent(inout) :: ac_we
+ integer, intent(out) :: ierr
+ real(kind=dp),optional,allocatable,intent(out) :: erange_list(:)
+
+ !> Internal variables
+ integer :: kloc, bup
+ type(er_aw_aux) :: aw
+ real(kind=dp) :: e_ratio
+
+ !> Begin work
+ ierr = 0
+ if (.not. any(omega_npoints_supported == grid_size)) then
+ ierr = 1
+ _REGISTER_EXC("The grid size you chose is not available.")
+ return
+ end if
+
+ ! Find location of grid size
+ !kloc = findloc(omega_npoints_supported, grid_size, 1)
+ do kloc=1,size(omega_npoints_supported)
+ if (omega_npoints_supported(kloc) == grid_size) exit
+ end do
+ bup = energy_ranges_grids(kloc)
+
+ ! Allocate and set type elements
+ allocate(aw%energy_range(bup))
+ allocate(aw%aw_erange_matrix(2*grid_size, bup+1))
+ call set_aw_array_omega(grid_size, aw)
+
+ ! Get coefficients and weights
+ e_ratio = 1.0_dp
+ call aw%get_coeff_weight(grid_size, bup, e_range, ac_we, e_ratio)
+ ac_we(:) = ac_we(:) / e_ratio
+
+ if (present(erange_list)) then
+ allocate(erange_list(bup))
+ erange_list(:) = aw%energy_range
+ end if
+
+ ! Deallocate
+ deallocate(aw%energy_range)
+ deallocate(aw%aw_erange_matrix)
+
+ end subroutine get_points_weights_omega
+
+end module minimax_omega
diff --git a/GX-PAW/common/src/17_minimax/minimax_omega.o b/GX-PAW/common/src/17_minimax/minimax_omega.o
new file mode 100644
index 00000000..52f8b3c1
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/minimax_omega.o differ
diff --git a/GX-PAW/common/src/17_minimax/minimax_tau.F90 b/GX-PAW/common/src/17_minimax/minimax_tau.F90
new file mode 100644
index 00000000..65a76d37
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/minimax_tau.F90
@@ -0,0 +1,2957 @@
+! ***************************************************************************************************
+! Copyright (C) 2020-2023 Green-X library
+! This file is distributed under the terms of the APACHE2 License.
+!
+! ***************************************************************************************************
+!> \brief This module contains the tabulated minimax coefficients that approximate
+!> 1/x ~ sum_{i}^{k} w_i exp(-a_i * x) with x \in [1:rc]
+!> The arrays containing the coefficients and weights are stored in the `er_aw_aux` derived type.
+!> To extend this module, add the new entries to `tau_npoints_supported`, `energy_ranges_grids`,
+!> and fill the corresponding arrays in the derived type.
+!> reference: [https://doi.org/10.1021/ct5001268](https://doi.org/10.1021/ct5001268)
+!> reference: [https://doi.org/10.1103/PhysRevB.94.165109](https://doi.org/10.1103/PhysRevB.94.165109)
+! ***************************************************************************************************
+module minimax_tau
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "abi_common.h"
+#include "gx_common.h"
+ use defs_basis, only: dp
+ use m_errors
+ !use kinds, only: dp
+ !use error_handling, only: register_exc
+ use minimax_utils, only: er_aw_aux
+ implicit none
+
+ private
+
+ !> list with the number of points supported for the imag-time meshes
+ integer, parameter :: ngrids = 15
+ integer, parameter, public :: tau_npoints_supported(ngrids) = &
+ [6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
+ integer, parameter :: energy_ranges_grids(ngrids) = &
+ [13, 13, 15, 18, 21, 36, 37, 39, 40, 40, 19, 28, 28, 18, 7]
+
+ public :: get_points_weights_tau
+
+contains
+
+ !> \brief Stores the minimax coefficients for all supported grid sizes
+ !! @param[in] grid_size - size of the grid
+ !! @param[inout] aw - derived type of energy ranges and coefficients:weights
+ subroutine set_aw_array_tau(grid_size, aw)
+ integer, intent(in) :: grid_size
+ type(er_aw_aux), intent(inout) :: aw
+
+ select case(grid_size)
+ case(6)
+ aw%energy_range(:) = [1.5849_dp, 2.5119_dp, 3.9811_dp, 6.3096_dp, 10.0000_dp,&
+ 15.8489_dp, 25.1189_dp, 39.8107_dp, 63.0957_dp,&
+ 100.0000_dp, 158.4893_dp, 251.1886_dp, 398.1072_dp]
+ aw%aw_erange_matrix(:, 1) = [0.1534423273_dp, 0.8208030144_dp, 2.0763266378_dp, 4.0375449448_dp, 6.9549672561_dp, 11.4891014500_dp, 0.3951503587_dp,&
+ 0.9483584804_dp, 1.5813287669_dp, 2.3797403876_dp, 3.5481339356_dp, 5.8817260742_dp]
+ aw%aw_erange_matrix(:, 2) = [0.1205040984_dp, 0.6471706375_dp, 1.6495023836_dp, 3.2457669505_dp, 5.6881108969_dp, 9.6288261179_dp, 0.3106082604_dp,&
+ 0.7514093561_dp, 1.2720076125_dp, 1.9595162536_dp, 3.0177199430_dp, 5.2126406909_dp]
+ aw%aw_erange_matrix(:, 3) = [0.1005838109_dp, 0.5423052006_dp, 1.3926894069_dp, 2.7733849876_dp, 4.9443770209_dp, 8.5653072999_dp, 0.2594925337_dp,&
+ 0.6326994282_dp, 1.0873449642_dp, 1.7143811393_dp, 2.7218526271_dp, 4.8651609155_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0745374837_dp, 0.4051625322_dp, 1.0572745177_dp, 2.1597944537_dp, 3.9894964633_dp, 7.2237871301_dp, 0.1926489629_dp,&
+ 0.4774754563_dp, 0.8471482105_dp, 1.4011198768_dp, 2.3561324362_dp, 4.4544447949_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0543212595_dp, 0.2985187630_dp, 0.7962225874_dp, 1.6836229509_dp, 3.2535534712_dp, 6.1993107282_dp, 0.1407385830_dp,&
+ 0.3565694185_dp, 0.6603802522_dp, 1.1604683175_dp, 2.0803300697_dp, 4.1513349990_dp]
+ aw%aw_erange_matrix(:, 6) = [0.0391835514_dp, 0.2184067186_dp, 0.5994995153_dp, 1.3240424530_dp, 2.6961080409_dp, 5.4203992106_dp, 0.1018333153_dp,&
+ 0.2654513291_dp, 0.5191592345_dp, 0.9779410789_dp, 1.8692768235_dp, 3.9186061085_dp]
+ aw%aw_erange_matrix(:, 7) = [0.0280585989_dp, 0.1592861279_dp, 0.4535621551_dp, 1.0550856007_dp, 2.2736909699_dp, 4.8223631523_dp, 0.0732079266_dp,&
+ 0.1979229248_dp, 0.4135142943_dp, 0.8384872273_dp, 1.7033414620_dp, 3.7333533452_dp]
+ aw%aw_erange_matrix(:, 8) = [0.0199972626_dp, 0.1162433512_dp, 0.3464841610_dp, 0.8546910330_dp, 1.9521830237_dp, 4.3586015820_dp, 0.0524378861_dp,&
+ 0.1485110005_dp, 0.3348353302_dp, 0.7306689896_dp, 1.5701588368_dp, 3.5827524038_dp]
+ aw%aw_erange_matrix(:, 9) = [0.0142171937_dp, 0.0852259462_dp, 0.2684487069_dp, 0.7053207912_dp, 1.7059999114_dp, 3.9958883070_dp, 0.0375251243_dp,&
+ 0.1126916200_dp, 0.2761723166_dp, 0.6463232558_dp, 1.4619350572_dp, 3.4590599788_dp]
+ aw%aw_erange_matrix(:, 10) = [0.0101053619_dp, 0.0630473824_dp, 0.2117607106_dp, 0.5936601317_dp, 1.5164074935_dp, 3.7104671974_dp, 0.0269037518_dp,&
+ 0.0868884069_dp, 0.2322198587_dp, 0.5797744541_dp, 1.3735367201_dp, 3.3571561550_dp]
+ aw%aw_erange_matrix(:, 11) = [0.0071978808_dp, 0.0472825494_dp, 0.1706047888_dp, 0.5098889800_dp, 1.3697999561_dp, 3.4851720987_dp, 0.0193881718_dp,&
+ 0.0683650657_dp, 0.1990907295_dp, 0.5270527982_dp, 1.3013617514_dp, 3.2733697689_dp]
+ aw%aw_erange_matrix(:, 12) = [0.0051532116_dp, 0.0361337473_dp, 0.1407180752_dp, 0.4469079904_dp, 1.2563367882_dp, 3.3075069418_dp, 0.0141042618_dp,&
+ 0.0550896004_dp, 0.1740170543_dp, 0.4853305543_dp, 1.2427571345_dp, 3.2049369357_dp]
+ aw%aw_erange_matrix(:, 13) = [0.0037247921_dp, 0.0282947016_dp, 0.1190443970_dp, 0.3996406559_dp, 1.1688995465_dp, 3.1683119524_dp, 0.0104189611_dp,&
+ 0.0455916166_dp, 0.1550538183_dp, 0.4525504643_dp, 1.1957054331_dp, 3.1497211714_dp]
+ aw%aw_erange_matrix(:, 14) = [0.0027359974_dp, 0.0228248008_dp, 0.1034065810_dp, 0.3644298766_dp, 1.1022400211_dp, 3.0606897855_dp, 0.0078759332_dp,&
+ 0.0388225207_dp, 0.1408179499_dp, 0.4271560097_dp, 1.1585955269_dp, 3.1059901069_dp]
+ case(8)
+ aw%energy_range(:) = [10.0000_dp, 15.8489_dp, 25.1189_dp, 39.8107_dp, 63.0957_dp,&
+ 100.0000_dp, 158.4893_dp, 251.1886_dp, 398.1072_dp, 630.9573_dp,&
+ 1000.0000_dp, 1584.8932_dp, 2511.8864_dp]
+ aw%aw_erange_matrix(:, 1) = [0.0410961677_dp, 0.2215921004_dp, 0.5688643520_dp, 1.1299764766_dp, 1.9937655343_dp, 3.3208105202_dp, 5.4098231211_dp,&
+ 8.9485547791_dp, 0.1060264691_dp, 0.2585290567_dp, 0.4435891050_dp, 0.6929754149_dp, 1.0604512559_dp, 1.6406263618_dp, 2.6364875094_dp, 4.7875207638_dp]
+ aw%aw_erange_matrix(:, 2) = [0.0294981977_dp, 0.1602023889_dp, 0.4171350374_dp, 0.8475736875_dp, 1.5433057317_dp, 2.6707425150_dp, 4.5354087346_dp,&
+ 7.8277568864_dp, 0.0762269210_dp, 0.1885752622_dp, 0.3328646094_dp, 0.5428410724_dp, 0.8754790293_dp, 1.4275727338_dp, 2.4016019104_dp, 4.5261221056_dp]
+ aw%aw_erange_matrix(:, 3) = [0.0209899113_dp, 0.1150165283_dp, 0.3048862124_dp, 0.6373750483_dp, 1.2053450775_dp, 2.1776820981_dp, 3.8637697754_dp,&
+ 6.9570683332_dp, 0.0543478976_dp, 0.1368874674_dp, 0.2503214962_dp, 0.4296737848_dp, 0.7335320894_dp, 1.2599694377_dp, 2.2127956985_dp, 4.3145944146_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0148401762_dp, 0.0822239432_dp, 0.2229043947_dp, 0.4824765203_dp, 0.9529144401_dp, 1.8027560234_dp, 3.3434086590_dp,&
+ 6.2719911449_dp, 0.0385180029_dp, 0.0992010434_dp, 0.1894294562_dp, 0.3445892444_dp, 0.6234527401_dp, 1.1253809532_dp, 2.0573355093_dp, 4.1393353027_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0104449886_dp, 0.0586763377_dp, 0.1635760280_dp, 0.3689646813_dp, 0.7643187927_dp, 1.5159884551_dp, 2.9363772533_dp,&
+ 5.7267555407_dp, 0.0271911499_dp, 0.0719923583_dp, 0.1447925468_dp, 0.2804290097_dp, 0.5370201382_dp, 1.0156145492_dp, 1.9274472597_dp, 3.9922032180_dp]
+ aw%aw_erange_matrix(:, 6) = [0.0073303679_dp, 0.0418998419_dp, 0.1209028303_dp, 0.2859242910_dp, 0.6229028126_dp, 1.2950331297_dp, 2.6150915219_dp,&
+ 5.2886811820_dp, 0.0191536972_dp, 0.0524874990_dp, 0.1121483173_dp, 0.2317178191_dp, 0.4683927372_dp, 0.9251988681_dp, 1.8180761389_dp, 3.8678537709_dp]
+ aw%aw_erange_matrix(:, 7) = [0.0051372225_dp, 0.0300161640_dp, 0.0903142204_dp, 0.2250889082_dp, 0.5162665984_dp, 1.1235047008_dp, 2.3595117299_dp,&
+ 4.9341336214_dp, 0.0134857752_dp, 0.0385736952_dp, 0.0882435850_dp, 0.1944219012_dp, 0.4134424375_dp, 0.8503209725_dp, 1.7256834115_dp, 3.7624829337_dp]
+ aw%aw_erange_matrix(:, 8) = [0.0036002613_dp, 0.0216336337_dp, 0.0684129319_dp, 0.1803598683_dp, 0.4353504991_dp, 0.9894641326_dp, 2.1550074529_dp,&
+ 4.6457957380_dp, 0.0095074576_dp, 0.0286789793_dp, 0.0706649087_dp, 0.1656344893_dp, 0.3692115544_dp, 0.7881982435_dp, 1.6476414680_dp, 3.6732307680_dp]
+ aw%aw_erange_matrix(:, 9) = [0.0025268045_dp, 0.0157375491_dp, 0.0527163930_dp, 0.1473061940_dp, 0.3735693722_dp, 0.8841524703_dp, 1.9907155422_dp,&
+ 4.4106669852_dp, 0.0067246311_dp, 0.0216513436_dp, 0.0576569758_dp, 0.1432645576_dp, 0.3335125532_dp, 0.7366874142_dp, 1.5818713728_dp, 3.5978167045_dp]
+ aw%aw_erange_matrix(:, 10) = [0.0017790505_dp, 0.0115988461_dp, 0.0414413896_dp, 0.1227558108_dp, 0.3261731917_dp, 0.8011585238_dp, 1.8585679204_dp,&
+ 4.2189781344_dp, 0.0047836527_dp, 0.0166593084_dp, 0.0479683727_dp, 0.1258102636_dp, 0.3047080911_dp, 0.6941204359_dp, 1.5267225054_dp, 3.5344255520_dp]
+ aw%aw_erange_matrix(:, 11) = [0.0012593172_dp, 0.0086977894_dp, 0.0333179986_dp, 0.1044408163_dp, 0.2897047768_dp, 0.7357044190_dp, 1.7524150854_dp,&
+ 4.0631467031_dp, 0.0034335494_dp, 0.0131079750_dp, 0.0407111652_dp, 0.1121712160_dp, 0.2815295945_dp, 0.6591400198_dp, 1.4808101311_dp, 3.4815299149_dp]
+ aw%aw_erange_matrix(:, 12) = [0.0008992926_dp, 0.0066689908_dp, 0.0274568200_dp, 0.0907619245_dp, 0.2616803521_dp, 0.6842860055_dp, 1.6676681182_dp,&
+ 3.9374424568_dp, 0.0024984514_dp, 0.0105791706_dp, 0.0352648241_dp, 0.1015481471_dp, 0.2630137361_dp, 0.6306824085_dp, 1.4430323891_dp, 3.4379149107_dp]
+ aw%aw_erange_matrix(:, 13) = [0.0006511970_dp, 0.0052555004_dp, 0.0232331300_dp, 0.0805769027_dp, 0.2402766535_dp, 0.6442562263_dp, 1.6007710076_dp,&
+ 3.8373360452_dp, 0.0018548778_dp, 0.0087795311_dp, 0.0311892270_dp, 0.0933425139_dp, 0.2484004110_dp, 0.6078709938_dp, 1.4124537209_dp, 3.4025456698_dp]
+ aw%aw_erange_matrix(:, 14) = [0.0004817072_dp, 0.0042773567_dp, 0.0202081663_dp, 0.0730638184_dp, 0.2241387198_dp, 0.6135835799_dp, 1.5489149535_dp,&
+ 3.7591686639_dp, 0.0014161889_dp, 0.0075045226_dp, 0.0281686456_dp, 0.0870986616_dp, 0.2370801484_dp, 0.5899701185_dp, 1.3882618018_dp, 3.3745190976_dp]
+ case(10)
+ aw%energy_range(:) = [10.0000_dp, 15.8489_dp, 25.1189_dp, 39.8107_dp, 63.0957_dp, 100.0000_dp,&
+ 158.4893_dp, 251.1886_dp, 398.1072_dp, 630.9573_dp, 1000.0000_dp,&
+ 1584.8932_dp, 2511.8864_dp, 3981.0717_dp, 6309.5734_dp]
+ aw%aw_erange_matrix(:, 1) = [0.0330697624_dp, 0.1768078438_dp, 0.4464853449_dp, 0.8637994095_dp, 1.4665304201_dp, 2.3172114001_dp, 3.5172089430_dp,&
+ 5.2328732180_dp, 7.7617287679_dp, 11.7952949789_dp, 0.0851548885_dp, 0.2041221377_dp, 0.3387624704_dp, 0.5020218013_dp, 0.7136389791_dp,&
+ 1.0042283384_dp, 1.4225951252_dp, 2.0553775439_dp, 3.1013168391_dp, 5.3215604239_dp]
+ aw%aw_erange_matrix(:, 2) = [0.0236720154_dp, 0.1271138180_dp, 0.3236822915_dp, 0.6344940443_dp, 1.0975870642_dp, 1.7773429154_dp, 2.7785871376_dp,&
+ 4.2719025722_dp, 6.5582697626_dp, 10.3263813643_dp, 0.0610159587_dp, 0.1475426219_dp, 0.2490140072_dp, 0.3787936644_dp, 0.5578985972_dp,&
+ 0.8187105789_dp, 1.2113333425_dp, 1.8225764417_dp, 2.8490231857_dp, 5.0376131531_dp]
+ aw%aw_erange_matrix(:, 3) = [0.0167859311_dp, 0.0906140453_dp, 0.2331247893_dp, 0.4645377048_dp, 0.8225114978_dp, 1.3719280550_dp, 2.2188430810_dp,&
+ 3.5357560691_dp, 5.6260677965_dp, 9.1774382056_dp, 0.0433183177_dp, 0.1058666501_dp, 0.1824134653_dp, 0.2865259976_dp, 0.4400162724_dp,&
+ 0.6761202158_dp, 1.0455810781_dp, 1.6359664124_dp, 2.6436405908_dp, 4.8056680998_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0118170372_dp, 0.0641991517_dp, 0.1672645684_dp, 0.3401155680_dp, 0.6193913122_dp, 1.0690495497_dp, 1.7944040288_dp,&
+ 2.9682685375_dp, 4.8960358518_dp, 8.2659053716_dp, 0.0305390218_dp, 0.0756000893_dp, 0.1335956518_dp, 0.2180513278_dp, 0.3509424253_dp,&
+ 0.5655362558_dp, 0.9130793425_dp, 1.4827338153_dp, 2.4721207512_dp, 4.6114350814_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0082736336_dp, 0.0452968206_dp, 0.1198570122_dp, 0.2498047575_dp, 0.4701898609_dp, 0.8428723827_dp, 1.4710843779_dp,&
+ 2.5270093394_dp, 4.3178190934_dp, 7.5333932640_dp, 0.0214183290_dp, 0.0538519398_dp, 0.0981228090_dp, 0.1674591236_dp, 0.2833958314_dp,&
+ 0.4787566255_dp, 0.8054477304_dp, 1.3548062293_dp, 2.3266241431_dp, 4.4464016762_dp]
+ aw%aw_erange_matrix(:, 6) = [0.0057695951_dp, 0.0318850374_dp, 0.0859854511_dp, 0.1845984841_dp, 0.3607477727_dp, 0.6734363414_dp, 1.2230817482_dp,&
+ 2.1806860083_dp, 3.8549835580_dp, 6.9382542461_dp, 0.0149667333_dp, 0.0383470288_dp, 0.0724914643_dp, 0.1300892819_dp, 0.2318018691_dp,&
+ 0.4098643125_dp, 0.7169870686_dp, 1.2469010615_dp, 2.2020857144_dp, 4.3050004436_dp]
+ aw%aw_erange_matrix(:, 7) = [0.0040123212_dp, 0.0224292598_dp, 0.0619085873_dp, 0.1376297836_dp, 0.2803265917_dp, 0.5457959215_dp, 1.0313322018_dp,&
+ 1.9064099527_dp, 3.4810591957_dp, 6.4503500759_dp, 0.0104341288_dp, 0.0273555299_dp, 0.0540240668_dp, 0.1023930872_dp, 0.1920401273_dp,&
+ 0.3546405619_dp, 0.6437134573_dp, 1.1553442821_dp, 2.0949658889_dp, 4.1832825912_dp]
+ aw%aw_erange_matrix(:, 8) = [0.0027856541_dp, 0.0157937535_dp, 0.0448481728_dp, 0.1037925661_dp, 0.2209854440_dp, 0.4489803369_dp, 0.8818934417_dp,&
+ 1.6874467002_dp, 3.1766710704_dp, 6.0475787906_dp, 0.0072661315_dp, 0.0195941905_dp, 0.0407225136_dp, 0.0817423486_dp, 0.1611258077_dp,&
+ 0.3100532566_dp, 0.5827362547_dp, 1.0774384067_dp, 2.0026449628_dp, 4.0782983130_dp]
+ aw%aw_erange_matrix(:, 9) = [0.0019327474_dp, 0.0111525104_dp, 0.0327753346_dp, 0.0793548313_dp, 0.1769378304_dp, 0.3749891456_dp, 0.7645313671_dp,&
+ 1.5113972490_dp, 2.9273291880_dp, 5.7132711850_dp, 0.0050602718_dp, 0.0141268602_dp, 0.0311202095_dp, 0.0662243130_dp, 0.1368964938_dp,&
+ 0.2738596643_dp, 0.5318462411_dp, 1.0110650398_dp, 1.9230352100_dp, 3.9876880962_dp]
+ aw%aw_erange_matrix(:, 10) = [0.0013414763_dp, 0.0079135387_dp, 0.0242305726_dp, 0.0616336183_dp, 0.1440265775_dp, 0.3180415012_dp, 0.6717744197_dp,&
+ 1.3691124338_dp, 2.7222502593_dp, 5.4349420610_dp, 0.0035286728_dp, 0.0102803623_dp, 0.0241590001_dp, 0.0544702109_dp, 0.1177892252_dp,&
+ 0.2443886234_dp, 0.4893474221_dp, 0.9545715678_dp, 1.8545048283_dp, 3.9096100475_dp]
+ aw%aw_erange_matrix(:, 11) = [0.0009324064_dp, 0.0056560504_dp, 0.0181721289_dp, 0.0487120808_dp, 0.1192629003_dp, 0.2739191229_dp, 0.5980643983_dp,&
+ 1.2536520059_dp, 2.5531126726_dp, 5.2028197179_dp, 0.0024672655_dp, 0.0075741023_dp, 0.0190815196_dp, 0.0454982798_dp, 0.1026475177_dp,&
+ 0.2203452052_dp, 0.4538671149_dp, 0.9065751913_dp, 1.7956644412_dp, 3.8424989882_dp]
+ aw%aw_erange_matrix(:, 12) = [0.0006497444_dp, 0.0040833478_dp, 0.0138630492_dp, 0.0392312547_dp, 0.1005045507_dp, 0.2395418039_dp, 0.5392569146_dp,&
+ 1.1597390133_dp, 2.4134857725_dp, 5.0092570960_dp, 0.0017326137_dp, 0.0056676592_dp, 0.0153513377_dp, 0.0386046831_dp, 0.0906088701_dp,&
+ 0.2007206044_dp, 0.4242960863_dp, 0.8659292391_dp, 1.7453482692_dp, 3.7850453570_dp]
+ aw%aw_erange_matrix(:, 13) = [0.0004546223_dp, 0.0029878372_dp, 0.0107866942_dp, 0.0322343304_dp, 0.0862209138_dp, 0.2126637392_dp, 0.4922674783_dp,&
+ 1.0833747559_dp, 2.2984274495_dp, 4.8483158018_dp, 0.0012247077_dp, 0.0043218651_dp, 0.0125921514_dp, 0.0332845904_dp, 0.0810286101_dp,&
+ 0.1847320073_dp, 0.3997482877_dp, 0.8317002528_dp, 1.7026006523_dp, 3.7361789668_dp]
+ aw%aw_erange_matrix(:, 14) = [0.0003200556_dp, 0.0022246315_dp, 0.0085816023_dp, 0.0270450051_dp, 0.0753063709_dp, 0.1916196153_dp, 0.4547477247_dp,&
+ 1.0214393206_dp, 2.2039990618_dp, 4.7151828791_dp, 0.0008740345_dp, 0.0033691497_dp, 0.0105393561_dp, 0.0291696470_dp, 0.0734134385_dp,&
+ 0.1717543874_dp, 0.3794887739_dp, 0.8030879371_dp, 1.6665845213_dp, 3.6949629981_dp]
+ aw%aw_erange_matrix(:, 15) = [0.0002273927_dp, 0.0016930353_dp, 0.0069960068_dp, 0.0231854324_dp, 0.0669605830_dp, 0.1751716668_dp, 0.4249074065_dp,&
+ 0.9714990965_dp, 2.1270679156_dp, 4.6059719000_dp, 0.0006324539_dp, 0.0026928112_dp, 0.0090069991_dp, 0.0259895933_dp, 0.0673853109_dp,&
+ 0.1612907871_dp, 0.3629137459_dp, 0.7794159919_dp, 1.6365795128_dp, 3.6605913731_dp]
+ aw%aw_erange_matrix(:, 16) = [0.0001638280_dp, 0.0013235929_dp, 0.0058560160_dp, 0.0203202808_dp, 0.0606089867_dp, 0.1624111567_dp, 0.4014057161_dp,&
+ 0.9317006239_dp, 2.0652164939_dp, 4.5176548597_dp, 0.0004668065_dp, 0.0022124398_dp, 0.0078651680_dp, 0.0235476809_dp, 0.0626594967_dp,&
+ 0.1529569671_dp, 0.3495462844_dp, 0.7601415052_dp, 1.6120023672_dp, 3.6324120602_dp]
+ case(12)
+ aw%energy_range(:) = [10.0000_dp, 15.8489_dp, 25.1189_dp, 39.8107_dp, 63.0957_dp, 100.0000_dp,&
+ 158.4893_dp, 251.1886_dp, 398.1072_dp, 630.9573_dp, 1000.0000_dp, 1584.8932_dp, 2511.8864_dp,&
+ 3981.0717_dp, 6309.5734_dp, 10000.0000_dp, 15848.9319_dp, 25118.8643_dp]
+ aw%aw_erange_matrix(:, 1) = [0.0276731293_dp, 0.1472866131_dp, 0.3687581752_dp, 0.7039332404_dp, 1.1723654412_dp, 1.8045683155_dp, 2.6469524305_dp,&
+ 3.7693192226_dp, 5.2773524399_dp, 7.3381749736_dp, 10.2488461667_dp, 14.7099922874_dp, 0.0711846766_dp, 0.1690895322_dp, 0.2757926388_dp,&
+ 0.3977636094_dp, 0.5441057435_dp, 0.7279147631_dp, 0.9682939485_dp, 1.2936786640_dp, 1.7493131133_dp, 2.4187704026_dp, 3.5024366141_dp, 5.7855524080_dp]
+ aw%aw_erange_matrix(:, 2) = [0.0197744403_dp, 0.1055540607_dp, 0.2657286900_dp, 0.5115778444_dp, 0.8622848926_dp, 1.3486298025_dp, 2.0182853816_dp,&
+ 2.9432989908_dp, 4.2321628138_dp, 6.0546789845_dp, 8.7089828257_dp, 12.8889838191_dp, 0.0509006255_dp, 0.1216171100_dp, 0.2005723407_dp,&
+ 0.2942623895_dp, 0.4121942175_dp, 0.5683208329_dp, 0.7828128482_dp, 1.0849323300_dp, 1.5201863096_dp, 2.1715313996_dp, 3.2362170757_dp, 5.4827819151_dp]
+ aw%aw_erange_matrix(:, 3) = [0.0139914438_dp, 0.0749462508_dp, 0.1899352964_dp, 0.3694953283_dp, 0.6321343467_dp, 1.0083502424_dp, 1.5460638227_dp,&
+ 2.3179957425_dp, 3.4336834940_dp, 5.0643777475_dp, 7.5093175535_dp, 11.4582109486_dp, 0.0360435732_dp, 0.0867256318_dp, 0.1449645046_dp,&
+ 0.2171731804_dp, 0.3130978055_dp, 0.4472033444_dp, 0.6401597909_dp, 0.9215937590_dp, 1.3374215538_dp, 1.9708906690_dp, 3.0177535019_dp, 5.2339591533_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0098233039_dp, 0.0528381746_dp, 0.1349852452_dp, 0.2659580878_dp, 0.4633451027_dp, 0.7567923091_dp, 1.1933915052_dp,&
+ 1.8450943819_dp, 2.8211687374_dp, 4.2936117871_dp, 6.5630286139_dp, 10.3169372291_dp, 0.0253298174_dp, 0.0614579856_dp, 0.1044042198_dp,&
+ 0.1604027682_dp, 0.2392238170_dp, 0.3554023577_dp, 0.5295956187_dp, 0.7916439851_dp, 1.1882714021_dp, 1.8038125350_dp, 2.8336933495_dp, 5.0241742006_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0068554341_dp, 0.0370564464_dp, 0.0955849405_dp, 0.1912568606_dp, 0.3405607339_dp, 0.5717808682_dp, 0.9302915137_dp,&
+ 1.4862655552_dp, 2.3478924769_dp, 3.6875108667_dp, 5.8073060489_dp, 9.3940946176_dp, 0.0176966619_dp, 0.0433653612_dp, 0.0751114198_dp,&
+ 0.1189110538_dp, 0.1843254395_dp, 0.2855556571_dp, 0.4429546072_dp, 0.6866338193_dp, 1.0644429943_dp, 1.6622940695_dp, 2.6760843207_dp, 4.8445700066_dp]
+ aw%aw_erange_matrix(:, 6) = [0.0047621174_dp, 0.0258922313_dp, 0.0675671842_dp, 0.1377372356_dp, 0.2516682757_dp, 0.4358989283_dp, 0.7335111111_dp,&
+ 1.2123305473_dp, 1.9789993531_dp, 3.2058934683_dp, 5.1968506439_dp, 8.6390361850_dp, 0.0123090460_dp, 0.0305206067_dp, 0.0541046151_dp,&
+ 0.0887139624_dp, 0.1434876371_dp, 0.2320235826_dp, 0.3742832810_dp, 0.6007236316_dp, 0.9604392059_dp, 1.5411563269_dp, 2.5398045385_dp, 4.6893655829_dp]
+ aw%aw_erange_matrix(:, 7) = [0.0032965068_dp, 0.0180490022_dp, 0.0477641980_dp, 0.0995665181_dp, 0.1874300857_dp, 0.3359256681_dp, 0.5855771225_dp,&
+ 1.0016134105_dp, 1.6888502670_dp, 2.8194249642_dp, 4.6987721274_dp, 8.0151195661_dp, 0.0085339378_dp, 0.0214595543_dp, 0.0391102006_dp,&
+ 0.0667625447_dp, 0.1129751216_dp, 0.1906296580_dp, 0.3193090639_dp, 0.5298124247_dp, 0.8724391547_dp, 1.4368081150_dp, 2.4212834056_dp, 4.5544745698_dp]
+ aw%aw_erange_matrix(:, 8) = [0.0022762644_dp, 0.0125677039_dp, 0.0338269925_dp, 0.0724068993_dp, 0.1409732198_dp, 0.2620656724_dp, 0.4736158009_dp,&
+ 0.8381994746_dp, 1.4586379799_dp, 2.5065758758_dp, 4.2889044537_dp, 7.4953768133_dp, 0.0059035786_dp, 0.0150972863_dp, 0.0284353503_dp,&
+ 0.0507789773_dp, 0.0900226433_dp, 0.1583351587_dp, 0.2749467359_dp, 0.4709220586_dp, 0.7976398186_dp, 1.3465944433_dp, 2.3178650924_dp, 4.4368325878_dp]
+ aw%aw_erange_matrix(:, 9) = [0.0015692112_dp, 0.0087519455_dp, 0.0240448765_dp, 0.0530894602_dp, 0.1072765322_dp, 0.2071777069_dp, 0.3882400731_dp,&
+ 0.7104394593_dp, 1.2745126394_dp, 2.2513920738_dp, 3.9492406835_dp, 7.0596133347_dp, 0.0040787492_dp, 0.0106444112_dp, 0.0208412874_dp,&
+ 0.0390928325_dp, 0.0726187626_dp, 0.1329358715_dp, 0.2389268087_dp, 0.4218108128_dp, 0.7338882151_dp, 1.2684530084_dp, 2.2274784048_dp, 4.3340445584_dp]
+ aw%aw_erange_matrix(:, 10) = [0.0010808702_dp, 0.0061030127_dp, 0.0171885376_dp, 0.0393301517_dp, 0.0827196472_dp, 0.1661050396_dp, 0.3226299268_dp,&
+ 0.6097857548_dp, 1.1261984299_dp, 2.0419146289_dp, 3.6661682448_dp, 6.6924544132_dp, 0.0028168777_dp, 0.0075342598_dp, 0.0154330800_dp,&
+ 0.0304965669_dp, 0.0593131883_dp, 0.1128213789_dp, 0.2095432740_dp, 0.3807404710_dp, 0.6794745486_dp, 1.2007255924_dp, 2.1484537810_dp, 4.2441834572_dp]
+ aw%aw_erange_matrix(:, 11) = [0.0007444375_dp, 0.0042674833_dp, 0.0123834195_dp, 0.0294995195_dp, 0.0647151559_dp, 0.1351401380_dp, 0.2718256132_dp,&
+ 0.5299318244_dp, 1.0060016190_dp, 1.8690725994_dp, 3.4292526441_dp, 6.3820141516_dp, 0.0019463550_dp, 0.0053641267_dp, 0.0115705684_dp,&
+ 0.0241262403_dp, 0.0490612250_dp, 0.0968006464_dp, 0.1854888062_dp, 0.3463341687_dp, 0.6330104563_dp, 1.1420475986_dp, 2.0794138297_dp, 4.1656658317_dp]
+ aw%aw_erange_matrix(:, 12) = [0.0005130705_dp, 0.0029969040_dp, 0.0090121194_dp, 0.0224440417_dp, 0.0514233406_dp, 0.1116185588_dp, 0.2322060971_dp,&
+ 0.4661910446_dp, 0.9081058970_dp, 1.7259054260_dp, 3.2303898959_dp, 6.1189723302_dp, 0.0013467807_dp, 0.0038499840_dp, 0.0087994505_dp,&
+ 0.0193674948_dp, 0.0411066473_dp, 0.0839811159_dp, 0.1657464888_dp, 0.3174854170_dp, 0.5933519921_dp, 1.0912778783_dp, 2.0192022809_dp, 4.0971686784_dp]
+ aw%aw_erange_matrix(:, 13) = [0.0003541405_dp, 0.0021177005_dp, 0.0066414300_dp, 0.0173517266_dp, 0.0415390587_dp, 0.0936217813_dp, 0.2011144128_dp,&
+ 0.4150562059_dp, 0.8280777004_dp, 1.6070223727_dp, 3.0632229700_dp, 5.8959440901_dp, 0.0009342370_dp, 0.0027926556_dp, 0.0067994457_dp,&
+ 0.0157843491_dp, 0.0348978173_dp, 0.0736865554_dp, 0.1495177964_dp, 0.2932983996_dp, 0.5595503883_dp, 1.0474552726_dp, 1.9668404301_dp, 4.0375772596_dp]
+ aw%aw_erange_matrix(:, 14) = [0.0002450328_dp, 0.0015091465_dp, 0.0049687254_dp, 0.0136527233_dp, 0.0341354342_dp, 0.0797616748_dp, 0.1765865877_dp,&
+ 0.3738789013_dp, 0.7625021866_dp, 1.5081991527_dp, 2.9226994333_dp, 5.7069942693_dp, 0.0006505188_dp, 0.0020530149_dp, 0.0053457983_dp,&
+ 0.0130665496_dp, 0.0300282048_dp, 0.0653990603_dp, 0.1361698664_dp, 0.2730416562_dp, 0.5308111938_dp, 1.0097601352_dp, 1.9214869313_dp, 3.9859370380_dp]
+ aw%aw_erange_matrix(:, 15) = [0.0001701376_dp, 0.0010875693_dp, 0.0037833625_dp, 0.0109476101_dp, 0.0285522959_dp, 0.0690278231_dp, 0.1571594905_dp,&
+ 0.3406410667_dp, 0.7087222805_dp, 1.4260874074_dp, 2.8047517783_dp, 5.5472853843_dp, 0.0004554191_dp, 0.0015341915_dp, 0.0042812667_dp,&
+ 0.0109920399_dp, 0.0261952113_dp, 0.0587184401_dp, 0.1251974104_dp, 0.2561136781_dp, 0.5064635464_dp, 0.9774854852_dp, 1.8824077828_dp, 3.9414177238_dp]
+ aw%aw_erange_matrix(:, 16) = [0.0001187248_dp, 0.0007951840_dp, 0.0029392994_dp, 0.0089567848_dp, 0.0243186289_dp, 0.0606825937_dp, 0.1417400945_dp,&
+ 0.3138020680_dp, 0.6646691425_dp, 1.3580347536_dp, 2.7061116698_dp, 5.4128869315_dp, 0.0003212717_dp, 0.0011689985_dp, 0.0034961439_dp,&
+ 0.0094011682_dp, 0.0231726278_dp, 0.0533353063_dp, 0.1161983613_dp, 0.2420232525_dp, 0.4859467156_dp, 0.9500293558_dp, 1.8489717513_dp, 3.9033068726_dp]
+ aw%aw_erange_matrix(:, 17) = [0.0000834432_dp, 0.0005922059_dp, 0.0023356082_dp, 0.0074845398_dp, 0.0210976147_dp, 0.0541859891_dp, 0.1295099966_dp,&
+ 0.2921841803_dp, 0.6287314551_dp, 1.3019414676_dp, 2.6241566957_dp, 5.3006121791_dp, 0.0002290980_dp, 0.0009110177_dp, 0.0029139485_dp,&
+ 0.0081785934_dp, 0.0207908695_dp, 0.0490106127_dp, 0.1088539140_dp, 0.2303716185_dp, 0.4687957030_dp, 0.9268838333_dp, 1.8206410245_dp, 3.8709984304_dp]
+ aw%aw_erange_matrix(:, 18) = [0.0000592658_dp, 0.0004512821_dp, 0.0019025862_dp, 0.0063934448_dp, 0.0186470165_dp, 0.0491400281_dp, 0.1198519988_dp,&
+ 0.2748801818_dp, 0.5996436460_dp, 1.2561293960_dp, 2.5567595977_dp, 5.2078458291_dp, 0.0001658923_dp, 0.0007282576_dp, 0.0024811714_dp,&
+ 0.0072403151_dp, 0.0189219666_dp, 0.0455586869_dp, 0.1029100002_dp, 0.2208331616_dp, 0.4546218887_dp, 0.9076157149_dp, 1.7969509606_dp, 3.8439691363_dp]
+ aw%aw_erange_matrix(:, 19) = [0.0000427539_dp, 0.0003536020_dp, 0.0015919883_dp, 0.0055863488_dp, 0.0167910186_dp, 0.0452482974_dp, 0.1122951892_dp,&
+ 0.2611820892_dp, 0.5763969601_dp, 1.2192345007_dp, 2.5021613308_dp, 5.1323956397_dp, 0.0001227292_dp, 0.0005986865_dp, 0.0021600744_dp,&
+ 0.0065244896_dp, 0.0174683766_dp, 0.0428338303_dp, 0.0981617995_dp, 0.2131383094_dp, 0.4430948941_dp, 0.8918475783_dp, 1.7774899045_dp, 3.8217552341_dp]
+ case(14)
+ aw%energy_range(:) = [10.0000_dp, 15.8489_dp, 25.1189_dp, 39.8107_dp, 63.0957_dp, 100.0000_dp,&
+ 158.4893_dp, 251.1886_dp, 398.1072_dp, 630.9573_dp, 1000.0000_dp, 1584.8932_dp, 2511.8864_dp,&
+ 3981.0717_dp, 6309.5734_dp, 10000.0000_dp, 15848.9319_dp, 25118.8643_dp, 39810.7171_dp, 63095.7344_dp, 100000.0000_dp]
+ aw%aw_erange_matrix(:, 1) = [0.0237936782_dp, 0.1262969955_dp, 0.3146137237_dp, 0.5959508382_dp, 0.9817872624_dp, 1.4893066488_dp, 2.1434983519_dp,&
+ 2.9801772260_dp, 4.0503393145_dp, 5.4269061190_dp, 7.2167997449_dp, 9.5870429977_dp, 12.8357453001_dp, 17.6753249521_dp, 0.0611672950_dp,&
+ 0.1445085894_dp, 0.2333087911_dp, 0.3312554161_dp, 0.4432468756_dp, 0.5759073007_dp, 0.7383747432_dp, 0.9433758083_dp, 1.2089173155_dp,&
+ 1.5616542882_dp, 2.0450063723_dp, 2.7419835160_dp, 3.8566734312_dp, 6.1981791899_dp]
+ aw%aw_erange_matrix(:, 2) = [0.0169816642_dp, 0.0903275498_dp, 0.2258900214_dp, 0.4304310095_dp, 0.7149888745_dp, 1.0965252424_dp, 1.6002842943_dp,&
+ 2.2629949541_dp, 3.1372091996_dp, 4.2978145261_dp, 5.8537407167_dp, 7.9734653507_dp, 10.9544068995_dp, 15.4993236149_dp, 0.0436764843_dp,&
+ 0.1036202428_dp, 0.1686129519_dp, 0.2422818311_dp, 0.3296217363_dp, 0.4376054730_dp, 0.5759638625_dp, 0.7581137515_dp, 1.0026174373_dp,&
+ 1.3363743540_dp, 1.8026148317_dp, 2.4832977293_dp, 3.5786612501_dp, 5.8790633067_dp]
+ aw%aw_erange_matrix(:, 3) = [0.0119972526_dp, 0.0639735360_dp, 0.1607328068_dp, 0.3084839990_dp, 0.5176460378_dp, 0.8046770125_dp, 1.1946063310_dp,&
+ 1.7242874128_dp, 2.4466652263_dp, 3.4372421876_dp, 4.8058180424_dp, 6.7218376735_dp, 9.4826338752_dp, 13.7842321234_dp, 0.0308743065_dp,&
+ 0.0736138461_dp, 0.1209192548_dp, 0.1762894116_dp, 0.2447353626_dp, 0.3334443879_dp, 0.4524878835_dp, 0.6155970910_dp, 0.8415625308_dp,&
+ 1.1575185632_dp, 1.6069457576_dp, 2.2716047438_dp, 3.3492956544_dp, 5.6157341385_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0084076681_dp, 0.0449636994_dp, 0.1135988127_dp, 0.2199152900_dp, 0.3735947871_dp, 0.5903443786_dp, 0.8944811045_dp,&
+ 1.3221417879_dp, 1.9255697207_dp, 2.7798165137_dp, 3.9948200990_dp, 5.7408169122_dp, 8.3156700660_dp, 12.4109325959_dp, 0.0216511589_dp,&
+ 0.0519267386_dp, 0.0862556649_dp, 0.1279584309_dp, 0.1819750580_dp, 0.2555243887_dp, 0.3587034665_dp, 0.5052195178_dp, 0.7139586455_dp,&
+ 1.0124827029_dp, 1.4449804822_dp, 2.0936661885_dp, 3.1548999120_dp, 5.3926769614_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0058545394_dp, 0.0314169341_dp, 0.0798961491_dp, 0.1562801892_dp, 0.2694516528_dp, 0.4341668678_dp, 0.6735857092_dp,&
+ 1.0224344459_dp, 1.5314708133_dp, 2.2746179259_dp, 3.3615119894_dp, 4.9630904952_dp, 7.3782044923_dp, 11.2956335062_dp, 0.0150881610_dp,&
+ 0.0364360730_dp, 0.0613313227_dp, 0.0928838706_dp, 0.1358762369_dp, 0.1973630960_dp, 0.2871909934_dp, 0.4188526951_dp, 0.6113456809_dp,&
+ 0.8928419449_dp, 1.3085276567_dp, 1.9414929173_dp, 2.9873859616_dp, 5.2007139221_dp]
+ aw%aw_erange_matrix(:, 6) = [0.0040562245_dp, 0.0218539742_dp, 0.0560102454_dp, 0.1109232899_dp, 0.1946568562_dp, 0.3208703328_dp, 0.5112371968_dp,&
+ 0.7986245426_dp, 1.2318540903_dp, 1.8833267668_dp, 2.8620729079_dp, 4.3396108414_dp, 6.6160518775_dp, 10.3786630825_dp, 0.0104630611_dp,&
+ 0.0254712518_dp, 0.0435516941_dp, 0.0675857103_dp, 0.1021182426_dp, 0.1538700771_dp, 0.2322649417_dp, 0.3505246702_dp, 0.5277975034_dp,&
+ 0.7929346940_dp, 1.1922412386_dp, 1.8099472487_dp, 2.8415520058_dp, 5.0338617688_dp]
+ aw%aw_erange_matrix(:, 7) = [0.0027992651_dp, 0.0151526724_dp, 0.0391950273_dp, 0.0787783513_dp, 0.1411563608_dp, 0.2388040142_dp, 0.3917244612_dp,&
+ 0.6307171506_dp, 1.0024644268_dp, 1.5776184281_dp, 2.4643581015_dp, 3.8346158305_dp, 5.9898844950_dp, 9.6168480481_dp, 0.0072283419_dp,&
+ 0.0177636198_dp, 0.0309408098_dp, 0.0494041369_dp, 0.0773938528_dp, 0.1211829834_dp, 0.1897088377_dp, 0.2959270382_dp, 0.4591303320_dp,&
+ 0.7088154109_dp, 1.0924186101_dp, 1.6954725243_dp, 2.7137745874_dp, 4.8878976412_dp]
+ aw%aw_erange_matrix(:, 8) = [0.0019260163_dp, 0.0104833755_dp, 0.0274163538_dp, 0.0560830704_dp, 0.1029553545_dp, 0.1792971830_dp, 0.3033947804_dp,&
+ 0.5039497133_dp, 0.8254537344_dp, 1.3366813377_dp, 2.1447535633_dp, 3.4218231610_dp, 5.4707784720_dp, 8.9783978369_dp, 0.0049795399_dp,&
+ 0.0123739468_dp, 0.0220303943_dp, 0.0363538024_dp, 0.0592326432_dp, 0.0964440642_dp, 0.1564474990_dp, 0.2519410443_dp, 0.4023081489_dp,&
+ 0.6375997771_dp, 1.0063349415_dp, 1.5954396637_dp, 2.6013624022_dp, 4.7596612523_dp]
+ aw%aw_erange_matrix(:, 9) = [0.0013222495_dp, 0.0072441400_dp, 0.0191950478_dp, 0.0400934258_dp, 0.0756713875_dp, 0.1360117507_dp, 0.2377411946_dp,&
+ 0.4075418317_dp, 0.6877504424_dp, 1.1452008897_dp, 1.8857902883_dp, 3.0816948930_dp, 5.0371415973_dp, 8.4394873058_dp, 0.0034234922_dp,&
+ 0.0086197096_dp, 0.0157487515_dp, 0.0269783975_dp, 0.0458232460_dp, 0.0775717368_dp, 0.1302433050_dp, 0.2162717795_dp, 0.3550545602_dp,&
+ 0.5770852050_dp, 0.9318838821_dp, 1.5078058926_dp, 2.5022210559_dp, 4.6466884816_dp]
+ aw%aw_erange_matrix(:, 10) = [0.0009063749_dp, 0.0050043736_dp, 0.0134702129_dp, 0.0288347782_dp, 0.0561436492_dp, 0.1043728737_dp, 0.1886107108_dp,&
+ 0.3336543186_dp, 0.5797709752_dp, 0.9918421828_dp, 1.6744195586_dp, 2.7995206256_dp, 4.6726106098_dp, 7.9819594252_dp, 0.0023507281_dp,&
+ 0.0060117822_dp, 0.0113238920_dp, 0.0202237097_dp, 0.0358553075_dp, 0.0630595051_dp, 0.1094556677_dp, 0.1871955718_dp, 0.3156131499_dp,&
+ 0.5255332814_dp, 0.8673791226_dp, 1.4309274629_dp, 2.4146664138_dp, 4.5470018340_dp]
+ aw%aw_erange_matrix(:, 11) = [0.0006207558_dp, 0.0034593750_dp, 0.0094888452_dp, 0.0209005466_dp, 0.0421152117_dp, 0.0811052514_dp, 0.1515714938_dp,&
+ 0.2765844244_dp, 0.4944571337_dp, 0.8681492042_dp, 1.5007904059_dp, 2.5640827408_dp, 4.3646060695_dp, 7.5917613733_dp, 0.0016132125_dp,&
+ 0.0042033180_dp, 0.0082051681_dp, 0.0153343742_dp, 0.0283888063_dp, 0.0518157294_dp, 0.0928668378_dp, 0.1633931970_dp, 0.2825994311_dp,&
+ 0.4815408039_dp, 0.8114386960_dp, 1.3634496528_dp, 2.3373123760_dp, 4.4589805898_dp]
+ aw%aw_erange_matrix(:, 12) = [0.0004250257_dp, 0.0023953290_dp, 0.0067207167_dp, 0.0152965867_dp, 0.0319860564_dp, 0.0638742350_dp, 0.1234325709_dp,&
+ 0.2321694171_dp, 0.4265771556_dp, 0.7677581817_dp, 1.3573866615_dp, 2.3667230075_dp, 4.1033285208_dp, 7.2578630071_dp, 0.0011072202_dp,&
+ 0.0029503441_dp, 0.0060027300_dp, 0.0117733548_dp, 0.0227515996_dp, 0.0430443066_dp, 0.0795610664_dp, 0.1438398396_dp, 0.2549060018_dp,&
+ 0.4439586001_dp, 0.7629125934_dp, 1.3042372856_dp, 2.2689984236_dp, 4.3812747921_dp]
+ aw%aw_erange_matrix(:, 13) = [0.0002911017_dp, 0.0016631492_dp, 0.0047946445_dp, 0.0113241508_dp, 0.0246263552_dp, 0.0510161558_dp, 0.1018875389_dp,&
+ 0.1973480201_dp, 0.3722122939_dp, 0.6858159813_dp, 1.2383805242_dp, 2.2006300353_dp, 3.8809743266_dp, 6.9713912766_dp, 0.0007605525_dp,&
+ 0.0020822672_dp, 0.0044420437_dp, 0.0091605927_dp, 0.0184618417_dp, 0.0361581540_dp, 0.0688392550_dp, 0.1277263816_dp, 0.2316313965_dp,&
+ 0.4118257407_dp, 0.7208180838_dp, 1.2523064711_dp, 2.2087140692_dp, 4.3127157224_dp]
+ aw%aw_erange_matrix(:, 14) = [0.0001995700_dp, 0.0011595295_dp, 0.0034524399_dp, 0.0084955264_dp, 0.0192432510_dp, 0.0413511687_dp, 0.0852771242_dp,&
+ 0.1698836547_dp, 0.3284577878_dp, 0.6186813704_dp, 1.1393608161_dp, 2.0606221816_dp, 3.6915967870_dp, 6.7255839033_dp, 0.0005232710_dp,&
+ 0.0014805383_dp, 0.0033311544_dp, 0.0072290816_dp, 0.0151751660_dp, 0.0307257083_dp, 0.0601730847_dp, 0.1144276403_dp, 0.2120682416_dp,&
+ 0.3843826899_dp, 0.6843807450_dp, 1.2068922048_dp, 2.1556860505_dp, 4.2524123622_dp]
+ aw%aw_erange_matrix(:, 15) = [0.0001370440_dp, 0.0008130158_dp, 0.0025145919_dp, 0.0064696769_dp, 0.0152763632_dp, 0.0340306034_dp, 0.0723813392_dp,&
+ 0.1480920563_dp, 0.2930715707_dp, 0.5634732104_dp, 1.0567504907_dp, 1.9423970762_dp, 3.5301492307_dp, 6.5145924693_dp, 0.0003609177_dp,&
+ 0.0010628352_dp, 0.0025356684_dp, 0.0057896189_dp, 0.0126401225_dp, 0.0264193690_dp, 0.0531457819_dp, 0.1034316774_dp, 0.1956149122_dp,&
+ 0.3609571463_dp, 0.6528859764_dp, 1.1672606510_dp, 2.1091543249_dp, 4.1994938535_dp]
+ aw%aw_erange_matrix(:, 16) = [0.0000943292_dp, 0.0005743617_dp, 0.0018567491_dp, 0.0050088333_dp, 0.0123298613_dp, 0.0284433849_dp, 0.0623023416_dp,&
+ 0.1307057577_dp, 0.2643293512_dp, 0.5179294356_dp, 0.9876865837_dp, 1.8424511225_dp, 3.3924602893_dp, 6.3335236354_dp, 0.0002498085_dp,&
+ 0.0007721791_dp, 0.0019618732_dp, 0.0047081086_dp, 0.0106724872_dp, 0.0229904052_dp, 0.0474305891_dp, 0.0943252116_dp, 0.1817720546_dp,&
+ 0.3409759754_dp, 0.6257092922_dp, 1.1327575630_dp, 2.0684341083_dp, 4.1531784722_dp]
+ aw%aw_erange_matrix(:, 17) = [0.0000651365_dp, 0.0004097585_dp, 0.0013931604_dp, 0.0039478705_dp, 0.0101248429_dp, 0.0241506943_dp, 0.0543825199_dp,&
+ 0.1167789486_dp, 0.2409226560_dp, 0.4803083615_dp, 0.9299382185_dp, 1.7580291538_dp, 3.2752284213_dp, 6.1784868742_dp, 0.0001737312_dp,&
+ 0.0005692888_dp, 0.0015447657_dp, 0.0038896495_dp, 0.0091375731_dp, 0.0202515001_dp, 0.0427754289_dp, 0.0867830166_dp, 0.1701401832_dp,&
+ 0.3239747287_dp, 0.6023404762_dp, 1.1028471436_dp, 2.0329658726_dp, 4.1128293420_dp]
+ aw%aw_erange_matrix(:, 18) = [0.0000451780_dp, 0.0002960620_dp, 0.0010648809_dp, 0.0031722807_dp, 0.0084646811_dp, 0.0208370642_dp, 0.0481400189_dp,&
+ 0.1056065372_dp, 0.2218612717_dp, 0.4492752495_dp, 0.8817787002_dp, 1.6869834288_dp, 3.1758682753_dp, 6.0464269241_dp, 0.0001216233_dp,&
+ 0.0004271658_dp, 0.0012393754_dp, 0.0032669191_dp, 0.0079367228_dp, 0.0180617935_dp, 0.0389867897_dp, 0.0805512332_dp, 0.1604032849_dp,&
+ 0.3095824040_dp, 0.5823698798_dp, 1.0770993952_dp, 2.0023024581_dp, 4.0779388476_dp]
+ aw%aw_erange_matrix(:, 19) = [0.0000315328_dp, 0.0002174308_dp, 0.0008313641_dp, 0.0026022985_dp, 0.0072095763_dp, 0.0182730950_dp, 0.0432167413_dp,&
+ 0.0966537970_dp, 0.2063800292_dp, 0.4237806872_dp, 0.8418287528_dp, 1.6275738925_dp, 3.0922598344_dp, 5.9348141031_dp, 0.0000859396_dp,&
+ 0.0003272551_dp, 0.0010144705_dp, 0.0027916184_dp, 0.0069966844_dp, 0.0163137262_dp, 0.0359133252_dp, 0.0754269174_dp, 0.1523033750_dp,&
+ 0.2974898789_dp, 0.5654495050_dp, 1.0551430219_dp, 1.9760540876_dp, 4.0480653472_dp]
+ aw%aw_erange_matrix(:, 20) = [0.0000222079_dp, 0.0001629932_dp, 0.0006645802_dp, 0.0021817704_dp, 0.0062585553_dp, 0.0162885708_dp, 0.0393399077_dp,&
+ 0.0895029361_dp, 0.1938660784_dp, 0.4029632862_dp, 0.8089283219_dp, 1.5783019361_dp, 3.0225368925_dp, 5.8413807575_dp, 0.0000615230_dp,&
+ 0.0002567640_dp, 0.0008481266_dp, 0.0024284357_dp, 0.0062618334_dp, 0.0149229402_dp, 0.0334327161_dp, 0.0712410515_dp, 0.1456187328_dp,&
+ 0.2874223434_dp, 0.5512586346_dp, 1.0366236919_dp, 1.9538396852_dp, 4.0227772765_dp]
+ aw%aw_erange_matrix(:, 21) = [0.0000158399_dp, 0.0001252648_dp, 0.0005450424_dp, 0.0018707369_dp, 0.0055376345_dp, 0.0147550601_dp, 0.0362978083_dp,&
+ 0.0838207306_dp, 0.1838173647_dp, 0.3860983826_dp, 0.7820753769_dp, 1.5378394885_dp, 2.9650064681_dp, 5.7640301975_dp, 0.0000448370_dp,&
+ 0.0002068443_dp, 0.0007247732_dp, 0.0021511315_dp, 0.0056892147_dp, 0.0138220852_dp, 0.0314441670_dp, 0.0678498508_dp, 0.1401543526_dp,&
+ 0.2791293861_dp, 0.5394940065_dp, 1.0211944165_dp, 1.9352770155_dp, 4.0016416470_dp]
+ aw%aw_erange_matrix(:, 22) = [0.0000115002_dp, 0.0000991173_dp, 0.0004592690_dp, 0.0016408940_dp, 0.0049930058_dp, 0.0135768119_dp, 0.0339290060_dp,&
+ 0.0793477695_dp, 0.1758354289_dp, 0.3726002908_dp, 0.7604460875_dp, 1.5050773582_dp, 2.9182351984_dp, 5.7009682775_dp, 0.0000334643_dp,&
+ 0.0001714169_dp, 0.0006333913_dp, 0.0019403728_dp, 0.0052461953_dp, 0.0129586872_dp, 0.0298673394_dp, 0.0651362091_dp, 0.1357480131_dp,&
+ 0.2723982760_dp, 0.5298926968_dp, 1.0085489528_dp, 1.9200248668_dp, 3.9842719598_dp]
+ case(16)
+ aw%energy_range(:) = [100.0_dp, 200.0_dp, 300.0_dp, 400.0_dp, 500.0_dp, 600.0_dp, 700.0_dp, 800.0_dp,&
+ 900.0_dp, 1000.0_dp, 2.00e+03_dp, 3.00e+03_dp, 4.00e+03_dp, 5.00e+03_dp, 6.00e+03_dp, 7.00e+03_dp, 8.00e+03_dp,&
+ 9.00e+03_dp, 1.00e+04_dp, 2.00e+04_dp, 3.00e+04_dp, 4.00e+04_dp, 5.00e+04_dp, 6.00e+04_dp, 7.00e+04_dp,&
+ 8.00e+04_dp, 1.00e+05_dp, 2.00e+05_dp, 3.00e+05_dp, 4.00e+05_dp, 5.00e+05_dp, 6.00e+05_dp, 7.00e+05_dp,&
+ 9.00e+05_dp, 1.00e+06_dp, 2.00e+06_dp]
+ aw%aw_erange_matrix(:, 1) = [3.53350980972745024e-03_dp, 1.89307470173197823e-02_dp, 4.79913291058656280e-02_dp, 9.34063314619771184e-02_dp, 1.59900975899146841e-01_dp,&
+ 2.55237720565199833e-01_dp, 3.91507506232646407e-01_dp, 5.86692524556495676e-01_dp, 8.66706221259449516e-01_dp, 1.26834755965607449e+00_dp, 1.84378922435133030e+00_dp,&
+ 2.66770358673057162e+00_dp, 3.84969929504600383e+00_dp, 5.55989190488239782e+00_dp, 8.09609615483757494e+00_dp, 1.21489357832949842e+01_dp, 9.10308460639413716e-03_dp,&
+ 2.19107094627195229e-02_dp, 3.66477217677682598e-02_dp, 5.49529774439788052e-02_dp, 7.93083736311463450e-02_dp, 1.13354729405511695e-01_dp, 1.62148972334804270e-01_dp,&
+ 2.32492103990712351e-01_dp, 3.33595921973548981e-01_dp, 4.78268763696850785e-01_dp, 6.84867425639795080e-01_dp, 9.80851423476391093e-01_dp, 1.41057748263778815e+00_dp,&
+ 2.05646355120530222e+00_dp, 3.11470981048028772e+00_dp, 5.34707526399065092e+00_dp]
+ aw%aw_erange_matrix(:, 2) = [2.01256609288612623e-03_dp, 1.08393025800470229e-02_dp, 2.77607372768341396e-02_dp, 5.49153548548539372e-02_dp, 9.62139067787890073e-02_dp,&
+ 1.58268585901329639e-01_dp, 2.51551762218636565e-01_dp, 3.91889894075743928e-01_dp, 6.02624857991079899e-01_dp, 9.17865362174561272e-01_dp, 1.38738289791511860e+00_dp,&
+ 2.08421352166685470e+00_dp, 3.11754692365379737e+00_dp, 4.65845614288767074e+00_dp, 7.00624402509797584e+00_dp, 1.08487716247577879e+01_dp, 5.19100503916200377e-03_dp,&
+ 1.26277612849116580e-02_dp, 2.15606407131872894e-02_dp, 3.33846640063611144e-02_dp, 5.02953701646382048e-02_dp, 7.55353808513282848e-02_dp, 1.13633681039463183e-01_dp,&
+ 1.70879885021969491e-01_dp, 2.56195443232918985e-01_dp, 3.82459276964640105e-01_dp, 5.68547819274359711e-01_dp, 8.42929673227647003e-01_dp, 1.25134422119431932e+00_dp,&
+ 1.87743223838423345e+00_dp, 2.91674707410050216e+00_dp, 5.12003624180075434e+00_dp]
+ aw%aw_erange_matrix(:, 3) = [1.44321148556243663e-03_dp, 7.80153177980970076e-03_dp, 2.01254698329391621e-02_dp, 4.02748735892814805e-02_dp, 7.17270043310115762e-02_dp,&
+ 1.20437842219770330e-01_dp, 1.95922508665984957e-01_dp, 3.12738745192699397e-01_dp, 4.92726432022653815e-01_dp, 7.68398119460578344e-01_dp, 1.18803361602970625e+00_dp,&
+ 1.82355128165130798e+00_dp, 2.78370305964699760e+00_dp, 4.23999745998180622e+00_dp, 6.49272540108700547e+00_dp, 1.02289376129522349e+01_dp, 3.72555641699100692e-03_dp,&
+ 9.13029870564178482e-03_dp, 1.58171136039656351e-02_dp, 2.50466904073013037e-02_dp, 3.88327073275191448e-02_dp, 6.01510240904654450e-02_dp, 9.32081506757678202e-02_dp,&
+ 1.44008985109400189e-01_dp, 2.21302503955418645e-01_dp, 3.37961419891918136e-01_dp, 5.13089899907686053e-01_dp, 7.75684683956141319e-01_dp, 1.17230167874908897e+00_dp,&
+ 1.78743631474834719e+00_dp, 2.81663768450139029e+00_dp, 5.00548143863775064e+00_dp]
+ aw%aw_erange_matrix(:, 4) = [1.13860760663766201e-03_dp, 6.17299781269263839e-03_dp, 1.60169098352160554e-02_dp, 3.23524323481128584e-02_dp, 5.83702583176669565e-02_dp,&
+ 9.95777894307948580e-02_dp, 1.64831557562902881e-01_dp, 2.67822190872354815e-01_dp, 4.29360268183013538e-01_dp, 6.80845171457615028e-01_dp, 1.06948381160530315e+00_dp,&
+ 1.66634821469290184e+00_dp, 2.57980100528938738e+00_dp, 3.98159346669642966e+00_dp, 6.17273411310204700e+00_dp, 9.83997227880138681e+00_dp, 2.94117041553301631e-03_dp,&
+ 7.25063797608869933e-03_dp, 1.27075060808783998e-02_dp, 2.04817457415186997e-02_dp, 3.24552336489367654e-02_dp, 5.14120457313516355e-02_dp, 8.13399962135207821e-02_dp,&
+ 1.28053125906785886e-01_dp, 2.00171599487160429e-01_dp, 3.10536809254130741e-01_dp, 4.78375693670618274e-01_dp, 7.33023992755198917e-01_dp, 1.12160597395424810e+00_dp,&
+ 1.72926445447689736e+00_dp, 2.75168129090199720e+00_dp, 4.93124071847187917e+00_dp]
+ aw%aw_erange_matrix(:, 5) = [9.46859903916035537e-04_dp, 5.14616088730276196e-03_dp, 1.34185711537655374e-02_dp, 2.73192349904864268e-02_dp, 4.98287460342099059e-02_dp,&
+ 8.61193605778245858e-02_dp, 1.44555695695986336e-01_dp, 2.38183015880307103e-01_dp, 3.87041479853388215e-01_dp, 6.21684790258431930e-01_dp, 9.88486563062811463e-01_dp,&
+ 1.55783889875341841e+00_dp, 2.43776191947990073e+00_dp, 3.80015625761590004e+00_dp, 5.94658657784491584e+00_dp, 9.56369803004218078e+00_dp, 2.44721319362834096e-03_dp,&
+ 6.06309616212743173e-03_dp, 1.07312550216339935e-02_dp, 1.75540514820946535e-02_dp, 2.83110517763022485e-02_dp, 4.56402961035302507e-02_dp, 7.33688359935863454e-02_dp,&
+ 1.17168476679268843e-01_dp, 1.85554660029532470e-01_dp, 2.91329319901989403e-01_dp, 4.53792910832546526e-01_dp, 7.02522550597137641e-01_dp, 1.08507304824308415e+00_dp,&
+ 1.68710567859197180e+00_dp, 2.70447200538390886e+00_dp, 4.87732532908532423e+00_dp]
+ aw%aw_erange_matrix(:, 6) = [8.14183837939547509e-04_dp, 4.43467955230156252e-03_dp, 1.16136389856696040e-02_dp, 2.38092630968598784e-02_dp, 4.38383776182723894e-02_dp,&
+ 7.66089872341315092e-02_dp, 1.30098648127646099e-01_dp, 2.16845526181672299e-01_dp, 3.56280572517574390e-01_dp, 5.78280446078727084e-01_dp, 9.28540305907498920e-01_dp,&
+ 1.47688490081642176e+00_dp, 2.33103078021899535e+00_dp, 3.66297548958391106e+00_dp, 5.77473392533884855e+00_dp, 9.35293868610848378e+00_dp, 2.10531973679683841e-03_dp,&
+ 5.23888103224154095e-03_dp, 9.35274075631195578e-03_dp, 1.54958369642747475e-02_dp, 2.53648437706326772e-02_dp, 4.14818886569631451e-02_dp, 6.75490862157180211e-02_dp,&
+ 1.09125281408510050e-01_dp, 1.74637111405913398e-01_dp, 2.76845040629674743e-01_dp, 4.35096147843626602e-01_dp, 6.79150611008417449e-01_dp, 1.05690673230816246e+00_dp,&
+ 1.65445677640878741e+00_dp, 2.66782922167630066e+00_dp, 4.83550044561988024e+00_dp]
+ aw%aw_erange_matrix(:, 7) = [7.16494901298969080e-04_dp, 3.91018638216612119e-03_dp, 1.02801072464593964e-02_dp, 2.12070464670612545e-02_dp, 3.93748784721239808e-02_dp,&
+ 6.94755195241083950e-02_dp, 1.19170770235098020e-01_dp, 2.00585127206465486e-01_dp, 3.32649462565160037e-01_dp, 5.44678859853301556e-01_dp, 8.81798125100913932e-01_dp,&
+ 1.41334590605841526e+00_dp, 2.24676696687539001e+00_dp, 3.55412349045657461e+00_dp, 5.63780628889054558e+00_dp, 9.18448241122484710e+00_dp, 1.85351442545404581e-03_dp,&
+ 4.63039115192240627e-03_dp, 8.33054786648090156e-03_dp, 1.39590364258402114e-02_dp, 2.31433556018734582e-02_dp, 3.83107456954635550e-02_dp, 6.30622860656869233e-02_dp,&
+ 1.02863316936792890e-01_dp, 1.66063213575976282e-01_dp, 2.65381378593835426e-01_dp, 4.20195346923853241e-01_dp, 6.60410163061198929e-01_dp, 1.03420797660110741e+00_dp,&
+ 1.62804896339238914e+00_dp, 2.63813532983522236e+00_dp, 4.80162132438811451e+00_dp]
+ aw%aw_erange_matrix(:, 8) = [6.41326809481740758e-04_dp, 3.50617346260536722e-03_dp, 9.25085074482776167e-03_dp, 1.91923279358940310e-02_dp, 3.59033684018405658e-02_dp,&
+ 6.38944507354568814e-02_dp, 1.10562852458958027e-01_dp, 1.87686236929583999e-01_dp, 3.13773709712884596e-01_dp, 5.17662494297918774e-01_dp, 8.43986668600400392e-01_dp,&
+ 1.36166018332979322e+00_dp, 2.17788216574139337e+00_dp, 3.46475828890199411e+00_dp, 5.52500051528785985e+00_dp, 9.04533575355827679e+00_dp, 1.65971109796032596e-03_dp,&
+ 4.16106326244922858e-03_dp, 7.53902014585412523e-03_dp, 1.27615706769678879e-02_dp, 2.13972122588712184e-02_dp, 3.57936419467514491e-02_dp, 5.94677802105419498e-02_dp,&
+ 9.78053035397581927e-02_dp, 1.59087168480228858e-01_dp, 2.55993100221750536e-01_dp, 4.07920704338065321e-01_dp, 6.44893253755295270e-01_dp, 1.01533352025257706e+00_dp,&
+ 1.60602200914479964e+00_dp, 2.61332768483982214e+00_dp, 4.77332649007502585e+00_dp]
+ aw%aw_erange_matrix(:, 9) = [5.81552858876719573e-04_dp, 3.18458728238287577e-03_dp, 8.43009848407876017e-03_dp, 1.75811659326021198e-02_dp, 3.31156506410349299e-02_dp,&
+ 5.93885926005389142e-02_dp, 1.03571099986227905e-01_dp, 1.77143894018762488e-01_dp, 2.98252992060085709e-01_dp, 4.95321060119377710e-01_dp, 8.12552457633085590e-01_dp,&
+ 1.31848446625012738e+00_dp, 2.12009233578978984e+00_dp, 3.38951070393522613e+00_dp, 5.42973079030332695e+00_dp, 8.92755335444040199e+00_dp, 1.50556315952505627e-03_dp,&
+ 3.78704505063218438e-03_dp, 6.90596865384866029e-03_dp, 1.17983671303826514e-02_dp, 1.99815601654048762e-02_dp, 3.37352970754505530e-02_dp, 5.65047866336671131e-02_dp,&
+ 9.36063868568455248e-02_dp, 1.53259665040788029e-01_dp, 2.48106420809356160e-01_dp, 3.97557329619784516e-01_dp, 6.31734422799635764e-01_dp, 9.99268430087539294e-01_dp,&
+ 1.58722306022532145e+00_dp, 2.59212588251235276e+00_dp, 4.74915085228901113e+00_dp]
+ aw%aw_erange_matrix(:, 10) = [5.32791449243409957e-04_dp, 2.92201407330914490e-03_dp, 7.75884196839569766e-03_dp, 1.62599925842890798e-02_dp, 3.08208827514734295e-02_dp,&
+ 5.56612598231712857e-02_dp, 9.77557047572212706e-02_dp, 1.68326485590083619e-01_dp, 2.85201980076353778e-01_dp, 4.76439727683499570e-01_dp, 7.85862548805269845e-01_dp,&
+ 1.28166964157642660e+00_dp, 2.07063073322832736e+00_dp, 3.32489911123671833e+00_dp, 5.34771226724267912e+00_dp, 8.82595237509298869e+00_dp, 1.37978885020055087e-03_dp,&
+ 3.48132965159881182e-03_dp, 6.38681382757585753e-03_dp, 1.10042750893626431e-02_dp, 1.88060416343505121e-02_dp, 3.20129266794980244e-02_dp, 5.40079284084068259e-02_dp,&
+ 9.00461102030354760e-02_dp, 1.48291387217199144e-01_dp, 2.41349478045632310e-01_dp, 3.88639236651869280e-01_dp, 6.20366715867012197e-01_dp, 9.85345131558152731e-01_dp,&
+ 1.57089164262038694e+00_dp, 2.57368414096267095e+00_dp, 4.72812711274626363e+00_dp]
+ aw%aw_erange_matrix(:, 11) = [2.99224120879729519e-04_dp, 1.66026313565520206e-03_dp, 4.51381700033238586e-03_dp, 9.81114129695110151e-03_dp, 1.94616438373382758e-02_dp,&
+ 3.68864680879441853e-02_dp, 6.79045674012652006e-02_dp, 1.22204135062910973e-01_dp, 2.15692386527333746e-01_dp, 3.74167706912010345e-01_dp, 6.39029285349485887e-01_dp,&
+ 1.07625266047240209e+00_dp, 1.79115927400814545e+00_dp, 2.95586846091472255e+00_dp, 4.87513923191184961e+00_dp, 8.23667784479432186e+00_dp, 7.76884742069300360e-04_dp,&
+ 2.00656602380648846e-03_dp, 3.85231021696860266e-03_dp, 7.05187854403546612e-03_dp, 1.28051535867035465e-02_dp, 2.29904356331946634e-02_dp, 4.06223196249400550e-02_dp,&
+ 7.05684431621601549e-02_dp, 1.20615323824493109e-01_dp, 2.03090767371495673e-01_dp, 3.37395001084139834e-01_dp, 5.54190330170222567e-01_dp, 9.03401381371959022e-01_dp,&
+ 1.47399421150855536e+00_dp, 2.46379540993549329e+00_dp, 4.60293586094290941e+00_dp]
+ aw%aw_erange_matrix(:, 12) = [2.13470521766618681e-04_dp, 1.19443821216121972e-03_dp, 3.30309294815460527e-03_dp, 7.36335748981275899e-03_dp, 1.50440187979848754e-02_dp,&
+ 2.93726979281437213e-02_dp, 5.55989091923544607e-02_dp, 1.02640726711399635e-01_dp, 1.85414326356829418e-01_dp, 3.28517321642923299e-01_dp, 5.72017178043324859e-01_dp,&
+ 9.80614752437028669e-01_dp, 1.65873474387425257e+00_dp, 2.77836756683095709e+00_dp, 4.64507203421799542e+00_dp, 7.94720268358463677e+00_dp, 5.55246702745094663e-04_dp,&
+ 1.45843838376191748e-03_dp, 2.89028275110567992e-03_dp, 5.50037429515352373e-03_dp, 1.03516891504137030e-02_dp, 1.91571445523666846e-02_dp, 3.47438857823840624e-02_dp,&
+ 6.17661025400090061e-02_dp, 1.07787025740297096e-01_dp, 1.84949410097452444e-01_dp, 3.12595021695347530e-01_dp, 5.21582146906248378e-01_dp, 8.62410403168432427e-01_dp,&
+ 1.42497657398810884e+00_dp, 2.40787031054696632e+00_dp, 4.53927021665296770e+00_dp]
+ aw%aw_erange_matrix(:, 13) = [1.68012592820130133e-04_dp, 9.46540488815995548e-04_dp, 2.65389383834955736e-03_dp, 6.03435111070690922e-03_dp, 1.26044257319316653e-02_dp,&
+ 2.51439404415568467e-02_dp, 4.85422220818330988e-02_dp, 9.12233302740963620e-02_dp, 1.67457115943608098e-01_dp, 3.01044618457292690e-01_dp, 5.31153332379371790e-01_dp,&
+ 9.21602589992802423e-01_dp, 1.57617191456792005e+00_dp, 2.66672079636148762e+00_dp, 4.49933223235559598e+00_dp, 7.76286688504890332e+00_dp, 4.37651070085769004e-04_dp,&
+ 1.16536666410485871e-03_dp, 2.36804563911255589e-03_dp, 4.63798343442946379e-03_dp, 8.95184829397262932e-03_dp, 1.69190097024326525e-02_dp, 3.12441751584375850e-02_dp,&
+ 5.64366963334440863e-02_dp, 9.99033373206869579e-02_dp, 1.73650154624361980e-01_dp, 2.96961393104604898e-01_dp, 5.00806584552872414e-01_dp, 8.36059273049339358e-01_dp,&
+ 1.39325367922203336e+00_dp, 2.37154456299757888e+00_dp, 4.49793067920409495e+00_dp]
+ aw%aw_erange_matrix(:, 14) = [1.37026975479014590e+00_dp, 2.34515676733101053e+00_dp, 4.46790660194239475e+00_dp, 1.39556140827204678e-04_dp, 7.90875404343269173e-04_dp,&
+ 2.24373197289569727e-03_dp, 5.18614495108164764e-03_dp, 1.10265465390968261e-02_dp, 2.23694637981097025e-02_dp, 4.38480579093586884e-02_dp, 8.35312227650857608e-02_dp,&
+ 1.55218699402296184e-01_dp, 2.82125295666550369e-01_dp, 5.02747768057156597e-01_dp, 8.80238193840727434e-01_dp, 1.51787502219682380e+00_dp, 2.58739721912801590e+00_dp,&
+ 4.39526935349846326e+00_dp, 7.63076233425439288e+00_dp, 3.63984273626696418e-04_dp, 9.80644321112650276e-04_dp, 2.03480199951820533e-03_dp, 4.07735377152630956e-03_dp,&
+ 8.02412457026831227e-03_dp, 1.54111678077861834e-02_dp, 2.88537422675381669e-02_dp, 5.27529528046750545e-02_dp, 9.43962899936182931e-02_dp, 1.65682189837208782e-01_dp,&
+ 2.85842929517656941e-01_dp, 4.85920011438755906e-01_dp, 8.17057847522464131e-01_dp]
+ aw%aw_erange_matrix(:, 15) = [1.19940633777844367e-04_dp, 6.83291861808967222e-04_dp, 1.95877168414221835e-03_dp, 4.59174524873474151e-03_dp, 9.90855703502338189e-03_dp,&
+ 2.03808716667070837e-02_dp, 4.04466664137481044e-02_dp, 7.79018628897185372e-02_dp, 1.46181662230467829e-01_dp, 2.68042251689520117e-01_dp, 4.81450674354238051e-01_dp,&
+ 8.49025951183791872e-01_dp, 1.47363870321694668e+00_dp, 2.52691885693640472e+00_dp, 4.31562663815705783e+00_dp, 7.52937595194574971e+00_dp, 3.13174089302581220e-04_dp,&
+ 8.52574377712036276e-04_dp, 1.80131247687566765e-03_dp, 3.67844340685374513e-03_dp, 7.35389540699760667e-03_dp, 1.43079355017790150e-02_dp, 2.70861317219600745e-02_dp,&
+ 5.00039451671855859e-02_dp, 9.02531713884734688e-02_dp, 1.59643928480476205e-01_dp, 2.77362092792709347e-01_dp, 4.74499463661941734e-01_dp, 8.02409594992836150e-01_dp,&
+ 1.35248644425788744e+00_dp, 2.32469837012121960e+00_dp, 4.44463201570879818e+00_dp]
+ aw%aw_erange_matrix(:, 16) = [1.05537307465743284e-04_dp, 6.04114890345993001e-04_dp, 1.74808087768887855e-03_dp, 4.14892351339478469e-03_dp, 9.06777482852746779e-03_dp,&
+ 1.88708736505370164e-02_dp, 3.78405483771319731e-02_dp, 7.35534743950406605e-02_dp, 1.39149970172078974e-01_dp, 2.57012619692873145e-01_dp, 4.64673706380170914e-01_dp,&
+ 8.24310774687844305e-01_dp, 1.43845177788936329e+00_dp, 2.47862798314855626e+00_dp, 4.25183840359052656e+00_dp, 7.44799055279019750e+00_dp, 2.75845624421119831e-04_dp,&
+ 7.58059696898161304e-04_dp, 1.62738916170547445e-03_dp, 3.37735747437889998e-03_dp, 6.84165302145215218e-03_dp, 1.34560408443224477e-02_dp, 2.57094629782190394e-02_dp,&
+ 4.78470046371534674e-02_dp, 8.69809853452546689e-02_dp, 1.54846909473789957e-01_dp, 2.70589095153322690e-01_dp, 4.65336333654371825e-01_dp, 7.90610641841838824e-01_dp,&
+ 1.33811980156249577e+00_dp, 2.30814335154912431e+00_dp, 4.42579981986181270e+00_dp]
+ aw%aw_erange_matrix(:, 17) = [9.44773691119611941e-05_dp, 5.43193371816229689e-04_dp, 1.58529076001570363e-03_dp, 3.80445119019962551e-03_dp, 8.40830888946824360e-03_dp,&
+ 1.76766622119811992e-02_dp, 3.57636322027086104e-02_dp, 7.00642034135144226e-02_dp, 1.33472875053466083e-01_dp, 2.48058977084102017e-01_dp, 4.50988013467829851e-01_dp,&
+ 8.04062319500161493e-01_dp, 1.40951520734543023e+00_dp, 2.43878826484893274e+00_dp, 4.19907917115933049e+00_dp, 7.38055138869627925e+00_dp, 2.47168812970795910e-04_dp,&
+ 6.85157250381651867e-04_dp, 1.49210873033567303e-03_dp, 3.14045446537675015e-03_dp, 6.43430877951877301e-03_dp, 1.27727320392762647e-02_dp, 2.45972718527957372e-02_dp,&
+ 4.60935944652694080e-02_dp, 8.43063411502943394e-02_dp, 1.50906614412536083e-01_dp, 2.65001268910812326e-01_dp, 4.57747306434051426e-01_dp, 7.80806606488453681e-01_dp,&
+ 1.32615265104682423e+00_dp, 2.29433424518916640e+00_dp, 4.41009226224503337e+00_dp]
+ aw%aw_erange_matrix(:, 18) = [8.56966014984952726e-05_dp, 4.94737232830936907e-04_dp, 1.45531491856781760e-03_dp, 3.52771939786528143e-03_dp, 7.87462438036366438e-03_dp,&
+ 1.67031895938322059e-02_dp, 3.40593424378246093e-02_dp, 6.71839347162209166e-02_dp, 1.28761881603225270e-01_dp, 2.40594118418479552e-01_dp, 4.39530255088571464e-01_dp,&
+ 7.87047459730448873e-01_dp, 1.38512122114885150e+00_dp, 2.40511115764277461e+00_dp, 4.15438397780310265e+00_dp, 7.32332950147354378e+00_dp, 2.24392060575159135e-04_dp,&
+ 6.27041706761741094e-04_dp, 1.38344066171848458e-03_dp, 2.94819848362962850e-03_dp, 6.10068538780172715e-03_dp, 1.22089286671955115e-02_dp, 2.36739223810270155e-02_dp,&
+ 4.46301312678028944e-02_dp, 8.20634642574863266e-02_dp, 1.47588508027176962e-01_dp, 2.60278104396839072e-01_dp, 4.51311362761884882e-01_dp, 7.72468954882403636e-01_dp,&
+ 1.31595387099549921e+00_dp, 2.28255173264817390e+00_dp, 4.39669057356122384e+00_dp]
+ aw%aw_erange_matrix(:, 19) = [7.85427260255526331e-05_dp, 4.55192461786559175e-04_dp, 1.34886745971785765e-03_dp, 3.29980061701751507e-03_dp, 7.43216147935275330e-03_dp,&
+ 1.58908890315543790e-02_dp, 3.26288715086645031e-02_dp, 6.47538075936886781e-02_dp, 1.24768765970660347e-01_dp, 2.34240816007087072e-01_dp, 4.29743078508864784e-01_dp,&
+ 7.72466595117579313e-01_dp, 1.36415811068297010e+00_dp, 2.37610189373330272e+00_dp, 4.11581100024765245e+00_dp, 7.27387779175559945e+00_dp, 2.05828296233996665e-04_dp,&
+ 5.79516303470468453e-04_dp, 1.29394653547505538e-03_dp, 2.78840262668174875e-03_dp, 5.82114329324756683e-03_dp, 1.17334510546047814e-02_dp, 2.28910200924036800e-02_dp,&
+ 4.33834862866021784e-02_dp, 8.01450248378290792e-02_dp, 1.44739972641330816e-01_dp, 2.56210088425984417e-01_dp, 4.45752169295529965e-01_dp, 7.65249583727318994e-01_dp,&
+ 1.30710669831289317e+00_dp, 2.27232012462184851e+00_dp, 4.38505336694388248e+00_dp]
+ aw%aw_erange_matrix(:, 20) = [4.43803089127606113e-05_dp, 2.65218591197643853e-04_dp, 8.30855323495340568e-04_dp, 2.16814201958144461e-03_dp, 5.18489451591576823e-03_dp,&
+ 1.16752594424327817e-02_dp, 2.50600750841695370e-02_dp, 5.16739374920347702e-02_dp, 1.02949002312831606e-01_dp, 1.99055913849081695e-01_dp, 3.74892690057061606e-01_dp,&
+ 6.89886804356359851e-01_dp, 1.24433776114628336e+00_dp, 2.20900073280761244e+00_dp, 3.89224221437696771e+00_dp, 6.98596666740116490e+00_dp, 1.17061244040588000e-04_dp,&
+ 3.49507944241428143e-04_dp, 8.49620646664857337e-04_dp, 1.96981214128917614e-03_dp, 4.35085567522754818e-03_dp, 9.17937119472227517e-03_dp, 1.86109192573347161e-02_dp,&
+ 3.64635216587984104e-02_dp, 6.93518532719665654e-02_dp, 1.28520713372702128e-01_dp, 2.32797744928449957e-01_dp, 4.13453840598429323e-01_dp, 7.22968566709522364e-01_dp,&
+ 1.25497538883367321e+00_dp, 2.21182278597783633e+00_dp, 4.31625131487044467e+00_dp]
+ aw%aw_erange_matrix(:, 21) = [3.18692979875762945e-05_dp, 1.94924143581001979e-04_dp, 6.34735317845784510e-04_dp, 1.72499618053375062e-03_dp, 4.27312550471167351e-03_dp,&
+ 9.90891266044059173e-03_dp, 2.17985806983987014e-02_dp, 4.58990884084013243e-02_dp, 9.31095938820044738e-02_dp, 1.82893089930429714e-01_dp, 3.49282689301175675e-01_dp,&
+ 6.50775264786516261e-01_dp, 1.18688178491725038e+00_dp, 2.12803484113070596e+00_dp, 3.78301819554569896e+00_dp, 6.84446856078756305e+00_dp, 8.44802619933795508e-05_dp,&
+ 2.63287491421840790e-04_dp, 6.75566783375913349e-04_dp, 1.63333525201483530e-03_dp, 3.72314514391366329e-03_dp, 8.05605050544987676e-03_dp, 1.66815720516301329e-02_dp,&
+ 3.32777027647976134e-02_dp, 6.42904126378543717e-02_dp, 1.20789761544245547e-01_dp, 2.21475826652405366e-01_dp, 3.97635557280198393e-01_dp, 7.02038439571572748e-01_dp,&
+ 1.22895802375841612e+00_dp, 2.18148993239703737e+00_dp, 4.28175673827994530e+00_dp]
+ aw%aw_erange_matrix(:, 22) = [2.52372605908996745e-05_dp, 1.57392133212888027e-04_dp, 5.28274241848721731e-04_dp, 1.47892945126437171e-03_dp, 3.75547803252764293e-03_dp,&
+ 8.88646471280357154e-03_dp, 1.98792253903057707e-02_dp, 4.24522975011028258e-02_dp, 8.71647656143440946e-02_dp, 1.73023533565983295e-01_dp, 3.33498452444295046e-01_dp,&
+ 6.26473072676287823e-01_dp, 1.15092966665799223e+00_dp, 2.07707237149278523e+00_dp, 3.71394768667479935e+00_dp, 6.75468845238541338e+00_dp, 6.71839362983703346e-05_dp,&
+ 2.16820834544496606e-04_dp, 5.78858894715697709e-04_dp, 1.44079602687706139e-03_dp, 3.35595107506599056e-03_dp, 7.38753519939425174e-03_dp, 1.55169220144455947e-02_dp,&
+ 3.13310776551212547e-02_dp, 6.11648614294553819e-02_dp, 1.15971107204260557e-01_dp, 2.14360693807584268e-01_dp, 3.87622881472094116e-01_dp, 6.88709210745946487e-01_dp,&
+ 1.21231184422481064e+00_dp, 2.16203090843149370e+00_dp, 4.25962792921999256e+00_dp]
+ aw%aw_erange_matrix(:, 23) = [2.10828735485771043e-05_dp, 1.33747043923274799e-04_dp, 4.60302814175420549e-04_dp, 1.31908976394215505e-03_dp, 3.41373834744931924e-03_dp,&
+ 8.20208746315155210e-03_dp, 1.85794936296085622e-02_dp, 4.00951119714870186e-02_dp, 8.30646818595997816e-02_dp, 1.66166495086338906e-01_dp, 3.22461707884920790e-01_dp,&
+ 6.09385272174553516e-01_dp, 1.12552832887090504e+00_dp, 2.04092006169053786e+00_dp, 3.66479300909027206e+00_dp, 6.69064931196403645e+00_dp, 5.63375423327661044e-05_dp,&
+ 1.87324678348996492e-04_dp, 5.15997238093761422e-04_dp, 1.31297823197896904e-03_dp, 3.10840654255903261e-03_dp, 6.93141540756278107e-03_dp, 1.47143909644481610e-02_dp,&
+ 2.99783578189846064e-02_dp, 5.89769743650245121e-02_dp, 1.12576359067155851e-01_dp, 2.09319673205829559e-01_dp, 3.80493824364532884e-01_dp, 6.79179041147570661e-01_dp,&
+ 1.20037201041025687e+00_dp, 2.14804779322759742e+00_dp, 4.24372611094621011e+00_dp]
+ aw%aw_erange_matrix(:, 24) = [1.82166686738074864e-05_dp, 1.17355253951603524e-04_dp, 4.12646046678105574e-04_dp, 1.20544501630295061e-03_dp, 3.16766225037333439e-03_dp,&
+ 7.70401763679718320e-03_dp, 1.76251541149907119e-02_dp, 3.83513160771349129e-02_dp, 8.00120403518244372e-02_dp, 1.61032879231492870e-01_dp, 3.14159010930951887e-01_dp,&
+ 5.96476492618847165e-01_dp, 1.10626971507662764e+00_dp, 2.01342726666024063e+00_dp, 3.62732282398227612e+00_dp, 6.64174934770401748e+00_dp, 4.88479888159984235e-05_dp,&
+ 1.66743914977552775e-04_dp, 4.71273806908887769e-04_dp, 1.22055032501193809e-03_dp, 2.92729126196330808e-03_dp, 6.59463811322526239e-03_dp, 1.41173715836293810e-02_dp,&
+ 2.89656047084140694e-02_dp, 5.73298928164362870e-02_dp, 1.10008370974673766e-01_dp, 2.05490126818393987e-01_dp, 3.75057914236386680e-01_dp, 6.71889473870629361e-01_dp,&
+ 1.19121736903672493e+00_dp, 2.13731165043817173e+00_dp, 4.23151659571047745e+00_dp]
+ aw%aw_erange_matrix(:, 25) = [1.61101137105389739e-05_dp, 1.05257432767853372e-04_dp, 3.77124469837566750e-04_dp, 1.11973962747994172e-03_dp, 2.98014652008201080e-03_dp,&
+ 7.32119813756530822e-03_dp, 1.68863969203923159e-02_dp, 3.69933310084055861e-02_dp, 7.76226242551877887e-02_dp, 1.56996883399357717e-01_dp, 3.07606512749093397e-01_dp,&
+ 5.86254946758791418e-01_dp, 1.09097647899171291e+00_dp, 1.99154292498465102e+00_dp, 3.59744001648970313e+00_dp, 6.60269853853355038e+00_dp, 4.33396342454888918e-05_dp,&
+ 1.51467498773258743e-04_dp, 4.37524678131294127e-04_dp, 1.14987956691945054e-03_dp, 2.78750323004162831e-03_dp, 6.33280212676514374e-03_dp, 1.36504094549384763e-02_dp,&
+ 2.81694379065950094e-02_dp, 5.60293648763132632e-02_dp, 1.07972916431346322e-01_dp, 2.02444490698196894e-01_dp, 3.70722013872658129e-01_dp, 6.66060575713892322e-01_dp,&
+ 1.18388318186635288e+00_dp, 2.12870098815666564e+00_dp, 4.22172408565013857e+00_dp]
+ aw%aw_erange_matrix(:, 26) = [1.44910830020980627e-05_dp, 9.59247666285387932e-05_dp, 3.49480241611745145e-04_dp, 1.05236428638244149e-03_dp, 2.83143875825483384e-03_dp,&
+ 7.01541787267422751e-03_dp, 1.62928054973930578e-02_dp, 3.58967694676089050e-02_dp, 7.56850447598008957e-02_dp, 1.53712204828203025e-01_dp, 3.02257000428244105e-01_dp,&
+ 5.77887188163868748e-01_dp, 1.07842740830373907e+00_dp, 1.97355013597876772e+00_dp, 3.57283298867063293e+00_dp, 6.57050657122702475e+00_dp, 3.91036617280149617e-05_dp,&
+ 1.39622093468860363e-04_dp, 4.10978281792326609e-04_dp, 1.09367810950585973e-03_dp, 2.67546635017943237e-03_dp, 6.12167259211140406e-03_dp, 1.32720036926534928e-02_dp,&
+ 2.75215465371370822e-02_dp, 5.49672130356585603e-02_dp, 1.06305300828417465e-01_dp, 1.99942346115711156e-01_dp, 3.67151255105131302e-01_dp, 6.61250501621218900e-01_dp,&
+ 1.17782146729458970e+00_dp, 2.12157781794781597e+00_dp, 4.21362308983330625e+00_dp]
+ aw%aw_erange_matrix(:, 27) = [1.21556594544792030e-05_dp, 8.23983748572736053e-05_dp, 3.08963398371883647e-04_dp, 9.52384499123811097e-04_dp, 2.60842886057528018e-03_dp,&
+ 6.55290684696903554e-03_dp, 1.53886295835706215e-02_dp, 3.42166248696358297e-02_dp, 7.27014821000612765e-02_dp, 1.48632646931657925e-01_dp, 2.93953603975382449e-01_dp,&
+ 5.64857136583094444e-01_dp, 1.05883226845267098e+00_dp, 1.94538975252448010e+00_dp, 3.53425049785512657e+00_dp, 6.51996578961256912e+00_dp, 3.29892698526955332e-05_dp,&
+ 1.22339673980425813e-04_dp, 3.71555506181443741e-04_dp, 1.00911840740269950e-03_dp, 2.50533305997647192e-03_dp, 5.79875266691652017e-03_dp, 1.26898229903717064e-02_dp,&
+ 2.65198029780881646e-02_dp, 5.33179394599257103e-02_dp, 1.03706252106678443e-01_dp, 1.96029940068529973e-01_dp, 3.61552073806202301e-01_dp, 6.53689885157118789e-01_dp,&
+ 1.16827593217446624e+00_dp, 2.11034879572048117e+00_dp, 4.20085232088900096e+00_dp]
+ aw%aw_erange_matrix(:, 28) = [7.13471002471993354e-06_dp, 5.29467032451044542e-05_dp, 2.18126901539138012e-04_dp, 7.21360517466291921e-04_dp, 2.08015499871736474e-03_dp,&
+ 5.43528204883592450e-03_dp, 1.31681009285434403e-02_dp, 3.00345719866606173e-02_dp, 6.51901784064533585e-02_dp, 1.35719345130269731e-01_dp, 2.72666080314345083e-01_dp,&
+ 5.31207153623647232e-01_dp, 1.00790980686110809e+00_dp, 1.87182424824945604e+00_dp, 3.43304177060903370e+00_dp, 6.38699885280501967e+00_dp, 1.98257938552532495e-05_dp,&
+ 8.40296462119933309e-05_dp, 2.80273970340653956e-04_dp, 8.07328750940328643e-04_dp, 2.09061226948387829e-03_dp, 4.99849164035787510e-03_dp, 1.12274645565650279e-02_dp,&
+ 2.39748495351119265e-02_dp, 4.90869662060536283e-02_dp, 9.69821658282067484e-02_dp, 1.85832842429148964e-01_dp, 3.46864256074506494e-01_dp, 6.33748523755653492e-01_dp,&
+ 1.14299369524447547e+00_dp, 2.08053509421593663e+00_dp, 4.16694294663970854e+00_dp]
+ aw%aw_erange_matrix(:, 29) = [5.29249514301132187e-06_dp, 4.19343252757951111e-05_dp, 1.82737438901562374e-04_dp, 6.27843358430121520e-04_dp, 1.85983070894205180e-03_dp,&
+ 4.95818859592519427e-03_dp, 1.22023907425847667e-02_dp, 2.81878008516035054e-02_dp, 6.18305239154504777e-02_dp, 1.29880299744984995e-01_dp, 2.62950034242736719e-01_dp,&
+ 5.15724357812102130e-01_dp, 9.84317591482867238e-01_dp, 1.83754523881623699e+00_dp, 3.38566863771911741e+00_dp, 6.32456122317518865e+00_dp, 1.49899692977725207e-05_dp,&
+ 6.93204774283267655e-05_dp, 2.43220905340470661e-04_dp, 7.22473373592021528e-04_dp, 1.91187712314453383e-03_dp, 4.64701311884111248e-03_dp, 1.05752900144337678e-02_dp,&
+ 2.28253081203215642e-02_dp, 4.71550285030659447e-02_dp, 9.38829556499910095e-02_dp, 1.81094415667536784e-01_dp, 3.39990601639111378e-01_dp, 6.24360483604677663e-01_dp,&
+ 1.13103660859194521e+00_dp, 2.06639710262585607e+00_dp, 4.15086131910516443e+00_dp]
+ aw%aw_erange_matrix(:, 30) = [4.31773736878657279e-06_dp, 3.60303047352619597e-05_dp, 1.63261168167596623e-04_dp, 5.75226168100277158e-04_dp, 1.73379504384428150e-03_dp,&
+ 4.68178815714303739e-03_dp, 1.16372706574355469e-02_dp, 2.70982187469671100e-02_dp, 5.98347883444798334e-02_dp, 1.26391629758851071e-01_dp, 2.57116152461817626e-01_dp,&
+ 5.06388230347464385e-01_dp, 9.70039638261550818e-01_dp, 1.81673675871043816e+00_dp, 3.35684316451570375e+00_dp, 6.28650545297204477e+00_dp, 1.24303076540154611e-05_dp,&
+ 6.12924753893748605e-05_dp, 2.22338565270176626e-04_dp, 6.73725996984385692e-04_dp, 1.80782224834487824e-03_dp, 4.44029321814444489e-03_dp, 1.01885563508556497e-02_dp,&
+ 2.21389857406311917e-02_dp, 4.59949144505170382e-02_dp, 9.20126454807105032e-02_dp, 1.78222523273414285e-01_dp, 3.35808992061634781e-01_dp, 6.18631233760847832e-01_dp,&
+ 1.12372183807606851e+00_dp, 2.05773586398375707e+00_dp, 4.14100882646687207e+00_dp]
+ aw%aw_erange_matrix(:, 31) = [3.70975867485438758e-06_dp, 3.23095974345838857e-05_dp, 1.50751791796946199e-04_dp, 5.40915866129935237e-04_dp, 1.65069566621838817e-03_dp,&
+ 4.49801466629874431e-03_dp, 1.12590458181901151e-02_dp, 2.63650642132821425e-02_dp, 5.84859131899247639e-02_dp, 1.24024822968737125e-01_dp, 2.53145535590468929e-01_dp,&
+ 5.00016351298351092e-01_dp, 9.60271964584979987e-01_dp, 1.80247354207944044e+00_dp, 3.33705426048128562e+00_dp, 6.26035148960221832e+00_dp, 1.08336000906553486e-05_dp,&
+ 5.61646913829607426e-05_dp, 2.08706414643022598e-04_dp, 6.41498436540636542e-04_dp, 1.73842323177099346e-03_dp, 4.30149368219168854e-03_dp, 9.92748802913993866e-03_dp,&
+ 2.16736122289964903e-02_dp, 4.52053172738387798e-02_dp, 9.07355616494632117e-02_dp, 1.76256045479438767e-01_dp, 3.32938764907261542e-01_dp, 6.14690683320622044e-01_dp,&
+ 1.11868286357054081e+00_dp, 2.05176383786785221e+00_dp, 4.13421515627375502e+00_dp]
+ aw%aw_erange_matrix(:, 32) = [3.29307433796630773e-06_dp, 2.97376527986368188e-05_dp, 1.41976719845007126e-04_dp, 5.16576765783947141e-04_dp, 1.59126867541210652e-03_dp,&
+ 4.36579262671051883e-03_dp, 1.09856221527627942e-02_dp, 2.58330132577597980e-02_dp, 5.75039035275383276e-02_dp, 1.22297087801244098e-01_dp, 2.50240360996554667e-01_dp,&
+ 4.95345024579851689e-01_dp, 9.53099040349520976e-01_dp, 1.79198460975399865e+00_dp, 3.32248583508375628e+00_dp, 6.24108223942480667e+00_dp, 9.73921315654793179e-06_dp,&
+ 5.25819992873462335e-05_dp, 1.99028066423316980e-04_dp, 6.18407632563333165e-04_dp, 1.68838246973765458e-03_dp, 4.20092557580681921e-03_dp, 9.73759613841949229e-03_dp,&
+ 2.13340343901398007e-02_dp, 4.46276041650120678e-02_dp, 8.97990158818834650e-02_dp, 1.74811044817542116e-01_dp, 3.30826015322738642e-01_dp, 6.11785841611682035e-01_dp,&
+ 1.11496412843897841e+00_dp, 2.04735361117476744e+00_dp, 4.12919801960688915e+00_dp]
+ aw%aw_erange_matrix(:, 33) = [2.98964795412928161e-06_dp, 2.78510556032888645e-05_dp, 1.35463612561978952e-04_dp, 4.98353624804465101e-04_dp, 1.54649765459536899e-03_dp,&
+ 4.26571596491992760e-03_dp, 1.07779202919790727e-02_dp, 2.54276640489241416e-02_dp, 5.67539329083084562e-02_dp, 1.20974901513310126e-01_dp, 2.48013235638977037e-01_dp,&
+ 4.91758596295572781e-01_dp, 9.47584973821341991e-01_dp, 1.78391286926115833e+00_dp, 3.31126541650462869e+00_dp, 6.22623261842660014e+00_dp, 8.94223582088384038e-06_dp,&
+ 4.99308515006045077e-05_dp, 1.91777151092376909e-04_dp, 6.00986766112024265e-04_dp, 1.65044538838878419e-03_dp, 4.12440019763640146e-03_dp, 9.59267530862847537e-03_dp,&
+ 2.10742486967102106e-02_dp, 4.41847367419175643e-02_dp, 8.90798160999419775e-02_dp, 1.73699706474474164e-01_dp, 3.29198984665094174e-01_dp, 6.09546349869233395e-01_dp,&
+ 1.11209472908096241e+00_dp, 2.04394895409445887e+00_dp, 4.12532474780290670e+00_dp]
+ aw%aw_erange_matrix(:, 34) = [2.57922219186754929e-06_dp, 2.52766850415510830e-05_dp, 1.26457365708311655e-04_dp, 4.72914025961016545e-04_dp, 1.48357617092218538e-03_dp,&
+ 4.12436318531398793e-03_dp, 1.04834085373526585e-02_dp, 2.48510894180926055e-02_dp, 5.56843884684864870e-02_dp, 1.19085180222321993e-01_dp, 2.44824194691807717e-01_dp,&
+ 4.86614940401622065e-01_dp, 9.39665921045545360e-01_dp, 1.77230748120379422e+00_dp, 3.29511861865382860e+00_dp, 6.20484984880878532e+00_dp, 7.86406486178199112e-06_dp,&
+ 4.62765946095298626e-05_dp, 1.81648002610440557e-04_dp, 5.76466629589813639e-04_dp, 1.59676844408603957e-03_dp, 4.01569466774701501e-03_dp, 9.38616135532111505e-03_dp,&
+ 2.07030869722131423e-02_dp, 4.35506157524021276e-02_dp, 8.80480980271636099e-02_dp, 1.72102869337548120e-01_dp, 3.26857898204441721e-01_dp, 6.06320214250667622e-01_dp,&
+ 1.10795741758446264e+00_dp, 2.03903724449288815e+00_dp, 4.11973685029489456e+00_dp]
+ aw%aw_erange_matrix(:, 35) = [2.43541362433170772e-06_dp, 2.43674010920485705e-05_dp, 1.23239875127668686e-04_dp, 4.63753248815872328e-04_dp, 1.46079218475904187e-03_dp,&
+ 4.07296827940922378e-03_dp, 1.03759836334632576e-02_dp, 2.46402394239789019e-02_dp, 5.52924317122943237e-02_dp, 1.18391416193676977e-01_dp, 2.43651638230665685e-01_dp,&
+ 4.84721244099458271e-01_dp, 9.36747200836526961e-01_dp, 1.76802615796251827e+00_dp, 3.28915764337563843e+00_dp, 6.19695188747453063e+00_dp, 7.48620957173570369e-06_dp,&
+ 4.49744932307259967e-05_dp, 1.77998490979932098e-04_dp, 5.67577081138817986e-04_dp, 1.57722452679259057e-03_dp, 3.97598562426190998e-03_dp, 9.31052865345715144e-03_dp,&
+ 2.05668655620557320e-02_dp, 4.33174693969102659e-02_dp, 8.76681895298326436e-02_dp, 1.71514093328614226e-01_dp, 3.25993725425264114e-01_dp, 6.05128200549742812e-01_dp,&
+ 1.10642760942127394e+00_dp, 2.03722030677132970e+00_dp, 4.11766973357092336e+00_dp]
+ aw%aw_erange_matrix(:, 36) = [1.90859617159554337e-06_dp, 2.09950439600139040e-05_dp, 1.11113988674419262e-04_dp, 4.28852559134845432e-04_dp, 1.37333608208660158e-03_dp,&
+ 3.87459378923412116e-03_dp, 9.95955902729078225e-03_dp, 2.38200692781438822e-02_dp, 5.37634425665394003e-02_dp, 1.15678622021244265e-01_dp, 2.39057295596334041e-01_dp,&
+ 4.77288361373471137e-01_dp, 9.25274009180120371e-01_dp, 1.75117594726518022e+00_dp, 3.26567406672438754e+00_dp, 6.16581627107343788e+00_dp, 6.10122979734671908e-06_dp,&
+ 4.00837025306847991e-05_dp, 1.64084444472536599e-04_dp, 5.33400320302549955e-04_dp, 1.50164908261383990e-03_dp, 3.82175791908060704e-03_dp, 9.01575168296964852e-03_dp,&
+ 2.00344308423492865e-02_dp, 4.24040123406136116e-02_dp, 8.61766786663821643e-02_dp, 1.69198486719865704e-01_dp, 3.22589816911634075e-01_dp, 6.00426913775136684e-01_dp,&
+ 1.10038807582983877e+00_dp, 2.03004300869215726e+00_dp, 4.10950392701377876e+00_dp]
+ aw%aw_erange_matrix(:, 37) = [1.90827994525250899e-06_dp, 2.09929942749567209e-05_dp, 1.11106514447489467e-04_dp, 4.28830855332524641e-04_dp, 1.37328138921740056e-03_dp,&
+ 3.87446922377897339e-03_dp, 9.95929668391619047e-03_dp, 2.38195511381459925e-02_dp, 5.37624744822230785e-02_dp, 1.15676901105840627e-01_dp, 2.39054376294121851e-01_dp,&
+ 4.77283632901010835e-01_dp, 9.25266704669341467e-01_dp, 1.75116520865135428e+00_dp, 3.26565907490263108e+00_dp, 6.16579634865748449e+00_dp, 6.10039728638633995e-06_dp,&
+ 4.00806962962503083e-05_dp, 1.64075783635878373e-04_dp, 5.33378918013125954e-04_dp, 1.50160156415125889e-03_dp, 3.82166062969930154e-03_dp, 9.01556517573429313e-03_dp,&
+ 2.00340931971503301e-02_dp, 4.24034320065246953e-02_dp, 8.61757293982789441e-02_dp, 1.69197011150964555e-01_dp, 3.22587647195451244e-01_dp, 6.00423914940963921e-01_dp,&
+ 1.10038421265627195e+00_dp, 2.03003839540528963e+00_dp, 4.10949865437411699e+00_dp]
+ case(18)
+ aw%energy_range(:) = [100.0_dp, 2.00e+02_dp, 3.00e+02_dp, 4.00e+02_dp, 5.00e+02_dp, 6.00e+02_dp,&
+ 7.00e+02_dp, 8.00e+02_dp, 9.00e+02_dp, 1.00e+03_dp, 2.00e+03_dp, 3.00e+03_dp, 4.00e+03_dp, 5.00e+03_dp,&
+ 6.00e+03_dp, 8.00e+03_dp, 9.00e+03_dp, 1.00e+04_dp, 2.00e+04_dp, 3.00e+04_dp, 4.00e+04_dp, 5.00e+04_dp,&
+ 6.00e+04_dp, 7.00e+04_dp, 8.00e+04_dp, 1.00e+05_dp, 2.00e+05_dp, 3.00e+05_dp, 4.00e+05_dp, 5.00e+05_dp,&
+ 6.00e+05_dp, 7.00e+05_dp, 1.00e+06_dp, 2.00e+06_dp, 3.00e+06_dp, 4.00e+06_dp, 5.00e+06_dp]
+ aw%aw_erange_matrix(:, 1) = [3.13060568305601351e-03_dp, 1.67097480153570073e-02_dp, 4.20603752640300449e-02_dp, 8.09539652999341081e-02_dp, 1.36390967857746681e-01_dp,&
+ 2.13147798122915927e-01_dp, 3.18509646416849312e-01_dp, 4.63157341438440340e-01_dp, 6.62226034996298507e-01_dp, 9.36677961961052907e-01_dp, 1.31523305493242249e+00_dp,&
+ 1.83718188625082179e+00_dp, 2.55661335463641270e+00_dp, 3.54919245789090043e+00_dp, 4.92431566493793138e+00_dp, 6.85079762824929883e+00_dp, 9.62538936192941819e+00_dp,&
+ 1.39441065435998155e+01_dp, 8.05825095210471742e-03_dp, 1.92509609476614607e-02_dp, 3.17394427938591031e-02_dp, 4.65387250173524350e-02_dp, 6.51190142803804162e-02_dp,&
+ 8.95940655383273415e-02_dp, 1.22892483688214565e-01_dp, 1.68903153525686522e-01_dp, 2.32696487928973766e-01_dp, 3.20948271173013500e-01_dp, 4.42642242720547530e-01_dp,&
+ 6.10162954106962974e-01_dp, 8.41123679816304204e-01_dp, 1.16188888281340885e+00_dp, 1.61556100548747228e+00_dp, 2.28381103982621791e+00_dp, 3.36465045919326933e+00_dp,&
+ 5.63501703153524858e+00_dp]
+ aw%aw_erange_matrix(:, 2) = [1.77849763282545976e-03_dp, 9.53050331705429001e-03_dp, 2.41715763670106998e-02_dp, 4.70787133826155654e-02_dp, 8.06744954509492351e-02_dp,&
+ 1.28944316701122441e-01_dp, 1.98099178394377601e-01_dp, 2.97374199692843622e-01_dp, 4.40063137209178501e-01_dp, 6.44984839288004541e-01_dp, 9.38607314927031755e-01_dp,&
+ 1.35811986020136444e+00_dp, 1.95596687976843242e+00_dp, 2.80694386709650079e+00_dp, 4.02057818466138084e+00_dp, 5.76669629386025306e+00_dp, 8.34281786095414724e+00_dp,&
+ 1.24402956709732422e+01_dp, 4.58203689637041566e-03_dp, 1.10339170966427605e-02_dp, 1.84719162771828926e-02_dp, 2.77374293691252972e-02_dp, 4.01072366160640584e-02_dp,&
+ 5.74545178903397985e-02_dp, 8.23776589959942379e-02_dp, 1.18364088609596463e-01_dp, 1.70115491406395952e-01_dp, 2.44089150111693826e-01_dp, 3.49280752689573537e-01_dp,&
+ 4.98372261284116880e-01_dp, 7.09596261927372463e-01_dp, 1.01023464227912507e+00_dp, 1.44442078136247543e+00_dp, 2.09441041846179798e+00_dp, 3.15665485525111889e+00_dp,&
+ 5.39538962042540060e+00_dp]
+ aw%aw_erange_matrix(:, 3) = [1.27310209329263785e-03_dp, 6.84088991188971929e-03_dp, 1.74418711512609667e-02_dp, 3.42567626710492470e-02_dp, 5.94095603098494657e-02_dp,&
+ 9.64524637447977395e-02_dp, 1.50974587362519258e-01_dp, 2.31356617556676830e-01_dp, 3.49810807722170936e-01_dp, 5.23902124174831840e-01_dp, 7.78760954826290486e-01_dp,&
+ 1.15027942021814567e+00_dp, 1.68981403336343616e+00_dp, 2.47148636863273063e+00_dp, 3.60474942090268691e+00_dp, 5.25997727567653595e+00_dp, 7.73535457520057523e+00_dp,&
+ 1.17204273208081204e+01_dp, 3.28199550905035548e-03_dp, 7.94687934938108353e-03_dp, 1.34463066977488586e-02_dp, 2.05292847448247245e-02_dp, 3.03582077757123363e-02_dp,&
+ 4.46469181613256619e-02_dp, 6.57772653088819770e-02_dp, 9.69972855612304119e-02_dp, 1.42802353477466282e-01_dp, 2.09516542528400629e-01_dp, 3.06107049805222575e-01_dp,&
+ 4.45372961500316800e-01_dp, 6.45855025440923547e-01_dp, 9.35353101387836228e-01_dp, 1.35865735200749205e+00_dp, 1.99853353342874773e+00_dp, 3.05090311395216762e+00_dp,&
+ 5.27388729479473550e+00_dp]
+ aw%aw_erange_matrix(:, 4) = [1.00300764061800004e-03_dp, 5.40119285324320610e-03_dp, 1.38290060307211613e-02_dp, 2.73431383817179241e-02_dp, 4.78739878380367509e-02_dp,&
+ 7.86830586197688475e-02_dp, 1.24932830849546025e-01_dp, 1.94417356236044975e-01_dp, 2.98609672055963393e-01_dp, 4.54213697328763211e-01_dp, 6.85426012155419873e-01_dp,&
+ 1.02720865762776636e+00_dp, 1.53010666114936233e+00_dp, 2.26769934719810662e+00_dp, 3.34931803735087019e+00_dp, 4.94568863021012639e+00_dp, 7.35552542383112673e+00_dp,&
+ 1.12674173192650144e+01_dp, 2.58696587386509974e-03_dp, 6.29119659728542141e-03_dp, 1.07351937196825085e-02_dp, 1.66070637685148750e-02_dp, 2.49888153437386115e-02_dp,&
+ 3.74779891899764961e-02_dp, 5.63035562499744971e-02_dp, 8.45522551019596558e-02_dp, 1.26579337993229679e-01_dp, 1.88608097926375479e-01_dp, 2.79565535852876024e-01_dp,&
+ 4.12305005143533798e-01_dp, 6.05556651756423370e-01_dp, 8.87470522524977157e-01_dp, 1.30331335096881218e+00_dp, 1.93627015321842832e+00_dp, 2.98203008114882762e+00_dp,&
+ 5.19487437442852773e+00_dp]
+ aw%aw_erange_matrix(:, 5) = [8.33130943394381563e-04_dp, 4.49453339308115464e-03_dp, 1.15484388891811066e-02_dp, 2.29636533575316402e-02_dp, 4.05306238239156805e-02_dp,&
+ 6.72958002634303637e-02_dp, 1.08102758203152668e-01_dp, 1.70308031845335772e-01_dp, 2.64834042691084737e-01_dp, 4.07739033822954400e-01_dp, 6.22509561219692031e-01_dp,&
+ 9.43386633099325134e-01_dp, 1.42026920255805522e+00_dp, 2.12628406201697340e+00_dp, 3.17063021819169144e+00_dp, 4.72428168372380153e+00_dp, 7.08638539056717587e+00_dp,&
+ 1.09449464392502041e+01_dp, 2.14969537437315582e-03_dp, 5.24688620068331120e-03_dp, 9.01722309283595376e-03_dp, 1.41042638297888476e-02_dp, 2.15285615268984536e-02_dp,&
+ 3.27975625536323784e-02_dp, 5.00253106214112592e-02_dp, 7.61799293424517826e-02_dp, 1.15510957557027463e-01_dp, 1.74159210949979215e-01_dp, 2.61009248396864846e-01_dp,&
+ 3.88940440982029068e-01_dp, 5.76812654610189601e-01_dp, 8.53035431936163269e-01_dp, 1.26324693268146993e+00_dp, 1.89098401425114604e+00_dp, 2.93182828153962438e+00_dp,&
+ 5.13733863073762365e+00_dp]
+ aw%aw_erange_matrix(:, 6) = [7.15674370843821166e-04_dp, 3.86697304672405486e-03_dp, 9.96677365690930121e-03_dp, 1.99172110614480556e-02_dp, 3.54008150836152211e-02_dp,&
+ 5.92954333284383614e-02_dp, 9.61933370780173463e-02_dp, 1.53107118543686582e-01_dp, 2.40526092120968232e-01_dp, 3.73997115143040904e-01_dp, 5.76437879681963916e-01_dp,&
+ 8.81503038816230711e-01_dp, 1.33855571884150937e+00_dp, 2.02033476439687165e+00_dp, 3.03590765912302984e+00_dp, 4.55643391821923860e+00_dp, 6.88142347695170553e+00_dp,&
+ 1.06984955705750568e+01_dp, 1.84728124663890124e-03_dp, 4.52309511617493120e-03_dp, 7.82185187058320568e-03_dp, 1.23524323213823044e-02_dp, 1.90859782538452365e-02_dp,&
+ 2.94573075116894845e-02_dp, 4.54900527824695505e-02_dp, 7.00598456607959136e-02_dp, 1.07331414106435472e-01_dp, 1.63375364458601763e-01_dp, 2.47034717198631570e-01_dp,&
+ 3.71200184596518046e-01_dp, 5.54826538805611946e-01_dp, 8.26526683183469335e-01_dp, 1.23224156051956890e+00_dp, 1.85580993954395712e+00_dp, 2.89276832421468555e+00_dp,&
+ 5.09260485295158460e+00_dp]
+ aw%aw_erange_matrix(:, 7) = [6.29246983573313696e-04_dp, 3.40476518226396794e-03_dp, 8.79983474088586425e-03_dp, 1.76636613430474140e-02_dp, 3.15919107906099256e-02_dp,&
+ 5.33250278657308244e-02_dp, 8.72499733034381025e-02_dp, 1.40098901437124612e-01_dp, 2.22007419058450256e-01_dp, 3.48102016441458606e-01_dp, 5.40828223715164258e-01_dp,&
+ 8.33348162653710256e-01_dp, 1.27456789671411364e+00_dp, 1.93688694440292952e+00_dp, 2.92924597136559184e+00_dp, 4.42294883364496982e+00_dp, 6.71781677985601000e+00_dp,&
+ 1.05012007218785897e+01_dp, 1.62470924325914612e-03_dp, 3.98939943132514165e-03_dp, 6.93740550799082280e-03_dp, 1.10494735645689061e-02_dp, 1.72556556398382119e-02_dp,&
+ 2.69305189193088587e-02_dp, 4.20241386577638529e-02_dp, 6.53370028900366329e-02_dp, 1.00963057749311427e-01_dp, 1.54911672533170230e-01_dp, 2.35986284011789865e-01_dp,&
+ 3.57080603033420874e-01_dp, 5.37221991259609011e-01_dp, 8.05188864650826619e-01_dp, 1.20717674174648137e+00_dp, 1.82728826865744765e+00_dp, 2.86104949584900714e+00_dp,&
+ 5.05629894405748725e+00_dp]
+ aw%aw_erange_matrix(:, 8) = [5.62782334945291941e-04_dp, 3.04901907885508743e-03_dp, 7.90029086110356077e-03_dp, 1.59223945992483552e-02_dp, 2.86389033037378754e-02_dp,&
+ 4.86751317030152050e-02_dp, 8.02458271532852235e-02_dp, 1.29848258845782466e-01_dp, 2.07321142519682061e-01_dp, 3.27435994170185096e-01_dp, 5.12236322594479265e-01_dp,&
+ 7.94460714322788752e-01_dp, 1.22261725071368121e+00_dp, 1.86880404707785375e+00_dp, 2.84184092769238550e+00_dp, 4.31314738354701088e+00_dp, 6.58281632626634128e+00_dp,&
+ 1.03380056558369038e+01_dp, 1.45351311063793179e-03_dp, 3.57821112835372780e-03_dp, 6.25389079018070105e-03_dp, 1.00377848387202106e-02_dp, 1.58249375146050225e-02_dp,&
+ 2.49388369993986600e-02_dp, 3.92681519545044280e-02_dp, 6.15504612191745196e-02_dp, 9.58190040595412740e-02_dp, 1.48028823756269218e-01_dp, 2.26946010516923008e-01_dp,&
+ 3.45462248099259850e-01_dp, 5.22662230551262152e-01_dp, 7.87462830383376389e-01_dp, 1.18627850542234259e+00_dp, 1.80344595414217435e+00_dp, 2.83450126737101193e+00_dp,&
+ 5.02592512274666348e+00_dp]
+ aw%aw_erange_matrix(:, 9) = [5.09956820844997220e-04_dp, 2.76606079370183720e-03_dp, 7.18379472930052044e-03_dp, 1.45324734401939566e-02_dp, 2.62744457345686147e-02_dp,&
+ 4.49365179818514496e-02_dp, 7.45860480149161398e-02_dp, 1.21519479481494080e-01_dp, 1.95321069512380402e-01_dp, 3.10456408919682125e-01_dp, 4.88620042582648240e-01_dp,&
+ 7.62179819446476281e-01_dp, 1.17929178166661575e+00_dp, 1.81178303747056191e+00_dp, 2.76835875929337583e+00_dp, 4.22053315012927488e+00_dp, 6.46863952158576350e+00_dp,&
+ 1.01996937375922911e+01_dp, 1.31742409134479239e-03_dp, 3.25085143951871257e-03_dp, 5.70821004123319310e-03_dp, 9.22663936664768272e-03_dp, 1.46708066965285135e-02_dp,&
+ 2.33201522555469623e-02_dp, 3.70110320759733727e-02_dp, 5.84271461966189842e-02_dp, 9.15486203042080171e-02_dp, 1.42281684231895439e-01_dp, 2.19357305638089473e-01_dp,&
+ 3.35661995709629124e-01_dp, 5.10326837097277775e-01_dp, 7.72386958060629958e-01_dp, 1.16844839325418315e+00_dp, 1.78305793410421654e+00_dp, 2.81177434489785316e+00_dp,&
+ 4.99993299310682104e+00_dp]
+ aw%aw_erange_matrix(:, 10) = [4.66884191696600092e-04_dp, 2.53518315097069156e-03_dp, 6.59842169255152496e-03_dp, 1.33946637142630318e-02_dp, 2.43333256802801684e-02_dp,&
+ 4.18555359937679630e-02_dp, 6.99004840051102028e-02_dp, 1.14590085605347738e-01_dp, 1.85286893591144752e-01_dp, 2.96188601701286136e-01_dp, 4.68682238029433706e-01_dp,&
+ 7.34806567718746972e-01_dp, 1.14240233117834866e+00_dp, 1.76305053795450828e+00_dp, 2.70534768772159451e+00_dp, 4.14088691630270844e+00_dp, 6.37021671670584588e+00_dp,&
+ 1.00802468831582139e+01_dp, 1.20644262202773494e-03_dp, 2.98351806905674134e-03_dp, 5.26144993746265575e-03_dp, 8.55990693672604996e-03_dp, 1.37168167419120662e-02_dp,&
+ 2.19731075762485857e-02_dp, 3.51198349523668615e-02_dp, 5.57937272538030424e-02_dp, 8.79277306880305448e-02_dp, 1.37383772368286527e-01_dp, 2.12859795610828961e-01_dp,&
+ 3.27235125271443661e-01_dp, 4.99679091955250343e-01_dp, 7.59329485867318521e-01_dp, 1.15296227944800744e+00_dp, 1.76531471483956559e+00_dp, 2.79197621123604556e+00_dp,&
+ 4.97729762459709502e+00_dp]
+ aw%aw_erange_matrix(:, 11) = [2.60914461772335975e-04_dp, 1.42841100538599729e-03_dp, 3.77931336615040716e-03_dp, 7.87553426551717423e-03_dp, 1.48187271209905720e-02_dp,&
+ 2.65443710178691790e-02_dp, 4.62373542001488086e-02_dp, 7.89916247748617822e-02_dp, 1.32848433755762302e-01_dp, 2.20379319232295229e-01_dp, 3.61064527641105915e-01_dp,&
+ 5.84852933079486603e-01_dp, 9.37523669434331519e-01_dp, 1.48897669044511138e+00_dp, 2.34696867784464924e+00_dp, 3.68347884456586971e+00_dp, 5.80045014349923616e+00_dp,&
+ 9.38451113606470066e+00_dp, 6.75435555884669296e-04_dp, 1.69811101235115263e-03_dp, 3.09356203984489887e-03_dp, 5.27770014065303151e-03_dp, 8.92467772623281759e-03_dp,&
+ 1.50467300660292111e-02_dp, 2.51712972165478929e-02_dp, 4.16516501616942189e-02_dp, 6.81184703412873321e-02_dp, 1.10132067155941857e-01_dp, 1.76142887783290847e-01_dp,&
+ 2.78930670620491594e-01_dp, 4.37845260282784421e-01_dp, 6.82625481569703596e-01_dp, 1.06112107980412063e+00_dp, 1.65936002035834029e+00_dp, 2.67334288372550377e+00_dp,&
+ 4.84179632444405428e+00_dp]
+ aw%aw_erange_matrix(:, 12) = [1.85513213773606345e-04_dp, 1.02150286740210769e-03_dp, 2.73448938724222363e-03_dp, 5.80387009885520444e-03_dp, 1.11810481774840837e-02_dp,&
+ 2.05518300952334462e-02_dp, 3.67304305786214091e-02_dp, 6.43020141414563928e-02_dp, 1.10640253721470419e-01_dp, 1.87473309428166701e-01_dp, 3.13264290932447564e-01_dp,&
+ 5.16812698313678487e-01_dp, 8.42722150950093285e-01_dp, 1.35988341226895848e+00_dp, 2.17548182992352057e+00_dp, 3.46162154443591952e+00_dp, 5.52102425741810254e+00_dp,&
+ 9.04041836150807754e+00_dp, 4.80852705753012058e-04_dp, 1.22305403571343449e-03_dp, 2.27947736150288169e-03_dp, 4.01365797781973958e-03_dp, 7.01540376387589735e-03_dp,&
+ 1.21847611879422838e-02_dp, 2.09200714737653552e-02_dp, 3.54265591278901115e-02_dp, 5.91658737085576508e-02_dp, 9.75188516417223455e-02_dp, 1.58774380033241708e-01_dp,&
+ 2.55620059373879827e-01_dp, 4.07460398574663651e-01_dp, 6.44326699296321581e-01_dp, 1.01465268223249172e+00_dp, 1.60523186707796173e+00_dp, 2.61244035390791707e+00_dp,&
+ 4.77231660346555397e+00_dp]
+ aw%aw_erange_matrix(:, 13) = [1.45623827102946623e-04_dp, 8.05588152979675896e-04_dp, 2.17691130407093175e-03_dp, 4.68812739584344249e-03_dp, 9.19600123660022604e-03_dp,&
+ 1.72289055604926133e-02_dp, 3.13676494456035099e-02_dp, 5.58742924602326219e-02_dp, 9.76924100663839612e-02_dp, 1.67998143390820670e-01_dp, 2.84577977288065331e-01_dp,&
+ 4.75453513865553901e-01_dp, 7.84416664022989374e-01_dp, 1.27964179827845292e+00_dp, 2.06788347256167926e+00_dp, 3.32129384479391954e+00_dp, 5.34312314157560042e+00_dp,&
+ 8.82025781425350708e+00_dp, 3.77841659955862491e-04_dp, 9.70055271158684097e-04_dp, 1.84098010513958528e-03_dp, 3.32040210608571234e-03_dp, 5.94400030565985817e-03_dp,&
+ 1.05417311185070812e-02_dp, 1.84298427244651702e-02_dp, 3.17154955608041356e-02_dp, 5.37447671964476903e-02_dp, 8.97721982893909948e-02_dp, 1.47968012029178114e-01_dp,&
+ 2.40943262811694148e-01_dp, 3.88121908953358907e-01_dp, 6.19717513693844646e-01_dp, 9.84555284879807480e-01_dp, 1.56996784104876874e+00_dp, 2.57264246868716873e+00_dp,&
+ 4.72694104483554423e+00_dp]
+ aw%aw_erange_matrix(:, 14) = [1.20693065016366942e-04_dp, 6.70318312279102792e-04_dp, 1.82598709243442714e-03_dp, 3.98066758906077175e-03_dp, 7.92407149371679963e-03_dp,&
+ 1.50731508121776207e-02_dp, 2.78434453982067988e-02_dp, 5.02664501056209675e-02_dp, 8.89754985015726030e-02_dp, 1.54744075465572922e-01_dp, 2.64859545012644360e-01_dp,&
+ 4.46762838614896685e-01_dp, 7.43631633383161961e-01_dp, 1.22308810558274139e+00_dp, 1.99154189668606629e+00_dp, 3.22116127998360158e+00_dp, 5.21559085842792136e+00_dp,&
+ 8.66187972983845889e+00_dp, 3.13424614215803300e-04_dp, 8.11091344556560262e-04_dp, 1.56293846928815807e-03_dp, 2.87442640486548556e-03_dp, 5.24259999238325686e-03_dp,&
+ 9.44812750354856110e-03_dp, 1.67483721901341004e-02_dp, 2.91782108273659670e-02_dp, 4.99968956826367938e-02_dp, 8.43623562376343422e-02_dp, 1.40351586287337071e-01_dp,&
+ 2.30511253319458237e-01_dp, 3.74270678501655019e-01_dp, 6.01971072101519233e-01_dp, 9.62727552491357996e-01_dp, 1.54428582589175911e+00_dp, 2.54359484716486017e+00_dp,&
+ 4.69383505396399681e+00_dp]
+ aw%aw_erange_matrix(:, 15) = [1.03530813604779028e-04_dp, 5.77010708614184996e-04_dp, 1.58297978993598076e-03_dp, 3.48764309027865815e-03_dp, 7.02981637575661022e-03_dp,&
+ 1.35420129552544823e-02_dp, 2.53143459665430594e-02_dp, 4.62021297583787224e-02_dp, 8.25996052244215434e-02_dp, 1.44967282294702543e-01_dp, 2.50201253823955916e-01_dp,&
+ 4.25283165263042551e-01_dp, 7.12899874312358128e-01_dp, 1.18022626317392154e+00_dp, 1.93338491947318536e+00_dp, 3.14454465168471442e+00_dp, 5.11766152430480759e+00_dp,&
+ 8.53993925026136758e+00_dp, 2.69059599396066513e-04_dp, 7.01171220589084324e-04_dp, 1.36917997681255824e-03_dp, 2.55983016868183361e-03_dp, 4.74076816982743621e-03_dp,&
+ 8.65545451941890018e-03_dp, 1.55159703188033887e-02_dp, 2.73005170505556810e-02_dp, 4.71993736826663846e-02_dp, 8.02927232938843299e-02_dp, 1.34581100450814117e-01_dp,&
+ 2.22555937276669474e-01_dp, 3.63645272961041655e-01_dp, 5.88286109735375096e-01_dp, 9.45821302421523069e-01_dp, 1.52432961945465073e+00_dp, 2.52098460780209654e+00_dp,&
+ 4.66807280121724055e+00_dp]
+ aw%aw_erange_matrix(:, 16) = [8.12878045927325100e-05_dp, 4.55784176179485265e-04_dp, 1.26575781231635042e-03_dp, 2.83901197267764265e-03_dp, 5.84075866946649497e-03_dp,&
+ 1.14816659474414502e-02_dp, 2.18703351471255143e-02_dp, 4.06049658428226795e-02_dp, 7.37274839449534453e-02_dp, 1.31232827738574781e-01_dp, 2.29429562298488349e-01_dp,&
+ 3.94602877306535982e-01_dp, 6.68687020587504510e-01_dp, 1.11816086345712651e+00_dp, 1.84868752331819342e+00_dp, 3.03241562091376515e+00_dp, 4.97377213890380609e+00_dp,&
+ 8.36023751368250245e+00_dp, 2.11528474078379687e-04_dp, 5.57938342187908878e-04_dp, 1.11429094995911461e-03_dp, 2.13984900872585520e-03_dp, 4.05975600506285235e-03_dp,&
+ 7.56390783215793276e-03_dp, 1.37976760555232440e-02_dp, 2.46541044572325049e-02_dp, 4.32184500991177195e-02_dp, 7.44508856457123808e-02_dp, 1.26231561940560427e-01_dp,&
+ 2.10961000314310559e-01_dp, 3.48056000387103548e-01_dp, 5.68089975660581725e-01_dp, 9.20748230015767999e-01_dp, 1.49462504826186793e+00_dp, 2.48726404601868678e+00_dp,&
+ 4.62966203399261467e+00_dp]
+ aw%aw_erange_matrix(:, 17) = [7.36290238032269906e-05_dp, 4.13946476575048573e-04_dp, 1.15578122974341227e-03_dp, 2.61246326353696025e-03_dp, 5.42131632353000555e-03_dp,&
+ 1.07469311984104646e-02_dp, 2.06290337409884283e-02_dp, 3.85675089612289509e-02_dp, 7.04684426329998531e-02_dp, 1.26145823376294514e-01_dp, 2.21678062600754872e-01_dp,&
+ 3.83075284348309064e-01_dp, 6.51971738557552305e-01_dp, 1.09456550812149200e+00_dp, 1.81633014027732598e+00_dp, 2.98939917340350014e+00_dp, 4.91838496867421782e+00_dp,&
+ 8.29089093989333747e+00_dp, 1.91708707114072877e-04_dp, 5.08367399657288512e-04_dp, 1.02527533888157078e-03_dp, 1.99114795509654219e-03_dp, 3.81505964757374331e-03_dp,&
+ 7.16665373395437236e-03_dp, 1.31655503592034168e-02_dp, 2.36714122682651733e-02_dp, 4.17278947848333456e-02_dp, 7.22471020464889591e-02_dp, 1.23060199748490182e-01_dp,&
+ 2.06529455242298821e-01_dp, 3.42064141262841903e-01_dp, 5.60288564762608798e-01_dp, 9.11022245959785426e-01_dp, 1.48306650559867004e+00_dp, 2.47412089926975653e+00_dp,&
+ 4.61469407825248634e+00_dp]
+ aw%aw_erange_matrix(:, 18) = [6.73944932443592415e-05_dp, 3.79844572428876927e-04_dp, 1.06590795373273759e-03_dp, 2.42654206896005193e-03_dp, 5.07517853516520952e-03_dp,&
+ 1.01369719376394104e-02_dp, 1.95925662402830214e-02_dp, 3.68571498016495233e-02_dp, 6.77192628196435775e-02_dp, 1.21835648595960938e-01_dp, 2.15083880414005030e-01_dp,&
+ 3.73233014220664572e-01_dp, 6.37653103358320594e-01_dp, 1.07429339684447545e+00_dp, 1.78845750203856402e+00_dp, 2.95226237507783207e+00_dp, 4.87048249753405393e+00_dp,&
+ 8.23083530472446867e+00_dp, 1.75569876637717915e-04_dp, 4.67898292556300052e-04_dp, 9.52228454181657511e-04_dp, 1.86817929682057309e-03_dp, 3.61108514012193401e-03_dp,&
+ 6.83324047724214335e-03_dp, 1.26319553349792356e-02_dp, 2.28377529856874373e-02_dp, 4.04577800825522693e-02_dp, 7.03617133989330734e-02_dp, 1.20337130462841210e-01_dp,&
+ 2.02711688147605068e-01_dp, 3.36886623918729866e-01_dp, 5.53529442704170482e-01_dp, 9.02576781682568829e-01_dp, 1.47301298821370485e+00_dp, 2.46267883439995794e+00_dp,&
+ 4.60166480506323872e+00_dp]
+ aw%aw_erange_matrix(:, 19) = [3.77097267144774277e-05_dp, 2.16718158239339242e-04_dp, 6.31964795877831245e-04_dp, 1.51501851013790970e-03_dp, 3.34484667837428931e-03_dp,&
+ 7.02512458570965417e-03_dp, 1.42014149350935173e-02_dp, 2.78013295560369245e-02_dp, 5.29266569041400847e-02_dp, 9.83025113032961195e-02_dp, 1.78600150657352325e-01_dp,&
+ 3.18120006405406497e-01_dp, 5.56596891614358547e-01_dp, 9.58408306407735666e-01_dp, 1.62774470686190731e+00_dp, 2.73655217246640481e+00_dp, 4.59058386383132877e+00_dp,&
+ 7.87837440091345975e+00_dp, 9.86461415774919214e-05_dp, 2.73221143359511415e-04_dp, 5.94197557752134385e-04_dp, 1.24895734154715447e-03_dp, 2.55620318224912286e-03_dp,&
+ 5.06990830887251494e-03_dp, 9.75621380152377933e-03_dp, 1.82704930302675719e-02_dp, 3.33967548858809735e-02_dp, 5.97405156792770453e-02_dp, 1.04810909008227066e-01_dp,&
+ 1.80703082801913328e-01_dp, 3.06740164242034985e-01_dp, 5.13823817457257026e-01_dp, 8.52592911322042957e-01_dp, 1.41317820778574244e+00_dp, 2.39437286369400981e+00_dp,&
+ 4.52390876499952377e+00_dp]
+ aw%aw_erange_matrix(:, 20) = [2.68925195549073629e-05_dp, 1.56793785885291212e-04_dp, 4.69893990043240026e-04_dp, 1.16545220385413321e-03_dp, 2.65989506956115698e-03_dp,&
+ 5.75384007396932337e-03_dp, 1.19342111722500789e-02_dp, 2.38928003384090495e-02_dp, 4.63925218571977285e-02_dp, 8.76901279402622358e-02_dp, 1.61839358502072539e-01_dp,&
+ 2.92374836693560902e-01_dp, 5.18161174811695435e-01_dp, 9.02717884502531653e-01_dp, 1.54960075834088817e+00_dp, 2.63061729962015844e+00_dp, 4.45202318493723048e+00_dp,&
+ 7.70286032300627355e+00_dp, 7.05638795782659030e-05_dp, 2.01002867914723093e-04_dp, 4.56947425490451874e-04_dp, 1.00093647179561995e-03_dp, 2.11652844500955601e-03_dp,&
+ 4.31084332567352024e-03_dp, 8.48457589505386897e-03_dp, 1.62034578815592155e-02_dp, 3.01348775048121756e-02_dp, 5.47430158873886477e-02_dp, 9.73833001049487501e-02_dp,&
+ 1.70015028445808208e-01_dp, 2.91900568092631596e-01_dp, 4.94043300498388738e-01_dp, 8.27439707654565648e-01_dp, 1.38283937942449198e+00_dp, 2.35959541119381777e+00_dp,&
+ 4.48433441513418707e+00_dp]
+ aw%aw_erange_matrix(:, 21) = [2.11776428406011891e-05_dp, 1.24955957092028758e-04_dp, 3.82749361784648454e-04_dp, 9.73991658367676029e-04_dp, 2.27688417139812168e-03_dp,&
+ 5.02884426710743966e-03_dp, 1.06183171895938705e-02_dp, 2.15888221418370253e-02_dp, 4.24877264991899983e-02_dp, 8.12706704880782893e-02_dp, 1.51590277234206289e-01_dp,&
+ 2.76478503601760406e-01_dp, 4.94222230573377497e-01_dp, 8.67763285947123597e-01_dp, 1.50022012401874916e+00_dp, 2.56328999983562467e+00_dp, 4.36355480209440749e+00_dp,&
+ 7.59041890716973189e+00_dp, 5.57090107245227829e-05_dp, 1.62366769955750792e-04_dp, 3.81782556436269834e-04_dp, 8.61192201413146460e-04_dp, 1.86281232839267670e-03_dp,&
+ 3.86442117299721881e-03_dp, 7.72478532341631073e-03_dp, 1.49514707528110163e-02_dp, 2.81353063747719796e-02_dp, 5.16464716293368112e-02_dp, 9.27364294632549019e-02_dp,&
+ 1.63269905535395971e-01_dp, 2.82461831610602510e-01_dp, 4.81374480384390513e-01_dp, 8.11235487340904116e-01_dp, 1.36320833480298265e+00_dp, 2.33703760956925288e+00_dp,&
+ 4.45866956074495580e+00_dp]
+ aw%aw_erange_matrix(:, 22) = [1.76070275101297462e-05_dp, 1.04974632586343552e-04_dp, 3.27524057106157195e-04_dp, 8.50889138429431618e-04_dp, 2.02675943694682068e-03_dp,&
+ 4.54854527962151971e-03_dp, 9.73548372448280498e-03_dp, 2.00259509380829870e-02_dp, 3.98132333040402478e-02_dp, 7.68361260215089659e-02_dp, 1.44456327953492114e-01_dp,&
+ 2.65338595024798618e-01_dp, 4.77344481537174625e-01_dp, 8.42986466846138205e-01_dp, 1.46505294151738807e+00_dp, 2.51515068726526270e+00_dp, 4.30009786276047024e+00_dp,&
+ 7.50957825176482174e+00_dp, 4.64186887815647243e-05_dp, 1.37983797560572785e-04_dp, 3.33452287623846701e-04_dp, 7.69419491405382667e-04_dp, 1.69333629958220424e-03_dp,&
+ 3.56219435629200097e-03_dp, 7.20463902309312343e-03_dp, 1.40860992359440711e-02_dp, 2.67414967648813770e-02_dp, 4.94717544703552684e-02_dp, 8.94508734055344951e-02_dp,&
+ 1.58471793174805697e-01_dp, 2.75710974071400383e-01_dp, 4.72269671037240601e-01_dp, 7.99542467873979534e-01_dp, 1.34899902892752999e+00_dp, 2.32068207466329079e+00_dp,&
+ 4.44006317705370979e+00_dp]
+ aw%aw_erange_matrix(:, 23) = [1.51487261945737330e-05_dp, 9.11659324769150721e-05_dp, 2.89040873614000921e-04_dp, 7.64069868490654643e-04_dp, 1.84814200002400239e-03_dp,&
+ 4.20167024631436757e-03_dp, 9.09161519340235570e-03_dp, 1.88763863743453900e-02_dp, 3.78313678142224094e-02_dp, 7.35284936492460878e-02_dp, 1.39104394958239008e-01_dp,&
+ 2.56938214106312401e-01_dp, 4.64558752402094766e-01_dp, 8.24140212584070331e-01_dp, 1.43820799153508694e+00_dp, 2.47829256677809928e+00_dp, 4.25139458167740614e+00_dp,&
+ 7.44742363171281507e+00_dp, 4.00172934108619654e-05_dp, 1.21053459367159757e-04_dp, 2.99362782194228345e-04_dp, 7.03592889127086147e-04_dp, 1.57016975178594681e-03_dp,&
+ 3.34027399899004991e-03_dp, 6.81941752803501798e-03_dp, 1.34404676386291749e-02_dp, 2.56948821776365501e-02_dp, 4.78293838010395780e-02_dp, 8.69568482518628116e-02_dp,&
+ 1.54812802519890103e-01_dp, 2.70541537476452487e-01_dp, 4.65272231353635712e-01_dp, 7.90528148997813096e-01_dp, 1.33801932338487473e+00_dp, 2.30802753439873376e+00_dp,&
+ 4.42566810636102037e+00_dp]
+ aw%aw_erange_matrix(:, 24) = [1.33450946857598585e-05_dp, 8.10013345693360817e-05_dp, 2.60505518780499042e-04_dp, 6.99027120294132363e-04_dp, 1.71292672688305443e-03_dp,&
+ 3.93664118611715408e-03_dp, 8.59572801141966769e-03_dp, 1.79849132808722820e-02_dp, 3.62852280011255329e-02_dp, 7.09344754417242929e-02_dp, 1.34887592254427091e-01_dp,&
+ 2.50292160328723368e-01_dp, 4.54405961654528678e-01_dp, 8.09126146653293299e-01_dp, 1.41676082143058490e+00_dp, 2.44877472513873817e+00_dp, 4.21231557277193680e+00_dp,&
+ 7.39748146374000015e+00_dp, 3.53174020538623987e-05_dp, 1.08539211526486186e-04_dp, 2.73819521014837626e-04_dp, 6.53580073098785556e-04_dp, 1.47559217672499333e-03_dp,&
+ 3.16843822945470479e-03_dp, 6.51906462972331319e-03_dp, 1.29340795221531794e-02_dp, 2.48697209477921517e-02_dp, 4.65285612184684963e-02_dp, 8.49733606273255226e-02_dp,&
+ 1.51892088420516908e-01_dp, 2.66401503567959441e-01_dp, 4.59651859717771616e-01_dp, 7.83269968829686136e-01_dp, 1.32916215886498579e+00_dp, 2.29780866662279104e+00_dp,&
+ 4.41404428527587811e+00_dp]
+ aw%aw_erange_matrix(:, 25) = [1.19608983643762814e-05_dp, 7.31776981510573726e-05_dp, 2.38397281335537387e-04_dp, 6.48177541128883454e-04_dp, 1.60627044353721924e-03_dp,&
+ 3.72594606594641407e-03_dp, 8.19885121070576886e-03_dp, 1.72673139868429436e-02_dp, 3.50344193249588626e-02_dp, 6.88267529409492540e-02_dp, 1.31448064305153656e-01_dp,&
+ 2.44852576105250047e-01_dp, 4.46070906494070551e-01_dp, 7.96766930006198804e-01_dp, 1.39906449480958073e+00_dp, 2.42437075724512852e+00_dp, 4.17995561517234826e+00_dp,&
+ 7.35607828290079802e+00_dp, 3.17082936442419536e-05_dp, 9.88711098779920632e-05_dp, 2.53846227836985994e-04_dp, 6.14009273933647896e-04_dp, 1.40009229465454287e-03_dp,&
+ 3.03030469936903983e-03_dp, 6.27622081555165301e-03_dp, 1.25226197820897597e-02_dp, 2.41963451940166926e-02_dp, 4.54629624299898311e-02_dp, 8.33430042783768893e-02_dp,&
+ 1.49484033643996705e-01_dp, 2.62978817693378941e-01_dp, 4.54994127276706906e-01_dp, 7.77242691667035968e-01_dp, 1.32179571981875110e+00_dp, 2.28930236484464933e+00_dp,&
+ 4.40436883899004261e+00_dp]
+ aw%aw_erange_matrix(:, 26) = [9.96761158553555444e-06_dp, 6.18692914207559080e-05_dp, 2.06170036210568655e-04_dp, 5.73211107890209581e-04_dp, 1.44730240695950876e-03_dp,&
+ 3.40892099536259157e-03_dp, 7.59685007995568491e-03_dp, 1.61712883720046205e-02_dp, 3.31125600685078861e-02_dp, 6.55713200633647325e-02_dp, 1.26111159618525148e-01_dp,&
+ 2.36377868660430784e-01_dp, 4.33038093291385484e-01_dp, 7.77379946000164024e-01_dp, 1.37122800415111401e+00_dp, 2.38589243185479205e+00_dp, 4.12883680000907560e+00_dp,&
+ 7.29058430903771093e+00_dp, 2.65071583106260783e-05_dp, 8.48293254396083508e-05_dp, 2.24390897268131415e-04_dp, 5.54811598906642159e-04_dp, 1.28593422488879972e-03_dp,&
+ 2.81969169097368326e-03_dp, 5.90338491932312654e-03_dp, 1.18871614049258830e-02_dp, 2.31510113224687453e-02_dp, 4.38012130603939800e-02_dp, 8.07902275831345329e-02_dp,&
+ 1.45699852659562423e-01_dp, 2.57582690043541174e-01_dp, 4.47629793783756336e-01_dp, 7.67689878785539737e-01_dp, 1.31009898646472545e+00_dp, 2.27578179593081087e+00_dp,&
+ 4.38899056842124402e+00_dp]
+ aw%aw_erange_matrix(:, 27) = [5.69628328201120298e-06_dp, 3.73947477693335357e-05_dp, 1.34808292606433211e-04_dp, 4.02363370425018007e-04_dp, 1.07522362749315568e-03_dp,&
+ 2.64987937419991189e-03_dp, 6.12770973340106412e-03_dp, 1.34527127599654243e-02_dp, 2.82784222092996897e-02_dp, 5.72823558565759422e-02_dp, 1.12375952980137431e-01_dp,&
+ 2.14359358899264385e-01_dp, 3.98891047400829091e-01_dp, 7.26205544331862018e-01_dp, 1.29727249730106053e+00_dp, 2.28310280963276657e+00_dp, 3.99168266601377741e+00_dp,&
+ 7.11430302311417950e+00_dp, 1.53412014655641082e-05_dp, 5.40378710172882411e-05_dp, 1.57188321282197624e-04_dp, 4.15042400610066186e-04_dp, 1.00955395518829635e-03_dp,&
+ 2.29966856177653885e-03_dp, 4.96771195351118459e-03_dp, 1.02701101357026894e-02_dp, 2.04586605332921639e-02_dp, 3.94755240942939317e-02_dp, 7.40820751149756651e-02_dp,&
+ 1.35671534087687312e-01_dp, 2.43174288430001523e-01_dp, 4.27834657486577119e-01_dp, 7.41867110367467664e-01_dp, 1.27834520477995417e+00_dp, 2.23898801777038958e+00_dp,&
+ 4.34714455839110681e+00_dp]
+ aw%aw_erange_matrix(:, 28) = [4.13173182523085577e-06_dp, 2.82953569586273491e-05_dp, 1.07357655282983076e-04_dp, 3.34031207388946118e-04_dp, 9.21278013215434373e-04_dp,&
+ 2.32697217024414134e-03_dp, 5.48821969396552471e-03_dp, 1.22464124910277479e-02_dp, 2.60980188844333050e-02_dp, 5.34905273921795141e-02_dp, 1.06014872445904379e-01_dp,&
+ 2.04051155883155949e-01_dp, 3.82751435806632623e-01_dp, 7.01813987411379236e-01_dp, 1.26176462906345210e+00_dp, 2.23344686165775030e+00_dp, 3.92510147193946413e+00_dp,&
+ 7.02842472272909724e+00_dp, 1.12413825198791527e-05_dp, 4.23581397394261224e-05_dp, 1.30257470325819791e-04_dp, 3.56609544464453910e-04_dp, 8.90477280344353396e-04_dp,&
+ 2.07032072932821203e-03_dp, 4.54706396508409039e-03_dp, 9.53127582160513340e-03_dp, 1.92112591692011961e-02_dp, 3.74468407961127125e-02_dp, 7.09020793561878498e-02_dp,&
+ 1.30872002390418907e-01_dp, 2.36219607171893220e-01_dp, 4.18208222356725279e-01_dp, 7.29229896403720712e-01_dp, 1.26273069797389059e+00_dp, 2.22084593571100797e+00_dp,&
+ 4.32651261931560516e+00_dp]
+ aw%aw_erange_matrix(:, 29) = [3.30226286847199525e-06_dp, 2.34206306119432754e-05_dp, 9.23040944987100478e-05_dp, 2.95637516785855010e-04_dp, 8.33032454706429562e-04_dp,&
+ 2.13888506531630974e-03_dp, 5.11084598639201682e-03_dp, 1.15268119959546240e-02_dp, 2.47853719976952012e-02_dp, 5.11897543127538684e-02_dp, 1.02128694597074979e-01_dp,&
+ 1.97715753164931340e-01_dp, 3.72779679793518004e-01_dp, 6.86673954558245980e-01_dp, 1.23963600788232053e+00_dp, 2.20239644190786343e+00_dp, 3.88335573763512620e+00_dp,&
+ 6.97447560324605043e+00_dp, 9.06493831009571861e-06_dp, 3.60111158305800768e-05_dp, 1.15103834959029406e-04_dp, 3.22921911156177086e-04_dp, 8.20644989436114134e-04_dp,&
+ 1.93402803087780505e-03_dp, 4.29437456179440017e-03_dp, 9.08340287300126066e-03_dp, 1.84491991824218791e-02_dp, 3.61990758173190777e-02_dp, 6.89345184382906401e-02_dp,&
+ 1.27886682133110025e-01_dp, 2.31873470472087867e-01_dp, 4.12167639049623669e-01_dp, 7.21272419162619305e-01_dp, 1.25287237048937405e+00_dp, 2.20937452693632252e+00_dp,&
+ 4.31346712866726367e+00_dp]
+ aw%aw_erange_matrix(:, 30) = [2.78283201387954402e-06_dp, 2.03426037320646153e-05_dp, 8.26259072951729948e-05_dp, 2.70516106805006676e-04_dp, 7.74477217336155344e-04_dp,&
+ 2.01269269881237858e-03_dp, 4.85538908841575724e-03_dp, 1.10360899520125632e-02_dp, 2.38846577194131125e-02_dp, 4.96025957422899302e-02_dp, 9.94354927347321504e-02_dp,&
+ 1.93307477671805478e-01_dp, 3.65816591824084103e-01_dp, 6.76069111738649142e-01_dp, 1.22409427413862582e+00_dp, 2.18053922732942196e+00_dp, 3.85391701960755872e+00_dp,&
+ 6.93638192354861616e+00_dp, 7.70087496722592801e-06_dp, 3.19576584688943520e-05_dp, 1.05177485427069824e-04_dp, 3.00482919789287189e-04_dp, 7.73582704782332952e-04_dp,&
+ 1.84134068718631730e-03_dp, 4.12126152251564119e-03_dp, 8.77467844465320244e-03_dp, 1.79211328551752251e-02_dp, 3.53304913887004385e-02_dp, 6.75593850637441345e-02_dp,&
+ 1.25792833963319417e-01_dp, 2.28815579140328212e-01_dp, 4.07905810796353407e-01_dp, 7.15645047122159150e-01_dp, 1.24588833188247139e+00_dp, 2.20123945650827624e+00_dp,&
+ 4.30421587078781709e+00_dp]
+ aw%aw_erange_matrix(:, 31) = [2.42470995219759579e-06_dp, 1.82056418065889971e-05_dp, 7.58071587224136450e-05_dp, 2.52573761105593449e-04_dp, 7.32207996753558832e-04_dp,&
+ 1.92083837540198534e-03_dp, 4.66820156902059222e-03_dp, 1.06745344941764735e-02_dp, 2.32179642804407754e-02_dp, 4.84231777753803896e-02_dp, 9.74273510544483023e-02_dp,&
+ 1.90010738320586459e-01_dp, 3.60595635420595140e-01_dp, 6.68099359921788150e-01_dp, 1.21239121059783406e+00_dp, 2.16405314617733913e+00_dp, 3.83168318569659494e+00_dp,&
+ 6.90758403160364232e+00_dp, 6.75989988981772157e-06_dp, 2.91166320615211813e-05_dp, 9.80814416411888686e-05_dp, 2.84239565715768542e-04_dp, 7.39214990519655962e-04_dp,&
+ 1.77319565434359968e-03_dp, 3.99328716643299574e-03_dp, 8.54540727765975248e-03_dp, 1.75274395605375770e-02_dp, 3.46807424038581488e-02_dp, 6.65276661394083452e-02_dp,&
+ 1.24217779070994183e-01_dp, 2.26510012074744777e-01_dp, 4.04685973490304496e-01_dp, 7.11386227023358408e-01_dp, 1.24059585248586801e+00_dp, 2.19507011726273715e+00_dp,&
+ 4.29720009490146815e+00_dp]
+ aw%aw_erange_matrix(:, 32) = [2.16176129771252570e-06_dp, 1.66270788284179806e-05_dp, 7.07073818199545589e-05_dp, 2.39005352223638798e-04_dp, 6.99970597597809083e-04_dp,&
+ 1.85032202789351969e-03_dp, 4.52374236259756816e-03_dp, 1.03943065527904843e-02_dp, 2.26993688693021452e-02_dp, 4.75029283214516498e-02_dp, 9.58563153562880799e-02_dp,&
+ 1.87425604388040429e-01_dp, 3.56493299282148790e-01_dp, 6.61826019040598901e-01_dp, 1.20316501743560211e+00_dp, 2.15103939920971232e+00_dp, 3.81411428402921349e+00_dp,&
+ 6.88481150276458820e+00_dp, 6.06872942426459449e-06_dp, 2.70007474622843711e-05_dp, 9.27112801831565700e-05_dp, 2.71824476999939159e-04_dp, 7.12764856522128025e-04_dp,&
+ 1.72046973418600829e-03_dp, 3.89384253410110818e-03_dp, 8.36660921401996896e-03_dp, 1.72194799075441295e-02_dp, 3.41711481654501797e-02_dp, 6.57166273395015377e-02_dp,&
+ 1.22977096456407906e-01_dp, 2.24690622353530628e-01_dp, 4.02141088617422038e-01_dp, 7.08015656612941524e-01_dp, 1.23640293809345647e+00_dp, 2.19017966864169455e+00_dp,&
+ 4.29163868677014726e+00_dp]
+ aw%aw_erange_matrix(:, 33) = [1.66936450608206082e-06_dp, 1.36431464861143047e-05_dp, 6.08878352206036587e-05_dp, 2.12464299388389423e-04_dp, 6.36156479143742287e-04_dp,&
+ 1.70945176503017405e-03_dp, 4.23305031045998186e-03_dp, 9.82704453711613982e-03_dp, 2.16443420921362956e-02_dp, 4.56228251434010676e-02_dp, 9.26348688449874502e-02_dp,&
+ 1.82107804189891698e-01_dp, 3.48030917348462088e-01_dp, 6.48853583623900110e-01_dp, 1.18404608576497394e+00_dp, 2.12402377079366600e+00_dp, 3.77759108546833344e+00_dp,&
+ 6.83742277697884582e+00_dp, 4.77387758909035730e-06_dp, 2.29508126780449446e-05_dp, 8.21955857595700617e-05_dp, 2.47176829848202247e-04_dp, 6.59746554464799278e-04_dp,&
+ 1.61399895858116817e-03_dp, 3.69183124596445282e-03_dp, 8.00159671421590488e-03_dp, 1.65881388791646808e-02_dp, 3.31226449124670599e-02_dp, 6.40425960094452851e-02_dp,&
+ 1.20409083459694130e-01_dp, 2.20915444128518351e-01_dp, 3.96849048328325904e-01_dp, 7.00993735471721613e-01_dp, 1.22765555889850098e+00_dp, 2.17996886122467481e+00_dp,&
+ 4.28002698121303382e+00_dp]
+ aw%aw_erange_matrix(:, 34) = [1.05153210682392675e-06_dp, 9.82109359198566600e-06_dp, 4.78395861953558743e-05_dp, 1.76150199721789534e-04_dp, 5.46950548985951032e-04_dp,&
+ 1.50929468544557942e-03_dp, 3.81467384580032147e-03_dp, 9.00203065583603246e-03_dp, 2.00964950531542334e-02_dp, 4.28440003106925135e-02_dp, 8.78430751011748528e-02_dp,&
+ 1.74153796774317637e-01_dp, 3.35311955480436741e-01_dp, 6.29273208523922545e-01_dp, 1.15508235334965992e+00_dp, 2.08297103191134481e+00_dp, 3.72195535108324504e+00_dp,&
+ 6.76510927942180729e+00_dp, 3.14818816312260181e-06_dp, 1.76265786828965847e-05_dp, 6.77797879677525459e-05_dp, 2.12550340542676892e-04_dp, 5.83980993235004228e-04_dp,&
+ 1.45984592182904255e-03_dp, 3.39626651311348464e-03_dp, 7.46288840499817214e-03_dp, 1.56494990870774189e-02_dp, 3.15539085571265657e-02_dp, 6.15241149934381698e-02_dp,&
+ 1.16526851395361591e-01_dp, 2.15183704649527130e-01_dp, 3.88784002747290469e-01_dp, 6.90258249868418550e-01_dp, 1.21424952388445284e+00_dp, 2.16429814216163985e+00_dp,&
+ 4.26220623979455038e+00_dp]
+ aw%aw_erange_matrix(:, 35) = [8.34728214621684905e-07_dp, 8.44560904459773364e-06_dp, 4.29584696333223408e-05_dp, 1.62177244224623302e-04_dp, 5.11932680714949351e-04_dp,&
+ 1.42954228669343788e-03_dp, 3.64602080873342380e-03_dp, 8.66631682566647125e-03_dp, 1.94617241079152355e-02_dp, 4.16968867194957987e-02_dp, 8.58538110406805999e-02_dp,&
+ 1.70835591676214343e-01_dp, 3.29983260076326335e-01_dp, 6.21039304902132216e-01_dp, 1.14286341091260302e+00_dp, 2.06560541307989309e+00_dp, 3.69837086391296577e+00_dp,&
+ 6.73440815365611112e+00_dp, 2.57729833765363847e-06_dp, 1.56542937546273492e-05_dp, 6.22229276297930358e-05_dp, 1.98899151081870858e-04_dp, 5.53641700347800485e-04_dp,&
+ 1.39738260727315100e-03_dp, 3.27536872998534807e-03_dp, 7.24082112567673349e-03_dp, 1.52600396475556441e-02_dp, 3.08993617692109243e-02_dp, 6.04681734753560185e-02_dp,&
+ 1.14892156390790021e-01_dp, 2.12761131320170715e-01_dp, 3.85363989641657190e-01_dp, 6.85693142737872852e-01_dp, 1.20853665780972341e+00_dp, 2.15761202134704488e+00_dp,&
+ 4.25460273384813270e+00_dp]
+ aw%aw_erange_matrix(:, 36) = [7.31697418235159294e-07_dp, 7.78192913747531435e-06_dp, 4.05556972701898700e-05_dp, 1.55204510399602370e-04_dp, 4.94292159044087270e-04_dp,&
+ 1.38908477445104676e-03_dp, 3.55999988304802392e-03_dp, 8.49433877643784516e-03_dp, 1.91353729694584383e-02_dp, 4.11053346197430766e-02_dp, 8.48253033248454608e-02_dp,&
+ 1.69116119572689377e-01_dp, 3.27216548478532321e-01_dp, 6.16756871439927856e-01_dp, 1.13649899521993558e+00_dp, 2.05654909227641935e+00_dp, 3.68605932606823439e+00_dp,&
+ 6.71837038140371501e+00_dp, 2.30579035272544704e-06_dp, 1.46876721811319836e-05_dp, 5.94476934252411929e-05_dp, 1.92009110580819360e-04_dp, 5.38216569141812995e-04_dp,&
+ 1.36544905409106596e-03_dp, 3.21328987943083396e-03_dp, 7.12638348625628006e-03_dp, 1.50587343735886312e-02_dp, 3.05601639949946297e-02_dp, 5.99197402403319895e-02_dp,&
+ 1.14041463521724409e-01_dp, 2.11498245945244356e-01_dp, 3.83578440411476651e-01_dp, 6.83306702782851882e-01_dp, 1.20554729177078546e+00_dp, 2.15411140205395535e+00_dp,&
+ 4.25062177779508943e+00_dp]
+ aw%aw_erange_matrix(:, 37) = [6.83039002664919050e-07_dp, 7.46562050293998484e-06_dp, 3.93979118840847106e-05_dp, 1.51820281594498933e-04_dp, 4.85687667238021291e-04_dp,&
+ 1.36927867666848582e-03_dp, 3.51776903744843977e-03_dp, 8.40971701364783518e-03_dp, 1.89744917631880054e-02_dp, 4.08132582175073366e-02_dp, 8.43167978175517058e-02_dp,&
+ 1.68265003230324950e-01_dp, 3.25845673139424641e-01_dp, 6.14633097811190798e-01_dp, 1.13334030627276450e+00_dp, 2.05205152948763603e+00_dp, 3.67994206898681142e+00_dp,&
+ 6.71039878795908340e+00_dp, 2.17748291977497743e-06_dp, 1.42229341674666827e-05_dp, 5.81001678508209256e-05_dp, 1.88645103315669666e-04_dp, 5.30656526049757909e-04_dp,&
+ 1.34975291504493789e-03_dp, 3.18270709340716688e-03_dp, 7.06990140878475948e-03_dp, 1.49592223666598269e-02_dp, 3.03922627801653661e-02_dp, 5.96479536663102744e-02_dp,&
+ 1.13619458264455936e-01_dp, 2.10871203187387918e-01_dp, 3.82691193513678196e-01_dp, 6.82120087405447051e-01_dp, 1.20406013018453062e+00_dp, 2.15236939221153945e+00_dp,&
+ 4.24864073243265405e+00_dp]
+ aw%aw_erange_matrix(:, 38) = [6.72200345974212699e-07_dp, 7.39487832678119611e-06_dp, 3.91377783182234103e-05_dp, 1.51057631809280499e-04_dp, 4.83744654923509341e-04_dp,&
+ 1.36479949662894596e-03_dp, 3.50820740770161005e-03_dp, 8.39053967695347139e-03_dp, 1.89380042261968438e-02_dp, 4.07469730322969001e-02_dp, 8.42013313845971084e-02_dp,&
+ 1.68071648316776984e-01_dp, 3.25534113047576457e-01_dp, 6.14150254525752004e-01_dp, 1.13262195300347757e+00_dp, 2.05102842495773885e+00_dp, 3.67855023430316885e+00_dp,&
+ 6.70858477543888654e+00_dp, 2.14889286843083340e-06_dp, 1.41186087411002464e-05_dp, 5.77964458703214584e-05_dp, 1.87885165416971971e-04_dp, 5.28946021846840391e-04_dp,&
+ 1.34619737793210893e-03_dp, 3.17577288535281048e-03_dp, 7.05708509626393893e-03_dp, 1.49366276661514613e-02_dp, 3.03541189639940263e-02_dp, 5.95861799519916066e-02_dp,&
+ 1.13523502921516722e-01_dp, 2.10728576176481969e-01_dp, 3.82489316883349306e-01_dp, 6.81850022811744116e-01_dp, 1.20372159515618860e+00_dp, 2.15197279609530101e+00_dp,&
+ 4.24818970522041894e+00_dp]
+ case(20)
+ aw%energy_range(:) = [200.0_dp, 3.00e+02_dp, 4.00e+02_dp, 5.00e+02_dp, 6.00e+02_dp, 7.00e+02_dp,&
+ 8.00e+02_dp, 9.00e+02_dp, 1.00e+03_dp, 2.00e+03_dp, 3.00e+03_dp, 4.00e+03_dp, 5.00e+03_dp, 6.00e+03_dp,&
+ 7.00e+03_dp, 8.00e+03_dp, 9.00e+03_dp, 1.00e+04_dp, 2.00e+04_dp, 3.00e+04_dp, 4.00e+04_dp, 5.00e+04_dp,&
+ 6.00e+04_dp, 7.00e+04_dp, 8.00e+04_dp, 1.00e+05_dp, 2.00e+05_dp, 3.00e+05_dp, 4.00e+05_dp, 5.00e+05_dp,&
+ 6.00e+05_dp, 7.00e+05_dp, 9.00e+05_dp, 1.00e+06_dp, 2.00e+06_dp, 3.00e+06_dp, 4.00e+06_dp, 8.00e+06_dp, 1.00e+07_dp]
+ aw%aw_erange_matrix(:, 1) = [1.59340911033067478e-03_dp, 8.50904946849679461e-03_dp, 2.14381324891662305e-02_dp, 4.13217924134164430e-02_dp, 6.97620860473193438e-02_dp,&
+ 1.09321104685075207e-01_dp, 1.63918949130833574e-01_dp, 2.39312230571788187e-01_dp, 3.43666004319766016e-01_dp, 4.88296891505629160e-01_dp, 6.88703938259422221e-01_dp,&
+ 9.66014744733213249e-01_dp, 1.34900932673276852e+00_dp, 1.87699212381449976e+00_dp, 2.60403874113626044e+00_dp, 3.60576914286975558e+00_dp, 4.99149485326237308e+00_dp,&
+ 6.92991716904237887e+00_dp, 9.71772239452879383e+00_dp, 1.40512612733913116e+01_dp, 4.10193054094624976e-03_dp, 9.80903579051960878e-03_dp, 1.62026542274407610e-02_dp,&
+ 2.38266973811476421e-02_dp, 3.34742013991377804e-02_dp, 4.62892230812084957e-02_dp, 6.38565714484942287e-02_dp, 8.82787418367577265e-02_dp, 1.22298020153240233e-01_dp,&
+ 1.69523185339919447e-01_dp, 2.34779037546969105e-01_dp, 3.24592511147649587e-01_dp, 4.47879020689130047e-01_dp, 6.16992015749276979e-01_dp, 8.49517596862311541e-01_dp,&
+ 1.17178329836823036e+00_dp, 1.62685169309855482e+00_dp, 2.29638632075273952e+00_dp, 3.37853613531567998e+00_dp, 5.65113328705362239e+00_dp]
+ aw%aw_erange_matrix(:, 2) = [1.13904499210405719e-03_dp, 6.09552014069879994e-03_dp, 1.54192503088270930e-02_dp, 2.99082651922659183e-02_dp, 5.09493519494348124e-02_dp,&
+ 8.08010692431461869e-02_dp, 1.22961299281198297e-01_dp, 1.82606873383205665e-01_dp, 2.67142819438789980e-01_dp, 3.86955966557172848e-01_dp, 5.56484587041208290e-01_dp,&
+ 7.95723471843741592e-01_dp, 1.13232890329597891e+00_dp, 1.60460031003783343e+00_dp, 2.26586404926580043e+00_dp, 3.19138968216569285e+00_dp, 4.49062754712213330e+00_dp,&
+ 6.33281343681569542e+00_dp, 9.01494311947765325e+00_dp, 1.32306709449480362e+01_dp, 2.93366938570087778e-03_dp, 7.04515555971851719e-03_dp, 1.17321497525370126e-02_dp,&
+ 1.74722715685951720e-02_dp, 2.49801406266746927e-02_dp, 3.52990340770604344e-02_dp, 4.98753280948631070e-02_dp, 7.06377004364660971e-02_dp, 1.00147769319503158e-01_dp,&
+ 1.41860186612827538e-01_dp, 2.00495050445585049e-01_dp, 2.82543540531873028e-01_dp, 3.96979859841220306e-01_dp, 5.56341007540550048e-01_dp, 7.78542662514336348e-01_dp,&
+ 1.09037275616667939e+00_dp, 1.53538382621142788e+00_dp, 2.19546436446452242e+00_dp, 3.26782969634996601e+00_dp, 5.52341118050514801e+00_dp]
+ aw%aw_erange_matrix(:, 3) = [8.96430353358386965e-04_dp, 4.80511917695569061e-03_dp, 1.21936515586327544e-02_dp, 2.37702270534453051e-02_dp, 4.07838827125285575e-02_dp,&
+ 6.52933285267013330e-02_dp, 1.00510331249324444e-01_dp, 1.51213651502473068e-01_dp, 2.24287342990249272e-01_dp, 3.29482475920918672e-01_dp, 4.80507719050899063e-01_dp,&
+ 6.96566570523348361e-01_dp, 1.00451159229719678e+00_dp, 1.44189952932815313e+00_dp, 2.06147408277824784e+00_dp, 2.93819399840996098e+00_dp, 4.18155568909791153e+00_dp,&
+ 5.96116486731876360e+00_dp, 8.57432689691118100e+00_dp, 1.27131467807816598e+01_dp, 2.30967192745106529e-03_dp, 5.56509969704642189e-03_dp, 9.32697130056928982e-03_dp,&
+ 1.40298314904001731e-02_dp, 2.03348345664661201e-02_dp, 2.92125911781597747e-02_dp, 4.20091617449700402e-02_dp, 6.05323709666417131e-02_dp, 8.72222769826312971e-02_dp,&
+ 1.25427531276734477e-01_dp, 1.79788267361212062e-01_dp, 2.56755085344252509e-01_dp, 3.65322039803622378e-01_dp, 5.18132829129207328e-01_dp, 7.33319053236828111e-01_dp,&
+ 1.03799272215612737e+00_dp, 1.47607815325437985e+00_dp, 2.12968859060615667e+00_dp, 3.19552335247835018e+00_dp, 5.44013345543908233e+00_dp]
+ aw%aw_erange_matrix(:, 4) = [7.43941858108558194e-04_dp, 3.99324506572499953e-03_dp, 1.01604121564421498e-02_dp, 1.98903231588493483e-02_dp, 3.43334526398137996e-02_dp,&
+ 5.54024931102704218e-02_dp, 8.60964974945682276e-02_dp, 1.30896886303630361e-01_dp, 1.96299511993370007e-01_dp, 2.91581476175378829e-01_dp, 4.29903569927137685e-01_dp,&
+ 6.29867338197687143e-01_dp, 9.17703244108222349e-01_dp, 1.33038016317608565e+00_dp, 1.92016513297746938e+00_dp, 2.76174277576863370e+00_dp, 3.96461447664841415e+00_dp,&
+ 5.69866218889320120e+00_dp, 8.26147101907144155e+00_dp, 1.23441248885543207e+01_dp, 1.91738312725215298e-03_dp, 4.63273201663321442e-03_dp, 7.80616390956771766e-03_dp,&
+ 1.18410761366227798e-02_dp, 1.73585460554474165e-02_dp, 2.52729488781124716e-02_dp, 3.68533483311020288e-02_dp, 5.38175204768781279e-02_dp, 7.85158078111489882e-02_dp,&
+ 1.14216036069974561e-01_dp, 1.65492589404866192e-01_dp, 2.38756014936469058e-01_dp, 3.43003601684555626e-01_dp, 4.90948202391497612e-01_dp, 7.00877399607738760e-01_dp,&
+ 1.00015045424850091e+00_dp, 1.43298990052828579e+00_dp, 2.08171532337388987e+00_dp, 3.14270096039701530e+00_dp, 5.37936604706722488e+00_dp]
+ aw%aw_erange_matrix(:, 5) = [6.38569097485054823e-04_dp, 3.43174037774286039e-03_dp, 8.75196804462230991e-03_dp, 1.71963112345279133e-02_dp, 2.98398770292170358e-02_dp,&
+ 4.84818741012941479e-02_dp, 7.59541529063177817e-02_dp, 1.16504064565401771e-01_dp, 1.76322405079390676e-01_dp, 2.64313084573280566e-01_dp, 3.93202447454869652e-01_dp,&
+ 5.81109560406391834e-01_dp, 8.53759528622831998e-01_dp, 1.24763563082221629e+00_dp, 1.81460168527891219e+00_dp, 2.62909845388257679e+00_dp, 3.80061152976508865e+00_dp,&
+ 5.49923963973098662e+00_dp, 8.02281714515402378e+00_dp, 1.20616990467191130e+01_dp, 1.64624927347082348e-03_dp, 3.98721122270609320e-03_dp, 6.74992784847414876e-03_dp,&
+ 1.03137860467780312e-02_dp, 1.52680780395206932e-02_dp, 2.24817028905434819e-02_dp, 3.31621895881786602e-02_dp, 4.89568250767923874e-02_dp, 7.21456267563233278e-02_dp,&
+ 1.05931034158105800e-01_dp, 1.54831311570967134e-01_dp, 2.25219052919692603e-01_dp, 3.26086701981142257e-01_dp, 4.70194933849082175e-01_dp, 6.75950928297744835e-01_dp,&
+ 9.70912199566876133e-01_dp, 1.39954954691031519e+00_dp, 2.04436947680555070e+00_dp, 3.10152548232226133e+00_dp, 5.33203772355721828e+00_dp]
+ aw%aw_erange_matrix(:, 6) = [5.61072571143229307e-04_dp, 3.01847196714530959e-03_dp, 7.71392131513013325e-03_dp, 1.52066639997109291e-02_dp, 2.65115694541762648e-02_dp,&
+ 4.33359502045003939e-02_dp, 6.83752103545800793e-02_dp, 1.05685662835659139e-01_dp, 1.61209385496320828e-01_dp, 2.43545204318619424e-01_dp, 3.65061973518195249e-01_dp,&
+ 5.43478150149877104e-01_dp, 8.04094672373795283e-01_dp, 1.18298183861235096e+00_dp, 1.73165420573701256e+00_dp, 2.52433338301671384e+00_dp, 3.67047792002619833e+00_dp,&
+ 5.34036265755118400e+00_dp, 7.83204467831639839e+00_dp, 1.18353304830751558e+01_dp, 1.44680898907737616e-03_dp, 3.51167044073153866e-03_dp, 5.96968933905672565e-03_dp,&
+ 9.18093559184831980e-03_dp, 1.37085277848084802e-02_dp, 2.03834591409695898e-02_dp, 3.03625964952499612e-02_dp, 4.52360196139964740e-02_dp, 6.72262909737048331e-02_dp,&
+ 9.94809247142534742e-02_dp, 1.46469151754476751e-01_dp, 2.14528074303888566e-01_dp, 3.12641076666117790e-01_dp, 4.53603331993510606e-01_dp, 6.55917496307296788e-01_dp,&
+ 9.47305530734814605e-01_dp, 1.37245042451229127e+00_dp, 2.01402824955472548e+00_dp, 3.06803524529046046e+00_dp, 5.29356870637847177e+00_dp]
+ aw%aw_erange_matrix(:, 7) = [5.01502882940591649e-04_dp, 2.70059099306814735e-03_dp, 6.91448695519962693e-03_dp, 1.36715291090292804e-02_dp, 2.39368946329081636e-02_dp,&
+ 3.93412656695783861e-02_dp, 6.24656462006050184e-02_dp, 9.72062500368065519e-02_dp, 1.49296807648936825e-01_dp, 2.27079819851898512e-01_dp, 3.42621991546906424e-01_dp,&
+ 5.13300567195080992e-01_dp, 7.64051947550105304e-01_dp, 1.13058766242498310e+00_dp, 1.66411434419076909e+00_dp, 2.43865478941696301e+00_dp, 3.56363419705310402e+00_dp,&
+ 5.20947420923795512e+00_dp, 7.67443229279426298e+00_dp, 1.16478865034794978e+01_dp, 1.29348047897017305e-03_dp, 3.14559139318004288e-03_dp, 5.36758143201675371e-03_dp,&
+ 8.30349608680929288e-03_dp, 1.24943149769587650e-02_dp, 1.87387247506306288e-02_dp, 2.81509204278415082e-02_dp, 4.22732668306473811e-02_dp, 6.32799645640150787e-02_dp,&
+ 9.42711779089224627e-02_dp, 1.39672583458803179e-01_dp, 2.05788207123199618e-01_dp, 3.01590110107878451e-01_dp, 4.39899072363681753e-01_dp, 6.39296224930650192e-01_dp,&
+ 9.27643339822016300e-01_dp, 1.34980836215914834e+00_dp, 1.98862199643710014e+00_dp, 3.03996478570268147e+00_dp, 5.26134269478920658e+00_dp]
+ aw%aw_erange_matrix(:, 8) = [4.54176798051982500e-04_dp, 2.44789321253706393e-03_dp, 6.27827314840997529e-03_dp, 1.24477642842393075e-02_dp, 2.18795651918432255e-02_dp,&
+ 3.61390339655896717e-02_dp, 5.77092718818298725e-02_dp, 9.03495739014426036e-02_dp, 1.39615485330027711e-01_dp, 2.13629615927840938e-01_dp, 3.24198064335450342e-01_dp,&
+ 4.88401802539330132e-01_dp, 7.30858277294287317e-01_dp, 1.08696225289904591e+00_dp, 1.60764513485711924e+00_dp, 2.36674787687761778e+00_dp, 3.47365879336816574e+00_dp,&
+ 5.09892433582888494e+00_dp, 7.54098359742881197e+00_dp, 1.14888704905340866e+01_dp, 1.17164923379155499e-03_dp, 2.85436374449175379e-03_dp, 4.88752520782221103e-03_dp,&
+ 7.60157610521120051e-03_dp, 1.15183886939231837e-02_dp, 1.74086397296599645e-02_dp, 2.63499286281822058e-02_dp, 3.98439640943772447e-02_dp, 6.00233171003619198e-02_dp,&
+ 8.99465532002833024e-02_dp, 1.34000176292588674e-01_dp, 1.98457373277317051e-01_dp, 2.92277680330032319e-01_dp, 4.28301261947665823e-01_dp, 6.25175194562218151e-01_dp,&
+ 9.10882366673366861e-01_dp, 1.33045440899754253e+00_dp, 1.96686388521136335e+00_dp, 3.01590430475151239e+00_dp, 5.23373285475806327e+00_dp]
+ aw%aw_erange_matrix(:, 9) = [2.31389545652061434e-04_dp, 1.25573548361936158e-03_dp, 3.26467418878907721e-03_dp, 6.61525939054778862e-03_dp, 1.19877180510286341e-02_dp,&
+ 2.05587754848347778e-02_dp, 3.42247963066599770e-02_dp, 5.59267900365687104e-02_dp, 9.01510566310825684e-02_dp, 1.43681976375189924e-01_dp, 2.26707521329035461e-01_dp,&
+ 3.54426262682979276e-01_dp, 5.49376630765429419e-01_dp, 8.44825940909645468e-01_dp, 1.28978231999914672e+00_dp, 1.95672260232700945e+00_dp, 2.95461562172969705e+00_dp,&
+ 4.45472865449403788e+00_dp, 6.75680531467232992e+00_dp, 1.05482558845397225e+01_dp, 5.97841988594928681e-04_dp, 1.47677186318177149e-03_dp, 2.59844834407391709e-03_dp,&
+ 4.21318849959283811e-03_dp, 6.72427730470716387e-03_dp, 1.07286659349290717e-02_dp, 1.70853685841758293e-02_dp, 2.70540197117113690e-02_dp, 4.25071646238493889e-02_dp,&
+ 6.62263969430600397e-02_dp, 1.02319734751618513e-01_dp, 1.56818913364540680e-01_dp, 2.38545154014374761e-01_dp, 3.60397852411913966e-01_dp, 5.41391349029674895e-01_dp,&
+ 8.10266992654025575e-01_dp, 1.21316027447477337e+00_dp, 1.83411013311083582e+00_dp, 2.86864360132638829e+00_dp, 5.06499212313868163e+00_dp]
+ aw%aw_erange_matrix(:, 10) = [2.31389545652061434e-04_dp, 1.25573548361936158e-03_dp, 3.26467418878907721e-03_dp, 6.61525939054778862e-03_dp, 1.19877180510286341e-02_dp,&
+ 2.05587754848347778e-02_dp, 3.42247963066599770e-02_dp, 5.59267900365687104e-02_dp, 9.01510566310825684e-02_dp, 1.43681976375189924e-01_dp, 2.26707521329035461e-01_dp,&
+ 3.54426262682979276e-01_dp, 5.49376630765429419e-01_dp, 8.44825940909645468e-01_dp, 1.28978231999914672e+00_dp, 1.95672260232700945e+00_dp, 2.95461562172969705e+00_dp,&
+ 4.45472865449403788e+00_dp, 6.75680531467232992e+00_dp, 1.05482558845397225e+01_dp, 5.97841988594928681e-04_dp, 1.47677186318177149e-03_dp, 2.59844834407391709e-03_dp,&
+ 4.21318849959283811e-03_dp, 6.72427730470716387e-03_dp, 1.07286659349290717e-02_dp, 1.70853685841758293e-02_dp, 2.70540197117113690e-02_dp, 4.25071646238493889e-02_dp,&
+ 6.62263969430600397e-02_dp, 1.02319734751618513e-01_dp, 1.56818913364540680e-01_dp, 2.38545154014374761e-01_dp, 3.60397852411913966e-01_dp, 5.41391349029674895e-01_dp,&
+ 8.10266992654025575e-01_dp, 1.21316027447477337e+00_dp, 1.83411013311083582e+00_dp, 2.86864360132638829e+00_dp, 5.06499212313868163e+00_dp]
+ aw%aw_erange_matrix(:, 11) = [1.64106873478977560e-04_dp, 8.94356094481026532e-04_dp, 2.34479715468854369e-03_dp, 4.81575108056488989e-03_dp, 8.88843116175322932e-03_dp,&
+ 1.55765097799911226e-02_dp, 2.65296970497616198e-02_dp, 4.43454032277437946e-02_dp, 7.30554063217297017e-02_dp, 1.18861997867758001e-01_dp, 1.91229739550221989e-01_dp,&
+ 3.04490668298481315e-01_dp, 4.80195734468752133e-01_dp, 7.50565238695916959e-01_dp, 1.16361704350310702e+00_dp, 1.79107160906205554e+00_dp, 2.74158681135842963e+00_dp,&
+ 4.18670920782826972e+00_dp, 6.42686158846605249e+00_dp, 1.01490122213306133e+01_dp, 4.24401097476844607e-04_dp, 1.05727589829934018e-03_dp, 1.89172495585899852e-03_dp,&
+ 3.14454430541335128e-03_dp, 5.16652752063045690e-03_dp, 8.47954378269798539e-03_dp, 1.38517863631827491e-02_dp, 2.24395660034455643e-02_dp, 3.59963271602878956e-02_dp,&
+ 5.71680679504821404e-02_dp, 8.99177023531648745e-02_dp, 1.40139757841798468e-01_dp, 2.16557288029568279e-01_dp, 3.32058063174325457e-01_dp, 5.05792188779843777e-01_dp,&
+ 7.66839932609333474e-01_dp, 1.16187995611759587e+00_dp, 1.77553947438556503e+00_dp, 2.80338937361828577e+00_dp, 4.99034689774381057e+00_dp]
+ aw%aw_erange_matrix(:, 12) = [1.28568716066204100e-04_dp, 7.03026514521875668e-04_dp, 1.85560664685786446e-03_dp, 3.85208057449708437e-03_dp, 7.21190652297153730e-03_dp,&
+ 1.28460330737252409e-02_dp, 2.22490411662515028e-02_dp, 3.78016757009908971e-02_dp, 6.32460841694079262e-02_dp, 1.04408351026837459e-01_dp, 1.70278412496789294e-01_dp,&
+ 2.74610981192654091e-01_dp, 4.38288395194931735e-01_dp, 6.92809118645061894e-01_dp, 1.08549282488148080e+00_dp, 1.68750781965786012e+00_dp, 2.60725900002492317e+00_dp,&
+ 4.01645618802980753e+00_dp, 6.21599941615518858e+00_dp, 9.89266388698867338e+00_dp, 3.32741224892216562e-04_dp, 8.34534629424527529e-04_dp, 1.51314890244545991e-03_dp,&
+ 2.56412204028950768e-03_dp, 4.30430865632256462e-03_dp, 7.20813936570132222e-03_dp, 1.19869142915110007e-02_dp, 1.97302600503207887e-02_dp, 3.21119534017258179e-02_dp,&
+ 5.16847784772300686e-02_dp, 8.23092470536804649e-02_dp, 1.29779454499307473e-01_dp, 2.02740721724053524e-01_dp, 3.14058639815314677e-01_dp, 4.82960697769841130e-01_dp,&
+ 7.38747791964979639e-01_dp, 1.12847197448742165e+00_dp, 1.73718758800898043e+00_dp, 2.76055445478163319e+00_dp, 4.94138714425316028e+00_dp]
+ aw%aw_erange_matrix(:, 13) = [1.06385133376617129e-04_dp, 5.83370449728654429e-04_dp, 1.54858333545919999e-03_dp, 3.24385777928466301e-03_dp, 6.14515163133302119e-03_dp,&
+ 1.10907193996734339e-02_dp, 1.94655108102521276e-02_dp, 3.34965919996977265e-02_dp, 5.67188754614086563e-02_dp, 9.46864375291209259e-02_dp, 1.56042379020865263e-01_dp,&
+ 2.54114990033732113e-01_dp, 4.09287211708037946e-01_dp, 6.52511637001359834e-01_dp, 1.03057187695187857e+00_dp, 1.61420249636376889e+00_dp, 2.51159646991932384e+00_dp,&
+ 3.89457106698527467e+00_dp, 6.06439084840805709e+00_dp, 9.70773966211605277e+00_dp, 2.75500745629308705e-04_dp, 6.94914441903353897e-04_dp, 1.27416915369170597e-03_dp,&
+ 2.19363072846082878e-03_dp, 3.74574197015587265e-03_dp, 6.37142538505014715e-03_dp, 1.07417435383839119e-02_dp, 1.78979789245490017e-02_dp, 2.94548268302540286e-02_dp,&
+ 4.78947831060808488e-02_dp, 7.69998423782822516e-02_dp, 1.22485294515095461e-01_dp, 1.92932600352046763e-01_dp, 3.01183266467369593e-01_dp, 4.66514755988375607e-01_dp,&
+ 7.18387752933783763e-01_dp, 1.10413579938484174e+00_dp, 1.70914727341012851e+00_dp, 2.72917918879560562e+00_dp, 4.90554472200116276e+00_dp]
+ aw%aw_erange_matrix(:, 14) = [9.11299266109850996e-05_dp, 5.00955114194532930e-04_dp, 1.33647988051104581e-03_dp, 2.82165743093389315e-03_dp, 5.39955123421062468e-03_dp,&
+ 9.85332451242546502e-03_dp, 1.74849063769687285e-02_dp, 3.04045333851281283e-02_dp, 5.19884132146004527e-02_dp, 8.75805986006403664e-02_dp, 1.45554197257650425e-01_dp,&
+ 2.38902835711941874e-01_dp, 3.87614188439427632e-01_dp, 6.22204747423747206e-01_dp, 9.89024982295867328e-01_dp, 1.55845308345162348e+00_dp, 2.43850005542893200e+00_dp,&
+ 3.80105900780219708e+00_dp, 5.94768748398844416e+00_dp, 9.56502795220571223e+00_dp, 2.36123336764438414e-04_dp, 5.98562968184080508e-04_dp, 1.10826359627376253e-03_dp,&
+ 1.93399216337780569e-03_dp, 3.34948608200666496e-03_dp, 5.77034764998995628e-03_dp, 9.83706815425649042e-03_dp, 1.65534576760454771e-02_dp, 2.74876882326032593e-02_dp,&
+ 4.50662590827335952e-02_dp, 7.30078523507230459e-02_dp, 1.16963153229053499e-01_dp, 1.85459608227162981e-01_dp, 2.91315098444254794e-01_dp, 4.53841813215039913e-01_dp,&
+ 7.02623714126374366e-01_dp, 1.08521855803019984e+00_dp, 1.68728817043916113e+00_dp, 2.70468505928098901e+00_dp, 4.87757399779168743e+00_dp]
+ aw%aw_erange_matrix(:, 15) = [7.99513211818079095e-05_dp, 4.40480100273793647e-04_dp, 1.18043287221358643e-03_dp, 2.50972866667220542e-03_dp, 4.84536770340586800e-03_dp,&
+ 8.92681999663503915e-03_dp, 1.59901889293979985e-02_dp, 2.80527231464049974e-02_dp, 4.83635179114337843e-02_dp, 8.20972791919212935e-02_dp, 1.37407975722330933e-01_dp,&
+ 2.27015822801634820e-01_dp, 3.70583378740419300e-01_dp, 5.98265757020446043e-01_dp, 9.56051274598360368e-01_dp, 1.51401624986978511e+00_dp, 2.38001241056539525e+00_dp,&
+ 3.72598892795090819e+00_dp, 5.85374707237895908e+00_dp, 9.44991526480561461e+00_dp, 2.07259523146821357e-04_dp, 5.27743168436076507e-04_dp, 9.85682497105203016e-04_dp,&
+ 1.74056798836079831e-03_dp, 3.05118589870811367e-03_dp, 5.31311515597368816e-03_dp, 9.14249557319238466e-03_dp, 1.55127983671289656e-02_dp, 2.59540846387241245e-02_dp,&
+ 4.28465752176474188e-02_dp, 6.98561346118610760e-02_dp, 1.12578862868986593e-01_dp, 1.79495499922559476e-01_dp, 2.83401465126374263e-01_dp, 4.43634265712469833e-01_dp,&
+ 6.89877063657090339e-01_dp, 1.06987289829179089e+00_dp, 1.66951450142050417e+00_dp, 2.68474521792867948e+00_dp, 4.85481079054310882e+00_dp]
+ aw%aw_erange_matrix(:, 16) = [7.13831975957801421e-05_dp, 3.94070557414630566e-04_dp, 1.06039838107656217e-03_dp, 2.26887735894547218e-03_dp, 4.41516125917593150e-03_dp,&
+ 8.20292284367789629e-03_dp, 1.48143307208321289e-02_dp, 2.61901631484158237e-02_dp, 4.54744113356478005e-02_dp, 7.77009627515651835e-02_dp, 1.30840559929286476e-01_dp,&
+ 2.17383566833786041e-01_dp, 3.56717684228294363e-01_dp, 5.78690630181714849e-01_dp, 9.28980394500882545e-01_dp, 1.47740187212987562e+00_dp, 2.33166526247446670e+00_dp,&
+ 3.66376254665971857e+00_dp, 5.77570286165077995e+00_dp, 9.35411658107688737e+00_dp, 1.85129909885371226e-04_dp, 4.73313642877459817e-04_dp, 8.91030234594590402e-04_dp,&
+ 1.59011031429565509e-03_dp, 2.81702158923678942e-03_dp, 4.95098003577831326e-03_dp, 8.58806747962608148e-03_dp, 1.46764266654769941e-02_dp, 2.47140097130862518e-02_dp,&
+ 4.10417708233977371e-02_dp, 6.72804167578404944e-02_dp, 1.08978898750293735e-01_dp, 1.74576875600901571e-01_dp, 2.76848637903514494e-01_dp, 4.35150781120790531e-01_dp,&
+ 6.79248731263868200e-01_dp, 1.05704272734518123e+00_dp, 1.65462493376700914e+00_dp, 2.66802416177299628e+00_dp, 4.83572672360228850e+00_dp]
+ aw%aw_erange_matrix(:, 17) = [6.45919046172234337e-05_dp, 3.57244359004111266e-04_dp, 9.64947091415230274e-04_dp, 2.07669093975910773e-03_dp, 4.07020796657402498e-03_dp,&
+ 7.61911830524246176e-03_dp, 1.38602950606173652e-02_dp, 2.46700717584350873e-02_dp, 4.31034385684379573e-02_dp, 7.40744584914696386e-02_dp, 1.25397230109973362e-01_dp,&
+ 2.09364698321958947e-01_dp, 3.45127358310070076e-01_dp, 5.62266257195702113e-01_dp, 9.06188494647871989e-01_dp, 1.44647873670279070e+00_dp, 2.29071990594395736e+00_dp,&
+ 3.61093746195846910e+00_dp, 5.70932120129661769e+00_dp, 9.27251323213914169e+00_dp, 1.67585006389789945e-04_dp, 4.30065142823307851e-04_dp, 8.15501787443688214e-04_dp,&
+ 1.46924809715015601e-03_dp, 2.62738699777469598e-03_dp, 4.65542668219270928e-03_dp, 8.13250988854261406e-03_dp, 1.39851462776275932e-02_dp, 2.36836605335067965e-02_dp,&
+ 3.95350223678160792e-02_dp, 6.51206049207332244e-02_dp, 1.05947940902738805e-01_dp, 1.70420066107486362e-01_dp, 2.71291456476858317e-01_dp, 4.27933455588147660e-01_dp,&
+ 6.70181271059925754e-01_dp, 1.04607118754885398e+00_dp, 1.64187059552129311e+00_dp, 2.65368847252926798e+00_dp, 4.81936838224020203e+00_dp]
+ aw%aw_erange_matrix(:, 18) = [5.90671705438591002e-05_dp, 3.27255606259535938e-04_dp, 8.87065468156453198e-04_dp, 1.91938066912922299e-03_dp, 3.78659468047330564e-03_dp,&
+ 7.13661315013889956e-03_dp, 1.30675308560924963e-02_dp, 2.34003282960270620e-02_dp, 4.11132236983706573e-02_dp, 7.10164792782264631e-02_dp, 1.20787940407201908e-01_dp,&
+ 2.02548136693446179e-01_dp, 3.35239539268372189e-01_dp, 5.48208274009858720e-01_dp, 8.86621522655313465e-01_dp, 1.41985849853084023e+00_dp, 2.25538654350318835e+00_dp,&
+ 3.56525777952575273e+00_dp, 5.65182136139268199e+00_dp, 9.20173727079627390e+00_dp, 1.53308858399679005e-04_dp, 3.94802873973349074e-04_dp, 7.53679480203142270e-04_dp,&
+ 1.36971213154538172e-03_dp, 2.47007058014086459e-03_dp, 4.40855407450766335e-03_dp, 7.74972129914588363e-03_dp, 1.34012766381315894e-02_dp, 2.28093810679012438e-02_dp,&
+ 3.82511320233823726e-02_dp, 6.32731384704180860e-02_dp, 1.03346060178322777e-01_dp, 1.66839925784102922e-01_dp, 2.66490624991893299e-01_dp, 4.21681106402822914e-01_dp,&
+ 6.62306829712637768e-01_dp, 1.03652366240097460e+00_dp, 1.63075503979098335e+00_dp, 2.64118514241116120e+00_dp, 4.80510334732246758e+00_dp]
+ aw%aw_erange_matrix(:, 19) = [3.28224484567984215e-05_dp, 1.84280197576634352e-04_dp, 5.13129793251420252e-04_dp, 1.15533955303439673e-03_dp, 2.38715227416747520e-03_dp,&
+ 4.71232336588018729e-03_dp, 9.01068360323859820e-03_dp, 1.67877454786610168e-02_dp, 3.05777352644954897e-02_dp, 5.45820241665686198e-02_dp, 9.56682633955002193e-02_dp,&
+ 1.64917942299495190e-01_dp, 2.80002569262169099e-01_dp, 4.68811468855826918e-01_dp, 7.74997699140769214e-01_dp, 1.26661171850926046e+00_dp, 2.05033163283972186e+00_dp,&
+ 3.29831462211391546e+00_dp, 5.31390007833082478e+00_dp, 8.78400792567013156e+00_dp, 8.54353690799433902e-05_dp, 2.25944182794824420e-04_dp, 4.53440750018906298e-04_dp,&
+ 8.75662275353216932e-04_dp, 1.66953305618841390e-03_dp, 3.12340547841677462e-03_dp, 5.71770714816871497e-03_dp, 1.02484381286729095e-02_dp, 1.80155532583461571e-02_dp,&
+ 3.11124892427445850e-02_dp, 5.28682739024428569e-02_dp, 8.85173770573338542e-02_dp, 1.46210202743524420e-01_dp, 2.38544300502429640e-01_dp, 3.84945819661920263e-01_dp,&
+ 6.15657996825351939e-01_dp, 9.79571892515397891e-01_dp, 1.56411282476503422e+00_dp, 2.56602511289843704e+00_dp, 4.71939831326842363e+00_dp]
+ aw%aw_erange_matrix(:, 20) = [2.32962402161399536e-05_dp, 1.32055981092677323e-04_dp, 3.74839977969314763e-04_dp, 8.67018033095867083e-04_dp, 1.84480865155746280e-03_dp,&
+ 3.74520339779335545e-03_dp, 7.34592546659092009e-03_dp, 1.40019747000581871e-02_dp, 2.60313282678624226e-02_dp, 4.73329996204092801e-02_dp, 8.43648984201871011e-02_dp,&
+ 1.47673591218463379e-01_dp, 2.54264341878251476e-01_dp, 4.31247942064372725e-01_dp, 7.21449996818138595e-01_dp, 1.19217247906242885e+00_dp, 1.94962022268630952e+00_dp,&
+ 3.16596292239029875e+00_dp, 5.14506868844995147e+00_dp, 8.57409525716754750e+00_dp, 6.07636192166222057e-05_dp, 1.63793630532315700e-04_dp, 3.40174856657600921e-04_dp,&
+ 6.82306032697698860e-04_dp, 1.34385222906203733e-03_dp, 2.58273566631901609e-03_dp, 4.83830666876542814e-03_dp, 8.85011586892991454e-03_dp, 1.58425745251531969e-02_dp,&
+ 2.78122580371543207e-02_dp, 4.79708046156028245e-02_dp, 8.14215630554797898e-02_dp, 1.36187506557822940e-01_dp, 2.24776382379014678e-01_dp, 3.66617269529460332e-01_dp,&
+ 5.92120682929402009e-01_dp, 9.50565358380333736e-01_dp, 1.52993546398228419e+00_dp, 2.52733955994408444e+00_dp, 4.67531311945309902e+00_dp]
+ aw%aw_erange_matrix(:, 21) = [1.82768686384135133e-05_dp, 1.04417347919080671e-04_dp, 3.01000951462268346e-04_dp, 7.10847810668938790e-04_dp, 1.54571361298362132e-03_dp,&
+ 3.20181862357970517e-03_dp, 6.39397242950541685e-03_dp, 1.23832469483872113e-02_dp, 2.33510009743427664e-02_dp, 4.30030599635740085e-02_dp, 7.75327408507942573e-02_dp,&
+ 1.37137607870212203e-01_dp, 2.38383717160715658e-01_dp, 4.07862967786620456e-01_dp, 6.87842494503462798e-01_dp, 1.14511059809369953e+00_dp, 1.88553654502488044e+00_dp,&
+ 3.08128096542072605e+00_dp, 5.03656339350511306e+00_dp, 8.43873603575548970e+00_dp, 4.77510514538043561e-05_dp, 1.30725348199526632e-04_dp, 2.78839678510383097e-04_dp,&
+ 5.74965922084611988e-04_dp, 1.15864133134080285e-03_dp, 2.26903071507058825e-03_dp, 4.31941617512579795e-03_dp, 8.01292114296655450e-03_dp, 1.45246256387368058e-02_dp,&
+ 2.57871124684656526e-02_dp, 4.49334652585602345e-02_dp, 7.69779065263630213e-02_dp, 1.29854768623762662e-01_dp, 2.16005958323979730e-01_dp, 3.54854744034257708e-01_dp,&
+ 5.76915783269319360e-01_dp, 9.31723856159322739e-01_dp, 1.50764439582344267e+00_dp, 2.50205346399103279e+00_dp, 4.64650701658826915e+00_dp]
+ aw%aw_erange_matrix(:, 22) = [1.51473404015659037e-05_dp, 8.71243659234028809e-05_dp, 2.54468973576208357e-04_dp, 6.11299999793072594e-04_dp, 1.35240591857200892e-03_dp,&
+ 2.84571706861578774e-03_dp, 5.76205885506093137e-03_dp, 1.12962211654832664e-02_dp, 2.15323161898956957e-02_dp, 4.00375633330651501e-02_dp, 7.28140302835723480e-02_dp,&
+ 1.29805206598339162e-01_dp, 2.27255100152298689e-01_dp, 3.91372245954157760e-01_dp, 6.64007613693874399e-01_dp, 1.11156238321900980e+00_dp, 1.83964746537561008e+00_dp,&
+ 3.02040766915205072e+00_dp, 4.95832144405293640e+00_dp, 8.34090257682230707e+00_dp, 3.96314252090897067e-05_dp, 1.09946771533849565e-04_dp, 2.39749996962043585e-04_dp,&
+ 5.05239856466603251e-04_dp, 1.03620411711276652e-03_dp, 2.05866032990039511e-03_dp, 3.96726052268024654e-03_dp, 7.43881961236985724e-03_dp, 1.36125006461492604e-02_dp,&
+ 2.43739175756457205e-02_dp, 4.27979881349007454e-02_dp, 7.38322409424063963e-02_dp, 1.25343663588691395e-01_dp, 2.09722480931934130e-01_dp, 3.46383680564075980e-01_dp,&
+ 5.65915026807195964e-01_dp, 9.18039164611651803e-01_dp, 1.49140766131358671e+00_dp, 2.48360686525505825e+00_dp, 4.62549692830303449e+00_dp]
+ aw%aw_erange_matrix(:, 23) = [1.29964471150150904e-05_dp, 7.52038805186812202e-05_dp, 2.22196529687256864e-04_dp, 5.41590274135701007e-04_dp, 1.21550187536022020e-03_dp,&
+ 2.59071146873320968e-03_dp, 5.30494890727680173e-03_dp, 1.05027659096567447e-02_dp, 2.01940756625821997e-02_dp, 3.78396999976663775e-02_dp, 6.92940663971308296e-02_dp,&
+ 1.24303453575809700e-01_dp, 2.18860535391796729e-01_dp, 3.78872950063046332e-01_dp, 6.45862912815095225e-01_dp, 1.08592321681505455e+00_dp, 1.80445573105089041e+00_dp,&
+ 2.97358732052783425e+00_dp, 4.89799912289900607e+00_dp, 8.26534218773699791e+00_dp, 3.40471852492794184e-05_dp, 9.55719144498884892e-05_dp, 2.12380450750809476e-04_dp,&
+ 4.55655798037782084e-04_dp, 9.47931731475714148e-04_dp, 1.90530071147553015e-03_dp, 3.70815234948269814e-03_dp, 7.01300923792264747e-03_dp, 1.29311616612344006e-02_dp,&
+ 2.33115500084998054e-02_dp, 4.11833744572942667e-02_dp, 7.14413307639191336e-02_dp, 1.21898463543825414e-01_dp, 2.04902638957595640e-01_dp, 3.39859968590963457e-01_dp,&
+ 5.57413284554014177e-01_dp, 9.07431857378405593e-01_dp, 1.47879445892678762e+00_dp, 2.46926002025859992e+00_dp, 4.60915876949644421e+00_dp]
+ aw%aw_erange_matrix(:, 24) = [1.14207048273847982e-05_dp, 6.64484130614495310e-05_dp, 1.98364705632591312e-04_dp, 4.89680342568533803e-04_dp, 1.11257515254348303e-03_dp,&
+ 2.39722037536997104e-03_dp, 4.95521165465335599e-03_dp, 9.89119282393999266e-03_dp, 1.91558185967471602e-02_dp, 3.61245234039200835e-02_dp, 6.65327103010643489e-02_dp,&
+ 1.19966975407711327e-01_dp, 2.12215600247272179e-01_dp, 3.68940412206329449e-01_dp, 6.31393682491580011e-01_dp, 1.06541330659025468e+00_dp, 1.77622627153034740e+00_dp,&
+ 2.93594113554789704e+00_dp, 4.84940422326652865e+00_dp, 8.20438542819059968e+00_dp, 2.99538235601905597e-05_dp, 8.49804556698071739e-05_dp, 1.92001219094591990e-04_dp,&
+ 4.18248947198593781e-04_dp, 8.80584218195854191e-04_dp, 1.78723479963482403e-03_dp, 3.50716773455697671e-03_dp, 6.68055972088156622e-03_dp, 1.23961398099230700e-02_dp,&
+ 2.24730180647289973e-02_dp, 3.99030113422094643e-02_dp, 6.95373455443270422e-02_dp, 1.19144298782168687e-01_dp, 2.01035969122660890e-01_dp, 3.34609664670065254e-01_dp,&
+ 5.50551680495186879e-01_dp, 8.98850509114371254e-01_dp, 1.46857223003089277e+00_dp, 2.45762167144899246e+00_dp, 4.59590654805552301e+00_dp]
+ aw%aw_erange_matrix(:, 25) = [1.02129853665488214e-05_dp, 5.97224033665720453e-05_dp, 1.79968001876572704e-04_dp, 4.49310761967231735e-04_dp, 1.03186306193965745e-03_dp,&
+ 2.24429055378175648e-03_dp, 4.67683405379132593e-03_dp, 9.40136451442429369e-03_dp, 1.83196550766199957e-02_dp, 3.47364191544349277e-02_dp, 6.42881061852892816e-02_dp,&
+ 1.16428075481103732e-01_dp, 2.06773452807062580e-01_dp, 3.60779453324731381e-01_dp, 6.19470494647045289e-01_dp, 1.04846815361171242e+00_dp, 1.75284955056996217e+00_dp,&
+ 2.90470529324109350e+00_dp, 4.80902024684955354e+00_dp, 8.15366880961822815e+00_dp, 2.68148886718955737e-05_dp, 7.68210992565900367e-05_dp, 1.76153395456738691e-04_dp,&
+ 3.88828307524828219e-04_dp, 8.27109072609790168e-04_dp, 1.69277491364309648e-03_dp, 3.34534816880062945e-03_dp, 6.41142722928096046e-03_dp, 1.19609238164291500e-02_dp,&
+ 2.17879658757671769e-02_dp, 3.88529268269094813e-02_dp, 6.79702850602889735e-02_dp, 1.16870209587740290e-01_dp, 1.97833926492451712e-01_dp, 3.30250262574636633e-01_dp,&
+ 5.44840978502778017e-01_dp, 8.91694374810249268e-01_dp, 1.46003514088497854e+00_dp, 2.44789415028531510e+00_dp, 4.58483112275295301e+00_dp]
+ aw%aw_erange_matrix(:, 26) = [8.47669796166132796e-06_dp, 5.00242837971973656e-05_dp, 1.53275574109323258e-04_dp, 3.90182608568225638e-04_dp, 9.12420752458163536e-04_dp,&
+ 2.01578379024756416e-03_dp, 4.25730835582959020e-03_dp, 8.65759910626789746e-03_dp, 1.70415533953586391e-02_dp, 3.26021220288412600e-02_dp, 6.08186688565086689e-02_dp,&
+ 1.10932128458666804e-01_dp, 1.98285574595964298e-01_dp, 3.48001922484235227e-01_dp, 6.00737297535444026e-01_dp, 1.02176139285064571e+00_dp, 1.71590475217036720e+00_dp,&
+ 2.85522414136309743e+00_dp, 4.74492660635849450e+00_dp, 8.07306337224151704e+00_dp, 2.22992568351785837e-05_dp, 6.50136849135791761e-05_dp, 1.52942130635250624e-04_dp,&
+ 3.45130342825854480e-04_dp, 7.46765182067150022e-04_dp, 1.54955133592102182e-03_dp, 3.09811531544227498e-03_dp, 5.99752381829290158e-03_dp, 1.12877049899231616e-02_dp,&
+ 2.07227873132566805e-02_dp, 3.72125394571043919e-02_dp, 6.55119435253443683e-02_dp, 1.13288963572479862e-01_dp, 1.92773634125936455e-01_dp, 3.23339065790839486e-01_dp,&
+ 5.35761993096250388e-01_dp, 8.80290439328862417e-01_dp, 1.44640642561162580e+00_dp, 2.43235010495084447e+00_dp, 4.56713502379775083e+00_dp]
+ aw%aw_erange_matrix(:, 27) = [4.77162217975052653e-06_dp, 2.91668856331809356e-05_dp, 9.48821379855366293e-05_dp, 2.57598292613655199e-04_dp, 6.37572758202925127e-04_dp,&
+ 1.47742295887662387e-03_dp, 3.24827632234858232e-03_dp, 6.83617387254335015e-03_dp, 1.38616547779678596e-02_dp, 2.72171464660654339e-02_dp, 5.19550945129050798e-02_dp,&
+ 9.67332163320293176e-02_dp, 1.76134574373753433e-01_dp, 3.14350903325736952e-01_dp, 5.50994272272958718e-01_dp, 9.50322068117752772e-01_dp, 1.61643700300510540e+00_dp,&
+ 2.72126761065023093e+00_dp, 4.57063870580321119e+00_dp, 7.85315353792608306e+00_dp, 1.26470920648656757e-05_dp, 3.93709424700992549e-05_dp, 1.00885940425964106e-04_dp,&
+ 2.43669035312139701e-04_dp, 5.55019876746663788e-04_dp, 1.20021707946449396e-03_dp, 2.48403177561761770e-03_dp, 4.95320350081516082e-03_dp, 9.56550428124965796e-03_dp,&
+ 1.79641999719573932e-02_dp, 3.29171066132178045e-02_dp, 5.90100020341800327e-02_dp, 1.03730646694039405e-01_dp, 1.79155565358709440e-01_dp, 3.04600128154180194e-01_dp,&
+ 5.10981306992512874e-01_dp, 8.48989087313390955e-01_dp, 1.40884114975024644e+00_dp, 2.38940742183020793e+00_dp, 4.51825790067075239e+00_dp]
+ aw%aw_erange_matrix(:, 28) = [3.42200124612533428e-06_dp, 2.14795977800482488e-05_dp, 7.27931060367611917e-05_dp, 2.05652828701512050e-04_dp, 5.26124616740868763e-04_dp,&
+ 1.25246741430834582e-03_dp, 2.81569672700486551e-03_dp, 6.03795545760961710e-03_dp, 1.24413051501760675e-02_dp, 2.47714301236555100e-02_dp, 4.78697619177791758e-02_dp,&
+ 9.01024065490877851e-02_dp, 1.65668103195190375e-01_dp, 2.98282223223030774e-01_dp, 5.27015875188172278e-01_dp, 9.15593507937763729e-01_dp, 1.56772415593837122e+00_dp,&
+ 2.65525119808757593e+00_dp, 4.48431225145893819e+00_dp, 7.74382455050710927e+00_dp, 9.12267553996344091e-06_dp, 2.97782938235843919e-05_dp, 8.04762008480940360e-05_dp,&
+ 2.02054552088428699e-04_dp, 4.73662260510720275e-04_dp, 1.04800747447037716e-03_dp, 2.21052298276957397e-03_dp, 4.47925090915589005e-03_dp, 8.77100834263967732e-03_dp,&
+ 1.66730757520466601e-02_dp, 3.08806180820769202e-02_dp, 5.58915044031746411e-02_dp, 9.90980169561825330e-02_dp, 1.72492449290110456e-01_dp, 2.95352774830862530e-01_dp,&
+ 4.98659663798053099e-01_dp, 8.33325756198420309e-01_dp, 1.38995327107408162e+00_dp, 2.36775916083012872e+00_dp, 4.49362344166366778e+00_dp]
+ aw%aw_erange_matrix(:, 29) = [2.70857528023669478e-06_dp, 1.73824675975106526e-05_dp, 6.08007017131558374e-05_dp, 1.76793729684337786e-04_dp, 4.62880220912142407e-04_dp,&
+ 1.12249782389384407e-03_dp, 2.56197738480458100e-03_dp, 5.56375798474603462e-03_dp, 1.15881961261663814e-02_dp, 2.32883361269934745e-02_dp, 4.53714740249268472e-02_dp,&
+ 8.60171390199267055e-02_dp, 1.59176614013866874e-01_dp, 2.88256566568690420e-01_dp, 5.11975058103568248e-01_dp, 8.93705673791643340e-01_dp, 1.53689447832666781e+00_dp,&
+ 2.61332238621594604e+00_dp, 4.42932837952966896e+00_dp, 7.67404440659009524e+00_dp, 7.25671600966090790e-06_dp, 2.46108812587894022e-05_dp, 6.91283002216229860e-05_dp,&
+ 1.78280345108654118e-04_dp, 4.26255177147598569e-04_dp, 9.57935241483460109e-04_dp, 2.04659436769854316e-03_dp, 4.19208858133998229e-03_dp, 8.28508624517085290e-03_dp,&
+ 1.58768608867642276e-02_dp, 2.96155024326393256e-02_dp, 5.39414460482286126e-02_dp, 9.61839308156842016e-02_dp, 1.68278613421956519e-01_dp, 2.89476370736281186e-01_dp,&
+ 4.90796176703813092e-01_dp, 8.23293620189284980e-01_dp, 1.37782304675651202e+00_dp, 2.35383537187622638e+00_dp, 4.47778069418177083e+00_dp]
+ aw%aw_erange_matrix(:, 30) = [2.26251445525014870e-06_dp, 1.48039880636135852e-05_dp, 5.31416128088749591e-05_dp, 1.58040646840163678e-04_dp, 4.21147625899582134e-04_dp,&
+ 1.03563677296014656e-03_dp, 2.39060962537256377e-03_dp, 5.24060798095646665e-03_dp, 1.10023814471914491e-02_dp, 2.22631671738785647e-02_dp, 4.36345263985256498e-02_dp,&
+ 8.31622337480630441e-02_dp, 1.54619409838966410e-01_dp, 2.81189489616427979e-01_dp, 5.01334015720054205e-01_dp, 8.78170141334107202e-01_dp, 1.51494988258760133e+00_dp,&
+ 2.58340536033461099e+00_dp, 4.39002046838892390e+00_dp, 7.62408789263364106e+00_dp, 6.08870912420167293e-06_dp, 2.13307424187180562e-05_dp, 6.17488367021811645e-05_dp,&
+ 1.62519357537921707e-04_dp, 3.94389143487223006e-04_dp, 8.96733927318684983e-04_dp, 1.93421640753366165e-03_dp, 3.99374279098910039e-03_dp, 7.94726547986469162e-03_dp,&
+ 1.53201567889741652e-02_dp, 2.87264724416089259e-02_dp, 5.25648940004549425e-02_dp, 9.41185062368712216e-02_dp, 1.65281005493465305e-01_dp, 2.85282262721775703e-01_dp,&
+ 4.85167472736483585e-01_dp, 8.16094915370970453e-01_dp, 1.36910268768840915e+00_dp, 2.34381536801679990e+00_dp, 4.46638053432672422e+00_dp]
+ aw%aw_erange_matrix(:, 31) = [1.95520309160147283e-06_dp, 1.30177455610905032e-05_dp, 4.77699277056753375e-05_dp, 1.44704490268162631e-04_dp, 3.91112695871576065e-04_dp,&
+ 9.72507920670827395e-04_dp, 2.26505403621023388e-03_dp, 5.00223926417243947e-03_dp, 1.05677607556923341e-02_dp, 2.14987830405207782e-02_dp, 4.23337650579894906e-02_dp,&
+ 8.10160083972915057e-02_dp, 1.51181699507279416e-01_dp, 2.75842138921684243e-01_dp, 4.93260368570506924e-01_dp, 8.66354247590333748e-01_dp, 1.49822391705281710e+00_dp,&
+ 2.56056177053762957e+00_dp, 4.35996302045826134e+00_dp, 7.58584741797931628e+00_dp, 5.28329779560503016e-06_dp, 1.90417363895934812e-05_dp, 5.64974872526313138e-05_dp,&
+ 1.51136234246477072e-04_dp, 3.71130443441160750e-04_dp, 8.51695348297861333e-04_dp, 1.85095701759959981e-03_dp, 3.84595112808428473e-03_dp, 7.69430931514070420e-03_dp,&
+ 1.49015115640716844e-02_dp, 2.80553763496916748e-02_dp, 5.15222643888510815e-02_dp, 9.25493475814019861e-02_dp, 1.62997391612473730e-01_dp, 2.82079259084697609e-01_dp,&
+ 4.80859508026839078e-01_dp, 8.10575201442163107e-01_dp, 1.36240694358376646e+00_dp, 2.33611580283512099e+00_dp, 4.45762085471925396e+00_dp]
+ aw%aw_erange_matrix(:, 32) = [1.72960139273996152e-06_dp, 1.17001313607044589e-05_dp, 4.37650399987639228e-05_dp, 1.34646135657629157e-04_dp, 3.68237981352100647e-04_dp,&
+ 9.24047534313781802e-04_dp, 2.16804637027645259e-03_dp, 4.81707060286444468e-03_dp, 1.02285848708239310e-02_dp, 2.08998908680933203e-02_dp, 4.13110880916842740e-02_dp,&
+ 7.93234571129355220e-02_dp, 1.48463301946358234e-01_dp, 2.71603440324783507e-01_dp, 4.86846776771414413e-01_dp, 8.56949848514978574e-01_dp, 1.48488918635942313e+00_dp,&
+ 2.54232388180733038e+00_dp, 4.33593842613987768e+00_dp, 7.55525676106186950e+00_dp, 4.69160847264410453e-06_dp, 1.73423940337633487e-05_dp, 5.25344729271504530e-05_dp,&
+ 1.42442614305894703e-04_dp, 3.53216246020351498e-04_dp, 8.16776990505050119e-04_dp, 1.78605723081466314e-03_dp, 3.73022452802260294e-03_dp, 7.49545986497960476e-03_dp,&
+ 1.45712907599660872e-02_dp, 2.75244331035289849e-02_dp, 5.06951675615561689e-02_dp, 9.13015702641552934e-02_dp, 1.61177550862612262e-01_dp, 2.79521774387272437e-01_dp,&
+ 4.77413832677281047e-01_dp, 8.06153910734494272e-01_dp, 1.35703777400223546e+00_dp, 2.32993793434914931e+00_dp, 4.45059264173135372e+00_dp]
+ aw%aw_erange_matrix(:, 33) = [1.41886137796995782e-06_dp, 9.87436540219261310e-06_dp, 3.81420863321894053e-05_dp, 1.20328937033829805e-04_dp, 3.35306348287066293e-04_dp,&
+ 8.53643157287757213e-04_dp, 2.02606093436642374e-03_dp, 4.54436729619164034e-03_dp, 9.72644390103706222e-03_dp, 2.00092321896778690e-02_dp, 3.97841823036489475e-02_dp,&
+ 7.67876127175006890e-02_dp, 1.44377938952077817e-01_dp, 2.65215781458406519e-01_dp, 4.77157897649237217e-01_dp, 8.42711908654622754e-01_dp, 1.46466244711069460e+00_dp,&
+ 2.51461522969896301e+00_dp, 4.29939105591348802e+00_dp, 7.50867691488572575e+00_dp, 3.87596278284403415e-06_dp, 1.49686541796921346e-05_dp, 4.68892269201415766e-05_dp,&
+ 1.29887348425810148e-04_dp, 3.27092391898948858e-04_dp, 7.65470839571249194e-04_dp, 1.69010905179960060e-03_dp, 3.55824376587745303e-03_dp, 7.19863210358792378e-03_dp,&
+ 1.40764462054979219e-02_dp, 2.67260753852816696e-02_dp, 4.94477050531962614e-02_dp, 8.94144794385312719e-02_dp, 1.58418528983117257e-01_dp, 2.75635868471146572e-01_dp,&
+ 4.72168173179626172e-01_dp, 7.99411892474264363e-01_dp, 1.34884014613905223e+00_dp, 2.32049905986289229e+00_dp, 4.43985498462144701e+00_dp]
+ aw%aw_erange_matrix(:, 34) = [1.30682076215574168e-06_dp, 9.21230103419385707e-06_dp, 3.60777820506542435e-05_dp, 1.15007390574968328e-04_dp, 3.22942749282655722e-04_dp,&
+ 8.26999800237385391e-04_dp, 1.97198120105341245e-03_dp, 4.43994262135867599e-03_dp, 9.53329117896053665e-03_dp, 1.96653009055034987e-02_dp, 3.91925682314573712e-02_dp,&
+ 7.58021570974209136e-02_dp, 1.42786148248512379e-01_dp, 2.62721115240734437e-01_dp, 4.73366064322675417e-01_dp, 8.37129449336611819e-01_dp, 1.45671906055837219e+00_dp,&
+ 2.50371868274963472e+00_dp, 4.28500293152441092e+00_dp, 7.49032450783281689e+00_dp, 3.58166740544859434e-06_dp, 1.41012624824627562e-05_dp, 4.47894722858063098e-05_dp,&
+ 1.25160938055950030e-04_dp, 3.17174709330518730e-04_dp, 7.45865050527678465e-04_dp, 1.65324808989842547e-03_dp, 3.49187701447795399e-03_dp, 7.08364872000395891e-03_dp,&
+ 1.38841187666644134e-02_dp, 2.64148762682075572e-02_dp, 4.89601819209699238e-02_dp, 8.86752668909496500e-02_dp, 1.57335503252764047e-01_dp, 2.74107634843242409e-01_dp,&
+ 4.70101764244850173e-01_dp, 7.96752312857495482e-01_dp, 1.34560294170146966e+00_dp, 2.31676949685429490e+00_dp, 4.43561236801076575e+00_dp]
+ aw%aw_erange_matrix(:, 35) = [7.71991367601195506e-07_dp, 6.01188017486886296e-06_dp, 2.58331150414066731e-05_dp, 8.79343948397957349e-05_dp, 2.58798759078993318e-04_dp,&
+ 6.86622104597263264e-04_dp, 1.68348045801247907e-03_dp, 3.87710431958284253e-03_dp, 8.48313765549411902e-03_dp, 1.77813926363193896e-02_dp, 3.59308996111747034e-02_dp,&
+ 7.03381717934871697e-02_dp, 1.33915686402270723e-01_dp, 2.48756796209642445e-01_dp, 4.52055656622306401e-01_dp, 8.05644178219993679e-01_dp, 1.41177905572475915e+00_dp,&
+ 2.44190912873904908e+00_dp, 4.20321643292941616e+00_dp, 7.38584390670966684e+00_dp, 2.17516527710297515e-06_dp, 9.83686937874478960e-06_dp, 3.40911794807122775e-05_dp,&
+ 1.00516175832159038e-04_dp, 2.64611812117782411e-04_dp, 6.40634437941980267e-04_dp, 1.45335802417366814e-03_dp, 3.12886949168914236e-03_dp, 6.45007574789729140e-03_dp,&
+ 1.28175787260026396e-02_dp, 2.46794247572051199e-02_dp, 4.62278443048538337e-02_dp, 8.45138014752302991e-02_dp, 1.51214003421640153e-01_dp, 2.65438575788372044e-01_dp,&
+ 4.58342505053100036e-01_dp, 7.81576747787620318e-01_dp, 1.32709377942230344e+00_dp, 2.29542090956463429e+00_dp, 4.41132831206158560e+00_dp]
+ aw%aw_erange_matrix(:, 36) = [5.76735002793307808e-07_dp, 4.81796949814678273e-06_dp, 2.18483421872876011e-05_dp, 7.70173393749095747e-05_dp, 2.32217067617773254e-04_dp,&
+ 6.27214064392758990e-04_dp, 1.55933122602490491e-03_dp, 3.63157033812529315e-03_dp, 8.01975002563170940e-03_dp, 1.69419691855408096e-02_dp, 3.44652936060531184e-02_dp,&
+ 6.78648367359473981e-02_dp, 1.29874232623644670e-01_dp, 2.42357827527284242e-01_dp, 4.42240387974227989e-01_dp, 7.91076763029657348e-01_dp, 1.39090428178819203e+00_dp,&
+ 2.41310249516129938e+00_dp, 4.16499789079741589e+00_dp, 7.33692571660345116e+00_dp, 1.66095137224994890e-06_dp, 8.20074753469969660e-06_dp, 2.97676497989321825e-05_dp,&
+ 9.02363370065398159e-05_dp, 2.42198175651940829e-04_dp, 5.94996626056037070e-04_dp, 1.36547679821607312e-03_dp, 2.96745695023317713e-03_dp, 6.16563639522362070e-03_dp,&
+ 1.23347764774671582e-02_dp, 2.38881047565255543e-02_dp, 4.49739612649937420e-02_dp, 8.25931421941693417e-02_dp, 1.48374217827051180e-01_dp, 2.61398494781967083e-01_dp,&
+ 4.52840084356117167e-01_dp, 7.74451476612179168e-01_dp, 1.31838081518574168e+00_dp, 2.28535676109961017e+00_dp, 4.39988104041656669e+00_dp]
+ aw%aw_erange_matrix(:, 37) = [4.73886425613891435e-07_dp, 4.17970580864170017e-06_dp, 1.96623716565723957e-05_dp, 7.09049514450060440e-05_dp, 2.17110309698999125e-04_dp,&
+ 5.93067710371235650e-04_dp, 1.48733455024355546e-03_dp, 3.48814465718405879e-03_dp, 7.74742832481121156e-03_dp, 1.64461239878085849e-02_dp, 3.35957282494034823e-02_dp,&
+ 6.63917017136938514e-02_dp, 1.27458933211450770e-01_dp, 2.38522094193151818e-01_dp, 4.36341108323591909e-01_dp, 7.82300621989012179e-01_dp, 1.37830238440942998e+00_dp,&
+ 2.39568197291720386e+00_dp, 4.14185357093737938e+00_dp, 7.30727204549361353e+00_dp, 1.38993180594434485e-06_dp, 7.30994082205168018e-06_dp, 2.73439544949609298e-05_dp,&
+ 8.43748407830279597e-05_dp, 2.29265931027044855e-04_dp, 5.68425191544899631e-04_dp, 1.31393787419090916e-03_dp, 2.87222570368213378e-03_dp, 5.99696872720659104e-03_dp,&
+ 1.20472328507921500e-02_dp, 2.34150217578703822e-02_dp, 4.42218217302560376e-02_dp, 8.14375937677677270e-02_dp, 1.46661112136236865e-01_dp, 2.58955474937018260e-01_dp,&
+ 4.49505769567694891e-01_dp, 7.70126058061773699e-01_dp, 1.31308443450498591e+00_dp, 2.27923439428326180e+00_dp, 4.39291748104259039e+00_dp]
+ aw%aw_erange_matrix(:, 38) = [3.12168708718758378e-07_dp, 3.15509043854656020e-06_dp, 1.60396540039556192e-05_dp, 6.05345347901636982e-05_dp, 1.91046499902649901e-04_dp,&
+ 5.33409518772520698e-04_dp, 1.36030194508581252e-03_dp, 3.23305392937584934e-03_dp, 7.25986670485826487e-03_dp, 1.55533654998133344e-02_dp, 3.20225029785451004e-02_dp,&
+ 6.37152356941127068e-02_dp, 1.23054399695399289e-01_dp, 2.31504282444295856e-01_dp, 4.25516417063861396e-01_dp, 7.66155682919092751e-01_dp, 1.35506744495752551e+00_dp,&
+ 2.36350179853319853e+00_dp, 4.09903554897101507e+00_dp, 7.25235124629250461e+00_dp, 9.63437611266755152e-07_dp, 5.84573868356708477e-06_dp, 2.32262863906807196e-05_dp,&
+ 7.42268033517151106e-05_dp, 2.06579837360269531e-04_dp, 5.21343456951251210e-04_dp, 1.22188281591533582e-03_dp, 2.70100566659986366e-03_dp, 5.69202387249046534e-03_dp,&
+ 1.15248770221008552e-02_dp, 2.25520303961786774e-02_dp, 4.28447386130575286e-02_dp, 7.93150026366342964e-02_dp, 1.43505171794848924e-01_dp, 2.54443118346391550e-01_dp,&
+ 4.43332986627030412e-01_dp, 7.62102886337588492e-01_dp, 1.30324574547687333e+00_dp, 2.26785189738067405e+00_dp, 4.37997143688256863e+00_dp]
+ aw%aw_erange_matrix(:, 39) = [2.80580408279310689e-07_dp, 2.95049171159065096e-06_dp, 1.52945248324598467e-05_dp, 5.83575109507800420e-05_dp, 1.85496679406350597e-04_dp,&
+ 5.20572087731371934e-04_dp, 1.33274249195369592e-03_dp, 3.17734742663118618e-03_dp, 7.15281285816080775e-03_dp, 1.53564408426251769e-02_dp, 3.16741120106560844e-02_dp,&
+ 6.31205011915101227e-02_dp, 1.22072732313017143e-01_dp, 2.29936027072113913e-01_dp, 4.23091764893167077e-01_dp, 7.62531838111124793e-01_dp, 1.34984278928180279e+00_dp,&
+ 2.35625468033670904e+00_dp, 4.08938104591259144e+00_dp, 7.23995693521429562e+00_dp, 8.80031312565509921e-07_dp, 5.54661609202853559e-06_dp, 2.23609176671629847e-05_dp,&
+ 7.20599509266696783e-05_dp, 2.01682267113263946e-04_dp, 5.11094418303308790e-04_dp, 1.20171110412647811e-03_dp, 2.66328344812695808e-03_dp, 5.62453458732293469e-03_dp,&
+ 1.14088214568662284e-02_dp, 2.23596457931184399e-02_dp, 4.25368372706329823e-02_dp, 7.88391630738977944e-02_dp, 1.42796013385649651e-01_dp, 2.53427036209508516e-01_dp,&
+ 4.41940442033310288e-01_dp, 7.60290074913774427e-01_dp, 1.30102008571134586e+00_dp, 2.26527528542373968e+00_dp, 4.37704095531072479e+00_dp]
+ aw%aw_erange_matrix(:, 40) = [2.50037054543459451e-07_dp, 2.75065850253568672e-06_dp, 1.45580032538501094e-05_dp, 5.61886134141293647e-05_dp, 1.79937558126970633e-04_dp,&
+ 5.07661812572850549e-04_dp, 1.30494106638445761e-03_dp, 3.12101246683672406e-03_dp, 7.04432961318839871e-03_dp, 1.51565421457647235e-02_dp, 3.13199357226953551e-02_dp,&
+ 6.25151135010186682e-02_dp, 1.21072355633585996e-01_dp, 2.28336294921602012e-01_dp, 4.20616270923935887e-01_dp, 7.58829132331704792e-01_dp, 1.34450082520074798e+00_dp,&
+ 2.34884061013481915e+00_dp, 4.07949963320537279e+00_dp, 7.22726712269525429e+00_dp, 7.99319498651264064e-07_dp, 5.25167142347067190e-06_dp, 2.14984315244743870e-05_dp,&
+ 6.98872794461767599e-05_dp, 1.96751022559891727e-04_dp, 5.00742416654297745e-04_dp, 1.18128601236660593e-03_dp, 2.62500956852358778e-03_dp, 5.55594123795717914e-03_dp,&
+ 1.12906947598504191e-02_dp, 2.21635794060799952e-02_dp, 4.22226943193413917e-02_dp, 7.83531987853733763e-02_dp, 1.42071127423185201e-01_dp, 2.52387601399961081e-01_dp,&
+ 4.40514903391555690e-01_dp, 7.58433221310045091e-01_dp, 1.29873933283050214e+00_dp, 2.26263422505046297e+00_dp, 4.37403718786888618e+00_dp]
+ case(22)
+ aw%energy_range(:) = [300.0_dp, 4.00e+02_dp, 5.00e+02_dp, 6.00e+02_dp, 7.00e+02_dp, 8.00e+02_dp,&
+ 9.00e+02_dp, 1.00e+03_dp, 2.00e+03_dp, 3.00e+03_dp, 4.00e+03_dp, 5.00e+03_dp, 6.00e+03_dp, 7.00e+03_dp,&
+ 8.00e+03_dp, 9.00e+03_dp, 1.00e+04_dp, 2.00e+04_dp, 3.00e+04_dp, 4.00e+04_dp, 5.00e+04_dp, 6.00e+04_dp,&
+ 7.00e+04_dp, 8.00e+04_dp, 9.00e+04_dp, 1.00e+05_dp, 2.00e+05_dp, 3.00e+05_dp, 4.00e+05_dp, 5.00e+05_dp,&
+ 6.00e+05_dp, 7.00e+05_dp, 9.00e+05_dp, 1.00e+06_dp, 2.00e+06_dp, 3.00e+06_dp, 4.00e+06_dp, 8.00e+06_dp,&
+ 1.00e+07_dp, 2.00e+07_dp]
+ aw%aw_erange_matrix(:, 1) = [1.03063435016644759e-03_dp, 5.49923156302779131e-03_dp, 1.38334982710772401e-02_dp, 2.65993900808953014e-02_dp, 4.47520782299964323e-02_dp,&
+ 6.98068249252753320e-02_dp, 1.04068428172679431e-01_dp, 1.50908691841177584e-01_dp, 2.15093367125171991e-01_dp, 3.03194997198029947e-01_dp, 4.24153351843991056e-01_dp,&
+ 5.90049532797139786e-01_dp, 8.17165186315059078e-01_dp, 1.12742439261148752e+00_dp, 1.55037456293163300e+00_dp, 2.12598214734496160e+00_dp, 2.90878150747867537e+00_dp,&
+ 3.97455237146797069e+00_dp, 5.43242203991751627e+00_dp, 7.45067149032892484e+00_dp, 1.03258659770943311e+01_dp, 1.47568560745174491e+01_dp, 2.65267482488290270e-03_dp,&
+ 6.33294964486558112e-03_dp, 1.04280009978064310e-02_dp, 1.52601415880402238e-02_dp, 2.12939160800245907e-02_dp, 2.91950765345169380e-02_dp, 3.98847415349164389e-02_dp,&
+ 5.45833554480214117e-02_dp, 7.48722343170218907e-02_dp, 1.02808246584750670e-01_dp, 1.41104546650114959e-01_dp, 1.93377742947796749e-01_dp, 2.64475170911950552e-01_dp,&
+ 3.60922373755072967e-01_dp, 4.91572352482467723e-01_dp, 6.68626420794888210e-01_dp, 9.09416270057912035e-01_dp, 1.23993354412780010e+00_dp, 1.70291215537995910e+00_dp,&
+ 2.37993376114488786e+00_dp, 3.47004010223380899e+00_dp, 5.75693742710772938e+00_dp]
+ aw%aw_erange_matrix(:, 2) = [8.10419979097196271e-04_dp, 4.32987536073072780e-03_dp, 1.09190123190569411e-02_dp, 2.10767323714248292e-02_dp, 3.56564928575854728e-02_dp,&
+ 5.60293239853698402e-02_dp, 8.42994325741821121e-02_dp, 1.23562539505384872e-01_dp, 1.78216928035805383e-01_dp, 2.54372027381100541e-01_dp, 3.60416024188965678e-01_dp,&
+ 5.07804615065230336e-01_dp, 7.12142098042157556e-01_dp, 9.94656213174979431e-01_dp, 1.38422766463101721e+00_dp, 1.92025211199259704e+00_dp, 2.65686848896032091e+00_dp,&
+ 3.66971228809781413e+00_dp, 5.06805126036200360e+00_dp, 7.02049940645484494e+00_dp, 9.82370441014125895e+00_dp, 1.41744350886459483e+01_dp, 2.08650546514541199e-03_dp,&
+ 4.99439128734344585e-03_dp, 8.26521775822509387e-03_dp, 1.21897481171777209e-02_dp, 1.71946451409541179e-02_dp, 2.38974280159545208e-02_dp, 3.31536769147314225e-02_dp,&
+ 4.60989289766344304e-02_dp, 6.42187687672978874e-02_dp, 8.94764759215750105e-02_dp, 1.24503013523261263e-01_dp, 1.72850667563437199e-01_dp, 2.39329044250052747e-01_dp,&
+ 3.30466087030480693e-01_dp, 4.55174709176111914e-01_dp, 6.25790536020832566e-01_dp, 8.59861415531779083e-01_dp, 1.18365880545163105e+00_dp, 1.64018693622440770e+00_dp,&
+ 2.31109169778968848e+00_dp, 3.39467469919791842e+00_dp, 5.66979714295159365e+00_dp]
+ aw%aw_erange_matrix(:, 3) = [6.72087511475085949e-04_dp, 3.59470541834720032e-03_dp, 9.08388199334733346e-03_dp, 1.75914399761403981e-02_dp, 2.98985789014098169e-02_dp,&
+ 4.72721062533955350e-02_dp, 7.16685007640940897e-02_dp, 1.05977773122365365e-01_dp, 1.54324000984959686e-01_dp, 2.22471673239026196e-01_dp, 3.18397403077191776e-01_dp,&
+ 4.53086738924418142e-01_dp, 6.41628569576203733e-01_dp, 9.04712386590862394e-01_dp, 1.27069340352189464e+00_dp, 1.77850551848010774e+00_dp, 2.48195346725823196e+00_dp,&
+ 3.45653086090150197e+00_dp, 4.81159232043718621e+00_dp, 6.71601195856402455e+00_dp, 9.46655499820343849e+00_dp, 1.37585735658933945e+01_dp, 1.73078487945685843e-03_dp,&
+ 4.15198025245653354e-03_dp, 6.89993499781980761e-03_dp, 1.02427683744667868e-02_dp, 1.45792067227524021e-02_dp, 2.04898999177307757e-02_dp, 2.87796793557555178e-02_dp,&
+ 4.05195853742843989e-02_dp, 5.71242252255813182e-02_dp, 8.04874394188137554e-02_dp, 1.13176946315939941e-01_dp, 1.58691959877238359e-01_dp, 2.21806152200116485e-01_dp,&
+ 3.09039947394767034e-01_dp, 4.29341930072118849e-01_dp, 5.95141807058347960e-01_dp, 8.24148898888018566e-01_dp, 1.14285360673369163e+00_dp, 1.59448465845054477e+00_dp,&
+ 2.26077227364725486e+00_dp, 3.33952020201084965e+00_dp, 5.60610623943482977e+00_dp]
+ aw%aw_erange_matrix(:, 4) = [5.76541798871297640e-04_dp, 3.08657044423512337e-03_dp, 7.81384360765192271e-03_dp, 1.51747461063655789e-02_dp, 2.58955551659944376e-02_dp,&
+ 4.11627624208335333e-02_dp, 6.28174199310700121e-02_dp, 9.35877186751942342e-02_dp, 1.37382081158007707e-01_dp, 1.99693938226721324e-01_dp, 2.88175538974597800e-01_dp,&
+ 4.13439277418744755e-01_dp, 5.90160840003604248e-01_dp, 8.38592901620649034e-01_dp, 1.18665791055058212e+00_dp, 1.67290216164992822e+00_dp, 2.35084112371337550e+00_dp,&
+ 3.29583373130628576e+00_dp, 4.61729059143473908e+00_dp, 6.48429700742921433e+00_dp, 9.19374382724353545e+00_dp, 1.34399421870293594e+01_dp, 1.48505007631269024e-03_dp,&
+ 3.56922047817995755e-03_dp, 5.95304204495843321e-03_dp, 8.88728889829167902e-03_dp, 1.27488075761912085e-02_dp, 1.80886261992498042e-02_dp, 2.56706382245647236e-02_dp,&
+ 3.65147544192421236e-02_dp, 5.19801105704495656e-02_dp, 7.39057929346307041e-02_dp, 1.04808005358250939e-01_dp, 1.48140573971585643e-01_dp, 2.08643744206222864e-01_dp,&
+ 2.92826030129254233e-01_dp, 4.09658325664241707e-01_dp, 5.71640483938300803e-01_dp, 7.96609091792657598e-01_dp, 1.11123351656180658e+00_dp, 1.55893392619487359e+00_dp,&
+ 2.22152972695046858e+00_dp, 3.29646371471532484e+00_dp, 5.55643282286291385e+00_dp]
+ aw%aw_erange_matrix(:, 5) = [5.06301374348889252e-04_dp, 2.71278761171135814e-03_dp, 6.87856017151506141e-03_dp, 1.33920607281986185e-02_dp, 2.29358966453171338e-02_dp,&
+ 3.66319603265295932e-02_dp, 5.62274858691858906e-02_dp, 8.43186005607075850e-02_dp, 1.24637851061089364e-01_dp, 1.82457621413614907e-01_dp, 2.65164755739631663e-01_dp,&
+ 3.83064351283859128e-01_dp, 5.50488938082404622e-01_dp, 7.87324820338791365e-01_dp, 1.12112723035988537e+00_dp, 1.59010865056180872e+00_dp, 2.24752958332770136e+00_dp,&
+ 3.16862246665946223e+00_dp, 4.46283451629254735e+00_dp, 6.29942745333522058e+00_dp, 8.97541645187698656e+00_dp, 1.31843080894929585e+01_dp, 1.30437265924520491e-03_dp,&
+ 3.14022289782075158e-03_dp, 5.25443251677055415e-03_dp, 7.88389833135097473e-03_dp, 1.13876295487330640e-02_dp, 1.62920447106396638e-02_dp, 2.33270389319482595e-02_dp,&
+ 3.34706882965253444e-02_dp, 4.80370967810812288e-02_dp, 6.88203632849411356e-02_dp, 9.82931931226290467e-02_dp, 1.39869704652046317e-01_dp, 1.98259233188294887e-01_dp,&
+ 2.79956408660673450e-01_dp, 3.93946342038355879e-01_dp, 5.52783442365534894e-01_dp, 7.74408322866289134e-01_dp, 1.08564112055017259e+00_dp, 1.53006862036254487e+00_dp,&
+ 2.18959872101262132e+00_dp, 3.26139926305611993e+00_dp, 5.51600983923928290e+00_dp]
+ aw%aw_erange_matrix(:, 6) = [4.52328997700439893e-04_dp, 2.42541940651550166e-03_dp, 6.15878752614964706e-03_dp, 1.20180968011167049e-02_dp, 2.06500938360118999e-02_dp,&
+ 3.31230995252827717e-02_dp, 5.11059061643640358e-02_dp, 7.70839435227944486e-02_dp, 1.14642450144781846e-01_dp, 1.68868576944605442e-01_dp, 2.46925992970210867e-01_dp,&
+ 3.58859892600339014e-01_dp, 5.18710476831461653e-01_dp, 7.46049362900396584e-01_dp, 1.06811334063430730e+00_dp, 1.52282190800534600e+00_dp, 2.16320763058890853e+00_dp,&
+ 3.06438439565946164e+00_dp, 4.33582313860725588e+00_dp, 6.14693617040813933e+00_dp, 8.79485826575428042e+00_dp, 1.29724514738667107e+01_dp, 1.16552367137457281e-03_dp,&
+ 2.81018559121979815e-03_dp, 4.71590909909307045e-03_dp, 7.10813611379747506e-03_dp, 1.03309111563121975e-02_dp, 1.48897071521879761e-02_dp, 2.14855604114208808e-02_dp,&
+ 3.10614767189596394e-02_dp, 4.48939487762343367e-02_dp, 6.47390130701064465e-02_dp, 9.30317245051570513e-02_dp, 1.33150898969299131e-01_dp, 1.89777281414116400e-01_dp,&
+ 2.69390808048385000e-01_dp, 3.80985576078253563e-01_dp, 5.37159738903385531e-01_dp, 7.55941220449633189e-01_dp, 1.06428001974542874e+00_dp, 1.50591026264861583e+00_dp,&
+ 2.16282550536570506e+00_dp, 3.23197665458178296e+00_dp, 5.48211161243339973e+00_dp]
+ aw%aw_erange_matrix(:, 7) = [4.09463955316871013e-04_dp, 2.19707903409960747e-03_dp, 5.58634642673214599e-03_dp, 1.09238913120095690e-02_dp, 1.88262894374492430e-02_dp,&
+ 3.03164034487479472e-02_dp, 4.69960276555681095e-02_dp, 7.12558970704633005e-02_dp, 1.06555323301802465e-01_dp, 1.57822973295951186e-01_dp, 2.32030915294803464e-01_dp,&
+ 3.39000042141027635e-01_dp, 4.92516686674662585e-01_dp, 7.11877254549920457e-01_dp, 1.02403778262496448e+00_dp, 1.46665684376382033e+00_dp, 2.09256091345909478e+00_dp,&
+ 2.97675266211982104e+00_dp, 4.22871778952681066e+00_dp, 6.01799933870749992e+00_dp, 8.64184581975755783e+00_dp, 1.27925889223381191e+01_dp, 1.05523685978521371e-03_dp,&
+ 2.54778311387449021e-03_dp, 4.28697639370369601e-03_dp, 6.48857830184702573e-03_dp, 9.48380540077316606e-03_dp, 1.37599740604215665e-02_dp, 1.99932026118929546e-02_dp,&
+ 2.90965281146010890e-02_dp, 4.23143327934254188e-02_dp, 6.13697396007867879e-02_dp, 8.86646198838301897e-02_dp, 1.27546015735097384e-01_dp, 1.82668158546487353e-01_dp,&
+ 2.60496080777035011e-01_dp, 3.70029323875206817e-01_dp, 5.23901932671672510e-01_dp, 7.40216597135249899e-01_dp, 1.04603708345079682e+00_dp, 1.48522947792240667e+00_dp,&
+ 2.13986938637024560e+00_dp, 3.20673200723689300e+00_dp, 5.45304183152807376e+00_dp]
+ aw%aw_erange_matrix(:, 8) = [3.74536513689004711e-04_dp, 2.01093874256135082e-03_dp, 5.11931403847935666e-03_dp, 1.00300616007581826e-02_dp, 1.73338888970692613e-02_dp,&
+ 2.80143887120274729e-02_dp, 4.36151707268864000e-02_dp, 6.64446546939080340e-02_dp, 9.98527469147449664e-02_dp, 1.48630270429679301e-01_dp, 2.19582093557942060e-01_dp,&
+ 3.22332445416299462e-01_dp, 4.70443843893328828e-01_dp, 6.82968577305359203e-01_dp, 9.86611911362780591e-01_dp, 1.41879734177426342e+00_dp, 2.03216328844818372e+00_dp,&
+ 2.90160786155497918e+00_dp, 4.13662510506400238e+00_dp, 5.90687310592433601e+00_dp, 8.50970804507050538e+00_dp, 1.26370160085061674e+01_dp, 9.65363281953964957e-04_dp,&
+ 2.33375825085292959e-03_dp, 3.93654790774339725e-03_dp, 5.98116160943248411e-03_dp, 8.78763358698389681e-03_dp, 1.28273133232257447e-02_dp, 1.87545059713052562e-02_dp,&
+ 2.74562383607578030e-02_dp, 4.01489971289221217e-02_dp, 5.85269615945393437e-02_dp, 8.49623494432137777e-02_dp, 1.22773325112377513e-01_dp, 1.76589448341746752e-01_dp,&
+ 2.52860956026609074e-01_dp, 3.60590351441223977e-01_dp, 5.12441666736709212e-01_dp, 7.26582638760519983e-01_dp, 1.03017804776413668e+00_dp, 1.46721338759692377e+00_dp,&
+ 2.11984251267978685e+00_dp, 3.18469537275312620e+00_dp, 5.42767735620232283e+00_dp]
+ aw%aw_erange_matrix(:, 9) = [2.07916311779228946e-04_dp, 1.12155761153414431e-03_dp, 2.88127758734212178e-03_dp, 5.72772751608632748e-03_dp, 1.01054123620637430e-02_dp,&
+ 1.67704053240377918e-02_dp, 2.69244859195186571e-02_dp, 4.23921907191599640e-02_dp, 6.58805569609397790e-02_dp, 1.01364968397741645e-01_dp, 1.54647961551893698e-01_dp,&
+ 2.34154774032586194e-01_dp, 3.52057663618104755e-01_dp, 5.25861379354838676e-01_dp, 7.80644517631268742e-01_dp, 1.15226216680138238e+00_dp, 1.69204597817615787e+00_dp,&
+ 2.47409994481944739e+00_dp, 3.60786218697460548e+00_dp, 5.26369191349306487e+00_dp, 7.73976068285175334e+00_dp, 1.17256205146613937e+01_dp, 5.36467715023434774e-04_dp,&
+ 1.30915525385516996e-03_dp, 2.24911227056142802e-03_dp, 3.51604898345418779e-03_dp, 5.36313626635470143e-03_dp, 8.16430335527195197e-03_dp, 1.24437195139966619e-02_dp,&
+ 1.89365370967848681e-02_dp, 2.86935938504337684e-02_dp, 4.32292742095023511e-02_dp, 6.47224871099811999e-02_dp, 9.62938700402608677e-02_dp, 1.42392698698953352e-01_dp,&
+ 2.09342291317476281e-01_dp, 3.06123801474388446e-01_dp, 4.45550520347793078e-01_dp, 6.46173012089851895e-01_dp, 9.35795948539298372e-01_dp, 1.35921039025971568e+00_dp,&
+ 1.99918186703179845e+00_dp, 3.05163758801036078e+00_dp, 5.27474337655333336e+00_dp]
+ aw%aw_erange_matrix(:, 10) = [1.47171034911424206e-04_dp, 7.96428323837147919e-04_dp, 2.05896664004827238e-03_dp, 4.13466706766572444e-03_dp, 7.39936201103626439e-03_dp,&
+ 1.24987458722376123e-02_dp, 2.04667409164244057e-02_dp, 3.28906135988269246e-02_dp, 5.21610594386609783e-02_dp, 8.18464632812529458e-02_dp, 1.27238497445389814e-01_dp,&
+ 1.96136667599684955e-01_dp, 2.99969379508689626e-01_dp, 4.55391258003387089e-01_dp, 6.86560914454681037e-01_dp, 1.02841510570747774e+00_dp, 1.53148292016649346e+00_dp,&
+ 2.26933300000655347e+00_dp, 3.35128770114537033e+00_dp, 4.94806350992282962e+00_dp, 7.35836582136724626e+00_dp, 1.12707865998321051e+01_dp, 3.80005538578459382e-04_dp,&
+ 9.33338699389642040e-04_dp, 1.62390227222127871e-03_dp, 2.58855365800755768e-03_dp, 4.04653947253978859e-03_dp, 6.32189653318652577e-03_dp, 9.87455765362500217e-03_dp,&
+ 1.53655063745645748e-02_dp, 2.37611806119816318e-02_dp, 3.64787245922180148e-02_dp, 5.55869015818103787e-02_dp, 8.40880209433377684e-02_dp, 1.26315924755279474e-01_dp,&
+ 1.88500889520422404e-01_dp, 2.79583276965536864e-01_dp, 4.12427769529583099e-01_dp, 6.05771789423283358e-01_dp, 8.87768717560709297e-01_dp, 1.30368560346876783e+00_dp,&
+ 1.93670672248412501e+00_dp, 2.98252430167097149e+00_dp, 5.19544853947986507e+00_dp]
+ aw%aw_erange_matrix(:, 11) = [1.15126529151328002e-04_dp, 6.24589880363876355e-04_dp, 1.62281269600238784e-03_dp, 3.28507237039356694e-03_dp, 5.94484779181019777e-03_dp,&
+ 1.01786277534976731e-02_dp, 1.69147981879632543e-02_dp, 2.75915369674121259e-02_dp, 4.43996514867282185e-02_dp, 7.06474284750039511e-02_dp, 1.11295571810849231e-01_dp,&
+ 1.73732377650324982e-01_dp, 2.68890258627387913e-01_dp, 4.12848323366157011e-01_dp, 6.29131981503187498e-01_dp, 9.52033554436149010e-01_dp, 1.43150419010024965e+00_dp,&
+ 2.14070865917387732e+00_dp, 3.18885412672288426e+00_dp, 4.74688455032915613e+00_dp, 7.11389711304269490e+00_dp, 1.09779502387492141e+01_dp, 2.97432196185447480e-04_dp,&
+ 7.34248784794580079e-04_dp, 1.29035202001703082e-03_dp, 2.08832471267370078e-03_dp, 3.32556285051951008e-03_dp, 5.29418675624997431e-03_dp, 8.41388498269535212e-03_dp,&
+ 1.32987566459194743e-02_dp, 2.08601018763598482e-02_dp, 3.24495525587031458e-02_dp, 5.00598444054498465e-02_dp, 7.66096125520880494e-02_dp, 1.16348407992360639e-01_dp,&
+ 1.75434489290140605e-01_dp, 2.62768980870982161e-01_dp, 3.91238667044871424e-01_dp, 5.79697167071256625e-01_dp, 8.56531677721931839e-01_dp, 1.26734410170348299e+00_dp,&
+ 1.89563508424130456e+00_dp, 2.93699604108030687e+00_dp, 5.14326427364680150e+00_dp]
+ aw%aw_erange_matrix(:, 12) = [9.51436729162034249e-05_dp, 5.17270965481586619e-04_dp, 1.34965095006098776e-03_dp, 2.75063616270900500e-03_dp, 5.02409835099588628e-03_dp,&
+ 8.69766774200029721e-03_dp, 1.46251882146344186e-02_dp, 2.41394814613502019e-02_dp, 3.92893016178502003e-02_dp, 6.31964222262876157e-02_dp, 1.00581828984489030e-01_dp,&
+ 1.58532956889468474e-01_dp, 2.47615612840909299e-01_dp, 3.83479011279471482e-01_dp, 5.89170141663977631e-01_dp, 8.98487922099273972e-01_dp, 1.36093326932247560e+00_dp,&
+ 2.04934678905197076e+00_dp, 3.07282922941290959e+00_dp, 4.60248581721676064e+00_dp, 6.93772132176544698e+00_dp, 1.07662537605035951e+01_dp, 2.45921947329527614e-04_dp,&
+ 6.09681575569105444e-04_dp, 1.08048217433343984e-03_dp, 1.77082905344642201e-03_dp, 2.86240028463815915e-03_dp, 4.62458201556379886e-03_dp, 7.44872589102107702e-03_dp,&
+ 1.19154813231642353e-02_dp, 1.88958529137463194e-02_dp, 2.96926738305596759e-02_dp, 4.62411918444786615e-02_dp, 7.13957799066545634e-02_dp, 1.09339911550742505e-01_dp,&
+ 1.66173373117442319e-01_dp, 2.50761842671747781e-01_dp, 3.76001769077057402e-01_dp, 5.60827824679953180e-01_dp, 8.33800292631723394e-01_dp, 1.24077761664007458e+00_dp,&
+ 1.86551413845751934e+00_dp, 2.90355631432598127e+00_dp, 5.10496090727687246e+00_dp]
+ aw%aw_erange_matrix(:, 13) = [8.14132863726718339e-05_dp, 4.43438181799428747e-04_dp, 1.16127534069767604e-03_dp, 2.38070961367043300e-03_dp, 4.38334849656378360e-03_dp,&
+ 7.65984385472751658e-03_dp, 1.30076358481182111e-02_dp, 2.16797344420144138e-02_dp, 3.56167156386108796e-02_dp, 5.77972661403760996e-02_dp, 9.27570244102206981e-02_dp,&
+ 1.47348988468907538e-01_dp, 2.31851068382248837e-01_dp, 3.61572161335724507e-01_dp, 5.59177233840892129e-01_dp, 8.58067272951867022e-01_dp, 1.30737537959642269e+00_dp,&
+ 1.97967156835564628e+00_dp, 2.98395950829788603e+00_dp, 4.49146636044110981e+00_dp, 6.80184903552209796e+00_dp, 1.06025902099772953e+01_dp, 2.10518581262747359e-04_dp,&
+ 5.23849992285989872e-04_dp, 9.35189048688426995e-04_dp, 1.54940041282643323e-03_dp, 2.53609900434045550e-03_dp, 4.14739470159187530e-03_dp, 6.75323587542941538e-03_dp,&
+ 1.09086636409994140e-02_dp, 1.74532704715506803e-02_dp, 2.76513431020509702e-02_dp, 4.33922324868079509e-02_dp, 6.74784216164883988e-02_dp, 1.04039232976262802e-01_dp,&
+ 1.59125353965573757e-01_dp, 2.41570662449016704e-01_dp, 3.64275022925983405e-01_dp, 5.46233634635032272e-01_dp, 8.16142673469200441e-01_dp, 1.22006746819583412e+00_dp,&
+ 1.84197380919507925e+00_dp, 2.87739093899265930e+00_dp, 5.07500437871142740e+00_dp]
+ aw%aw_erange_matrix(:, 14) = [7.13592602953326029e-05_dp, 3.89315053628413934e-04_dp, 1.02290016637576254e-03_dp, 2.10808534696908844e-03_dp, 3.90891228002737939e-03_dp,&
+ 6.88672932852428445e-03_dp, 1.17942977996034100e-02_dp, 1.98213106598323675e-02_dp, 3.28221100608088456e-02_dp, 5.36606118809696275e-02_dp, 8.67228342890487836e-02_dp,&
+ 1.38671335005026458e-01_dp, 2.19548687767534084e-01_dp, 3.44383806133186920e-01_dp, 5.35525179860289025e-01_dp, 8.26041520397564399e-01_dp, 1.26475567304876946e+00_dp,&
+ 1.92400558711946434e+00_dp, 2.91270629065943742e+00_dp, 4.40218119622389903e+00_dp, 6.69230018398852167e+00_dp, 1.04703744397918381e+01_dp, 1.84588073435838182e-04_dp,&
+ 4.60846669383881493e-04_dp, 8.28098646616922209e-04_dp, 1.38513747790979511e-03_dp, 2.29191443040749473e-03_dp, 3.78682567533227508e-03_dp, 6.22287602595384889e-03_dp,&
+ 1.01345751815021604e-02_dp, 1.63359744295523690e-02_dp, 2.60597081143932423e-02_dp, 4.11571292968829355e-02_dp, 6.43873797754156846e-02_dp, 9.98340320606822124e-02_dp,&
+ 1.53505526775757045e-01_dp, 2.34207088139599728e-01_dp, 3.54838537454467418e-01_dp, 5.34442377729807849e-01_dp, 8.01825742248729934e-01_dp, 1.20322663456372658e+00_dp,&
+ 1.82279189171337763e+00_dp, 2.85604880272480033e+00_dp, 5.05057914863739565e+00_dp]
+ aw%aw_erange_matrix(:, 15) = [6.36579983019180099e-05_dp, 3.47816904834585600e-04_dp, 9.16606656190229580e-04_dp, 1.89805540144578791e-03_dp, 3.54186609442470228e-03_dp,&
+ 6.28539259011753546e-03_dp, 1.08448267084552269e-02_dp, 1.83579477305851300e-02_dp, 3.06080848555685126e-02_dp, 5.03641360602654284e-02_dp, 8.18875824451109208e-02_dp,&
+ 1.31681632920222336e-01_dp, 2.09590915238371839e-01_dp, 3.30407578483158271e-01_dp, 5.16210949027820387e-01_dp, 7.99785285621254727e-01_dp, 1.22968561961200007e+00_dp,&
+ 1.87804688652642215e+00_dp, 2.85370281770559808e+00_dp, 4.32805520345455630e+00_dp, 6.60115781335191620e+00_dp, 1.03601921647022532e+01_dp, 1.64721176977347488e-04_dp,&
+ 4.12482080613346225e-04_dp, 7.45587885479292458e-04_dp, 1.25784498264198616e-03_dp, 2.10122286130215137e-03_dp, 3.50288356884526867e-03_dp, 5.80195979248964312e-03_dp,&
+ 9.51595545077662391e-03_dp, 1.54375270625704136e-02_dp, 2.47725892091762018e-02_dp, 3.93402058975390809e-02_dp, 6.18624226914841341e-02_dp, 9.63832904369785054e-02_dp,&
+ 1.48874223255665072e-01_dp, 2.28114450085994347e-01_dp, 3.47001715767874530e-01_dp, 5.24616719284114019e-01_dp, 7.89859775543438225e-01_dp, 1.18911662284867847e+00_dp,&
+ 1.80669222746527725e+00_dp, 2.83812086290345444e+00_dp, 5.03006762909104310e+00_dp]
+ aw%aw_erange_matrix(:, 16) = [5.75572951779637076e-05_dp, 3.14914306640529064e-04_dp, 8.32188482767582728e-04_dp, 1.73080610181602598e-03_dp, 3.24846434323990390e-03_dp,&
+ 5.80238149711106033e-03_dp, 1.00780714842716203e-02_dp, 1.71696844891436259e-02_dp, 2.88006307318317452e-02_dp, 4.76592602480586866e-02_dp, 7.79009926997707575e-02_dp,&
+ 1.25892715892636398e-01_dp, 2.01308959280787431e-01_dp, 3.18737484345279931e-01_dp, 5.00024124918876711e-01_dp, 7.77705013695570990e-01_dp, 1.20009993174445717e+00_dp,&
+ 1.83916349363603615e+00_dp, 2.80365447240209775e+00_dp, 4.26503999352744056e+00_dp, 6.52353530439399965e+00_dp, 1.02662211683425344e+01_dp, 1.48980050649978461e-04_dp,&
+ 3.74093905974257025e-04_dp, 6.79878494222507942e-04_dp, 1.15594085400318246e-03_dp, 1.94750477749893228e-03_dp, 3.27230714177671918e-03_dp, 5.45783233086765719e-03_dp,&
+ 9.00715387075903817e-03_dp, 1.46946051562604138e-02_dp, 2.37030724147478736e-02_dp, 3.78236373963166950e-02_dp, 5.97460018280367572e-02_dp, 9.34794912089463720e-02_dp,&
+ 1.44962599288782995e-01_dp, 2.22950806915248823e-01_dp, 3.40338543176551489e-01_dp, 5.16238115635440420e-01_dp, 7.79629764330003971e-01_dp, 1.17702800798791141e+00_dp,&
+ 1.79287805320122295e+00_dp, 2.82272660203277903e+00_dp, 5.01245943123840831e+00_dp]
+ aw%aw_erange_matrix(:, 17) = [5.25969497635628904e-05_dp, 2.88140299657843612e-04_dp, 7.63388729255190458e-04_dp, 1.59416624183384543e-03_dp, 3.00791751449272894e-03_dp,&
+ 5.40463761301825715e-03_dp, 9.44360608781482681e-03_dp, 1.61815943494118403e-02_dp, 2.72904897758569354e-02_dp, 4.53890949790402704e-02_dp, 7.45408810429689511e-02_dp,&
+ 1.20994088473675779e-01_dp, 1.94274624261707080e-01_dp, 3.08790956078508427e-01_dp, 4.86183223357853467e-01_dp, 7.58767923389570109e-01_dp, 1.17465534317426790e+00_dp,&
+ 1.80563799283809878e+00_dp, 2.76040516925991852e+00_dp, 4.21047946882117508e+00_dp, 6.45621984012329531e+00_dp, 1.01846271205820038e+01_dp, 1.36178924890914869e-04_dp,&
+ 3.42825234820011090e-04_dp, 6.26191749168496454e-04_dp, 1.07228090118842716e-03_dp, 1.82051245976536883e-03_dp, 3.08056613776433322e-03_dp, 5.16995083867658693e-03_dp,&
+ 8.57926437455989663e-03_dp, 1.40668760010720529e-02_dp, 2.27955019479989147e-02_dp, 3.65315987641240403e-02_dp, 5.79362557797011499e-02_dp, 9.09878764338887397e-02_dp,&
+ 1.41595346423459723e-01_dp, 2.18492311409719364e-01_dp, 3.34569115823445562e-01_dp, 5.08964731161898665e-01_dp, 7.70729091745732675e-01_dp, 1.16649062786416691e+00_dp,&
+ 1.78082044043342025e+00_dp, 2.80928104526444544e+00_dp, 4.99708355849031083e+00_dp]
+ aw%aw_erange_matrix(:, 18) = [2.90762890407724913e-05_dp, 1.60820764045495378e-04_dp, 4.34422626290592476e-04_dp, 9.35039866616582996e-04_dp, 1.83288487070204118e-03_dp,&
+ 3.43151821088961929e-03_dp, 6.24330639046053164e-03_dp, 1.11139604851392074e-02_dp, 1.94205651181870234e-02_dp, 3.33783588073015142e-02_dp, 5.65099671357182226e-02_dp,&
+ 9.43565235776523542e-02_dp, 1.55546612904553100e-01_dp, 2.53391770241247982e-01_dp, 4.08255853980029115e-01_dp, 6.51070811498433266e-01_dp, 1.02859999602671803e+00_dp,&
+ 1.61156146938925948e+00_dp, 2.50813991254804813e+00_dp, 3.89015625413403843e+00_dp, 6.05888858834257960e+00_dp, 9.70101820848491236e+00_dp, 7.54396214641075318e-05_dp,&
+ 1.93611184726491780e-04_dp, 3.67183036170629030e-04_dp, 6.61657087412284291e-04_dp, 1.18342298349698389e-03_dp, 2.09721549528343789e-03_dp, 3.66409371548580276e-03_dp,&
+ 6.30174076999150123e-03_dp, 1.06730393182044355e-02_dp, 1.78180701123197525e-02_dp, 2.93512452214240056e-02_dp, 4.77539458032805800e-02_dp, 7.68061849693031928e-02_dp,&
+ 1.22220852210935996e-01_dp, 1.92577294064878640e-01_dp, 3.00716204350791827e-01_dp, 4.65916878838533499e-01_dp, 7.17645882764439302e-01_dp, 1.10324722563679933e+00_dp,&
+ 1.70812188016783417e+00_dp, 2.72803096337466400e+00_dp, 4.90423336038595714e+00_dp]
+ aw%aw_erange_matrix(:, 19) = [2.05653889251502476e-05_dp, 1.14520867388633136e-04_dp, 3.13640994086593816e-04_dp, 6.89261854057424649e-04_dp, 1.38517347545250176e-03_dp,&
+ 2.66038656199351492e-03_dp, 4.95918459442486713e-03_dp, 9.02797406142399547e-03_dp, 1.61023543090457119e-02_dp, 2.82000330967852458e-02_dp, 4.85739460822395552e-02_dp,&
+ 8.24063146263888241e-02_dp, 1.37862273521427520e-01_dp, 2.27676785155268485e-01_dp, 3.71530405037607481e-01_dp, 5.99598522246047039e-01_dp, 9.57889945568599410e-01_dp,&
+ 1.51649820008986214e+00_dp, 2.38328420664463492e+00_dp, 3.73019408610861980e+00_dp, 5.85901523269036240e+00_dp, 9.45637637256199426e+00_dp, 5.34363201296681438e-05_dp,&
+ 1.39020073506606164e-04_dp, 2.70599284078877720e-04_dp, 5.03939028710325798e-04_dp, 9.29930193231351420e-04_dp, 1.69264740976545792e-03_dp, 3.02631466800271781e-03_dp,&
+ 5.31244207968048672e-03_dp, 9.16523880225796408e-03_dp, 1.55609829578794105e-02_dp, 2.60333897168352757e-02_dp, 4.29663462371881605e-02_dp, 7.00293507626535416e-02_dp,&
+ 1.12821990431476962e-01_dp, 1.79827912884988311e-01_dp, 2.83844003822466384e-01_dp, 4.44206488566912749e-01_dp, 6.90593012627218727e-01_dp, 1.07073613696106928e+00_dp,&
+ 1.67051539850277919e+00_dp, 2.68586871499289925e+00_dp, 4.85609323400620241e+00_dp]
+ aw%aw_erange_matrix(:, 20) = [1.60905223191839913e-05_dp, 9.00924705193344226e-05_dp, 2.49480714636845147e-04_dp, 5.57253697520921840e-04_dp, 1.14108958815330652e-03_dp,&
+ 2.23286406677653416e-03_dp, 4.23520330690799109e-03_dp, 7.83307362353265896e-03_dp, 1.41734445524208229e-02_dp, 2.51488274898480427e-02_dp, 4.38393471602563367e-02_dp,&
+ 7.51948372263522291e-02_dp, 1.27077300211358046e-01_dp, 2.11840719863816418e-01_dp, 3.48709343563647356e-01_dp, 5.67347420179910911e-01_dp, 9.13246803231961057e-01_dp,&
+ 1.45606441575002998e+00_dp, 2.30342338171505601e+00_dp, 3.62733903836381089e+00_dp, 5.72994466090799826e+00_dp, 9.29787769290753019e+00_dp, 4.18582630530724392e-05_dp,&
+ 1.10095201120191568e-04_dp, 2.18729154478433733e-04_dp, 4.17481342981990177e-04_dp, 7.87767058022032255e-04_dp, 1.46107800353917133e-03_dp, 2.65485040360329211e-03_dp,&
+ 4.72745322818911469e-03_dp, 8.26152870286268534e-03_dp, 1.41915027312551519e-02_dp, 2.39975456485793520e-02_dp, 3.99980426188496635e-02_dp, 6.57871441778337951e-02_dp,&
+ 1.06885646486166594e-01_dp, 1.71708282235778303e-01_dp, 2.73015955599476445e-01_dp, 4.30175629967851303e-01_dp, 6.73000885562459072e-01_dp, 1.04948552778007187e+00_dp,&
+ 1.64584195942300959e+00_dp, 2.65815350615402668e+00_dp, 4.82446309349684288e+00_dp]
+ aw%aw_erange_matrix(:, 21) = [1.33051281617681520e-05_dp, 7.48448384990370801e-05_dp, 2.09214312792452143e-04_dp, 4.73669311645959765e-04_dp, 9.84726055373060525e-04_dp,&
+ 1.95547892998873714e-03_dp, 3.75958796998500291e-03_dp, 7.03892644101850040e-03_dp, 1.28777413472578924e-02_dp, 2.30792052353523229e-02_dp, 4.05991719793361294e-02_dp,&
+ 7.02191345034593045e-02_dp, 1.19579941024401004e-01_dp, 2.00755646924385800e-01_dp, 3.32632747525695771e-01_dp, 5.44494103839673005e-01_dp, 8.81442137232194889e-01_dp,&
+ 1.41280037704187977e+00_dp, 2.24600452092047931e+00_dp, 3.55311338618090922e+00_dp, 5.63651897644199629e+00_dp, 9.18288725381164284e+00_dp, 3.46469464063064458e-05_dp,&
+ 9.19802895962243850e-05_dp, 1.85890421128139926e-04_dp, 3.61858574332359778e-04_dp, 6.94740965771247919e-04_dp, 1.30729901127845001e-03_dp, 2.40507869574388064e-03_dp,&
+ 4.32982418281745076e-03_dp, 7.64129555982906786e-03_dp, 1.32433409792537971e-02_dp, 2.25766959381045185e-02_dp, 3.79110871371775016e-02_dp, 6.27841312538312130e-02_dp,&
+ 1.02656723796630878e-01_dp, 1.65890020881459044e-01_dp, 2.65214803703477164e-01_dp, 4.20016957188921014e-01_dp, 6.60207961676460342e-01_dp, 1.03397579428113473e+00_dp,&
+ 1.62778610521243183e+00_dp, 2.63784401884980513e+00_dp, 4.80129185077557441e+00_dp]
+ aw%aw_erange_matrix(:, 22) = [1.13934021647398620e-05_dp, 6.43553767195351271e-05_dp, 1.81384735260225273e-04_dp, 4.15465804906859325e-04_dp, 8.74784651968030431e-04_dp,&
+ 1.75842677544671769e-03_dp, 3.41835170634737342e-03_dp, 6.46392134002142949e-03_dp, 1.19317312559794313e-02_dp, 2.15566465163261507e-02_dp, 3.81989404458580872e-02_dp,&
+ 6.65099017862893216e-02_dp, 1.13958393754720083e-01_dp, 1.92399599408031863e-01_dp, 3.20454452163599690e-01_dp, 5.27104117055056220e-01_dp, 8.57140736476918685e-01_dp,&
+ 1.37961952060154536e+00_dp, 2.20182185430469257e+00_dp, 3.49583596141349240e+00_dp, 5.56425878518387496e+00_dp, 9.09379170158253380e+00_dp, 2.96949246120568376e-05_dp,&
+ 7.94830390495184180e-05_dp, 1.63026224371196949e-04_dp, 3.22611474393445742e-04_dp, 6.28209031130342569e-04_dp, 1.19604481045554301e-03_dp, 2.22261828090361850e-03_dp,&
+ 4.03689706422688966e-03_dp, 7.18093917005207995e-03_dp, 1.25347945927189886e-02_dp, 2.15083195138626969e-02_dp, 3.63328896886428443e-02_dp, 6.05012296058346846e-02_dp,&
+ 9.94262052048541650e-02_dp, 1.61425318654521810e-01_dp, 2.59203569677637025e-01_dp, 4.12159396023710212e-01_dp, 6.50279574358099022e-01_dp, 1.02190518592096291e+00_dp,&
+ 1.61370511273339901e+00_dp, 2.62198875738320014e+00_dp, 4.78320650635398081e+00_dp]
+ aw%aw_erange_matrix(:, 23) = [9.99454274093545240e-06_dp, 5.66643636299825617e-05_dp, 1.60896503364809740e-04_dp, 3.72334006752350892e-04_dp, 7.92633889132781234e-04_dp,&
+ 1.60990407495521142e-03_dp, 3.15902992422392986e-03_dp, 6.02364217988483278e-03_dp, 1.12024081667284076e-02_dp, 2.03755415661601089e-02_dp, 3.63264769194730081e-02_dp,&
+ 6.36013551904103663e-02_dp, 1.09529542685367035e-01_dp, 1.85787923004832572e-01_dp, 3.10780127529339312e-01_dp, 5.13239254991739280e-01_dp, 8.37700866434439195e-01_dp,&
+ 1.35299652288265082e+00_dp, 2.16627671791894283e+00_dp, 3.44965052286817064e+00_dp, 5.50588350642492852e+00_dp, 9.02171444171596804e+00_dp, 2.60697394028477843e-05_dp,&
+ 7.02972872632460762e-05_dp, 1.46084629233613855e-04_dp, 2.93196758798126291e-04_dp, 5.77782380989189191e-04_dp, 1.11092466332648305e-03_dp, 2.08191067723823313e-03_dp,&
+ 3.80944401039385065e-03_dp, 6.82128745818843651e-03_dp, 1.19781797824074533e-02_dp, 2.06647966320373938e-02_dp, 3.50810773504934836e-02_dp, 5.86827296947812008e-02_dp,&
+ 9.68427139463775566e-02_dp, 1.57841812595722136e-01_dp, 2.54362549305863661e-01_dp, 4.05812091239185158e-01_dp, 6.42237696997827623e-01_dp, 1.01210598637712601e+00_dp,&
+ 1.60225484010221209e+00_dp, 2.60908459532920922e+00_dp, 4.76848987721681183e+00_dp]
+ aw%aw_erange_matrix(:, 24) = [8.92352094047950570e-06_dp, 5.07651520041585948e-05_dp, 1.45123988619345743e-04_dp, 3.38934589926485311e-04_dp, 7.28555367815529533e-04_dp,&
+ 1.49318516017513179e-03_dp, 2.95380020435500549e-03_dp, 5.67296401145544159e-03_dp, 1.06181420151690940e-02_dp, 1.94243935039796548e-02_dp, 3.48114124334977515e-02_dp,&
+ 6.12377859731470867e-02_dp, 1.05916301172055749e-01_dp, 1.80374296040537785e-01_dp, 3.02832467443627407e-01_dp, 5.01814244147640531e-01_dp, 8.21637300725933217e-01_dp,&
+ 1.33094204170813835e+00_dp, 2.13676550226255024e+00_dp, 3.41123201151645850e+00_dp, 5.45724971517158153e+00_dp, 8.96159470755822163e+00_dp, 2.32930218299722802e-05_dp,&
+ 6.32360769780289069e-05_dp, 1.32967133627795708e-04_dp, 2.70192493508733436e-04_dp, 5.37965852619124883e-04_dp, 1.04317824981281699e-03_dp, 1.96917378155438572e-03_dp,&
+ 3.62614732732700114e-03_dp, 6.52996012917771932e-03_dp, 1.15252083208033391e-02_dp, 1.99754326692176479e-02_dp, 3.40540728555096608e-02_dp, 5.71854808137426049e-02_dp,&
+ 9.47086037923560858e-02_dp, 1.54872615401006386e-01_dp, 2.50340151197668392e-01_dp, 4.00524640047162650e-01_dp, 6.35523448616123310e-01_dp, 1.00390904389308799e+00_dp,&
+ 1.59266346971105199e+00_dp, 2.59826755537668985e+00_dp, 4.75615524329419248e+00_dp]
+ aw%aw_erange_matrix(:, 25) = [8.07533230400322961e-06_dp, 4.60856441621744308e-05_dp, 1.32570852452785267e-04_dp, 3.12210915451310400e-04_dp, 6.76950813769914249e-04_dp,&
+ 1.39856692266817424e-03_dp, 2.78640694108129661e-03_dp, 5.38534378226993276e-03_dp, 1.01365344492760443e-02_dp, 1.86368240312546410e-02_dp, 3.35517776609026847e-02_dp,&
+ 5.92653909136533208e-02_dp, 1.02890821649513090e-01_dp, 1.75827211907739561e-01_dp, 2.96137945827540716e-01_dp, 4.92165535839492907e-01_dp, 8.08038902739617870e-01_dp,&
+ 1.31223194784214559e+00_dp, 2.11168172454495195e+00_dp, 3.37852397717336084e+00_dp, 5.41578989059694660e+00_dp, 8.91029189403326782e+00_dp, 2.10932070918042014e-05_dp,&
+ 5.76236612613593971e-05_dp, 1.22472462807700111e-04_dp, 2.51622999405283748e-04_dp, 5.05555830895371150e-04_dp, 9.87653780958501438e-04_dp, 1.87624224076666157e-03_dp,&
+ 3.47429497489486552e-03_dp, 6.28753596109184708e-03_dp, 1.11467641378285454e-02_dp, 1.93973929963348439e-02_dp, 3.31900503795852508e-02_dp, 5.59219848393945895e-02_dp,&
+ 9.29025902137011472e-02_dp, 1.52353349648122888e-01_dp, 2.46919086314924902e-01_dp, 3.96017811288945254e-01_dp, 6.29789380412422162e-01_dp, 9.96897394001393877e-01_dp,&
+ 1.58444925174457607e+00_dp, 2.58899789320651852e+00_dp, 4.74558629969863599e+00_dp]
+ aw%aw_erange_matrix(:, 26) = [7.38580306967939125e-06_dp, 4.22757469481121925e-05_dp, 1.22319116365676202e-04_dp, 2.90280105497779098e-04_dp, 6.34352507020876050e-04_dp,&
+ 1.32000166881638282e-03_dp, 2.64665609257590077e-03_dp, 5.14403969909843321e-03_dp, 9.73069986920719991e-03_dp, 1.79705334901513712e-02_dp, 3.24822962283058056e-02_dp,&
+ 5.75852967059411816e-02_dp, 1.00306058599380868e-01_dp, 1.71931950772977377e-01_dp, 2.90388822316800965e-01_dp, 4.83860549183816491e-01_dp, 7.96309975940985959e-01_dp,&
+ 1.29606381803504678e+00_dp, 2.08996987178063476e+00_dp, 3.35017255185728491e+00_dp, 5.37981093058197679e+00_dp, 8.86573240555865993e+00_dp, 1.93042785336726517e-05_dp,&
+ 5.30458699076083204e-05_dp, 1.13860681610436235e-04_dp, 2.36261993628351859e-04_dp, 4.78547024573813535e-04_dp, 9.41102528781277313e-04_dp, 1.79793452155763102e-03_dp,&
+ 3.34577588500104516e-03_dp, 6.08156170905922461e-03_dp, 1.08240927944734319e-02_dp, 1.89029713356079453e-02_dp, 3.24488645598754247e-02_dp, 5.48352209151617767e-02_dp,&
+ 9.13453669492429871e-02_dp, 1.50176191039324863e-01_dp, 2.43956403619624701e-01_dp, 3.92107409822559982e-01_dp, 6.24805750964588902e-01_dp, 9.90794782222321646e-01_dp,&
+ 1.57729255106850563e+00_dp, 2.58091724238665954e+00_dp, 4.73637393673943219e+00_dp]
+ aw%aw_erange_matrix(:, 27) = [4.11577647931065565e-06_dp, 2.41109171591163585e-05_dp, 7.28959878731409684e-05_dp, 1.82705558633408622e-04_dp, 4.21135317613602464e-04_dp,&
+ 9.18895701336235049e-04_dp, 1.92013555113837073e-03_dp, 3.86903859938759207e-03_dp, 7.55495901793930974e-03_dp, 1.43514943327147215e-02_dp, 2.66043538157777967e-02_dp,&
+ 4.82519876889243582e-02_dp, 8.58062586147143591e-02_dp, 1.49884652982802707e-01_dp, 2.57581294617070133e-01_dp, 4.36111432279205069e-01_dp, 7.28412434315531154e-01_dp,&
+ 1.20188826287217632e+00_dp, 1.96280936152550511e+00_dp, 3.18334555122622742e+00_dp, 5.16729407011710684e+00_dp, 8.60177692919055659e+00_dp, 1.08103451888892216e-05_dp,&
+ 3.10771144342180430e-05_dp, 7.16274298056807080e-05_dp, 1.58818698899649766e-04_dp, 3.39017395939608462e-04_dp, 6.95803112746412513e-04_dp, 1.37837010493610415e-03_dp,&
+ 2.64713734273472811e-03_dp, 4.94736636639465065e-03_dp, 9.02660699562345820e-03_dp, 1.61196197861813856e-02_dp, 2.82360865790384878e-02_dp, 4.86035197591654297e-02_dp,&
+ 8.23430936734954044e-02_dp, 1.37495298031682200e-01_dp, 2.26580573866090457e-01_dp, 3.69028426862235914e-01_dp, 5.95227692025933064e-01_dp, 9.54405318751613607e-01_dp,&
+ 1.53446955274810404e+00_dp, 2.53247747978796900e+00_dp, 4.68116716115914766e+00_dp]
+ aw%aw_erange_matrix(:, 28) = [2.93059248958698421e-06_dp, 1.74658802185034416e-05_dp, 5.44583745684866936e-05_dp, 1.41377660096951151e-04_dp, 3.36534398962208472e-04_dp,&
+ 7.54852749661623769e-04_dp, 1.61490243368843443e-03_dp, 3.32054799874063672e-03_dp, 6.59924585107690177e-03_dp, 1.27320754504761414e-02_dp, 2.39302082708908702e-02_dp,&
+ 4.39420719319380260e-02_dp, 7.90196677371394623e-02_dp, 1.39438282335772434e-01_dp, 2.41862130257866903e-01_dp, 4.12999486066383314e-01_dp, 6.95243226386015767e-01_dp,&
+ 1.15549789669796255e+00_dp, 1.89970943889035770e+00_dp, 3.10004174254383846e+00_dp, 5.06063560401212964e+00_dp, 8.46879716288626128e+00_dp, 7.72551686138751593e-06_dp,&
+ 2.29485526199224021e-05_dp, 5.54045251476519742e-05_dp, 1.27743027514059810e-04_dp, 2.80970684003487112e-04_dp, 5.90784411349128818e-04_dp, 1.19440174575451401e-03_dp,&
+ 2.33442466393772412e-03_dp, 4.43040475364441487e-03_dp, 8.19396116517738353e-03_dp, 1.48113872318636000e-02_dp, 2.62296888928512453e-02_dp, 4.55996442864698009e-02_dp,&
+ 7.79556120448624684e-02_dp, 1.31252074888239895e-01_dp, 2.17946128537454792e-01_dp, 3.57462889284247576e-01_dp, 5.80294174541846508e-01_dp, 9.35917506305006919e-01_dp,&
+ 1.51261219411583525e+00_dp, 2.50769258392197258e+00_dp, 4.65293052711519373e+00_dp]
+ aw%aw_erange_matrix(:, 29) = [2.30617418414400491e-06_dp, 1.39420777043108131e-05_dp, 4.45428273019938463e-05_dp, 1.18703172459198118e-04_dp, 2.89149766243032937e-04_dp,&
+ 6.61245134643599955e-04_dp, 1.43788129075881482e-03_dp, 2.99794059227682236e-03_dp, 6.03016118430149163e-03_dp, 1.17572577965464210e-02_dp, 2.23048693646072070e-02_dp,&
+ 4.12997430637738125e-02_dp, 7.48263377765128745e-02_dp, 1.32937840432216126e-01_dp, 2.32017568873716828e-01_dp, 3.98440204051437541e-01_dp, 6.74237452945035676e-01_dp,&
+ 1.12597907163621103e+00_dp, 1.85938903873710504e+00_dp, 3.04661998143597090e+00_dp, 4.99203821681522708e+00_dp, 8.38308565543044537e+00_dp, 6.09799434345543036e-06_dp,&
+ 1.86031294610854214e-05_dp, 4.65026406609495805e-05_dp, 1.10215809968520044e-04_dp, 2.47519551061662203e-04_dp, 5.29229248136807960e-04_dp, 1.08503939977670663e-03_dp,&
+ 2.14625956536696220e-03_dp, 4.11601348431579837e-03_dp, 7.68278225386337735e-03_dp, 1.40014093755201335e-02_dp, 2.49779158617415425e-02_dp, 4.37124829452176303e-02_dp,&
+ 7.51816527951001123e-02_dp, 1.27281803376186359e-01_dp, 2.12425880206672552e-01_dp, 3.50032879386126261e-01_dp, 5.70659285004944894e-01_dp, 9.23946461035048960e-01_dp,&
+ 1.49842149874735231e+00_dp, 2.49157828538030701e+00_dp, 4.63457567934905068e+00_dp]
+ aw%aw_erange_matrix(:, 30) = [1.91673417108346766e-06_dp, 1.17329394155408427e-05_dp, 3.82558718053225527e-05_dp, 1.04102752208523592e-04_dp, 2.58167492293393994e-04_dp,&
+ 5.99208950755224603e-04_dp, 1.31919777523101895e-03_dp, 2.77948005793550099e-03_dp, 5.64143484885461059e-03_dp, 1.10862905776961066e-02_dp, 2.11785606265024878e-02_dp,&
+ 3.94575988228887883e-02_dp, 7.18869622660941177e-02_dp, 1.28358831044982691e-01_dp, 2.25051956635620498e-01_dp, 3.88096902922114961e-01_dp, 6.59259631949477898e-01_dp,&
+ 1.10486180022603597e+00_dp, 1.83046068334501411e+00_dp, 3.00819690941418516e+00_dp, 4.94260149290475415e+00_dp, 8.32122291118276891e+00_dp, 5.08183620378214294e-06_dp,&
+ 1.58611740792196564e-05_dp, 4.07692268035397438e-05_dp, 9.86978499440419532e-05_dp, 2.25198865481160177e-04_dp, 4.87659743499264313e-04_dp, 1.01044451864037857e-03_dp,&
+ 2.01681198765380019e-03_dp, 3.89810708052533254e-03_dp, 7.32613084356623177e-03_dp, 1.34329356605255353e-02_dp, 2.40946839162048780e-02_dp, 4.23744855460415557e-02_dp,&
+ 7.32062368579494555e-02_dp, 1.24443048187603433e-01_dp, 2.08464324797154321e-01_dp, 3.44682957393298239e-01_dp, 5.63701175641321828e-01_dp, 9.15279688026507388e-01_dp,&
+ 1.48812871187359153e+00_dp, 2.47987867707640985e+00_dp, 4.62125107431175497e+00_dp]
+ aw%aw_erange_matrix(:, 31) = [1.64895154539128592e-06_dp, 1.02072794924256046e-05_dp, 3.38721200697524231e-05_dp, 9.37926563723827687e-05_dp, 2.36021601897219344e-04_dp,&
+ 5.54396087801813965e-04_dp, 1.23269227931650425e-03_dp, 2.61902174395846734e-03_dp, 5.35401143155140626e-03_dp, 1.05872805743862670e-02_dp, 2.03365792784754133e-02_dp,&
+ 3.80741487753279012e-02_dp, 6.96703693849783090e-02_dp, 1.24892908078455087e-01_dp, 2.19761770847518162e-01_dp, 3.80217398314288302e-01_dp, 6.47817938432648677e-01_dp,&
+ 1.08869000178272612e+00_dp, 1.80825851778046087e+00_dp, 2.97865254527264423e+00_dp, 4.90453114611245944e+00_dp, 8.27352996176200151e+00_dp, 4.38249705452781130e-06_dp,&
+ 1.39570693499999557e-05_dp, 3.67194437667889460e-05_dp, 9.04326665574478182e-05_dp, 2.08991926420577247e-04_dp, 4.57196086844999120e-04_dp, 9.55358061867149109e-04_dp,&
+ 1.92058951967479397e-03_dp, 3.73520283693082713e-03_dp, 7.05815542147528608e-03_dp, 1.30038803460141780e-02_dp, 2.34253646377022597e-02_dp, 4.13568231121202931e-02_dp,&
+ 7.16987462523292624e-02_dp, 1.22270113321089682e-01_dp, 2.05423489126560666e-01_dp, 3.40566056588523680e-01_dp, 5.58334743885169460e-01_dp, 9.08582871030465422e-01_dp,&
+ 1.48016432544994636e+00_dp, 2.47081889914956276e+00_dp, 4.61093391716888146e+00_dp]
+ aw%aw_erange_matrix(:, 32) = [1.45267137242234143e-06_dp, 9.08473901898180976e-06_dp, 3.06194421232814190e-05_dp, 8.60601847394439973e-05_dp, 2.19244189704205446e-04_dp,&
+ 5.20152574520566825e-04_dp, 1.16610631558480534e-03_dp, 2.49474268811706885e-03_dp, 5.13019808764342191e-03_dp, 1.01968830327122013e-02_dp, 1.96751314298413485e-02_dp,&
+ 3.69833245921940279e-02_dp, 6.79168533834199339e-02_dp, 1.22142900489391221e-01_dp, 2.15553010782744109e-01_dp, 3.73933331954689918e-01_dp, 6.38672818386253449e-01_dp,&
+ 1.07573861955972894e+00_dp, 1.79044663631006951e+00_dp, 2.95491509748028536e+00_dp, 4.87390682634371331e+00_dp, 8.23513085914243881e+00_dp, 3.86950818582524928e-06_dp,&
+ 1.25492735313935511e-05_dp, 3.36812570154890965e-05_dp, 8.41512016483296542e-05_dp, 1.96556699954354561e-04_dp, 4.33646608105545236e-04_dp, 9.12509887585908025e-04_dp,&
+ 1.84534789011500493e-03_dp, 3.60723263852728761e-03_dp, 6.84679241967494235e-03_dp, 1.26642458832250532e-02_dp, 2.28938244986376313e-02_dp, 4.05462799949124764e-02_dp,&
+ 7.04948703003382277e-02_dp, 1.20530599439649236e-01_dp, 2.02983789833098893e-01_dp, 3.37256378604028129e-01_dp, 5.54012851349098612e-01_dp, 9.03181465052904309e-01_dp,&
+ 1.47373337309290209e+00_dp, 2.46349906129618867e+00_dp, 4.60259878286634017e+00_dp]
+ aw%aw_erange_matrix(:, 33) = [1.18277247892696558e-06_dp, 7.53382482588371914e-06_dp, 2.60779342135758097e-05_dp, 7.51224967992965151e-05_dp, 1.95227490959034921e-04_dp,&
+ 4.70636327260251150e-04_dp, 1.06900360456677339e-03_dp, 2.31219715214458750e-03_dp, 4.79941040416772841e-03_dp, 9.61676624548491073e-03_dp, 1.86875564926067758e-02_dp,&
+ 3.53477669019867657e-02_dp, 6.52776944090153743e-02_dp, 1.17989813958694983e-01_dp, 2.09177270981736163e-01_dp, 3.64387140331187465e-01_dp, 6.24745252980397514e-01_dp,&
+ 1.05596959718259154e+00_dp, 1.76320425107576462e+00_dp, 2.91854809430863416e+00_dp, 4.82692443114716951e+00_dp, 8.17616067826534554e+00_dp, 3.16347496014357980e-06_dp,&
+ 1.05923351682571904e-05_dp, 2.93818833567492176e-05_dp, 7.51263108427510873e-05_dp, 1.78491524155511525e-04_dp, 3.99137372795228319e-04_dp, 8.49268614427133983e-04_dp,&
+ 1.73361549881359978e-03_dp, 3.41618966482252866e-03_dp, 6.52978107886599199e-03_dp, 1.21527333444035497e-02_dp, 2.20903099402139230e-02_dp, 3.93168852348080300e-02_dp,&
+ 6.86633087650498353e-02_dp, 1.17876752111420763e-01_dp, 1.99252260617322013e-01_dp, 3.32182555274532387e-01_dp, 5.47373749754756389e-01_dp, 8.94869814973328404e-01_dp,&
+ 1.46382478847394260e+00_dp, 2.45221311683700316e+00_dp, 4.58974844353298117e+00_dp]
+ aw%aw_erange_matrix(:, 34) = [1.08558975265753804e-06_dp, 6.97285376172907351e-06_dp, 2.44187131788034063e-05_dp, 7.10783551714022979e-05_dp, 1.86251757654043172e-04_dp,&
+ 4.51964338749976540e-04_dp, 1.03211326511026759e-03_dp, 2.24240799000784878e-03_dp, 4.67226182859080928e-03_dp, 9.39273150226986077e-03_dp, 1.83045903951385980e-02_dp,&
+ 3.47112002893365107e-02_dp, 6.42471602021468663e-02_dp, 1.16363354044152947e-01_dp, 2.06673731808339645e-01_dp, 3.60629672694155023e-01_dp, 6.19251357685395520e-01_dp,&
+ 1.04815633217125259e+00_dp, 1.75241891111554859e+00_dp, 2.90412934660146105e+00_dp, 4.80827507059037096e+00_dp, 8.15273245915029676e+00_dp, 2.90904199273370447e-06_dp,&
+ 9.88034801454935336e-06_dp, 2.77915178824643994e-05_dp, 7.17425769405372472e-05_dp, 1.71651991907649401e-04_dp, 3.85972311497142693e-04_dp, 8.24990713833095119e-04_dp,&
+ 1.69049331602863983e-03_dp, 3.34211810029706735e-03_dp, 6.40637181413836274e-03_dp, 1.19528930710990269e-02_dp, 2.17753820228709649e-02_dp, 3.88336452846907987e-02_dp,&
+ 6.79414859800191867e-02_dp, 1.16828366220876056e-01_dp, 1.97774934638904970e-01_dp, 3.30169852509938300e-01_dp, 5.44735529705501431e-01_dp, 8.91562114870858569e-01_dp,&
+ 1.45987724968194699e+00_dp, 2.44771417531497759e+00_dp, 4.58462621781103863e+00_dp]
+ aw%aw_erange_matrix(:, 35) = [6.22443128153836243e-07_dp, 4.27249258996541033e-06_dp, 1.62529434981895659e-05_dp, 5.06723551372187647e-05_dp, 1.39970205298834170e-04_dp,&
+ 3.53952707704476986e-04_dp, 8.35587239036498326e-04_dp, 1.86596152975692232e-03_dp, 3.97906594391459704e-03_dp, 8.15997287551761645e-03_dp, 1.61801165734150668e-02_dp,&
+ 3.11543738785128727e-02_dp, 5.84518687707416690e-02_dp, 1.07163785865984809e-01_dp, 1.92439133160937026e-01_dp, 3.39164408599788414e-01_dp, 5.87732340746192183e-01_dp,&
+ 1.00315928195193260e+00_dp, 1.69009616012076735e+00_dp, 2.82057188884279064e+00_dp, 4.69995107106125420e+00_dp, 8.01641724611723205e+00_dp, 1.69447527098163592e-06_dp,&
+ 6.40758836525944905e-06_dp, 1.97579702891286563e-05_dp, 5.41860854219365049e-05_dp, 1.35475897817959490e-04_dp, 3.15281723642006119e-04_dp, 6.92999412035867472e-04_dp,&
+ 1.45356824534664895e-03_dp, 2.93142672355146397e-03_dp, 5.71664630206478001e-03_dp, 1.08280772977361450e-02_dp, 1.99915467045142618e-02_dp, 3.60808077689588336e-02_dp,&
+ 6.38082290950276743e-02_dp, 1.10796842461126116e-01_dp, 1.89239110538469507e-01_dp, 3.18495400746003077e-01_dp, 5.29379993990211850e-01_dp, 8.72253926728072893e-01_dp,&
+ 1.43678397212003950e+00_dp, 2.42136411381618455e+00_dp, 4.55462934975407041e+00_dp]
+ aw%aw_erange_matrix(:, 36) = [4.53256279959429321e-07_dp, 3.26878734999866000e-06_dp, 1.31027952196471195e-05_dp, 4.24920984671517627e-05_dp, 1.20820935182527079e-04_dp,&
+ 3.12359866245833266e-04_dp, 7.50452140340149851e-04_dp, 1.70006788803432618e-03_dp, 3.66912131859901351e-03_dp, 7.60185017767122523e-03_dp, 1.52077471182174816e-02_dp,&
+ 2.95107269951396245e-02_dp, 5.57508778139598829e-02_dp, 1.02843352284423747e-01_dp, 1.85708083820780356e-01_dp, 3.28951310972175948e-01_dp, 5.72652040159266185e-01_dp,&
+ 9.81523069005708071e-01_dp, 1.65999785504769770e+00_dp, 2.78006816972400372e+00_dp, 4.64728478552088919e+00_dp, 7.94999503748127889e+00_dp, 1.24971764372527093e-06_dp,&
+ 5.08693360054884036e-06_dp, 1.65312955368420163e-05_dp, 4.68598876288360330e-05_dp, 1.19967770120401381e-04_dp, 2.84338124589194133e-04_dp, 6.34229301738489055e-04_dp,&
+ 1.34655468330935183e-03_dp, 2.74363821848860141e-03_dp, 5.39788780956410898e-03_dp, 1.03033356187560935e-02_dp, 1.91523824205403828e-02_dp, 3.47760576778694888e-02_dp,&
+ 6.18359029296285598e-02_dp, 1.07900957575593051e-01_dp, 1.85117905918771225e-01_dp, 3.12830321739075157e-01_dp, 5.21895291602346822e-01_dp, 8.62807124565198813e-01_dp,&
+ 1.42545339596598897e+00_dp, 2.40841578774241505e+00_dp, 4.53989122605335726e+00_dp]
+ aw%aw_erange_matrix(:, 37) = [3.63740571041784989e-07_dp, 2.73125761452274828e-06_dp, 1.13733685754730894e-05_dp, 3.78950548332579519e-05_dp, 1.09860031801165795e-04_dp,&
+ 2.88206840734960544e-04_dp, 7.00437661465795267e-04_dp, 1.60167354427463173e-03_dp, 3.48380066085383650e-03_dp, 7.26582778105013850e-03_dp, 1.46188014738536480e-02_dp,&
+ 2.85099408863252156e-02_dp, 5.40985925072002410e-02_dp, 1.00189350362776639e-01_dp, 1.81557748909266986e-01_dp, 3.22632697144117742e-01_dp, 5.63293870386273099e-01_dp,&
+ 9.68060181105636075e-01_dp, 1.64122492626440830e+00_dp, 2.75475404530085344e+00_dp, 4.61431574676766854e+00_dp, 7.90836486312216547e+00_dp, 1.01409632024120888e-06_dp,&
+ 4.36831411403733670e-06_dp, 1.47156694458407933e-05_dp, 4.26471698655039871e-05_dp, 1.10913726307929666e-04_dp, 2.66058980170149045e-04_dp, 5.99179766226317343e-04_dp,&
+ 1.28222314284284615e-03_dp, 2.62997912749839136e-03_dp, 5.20382011759427769e-03_dp, 9.98220585354878814e-03_dp, 1.86364744122212017e-02_dp, 3.39706152505146533e-02_dp,&
+ 6.06138426345598294e-02_dp, 1.06100631413093172e-01_dp, 1.82548009071161421e-01_dp, 3.09287976144302701e-01_dp, 5.17203741948951023e-01_dp, 8.56873541617053647e-01_dp,&
+ 1.41832565744026207e+00_dp, 2.40026352880592597e+00_dp, 4.53061282785091457e+00_dp]
+ aw%aw_erange_matrix(:, 38) = [2.19404256848981043e-07_dp, 1.84893021480692055e-06_dp, 8.43625704482602870e-06_dp, 2.98539805089761292e-05_dp, 9.02519223531514164e-05_dp,&
+ 2.44242657282476964e-04_dp, 6.08129647216171612e-04_dp, 1.41799756751927273e-03_dp, 3.13453794163316875e-03_dp, 6.62735814303910126e-03_dp, 1.34918126483430569e-02_dp,&
+ 2.65829458200730478e-02_dp, 5.08996208966378191e-02_dp, 9.50257265065573287e-02_dp, 1.73447302844207202e-01_dp, 3.10236178966879494e-01_dp, 5.44868696002544395e-01_dp,&
+ 9.41469060432773341e-01_dp, 1.60404226603196398e+00_dp, 2.70449668138230370e+00_dp, 4.54873608362962933e+00_dp, 7.82544076598920668e+00_dp, 6.33674353720899892e-07_dp,&
+ 3.16142029665097347e-06_dp, 1.15345020495897742e-05_dp, 3.50716751174244654e-05_dp, 9.43328038257060746e-05_dp, 2.32109865626505300e-04_dp, 5.33339583218342948e-04_dp,&
+ 1.16022830478211113e-03_dp, 2.41270135549469158e-03_dp, 4.83023949766437938e-03_dp, 9.36025275674355617e-03_dp, 1.76318741011527759e-02_dp, 3.23946358386633729e-02_dp,&
+ 5.82122731713006977e-02_dp, 1.02548721779660013e-01_dp, 1.77459667457144227e-01_dp, 3.02251570077447795e-01_dp, 5.07857954639636011e-01_dp, 8.45025080919816096e-01_dp,&
+ 1.40406690406700996e+00_dp, 2.38393910989210678e+00_dp, 4.51203496554961259e+00_dp]
+ aw%aw_erange_matrix(:, 39) = [1.88351987687530526e-07_dp, 1.65516314143432405e-06_dp, 7.76785348869954718e-06_dp, 2.79714222719367443e-05_dp, 8.55649156628721677e-05_dp,&
+ 2.33566931271817656e-04_dp, 5.85434841966541754e-04_dp, 1.37238105469931603e-03_dp, 3.04706477699641810e-03_dp, 6.46630606172341350e-03_dp, 1.32057750849448336e-02_dp,&
+ 2.60912206996127931e-02_dp, 5.00794300971465628e-02_dp, 9.36962113326961776e-02_dp, 1.71351144739202293e-01_dp, 3.07021398554227165e-01_dp, 5.40075954336806552e-01_dp,&
+ 9.34533420128018766e-01_dp, 1.59432099391613225e+00_dp, 2.69133052375000670e+00_dp, 4.53152801808002970e+00_dp, 7.80365554201054845e+00_dp, 5.51739955394908927e-07_dp,&
+ 2.88965349261451595e-06_dp, 1.07885628952105954e-05_dp, 3.32527414287060681e-05_dp, 9.02854705937388568e-05_dp, 2.23718084617662434e-04_dp, 5.16899809855151391e-04_dp,&
+ 1.12951230425542559e-03_dp, 2.35760844161404847e-03_dp, 4.73493932271073885e-03_dp, 9.20075307202328566e-03_dp, 1.73730417593908858e-02_dp, 3.19869002325735771e-02_dp,&
+ 5.75886203437633443e-02_dp, 1.01623229464899281e-01_dp, 1.76129789220076022e-01_dp, 3.00407486887453057e-01_dp, 5.05402669684611339e-01_dp, 8.41905915259029580e-01_dp,&
+ 1.40030742906647565e+00_dp, 2.37963135568394124e+00_dp, 4.50713289901048153e+00_dp]
+ aw%aw_erange_matrix(:, 40) = [1.23463765871970068e-07_dp, 1.24227014851891724e-06_dp, 6.30099821315938331e-06_dp, 2.37495954184466969e-05_dp, 7.48900605176096643e-05_dp,&
+ 2.08968957693649965e-04_dp, 5.32666280583382590e-04_dp, 1.26553213999849889e-03_dp, 2.84091478504491443e-03_dp, 6.08477333004282805e-03_dp, 1.25251097567092018e-02_dp,&
+ 2.49165105968512969e-02_dp, 4.81132640892589572e-02_dp, 9.04993115648662916e-02_dp, 1.66296983651955499e-01_dp, 2.99251001169452469e-01_dp, 5.28465936613628950e-01_dp,&
+ 9.17699371327465596e-01_dp, 1.57068501829206730e+00_dp, 2.65927189410928433e+00_dp, 4.48957841416491110e+00_dp, 7.75050185857576590e+00_dp, 3.80362342875479197e-07_dp,&
+ 2.29776591986583113e-06_dp, 9.11381832026984379e-06_dp, 2.90972858209795715e-05_dp, 8.09262360808636432e-05_dp, 2.04132278747352609e-04_dp, 4.78246163371334081e-04_dp,&
+ 1.05685121252171066e-03_dp, 2.22661125745068867e-03_dp, 4.50733829706144711e-03_dp, 8.81836131340562289e-03_dp, 1.67503996067354943e-02_dp, 3.10030960016899580e-02_dp,&
+ 5.60797619815002549e-02_dp, 9.93786263009129034e-02_dp, 1.72897283618897418e-01_dp, 2.95916166307739981e-01_dp, 4.99412180283538731e-01_dp, 8.34284318373271327e-01_dp,&
+ 1.39111094836104243e+00_dp, 2.36908715257658553e+00_dp, 4.49513452427299054e+00_dp]
+ aw%aw_erange_matrix(:, 41) = [1.02979676562400021e-07_dp, 1.10854968898761468e-06_dp, 5.80971202290333547e-06_dp, 2.23025644309457052e-05_dp, 7.11719810020676382e-05_dp,&
+ 2.00298943958802087e-04_dp, 5.13894394260241950e-04_dp, 1.22723782279953353e-03_dp, 2.76657497214461779e-03_dp, 5.94647117621023135e-03_dp, 1.22772700541065420e-02_dp,&
+ 2.44871162678800998e-02_dp, 4.73921055980099926e-02_dp, 8.93231782165937738e-02_dp, 1.64432528157402086e-01_dp, 2.96377581020370262e-01_dp, 5.24163324919575291e-01_dp,&
+ 9.11448679670500250e-01_dp, 1.56189379176514986e+00_dp, 2.64733075596364120e+00_dp, 4.47393507086348041e+00_dp, 7.73066360217537518e+00_dp, 3.26171811190760098e-07_dp,&
+ 2.10104899061767922e-06_dp, 8.53914972141398519e-06_dp, 2.76455700276699606e-05_dp, 7.76156655549408933e-05_dp, 1.97138891792050330e-04_dp, 4.64340969794496488e-04_dp,&
+ 1.03055189846285229e-03_dp, 2.17895340158323885e-03_dp, 4.42417057412375098e-03_dp, 8.67809718203898725e-03_dp, 1.65212418851616687e-02_dp, 3.06399342642522041e-02_dp,&
+ 5.55212911142715648e-02_dp, 9.85458312366256639e-02_dp, 1.71695339933153363e-01_dp, 2.94242876376668128e-01_dp, 4.97176480282642719e-01_dp, 8.31435706595659907e-01_dp,&
+ 1.38766992546048185e+00_dp, 2.36513945874929021e+00_dp, 4.49064259579510860e+00_dp]
+ case(24)
+ aw%energy_range(:) = [700.0_dp, 8.00e+02_dp, 9.00e+02_dp, 1.00e+03_dp, 2.00e+03_dp, 3.00e+03_dp,&
+ 4.00e+03_dp, 5.00e+03_dp, 6.00e+03_dp, 7.00e+03_dp, 8.00e+03_dp, 9.00e+03_dp, 1.00e+04_dp, 2.00e+04_dp,&
+ 3.00e+04_dp, 4.00e+04_dp, 5.00e+04_dp, 6.00e+04_dp, 7.00e+04_dp, 8.00e+04_dp, 9.00e+04_dp, 1.00e+05_dp,&
+ 2.00e+05_dp, 3.00e+05_dp, 4.00e+05_dp, 5.00e+05_dp, 6.00e+05_dp, 7.00e+05_dp, 9.00e+05_dp, 1.00e+06_dp,&
+ 2.00e+06_dp, 3.00e+06_dp, 4.00e+06_dp, 8.00e+06_dp, 2.00e+07_dp, 3.00e+07_dp, 4.00e+07_dp, 5.00e+07_dp,&
+ 6.00e+07_dp, 7.00e+07_dp]
+ aw%aw_erange_matrix(:, 1) = [4.61317700479576837e-04_dp, 2.46443268044606398e-03_dp, 6.21345008294119528e-03_dp, 1.19897132374405420e-02_dp, 2.02739670923447989e-02_dp,&
+ 3.18377099027178576e-02_dp, 4.78641607352428139e-02_dp, 7.00932512854925693e-02_dp, 1.00995744524275372e-01_dp, 1.44001017114561369e-01_dp, 2.03812472187446275e-01_dp,&
+ 2.86844291102829552e-01_dp, 4.01816272151374665e-01_dp, 5.60555452265255383e-01_dp, 7.79074123523174955e-01_dp, 1.07902724507158587e+00_dp, 1.48971094898826495e+00_dp,&
+ 2.05088065362743333e+00_dp, 2.81692631784065739e+00_dp, 3.86357451267436502e+00_dp, 5.29999983565710409e+00_dp, 7.29459539669274015e+00_dp, 1.01439426048849182e+01_dp,&
+ 1.45461238319090658e+01_dp, 1.18767724263906926e-03_dp, 2.84226242662972452e-03_dp, 4.70164567550286974e-03_dp, 6.92948268053140016e-03_dp, 9.76556987556314801e-03_dp,&
+ 1.35567096474764615e-02_dp, 1.87833434726818599e-02_dp, 2.60829208461077489e-02_dp, 3.62884493956485005e-02_dp, 5.04988006632740294e-02_dp, 7.01833384580881903e-02_dp,&
+ 9.73204001278768216e-02_dp, 1.34577004251765914e-01_dp, 1.85546146090968617e-01_dp, 2.55067662909368387e-01_dp, 3.49675457527506173e-01_dp, 4.78250711655921312e-01_dp,&
+ 6.53047794479161281e-01_dp, 8.91478429703930542e-01_dp, 1.21963437813600217e+00_dp, 1.68034347718683685e+00_dp, 2.35520511567018120e+00_dp, 3.44298876450068247e+00_dp,&
+ 5.72565205661532151e+00_dp]
+ aw%aw_erange_matrix(:, 2) = [4.11980014757813294e-04_dp, 2.20218766663119207e-03_dp, 5.55862987655223253e-03_dp, 1.07453858648086705e-02_dp, 1.82164123493948234e-02_dp,&
+ 2.87041419880564239e-02_dp, 4.33359895250264304e-02_dp, 6.37736777702597457e-02_dp, 9.23826170114171730e-02_dp, 1.32457260670822530e-01_dp, 1.88535709332668000e-01_dp,&
+ 2.66836289436336582e-01_dp, 3.75853089494852632e-01_dp, 5.27160408446637252e-01_dp, 7.36497424890991237e-01_dp, 1.02523787513350029e+00_dp, 1.42240794982540342e+00_dp,&
+ 1.96753139965474189e+00_dp, 2.71483737564820293e+00_dp, 3.73999376922786686e+00_dp, 5.15223275732461516e+00_dp, 7.12008431709909395e+00_dp, 9.94016617156099969e+00_dp,&
+ 1.43097188153594352e+01_dp, 1.06080168802775662e-03_dp, 2.54170514486310849e-03_dp, 4.21420577207505098e-03_dp, 6.23348669844608384e-03_dp, 8.82867531556557998e-03_dp,&
+ 1.23323780583169552e-02_dp, 1.72055167230363085e-02_dp, 2.40604218131138421e-02_dp, 3.37013637092306306e-02_dp, 4.71970817466301068e-02_dp, 6.59863937004311618e-02_dp,&
+ 9.20172060027153044e-02_dp, 1.27927606892525386e-01_dp, 1.77286101655570294e-01_dp, 2.44917205757472778e-01_dp, 3.37355128111671732e-01_dp, 4.63504613240878216e-01_dp,&
+ 6.35674025908022466e-01_dp, 8.71362734772751835e-01_dp, 1.19677651746772584e+00_dp, 1.65485388494679975e+00_dp, 2.32722153133878740e+00_dp, 3.41234946707974229e+00_dp,&
+ 5.69022770301579861e+00_dp]
+ aw%aw_erange_matrix(:, 3) = [3.72806520431575163e-04_dp, 1.99388436321399796e-03_dp, 5.03811424246158705e-03_dp, 9.75517179974083257e-03_dp, 1.65765442512157170e-02_dp,&
+ 2.62016561693737791e-02_dp, 3.97104181416016513e-02_dp, 5.86977067051166548e-02_dp, 8.54388560953810161e-02_dp, 1.23112995790628954e-01_dp, 1.76116725194692542e-01_dp,&
+ 2.50500112554284782e-01_dp, 3.54562363691661109e-01_dp, 4.99658274778876366e-01_dp, 7.01288277111772440e-01_dp, 9.80578466724679298e-01_dp, 1.36631525250825869e+00_dp,&
+ 1.89781419909175453e+00_dp, 2.62915704460106348e+00_dp, 3.63595379763080739e+00_dp, 5.02748284753467001e+00_dp, 6.97239513779703390e+00_dp, 9.76735138988749441e+00_dp,&
+ 1.41088911813171514e+01_dp, 9.60054683003752954e-04_dp, 2.30285140794512459e-03_dp, 3.82626089893532912e-03_dp, 5.67832873667764668e-03_dp, 8.07909101155888758e-03_dp,&
+ 1.13488960778253562e-02_dp, 1.59317538928749752e-02_dp, 2.24184032766560244e-02_dp, 3.15885952094700703e-02_dp, 4.44852695692428135e-02_dp, 6.25207250741233039e-02_dp,&
+ 8.76159789193741573e-02_dp, 1.22383066659518827e-01_dp, 1.70367866048186239e-01_dp, 2.36379862462686358e-01_dp, 3.26951588065993282e-01_dp, 4.51006378864590440e-01_dp,&
+ 6.20898175320340973e-01_dp, 8.54202371646161751e-01_dp, 1.17722564617834635e+00_dp, 1.63300707797638411e+00_dp, 2.30320448441095449e+00_dp, 3.38603970674368115e+00_dp,&
+ 5.65982601526982343e+00_dp]
+ aw%aw_erange_matrix(:, 4) = [3.40894989658156158e-04_dp, 1.82413360015617294e-03_dp, 4.61364657059914075e-03_dp, 8.94685377476417409e-03_dp, 1.52360305182347028e-02_dp,&
+ 2.41521932880958377e-02_dp, 3.67341083233717822e-02_dp, 5.45185761920902526e-02_dp, 7.97026688006645112e-02_dp, 1.15365325762695883e-01_dp, 1.65780012083858674e-01_dp,&
+ 2.36849876892240685e-01_dp, 3.36703186808777699e-01_dp, 4.76501207076854616e-01_dp, 6.71532675088139408e-01_dp, 9.42702715780466827e-01_dp, 1.31858217642094422e+00_dp,&
+ 1.83829760971432665e+00_dp, 2.55579468298687518e+00_dp, 3.54662686975614116e+00_dp, 4.92011019612566258e+00_dp, 6.84500370663874502e+00_dp, 9.61801465982363268e+00_dp,&
+ 1.39350872540719504e+01_dp, 8.77977092803098593e-04_dp, 2.10811603342637727e-03_dp, 3.50954342145100209e-03_dp, 5.22417896258082007e-03_dp, 7.46417514899641848e-03_dp,&
+ 1.05391312290683773e-02_dp, 1.48782012757832979e-02_dp, 2.10532969348070191e-02_dp, 2.98229050916155036e-02_dp, 4.22074870861415263e-02_dp, 5.95959414534450033e-02_dp,&
+ 8.38852069850493515e-02_dp, 1.17663630726851889e-01_dp, 1.64456093340965559e-01_dp, 2.29057495231711011e-01_dp, 3.17997376089129424e-01_dp, 4.40213987897014047e-01_dp,&
+ 6.08100391202702206e-01_dp, 8.39298888882065830e-01_dp, 1.16020653656844219e+00_dp, 1.61395451350079222e+00_dp, 2.28223380167740286e+00_dp, 3.36305647785424844e+00_dp,&
+ 5.63328102292555677e+00_dp]
+ aw%aw_erange_matrix(:, 5) = [1.88795805568305188e-04_dp, 1.01400115142319413e-03_dp, 2.58300392260153115e-03_dp, 5.06584363608998407e-03_dp, 8.76730367286805874e-03_dp,&
+ 1.41958066456900449e-02_dp, 2.21500852814415922e-02_dp, 3.38258175595678862e-02_dp, 5.09607130548969528e-02_dp, 7.60446026209399273e-02_dp, 1.12620940361637653e-01_dp,&
+ 1.65710194214140877e-01_dp, 2.42397023416488389e-01_dp, 3.52640217042394732e-01_dp, 5.10388023217978382e-01_dp, 7.35116678054602901e-01_dp, 1.05396843833842668e+00_dp,&
+ 1.50477651092529774e+00_dp, 2.14050598056043739e+00_dp, 3.03623428950970142e+00_dp, 4.30143635337295560e+00_dp, 6.10556518287263117e+00_dp, 8.74579010501390641e+00_dp,&
+ 1.29148008998208805e+01_dp, 4.86654817252449518e-04_dp, 1.17725533742895250e-03_dp, 1.98830281754513094e-03_dp, 3.02701082824698847e-03_dp, 4.45920039261790517e-03_dp,&
+ 6.52920049323299067e-03_dp, 9.57628576953010319e-03_dp, 1.40613554274847882e-02_dp, 2.06184517578951940e-02_dp, 3.01329443607712862e-02_dp, 4.38468275407232905e-02_dp,&
+ 6.34991502937741203e-02_dp, 9.15159897521184845e-02_dp, 1.31269865123574248e-01_dp, 1.87436793299735255e-01_dp, 2.66494955363848318e-01_dp, 3.77442432795629668e-01_dp,&
+ 5.32890432269656378e-01_dp, 7.50891768492044198e-01_dp, 1.05843323548548329e+00_dp, 1.49929102855462681e+00_dp, 2.15548436751696793e+00_dp, 3.22390716218214379e+00_dp,&
+ 5.47281923289078875e+00_dp]
+ aw%aw_erange_matrix(:, 6) = [1.33427979879733433e-04_dp, 7.18433254841546395e-04_dp, 1.83906927024921757e-03_dp, 3.63506515744753747e-03_dp, 6.36149785981150306e-03_dp,&
+ 1.04491270264946770e-02_dp, 1.65795527241529989e-02_dp, 2.57813106025258330e-02_dp, 3.95671230072276656e-02_dp, 6.01362603417052582e-02_dp, 9.06664868182099210e-02_dp,&
+ 1.35726987616870548e-01_dp, 2.01856747454321001e-01_dp, 2.98370867095851700e-01_dp, 4.38482092638891707e-01_dp, 6.40861383013148767e-01_dp, 9.31820828562283765e-01_dp,&
+ 1.34841254883383077e+00_dp, 1.94297380038203182e+00_dp, 2.79022945855977467e+00_dp, 3.99967675626622343e+00_dp, 5.74114862457286090e+00_dp, 8.31217874731993867e+00_dp,&
+ 1.24040095890847244e+01_dp, 3.44130368286081915e-04_dp, 8.36706427768368899e-04_dp, 1.42714852826577037e-03_dp, 2.20633507238329448e-03_dp, 3.31708266638522549e-03_dp,&
+ 4.97022951206217267e-03_dp, 7.45981483004476333e-03_dp, 1.11925033131611302e-02_dp, 1.67408732612223804e-02_dp, 2.49202508268891523e-02_dp, 3.68922396160049557e-02_dp,&
+ 5.43053576506714181e-02_dp, 7.94882733701729322e-02_dp, 1.15716499858170993e-01_dp, 1.67582052787808633e-01_dp, 2.41511378984097774e-01_dp, 3.46509438124794511e-01_dp,&
+ 4.95283964065632909e-01_dp, 7.06101175609208598e-01_dp, 1.00628208022072796e+00_dp, 1.44000076131204913e+00_dp, 2.08954179767392523e+00_dp, 3.15133029335533754e+00_dp,&
+ 5.38929409080123012e+00_dp]
+ aw%aw_erange_matrix(:, 7) = [1.04250475968719529e-04_dp, 5.62434846586883390e-04_dp, 1.44529215232509214e-03_dp, 2.87438545558675335e-03_dp, 5.07444496778178353e-03_dp,&
+ 8.42791403765329357e-03_dp, 1.35428891589042914e-02_dp, 2.13430157659925332e-02_dp, 3.31995961636812609e-02_dp, 5.11278905675659201e-02_dp, 7.80713885758039378e-02_dp,&
+ 1.18306355073952013e-01_dp, 1.78012762503832633e-01_dp, 2.66076339391266126e-01_dp, 3.95212155199796689e-01_dp, 5.83537857385897696e-01_dp, 8.56785151592705407e-01_dp,&
+ 1.25144833027563851e+00_dp, 1.81940222905018301e+00_dp, 2.63509388185717119e+00_dp, 3.80800630789495509e+00_dp, 5.50822584360313794e+00_dp, 8.03357315982872500e+00_dp,&
+ 1.20744336863641823e+01_dp, 2.68996632674163355e-04_dp, 6.56625167389525942e-04_dp, 1.12870041866375997e-03_dp, 1.76601824232699143e-03_dp, 2.69672945425687835e-03_dp,&
+ 4.11011475066255620e-03_dp, 6.27162578892574273e-03_dp, 9.55395941180009305e-03_dp, 1.44904153087516245e-02_dp, 2.18501207381241840e-02_dp, 3.27402220142435363e-02_dp,&
+ 4.87465497783093477e-02_dp, 7.21287903700857935e-02_dp, 1.06091753018451918e-01_dp, 1.55163298946024042e-01_dp, 2.25725405889390468e-01_dp, 3.26776910843770640e-01_dp,&
+ 4.71080795343457037e-01_dp, 6.77041874442256497e-01_dp, 9.72210621290131027e-01_dp, 1.40104765578737966e+00_dp, 2.04605142372271365e+00_dp, 3.10338539062153806e+00_dp,&
+ 5.33417799388986769e+00_dp]
+ aw%aw_erange_matrix(:, 8) = [8.60702692156677649e-05_dp, 4.65114939959932621e-04_dp, 1.19907141731334676e-03_dp, 2.39707428680903433e-03_dp, 4.26279719994325425e-03_dp,&
+ 7.14473113931465495e-03_dp, 1.15991031196004540e-02_dp, 1.84755620863822669e-02_dp, 2.90453917178807412e-02_dp, 4.51928342290498289e-02_dp, 6.96930782895108097e-02_dp,&
+ 1.06609942703662974e-01_dp, 1.61860507551532584e-01_dp, 2.44013029323841529e-01_dp, 3.65410912297271961e-01_dp, 5.43754167744837758e-01_dp, 8.04331171810440226e-01_dp,&
+ 1.18320390842443945e+00_dp, 1.73188145034004104e+00_dp, 2.52458166839406806e+00_dp, 3.67076033844195226e+00_dp, 5.34069001995255821e+00_dp, 7.83242599609456835e+00_dp,&
+ 1.18357747699633205e+01_dp, 2.22168392942659196e-04_dp, 5.44112340898784920e-04_dp, 9.41381930808274890e-04_dp, 1.48771980108678759e-03_dp, 2.30078547368130389e-03_dp,&
+ 3.55441144055798327e-03_dp, 5.49385058844628626e-03_dp, 8.46781237274265262e-03_dp, 1.29813311762030457e-02_dp, 1.97695679484370945e-02_dp, 2.98989679463123291e-02_dp,&
+ 4.49078586761989459e-02_dp, 6.70028857513928350e-02_dp, 9.93334764617979371e-02_dp, 1.46375777052357187e-01_dp, 2.14473541561244596e-01_dp, 3.12615211071711419e-01_dp,&
+ 4.53599442273293074e-01_dp, 6.55931125535817783e-01_dp, 9.47333528911167511e-01_dp, 1.37249031352070938e+00_dp, 2.01407793455765693e+00_dp, 3.06809337921977532e+00_dp,&
+ 5.29363780354398639e+00_dp]
+ aw%aw_erange_matrix(:, 9) = [7.35869645249009983e-05_dp, 3.98222439617148128e-04_dp, 1.02950700202266679e-03_dp, 2.06738844202907076e-03_dp, 3.69979762146187881e-03_dp,&
+ 6.24960775740759315e-03_dp, 1.02338223116612819e-02_dp, 1.64461400978437935e-02_dp, 2.60820040112540938e-02_dp, 4.09257216998439588e-02_dp, 6.36231823837244415e-02_dp,&
+ 9.80737721947836233e-02_dp, 1.49989582730209625e-01_dp, 2.27689481649009401e-01_dp, 3.43222681429479259e-01_dp, 5.13955927425115533e-01_dp, 7.64820623024491164e-01_dp,&
+ 1.13152686170774897e+00_dp, 1.66528148450246660e+00_dp, 2.44010733200013785e+00_dp, 3.56542795473851504e+00_dp, 5.21166099607335731e+00_dp, 7.67705939750003274e+00_dp,&
+ 1.16510073290945790e+01_dp, 1.90006553496260215e-04_dp, 4.66679698561009014e-04_dp, 8.11972748891158828e-04_dp, 1.29432004627338948e-03_dp, 2.02335419246756076e-03_dp,&
+ 3.16110715631146965e-03_dp, 4.93756480024014170e-03_dp, 7.68324601351366970e-03_dp, 1.18813996660679481e-02_dp, 1.82405979747101814e-02_dp, 2.77950589275952030e-02_dp,&
+ 4.20451221695035682e-02_dp, 6.31545619227385918e-02_dp, 9.42274356570295957e-02_dp, 1.39696660640596132e-01_dp, 2.05872670840081984e-01_dp, 3.01732069454644758e-01_dp,&
+ 4.40098225879962446e-01_dp, 6.39552987516172733e-01_dp, 9.27957121150538633e-01_dp, 1.35017632361663553e+00_dp, 1.98903921323124511e+00_dp, 3.04042851829495486e+00_dp,&
+ 5.26187676953501082e+00_dp]
+ aw%aw_erange_matrix(:, 10) = [6.44514573999347920e-05_dp, 3.49225738643587041e-04_dp, 9.05098491367132977e-04_dp, 1.82487183604718010e-03_dp, 3.28411412095126363e-03_dp,&
+ 5.58544158928153938e-03_dp, 9.21480458048908220e-03_dp, 1.49216002458564274e-02_dp, 2.38410458106975941e-02_dp, 3.76776768918578378e-02_dp, 5.89735493136651773e-02_dp,&
+ 9.14951983715417694e-02_dp, 1.40788103345794030e-01_dp, 2.14967214972540538e-01_dp, 3.25839716358234444e-01_dp, 4.90496392665096093e-01_dp, 7.33570921668526221e-01_dp,&
+ 1.09047737920517407e+00_dp, 1.61216535544398987e+00_dp, 2.37248792813998666e+00_dp, 3.48083475126634134e+00_dp, 5.10774102813810416e+00_dp, 7.55163007644648143e+00_dp,&
+ 1.15015619316919242e+01_dp, 1.66465131597940633e-04_dp, 4.09900723438320251e-04_dp, 7.16764476367776548e-04_dp, 1.15129869659960074e-03_dp, 1.81671653497322556e-03_dp,&
+ 2.86564216197924930e-03_dp, 4.51598565603269098e-03_dp, 7.08380410476581145e-03_dp, 1.10347859186615826e-02_dp, 1.70558170237268512e-02_dp, 2.61546028825580430e-02_dp,&
+ 3.97999906179644716e-02_dp, 6.01199150029828877e-02_dp, 9.01801073240176276e-02_dp, 1.34376404462795612e-01_dp, 1.98989782083773575e-01_dp, 2.92984668785511437e-01_dp,&
+ 4.29202352242147200e-01_dp, 6.26286398050400872e-01_dp, 9.12211091526156537e-01_dp, 1.33199552795959963e+00_dp, 1.96860108029619463e+00_dp, 3.01782812607916640e+00_dp,&
+ 5.23594152400877633e+00_dp]
+ aw%aw_erange_matrix(:, 11) = [5.74573911142637605e-05_dp, 3.11684623020712826e-04_dp, 8.09635130832271513e-04_dp, 1.63834818633580115e-03_dp, 2.96333997615317278e-03_dp,&
+ 5.07066619532897059e-03_dp, 8.42087391253820358e-03_dp, 1.37271063464835565e-02_dp, 2.20751546004689554e-02_dp, 3.51037841908612078e-02_dp, 5.52690030169233279e-02_dp,&
+ 8.62266873666506506e-02_dp, 1.33382837623802902e-01_dp, 2.04680840684917709e-01_dp, 3.11723207399472901e-01_dp, 4.71366094888306608e-01_dp, 7.07988534202323549e-01_dp,&
+ 1.05674961893049946e+00_dp, 1.56837521684017522e+00_dp, 2.31656811658794703e+00_dp, 3.41068391151613692e+00_dp, 5.02135579453298764e+00_dp, 7.44715654865751109e+00_dp,&
+ 1.13768882928525468e+01_dp, 1.48438750838859814e-04_dp, 3.66354657591505713e-04_dp, 6.43528711138076251e-04_dp, 1.04077773951916867e-03_dp, 1.65601701224966317e-03_dp,&
+ 2.63413631151620305e-03_dp, 4.18317594997089440e-03_dp, 6.60730297325672587e-03_dp, 1.03575971916804524e-02_dp, 1.61027348493536226e-02_dp, 2.48280067198096421e-02_dp,&
+ 3.79754683209380384e-02_dp, 5.76423555260552750e-02_dp, 8.68612913875122794e-02_dp, 1.29995688217542371e-01_dp, 1.93300157685571572e-01_dp, 2.85727088968599663e-01_dp,&
+ 4.20131176055101696e-01_dp, 6.15206996762805436e-01_dp, 8.99025069289258183e-01_dp, 1.31673677564042046e+00_dp, 1.95142115546416606e+00_dp, 2.99881719873486530e+00_dp,&
+ 5.21413327144736982e+00_dp]
+ aw%aw_erange_matrix(:, 12) = [5.19194844599093182e-05_dp, 2.81938310272364628e-04_dp, 7.33891254313736381e-04_dp, 1.49004253136384920e-03_dp, 2.70751936584285148e-03_dp,&
+ 4.65849717247361281e-03_dp, 7.78222394784469640e-03_dp, 1.27614307050279169e-02_dp, 2.06403321636805109e-02_dp, 3.30021402713332468e-02_dp, 5.22298565539675783e-02_dp,&
+ 8.18850557283881259e-02_dp, 1.27254363843749468e-01_dp, 1.96133703097384510e-01_dp, 2.99948891930471528e-01_dp, 4.55352600399399010e-01_dp, 6.86501888848262798e-01_dp,&
+ 1.02833225371209092e+00_dp, 1.53137179368997578e+00_dp, 2.26918848143912966e+00_dp, 3.35110440223032890e+00_dp, 4.94783619446950329e+00_dp, 7.35808960155657665e+00_dp,&
+ 1.12704558919221842e+01_dp, 1.34163112709142986e-04_dp, 3.31820004635060867e-04_dp, 5.85292383956380639e-04_dp, 9.52525712116287344e-04_dp, 1.52695895112218939e-03_dp,&
+ 2.44697373117672189e-03_dp, 3.91234116246991139e-03_dp, 6.21720431912608975e-03_dp, 9.80020195791868332e-03_dp, 1.53143843958859476e-02_dp, 2.37256997067326163e-02_dp,&
+ 3.64529621596812875e-02_dp, 5.55666229010075563e-02_dp, 8.40702126792006177e-02_dp, 1.26298364826408188e-01_dp, 1.88481852726078480e-01_dp, 2.79561367968087338e-01_dp,&
+ 4.12401859887934819e-01_dp, 6.05741037023105555e-01_dp, 8.87732639884163621e-01_dp, 1.30364414849327814e+00_dp, 1.93666021655104847e+00_dp, 2.98247296013335905e+00_dp,&
+ 5.19538978702465215e+00_dp]
+ aw%aw_erange_matrix(:, 13) = [4.74186432943696765e-05_dp, 2.57746697458575752e-04_dp, 6.72215423261009561e-04_dp, 1.36904849982412988e-03_dp, 2.49822952531189102e-03_dp,&
+ 4.32007260453564409e-03_dp, 7.25562191687022153e-03_dp, 1.19615994316679373e-02_dp, 1.94465690339826643e-02_dp, 3.12459287321233924e-02_dp, 4.96795967508927919e-02_dp,&
+ 7.82273487251369526e-02_dp, 1.22071872432134465e-01_dp, 1.88880212928117241e-01_dp, 2.89923179188923408e-01_dp, 4.41674209821309227e-01_dp, 6.68093992391500135e-01_dp,&
+ 1.00391918666630020e+00_dp, 1.49950080486156123e+00_dp, 2.22828459865320605e+00_dp, 3.29956003603171188e+00_dp, 4.88411601355048663e+00_dp, 7.28077788598311759e+00_dp,&
+ 1.11779608830889874e+01_dp, 1.22559089642059892e-04_dp, 3.03711714289307680e-04_dp, 5.37776362192977984e-04_dp, 8.80243545699582047e-04_dp, 1.42070033407478650e-03_dp,&
+ 2.29195134187792178e-03_dp, 3.68670370867581459e-03_dp, 5.89048389132385431e-03_dp, 9.33114202532726519e-03_dp, 1.46480918768852972e-02_dp, 2.27903209466914676e-02_dp,&
+ 3.51561724177167217e-02_dp, 5.37923877258781602e-02_dp, 8.16765885661760588e-02_dp, 1.23117559944136062e-01_dp, 1.84324333905412557e-01_dp, 2.74226332070221845e-01_dp,&
+ 4.05696473576583005e-01_dp, 5.97509585343210525e-01_dp, 8.77892506855791011e-01_dp, 1.29221601746443571e+00_dp, 1.92376053724517249e+00_dp, 2.96818176516477417e+00_dp,&
+ 5.17900498532960363e+00_dp]
+ aw%aw_erange_matrix(:, 14) = [2.61083791822088096e-05_dp, 1.42941529537112346e-04_dp, 3.78238298307792835e-04_dp, 7.88329163685841622e-04_dp, 1.48366706040521873e-03_dp,&
+ 2.65832050595232044e-03_dp, 4.63167445906838716e-03_dp, 7.91463449746751015e-03_dp, 1.33137928011505726e-02_dp, 2.20900805920563811e-02_dp, 3.61964230826096120e-02_dp,&
+ 5.86305139732095984e-02_dp, 9.39547021811209387e-02_dp, 1.49057156701848881e-01_dp, 2.34259870304458884e-01_dp, 3.64924444193215181e-01_dp, 5.63775440324342236e-01_dp,&
+ 8.64276277219052314e-01_dp, 1.31561809087683490e+00_dp, 1.99041393475007755e+00_dp, 2.99768336390155410e+00_dp, 4.50863479760469854e+00_dp, 6.82288522285185906e+00_dp,&
+ 1.06279521240912498e+01_dp, 6.75881961905316794e-05_dp, 1.69941829583506848e-04_dp, 3.09660645286637180e-04_dp, 5.28449765678521083e-04_dp, 8.93909737450426485e-04_dp,&
+ 1.50755454518753588e-03_dp, 2.52260544486072663e-03_dp, 4.17515964100183094e-03_dp, 6.82943561603700355e-03_dp, 1.10428692695803531e-02_dp, 1.76609395891629099e-02_dp,&
+ 2.79551936600397379e-02_dp, 4.38230950360496002e-02_dp, 6.80758902725479981e-02_dp, 1.04851842353276908e-01_dp, 1.60209704371014588e-01_dp, 2.42988684117548870e-01_dp,&
+ 3.66088449395505444e-01_dp, 5.48495011204098826e-01_dp, 8.18883412230972274e-01_dp, 1.22328644924849317e+00_dp, 1.84563625570733736e+00_dp, 2.88146370066102930e+00_dp,&
+ 5.07966645973249964e+00_dp]
+ aw%aw_erange_matrix(:, 15) = [1.84166877500424847e-05_dp, 1.01338248367429024e-04_dp, 2.70891966570577041e-04_dp, 5.73694488797580346e-04_dp, 1.10214286207274627e-03_dp,&
+ 2.01979102326085933e-03_dp, 3.59919332013810796e-03_dp, 6.28346253476893234e-03_dp, 1.07836615736264969e-02_dp, 1.82283844401024825e-02_dp, 3.03902691978087669e-02_dp,&
+ 5.00259315263227727e-02_dp, 8.13821346394924122e-02_dp, 1.30944068492507670e-01_dp, 2.08534415819745522e-01_dp, 3.28919285252216531e-01_dp, 5.14148465757719220e-01_dp,&
+ 7.96974976579003069e-01_dp, 1.22592434973876929e+00_dp, 1.87310901935587482e+00_dp, 2.84735349060911780e+00_dp, 4.32006788637914774e+00_dp, 6.59132616815617300e+00_dp,&
+ 1.03482965837111074e+01_dp, 4.77290069970175520e-05_dp, 1.21229034727591870e-04_dp, 2.25323962158315027e-04_dp, 3.95274223967029151e-04_dp, 6.88280321531956432e-04_dp,&
+ 1.19144209154864065e-03_dp, 2.03962888495879150e-03_dp, 3.44498476015290189e-03_dp, 5.73982220072231236e-03_dp, 9.43952078562288431e-03_dp, 1.53354254075933113e-02_dp,&
+ 2.46314750288419253e-02_dp, 3.91438412593936233e-02_dp, 6.15909001408859735e-02_dp, 9.60125940056078819e-02_dp, 1.48376380429630472e-01_dp, 2.27458649535560359e-01_dp,&
+ 3.46156859171918130e-01_dp, 5.23555793005025527e-01_dp, 7.88565881874275010e-01_dp, 1.18758903687419193e+00_dp, 1.80494770837808072e+00_dp, 2.83617741341719309e+00_dp,&
+ 5.02784446982277977e+00_dp]
+ aw%aw_erange_matrix(:, 16) = [1.43794768756607054e-05_dp, 7.94407267743463643e-05_dp, 2.14087932379079663e-04_dp, 4.59136410574220309e-04_dp, 8.96028446508450216e-04_dp,&
+ 1.66976560805800903e-03_dp, 3.02439562000179516e-03_dp, 5.36142841649881168e-03_dp, 9.33261828251444152e-03_dp, 1.59834223811472532e-02_dp, 2.69719480469838291e-02_dp,&
+ 4.49000383443473317e-02_dp, 7.38097878200917878e-02_dp, 1.19922436646304767e-01_dp, 1.92730359779763410e-01_dp, 3.06601683045230333e-01_dp, 4.83130261167591724e-01_dp,&
+ 7.54583091101484027e-01_dp, 1.16902310938102127e+00_dp, 1.79820599818541327e+00_dp, 2.75080499784322763e+00_dp, 4.19835486807251801e+00_dp, 6.44124697922546652e+00_dp,&
+ 1.01664653479358034e+01_dp, 3.72987233959718080e-05_dp, 9.55023307763634883e-05_dp, 1.80306769262708713e-04_dp, 3.23000597716850072e-04_dp, 5.74384980429340519e-04_dp,&
+ 1.01281517270836044e-03_dp, 1.76185443937899150e-03_dp, 3.01850376221718007e-03_dp, 5.09455509525917009e-03_dp, 8.47801039225177903e-03_dp, 1.39245855006621139e-02_dp,&
+ 2.25932205171958285e-02_dp, 3.62453228422488644e-02_dp, 5.75358316723112370e-02_dp, 9.04363388859761169e-02_dp, 1.40849109314211712e-01_dp, 2.17502832012251235e-01_dp,&
+ 3.33286821824373858e-01_dp, 5.07345903543043319e-01_dp, 7.68745571632986624e-01_dp, 1.16413988586492589e+00_dp, 1.77812850683180224e+00_dp, 2.80627812635434282e+00_dp,&
+ 4.99364996097974512e+00_dp]
+ aw%aw_erange_matrix(:, 17) = [1.18698686593928831e-05_dp, 6.57987372519803132e-05_dp, 1.78547872493372021e-04_dp, 3.86965633398256553e-04_dp, 7.64927524801522433e-04_dp,&
+ 1.44461477591216773e-03_dp, 2.65033992561638154e-03_dp, 4.75461176520393294e-03_dp, 8.36747964438012796e-03_dp, 1.44754415456443269e-02_dp, 2.46547347360661258e-02_dp,&
+ 4.13957363940960638e-02_dp, 6.85920817827494478e-02_dp, 1.12272209497015801e-01_dp, 1.81685535435211376e-01_dp, 2.90905349470154673e-01_dp, 4.61185157968011961e-01_dp,&
+ 7.24426017410617407e-01_dp, 1.12833880171398193e+00_dp, 1.74440310606512305e+00_dp, 2.68116884929595223e+00_dp, 4.11025744803576565e+00_dp, 6.33230139095818423e+00_dp,&
+ 1.00341731712209583e+01_dp, 3.08118052761882747e-05_dp, 7.94316379583479926e-05_dp, 1.51946049989422485e-04_dp, 2.76867314429344680e-04_dp, 5.00546327724966239e-04_dp,&
+ 8.95303265024346073e-04_dp, 1.57678048653578742e-03_dp, 2.73118078633072508e-03_dp, 4.65550196358321608e-03_dp, 7.81784620563788155e-03_dp, 1.29478320850938706e-02_dp,&
+ 2.11711793130857778e-02_dp, 3.42085251400267229e-02_dp, 5.46671320559994553e-02_dp, 8.64666120186466519e-02_dp, 1.35458776456228530e-01_dp, 2.10333988073563849e-01_dp,&
+ 3.23971999669050770e-01_dp, 4.95558891813246472e-01_dp, 7.54273716590565968e-01_dp, 1.14696009064139304e+00_dp, 1.75843162533584119e+00_dp, 2.78429279390467688e+00_dp,&
+ 4.96851608304748105e+00_dp]
+ aw%aw_erange_matrix(:, 18) = [1.01493431280495660e-05_dp, 5.64287459736858947e-05_dp, 1.54048782241414248e-04_dp, 3.36923608381857085e-04_dp, 6.73292683860254046e-04_dp,&
+ 1.28578896967230009e-03_dp, 2.38399572301077958e-03_dp, 4.31864823262937802e-03_dp, 7.66826727101123547e-03_dp, 1.33744831265954194e-02_dp, 2.29508473085234047e-02_dp,&
+ 3.88018974502402081e-02_dp, 6.47063094043532072e-02_dp, 1.06542423418234347e-01_dp, 1.73369498044410736e-01_dp, 2.79028802966647560e-01_dp, 4.44504455672566912e-01_dp,&
+ 7.01405979754009423e-01_dp, 1.09716150449456173e+00_dp, 1.70302614499239291e+00_dp, 2.62744582849347097e+00_dp, 4.04210657742671842e+00_dp, 6.24783410420217855e+00_dp,&
+ 9.93142792023963317e+00_dp, 2.63626597308958994e-05_dp, 6.83685184434004267e-05_dp, 1.32281726070828857e-04_dp, 2.44526922853104708e-04_dp, 4.48128899840554611e-04_dp,&
+ 8.10914556311444754e-04_dp, 1.44254868588091119e-03_dp, 2.52097880352028861e-03_dp, 4.33180300591165697e-03_dp, 7.32769485138720818e-03_dp, 1.22179195528638145e-02_dp,&
+ 2.01021318534979378e-02_dp, 3.26687760109587166e-02_dp, 5.24871984612843082e-02_dp, 8.34353088058046727e-02_dp, 1.31323922327678949e-01_dp, 2.04811435442679157e-01_dp,&
+ 3.16767923821470954e-01_dp, 4.86409942277473528e-01_dp, 7.43005052876108962e-01_dp, 1.13354766795262840e+00_dp, 1.74302496515801608e+00_dp, 2.76708003629181443e+00_dp,&
+ 4.94884391877995977e+00_dp]
+ aw%aw_erange_matrix(:, 19) = [8.89159792421571919e-06_dp, 4.95679759385973532e-05_dp, 1.36053541829094280e-04_dp, 2.99977481659800306e-04_dp, 6.05167956636287752e-04_dp,&
+ 1.16678643116254008e-03_dp, 2.18286506262262972e-03_dp, 3.98697545429172167e-03_dp, 7.13264240424145868e-03_dp, 1.25257332181879580e-02_dp, 2.16295848923911474e-02_dp,&
+ 3.67796513829504942e-02_dp, 6.16616759570113027e-02_dp, 1.02032133648366691e-01_dp, 1.66795229349862156e-01_dp, 2.69602214582802258e-01_dp, 4.31215560915994778e-01_dp,&
+ 6.83003680179501083e-01_dp, 1.07215935945554053e+00_dp, 1.66974905151588637e+00_dp, 2.58412884818207900e+00_dp, 3.98703522675006061e+00_dp, 6.17945438240648137e+00_dp,&
+ 9.84813569764865449e+00_dp, 2.31090359611159263e-05_dp, 6.02520826232466015e-05_dp, 1.17764151694591736e-04_dp, 2.20423029443349397e-04_dp, 4.08645842617014101e-04_dp,&
+ 7.46742145461516856e-04_dp, 1.33964120871897128e-03_dp, 2.35868484184250304e-03_dp, 4.08029370297597824e-03_dp, 6.94465896923445857e-03_dp, 1.16445004865607972e-02_dp,&
+ 1.92581817007345599e-02_dp, 3.14477152838842297e-02_dp, 5.07511400667911144e-02_dp, 8.10116930296266996e-02_dp, 1.28005765901508001e-01_dp, 2.00364381438578598e-01_dp,&
+ 3.10948256083292796e-01_dp, 4.78997560880030648e-01_dp, 7.33851748304701790e-01_dp, 1.12262978179298445e+00_dp, 1.73046443461699351e+00_dp, 2.75303631908657787e+00_dp,&
+ 4.93279721463345133e+00_dp]
+ aw%aw_erange_matrix(:, 20) = [7.92943492811425830e-06_dp, 4.43119886893608735e-05_dp, 1.22228438916328571e-04_dp, 2.71462597082496330e-04_dp, 5.52266425565187515e-04_dp,&
+ 1.07374597432597870e-03_dp, 2.02455078893148087e-03_dp, 3.72424731470214062e-03_dp, 6.70586488633590980e-03_dp, 1.18458140458168742e-02_dp, 2.05658987513696045e-02_dp,&
+ 3.51442089237571711e-02_dp, 5.91890323565376700e-02_dp, 9.83549064639916010e-02_dp, 1.61415871849318354e-01_dp, 2.61863081860778169e-01_dp, 4.20271543291650895e-01_dp,&
+ 6.67804863119458081e-01_dp, 1.05145486973064473e+00_dp, 1.64212563949061630e+00_dp, 2.54809424129414674e+00_dp, 3.94113788444330471e+00_dp, 6.12237951803294411e+00_dp,&
+ 9.77853300456316532e+00_dp, 2.06192331618514530e-05_dp, 5.40232427598474560e-05_dp, 1.06560123283953070e-04_dp, 2.01663689689283911e-04_dp, 3.77635630469695682e-04_dp,&
+ 6.95932200646762786e-04_dp, 1.25760040368501206e-03_dp, 2.22852306033233727e-03_dp, 3.87749916160977023e-03_dp, 6.63431088389790976e-03_dp, 1.11778258007327515e-02_dp,&
+ 1.85685094452199342e-02_dp, 3.04460612739809039e-02_dp, 4.93219665747793509e-02_dp, 7.90098877663644311e-02_dp, 1.25256618914649454e-01_dp, 1.96669278768011990e-01_dp,&
+ 3.06099682906322057e-01_dp, 4.72806941866720010e-01_dp, 7.26190639008665206e-01_dp, 1.11347540533697198e+00_dp, 1.71991912047126894e+00_dp, 2.74123817138487302e+00_dp,&
+ 4.91931883283546956e+00_dp]
+ aw%aw_erange_matrix(:, 21) = [7.16803627752296239e-06_dp, 4.01472861242540915e-05_dp, 1.11245581550157771e-04_dp, 2.48715393760719119e-04_dp, 5.09832385277932164e-04_dp,&
+ 9.98664196884188442e-04_dp, 1.89603649313176896e-03_dp, 3.50978968722603793e-03_dp, 6.35572049443416942e-03_dp, 1.12853755554045646e-02_dp, 1.96853755382704262e-02_dp,&
+ 3.37850528172386894e-02_dp, 5.71266496204200641e-02_dp, 9.52775123910288707e-02_dp, 1.56900006222728733e-01_dp, 2.55347499709513814e-01_dp, 4.11033133743181289e-01_dp,&
+ 6.54943032172548123e-01_dp, 1.03389409665238108e+00_dp, 1.61864812042625017e+00_dp, 2.51741167839956104e+00_dp, 3.90199569344713248e+00_dp, 6.07364192296369865e+00_dp,&
+ 9.71903856517508125e+00_dp, 1.86483698557531051e-05_dp, 4.90798524334996915e-05_dp, 9.76228211832427784e-05_dp, 1.86586179919061534e-04_dp, 3.52510875396298037e-04_dp,&
+ 6.54476032558140510e-04_dp, 1.19026386844131257e-03_dp, 2.12113611193764668e-03_dp, 3.70941336484984733e-03_dp, 6.37599906979002557e-03_dp, 1.07879045037535207e-02_dp,&
+ 1.79902231510591024e-02_dp, 2.96034208909502425e-02_dp, 4.81160033294198430e-02_dp, 7.73159166920895230e-02_dp, 1.22924046545293070e-01_dp, 1.93526319649241829e-01_dp,&
+ 3.01966139537300782e-01_dp, 4.67518202278870365e-01_dp, 7.19633505022078235e-01_dp, 1.10562814659246533e+00_dp, 1.71086947711974235e+00_dp, 2.73110774807190726e+00_dp,&
+ 4.90774746482512736e+00_dp]
+ aw%aw_erange_matrix(:, 22) = [6.54949147016424086e-06_dp, 3.67599211858730431e-05_dp, 1.02291500164715865e-04_dp, 2.30098974047354389e-04_dp, 4.74930005243569232e-04_dp,&
+ 9.36573543839715889e-04_dp, 1.78919693255239561e-03_dp, 3.33062482114044114e-03_dp, 6.06187997524775934e-03_dp, 1.08131197488804381e-02_dp, 1.89406030311630204e-02_dp,&
+ 3.26314625686266457e-02_dp, 5.53706182403844657e-02_dp, 9.26495368264531882e-02_dp, 1.53033136019531224e-01_dp, 2.49754228873652645e-01_dp, 4.03083928263728630e-01_dp,&
+ 6.43852135287927729e-01_dp, 1.01872118657447630e+00_dp, 1.59832643757846027e+00_dp, 2.49081087202628870e+00_dp, 3.86801386852845352e+00_dp, 6.03128197184597514e+00_dp,&
+ 9.66728464063949744e+00_dp, 1.70468480459040007e-05_dp, 4.50533009508492739e-05_dp, 9.03089046067231504e-05_dp, 1.74162345743696236e-04_dp, 3.31659425896218565e-04_dp,&
+ 6.19857458060724576e-04_dp, 1.13373860134602334e-03_dp, 2.03057927006095170e-03_dp, 3.56709326293176438e-03_dp, 6.15647623537543282e-03_dp, 1.04554160078639425e-02_dp,&
+ 1.74955809810295078e-02_dp, 2.88805867702902064e-02_dp, 4.70787375241496497e-02_dp, 7.58552793104651651e-02_dp, 1.20908097467212469e-01_dp, 1.90804104268044533e-01_dp,&
+ 2.98378767154727942e-01_dp, 4.62919868474127638e-01_dp, 7.13923126866968127e-01_dp, 1.09878506894649397e+00_dp, 1.70297020149869560e+00_dp, 2.72226075711566873e+00_dp,&
+ 4.89764341611014054e+00_dp]
+ aw%aw_erange_matrix(:, 23) = [3.62316384899741436e-06_dp, 2.06662589591035961e-05_dp, 5.93867981928769439e-05_dp, 1.39664500034251184e-04_dp, 3.02392953597313812e-04_dp,&
+ 6.23913220384252542e-04_dp, 1.24158348366475721e-03_dp, 2.39714437510383811e-03_dp, 4.50785328572772450e-03_dp, 8.28120766800075590e-03_dp, 1.48975198963633287e-02_dp,&
+ 2.62969675682382595e-02_dp, 4.56258770476314496e-02_dp, 7.79234553364625548e-02_dp, 1.31168639852292268e-01_dp, 2.17862779049170785e-01_dp, 3.57407097284327568e-01_dp,&
+ 5.79664656849280702e-01_dp, 9.30329070134009117e-01_dp, 1.47922848122994299e+00_dp, 2.33408033532110970e+00_dp, 3.66687452965429594e+00_dp, 5.77960966222481343e+00_dp,&
+ 9.35891569613454344e+00_dp, 9.46282935694829789e-06_dp, 2.58239371914388208e-05_dp, 5.47876477692921878e-05_dp, 1.12357899174281211e-04_dp, 2.25410508844244435e-04_dp,&
+ 4.39823252088218024e-04_dp, 8.34658513466712024e-04_dp, 1.54415035187728013e-03_dp, 2.79222575559080624e-03_dp, 4.94654471638751418e-03_dp, 8.60219334755443939e-03_dp,&
+ 1.47099223834576687e-02_dp, 2.47707250906284218e-02_dp, 4.11284759244666259e-02_dp, 6.74067205235111266e-02_dp, 1.09157124591444152e-01_dp, 1.74821633710288610e-01_dp,&
+ 2.77175755009873737e-01_dp, 4.35575233193674860e-01_dp, 6.79781417253571218e-01_dp, 1.05768662814925518e+00_dp, 1.65537289255531617e+00_dp, 2.66886452835402821e+00_dp,&
+ 4.83668577282495349e+00_dp]
+ aw%aw_erange_matrix(:, 24) = [2.56687094857670747e-06_dp, 1.48140478608297225e-05_dp, 4.35497791130441602e-05_dp, 1.05483081347521106e-04_dp, 2.35279200779714979e-04_dp,&
+ 4.98716166471356516e-04_dp, 1.01631470784968917e-03_dp, 2.00367258026344771e-03_dp, 3.83831240431013699e-03_dp, 7.16862405397350293e-03_dp, 1.30889059367504789e-02_dp,&
+ 2.34169831350073999e-02_dp, 4.11292984187428753e-02_dp, 7.10353848964340034e-02_dp, 1.20813060809651041e-01_dp, 2.02583315021552357e-01_dp, 3.35289428889970098e-01_dp,&
+ 5.48278572538722253e-01_dp, 8.86719055490787444e-01_dp, 1.41999108109747230e+00_dp, 2.25556255062890854e+00_dp, 3.56548544062999051e+00_dp, 5.65210809347542398e+00_dp,&
+ 9.20209037623522264e+00_dp, 6.72075406470941075e-06_dp, 1.87685583158872635e-05_dp, 4.13668609905263349e-05_dp, 8.80705285290741191e-05_dp, 1.82104310081710000e-04_dp,&
+ 3.64206856695979675e-04_dp, 7.05845136760333502e-04_dp, 1.33003091463308461e-03_dp, 2.44448090513076869e-03_dp, 4.39402586807451350e-03_dp, 7.74244744853903443e-03_dp,&
+ 1.33988214598457188e-02_dp, 2.28105603270823097e-02_dp, 3.82556134740365747e-02_dp, 6.32811652381851802e-02_dp, 1.03358286124759155e-01_dp, 1.66857298877244459e-01_dp,&
+ 2.66514261343302805e-01_dp, 4.21712108726296664e-01_dp, 6.62346025261959515e-01_dp, 1.03657129271470283e+00_dp, 1.63081056713585570e+00_dp, 2.64124764570998494e+00_dp,&
+ 4.80517466483982947e+00_dp]
+ aw%aw_erange_matrix(:, 25) = [2.01189546515375101e-06_dp, 1.17233648244081383e-05_dp, 3.50959117953791644e-05_dp, 8.69336997157480054e-05_dp, 1.98162808962633010e-04_dp,&
+ 4.28198887734239765e-04_dp, 8.87310707804653417e-04_dp, 1.77499333157769465e-03_dp, 3.44404039243215946e-03_dp, 6.50571406299224695e-03_dp, 1.19998262339639714e-02_dp,&
+ 2.16660879508208393e-02_dp, 3.83716824509428289e-02_dp, 6.67773897929400395e-02_dp, 1.14364666796375455e-01_dp, 1.93004773521509243e-01_dp, 3.21338201704145010e-01_dp,&
+ 5.28368394359665539e-01_dp, 8.58910473987573475e-01_dp, 1.38203960453247343e+00_dp, 2.20504874997767697e+00_dp, 3.50002411369846511e+00_dp, 5.56954749675741123e+00_dp,&
+ 9.10031727857536055e+00_dp, 5.27841311303466373e-06_dp, 1.50189207592488828e-05_dp, 3.40851587092681632e-05_dp, 7.45495484921219001e-05_dp, 1.57451713073147425e-04_dp,&
+ 3.20381451057778646e-04_dp, 6.30059109418049687e-04_dp, 1.20240733871348647e-03_dp, 2.23481334346221916e-03_dp, 4.05744093651400767e-03_dp, 7.21380013754863766e-03_dp,&
+ 1.25857693863473327e-02_dp, 2.15855187408655474e-02_dp, 3.64472744823981926e-02_dp, 6.06670935229573008e-02_dp, 9.96614146138858764e-02_dp, 1.61751005459189912e-01_dp,&
+ 2.59642830354010423e-01_dp, 4.12734473920376044e-01_dp, 6.51007217786149228e-01_dp, 1.02279085179190932e+00_dp, 1.61473916165854003e+00_dp, 2.62315361076397657e+00_dp,&
+ 4.78453508191765398e+00_dp]
+ aw%aw_erange_matrix(:, 26) = [1.66650804957725690e-06_dp, 9.79195922229785925e-06_dp, 2.97671963956997093e-05_dp, 7.50889943280584854e-05_dp, 1.74120549715566273e-04_dp,&
+ 3.81901310856980159e-04_dp, 8.01589645444458201e-04_dp, 1.62141965041956676e-03_dp, 3.17676475082105583e-03_dp, 6.05256166106276500e-03_dp, 1.12497586142683032e-02_dp,&
+ 2.04520438710679604e-02_dp, 3.64478368323097671e-02_dp, 6.37901575616463962e-02_dp, 1.09817537982207961e-01_dp, 1.86218609625028619e-01_dp, 3.11411354298047838e-01_dp,&
+ 5.14145288920909826e-01_dp, 8.38972998045112384e-01_dp, 1.35474093066610513e+00_dp, 2.16860835622923531e+00_dp, 3.45268305902671191e+00_dp, 5.50971944265975022e+00_dp,&
+ 9.02645357677880433e+00_dp, 4.37996254015510915e-06_dp, 1.26639117157945443e-05_dp, 2.94358206429358304e-05_dp, 6.57479994815268992e-05_dp, 1.41144005156891599e-04_dp,&
+ 2.91016833733939099e-04_dp, 5.78733039505662308e-04_dp, 1.11517019493301544e-03_dp, 2.09031926898599211e-03_dp, 3.82378124258229632e-03_dp, 6.84438590118669875e-03_dp,&
+ 1.20142093327273401e-02_dp, 2.07196220387161727e-02_dp, 3.51626591189038648e-02_dp, 5.88014907670197443e-02_dp, 9.70117352483137046e-02_dp, 1.58076631362593256e-01_dp,&
+ 2.54680227579877017e-01_dp, 4.06229158366321563e-01_dp, 6.42766719215347226e-01_dp, 1.01275123016837187e+00_dp, 1.60300933245512400e+00_dp, 2.60993519962017695e+00_dp,&
+ 4.76945988476785665e+00_dp]
+ aw%aw_erange_matrix(:, 27) = [1.42943695055503615e-06_dp, 8.46165424382126785e-06_dp, 2.60698401100851063e-05_dp, 6.67814196952674276e-05_dp, 1.57061980096056565e-04_dp,&
+ 3.48699609753426410e-04_dp, 7.39534350906485968e-04_dp, 1.50932350422760685e-03_dp, 2.98025358505948608e-03_dp, 5.71723340985497933e-03_dp, 1.06915099200873675e-02_dp,&
+ 1.95437765453790706e-02_dp, 3.50017679326257297e-02_dp, 6.15351694963551937e-02_dp, 1.06371585743293251e-01_dp, 1.81057398934298813e-01_dp, 3.03836641250375683e-01_dp,&
+ 5.03259532047688363e-01_dp, 8.23671639355172513e-01_dp, 1.33373790244342372e+00_dp, 2.14050999882194981e+00_dp, 3.41611042866982118e+00_dp, 5.46342911645605334e+00_dp,&
+ 8.96923709909895805e+00_dp, 3.76280666490803481e-06_dp, 1.10349192639900207e-05_dp, 2.61749472871830625e-05_dp, 5.94785304240196910e-05_dp, 1.29381396050283660e-04_dp,&
+ 2.69624782417856625e-04_dp, 5.41030666856124102e-04_dp, 1.05062825583379063e-03_dp, 1.98274016404487120e-03_dp, 3.64883628530559678e-03_dp, 6.56639788172501491e-03_dp,&
+ 1.15821299145321133e-02_dp, 2.00622942977296825e-02_dp, 3.41837277229397746e-02_dp, 5.73747999305673703e-02_dp, 9.49788229467453393e-02_dp, 1.55249040753075052e-01_dp,&
+ 2.50850676871953726e-01_dp, 4.01196417731231325e-01_dp, 6.36377279055782896e-01_dp, 1.00495221581774308e+00_dp, 1.59388478284124879e+00_dp, 2.59964533909053719e+00_dp,&
+ 4.75772623961460805e+00_dp]
+ aw%aw_erange_matrix(:, 28) = [1.25593072779015605e-06_dp, 7.48509099235730312e-06_dp, 2.33380690075558333e-05_dp, 6.05862425351964338e-05_dp, 1.44216985724140322e-04_dp,&
+ 3.23477349893590250e-04_dp, 6.92027615642327380e-04_dp, 1.42292839335073692e-03_dp, 2.82790124968306227e-03_dp, 5.45589697607193076e-03_dp, 1.02544101565129903e-02_dp,&
+ 1.88296350361601139e-02_dp, 3.38604593210769314e-02_dp, 5.97492896911544571e-02_dp, 1.03633917275519655e-01_dp, 1.76945222267432978e-01_dp, 2.97785582188463460e-01_dp,&
+ 4.94542408381846377e-01_dp, 8.11391530926075077e-01_dp, 1.31684830884414028e+00_dp, 2.11787478911631055e+00_dp, 3.38660403430587609e+00_dp, 5.42603669207294903e+00_dp,&
+ 8.92297581960380093e+00_dp, 3.31083107841461289e-06_dp, 9.83462735015609646e-06_dp, 2.37431616737304026e-05_dp, 5.47422903320507240e-05_dp, 1.20404032431273536e-04_dp,&
+ 2.53165446792662674e-04_dp, 5.11825542614317668e-04_dp, 1.00034096162128451e-03_dp, 1.89849149621014197e-03_dp, 3.51120721241224461e-03_dp, 6.34681078723501029e-03_dp,&
+ 1.12395614532896839e-02_dp, 1.95393860050951801e-02_dp, 3.34025813261771970e-02_dp, 5.62331329589741413e-02_dp, 9.33477903750834642e-02_dp, 1.52974946772401754e-01_dp,&
+ 2.47763903298591159e-01_dp, 3.97131605130562226e-01_dp, 6.31207427889815320e-01_dp, 9.98632371583498379e-01_dp, 1.58648264165129627e+00_dp, 2.59129305213222505e+00_dp,&
+ 4.74820305492783490e+00_dp]
+ aw%aw_erange_matrix(:, 29) = [1.01778594648656121e-06_dp, 6.13964731036603379e-06_dp, 1.95437043381015915e-05_dp, 5.18826467221919149e-05_dp, 1.25959840810346862e-04_dp,&
+ 2.87251594465221492e-04_dp, 6.23174152494021744e-04_dp, 1.29672357902945769e-03_dp, 2.60381073572208722e-03_dp, 5.06916370135518206e-03_dp, 9.60407022854281069e-03_dp,&
+ 1.77619303644410004e-02_dp, 3.21466090409059171e-02_dp, 5.70568253617527582e-02_dp, 9.94914935344446277e-02_dp, 1.70702308494943306e-01_dp, 2.88571152142299225e-01_dp,&
+ 4.81231097389002938e-01_dp, 7.92591691975457646e-01_dp, 1.29093228148162753e+00_dp, 2.08307176405047878e+00_dp, 3.34115706531417889e+00_dp, 5.36836180585040168e+00_dp,&
+ 8.85154518963745929e+00_dp, 2.68997557333974691e-06_dp, 8.17318793142506686e-06_dp, 2.03264410175787538e-05_dp, 4.79845597463935636e-05_dp, 1.07440884457087255e-04_dp,&
+ 2.29172855787619596e-04_dp, 4.68916988302596819e-04_dp, 9.25955715518831149e-04_dp, 1.77312743317322493e-03_dp, 3.30532793617600807e-03_dp, 6.01677224026092323e-03_dp,&
+ 1.07224755421114620e-02_dp, 1.87470115600596697e-02_dp, 3.22146730966314590e-02_dp, 5.44912851539835832e-02_dp, 9.08517990792797603e-02_dp, 1.49485166818382670e-01_dp,&
+ 2.43014842555163008e-01_dp, 3.90863195448717893e-01_dp, 6.23218401902415731e-01_dp, 9.88849326774313808e-01_dp, 1.57500959510431038e+00_dp, 2.57833868291318158e+00_dp,&
+ 4.73343442147548998e+00_dp]
+ aw%aw_erange_matrix(:, 30) = [9.32182506534499083e-07_dp, 5.65427050047378655e-06_dp, 1.81641642924285632e-05_dp, 4.86843580634723421e-05_dp, 1.19179404603004141e-04_dp,&
+ 2.73671187884923781e-04_dp, 5.97153185443552881e-04_dp, 1.24869564104713331e-03_dp, 2.51801395372686782e-03_dp, 4.92030585912688317e-03_dp, 9.35256125525345955e-03_dp,&
+ 1.73472617732815110e-02_dp, 3.14784531695425571e-02_dp, 5.60035198389070496e-02_dp, 9.78658552320255670e-02_dp, 1.68245317352748835e-01_dp, 2.84935135760699454e-01_dp,&
+ 4.75965809488915204e-01_dp, 7.85139110856129308e-01_dp, 1.28063839499368748e+00_dp, 2.06922374707535184e+00_dp, 3.32304676889775541e+00_dp, 5.34535083343202011e+00_dp,&
+ 8.82301987561054979e+00_dp, 2.46663401521989575e-06_dp, 7.57112122388445892e-06_dp, 1.90707407840366502e-05_dp, 4.54661847163986995e-05_dp, 1.02558395312991546e-04_dp,&
+ 2.20060394488419609e-04_dp, 4.52506637725504329e-04_dp, 8.97337131127042280e-04_dp, 1.72464367837495440e-03_dp, 3.22533744287678255e-03_dp, 5.88801225850025742e-03_dp,&
+ 1.05199906179829199e-02_dp, 1.84356786606557875e-02_dp, 3.17464912516325359e-02_dp, 5.38028411029115722e-02_dp, 8.98627198152701229e-02_dp, 1.48098961240044624e-01_dp,&
+ 2.41124261770076231e-01_dp, 3.88362754098591501e-01_dp, 6.20025938789660280e-01_dp, 9.84934139986923918e-01_dp, 1.57041302902575808e+00_dp, 2.57314565679063278e+00_dp,&
+ 4.72751471396439804e+00_dp]
+ aw%aw_erange_matrix(:, 31) = [5.25590892574421312e-07_dp, 3.33043832380041068e-06_dp, 1.14431096247839162e-05_dp, 3.27431485458530691e-05_dp, 8.46350992273292666e-05_dp,&
+ 2.03153259621234258e-04_dp, 4.59821285980971557e-04_dp, 9.91650001765859547e-04_dp, 2.05322006704024111e-03_dp, 4.10523807758926031e-03_dp, 7.96233658384974327e-03_dp,&
+ 1.50356841335305951e-02_dp, 2.77253004357191461e-02_dp, 5.00458991089591035e-02_dp, 8.86130494935644941e-02_dp, 1.54180051460468925e-01_dp, 2.64010700262742870e-01_dp,&
+ 4.45519145014729834e-01_dp, 7.41854921517251187e-01_dp, 1.22061484027573153e+00_dp, 1.98819245481561180e+00_dp, 3.21675627422806087e+00_dp, 5.20996853074945587e+00_dp,&
+ 8.65488645350951025e+00_dp, 1.40411871441283978e-06_dp, 4.65945746373287958e-06_dp, 1.28088836351098766e-05_dp, 3.25470686510014471e-05_dp, 7.69739430187918623e-05_dp,&
+ 1.71503599393232409e-04_dp, 3.63832666091625401e-04_dp, 7.40831450577037333e-04_dp, 1.45671193408331381e-03_dp, 2.77917966751328000e-03_dp, 5.16386766644335356e-03_dp,&
+ 9.37269395086945054e-03_dp, 1.66596630508670449e-02_dp, 2.90591748479299729e-02_dp, 4.98287886466289229e-02_dp, 8.41233836030797211e-02_dp, 1.40016424411814888e-01_dp,&
+ 2.30051959107940712e-01_dp, 3.73659596847667475e-01_dp, 6.01186234654401463e-01_dp, 9.61760021921176378e-01_dp, 1.54314545194367869e+00_dp, 2.54230382876726591e+00_dp,&
+ 4.69236395299902842e+00_dp]
+ aw%aw_erange_matrix(:, 32) = [3.77746786484820052e-07_dp, 2.47367412749661625e-06_dp, 8.88910608615204707e-06_dp, 2.64595599516958189e-05_dp, 7.05587839095670583e-05_dp,&
+ 1.73605015730760731e-04_dp, 4.00918296660801555e-04_dp, 8.79201294501707228e-04_dp, 1.84641001010475377e-03_dp, 3.73718127951488998e-03_dp, 7.32635321852410579e-03_dp,&
+ 1.39659443490608732e-02_dp, 2.59704105931541744e-02_dp, 4.72342122738790837e-02_dp, 8.42092467768616737e-02_dp, 1.47434278696521814e-01_dp, 2.53904839975671481e-01_dp,&
+ 4.30720296200788055e-01_dp, 7.20694024878018924e-01_dp, 1.19111682847565215e+00_dp, 1.94818633451092960e+00_dp, 3.16407218709918769e+00_dp, 5.14265022994814824e+00_dp,&
+ 8.57108216879129792e+00_dp, 1.01675696110901377e-06_dp, 3.56683154388218107e-06_dp, 1.03378032813617490e-05_dp, 2.72303186636337344e-05_dp, 6.61190130474000151e-05_dp,&
+ 1.50405574194169988e-04_dp, 3.24539504225176522e-04_dp, 6.70313968410577820e-04_dp, 1.33423257207291950e-03_dp, 2.57262674798155143e-03_dp, 4.82482714628009336e-03_dp,&
+ 8.83010058528159621e-03_dp, 1.58120634727405042e-02_dp, 2.77660334220296082e-02_dp, 4.79020030873376218e-02_dp, 8.13214175964597497e-02_dp, 1.36045354853115003e-01_dp,&
+ 2.24580177693445515e-01_dp, 3.66354910501169195e-01_dp, 5.91782424535910456e-01_dp, 9.50147106691224264e-01_dp, 1.52944143192368198e+00_dp, 2.52677962908059905e+00_dp,&
+ 4.67467516563689411e+00_dp]
+ aw%aw_erange_matrix(:, 33) = [2.99664078973365364e-07_dp, 2.01676529456486806e-06_dp, 7.49812484072044869e-06_dp, 2.29562789622202959e-05_dp, 6.25512438204072960e-05_dp,&
+ 1.56516836091155691e-04_dp, 3.66388142810575204e-04_dp, 8.12526363145498094e-04_dp, 1.72258719036366107e-03_dp, 3.51495368214549408e-03_dp, 6.93951365252978413e-03_dp,&
+ 1.33110102712282775e-02_dp, 2.48897248127692254e-02_dp, 4.54936440738658576e-02_dp, 8.14701439600811622e-02_dp, 1.43220425244155236e-01_dp, 2.47567293637350416e-01_dp,&
+ 4.21406547480265403e-01_dp, 7.07333082751402054e-01_dp, 1.17243749048047086e+00_dp, 1.92278753935211300e+00_dp, 3.13055087517012032e+00_dp, 5.09974132074687425e+00_dp,&
+ 8.51759375779859873e+00_dp, 8.11840237974868068e-07_dp, 2.97676437467599049e-06_dp, 8.95877340782960216e-06_dp, 2.41887320656559041e-05_dp, 5.97983195236438640e-05_dp,&
+ 1.37949802576712747e-04_dp, 3.01077435777808875e-04_dp, 6.27802625559085981e-04_dp, 1.25978454436160171e-03_dp, 2.44616712980497359e-03_dp, 4.61592672479145365e-03_dp,&
+ 8.49387389545272833e-03_dp, 1.52841394595869661e-02_dp, 2.69568604463215691e-02_dp, 4.66912232329309493e-02_dp, 7.95538490348449423e-02_dp, 1.33531359311761549e-01_dp,&
+ 2.21104809883150316e-01_dp, 3.61701630907670990e-01_dp, 5.85776206087097573e-01_dp, 9.42713589653869088e-01_dp, 1.52065506289460450e+00_dp, 2.51681761990832609e+00_dp,&
+ 4.66332558154922250e+00_dp]
+ aw%aw_erange_matrix(:, 34) = [1.73730848626341147e-07_dp, 1.26912975751936725e-06_dp, 5.15153823606368156e-06_dp, 1.68583242672310579e-05_dp, 4.82488018910973975e-05_dp,&
+ 1.25356558872712483e-04_dp, 3.02348850888272086e-04_dp, 6.87116047706990687e-04_dp, 1.48687959331074144e-03_dp, 3.08752828321902546e-03_dp, 6.18872533876025505e-03_dp,&
+ 1.20297098566864904e-02_dp, 2.27603976223081025e-02_dp, 4.20421469029760714e-02_dp, 7.60071669908969072e-02_dp, 1.34772064548270148e-01_dp, 2.34800518610677439e-01_dp,&
+ 4.02562837605401957e-01_dp, 6.80194494981714026e-01_dp, 1.13436171838198985e+00_dp, 1.87085280236007812e+00_dp, 3.06182420563061042e+00_dp, 5.01157764804825945e+00_dp,&
+ 8.40751494962753831e+00_dp, 4.80674357513349563e-07_dp, 1.99285021040878236e-06_dp, 6.55476843504883173e-06_dp, 1.87193473234136633e-05_dp, 4.81793844230035082e-05_dp,&
+ 1.14656730135680914e-04_dp, 2.56580931723435343e-04_dp, 5.46218825474838882e-04_dp, 1.11545180541612024e-03_dp, 2.19881887010929793e-03_dp, 4.20412520900342954e-03_dp,&
+ 7.82644901475024538e-03_dp, 1.42296156649352728e-02_dp, 2.53313747253629783e-02_dp, 4.42464196352532271e-02_dp, 7.59679212838059170e-02_dp, 1.28409035336740834e-01_dp,&
+ 2.13995562863774413e-01_dp, 3.52148516834832837e-01_dp, 5.73406097443571627e-01_dp, 9.27362789204974280e-01_dp, 1.50247436216476671e+00_dp, 2.49618240430330474e+00_dp,&
+ 4.63981967370555548e+00_dp]
+ aw%aw_erange_matrix(:, 35) = [8.83557997605877948e-08_dp, 7.47621325013458939e-07_dp, 3.42094325152354304e-06_dp, 1.21275048693836442e-05_dp, 3.67073078597054470e-05_dp,&
+ 9.94269390815720596e-05_dp, 2.47729277561915806e-04_dp, 5.77957806383662246e-04_dp, 1.27817905627881727e-03_dp, 2.70349188858008379e-03_dp, 5.50551104637513576e-03_dp,&
+ 1.08506159368095528e-02_dp, 2.07813764065210640e-02_dp, 3.88056832254963860e-02_dp, 7.08434483001099541e-02_dp, 1.26728575363420248e-01_dp, 2.22565577319307151e-01_dp,&
+ 3.84396180083315220e-01_dp, 6.53889333621266999e-01_dp, 1.09727575495089158e+00_dp, 1.82005115357550351e+00_dp, 2.99435099495450929e+00_dp, 4.92476615078199753e+00_dp,&
+ 8.29888537518427327e+00_dp, 2.55529326096967382e-07_dp, 1.28101632753650128e-06_dp, 4.68483136949608877e-06_dp, 1.42645386838839181e-05_dp, 3.84046913218155287e-05_dp,&
+ 9.45648951403460541e-05_dp, 2.17414031756023513e-04_dp, 4.73182154646426033e-04_dp, 9.84365118873844428e-04_dp, 1.97135109764810497e-03_dp, 3.82125539958089091e-03_dp,&
+ 7.19986438314273742e-03_dp, 1.32309845000683334e-02_dp, 2.37799409987305317e-02_dp, 4.18963448627306043e-02_dp, 7.24985040317744495e-02_dp, 1.23423627531251801e-01_dp,&
+ 2.07038657087652705e-01_dp, 3.42753920314871008e-01_dp, 5.61187961935596724e-01_dp, 9.12144801594348853e-01_dp, 1.48440167457457406e+00_dp, 2.47563978283315533e+00_dp,&
+ 4.61642377288386729e+00_dp]
+ aw%aw_erange_matrix(:, 36) = [6.73037114169863018e-08_dp, 6.15083928304524313e-07_dp, 2.95799200667729676e-06_dp, 1.08093200246870833e-05_dp, 3.33939114298216740e-05_dp,&
+ 9.18125355691171255e-05_dp, 2.31401289449927543e-04_dp, 5.44849270884113237e-04_dp, 1.21410857985279684e-03_dp, 2.58437607064648106e-03_dp, 5.29171190470389356e-03_dp,&
+ 1.04787688883060739e-02_dp, 2.01529709097529389e-02_dp, 3.77717105057609748e-02_dp, 6.91847136654090700e-02_dp, 1.24131995921297408e-01_dp, 2.18598244610203857e-01_dp,&
+ 3.78481518936924666e-01_dp, 6.45293540998941872e-01_dp, 1.08511722510447250e+00_dp, 1.80334769771032977e+00_dp, 2.97211117186446261e+00_dp, 4.89609522498911520e+00_dp,&
+ 8.26295542251170545e+00_dp, 1.99905590548142190e-07_dp, 1.09346719997225291e-06_dp, 4.16270885497327146e-06_dp, 1.29775979642102512e-05_dp, 3.55132473075491176e-05_dp,&
+ 8.85130922866433315e-05_dp, 2.05444546193259424e-04_dp, 4.50593300850056185e-04_dp, 9.43410547046450560e-04_dp, 1.89966434483849686e-03_dp, 3.69967524627809853e-03_dp,&
+ 6.99955720877200142e-03_dp, 1.29098322668550324e-02_dp, 2.32783313621694361e-02_dp, 4.11328258393498930e-02_dp, 7.13663368852438390e-02_dp, 1.21790184148070746e-01_dp,&
+ 2.04750863881002110e-01_dp, 3.39654172854953862e-01_dp, 5.57144662627416243e-01_dp, 9.07096256949488255e-01_dp, 1.47839499420113785e+00_dp, 2.46880540504772039e+00_dp,&
+ 4.60864108894960012e+00_dp]
+ aw%aw_erange_matrix(:, 37) = [5.63756690531640412e-08_dp, 5.45141297997350871e-07_dp, 2.70769884954924823e-06_dp, 1.00840013918214356e-05_dp, 3.15478386877207276e-05_dp,&
+ 8.75303677559782821e-05_dp, 2.22151558418467874e-04_dp, 5.25982385558769624e-04_dp, 1.17741860773814709e-03_dp, 2.51588033812328270e-03_dp, 5.16832913419365200e-03_dp,&
+ 1.02635057571827584e-02_dp, 1.97881815370499134e-02_dp, 3.71700157932754807e-02_dp, 6.82173313560840711e-02_dp, 1.22614657374409589e-01_dp, 2.16275737349087366e-01_dp,&
+ 3.75013409641876516e-01_dp, 6.40245931716625027e-01_dp, 1.07796811297597017e+00_dp, 1.79351481908389587e+00_dp, 2.95900624505579835e+00_dp, 4.87918727523437390e+00_dp,&
+ 8.24175408051627123e+00_dp, 1.71004560103619930e-07_dp, 9.92697182334500706e-07_dp, 3.87517398119211907e-06_dp, 1.22588587859795228e-05_dp, 3.38825784507339864e-05_dp,&
+ 8.50746811867344256e-05_dp, 1.98603590662673526e-04_dp, 4.37620082429083308e-04_dp, 9.19792981883775355e-04_dp, 1.85817869104775574e-03_dp, 3.62910029291854761e-03_dp,&
+ 6.88296869424027957e-03_dp, 1.27224568583438127e-02_dp, 2.29850377491460055e-02_dp, 4.06855229641864269e-02_dp, 7.07018891871147998e-02_dp, 1.20829997461524813e-01_dp,&
+ 2.03404047259240744e-01_dp, 3.37826922494642301e-01_dp, 5.54758380422972652e-01_dp, 9.04113729252530862e-01_dp, 1.47484379397260934e+00_dp, 2.46476324738877839e+00_dp,&
+ 4.60403828058722464e+00_dp]
+ aw%aw_erange_matrix(:, 38) = [4.97727334423554353e-08_dp, 5.02362703653979704e-07_dp, 2.55210099415985428e-06_dp, 9.62796532877697780e-06_dp, 3.03779168827208642e-05_dp,&
+ 8.48006137249868207e-05_dp, 2.16228093411334309e-04_dp, 5.13855469129673821e-04_dp, 1.15376339955213739e-03_dp, 2.47160443344679372e-03_dp, 5.08839625681514231e-03_dp,&
+ 1.01237778225120988e-02_dp, 1.95509905546010845e-02_dp, 3.67781907166757280e-02_dp, 6.75865115296859498e-02_dp, 1.21624002892814623e-01_dp, 2.14757714355392260e-01_dp,&
+ 3.72744327869088288e-01_dp, 6.36940431071695179e-01_dp, 1.07328260087689120e+00_dp, 1.78706575054210970e+00_dp, 2.95040589323683777e+00_dp, 4.86808565133181492e+00_dp,&
+ 8.22782834614862679e+00_dp, 1.53527937248053923e-07_dp, 9.30292090694303919e-07_dp, 3.69429667736570611e-06_dp, 1.18027092080259345e-05_dp, 3.28412887152215973e-05_dp,&
+ 8.28687759523755483e-05_dp, 1.94198515391785591e-04_dp, 4.29240839990999558e-04_dp, 9.04499659731136489e-04_dp, 1.83125625161053240e-03_dp, 3.58321300228387710e-03_dp,&
+ 6.80703685979662000e-03_dp, 1.26002412612291458e-02_dp, 2.27934815659137542e-02_dp, 4.03930275176479434e-02_dp, 7.02669241279521711e-02_dp, 1.20200804967896063e-01_dp,&
+ 2.02520698022807338e-01_dp, 3.36627475925464603e-01_dp, 5.53190825239166961e-01_dp, 9.02153291225225029e-01_dp, 1.47250849030304987e+00_dp, 2.46210442577815325e+00_dp,&
+ 4.60101076371775353e+00_dp]
+ aw%aw_erange_matrix(:, 39) = [4.54831153544427612e-08_dp, 4.74311903038898438e-07_dp, 2.44888557777143065e-06_dp, 9.32308394742767545e-06_dp, 2.95915288927230389e-05_dp,&
+ 8.29584078660507352e-05_dp, 2.12218152772813436e-04_dp, 5.05625512349111269e-04_dp, 1.13767652809357344e-03_dp, 2.44144169165903856e-03_dp, 5.03386058151400473e-03_dp,&
+ 1.00283211490093185e-02_dp, 1.93887642490112345e-02_dp, 3.65099283872732522e-02_dp, 6.71542261219890135e-02_dp, 1.20944571556333424e-01_dp, 2.13715815831136330e-01_dp,&
+ 3.71185887070233866e-01_dp, 6.34668776570053494e-01_dp, 1.07006079320012026e+00_dp, 1.78262916583945974e+00_dp, 2.94448692129155454e+00_dp, 4.86044271378568205e+00_dp,&
+ 8.21823878370653027e+00_dp, 1.42165942952855346e-07_dp, 8.89001610702881171e-07_dp, 3.57333074708115803e-06_dp, 1.14958044585542086e-05_dp, 3.21377578790810807e-05_dp,&
+ 8.13736727282972984e-05_dp, 1.91205375065229427e-04_dp, 4.23535649468275604e-04_dp, 8.94068906357722956e-04_dp, 1.81286680170237983e-03_dp, 3.55182937124549425e-03_dp,&
+ 6.75504634547574589e-03_dp, 1.25164764040281099e-02_dp, 2.26620736919062662e-02_dp, 4.01922123332519241e-02_dp, 6.99680751359165881e-02_dp, 1.19768218649619368e-01_dp,&
+ 2.01912999870729831e-01_dp, 3.35801860811374198e-01_dp, 5.52111298303506470e-01_dp, 9.00802638517182452e-01_dp, 1.47089907493926009e+00_dp, 2.46027174684356087e+00_dp,&
+ 4.59892398993987772e+00_dp]
+ aw%aw_erange_matrix(:, 40) = [4.26332790582793822e-08_dp, 4.55544206136908078e-07_dp, 2.37925183473571949e-06_dp, 9.11626334904722569e-06_dp, 2.90560504435212923e-05_dp,&
+ 8.17004889875167856e-05_dp, 2.09474117457653813e-04_dp, 4.99983900984721685e-04_dp, 1.12663318539456248e-03_dp, 2.42071040105016049e-03_dp, 4.99633835450934323e-03_dp,&
+ 9.96258442379749191e-03_dp, 1.92769570672496685e-02_dp, 3.63249095219593948e-02_dp, 6.68558923498574209e-02_dp, 1.20475406766376483e-01_dp, 2.12995986723446162e-01_dp,&
+ 3.70108684828051648e-01_dp, 6.33097934099508097e-01_dp, 1.06783207893617949e+00_dp, 1.77955909527023692e+00_dp, 2.94038989063624623e+00_dp, 4.85515116651880430e+00_dp,&
+ 8.21159837079276755e+00_dp, 1.34612764719713526e-07_dp, 8.61194007477554715e-07_dp, 3.49125284802499254e-06_dp, 1.12866852981321436e-05_dp, 3.16569858948818157e-05_dp,&
+ 8.03497133548326689e-05_dp, 1.89151871671935050e-04_dp, 4.19615901888986101e-04_dp, 8.86893879869551276e-04_dp, 1.80020424723260561e-03_dp, 3.53020009634539807e-03_dp,&
+ 6.71918701354781538e-03_dp, 1.24586613018964967e-02_dp, 2.25713186132279371e-02_dp, 4.00534441211037942e-02_dp, 6.97614577762599025e-02_dp, 1.19468999123271330e-01_dp,&
+ 2.01492477091762962e-01_dp, 3.35230321284752497e-01_dp, 5.51363731371360744e-01_dp, 8.99867050312488370e-01_dp, 1.46978400514046514e+00_dp, 2.45900184417820222e+00_dp,&
+ 4.59747803870346328e+00_dp]
+ aw%aw_erange_matrix(:, 41) = [3.97972590548516455e-08_dp, 4.36749112881947908e-07_dp, 2.30901822095820461e-06_dp, 8.90669065507326356e-06_dp, 2.85117175356736206e-05_dp,&
+ 8.04187756982368461e-05_dp, 2.06673117528046558e-04_dp, 4.94216810283568228e-04_dp, 1.11533067884091630e-03_dp, 2.39947110229914162e-03_dp, 4.95786323959217148e-03_dp,&
+ 9.89512729906643317e-03_dp, 1.91621474132992256e-02_dp, 3.61348098865640135e-02_dp, 6.65492040412706404e-02_dp, 1.19992874044612341e-01_dp, 2.12255329235387591e-01_dp,&
+ 3.68999882184251282e-01_dp, 6.31480441291888073e-01_dp, 1.06553645346505910e+00_dp, 1.77639597593752963e+00_dp, 2.93616768736423195e+00_dp, 4.84969691214935050e+00_dp,&
+ 8.20475280537622176e+00_dp, 1.27091452363502344e-07_dp, 8.33187435856259754e-07_dp, 3.40806720221057817e-06_dp, 1.10739933654662787e-05_dp, 3.11667995071938201e-05_dp,&
+ 7.93037753836723042e-05_dp, 1.87051235559900289e-04_dp, 4.15601409035354721e-04_dp, 8.79538074509779336e-04_dp, 1.78721154926010824e-03_dp, 3.50799043261123059e-03_dp,&
+ 6.68234146845954162e-03_dp, 1.23992217962518251e-02_dp, 2.24779652765556351e-02_dp, 3.99106362824236602e-02_dp, 6.95487353045896317e-02_dp, 1.19160818883065692e-01_dp,&
+ 2.01059207738448181e-01_dp, 3.34641268995125973e-01_dp, 5.50593039253774119e-01_dp, 8.98902290488593048e-01_dp, 1.46863396273117752e+00_dp, 2.45769198685639312e+00_dp,&
+ 4.59598661029939581e+00_dp]
+ case(26)
+ aw%energy_range(:) = [799.0_dp, 995.0_dp, 1293.0_dp, 1738.0_dp, 2238.0_dp, 3009.0_dp, 4377.0_dp,&
+ 6256.0_dp, 9034.0_dp, 15564.0_dp, 19500.0_dp, 22300.0_dp, 24783.0_dp, 41198.0_dp, 94407.0_dp, 189080.0_dp,&
+ 457444.0_dp, 2101965.0_dp, 14140999.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.00037867004555797054_dp, 0.002019373143542281_dp, 0.005074452374668418_dp, 0.009741339051894624_dp, 0.016351249099763064_dp,&
+ 0.025426574118427834_dp, 0.03775841037254848_dp, 0.05450081932003549_dp, 0.0772810957375601_dp, 0.1083363446608876_dp, 0.15069589349866513_dp,&
+ 0.20843076717336742_dp, 0.2869911650766578_dp, 0.3936564974164155_dp, 0.5381309695975518_dp, 0.7333307052011886_dp, 0.996427988952117_dp,&
+ 1.3502505778649674_dp, 1.8251937089224979_dp, 2.4619239536701665_dp, 3.3154239654767634_dp, 4.461579856601731_dp, 6.009262672635442_dp,&
+ 8.12630074937428_dp, 11.10929348730981_dp, 15.660501844751538_dp, 0.0009745069197489692_dp, 0.002323920525926464_dp, 0.003818499918990434_dp,&
+ 0.005569525222864092_dp, 0.007736056032946723_dp, 0.01054486610207425_dp, 0.014309337959120037_dp, 0.01944447015531593_dp, 0.026485944451580964_dp,&
+ 0.03612533116765179_dp, 0.04926670257709911_dp, 0.06710398765236568_dp, 0.09122022393749045_dp, 0.12371484118454482_dp, 0.16736960998240946_dp,&
+ 0.2258689406847251_dp, 0.30409900038431836_dp, 0.40856816694415354_dp, 0.548030961075663_dp, 0.7344894715293502_dp, 0.9849728438705977_dp,&
+ 1.3251021306723128_dp, 1.7972852200464182_dp, 2.4831111234607426_dp, 3.582848552118199_dp, 5.8876320817174905_dp]
+ aw%aw_erange_matrix(:, 2) = [0.00031416617596844365_dp, 0.0016768070133771967_dp, 0.004220387402167522_dp, 0.008122019548232636_dp, 0.013681535061623657_dp,&
+ 0.021375962641606915_dp, 0.03193242611639194_dp, 0.04641604327774391_dp, 0.0663338368572065_dp, 0.09376694799993701_dp, 0.13155072067060036_dp,&
+ 0.18352265415559924_dp, 0.2548586347835214_dp, 0.3525227140309385_dp, 0.4858648853075939_dp, 0.667414665262307_dp, 0.9139380450657599_dp,&
+ 1.2478576632771592_dp, 1.699195061182984_dp, 2.3083135493129188_dp, 3.13000622971369_dp, 4.240119346476375_dp, 5.747638276053859_dp,&
+ 7.820581475731412_dp, 10.755506760817696_dp, 15.2531099085639_dp, 0.0008086633399478686_dp, 0.001931716707111731_dp, 0.0031843549489835176_dp,&
+ 0.0046679761695975755_dp, 0.006529332077378777_dp, 0.008979243990088065_dp, 0.012309502604654843_dp, 0.016906748893981475_dp, 0.023272740862285972_dp,&
+ 0.03206195264016037_dp, 0.04413963056111703_dp, 0.060659468387992695_dp, 0.08316331669118938_dp, 0.11371010407957528_dp, 0.15504510373245767_dp,&
+ 0.21082547573489732_dp, 0.28592663287586667_dp, 0.38687165073350616_dp, 0.5224647206101295_dp, 0.7047999539903935_dp, 0.951040871895601_dp,&
+ 1.286968657510818_dp, 1.7551267580277088_dp, 2.437087428172129_dp, 3.5325565753903243_dp, 5.829332987897013_dp]
+ aw%aw_erange_matrix(:, 3) = [0.000251216262630506_dp, 0.0013422657589387847_dp, 0.0033852831378795366_dp, 0.006535679555855439_dp, 0.01105946790435755_dp,&
+ 0.017384205344456737_dp, 0.02616631610050564_dp, 0.03837171615696803_dp, 0.05537294469791371_dp, 0.07907682374899021_dp, 0.11210158563747868_dp,&
+ 0.15802208108125124_dp, 0.22170328658555793_dp, 0.3097484547351596_dp, 0.43109811316492785_dp, 0.5978298541062674_dp, 0.826228906983008_dp,&
+ 1.1382318360717252_dp, 1.5634041077266412_dp, 2.1417299191833186_dp, 2.9277541939220253_dp, 3.9972537939524453_dp, 5.459336924183542_dp,&
+ 7.482255655971381_dp, 10.362568049094785_dp, 14.79927594838438_dp, 0.0006467895131307655_dp, 0.0015483789662149572_dp, 0.002562990408244027_dp,&
+ 0.00378128864955077_dp, 0.005336413195947385_dp, 0.0074211270754708444_dp, 0.010302498712647285_dp, 0.014334977955021215_dp, 0.01998237358756267_dp,&
+ 0.027857715884000284_dp, 0.038782119259036095_dp, 0.05386231670249176_dp, 0.07459076970770032_dp, 0.10297648694866778_dp, 0.1417181535853474_dp,&
+ 0.19443583384059848_dp, 0.26598602063677856_dp, 0.36290208001606944_dp, 0.4940399248668749_dp, 0.671597172994337_dp, 0.9128949281590978_dp,&
+ 1.2439090969479831_dp, 1.7073582868867894_dp, 2.3848234540233704_dp, 3.4754029453297375_dp, 5.763153512206444_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0001950376405774879_dp, 0.0010434591619187578_dp, 0.002638226324824606_dp, 0.005113292156951265_dp, 0.00870086598207974_dp,&
+ 0.013778342596377403_dp, 0.020929407226154117_dp, 0.031017048599119232_dp, 0.04527407877688829_dp, 0.06542623021788685_dp, 0.09386550782858209_dp,&
+ 0.1338911807639374_dp, 0.19003887760085253_dp, 0.26852546690556994_dp, 0.3778478282417773_dp, 0.5295878007623821_dp, 0.739496104873784_dp,&
+ 1.0289606432203449_dp, 1.427022553455354_dp, 1.9732190338166054_dp, 2.721788596346289_dp, 3.7484019634398744_dp, 5.162286381612833_dp,&
+ 7.131961441982249_dp, 9.954041146838616_dp, 14.32582187195048_dp, 0.0005022997712497699_dp, 0.0012056339745159519_dp, 0.0020057022650528562_dp,&
+ 0.0029823455742529125_dp, 0.004254672143777001_dp, 0.0059963576674781395_dp, 0.008448134528374854_dp, 0.011930608474038368_dp, 0.016868224194481772_dp,&
+ 0.023830776674747995_dp, 0.03359223660591877_dp, 0.04720772204797841_dp, 0.06611395904656978_dp, 0.09226211932358148_dp, 0.12829508657243463_dp,&
+ 0.17778587596291995_dp, 0.24556239855995798_dp, 0.3381606409098896_dp, 0.4644850568708377_dp, 0.6368412465900805_dp, 0.8727231844202037_dp,&
+ 1.198329166055601_dp, 1.6565902038491545_dp, 2.329130996306286_dp, 3.414441737018883_dp, 5.692646250049292_dp]
+ aw%aw_erange_matrix(:, 5) = [0.0001570075292014777_dp, 0.0008410019818081912_dp, 0.002131222620982682_dp, 0.004145569234358363_dp, 0.007090677510918224_dp,&
+ 0.011305441203226727_dp, 0.01731697219552165_dp, 0.02590771238094241_dp, 0.03820108916428952_dp, 0.05578097500511556_dp, 0.08086136666211902_dp,&
+ 0.11652297811189155_dp, 0.16703767866605654_dp, 0.23830959694579532_dp, 0.33847251734047956_dp, 0.47869779524697986_dp, 0.6742880172162485_dp,&
+ 0.9461646148413084_dp, 1.3229154365464835_dp, 1.8436824667954244_dp, 2.5624225632785795_dp, 3.5546935048363073_dp, 4.929807210724086_dp,&
+ 6.856512184015644_dp, 9.631510529999963_dp, 13.950799086937636_dp, 0.0004044673162152666_dp, 0.0009731515874605558_dp, 0.0016264516115000137_dp,&
+ 0.002435950210582391_dp, 0.0035098078378292706_dp, 0.005006471432500407_dp, 0.0071456103103081205_dp, 0.010221155980366915_dp, 0.01462678603467543_dp,&
+ 0.02089809034158199_dp, 0.02977080559865047_dp, 0.042257136734592034_dp, 0.059746455952240894_dp, 0.08413972088086426_dp, 0.11803003373030124_dp,&
+ 0.1649465354635964_dp, 0.22968730801733273_dp, 0.31878354856943114_dp, 0.44117315496449167_dp, 0.6092463295611383_dp, 0.8406397450171417_dp,&
+ 1.161742484167732_dp, 1.6156774111835495_dp, 2.2841323787971173_dp, 3.36513821401701_dp, 5.635684641787822_dp]
+ aw%aw_erange_matrix(:, 6) = [0.00012173433282636892_dp, 0.000653044843078349_dp, 0.0016597094198001826_dp, 0.0032432122902587715_dp, 0.005583731099072486_dp,&
+ 0.00897974690437299_dp, 0.01389829106398585_dp, 0.021035914001762628_dp, 0.03139940878203811_dp, 0.046421111007702805_dp, 0.06812376578216424_dp,&
+ 0.09935124887637425_dp, 0.1440867725430818_dp, 0.20788864079466032_dp, 0.29848482929563186_dp, 0.42658280937440796_dp, 0.6069727081348725_dp,&
+ 0.8600354677167223_dp, 1.213825493528422_dp, 1.7070100456167858_dp, 2.393195963336712_dp, 3.3477843441213753_dp, 4.680165709088339_dp,&
+ 6.5593534066075065_dp, 9.282192058087176_dp, 13.54332387201712_dp, 0.00031370730222591084_dp, 0.0007570695990484558_dp, 0.0012727251500342805_dp,&
+ 0.0019236429401252328_dp, 0.0028062999069873792_dp, 0.004062578033501044_dp, 0.00588929507373728_dp, 0.00855186255429553_dp, 0.012411138722817702_dp,&
+ 0.017965594962442332_dp, 0.025908461038187995_dp, 0.03720320806718786_dp, 0.05318444551258281_dp, 0.0756939715032581_dp, 0.10726485539108421_dp,&
+ 0.1513713746489183_dp, 0.21277116226058032_dp, 0.297982246389678_dp, 0.41597262011480124_dp, 0.5792223633874778_dp, 0.8055284041136077_dp,&
+ 1.1215023110944804_dp, 1.5705011278690364_dp, 2.234313406989394_dp, 3.310497107984999_dp, 5.57261913216792_dp]
+ aw%aw_erange_matrix(:, 7) = [8.814790587980884e-05_dp, 0.0004738555483452858_dp, 0.001209162224838196_dp, 0.0023779784718090265_dp, 0.004131730232456246_dp,&
+ 0.006724209366814066_dp, 0.010555208090639503_dp, 0.01622487926307075_dp, 0.02460909648355756_dp, 0.036969426022926015_dp, 0.05511124918766332_dp,&
+ 0.08160627715945637_dp, 0.12010201314867164_dp, 0.17574961207193285_dp, 0.2557933011845474_dp, 0.37038042948632577_dp, 0.5336738618256365_dp,&
+ 0.7653829566132899_dp, 1.092887558492255_dp, 1.5542408605150586_dp, 2.2025803308040364_dp, 3.113074354623969_dp, 4.395181735531908_dp,&
+ 6.218242520601409_dp, 8.87933263258288_dp, 13.071612343557268_dp, 0.0002272629071152242_dp, 0.0005507552663901378_dp, 0.000933441836691016_dp,&
+ 0.001428839311231769_dp, 0.002120237386026644_dp, 0.0031304749854564546_dp, 0.0046303259129662575_dp, 0.006853192947474817_dp, 0.01012290436688526_dp,&
+ 0.014894995829624644_dp, 0.021812185159477044_dp, 0.03177875816649789_dp, 0.046061554071504564_dp, 0.06642770441212868_dp, 0.09533262717257988_dp,&
+ 0.1361769876776064_dp, 0.19366000664329205_dp, 0.27427258699605633_dp, 0.38700765699040135_dp, 0.5444449877078907_dp, 0.7645728576669742_dp,&
+ 1.0742808530249828_dp, 1.517233705376216_dp, 2.175383868205045_dp, 3.245782737215517_dp, 5.498017132429984_dp]
+ aw%aw_erange_matrix(:, 8) = [6.476469600717215e-05_dp, 0.00034891783555501116_dp, 0.0008941569546994692_dp, 0.001770490093242039_dp, 0.003106199645499256_dp,&
+ 0.0051184335340408015_dp, 0.008151285145167414_dp, 0.012724953439821175_dp, 0.019606591631387022_dp, 0.029915037575018_dp, 0.04527205344500337_dp,&
+ 0.06801655695473027_dp, 0.10150518730808944_dp, 0.1505317627030831_dp, 0.22191039986921127_dp, 0.32528375402693044_dp, 0.4742415082162232_dp,&
+ 0.6878698417118773_dp, 0.9929114555738491_dp, 1.426826349178114_dp, 2.0422826887022167_dp, 2.914194983288514_dp, 4.152054985305785_dp,&
+ 5.925500508772846_dp, 8.531868435284434_dp, 12.663118219514553_dp, 0.00016705896835219716_dp, 0.0004066434009563924_dp, 0.0006951433499719869_dp,&
+ 0.0010783855735630424_dp, 0.0016285976932411544_dp, 0.002452428674095891_dp, 0.003698822692463904_dp, 0.005574655476173014_dp, 0.008372611367675033_dp,&
+ 0.012511058447330109_dp, 0.01858785984880576_dp, 0.027453700962179424_dp, 0.04031295449132496_dp, 0.058862610090479196_dp, 0.08548341120436852_dp,&
+ 0.12350282964756092_dp, 0.17755835622889385_dp, 0.25410556179535176_dp, 0.3621484874152968_dp, 0.5143475290193675_dp, 0.728860394738634_dp,&
+ 1.0328353641593397_dp, 1.470237966477004_dp, 2.1232087233584265_dp, 3.1884016755763915_dp, 5.431943610280663_dp]
+ aw%aw_erange_matrix(:, 9) = [4.714267869850108e-05_dp, 0.00025461261481751654_dp, 0.0006556761719344113_dp, 0.001308468824945838_dp, 0.002321150197926946_dp,&
+ 0.003878461874698709_dp, 0.006274894154406174_dp, 0.009959418801224819_dp, 0.01560204953263909_dp, 0.02419303582580116_dp, 0.03718681238787033_dp,&
+ 0.056707527706112246_dp, 0.08584014778037409_dp, 0.12904063424870618_dp, 0.19271144671607915_dp, 0.2860061442236756_dp, 0.4219516424878554_dp,&
+ 0.6190135338939492_dp, 0.903289679923842_dp, 1.3116275192031754_dp, 1.8961959695325519_dp, 2.7316203672239747_dp, 3.927395419802043_dp,&
+ 5.653448502577673_dp, 8.207416056488858_dp, 12.280210966173971_dp, 0.00012167157119425256_dp, 0.00029765224752192887_dp, 0.0005138446741296063_dp,&
+ 0.0008093181914490766_dp, 0.0012462946084647903_dp, 0.0019166924309280847_dp, 0.002949916160920999_dp, 0.004529176144148134_dp, 0.006918766955709136_dp,&
+ 0.010502242217013015_dp, 0.01583456242948638_dp, 0.02371430118668526_dp, 0.03528415663667773_dp, 0.05217068929971722_dp, 0.07667811497799712_dp,&
+ 0.11205676769912475_dp, 0.16287592945291882_dp, 0.23554669511627027_dp, 0.3390729578857381_dp, 0.4861840636834821_dp, 0.6951983617349604_dp,&
+ 0.9935218371108636_dp, 1.4254333766864864_dp, 2.073293734219426_dp, 3.133425653975384_dp, 5.368705541720747_dp]
+ aw%aw_erange_matrix(:, 10) = [2.9443353786715123e-05_dp, 0.00015968865887835848_dp, 0.0004146519996900374_dp, 0.0008385653229066657_dp, 0.0015154710444555315_dp,&
+ 0.002590553782265674_dp, 0.004297458120933096_dp, 0.0069977275055487075_dp, 0.011241365987483699_dp, 0.017857778834567364_dp, 0.02808897944065483_dp,&
+ 0.043782322061949784_dp, 0.06766742773244867_dp, 0.1037518951041952_dp, 0.1578839462681274_dp, 0.2385489270378087_dp, 0.3579930679384087_dp,&
+ 0.5338068043298525_dp, 0.791161589813274_dp, 1.1660045885058554_dp, 1.7097467191304874_dp, 2.496543051760848_dp, 3.635839789357852_dp,&
+ 5.297957374408996_dp, 7.7810148585358885_dp, 11.774676503198675_dp, 7.606243073747058e-05_dp, 0.000187654111092642_dp, 0.00032937906982910266_dp,&
+ 0.0005320965908695892_dp, 0.0008454741794288284_dp, 0.0013429974722876687_dp, 0.0021300795419892347_dp, 0.003360638155325681_dp, 0.005262693302642904_dp,&
+ 0.008173980176265023_dp, 0.0125917789247931_dp, 0.01924336061080778_dp, 0.029185562811316818_dp, 0.043945018416338716_dp, 0.0657148857554778_dp,&
+ 0.09763017054646428_dp, 0.1441532549628787_dp, 0.2116173831358168_dp, 0.3090075514896036_dp, 0.4491309451933545_dp, 0.6505180076674358_dp,&
+ 0.9409371471889534_dp, 1.3651313188527026_dp, 2.0058258806612064_dp, 3.0589785756980588_dp, 5.283171742769873_dp]
+ aw%aw_erange_matrix(:, 11) = [2.4221939880648916e-05_dp, 0.00013162518783252502_dp, 0.0003431050538880391_dp, 0.000698189132475488_dp, 0.001272589233863707_dp,&
+ 0.0021976433259721703_dp, 0.0036856546266738404_dp, 0.00606744928063478_dp, 0.009850534125738348_dp, 0.015806672884776662_dp, 0.025100760660057786_dp,&
+ 0.03947837634367904_dp, 0.06153686837154947_dp, 0.09511493193970912_dp, 0.14584951983758487_dp, 0.22196820786998617_dp, 0.335412339591795_dp,&
+ 0.5034260546260962_dp, 0.7508088209241689_dp, 1.1131398816244866_dp, 1.6415127034352714_dp, 2.409875693114849_dp, 3.527638075049888_dp,&
+ 5.165269756856301_dp, 7.621098250903887_dp, 11.584360794128232_dp, 6.260081073117763e-05_dp, 0.0001550481237336088_dp, 0.00027425459381644776_dp,&
+ 0.0004482075757040794_dp, 0.0007220779147665958_dp, 0.0011628086873198505_dp, 0.0018674017508154028_dp, 0.0029793398493427954_dp, 0.004713349903984844_dp,&
+ 0.00739000908391551_dp, 0.011484659947886356_dp, 0.017697084080236986_dp, 0.0270505598375803_dp, 0.04103207563980036_dp, 0.06178995726179555_dp,&
+ 0.09241161287658448_dp, 0.13731382654384652_dp, 0.20279428302236951_dp, 0.2978245159544139_dp, 0.43523615879690214_dp, 0.6336386632046422_dp,&
+ 0.9209431632237726_dp, 1.3420830429471422_dp, 1.9799449671624767_dp, 3.0303736903126226_dp, 5.250335959421828_dp]
+ aw%aw_erange_matrix(:, 12) = [2.1564828392874976e-05_dp, 0.00011732900716735743_dp, 0.00030658459101179467_dp, 0.0006263105810174703_dp, 0.0011476627771254888_dp,&
+ 0.001994368166545555_dp, 0.0033669949117497793_dp, 0.005579455105811666_dp, 0.009115754087433222_dp, 0.014715595238257124_dp, 0.023500724387693545_dp,&
+ 0.037159447358704495_dp, 0.058214268280899095_dp, 0.09040780191303678_dp, 0.1392561892112249_dp, 0.21283882379303048_dp, 0.32292082611394995_dp,&
+ 0.48654501997143224_dp, 0.728293233827829_dp, 1.0835278065593024_dp, 1.6031531143244464_dp, 2.360992062122655_dp, 3.466427749396279_dp,&
+ 5.090015465029667_dp, 7.53020860247837_dp, 11.47601339726731_dp, 5.574871333711635e-05_dp, 0.00013841643320123116_dp, 0.0002460246878681958_dp,&
+ 0.00040498060578160683_dp, 0.0006579585426571892_dp, 0.0010682911223034433_dp, 0.0017283542359863323_dp, 0.002775834478515568_dp, 0.0044179824445092115_dp,&
+ 0.006965640555090498_dp, 0.010881623599671406_dp, 0.01684992291318925_dp, 0.025874425224763156_dp, 0.03941906165439105_dp, 0.05960588810571241_dp,&
+ 0.08949416080199679_dp, 0.13347332726212882_dp, 0.1978191873760846_dp, 0.29149390319797547_dp, 0.4273416663588288_dp, 0.6240165631691874_dp,&
+ 0.9095125059692878_dp, 1.3288753869034111_dp, 1.9650901753832044_dp, 3.013944114046813_dp, 5.231485480677545_dp]
+ aw%aw_erange_matrix(:, 13) = [1.968079412594506e-05_dp, 0.00010718493641102105_dp, 0.0002806353581711279_dp, 0.0005751273705017238_dp, 0.0010584284934163331_dp,&
+ 0.001848589008502448_dp, 0.003137423022955394_dp, 0.005226209962089254_dp, 0.008581348030605833_dp, 0.013918427654363913_dp, 0.022326614770472653_dp,&
+ 0.03545081033521797_dp, 0.0557565940780925_dp, 0.0869132477657862_dp, 0.1343443806186961_dp, 0.20601549407747916_dp, 0.31355578173538573_dp,&
+ 0.4738522008187966_dp, 0.7113173707719063_dp, 1.061144148921342_dp, 1.574088149869358_dp, 2.323872276609698_dp, 3.4198568581275923_dp,&
+ 5.032662209058464_dp, 7.460841068394957_dp, 11.393228561803523_dp, 5.0889409017427654e-05_dp, 0.00012660472263169967_dp, 0.0002259210980998603_dp,&
+ 0.0003740655095418279_dp, 0.0006118384940478349_dp, 0.000999874816429794_dp, 0.0016270976310772938_dp, 0.0026268356436642305_dp, 0.004200673380690335_dp,&
+ 0.006652036004218306_dp, 0.010434155159748769_dp, 0.016218897955811638_dp, 0.02499520138410832_dp, 0.038209141684542064_dp, 0.05796233141783732_dp,&
+ 0.08729199004516089_dp, 0.13056598592688773_dp, 0.19404256395643912_dp, 0.2866758412418721_dp, 0.4213188646546868_dp, 0.6166595702412992_dp,&
+ 0.900755794469128_dp, 1.3187413549017004_dp, 1.9536794891939209_dp, 3.00131680399958_dp, 5.21699996325917_dp]
+ aw%aw_erange_matrix(:, 14) = [1.2674056285680165e-05_dp, 6.938931077849002e-05_dp, 0.0001836100520485683_dp, 0.0003826779493233582_dp, 0.0007202040757498056_dp,&
+ 0.0012903838734080182_dp, 0.002248236525495258_dp, 0.00384173613615444_dp, 0.006462366726733287_dp, 0.010722120046078792_dp, 0.017568831387303644_dp,&
+ 0.028457372697558436_dp, 0.04560190325370437_dp, 0.07234504966297221_dp, 0.11369479964375559_dp, 0.1771007906182374_dp, 0.2735712154870606_dp,&
+ 0.4192744014302692_dp, 0.637834936286395_dp, 0.9636469742972286_dp, 1.4467538592483378_dp, 2.1603857309953622_dp, 3.2137696680006567_dp,&
+ 4.777814618678099_dp, 7.151554564591586_dp, 11.0231252332385_dp, 3.2810000033385146e-05_dp, 8.24959243779711e-05_dp, 0.00015031831931530549_dp,&
+ 0.0002565196061853303_dp, 0.0004339110517853371_dp, 0.0007317640998323022_dp, 0.0012244457171152918_dp, 0.0020265452915832964_dp, 0.0033148331774103383_dp,&
+ 0.005359851622721186_dp, 0.008571929299584299_dp, 0.013568145467107103_dp, 0.021269239209990003_dp, 0.033039016114448296_dp, 0.05088380967787895_dp,&
+ 0.07773666161595308_dp, 0.11786137108586371_dp, 0.177428416908905_dp, 0.26534598308886587_dp, 0.3944982542877601_dp, 0.583721306443492_dp,&
+ 0.8613658745137791_dp, 1.2729807136647084_dp, 1.9020150846924464_dp, 2.9440730604569967_dp, 5.151372469471086_dp]
+ aw%aw_erange_matrix(:, 15) = [6.186479912580181e-06_dp, 3.4233291323971405e-05_dp, 9.256119767321995e-05_dp, 0.00019951435503347473_dp, 0.000391782808208518_dp,&
+ 0.0007348447007241284_dp, 0.0013393430685668998_dp, 0.0023881407715703996_dp, 0.004179359736833124_dp, 0.007193105406189777_dp, 0.012193603475754204_dp,&
+ 0.020384081500457202_dp, 0.03363963393153156_dp, 0.054854535910931194_dp, 0.0884563818462964_dp, 0.1411619416118249_dp, 0.22308161106495417_dp,&
+ 0.3493255541517698_dp, 0.5423345187791336_dp, 0.835274429372801_dp, 1.277059229828611_dp, 1.9400953490632433_dp, 2.933324383841704_dp,&
+ 4.428041894721328_dp, 6.724054874045832_dp, 10.508722000292966_dp, 1.605270034684411e-05_dp, 4.1236777606757607e-05_dp, 7.834646084720584e-05_dp,&
+ 0.00014151002746774427_dp, 0.0002536786392750537_dp, 0.00045044627173442046_dp, 0.0007883280940822237_dp, 0.0013578695679215443_dp, 0.0023029240253660617_dp,&
+ 0.0038494157006882636_dp, 0.006348322282988488_dp, 0.010339483088961496_dp, 0.016645606665935727_dp, 0.026509781185170438_dp, 0.04179532069895724_dp,&
+ 0.06527461060266015_dp, 0.10104501326885583_dp, 0.15512766861607885_dp, 0.23633651295613511_dp, 0.3575717157671407_dp, 0.5378622500972828_dp,&
+ 0.8059829678217727_dp, 1.2081212436199635_dp, 1.8283703742955213_dp, 2.862256950464903_dp, 5.057682060420358_dp]
+ aw%aw_erange_matrix(:, 16) = [3.398642214192787e-06_dp, 1.9025312202899538e-05_dp, 5.266161038810626e-05_dp, 0.00011755445811565422_dp, 0.00024054583577387794_dp,&
+ 0.00047036774204517446_dp, 0.0008915989199018158_dp, 0.0016480620414409948_dp, 0.00298048536052862_dp, 0.005285920675047294_dp, 0.009210353187127669_dp,&
+ 0.01579153884075367_dp, 0.026677173353753962_dp, 0.044455103994883116_dp, 0.07314891087057689_dp, 0.11895589362798491_dp, 0.19133835932619525_dp,&
+ 0.3046280564326354_dp, 0.48037697428284243_dp, 0.7508072430736709_dp, 1.1639388014245502_dp, 1.7914938071058262_dp, 2.7421307814095353_dp,&
+ 4.18739539739007_dp, 6.427708444690209_dp, 10.150038983021496_dp, 8.840904815568487e-06_dp, 2.3243411245798182e-05_dp, 4.61419948505059e-05_dp,&
+ 8.798822647972772e-05_dp, 0.0001658923006259312_dp, 0.0003074688101295367_dp, 0.0005583537180990002_dp, 0.0009937301893068423_dp, 0.001735787847791623_dp,&
+ 0.002980424755862107_dp, 0.005037848905051201_dp, 0.008393759041169294_dp, 0.013800737687712429_dp, 0.022413678806554142_dp, 0.03598900168633015_dp,&
+ 0.057175813550115986_dp, 0.08993936716796855_dp, 0.1401758115607063_dp, 0.21660925146824841_dp, 0.33212798532910376_dp, 0.5058820683958832_dp,&
+ 0.7669510501463104_dp, 1.1620122321700583_dp, 1.775691260253936_dp, 2.8035588004499257_dp, 4.990540570288636_dp]
+ aw%aw_erange_matrix(:, 17) = [1.5924512725077461e-06_dp, 9.091861526358144e-06_dp, 2.617525769293245e-05_dp, 6.171102340282755e-05_dp, 0.00013395463159750724_dp,&
+ 0.00027703236128610273_dp, 0.0005524440573740519_dp, 0.0010685815369178362_dp, 0.002012774020332085_dp, 0.0037030176407984823_dp, 0.006670370391832498_dp,&
+ 0.011788596543354984_dp, 0.020475865129561125_dp, 0.03500529115221168_dp, 0.058978461638664194_dp, 0.09804109351785203_dp, 0.16095595007242294_dp,&
+ 0.26120029165707_dp, 0.41933283009911826_dp, 0.6664993354060413_dp, 1.0496740893941348_dp, 1.6397469396988835_dp, 2.54498795937397_dp,&
+ 3.9371777982755236_dp, 6.11745128618483_dp, 9.772519404832513_dp, 4.1599386041678434e-06_dp, 1.1373735340879785e-05_dp, 2.420740702971419e-05_dp,&
+ 4.980537853880897e-05_dp, 0.00010018420860309139_dp, 0.00019590630897285626_dp, 0.0003724648960236611_dp, 0.0006901948951647627_dp, 0.0012498546464018527_dp,&
+ 0.0022170391172995803_dp, 0.0038600176308915607_dp, 0.006607746433407134_dp, 0.011137935349822067_dp, 0.018509521510997304_dp, 0.030360279138384877_dp,&
+ 0.04919938780336098_dp, 0.07883793047658633_dp, 0.12502011000770785_dp, 0.19635093903737422_dp, 0.3056814182538295_dp, 0.47227226126957916_dp,&
+ 0.7255282521113733_dp, 1.112683210316189_dp, 1.7190059451835937_dp, 2.7402160914459284_dp, 4.918151105513321_dp]
+ aw%aw_erange_matrix(:, 18) = [4.376362889407548e-07_dp, 2.643443650482503e-06_dp, 8.433114286038146e-06_dp, 2.2439275175400065e-05_dp, 5.458751916823435e-05_dp,&
+ 0.00012469615312218161_dp, 0.00027090154346575427_dp, 0.0005643774226213476_dp, 0.001134437804378847_dp, 0.0022105491534259005_dp, 0.004191467146338867_dp,&
+ 0.007757292968144634_dp, 0.014048601297429358_dp, 0.024949196870902246_dp, 0.04352732410856656_dp, 0.07471686858797275_dp, 0.12635898905420878_dp,&
+ 0.21078138430975438_dp, 0.3471766909066865_dp, 0.5651735745080563_dp, 0.9102276762862731_dp, 1.451965060215205_dp, 2.2979916853626663_dp,&
+ 3.6203271934806356_dp, 5.721128905491445_dp, 9.287036012890901_dp, 1.15698350323011e-06_dp, 3.5239168925237668e-06_dp, 8.790907369106611e-06_dp,&
+ 2.0802473841355257e-05_dp, 4.666225571530836e-05_dp, 9.967519249166123e-05_dp, 0.00020419454443829576_dp, 0.0004036329368680413_dp, 0.0007736164897230748_dp,&
+ 0.0014432538211834921_dp, 0.002629031662183179_dp, 0.004688130413199208_dp, 0.008201289641287034_dp, 0.014100202125235302_dp, 0.023861417673799547_dp,&
+ 0.03979881543108159_dp, 0.06550130495364699_dp, 0.10648414776164583_dp, 0.17115716235174305_dp, 0.27227855433947445_dp, 0.42921718067635106_dp,&
+ 0.6717958687439105_dp, 1.048026560686365_dp, 1.6441450980118213_dp, 2.656245656029467_dp, 4.82228579092364_dp]
+ aw%aw_erange_matrix(:, 19) = [9.23626066730038e-08_dp, 6.508986506667573e-07_dp, 2.548256199033377e-06_dp, 8.121244988671366e-06_dp, 2.280050217208556e-05_dp,&
+ 5.838011937544951e-05_dp, 0.00013919237871694767_dp, 0.0003133658603796936_dp, 0.0006727986081208618_dp, 0.0013877632092122146_dp, 0.002765631333703304_dp,&
+ 0.005348711634689046_dp, 0.010074592422860395_dp, 0.018535050517138794_dp, 0.03338852029027121_dp, 0.05900918410430352_dp, 0.10249708343303293_dp,&
+ 0.17523445903983162_dp, 0.2952639242558341_dp, 0.4909040641368631_dp, 0.8062587841364091_dp, 1.3097798505481377_dp, 2.1083909166084847_dp,&
+ 3.3742290423813217_dp, 5.410341564313699_dp, 8.903545764950158_dp, 2.5312239739000636e-07_dp, 9.960996067355009e-07_dp, 3.1628525158730217e-06_dp,&
+ 8.836550056217969e-06_dp, 2.2389728532275477e-05_dp, 5.264557648617341e-05_dp, 0.0001166810769940904_dp, 0.00024642731945934143_dp, 0.0004998727804625503_dp,&
+ 0.0009797084412907111_dp, 0.0018638236468942935_dp, 0.00345441392005227_dp, 0.0062559619517267165_dp, 0.011097497158462704_dp, 0.019322067389699597_dp,&
+ 0.03307729968505806_dp, 0.05575685817980752_dp, 0.09266621527033955_dp, 0.15202316630925258_dp, 0.24647013442575488_dp, 0.39542567933234785_dp,&
+ 0.6290352095921129_dp, 0.9959743276132635_dp, 1.583367038071677_dp, 2.5877759334182198_dp, 4.74419254971056_dp]
+ aw%aw_erange_matrix(:, 20) = [1.6637944502107968e-08_dp, 1.8303408054343632e-07_dp, 9.687195306133241e-07_dp, 3.7389122528334316e-06_dp, 1.1973447021251308e-05_dp,&
+ 3.378096920589386e-05_dp, 8.68338189070593e-05_dp, 0.00020767968945116668_dp, 0.00046874696407475663_dp, 0.001008553647726778_dp, 0.0020841046186256115_dp,&
+ 0.0041598936699362606_dp, 0.008056312504669037_dp, 0.015193061067365586_dp, 0.02798246122774749_dp, 0.050456461866690214_dp, 0.08925401954572831_dp,&
+ 0.15515900119886547_dp, 0.2654733104360881_dp, 0.44765566677475566_dp, 0.7449030289121367_dp, 1.2248551649261998_dp, 1.9939328236196414_dp,&
+ 3.2243037705041826_dp, 5.219599665831332_dp, 8.666863277748455_dp, 5.318821639180232e-08_dp, 3.4945656362875746e-07_dp, 1.4305518660978924e-06_dp,&
+ 4.650456118314243e-06_dp, 1.30922605762957e-05_dp, 3.33205562494026e-05_dp, 7.860562991572967e-05_dp, 0.00017467466389322248_dp, 0.0003697061169016621_dp,&
+ 0.0007513106176187417_dp, 0.0014748157046539873_dp, 0.0028095645215491876_dp, 0.005213528655212034_dp, 0.009451865748843455_dp, 0.016782910646881463_dp,&
+ 0.029246610819691533_dp, 0.05010725392331038_dp, 0.08452724443086411_dp, 0.14058736988255555_dp, 0.23083686098028847_dp, 0.37470521981828925_dp,&
+ 0.6025298048228135_dp, 0.9634165096071392_dp, 1.5450976370872966_dp, 2.5445132697805617_dp, 4.694880341120372_dp]
+ case(28)
+ aw%energy_range(:) = [1545.0_dp, 2002.0_dp, 2600.0_dp, 3300.0_dp, 4000.0_dp, 5000.0_dp, 5800.0_dp,&
+ 7000.0_dp, 8500.0_dp, 11000.0_dp, 14000.0_dp, 18000.0_dp, 22000.0_dp, 30000.0_dp, 40000.0_dp, 55000.0_dp,&
+ 75000.0_dp, 100000.0_dp, 140000.0_dp, 200000.0_dp, 280000.0_dp, 400000.0_dp, 700000.0_dp, 1200000.0_dp,&
+ 2000000.0_dp, 4500000.0_dp, 10000000.0_dp, 50000000.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.00019912749139307142_dp, 0.0010623606743332262_dp, 0.002671743519332409_dp, 0.00513532276440788_dp, 0.008635195625198482_dp,&
+ 0.013459847519256876_dp, 0.020047630847673463_dp, 0.029039389901087887_dp, 0.04134031090156478_dp, 0.05819756722342521_dp, 0.0813050912035362_dp,&
+ 0.11294734291964816_dp, 0.156193889583069_dp, 0.21515890144425773_dp, 0.2953443526600425_dp, 0.4040922882505582_dp, 0.5511803231110346_dp,&
+ 0.7496069714265129_dp, 1.016632455219541_dp, 1.3751727396754474_dp, 1.8557042554346754_dp, 2.4989586763196456_dp, 3.3599578911008456_dp,&
+ 4.514593597566258_dp, 6.071708534726409_dp, 8.199087984832916_dp, 11.19334614657497_dp, 15.75712024734422_dp, 0.0005125044577801448_dp,&
+ 0.0012232237231645984_dp, 0.00201318827111783_dp, 0.0029437832219448537_dp, 0.004103311596300065_dp, 0.005618171589079525_dp, 0.007663188401742024_dp,&
+ 0.010469929287815255_dp, 0.01433805703894519_dp, 0.01965640843594298_dp, 0.026936172517646257_dp, 0.036855644579373535_dp, 0.05031748334107659_dp,&
+ 0.06852207829804384_dp, 0.09306268185731213_dp, 0.12604985461633972_dp, 0.1702755103243793_dp, 0.22943160937864643_dp, 0.30840755489079047_dp,&
+ 0.4137086894086003_dp, 0.5540782272946391_dp, 0.741497238773558_dp, 0.9929644420040254_dp, 1.3340651862992305_dp, 1.8071782497597113_dp,&
+ 2.4938998954135005_dp, 3.5946345041711467_dp, 5.901304226915114_dp]
+ aw%aw_erange_matrix(:, 2) = [0.00015937273545708875_dp, 0.0008511031358508971_dp, 0.0021444475784000504_dp, 0.004133806965295614_dp, 0.006979927658415096_dp,&
+ 0.010939953042854741_dp, 0.016407375175241108_dp, 0.02396000912675003_dp, 0.034417229669099075_dp, 0.04891406525328216_dp, 0.06900316741446434_dp,&
+ 0.09679560984224389_dp, 0.13515199610246875_dp, 0.18793838914519878_dp, 0.2603666777263224_dp, 0.3594458206099125_dp, 0.494579482258333_dp,&
+ 0.6783583159834518_dp, 0.927614454599119_dp, 1.2648378420472655_dp, 1.7201130600602677_dp, 2.3338552489887388_dp, 3.1608903963862245_dp,&
+ 4.2770721150582895_dp, 5.7913663447139845_dp, 7.871758093638662_dp, 10.814809416909151_dp, 15.321476179970999_dp, 0.00041027809665924954_dp,&
+ 0.0009811723452880425_dp, 0.001620915236450962_dp, 0.0023840944111134044_dp, 0.0033503311465523967_dp, 0.004634503191430588_dp, 0.006395709602901231_dp,&
+ 0.008844913900028784_dp, 0.012257024616981905_dp, 0.016993101307172367_dp, 0.02353379728419698_dp, 0.03252363542798268_dp, 0.04482787026200198_dp,&
+ 0.06160612640371776_dp, 0.08440876245542936_dp, 0.11530375228655552_dp, 0.15704466612137769_dp, 0.21329510792248377_dp, 0.28893382637364007_dp,&
+ 0.39048261973383075_dp, 0.5267381633327601_dp, 0.7097795124230211_dp, 0.9567475153369529_dp, 1.2933958092367415_dp, 1.762243934642854_dp,&
+ 2.4448656022179347_dp, 3.5410603027618426_dp, 5.839188641520334_dp]
+ aw%aw_erange_matrix(:, 3) = [0.00012724350537371705_dp, 0.0006802420548887551_dp, 0.0017174005833444652_dp, 0.0033210405572595314_dp, 0.005632832416553322_dp,&
+ 0.008881578544535886_dp, 0.013419698685145537_dp, 0.019766846961404197_dp, 0.028663060595610065_dp, 0.041139669406250204_dp, 0.058618369068556976_dp,&
+ 0.08304861028830621_dp, 0.11709467333563459_dp, 0.16438742365500805_dp, 0.2298611471707931_dp, 0.32020292243210463_dp, 0.44445136041510835_dp,&
+ 0.6147946527884036_dp, 0.8476375115705392_dp, 1.1650387509190727_dp, 1.5966797391113152_dp, 2.1826420752053064_dp, 2.9775354931417777_dp,&
+ 4.057156308900191_dp, 5.530582551166736_dp, 7.5660060038749855_dp, 10.45997985096501_dp, 14.911921279047414_dp, 0.00032764611790808316_dp,&
+ 0.0007852281095230586_dp, 0.001302499732766977_dp, 0.001927928018050743_dp, 0.0027331746862386277_dp, 0.0038223319490506384_dp, 0.005339653436386936_dp,&
+ 0.0074768267093066575_dp, 0.010485860861582824_dp, 0.01470204224626301_dp, 0.020577182689456824_dp, 0.028723198501018832_dp, 0.03996852241361688_dp,&
+ 0.05543195597157087_dp, 0.07662014166796133_dp, 0.10555670439639143_dp, 0.14495398753342661_dp, 0.1984431170697882_dp, 0.27088687577758624_dp,&
+ 0.36881736713632424_dp, 0.501078546468407_dp, 0.6798426309902373_dp, 0.9223911021644032_dp, 1.2546500752337444_dp, 1.719292335657813_dp,&
+ 2.3978939243834243_dp, 3.489702010303218_dp, 5.779704886427998_dp]
+ aw%aw_erange_matrix(:, 4) = [0.0001035812061619439_dp, 0.000554312958948722_dp, 0.0014022178351092648_dp, 0.0027199186238307522_dp, 0.004633626332072742_dp,&
+ 0.007348901862042884_dp, 0.011184100569752935_dp, 0.016610348266822107_dp, 0.02430141997172798_dp, 0.03520198814732897_dp, 0.05062394356636958_dp,&
+ 0.0723803681708885_dp, 0.10296857818003698_dp, 0.14581768397450023_dp, 0.2056217187942231_dp, 0.28878665461351954_dp, 0.4040292970175386_dp,&
+ 0.5631795391897031_dp, 0.7822574690472879_dp, 1.0829291748663241_dp, 1.4945032140919154_dp, 2.056746330708999_dp, 2.8240560994099004_dp,&
+ 3.87216062398999_dp, 5.31022885971396_dp, 7.306643557351196_dp, 10.157983272563953_dp, 14.562388075641433_dp, 0.000266779348158189_dp,&
+ 0.0006406783010995833_dp, 0.0010669475657666657_dp, 0.0015890577230093321_dp, 0.0022720547662622424_dp, 0.003210897076964011_dp, 0.004537212534376952_dp,&
+ 0.006426464787961385_dp, 0.009111540381231737_dp, 0.012906037854636046_dp, 0.018237038812244945_dp, 0.025687953276114096_dp, 0.036054499502532374_dp,&
+ 0.05041868971863853_dp, 0.070247180509793_dp, 0.0975222869562315_dp, 0.134916933126155_dp, 0.1860296678962944_dp, 0.2557045471811927_dp,&
+ 0.3504778528812439_dp, 0.4792309189974202_dp, 0.6542157222577841_dp, 0.8928389893219679_dp, 1.2211855078507017_dp, 1.6820762830637361_dp,&
+ 2.357109509558417_dp, 3.4450757129111187_dp, 5.728067480861656_dp]
+ aw%aw_erange_matrix(:, 5) = [8.771437194659891e-05_dp, 0.00046981282949284237_dp, 0.0011904567715385075_dp, 0.0023152670914235655_dp, 0.003959200577898668_dp,&
+ 0.006310722793342447_dp, 0.009662905002781183_dp, 0.01445070779560698_dp, 0.021298505075191456_dp, 0.031086296591640365_dp, 0.04504371996352949_dp,&
+ 0.06488109904164477_dp, 0.09296905461591826_dp, 0.13258247030343728_dp, 0.1882303453180191_dp, 0.26610050569058297_dp, 0.3746580755427752_dp,&
+ 0.5254504247939676_dp, 0.7341916622638109_dp, 1.0222323068269783_dp, 1.418577696146867_dp, 1.9627342158223895_dp, 2.7089187483169885_dp,&
+ 3.732793667761796_dp, 5.14359311285564_dp, 7.109854244554064_dp, 9.928196448146211_dp, 14.295810062691444_dp, 0.0002259584596775983_dp,&
+ 0.0005436014065931008_dp, 0.0009083522994476501_dp, 0.001360022022949313_dp, 0.0019587330256291995_dp, 0.0027925453027995255_dp, 0.003983542841235872_dp,&
+ 0.005695043198214815_dp, 0.008145671980235551_dp, 0.011632693203529134_dp, 0.01656425108725137_dp, 0.023501595060412054_dp, 0.03321470050609412_dp,&
+ 0.04675631004359308_dp, 0.06556089291033432_dp, 0.09157703564672734_dp, 0.1274448334217016_dp, 0.17673475828550625_dp, 0.2442731132825866_dp,&
+ 0.33659611474367285_dp, 0.4626113339076691_dp, 0.6346313704421029_dp, 0.8701615672163753_dp, 1.1954150913540855_dp, 1.6533375661453558_dp,&
+ 2.325557793916785_dp, 3.410528405591019_dp, 5.688122811462863_dp]
+ aw%aw_erange_matrix(:, 6) = [7.231152188478278e-05_dp, 0.00038772726865815517_dp, 0.0009844837786035514_dp, 0.0019209126836657545_dp, 0.003300157154162172_dp,&
+ 0.005292557663606624_dp, 0.008164163748376724_dp, 0.012311171926660728_dp, 0.018304991861179568_dp, 0.026956176212698496_dp, 0.03940566382368068_dp,&
+ 0.057252298754729467_dp, 0.08272831849932695_dp, 0.11893897414817305_dp, 0.17018831821850053_dp, 0.2424208413642749_dp, 0.34381888188337045_dp,&
+ 0.48560994949960345_dp, 0.68315888981334_dp, 0.9574526915358277_dp, 1.3371435383436294_dp, 1.8614300851160115_dp, 2.5843101667934096_dp,&
+ 3.5813587287033566_dp, 4.961876490500659_dp, 6.894579341534884_dp, 9.676154843478928_dp, 14.002777296643712_dp, 0.00018632498066864197_dp,&
+ 0.00044921855213653585_dp, 0.0007537638296544074_dp, 0.0011359077842782092_dp, 0.0016504930186307747_dp, 0.002378087896208448_dp, 0.0034304274436559386_dp,&
+ 0.004957778020056624_dp, 0.007163453510160269_dp, 0.010326973559848835_dp, 0.0148355888498722_dp, 0.02122577871325675_dp, 0.030238442499465622_dp,&
+ 0.04289294382786412_dp, 0.06058666241299866_dp, 0.08522882557656473_dp, 0.11942055225842414_dp, 0.16669801861501937_dp, 0.23186426244014152_dp,&
+ 0.32145183283272727_dp, 0.44439450297432675_dp, 0.6130709874752484_dp, 0.8450980113616935_dp, 1.1668375144951064_dp, 1.621384532244084_dp,&
+ 2.290416624110755_dp, 3.3720270933942214_dp, 5.643641293866133_dp]
+ aw%aw_erange_matrix(:, 7) = [6.358752692633583e-05_dp, 0.0003412046362365837_dp, 0.0008676052314903817_dp, 0.001696724618707933_dp, 0.0029245257586060763_dp,&
+ 0.004710233349785592_dp, 0.007303215812339811_dp, 0.011075692416141687_dp, 0.016566304596355927_dp, 0.024542556688053108_dp, 0.03609017098515814_dp,&
+ 0.05273820097743335_dp, 0.07663171929303365_dp, 0.11076846568614528_dp, 0.15932179622752599_dp, 0.22808006029257497_dp, 0.32504298834606_dp,&
+ 0.4612301705022223_dp, 0.6517778001414668_dp, 0.9174329759430668_dp, 1.2866126278634253_dp, 1.7983078281539955_dp, 2.506365504219328_dp,&
+ 3.4862959694100204_dp, 4.847438621720606_dp, 6.7586271477598405_dp, 9.516604972737115_dp, 13.816917061150304_dp, 0.00016387366227471576_dp,&
+ 0.0003956833555057065_dp, 0.0006658661861317086_dp, 0.0010080085317879625_dp, 0.0014736812958346364_dp, 0.002138763598196897_dp, 0.00310853235933617_dp,&
+ 0.004525172218371909_dp, 0.006582500342505047_dp, 0.0095488999069641_dp, 0.013798331312490912_dp, 0.01985134913295637_dp, 0.028429999006008653_dp,&
+ 0.04053182527263095_dp, 0.05752974961085405_dp, 0.08130676932209915_dp, 0.11443765763930915_dp, 0.16043487908983078_dp, 0.2240845367272352_dp,&
+ 0.311914711856157_dp, 0.4328741422164402_dp, 0.5993829816920151_dp, 0.8291300891292139_dp, 1.1485759543667498_dp, 1.6009173789914857_dp,&
+ 2.2678714811822975_dp, 3.3473105643753676_dp, 5.615101807506323_dp]
+ aw%aw_erange_matrix(:, 8) = [5.40208922943882e-05_dp, 0.0002901574218009231_dp, 0.0007392141971595068_dp, 0.0014500283280455789_dp, 0.002510177021344463_dp,&
+ 0.0040657991238261465_dp, 0.006346521670349522_dp, 0.009696151598289092_dp, 0.01461448675071523_dp, 0.021817888400210955_dp, 0.03232620376087572_dp,&
+ 0.047584791601727995_dp, 0.06963362235719665_dp, 0.10134008926088696_dp, 0.14671822700211287_dp, 0.21136500303928102_dp, 0.30305507802937337_dp,&
+ 0.43255028902361986_dp, 0.6147016140691686_dp, 0.8699548471471977_dp, 1.2264290200274872_dp, 1.7228495271474296_dp, 2.412866754832892_dp,&
+ 3.371902180409746_dp, 4.7093379807234985_dp, 6.594155669520039_dp, 9.323180769772668_dp, 13.591212022178699_dp, 0.00013925034927611353_dp,&
+ 0.00033689758020930645_dp, 0.0005691288628998808_dp, 0.000866760965686723_dp, 0.0012774771286669078_dp, 0.0018715412342993915_dp, 0.0027465275546555167_dp,&
+ 0.004035039597245034_dp, 0.0059195955044671665_dp, 0.0086551765726244_dp, 0.012599568036048066_dp, 0.018253775832994857_dp, 0.02631653618635365_dp,&
+ 0.03775822887923194_dp, 0.053921093309633066_dp, 0.07665492497469895_dp, 0.10850075471633389_dp, 0.1529401192419044_dp, 0.2147361484742657_dp,&
+ 0.30040908293128193_dp, 0.41892390451696465_dp, 0.5827503975591537_dp, 0.8096664957210812_dp, 1.1262568684972982_dp, 1.5758496574356475_dp,&
+ 2.240219834134439_dp, 3.316979586478506_dp, 5.5800996039424104_dp]
+ aw%aw_erange_matrix(:, 9) = [4.564555265477108e-05_dp, 0.0002454346685212948_dp, 0.0006265784407134182_dp, 0.001233158622447077_dp, 0.0021448652153409154_dp,&
+ 0.0034954182642228226_dp, 0.005495608826652996_dp, 0.00846210660098653_dp, 0.012857585326682552_dp, 0.01934938119006627_dp, 0.028893873468546265_dp,&
+ 0.04285529874482882_dp, 0.06317112153384097_dp, 0.0925808252186819_dp, 0.13494115158016368_dp, 0.19565897567855495_dp, 0.2822840227867385_dp,&
+ 0.405318874954234_dp, 0.5793256641233082_dp, 0.8244427232040404_dp, 1.168482383587411_dp, 1.6498933305311403_dp, 2.322117411253598_dp,&
+ 3.2604766389691147_dp, 4.574390024972901_dp, 6.432989341834178_dp, 9.133196407474784_dp, 13.369095389855303_dp, 0.00011768969816977658_dp,&
+ 0.00028534927032496446_dp, 0.0004840726346740154_dp, 0.0007420579710874475_dp, 0.0011032591807000774_dp, 0.0016325138217318865_dp, 0.002419994753070502_dp,&
+ 0.0035891515886961726_dp, 0.005311642196826666_dp, 0.007829394245850389_dp, 0.011484246513613412_dp, 0.016757755663488007_dp, 0.024325289635545783_dp,&
+ 0.03512979233715042_dp, 0.05048226189921966_dp, 0.07219835845965666_dp, 0.1027839824530896_dp, 0.14568785531725492_dp, 0.20564777829998312_dp,&
+ 0.2891735001868529_dp, 0.4052436947742419_dp, 0.5663760127138803_dp, 0.7904374777760682_dp, 1.1041398360339376_dp, 1.5509491079980848_dp,&
+ 2.21270825293388_dp, 3.2867828515308894_dp, 5.5452724054483005_dp]
+ aw%aw_erange_matrix(:, 10) = [3.6488006929306264e-05_dp, 0.00019649151810584802_dp, 0.000503107877439482_dp, 0.000994818980265892_dp, 0.0017419330458111762_dp,&
+ 0.00286324584306399_dp, 0.004546790823266163_dp, 0.0070764254736432365_dp, 0.01086988103008825_dp, 0.01653489379720316_dp, 0.024950193189557313_dp,&
+ 0.0373800572984858_dp, 0.05563473102373159_dp, 0.08229382069514388_dp, 0.12101608504744633_dp, 0.1769674560118736_dp, 0.25741052665895353_dp,&
+ 0.3725145015640989_dp, 0.5364671734722614_dp, 0.7690049629152851_dp, 1.0975352324996732_dp, 1.5601365551801154_dp, 2.209966148011392_dp,&
+ 3.1222026085468673_dp, 4.406302512891578_dp, 6.231592566777427_dp, 8.895138025566414_dp, 13.09015522563044_dp, 9.411058161764564e-05_dp,&
+ 0.00022887458151702356_dp, 0.00039057680221556677_dp, 0.0006042814819193009_dp, 0.0009094035245976271_dp, 0.0013641332935019103_dp, 0.002049648033435726_dp,&
+ 0.003078322757949694_dp, 0.004608548064372825_dp, 0.006866051954909783_dp, 0.010172626387128262_dp, 0.014985141010389004_dp, 0.021949052283394388_dp,&
+ 0.03197188778843743_dp, 0.046323942696241904_dp, 0.0667759221190767_dp, 0.09578682159309504_dp, 0.13676065620689198_dp, 0.19439935510505243_dp,&
+ 0.27519525733539296_dp, 0.3881406112452913_dp, 0.5458114344320582_dp, 0.7661884133896568_dp, 1.0761497928442625_dp, 1.519347409242135_dp,&
+ 2.177726198492106_dp, 3.2483564776686458_dp, 5.5009815780981555_dp]
+ aw%aw_erange_matrix(:, 11) = [2.9588446308604547e-05_dp, 0.00015957764714927812_dp, 0.00040980061859442377_dp, 0.0008141581268268158_dp, 0.0014351942867949477_dp,&
+ 0.002379218143911262_dp, 0.003815130228038144_dp, 0.0059991869926145835_dp, 0.009311238414156518_dp, 0.014308514375164259_dp, 0.021803455514145805_dp,&
+ 0.03297432754720971_dp, 0.04952104060181237_dp, 0.07388347387186651_dp, 0.1095460460641794_dp, 0.16146092263899975_dp, 0.23663401107846255_dp,&
+ 0.3449341441338246_dp, 0.5002090250697223_dp, 0.7218265976855273_dp, 1.036819021323394_dp, 1.4829173538285452_dp, 2.113006031585928_dp,&
+ 3.002118887270464_dp, 4.25973634734891_dp, 6.055362139002693_dp, 8.68620971747294_dp, 12.84476212055696_dp, 7.634110961434247e-05_dp,&
+ 0.00018622528846790902_dp, 0.00031969127466536623_dp, 0.0004991918529001643_dp, 0.0007602900708133781_dp, 0.0011555100382159716_dp, 0.0017584338105163752_dp,&
+ 0.0026721061529931525_dp, 0.004043591457129711_dp, 0.00608455281208252_dp, 0.009099150682157118_dp, 0.013522328657324851_dp, 0.01997274372862434_dp,&
+ 0.029325909214924503_dp, 0.04281497070968849_dp, 0.06216914194983893_dp, 0.08980351557167271_dp, 0.12907941549114965_dp, 0.184663246594884_dp,&
+ 0.2630278258762335_dp, 0.3731736346682672_dp, 0.5277260380561264_dp, 0.7447670823860634_dp, 1.051327938626868_dp, 1.4912362410625788_dp,&
+ 2.1465432019415753_dp, 3.214074319529515_dp, 5.461496007193266_dp]
+ aw%aw_erange_matrix(:, 12) = [2.3779414127343956e-05_dp, 0.00012846422005240743_dp, 0.0003309928831073909_dp, 0.0006610841016675125_dp, 0.001174111517851935_dp,&
+ 0.001964735642046167_dp, 0.0031839437046973372_dp, 0.005062138452978201_dp, 0.007943587365676456_dp, 0.012337793711020667_dp, 0.01899408520862755_dp,&
+ 0.02900819673889348_dp, 0.0439733623874622_dp, 0.06619336766731646_dp, 0.09898159274083276_dp, 0.1470789732012216_dp, 0.2172359337388872_dp,&
+ 0.31902010927146557_dp, 0.465935489961852_dp, 0.676974407399601_dp, 0.9787827564627841_dp, 1.4087293747222094_dp, 2.0194090526711066_dp,&
+ 2.8856949554637783_dp, 4.117081205191889_dp, 5.883249820883165_dp, 8.481580484406694_dp, 12.603865500485162_dp, 6.137647450224398e-05_dp,&
+ 0.00015022918522230813_dp, 0.00025961689799477495_dp, 0.00040956404897364297_dp, 0.0006319903102840593_dp, 0.0009740518614949558_dp, 0.0015022032585384295_dp,&
+ 0.002310722155775527_dp, 0.0035358702066416604_dp, 0.005375683414999454_dp, 0.008117044767788793_dp, 0.012173222749539778_dp, 0.018136165890969762_dp,&
+ 0.026849214184554587_dp, 0.03950783752538176_dp, 0.057798731689314514_dp, 0.08409142368704033_dp, 0.1217021378276602_dp, 0.17525857508663245_dp,&
+ 0.2512102337617962_dp, 0.3585618870750593_dp, 0.5099851018896473_dp, 0.7236623896941952_dp, 1.0267809590048702_dp, 1.4633527890610423_dp,&
+ 2.1155495825866195_dp, 3.1799713652899073_dp, 5.422242322222096_dp]
+ aw%aw_erange_matrix(:, 13) = [1.996975719114667e-05_dp, 0.00010803766024790043_dp, 0.00027914946672295566_dp, 0.0005600685201304379_dp, 0.0010010455833094946_dp,&
+ 0.0016883469263468778_dp, 0.0027600190175514337_dp, 0.004427777354772284_dp, 0.0070100858816421925_dp, 0.010981630036803518_dp, 0.017045370162921285_dp,&
+ 0.026235975775831418_dp, 0.04006720477930825_dp, 0.060740772707250645_dp, 0.09144094582526643_dp, 0.13674817658247623_dp, 0.20321752055734807_dp,&
+ 0.3001847449852204_dp, 0.44088738725627163_dp, 0.6440243823419953_dp, 0.9359372859467849_dp, 1.3537064463445627_dp, 1.9496922567626198_dp,&
+ 2.798633041764183_dp, 4.010025863301125_dp, 5.753689968035089_dp, 8.327144493740365_dp, 12.421679016019592_dp, 5.156001410295644e-05_dp,&
+ 0.00012656590579908283_dp, 0.00021996531665695752_dp, 0.00035003655094498806_dp, 0.0005460402965281552_dp, 0.0008512186113124776_dp, 0.0013268718440107125_dp,&
+ 0.0020609116400843674_dp, 0.0031816393309671174_dp, 0.004876914587104125_dp, 0.007420595371219653_dp, 0.011209484450019506_dp, 0.016815094297439877_dp,&
+ 0.02505596575962014_dp, 0.037098296020097635_dp, 0.05459544297770877_dp, 0.07988080804958117_dp, 0.11623432159124078_dp, 0.16825175472580994_dp,&
+ 0.2423620424395829_dp, 0.3475704605516449_dp, 0.4965817576093905_dp, 0.7076548141522077_dp, 1.0080986813480735_dp, 1.4420727665642223_dp,&
+ 2.09185113214404_dp, 3.1538737345296277_dp, 5.392217904025483_dp]
+ aw%aw_erange_matrix(:, 14) = [1.5245472100141073e-05_dp, 8.267520676446116e-05_dp, 0.0002146253100574728_dp, 0.00043387740900171205_dp, 0.0007836944027554964_dp,&
+ 0.0013387930663292789_dp, 0.0022193817580203824_dp, 0.0036113909961874636_dp, 0.005797519906650395_dp, 0.009203847862920226_dp, 0.01446808989009802_dp,&
+ 0.022538313347044602_dp, 0.034814713569521594_dp, 0.05335209638799308_dp, 0.0811475703355085_dp, 0.12254732266532327_dp, 0.18381921201396537_dp,&
+ 0.27395570440350625_dp, 0.40579685475434923_dp, 0.5976003453364507_dp, 0.875245772613848_dp, 1.2753705825844541_dp, 1.8499693672606738_dp,&
+ 2.6735624079289133_dp, 3.855638524201632_dp, 5.566220151857392_dp, 8.103052167483417_dp, 12.156727650422702_dp, 3.9383299458817714e-05_dp,&
+ 9.713918675705757e-05_dp, 0.000170421510611186_dp, 0.0002751089399893439_dp, 0.0004367526322332042_dp, 0.0006931539398019088_dp, 0.0010985049239842675_dp,&
+ 0.0017318671480729233_dp, 0.0027102869498213354_dp, 0.004207039027136905_dp, 0.006477134639756053_dp, 0.009893360814081634_dp, 0.014997191697894255_dp,&
+ 0.02257042180249529_dp, 0.03373549826844379_dp, 0.05009547634855471_dp, 0.07392862462849442_dp, 0.10845863055245018_dp, 0.15823054590725322_dp,&
+ 0.22963859190692054_dp, 0.33168416368000975_dp, 0.47711716376192037_dp, 0.6843078702870563_dp, 0.9807484854746213_dp, 1.4108257998358733_dp,&
+ 2.0569814817847933_dp, 3.1154409728311463_dp, 5.348031605731007_dp]
+ aw%aw_erange_matrix(:, 15) = [1.1868158588050793e-05_dp, 6.451496656973e-05_dp, 0.00016828367389327262_dp, 0.0003428138578813575_dp, 0.0006257728657443166_dp,&
+ 0.001082546664145262_dp, 0.0018189122009131555_dp, 0.002999899699939122_dp, 0.004879035508307028_dp, 0.007842398392055541_dp, 0.012473504017331851_dp,&
+ 0.019647823262643315_dp, 0.030669526100067415_dp, 0.04746815571454119_dp, 0.07287994053111492_dp, 0.11104807754173227_dp, 0.16798957023910677_dp,&
+ 0.2523945702323838_dp, 0.37675011948627407_dp, 0.5589184164507482_dp, 0.8243607282457994_dp, 1.209308359311203_dp, 1.7654144169432378_dp,&
+ 2.566987933665634_dp, 3.7234969430883793_dp, 5.405141983044582_dp, 7.9098851591902335_dp, 11.927751732780631_dp, 3.067518035880976e-05_dp,&
+ 7.602736152767003e-05_dp, 0.00013466099350051709_dp, 0.0002205156203375216_dp, 0.00035609796830194946_dp, 0.0005747749473125263_dp, 0.0009249835582363322_dp,&
+ 0.0014785254567841132_dp, 0.0023430318256698933_dp, 0.003679400712048183_dp, 0.005726484701954953_dp, 0.008836295353538897_dp, 0.013524092658912494_dp,&
+ 0.02053931124436599_dp, 0.030965498069383788_dp, 0.04636050178159656_dp, 0.06895241489824191_dp, 0.1019128924749107_dp, 0.14973885102211165_dp,&
+ 0.2187896005944566_dp, 0.31805835198625043_dp, 0.4603305714250192_dp, 0.6640726964679041_dp, 0.9569407810619277_dp, 1.3835309605116226_dp,&
+ 2.026448697565121_dp, 3.0817527233540427_dp, 5.309325429687417_dp]
+ aw%aw_erange_matrix(:, 16) = [8.994970387322457e-06_dp, 4.9038651219381535e-05_dp, 0.00012866021417541092_dp, 0.00026454506965524195_dp, 0.0004890218504779385_dp,&
+ 0.0008585083873106919_dp, 0.0014649004957659442_dp, 0.002453066714438582_dp, 0.00404818477662515_dp, 0.006597100721999991_dp, 0.010629669867507806_dp,&
+ 0.016948840913414677_dp, 0.026762034057250313_dp, 0.041871547214080776_dp, 0.06494887934178976_dp, 0.09992774926372437_dp, 0.15256426013426896_dp,&
+ 0.2312316469143259_dp, 0.3480438390880272_dp, 0.520441341810499_dp, 0.7734349455842019_dp, 1.1428133579373827_dp, 1.6798513048817534_dp,&
+ 2.4586158447712725_dp, 3.5885384348523433_dp, 5.240004673003719_dp, 7.7112226946250795_dp, 11.691667476075265_dp, 2.3263971840934205e-05_dp,&
+ 5.799733961007195e-05_dp, 0.00010391874644151258_dp, 0.0001730995125618299_dp, 0.0002850761818642179_dp, 0.00046892999174830916_dp, 0.0007675526539416234_dp,&
+ 0.0012456339379473573_dp, 0.0020014080059075953_dp, 0.0031832610399331806_dp, 0.005013553854404307_dp, 0.007822909693482165_dp, 0.012099368861470802_dp,&
+ 0.018558470273632704_dp, 0.02824263531163439_dp, 0.04266142900862469_dp, 0.06398871559990858_dp, 0.09533906369189366_dp, 0.14115536539598936_dp,&
+ 0.20775581572804178_dp, 0.3041200099484807_dp, 0.4430661693538553_dp, 0.6431592914657807_dp, 0.9322296232686789_dp, 1.355102086814327_dp,&
+ 1.9945706936958254_dp, 3.046542150566686_dp, 5.268893998445498_dp]
+ aw%aw_erange_matrix(:, 17) = [6.8673479673260504e-06_dp, 3.755590753670896e-05_dp, 9.915139981458229e-05_dp, 0.00020590986120619216_dp, 0.00038570411969655687_dp,&
+ 0.0006874225835250557_dp, 0.0011912995282688835_dp, 0.0020251938479038355_dp, 0.0033901629916074914_dp, 0.005599342672133319_dp, 0.009136035642934201_dp,&
+ 0.0147397005849582_dp, 0.023532325447503034_dp, 0.03720291582111918_dp, 0.05827512485526659_dp, 0.09049318420974399_dp, 0.13937535368635193_dp,&
+ 0.21300368025384273_dp, 0.3231464746438852_dp, 0.4868502227776408_dp, 0.7287007191729763_dp, 1.0840642579491595_dp, 1.6038486600019533_dp,&
+ 2.3618790984089095_dp, 3.467539083950752_dp, 5.09138219825452_dp, 7.53185924341038_dp, 11.47798005469671_dp, 1.7773461657358013e-05_dp,&
+ 4.458780785431919e-05_dp, 8.088403265892346e-05_dp, 0.00013715743270713957_dp, 0.00023041539243485957_dp, 0.00038613012816423253_dp, 0.0006425163485643913_dp,&
+ 0.001058147634119284_dp, 0.0017230321030210073_dp, 0.002774473725192771_dp, 0.004420090523231148_dp, 0.006971221027705693_dp, 0.010891151319944746_dp,&
+ 0.01686432115872218_dp, 0.025895072083461815_dp, 0.03944781877116618_dp, 0.059645137430023996_dp, 0.0895468281752171_dp, 0.13354285706817015_dp,&
+ 0.1979094322641605_dp, 0.291608890942118_dp, 0.42748519623553954_dp, 0.6241916121496675_dp, 0.9097205132707596_dp, 1.3291156770565788_dp,&
+ 1.965360170512719_dp, 3.0142420912237333_dp, 5.231825921337635_dp]
+ aw%aw_erange_matrix(:, 18) = [5.34722652436438e-06_dp, 2.9335345788005576e-05_dp, 7.794420445994551e-05_dp, 0.0001635102977617264_dp, 0.0003103380666014091_dp,&
+ 0.0005612614423847721_dp, 0.0009871305012123896_dp, 0.0017020454525922442_dp, 0.002887383643586052_dp, 0.004828517011721044_dp, 0.007970062065688042_dp,&
+ 0.012998268728170836_dp, 0.02096295289681554_dp, 0.03345668031415268_dp, 0.052876323139595754_dp, 0.08280245241436206_dp, 0.1285464334202786_dp,&
+ 0.19793519202552176_dp, 0.30243198793781245_dp, 0.4587328138519049_dp, 0.6910421452320579_dp, 1.0343433822030452_dp, 1.5392071335504423_dp,&
+ 2.279230497059965_dp, 3.3637429883435237_dp, 4.96344347806973_dp, 7.377008968134632_dp, 11.293074733218035_dp, 1.3848866712786266e-05_dp,&
+ 3.496420645730977e-05_dp, 6.422528074399328e-05_dp, 0.00011085156828305275_dp, 0.00018979249819623976_dp, 0.0003236153897281577_dp, 0.0005467478277421638_dp,&
+ 0.000912713310709869_dp, 0.001504624320381209_dp, 0.0024504009658675406_dp, 0.003945073258731463_dp, 0.006283381657271798_dp, 0.009907137885517564_dp,&
+ 0.015473588963650402_dp, 0.023953503710281564_dp, 0.03677113226590553_dp, 0.056002962059688105_dp, 0.08465896050001478_dp, 0.1270800799647972_dp,&
+ 0.18950233376937137_dp, 0.2808690547904898_dp, 0.4140431391215438_dp, 0.6077531842367035_dp, 0.8901351666158656_dp, 1.3064316369806335_dp,&
+ 1.9398043844798791_dp, 2.9859550412644587_dp, 5.199382405454911_dp]
+ aw%aw_erange_matrix(:, 19) = [3.991479954961762e-06_dp, 2.198720501971829e-05_dp, 5.890526173006801e-05_dp, 0.00012518031616235489_dp, 0.00024153524567753135_dp,&
+ 0.00044471016635781095_dp, 0.0007960973675010948_dp, 0.0013958401833713643_dp, 0.0024051630337238337_dp, 0.004080730226383008_dp, 0.0068267899198047955_dp,&
+ 0.011273593700680132_dp, 0.018394388130399692_dp, 0.029678633788751282_dp, 0.04738664952634921_dp, 0.07492145227987683_dp, 0.11736834467836472_dp,&
+ 0.18227349630314565_dp, 0.2807619982420454_dp, 0.42913828874392707_dp, 0.65117720616762_dp, 0.9814263687158781_dp, 1.4700673778736164_dp,&
+ 2.190427750165236_dp, 3.2517634440541547_dp, 4.824930255638227_dp, 7.208868255000471_dp, 11.091834807498854_dp, 1.0346862342302347e-05_dp,&
+ 2.6338249637987535e-05_dp, 4.916412854301245e-05_dp, 8.674834277534896e-05_dp, 0.00015194758780428323_dp, 0.00026440532385478294_dp, 0.00045469618333409404_dp,&
+ 0.0007711009718467_dp, 0.0012894728448137978_dp, 0.002127757911813279_dp, 0.0034674947327675617_dp, 0.005585492420042323_dp, 0.008900179331682422_dp,&
+ 0.014038952538275588_dp, 0.02193542166778625_dp, 0.033968992230147974_dp, 0.05216418521519709_dp, 0.07947410573244414_dp, 0.12018284604662782_dp,&
+ 0.18047837042907597_dp, 0.26927867836352665_dp, 0.3994632895161757_dp, 0.5898412436801937_dp, 0.8687080586761889_dp, 1.2815327235597582_dp,&
+ 1.91168824489995_dp, 2.954800144592791_dp, 5.163666162590388_dp]
+ aw%aw_erange_matrix(:, 20) = [2.9287097241919463e-06_dp, 1.6211294489452685e-05_dp, 4.3860626639419625e-05_dp, 9.463310124321836e-05_dp, 0.00018604994609815954_dp,&
+ 0.0003493943765511619_dp, 0.0006375682448360294_dp, 0.0011380795201948043_dp, 0.001993709375951546_dp, 0.00343456904920158_dp, 0.005827197217933671_dp,&
+ 0.009749051421957427_dp, 0.016100560249175083_dp, 0.026272317263678777_dp, 0.042392659447799845_dp, 0.06769166630053426_dp, 0.10703277867836304_dp,&
+ 0.16768452950177593_dp, 0.26043499640668427_dp, 0.4011952042193507_dp, 0.6133044483273886_dp, 0.9308639628203111_dp, 1.4036513854446626_dp,&
+ 2.1047075037398466_dp, 3.143200044406983_dp, 4.6901364769963045_dp, 7.044731962208944_dp, 10.894906305627384_dp, 7.599945789593838e-06_dp,&
+ 1.9535340209099297e-05_dp, 3.7160656136204285e-05_dp, 6.722566694134913e-05_dp, 0.00012069652213103665_dp, 0.00021459840053591846_dp, 0.0003759981286012543_dp,&
+ 0.0006483001768113125_dp, 0.0011005125730724488_dp, 0.0018410833738741884_dp, 0.0030385893339244744_dp, 0.004952462825414513_dp, 0.007978278215654642_dp,&
+ 0.012714011523554197_dp, 0.02005632833363888_dp, 0.03133963591517064_dp, 0.04853577656951428_dp, 0.07453950556949848_dp, 0.11357558363229604_dp,&
+ 0.17178036896999477_dp, 0.2580420507206907_dp, 0.3852520170265286_dp, 0.5722961014253114_dp, 0.847629061135607_dp, 1.2569519792288701_dp,&
+ 1.8838624046566568_dp, 2.923931086168498_dp, 5.1282957309537895_dp]
+ aw%aw_erange_matrix(:, 21) = [2.187887975241367e-06_dp, 1.217302105778866e-05_dp, 3.3280277384650595e-05_dp, 7.294651585196924e-05_dp, 0.0001461477506435841_dp,&
+ 0.0002798259055981046_dp, 0.0005201025046636251_dp, 0.0009442991970046586_dp, 0.0016801646722205163_dp, 0.0029359404461932336_dp, 0.005046805926292481_dp,&
+ 0.008545920293678393_dp, 0.014272096616783494_dp, 0.023531600046055763_dp, 0.038339327744621156_dp, 0.061775614958965434_dp, 0.09851040024837446_dp,&
+ 0.15556831587766237_dp, 0.243439200558_dp, 0.3776832590482275_dp, 0.5812481524315448_dp, 0.8878298248851654_dp, 1.3468344739190594_dp,&
+ 2.031033514764075_dp, 3.0495035108172392_dp, 4.573381799063933_dp, 6.902137854735053_dp, 10.723425645457905_dp, 5.683864101635673e-06_dp,&
+ 1.4761618602067145e-05_dp, 2.863922084439926e-05_dp, 5.31200028912619e-05_dp, 9.765726111159933e-05_dp, 0.00017719091014345152_dp, 0.00031593721698955905_dp,&
+ 0.0005532594185059319_dp, 0.000952423486460829_dp, 0.001613835283450162_dp, 0.002695001718544619_dp, 0.004440391442639413_dp, 0.007225736946277607_dp,&
+ 0.01162326005144731_dp, 0.018497020133015078_dp, 0.02914136949940742_dp, 0.04548081139069081_dp, 0.07035707490413387_dp, 0.10794019701910468_dp,&
+ 0.1643177452299961_dp, 0.24834763708314758_dp, 0.37292767817567907_dp, 0.5570086406904123_dp, 0.829186245882319_dp, 1.2353723738001468_dp,&
+ 1.8593753882752646_dp, 2.896735710900212_dp, 5.0971507815821235_dp]
+ aw%aw_erange_matrix(:, 22) = [1.6070031867276192e-06_dp, 8.996223208889756e-06_dp, 2.4903330256736718e-05_dp, 5.5597271413213874e-05_dp, 0.00011378123225419507_dp,&
+ 0.00022251943620373886_dp, 0.0004218452833351526_dp, 0.0007798397462569304_dp, 0.001410464737003683_dp, 0.0025017001910060442_dp, 0.0043594012767892145_dp,&
+ 0.007474944527557248_dp, 0.012628553354571935_dp, 0.021045689348535686_dp, 0.03463175327773065_dp, 0.05632151430959264_dp, 0.09059550579868533_dp,&
+ 0.1442379871996754_dp, 0.2274428250359289_dp, 0.35541953739182136_dp, 0.5507212109659467_dp, 0.8466317459799636_dp, 1.2921752687688919_dp,&
+ 1.9598406408284006_dp, 2.9586009577769_dp, 4.459717588193107_dp, 6.762921787948558_dp, 10.555632767123296_dp, 4.180340751600858e-06_dp,&
+ 1.099130280826382e-05_dp, 2.1822771688601605e-05_dp, 4.1621175974422805e-05_dp, 7.848461568768336e-05_dp, 0.00014548449813908576_dp, 0.00026422505480514413_dp,&
+ 0.0004703011644186479_dp, 0.0008215666081596167_dp, 0.0014107803843716492_dp, 0.002384836263299515_dp, 0.0039737397649737246_dp, 0.006533894710819361_dp,&
+ 0.010612242095881175_dp, 0.017040581368346817_dp, 0.027073311442312262_dp, 0.04258730399078407_dp, 0.06637038094501468_dp, 0.10253618298821561_dp,&
+ 0.15712087871604702_dp, 0.23894860519216926_dp, 0.36091957483420634_dp, 0.5420459855749467_dp, 0.8110632955302136_dp, 1.2140975460551333_dp,&
+ 1.8351776848641823_dp, 2.8698308488017825_dp, 5.066349620899207_dp]
+ aw%aw_erange_matrix(:, 23) = [9.917609137977847e-07_dp, 5.61571565668021e-06_dp, 1.5905578931798044e-05_dp, 3.668045117366575e-05_dp, 7.779911321491552e-05_dp,&
+ 0.0001574703243782781_dp, 0.0003080352227521647_dp, 0.0005857339949829306_dp, 0.0010866136806263423_dp, 0.0019719871993643633_dp, 0.0035086606810778888_dp,&
+ 0.006131766091278258_dp, 0.010541856280946737_dp, 0.017853461412239566_dp, 0.029820286970471933_dp, 0.049173663410606715_dp, 0.08012714696416229_dp,&
+ 0.1291233103698595_dp, 0.20593171918618178_dp, 0.32525471926745003_dp, 0.5090693312937355_dp, 0.7900513389150534_dp, 1.216653152188614_dp,&
+ 1.8609312710223198_dp, 2.831687087034342_dp, 4.300351181611193_dp, 6.567047622277454_dp, 10.318912411219488_dp, 2.5862090723245625e-06_dp,&
+ 6.95626109831625e-06_dp, 1.4392071614748994e-05_dp, 2.874925884264212e-05_dp, 5.642970465568392e-05_dp, 0.00010814505912642593_dp, 0.0002021008939835649_dp,&
+ 0.0003688922773676731_dp, 0.0006591003182679095_dp, 0.0011550942822986209_dp, 0.0019891964272602783_dp, 0.0033713558748037233_dp, 0.0056309115068987_dp,&
+ 0.00927906547653282_dp, 0.015101574633332329_dp, 0.024295245067122773_dp, 0.03866754865528627_dp, 0.060926803424727255_dp, 0.09510216196058996_dp,&
+ 0.14715087305959354_dp, 0.22584200604915872_dp, 0.34407208794479094_dp, 0.5209358458550991_dp, 0.7853686557167923_dp, 1.1838124863793347_dp,&
+ 1.8006332661854303_dp, 2.8313699702065134_dp, 5.0223450191392205_dp]
+ aw%aw_erange_matrix(:, 24) = [6.243870742444705e-07_dp, 3.5837547513507616e-06_dp, 1.0424530634626105e-05_dp, 2.4910967538724005e-05_dp, 5.48216536959138e-05_dp,&
+ 0.0001148065303999889_dp, 0.000231490488679646_dp, 0.00045215860524583124_dp, 0.0008590837338469464_dp, 0.0015927682432411259_dp, 0.0028891299956185297_dp,&
+ 0.005138253059658019_dp, 0.008976135083193377_dp, 0.015426433468499803_dp, 0.026117293389759495_dp, 0.043609983170991296_dp, 0.0718927383781267_dp,&
+ 0.11711702885780055_dp, 0.18868749571084845_dp, 0.3008660121451099_dp, 0.47512403493520045_dp, 0.7435972663838382_dp, 1.154222692676153_dp,&
+ 1.7786576652841575_dp, 2.7255320837393326_dp, 4.166412460588324_dp, 6.401776404663582_dp, 10.11856522638141_dp, 1.6329106731735064e-06_dp,&
+ 4.511304110662316e-06_dp, 9.770509823422929e-06_dp, 2.0454024246766166e-05_dp, 4.172679855059072e-05_dp, 8.25404415798886e-05_dp, 0.00015847711044459983_dp,&
+ 0.00029619555479324744_dp, 0.0005404696680087612_dp, 0.000965266351597196_dp, 0.0016909815488903273_dp, 0.0029109600865339395_dp, 0.004931885217935304_dp,&
+ 0.008234716202420396_dp, 0.01356583086594651_dp, 0.022072242618732946_dp, 0.035500720158786525_dp, 0.05648910800327906_dp, 0.08899040639475064_dp,&
+ 0.13888891315246274_dp, 0.21489980129365738_dp, 0.32990928766337146_dp, 0.5030773832314516_dp, 0.7635106326257592_dp, 1.157931116384902_dp,&
+ 1.771014718506682_dp, 2.798340277794168_dp, 4.984574132350961_dp]
+ aw%aw_erange_matrix(:, 25) = [4.0370316213559476e-07_dp, 2.3541711422913717e-06_dp, 7.057573612279361e-06_dp, 1.751162431119145e-05_dp, 3.998197703771905e-05_dp,&
+ 8.651758104084795e-05_dp, 0.00017950101241220228_dp, 0.00035945947508640393_dp, 0.0006981140824218166_dp, 0.001319810424458466_dp, 0.0024361923309759396_dp,&
+ 0.004401544013890147_dp, 0.007800025204094134_dp, 0.013581611201940205_dp, 0.023271704375636543_dp, 0.03929119474223725_dp, 0.06544075124204898_dp,&
+ 0.10762751156023793_dp, 0.17494730054790258_dp, 0.2812860986936203_dp, 0.44768004577537496_dp, 0.705795087398322_dp, 1.1031142167130359_dp,&
+ 1.7109362858917831_dp, 2.6377277178978358_dp, 4.055162275207615_dp, 6.264028054745519_dp, 9.951137323627291_dp, 1.0593262130160056e-06_dp,&
+ 3.0185707613834373e-06_dp, 6.8658831794879865e-06_dp, 1.5046778554922312e-05_dp, 3.182893187575826e-05_dp, 6.484710011709137e-05_dp, 0.00012766407757989652_dp,&
+ 0.000243860437909589_dp, 0.00045361234593234906_dp, 0.0008241579727338823_dp, 0.001466238321223863_dp, 0.002559617356616681_dp, 0.004392266266516603_dp,&
+ 0.0074199303035661236_dp, 0.012355848225194005_dp, 0.02030472924789548_dp, 0.0329612503015901_dp, 0.05290210344877982_dp, 0.08401329609895744_dp,&
+ 0.13211363792116823_dp, 0.20586780977743016_dp, 0.3181478896142563_dp, 0.48816468770340044_dp, 0.7451687687530838_dp, 1.1361253599700833_dp,&
+ 1.7459877749472628_dp, 2.7703909434425067_dp, 4.952626774509824_dp]
+ aw%aw_erange_matrix(:, 26) = [2.0330900665342417e-07_dp, 1.2259721995909777e-06_dp, 3.9000493864165235e-06_dp, 1.0346548674455454e-05_dp, 2.5104573254227977e-05_dp,&
+ 5.722321695341548e-05_dp, 0.0001240915794841191_dp, 0.00025812480274594484_dp, 0.0005181574776824829_dp, 0.0010084979886612006_dp, 0.0019102647242876139_dp,&
+ 0.003532146072512572_dp, 0.0063914997207670885_dp, 0.011342304908756772_dp, 0.019774721642387954_dp, 0.03392304253932974_dp, 0.05733626485492922_dp,&
+ 0.0955906794116426_dp, 0.15736013123361753_dp, 0.2560121769552906_dp, 0.4119766499624099_dp, 0.6562580036536524_dp, 1.0356912360288544_dp,&
+ 1.6210528978513052_dp, 2.5205569278227222_dp, 3.906010837038453_dp, 6.07864411392436_dp, 9.725147433824423_dp, 5.372960626792664e-07_dp,&
+ 1.6313777234005112e-06_dp, 4.053582188809558e-06_dp, 9.562645330678188e-06_dp, 2.140029237042944e-05_dp, 4.5628018410594356e-05_dp, 9.332815320834305e-05_dp,&
+ 0.00018423715674012751_dp, 0.0003527071740962291_dp, 0.0006573395283833412_dp, 0.0011963286460791483_dp, 0.0021315852595548933_dp, 0.003726211411404738_dp,&
+ 0.006402085885163769_dp, 0.010827471574921069_dp, 0.018049062427338197_dp, 0.029689317308315376_dp, 0.048239120452325215_dp, 0.0774890829270111_dp,&
+ 0.12316278045588097_dp, 0.1938483490800667_dp, 0.30239008881049667_dp, 0.4680611192958136_dp, 0.7203071572907666_dp, 1.1064348627930074_dp,&
+ 1.7118002420359797_dp, 2.732149945273555_dp, 4.908937928661797_dp]
+ aw%aw_erange_matrix(:, 27) = [1.0453117858944355e-07_dp, 6.608617412970565e-07_dp, 2.263239779628554e-06_dp, 6.456580799232289e-06_dp, 1.6648773232985477e-05_dp,&
+ 3.988538010811069e-05_dp, 9.013431830037881e-05_dp, 0.00019412595183632066_dp, 0.00040148594866505004_dp, 0.000801953768960446_dp, 0.0015541047607406542_dp,&
+ 0.002932474750123789_dp, 0.0054037297272779_dp, 0.0097481213186169_dp, 0.01725076571642057_dp, 0.029999477630049398_dp, 0.05134367891607686_dp,&
+ 0.08659470336954253_dp, 0.14408515309896788_dp, 0.2367592019652705_dp, 0.3845463783654337_dp, 0.6178989765753549_dp, 0.9831034515051852_dp,&
+ 1.5504849076462728_dp, 2.4280266299570483_dp, 3.7876319869184405_dp, 5.930901453777237_dp, 9.544473553973464_dp, 2.7911359387760054e-07_dp,&
+ 9.225699169205882e-07_dp, 2.525970869540034e-06_dp, 6.400448408750558e-06_dp, 1.5105857774384374e-05_dp, 3.360200325419909e-05_dp, 7.118848251951222e-05_dp,&
+ 0.00014478894137667428_dp, 0.0002844248664965114_dp, 0.0005421792095475284_dp, 0.001006646872918385_dp, 0.0018259034247645597_dp, 0.003243545770723624_dp,&
+ 0.0056545862514208655_dp, 0.009691209964763319_dp, 0.016353052767086353_dp, 0.027203315594152448_dp, 0.044661579803193296_dp, 0.07243798977464_dp,&
+ 0.11617410461859103_dp, 0.18438950337219645_dp, 0.2898984327270837_dp, 0.45201785956261764_dp, 0.7003495143727266_dp, 1.0824839695902242_dp,&
+ 1.6841236033891487_dp, 2.701136203287264_dp, 4.87352184807004_dp]
+ aw%aw_erange_matrix(:, 28) = [2.883608355013751e-08_dp, 2.1533521290478e-07_dp, 8.922309745530507e-07_dp, 2.9625449220607536e-06_dp, 8.567451943237967e-06_dp,&
+ 2.243432347635065e-05_dp, 5.4443793898855104e-05_dp, 0.00012434900771925045_dp, 0.0002702071667839422_dp, 0.0005630773934606482_dp, 0.001132097168889575_dp,&
+ 0.0022064607569192898_dp, 0.004184511435918261_dp, 0.007745737975074526_dp, 0.014029823575166972_dp, 0.024919304936911416_dp, 0.04348066531140458_dp,&
+ 0.07464540686704813_dp, 0.12625156513534663_dp, 0.2106228965724005_dp, 0.34694729093744464_dp, 0.5648480693819434_dp, 0.9097754411882123_dp,&
+ 1.4513508415022998_dp, 2.297177622667234_dp, 3.619275978541861_dp, 5.719806682040045_dp, 9.28540894538464_dp, 8.026935386394373e-08_dp,&
+ 3.431660125547769e-07_dp, 1.1507249938591508e-06_dp, 3.3255150480524145e-06_dp, 8.631544858985621e-06_dp, 2.0673889190163757e-05_dp, 4.650257994599218e-05_dp,&
+ 9.941521329490123e-05_dp, 0.0002037413884778986_dp, 0.00040284592225487954_dp, 0.0007722776557802875_dp, 0.0014410293829550617_dp, 0.0026254207291881958_dp,&
+ 0.0046823958218659345_dp, 0.008192369379080482_dp, 0.014086602667824237_dp, 0.023841088169455484_dp, 0.039769020002557186_dp, 0.06545851893082533_dp,&
+ 0.1064240118543133_dp, 0.1710745747479101_dp, 0.2721680114354786_dp, 0.42907347105223687_dp, 0.671615155080402_dp, 1.0478076752969256_dp,&
+ 1.6438903234547084_dp, 2.6559588426369642_dp, 4.821957836337722_dp]
+ aw%aw_erange_matrix(:, 29) = [7.2246193648183315e-09_dp, 7.947805205434051e-08_dp, 4.2064242178143404e-07_dp, 1.6235298675242196e-06_dp, 5.1991703168705275e-06_dp,&
+ 1.4668546651111404e-05_dp, 3.7705424076918065e-05_dp, 9.01796708136201e-05_dp, 0.0002035415234868656_dp, 0.0004379390624442907_dp, 0.0009049701100068852_dp,&
+ 0.0018063291005268592_dp, 0.0034982504743316482_dp, 0.006597202794116675_dp, 0.012150671665557649_dp, 0.021909404675932484_dp, 0.03875606413936719_dp,&
+ 0.06737255773930659_dp, 0.11526829896699824_dp, 0.1943501837935314_dp, 0.3233020082512726_dp, 0.5311764928093146_dp, 0.8628395371729328_dp,&
+ 1.3874103242942566_dp, 2.212207252365476_dp, 3.5093118591573305_dp, 5.581272308767191_dp, 9.114780312141413_dp, 2.3095697901478273e-08_dp,&
+ 1.5174284298730647e-07_dp, 6.211817019789001e-07_dp, 2.0193446034719265e-06_dp, 5.684986670359784e-06_dp, 1.4468629362219993e-05_dp, 3.413251437719442e-05_dp,&
+ 7.584802072328596e-05_dp, 0.00016053557840876553_dp, 0.0003262378591667722_dp, 0.0006404016188164239_dp, 0.0012199823490146536_dp, 0.0022638430447923645_dp,&
+ 0.0041042325427612_dp, 0.007287543243404729_dp, 0.012699528275383098_dp, 0.021757390677572788_dp, 0.03670161910421734_dp, 0.061035614898498174_dp,&
+ 0.10018369236083766_dp, 0.16247380492926894_dp, 0.26061721476056016_dp, 0.41400956019249524_dp, 0.6526199011491635_dp, 1.0247530046294373_dp,&
+ 1.617029280212683_dp, 2.625732716141634_dp, 4.78747600908045_dp]
+ case(30)
+ aw%energy_range(:) = [2906.0_dp, 3236.0_dp, 3810.0_dp, 4405.0_dp, 5400.0_dp, 6800.0_dp, 8400.0_dp,&
+ 10000.0_dp, 12000.0_dp, 15000.0_dp, 20000.0_dp, 28000.0_dp, 38000.0_dp, 50000.0_dp, 64000.0_dp, 84000.0_dp,&
+ 110000.0_dp, 160000.0_dp, 220000.0_dp, 370000.0_dp, 520000.0_dp, 700000.0_dp, 1100000.0_dp, 1800000.0_dp,&
+ 3300000.0_dp, 6000000.0_dp, 18000000.0_dp, 50000000.0_dp]
+ aw%aw_erange_matrix(:, 1) = [0.00010719782131833758_dp, 0.0005720967766785331_dp, 0.001439669174001423_dp, 0.002769849121659816_dp, 0.004664000049778321_dp,&
+ 0.007283241780546586_dp, 0.010873000028774003_dp, 0.015792629918665993_dp, 0.02255038608921401_dp, 0.031847782299297675_dp, 0.04463988143266245_dp,&
+ 0.06221821662158963_dp, 0.08632310206096853_dp, 0.11929354905847961_dp, 0.16426574047985984_dp, 0.2254347024266385_dp, 0.30839852293765396_dp,&
+ 0.42061064113062563_dp, 0.5719741696129382_dp, 0.7756243966360713_dp, 1.0489645297600516_dp, 1.415051852321483_dp, 1.9044914330966105_dp,&
+ 2.558117126903484_dp, 3.4310117702125913_dp, 4.5990752550643395_dp, 6.171106184489477_dp, 8.314824292369494_dp, 11.326871889957468_dp,&
+ 15.91048796379593_dp, 0.0002759212187476099_dp, 0.0006589920695996667_dp, 0.001085937188673809_dp, 0.0015910122106733914_dp, 0.0022237295869651035_dp,&
+ 0.003055163774041633_dp, 0.004183672861951183_dp, 0.005739573533927359_dp, 0.007891868776677179_dp, 0.010860734164881057_dp, 0.014936866838559482_dp,&
+ 0.020507383044696917_dp, 0.02808894961545452_dp, 0.038370325842103176_dp, 0.052267550952526234_dp, 0.07099592893538823_dp, 0.09616415398590554_dp,&
+ 0.1298977096485147_dp, 0.17500152116499199_dp, 0.235176717264172_dp, 0.3153154828400979_dp, 0.4219165107665381_dp, 0.5637038218742615_dp,&
+ 0.7526245591453196_dp, 1.005629375577748_dp, 1.3482480324070423_dp, 1.8228149068796895_dp, 2.510939848106289_dp, 3.6132439344998795_dp, 5.9228966909439205_dp]
+ aw%aw_erange_matrix(:, 2) = [9.76676051737233e-05_dp, 0.000521439839796676_dp, 0.0013131673080453233_dp, 0.0025293903535565823_dp, 0.0042661250059111795_dp,&
+ 0.0066765801036800295_dp, 0.009994783165295324_dp, 0.014564000812497294_dp, 0.020870492553693578_dp, 0.02958685422269625_dp, 0.04163138568046643_dp,&
+ 0.058249942771901375_dp, 0.08112692839971898_dp, 0.11253369957795559_dp, 0.15552549205786806_dp, 0.2142017013001525_dp, 0.29404913356355256_dp,&
+ 0.4023941070276559_dp, 0.5489978387767454_dp, 0.7468418586806641_dp, 1.0131691905482183_dp, 1.3708791149003934_dp, 1.8504330035916199_dp,&
+ 2.4925505474173923_dp, 3.3522463174174093_dp, 4.505410618668513_dp, 6.060890691327169_dp, 8.186478838726869_dp, 11.178786177384513_dp,&
+ 15.74038405881577_dp, 0.00025141352623809566_dp, 0.0006009323005964832_dp, 0.0009917485369505094_dp, 0.0014564055840763494_dp, 0.002042200574311218_dp,&
+ 0.0028172406584227633_dp, 0.003875825130607345_dp, 0.005342947480157929_dp, 0.00738116098048549_dp, 0.010203263291670922_dp, 0.014091611662835478_dp,&
+ 0.019423788992341998_dp, 0.026705494627716198_dp, 0.03661296179988794_dp, 0.05004819563708869_dp, 0.06821123613467164_dp, 0.09269486715309114_dp,&
+ 0.12560901090026905_dp, 0.16974491105273157_dp, 0.22879407342136257_dp, 0.30764598759629597_dp, 0.4128070021079015_dp, 0.5530226357541534_dp,&
+ 0.7402778334602197_dp, 0.9915767219176012_dp, 1.332510891997349_dp, 1.8054641559432192_dp, 2.49203146209568_dp, 3.5925935804922893_dp, 5.89893592679766_dp]
+ aw%aw_erange_matrix(:, 3) = [8.47819458078811e-05_dp, 0.00045292247232938765_dp, 0.0011419488590203569_dp, 0.0022036034544386665_dp, 0.0037263081029974285_dp,&
+ 0.005851972143509195_dp, 0.008798246612654406_dp, 0.012885194918659285_dp, 0.018567320347579703_dp, 0.026475458982841895_dp, 0.03747475660944132_dp,&
+ 0.05274484615883288_dp, 0.07388876569982615_dp, 0.103079000554941_dp, 0.14325196624460337_dp, 0.19836605747691327_dp, 0.27374326191660053_dp,&
+ 0.3765207493043709_dp, 0.5162475872690495_dp, 0.7056742360429414_dp, 0.9618016216492792_dp, 1.3072886416997354_dp, 1.772376230882795_dp,&
+ 2.39760681930879_dp, 3.237886311434963_dp, 4.369085529708981_dp, 5.900122672480505_dp, 7.998902446784312_dp, 10.962002095892634_dp,&
+ 15.491026703179935_dp, 0.00021827426323305446_dp, 0.0005223668404015434_dp, 0.0008641224881204865_dp, 0.0012736436118541284_dp, 0.001795042273807457_dp,&
+ 0.0024921178119473955_dp, 0.00345325315447348_dp, 0.004795711504484412_dp, 0.006672726568911133_dp, 0.009286420295701826_dp, 0.012906984705977642_dp,&
+ 0.017897959998054307_dp, 0.02474875419566456_dp, 0.0341168643096291_dp, 0.046883167956700916_dp, 0.06422456826044022_dp, 0.08770953467687731_dp,&
+ 0.11942394754852313_dp, 0.16213754631449626_dp, 0.21952613567742027_dp, 0.2964736644552558_dp, 0.39949638395652903_dp, 0.5373706722452656_dp,&
+ 0.7221373998987525_dp, 0.9708812677144617_dp, 1.309288667276434_dp, 1.7798217912856973_dp, 2.464060270734846_dp, 3.5620371023687465_dp, 5.8635023001897295_dp]
+ aw%aw_erange_matrix(:, 4) = [7.475415175359787e-05_dp, 0.0003995782940364109_dp, 0.0010085401523130205_dp, 0.0019494530926649103_dp, 0.003304487334168418_dp,&
+ 0.005206188391856581_dp, 0.007858547072014874_dp, 0.011562196417307553_dp, 0.01674502130839572_dp, 0.02400284151062447_dp, 0.03415615402045192_dp,&
+ 0.04832877588615427_dp, 0.06805486346691048_dp, 0.09542279350363236_dp, 0.13326739942725138_dp, 0.18542592486136436_dp, 0.25707802147355546_dp,&
+ 0.3551966628680496_dp, 0.48914575629830964_dp, 0.6714729217979144_dp, 0.9189652081581203_dp, 1.2540675821639358_dp, 1.706822983665265_dp,&
+ 2.3176124905704714_dp, 3.1412403932005213_dp, 4.253555048851896_dp, 5.763534315696107_dp, 7.839184077942836_dp, 10.777063260156016_dp,&
+ 15.27796168145106_dp, 0.00019248226458298544_dp, 0.0004611671410305988_dp, 0.0007645470771240003_dp, 0.0011307064674945877_dp, 0.001601097912084883_dp,&
+ 0.002235885143791768_dp, 0.003118439955104845_dp, 0.00435950977219228_dp, 0.006104510985566756_dp, 0.008546583020796826_dp, 0.011945581030119579_dp,&
+ 0.016652984461283625_dp, 0.02314408570724871_dp, 0.03206002850298206_dp, 0.044263120398424796_dp, 0.06090977430142275_dp, 0.08354673398267808_dp,&
+ 0.11423814381228614_dp, 0.15573394602932067_dp, 0.2116949419787466_dp, 0.28699873776286255_dp, 0.38816866941911854_dp, 0.5240067210209787_dp,&
+ 0.7066019007188943_dp, 0.9531097377337013_dp, 1.2893015561438181_dp, 1.7577121859945424_dp, 2.439914418694296_dp, 3.5356481389173076_dp, 5.832916244207001_dp]
+ aw%aw_erange_matrix(:, 5) = [6.263685476987877e-05_dp, 0.0003350864107617077_dp, 0.0008471021406263553_dp, 0.0016414732496533968_dp, 0.0027923267352349805_dp,&
+ 0.004420069092229887_dp, 0.006710856247430801_dp, 0.009939856329159545_dp, 0.014500042255919464_dp, 0.02094127936473627_dp, 0.030025328730095918_dp,&
+ 0.042802276529506474_dp, 0.06071482338334902_dp, 0.08573906273600417_dp, 0.1205734666631485_dp, 0.168891746293846_dp, 0.23568035070007362_dp,&
+ 0.3276881055094081_dp, 0.4540246498488577_dp, 0.6269572963379791_dp, 0.8629754834557104_dp, 1.1842241235652444_dp, 1.6204657246854692_dp,&
+ 2.2118496417292866_dp, 3.0130302596964915_dp, 4.099816741357715_dp, 5.581265514191353_dp, 7.625526452879397_dp, 10.52915117245689_dp,&
+ 14.99185357007055_dp, 0.00016131234676709978_dp, 0.0003871323803883455_dp, 0.0006438639425224474_dp, 0.0009569827684469891_dp, 0.0013644640382973136_dp,&
+ 0.0019216628235682472_dp, 0.002705305661659533_dp, 0.003817552287654078_dp, 0.005393559577915718_dp, 0.007614615789728071_dp, 0.0107267793784036_dp,&
+ 0.01506524759897237_dp, 0.02108608211163133_dp, 0.029407976403737046_dp, 0.040867556214958384_dp, 0.05659266977268607_dp, 0.07809948510740791_dp,&
+ 0.10742117687653448_dp, 0.1472789549319935_dp, 0.20131104861420793_dp, 0.27438405593923587_dp, 0.3730286538370253_dp, 0.50607994537212_dp,&
+ 0.6856919919465865_dp, 0.9291183488974969_dp, 1.2622503775094018_dp, 1.7277292939880777_dp, 2.407128771305674_dp, 3.4998023815666013_dp, 5.791398263742947_dp]
+ aw%aw_erange_matrix(:, 6) = [5.1260796624319686e-05_dp, 0.00027449998212479283_dp, 0.0006952559402364613_dp, 0.0013512581469068891_dp, 0.0023084695955214183_dp,&
+ 0.0036748571064951344_dp, 0.005618146035815099_dp, 0.008387084892047715_dp, 0.012338401496919359_dp, 0.01797419704821914_dp, 0.025994966614220735_dp,&
+ 0.03737346294738748_dp, 0.05345583818085436_dp, 0.0760988446106003_dp, 0.10785503448538585_dp, 0.15222193676863333_dp, 0.2139764359272559_dp,&
+ 0.29962253812775563_dp, 0.4179901608236006_dp, 0.5810358869798488_dp, 0.8049164836351872_dp, 1.11143825413834_dp, 1.5300435290071273_dp,&
+ 2.1006127473331047_dp, 2.8776209315806276_dp, 3.93682226153259_dp, 5.387354342884511_dp, 7.397531351751853_dp, 10.263919356557402_dp,&
+ 14.685102820756857_dp, 0.00013204473011131683_dp, 0.0003175248324260899_dp, 0.0005301211290638112_dp, 0.000792646090309341_dp, 0.0011394726365449568_dp,&
+ 0.0016209075495792747_dp, 0.0023066917116162182_dp, 0.0032900298122596973_dp, 0.004695415042196518_dp, 0.0066917090579473775_dp, 0.009510290459434545_dp,&
+ 0.013468802311717997_dp, 0.019002357781084556_dp, 0.02670497738030662_dp, 0.037384817040713114_dp, 0.05213776033026327_dp, 0.072445378072951_dp,&
+ 0.10030529745315488_dp, 0.13840505606579703_dp, 0.19035539860923475_dp, 0.2610076849435031_dp, 0.3568973694825793_dp, 0.48689310015691706_dp,&
+ 0.6632189222745253_dp, 0.9032371034193576_dp, 1.2329755271865048_dp, 1.695201274879912_dp, 2.3715025399546223_dp, 3.4608285109987857_dp, 5.746290251951392_dp]
+ aw%aw_erange_matrix(:, 7) = [4.264827171158114e-05_dp, 0.00022859921129368268_dp, 0.0005800651655637003_dp, 0.0011306618266057897_dp, 0.001939659276932296_dp,&
+ 0.0031047255791507274_dp, 0.004778205945319036_dp, 0.007186731964418128_dp, 0.010656673525706605_dp, 0.01565005735652159_dp, 0.02281575734702256_dp,&
+ 0.03306097534037487_dp, 0.04764947470167637_dp, 0.0683354702649706_dp, 0.09754528626464402_dp, 0.13862301432535307_dp, 0.19616179200890152_dp,&
+ 0.27644949046799433_dp, 0.3880673249123362_dp, 0.5426935306072133_dp, 0.7561844283103211_dp, 1.0500376608384598_dp, 1.4534003880410857_dp,&
+ 2.005901250325418_dp, 2.7618425195091647_dp, 3.796918364528742_dp, 5.220333260426152_dp, 7.200552079960992_dp, 10.034172866297915_dp,&
+ 14.41882124837872_dp, 0.0001098833579123983_dp, 0.0002647437855875365_dp, 0.0004436472669265954_dp, 0.0006672101026873376_dp, 0.0009667895306084336_dp,&
+ 0.0013884135997529708_dp, 0.0019959070037335724_dp, 0.0028749526284055213_dp, 0.004141093118158889_dp, 0.005952643864305207_dp, 0.008528340123693306_dp,&
+ 0.01217052007837369_dp, 0.017295858304956554_dp, 0.024476476682491477_dp, 0.03449505017711748_dp, 0.04841859097574648_dp, 0.06769708781585487_dp,&
+ 0.09429528482789237_dp, 0.13086897935334732_dp, 0.1810021324793278_dp, 0.24952974948475865_dp, 0.3429885311920854_dp, 0.4702742651357602_dp,&
+ 0.6436716531183656_dp, 0.880640225748484_dp, 1.2073331130934455_dp, 1.6666371474517014_dp, 2.3401654531537157_dp, 3.4265253480645885_dp, 5.706615197039722_dp]
+ aw%aw_erange_matrix(:, 8) = [3.6638445936143444e-05_dp, 0.00019654898584533858_dp, 0.0004995365456010348_dp, 0.0009761629469610179_dp, 0.001680692380508944_dp,&
+ 0.0027030234477272513_dp, 0.004183824314963024_dp, 0.006332898868769434_dp, 0.009453508422633638_dp, 0.013977114132271049_dp, 0.020513053005428484_dp,&
+ 0.02991804681839935_dp, 0.043392038467264346_dp, 0.06260934488416951_dp, 0.089897358898568_dp, 0.12847922117893293_dp, 0.18280238941596594_dp,&
+ 0.25898237331386087_dp, 0.36540085871444006_dp, 0.5135113514430796_dp, 0.718925939367594_dp, 1.0028894169830442_dp, 1.3943048957706679_dp,&
+ 1.9325902027814568_dp, 2.6718997828791795_dp, 3.6878719059499683_dp, 5.089761008341865_dp, 7.046156150294659_dp, 9.853694451194254_dp,&
+ 14.209263474504755_dp, 9.441684068693651e-05_dp, 0.00022786014262271372_dp, 0.00038307351711976584_dp, 0.0005790223101422384_dp, 0.0008447661561374952_dp,&
+ 0.0012230417856923205_dp, 0.0017731334822002557_dp, 0.002574990545123123_dp, 0.003737321923840727_dp, 0.005410302324390409_dp, 0.007802786243657_dp,&
+ 0.011205034742082835_dp, 0.016019061597614896_dp, 0.02279945700439318_dp, 0.032308353668577205_dp, 0.04558931015753348_dp, 0.06406643328220389_dp,&
+ 0.08967722561429306_dp, 0.1250507942222136_dp, 0.17374800817672645_dp, 0.24058882427995695_dp, 0.3321088613980677_dp, 0.4572237934265981_dp,&
+ 0.6282658627647734_dp, 0.8627730246821379_dp, 1.187001575527606_dp, 1.6439399241381616_dp, 2.3152296444802993_dp, 3.3992160109205325_dp, 5.6750508010285134_dp]
+ aw%aw_erange_matrix(:, 9) = [3.125352048295285e-05_dp, 0.00016781351172929327_dp, 0.00042725280780375096_dp, 0.0008372368297287864_dp, 0.0014472482996344947_dp,&
+ 0.0023397061489668085_dp, 0.00364397706459525_dp, 0.005553554215846271_dp, 0.008349288769114196_dp, 0.012432933353972381_dp, 0.018375235671074245_dp,&
+ 0.0269833920064158_dp, 0.03939439104594155_dp, 0.057203310896803944_dp, 0.08263890933961444_dp, 0.118803108858221_dp, 0.16999660677619183_dp,&
+ 0.24216036024367976_dp, 0.3434728927615001_dp, 0.4851575786991668_dp, 0.6825748514741242_dp, 0.956707159367906_dp, 1.3362022902301018_dp,&
+ 1.8602550523674573_dp, 2.582860494442485_dp, 3.5795923551771076_dp, 4.959752013207221_dp, 6.892057403111867_dp, 9.673196873736643_dp,&
+ 13.999332658018544_dp, 8.055654719138439e-05_dp, 0.0001947658525515697_dp, 0.00032859686532794565_dp, 0.0004994306825817649_dp, 0.0007340947583837473_dp,&
+ 0.0010721035282296792_dp, 0.001568310846736925_dp, 0.002297102568888374_dp, 0.0033605346972129828_dp, 0.00490077013024238_dp, 0.0071168327918336724_dp,&
+ 0.010286868707377024_dp, 0.01479808821232481_dp, 0.021187271898748812_dp, 0.03019555503700218_dp, 0.042842362400043486_dp, 0.06052496436664667_dp,&
+ 0.08515234916902564_dp, 0.11932532276255173_dp, 0.16657974696296404_dp, 0.23171843775477596_dp, 0.3212739304330216_dp, 0.4441803236632917_dp,&
+ 0.6128171239515162_dp, 0.8448023886795951_dp, 1.1664998500858539_dp, 1.6210063652060114_dp, 2.2900001311037035_dp, 3.371570229987856_dp, 5.643112922874634_dp]
+ aw%aw_erange_matrix(:, 10) = [2.572460674430881e-05_dp, 0.00013828809639808773_dp, 0.0003528803185321503_dp, 0.0006939963784805861_dp, 0.0012058419667301263_dp,&
+ 0.00196250811153749_dp, 0.003080710120197529_dp, 0.004735659001322314_dp, 0.007183065998906602_dp, 0.010791253848864667_dp, 0.016087325873200328_dp,&
+ 0.02382213056319325_dp, 0.03506059129972535_dp, 0.051306532736392435_dp, 0.07467445268948096_dp, 0.10812503757927873_dp, 0.15578699671299615_dp,&
+ 0.2233955307214805_dp, 0.31888824542436384_dp, 0.45321390622010965_dp, 0.6414306299530386_dp, 0.9042033223791973_dp, 1.2698679478183343_dp,&
+ 1.7773436933847355_dp, 2.4804246798636003_dp, 3.4545978455659587_dp, 4.80921488681201_dp, 6.713149815396915_dp, 9.463167209838238_dp,&
+ 13.75460415331797_dp, 6.632324623333035e-05_dp, 0.00016073115506706547_dp, 0.0002724186286744679_dp, 0.00041700914328903177_dp, 0.0006188187442380069_dp,&
+ 0.000913709771883424_dp, 0.0013515392555132155_dp, 0.002000450746020119_dp, 0.0029549917404197673_dp, 0.004348167160940399_dp, 0.006367634264735562_dp,&
+ 0.009277411142785488_dp, 0.013447324345434384_dp, 0.01939310256171694_dp, 0.027830892296757826_dp, 0.03975118351588367_dp, 0.056518799068157294_dp,&
+ 0.08000790205760616_dp, 0.11278427119956595_dp, 0.15835215912014322_dp, 0.2214916578911036_dp, 0.3087289982044895_dp, 0.42901765162073763_dp,&
+ 0.5947915793660636_dp, 0.8237640916060611_dp, 1.142429482918768_dp, 1.5940199744065582_dp, 2.2602675888442345_dp, 3.3389719364130626_dp, 5.605477212236766_dp]
+ aw%aw_erange_matrix(:, 11) = [2.0010353507234397e-05_dp, 0.0001077433422458143_dp, 0.00027580023006758454_dp, 0.0005451258515021734_dp, 0.0009539529098224693_dp,&
+ 0.0015668441726082855_dp, 0.0024859562396115408_dp, 0.003865438814677545_dp, 0.005931997279200694_dp, 0.009015206545406032_dp, 0.013591237471033118_dp,&
+ 0.020344680291656994_dp, 0.03025506904355767_dp, 0.04471729454363523_dp, 0.0657084625235162_dp, 0.09601821543882148_dp, 0.13956549956219141_dp,&
+ 0.2018327748807436_dp, 0.2904595479070126_dp, 0.41605219017177664_dp, 0.5932887745998796_dp, 0.8424313672051914_dp, 1.1914160744119529_dp,&
+ 1.678803642976038_dp, 2.3581208348346263_dp, 3.3047307785320212_dp, 4.6280385004171025_dp, 6.497115386386612_dp, 9.208843054933286_dp,&
+ 13.457588010635305_dp, 5.1609539489171625e-05_dp, 0.00012547938250585046_dp, 0.00021401951207906163_dp, 0.0003308508348857692_dp, 0.0004973777574979467_dp,&
+ 0.0007451991801870302_dp, 0.0011183825299403462_dp, 0.0016778698024847744_dp, 0.0025094583225573333_dp, 0.0037353071207149595_dp, 0.005529432603001048_dp,&
+ 0.008138731296629963_dp, 0.011911786975259289_dp, 0.0173383968709882_dp, 0.02510367274551181_dp, 0.03616185208550007_dp, 0.05183670042056887_dp,&
+ 0.07395778747131394_dp, 0.10504533244757883_dp, 0.14856147943385148_dp, 0.20925449434054086_dp, 0.2936386766166653_dp, 0.41068755123213285_dp,&
+ 0.5728998438821491_dp, 0.7981069410955339_dp, 1.1129693992413612_dp, 1.5608972768887142_dp, 2.223705100788062_dp, 3.298855550400102_dp, 5.559194240832182_dp]
+ aw%aw_erange_matrix(:, 12) = [1.4913158562437485e-05_dp, 8.046249863674396e-05_dp, 0.00020679269836799646_dp, 0.00041135606175085387_dp, 0.000726429457279576_dp,&
+ 0.001206954515218603_dp, 0.0019403041016435166_dp, 0.0030592205520702234_dp, 0.004760844972277948_dp, 0.007334997531745175_dp, 0.011205132165430936_dp,&
+ 0.016986616421301493_dp, 0.025568952229820977_dp, 0.03823114994605764_dp, 0.056802896237992014_dp, 0.08388874591064059_dp, 0.12317874197383723_dp,&
+ 0.17987720132408636_dp, 0.26129273365588884_dp, 0.3776482327688284_dp, 0.5431920469707082_dp, 0.7777259064649447_dp, 1.1087233079248426_dp,&
+ 1.5743236370665366_dp, 2.2277313150621567_dp, 3.144149304477041_dp, 4.433028932012796_dp, 6.263665410565493_dp, 8.933099495687644_dp,&
+ 13.134684015624826_dp, 3.848089108885685e-05_dp, 9.39454195069688e-05_dp, 0.00016153027576924122_dp, 0.0002528432683507074_dp, 0.0003863006748200446_dp,&
+ 0.000589103857593431_dp, 0.0008994092337673156_dp, 0.0013708168552981645_dp, 0.0020800635852347526_dp, 0.0031378613819817206_dp, 0.004703620407911122_dp,&
+ 0.007005705166384156_dp, 0.010369489117192241_dp, 0.015256172448531693_dp, 0.02231631000951314_dp, 0.03246335096484727_dp, 0.04697433098325742_dp,&
+ 0.06762737851039459_dp, 0.09688924910721004_dp, 0.13817140362709024_dp, 0.19618184162864452_dp, 0.2774160356134996_dp, 0.39086437274546876_dp,&
+ 0.5490937144681445_dp, 0.7700664939132916_dp, 1.0806338759241187_dp, 1.5244170903885788_dp, 2.183343539374224_dp, 3.254529601017961_dp, 5.508095437648589_dp]
+ aw%aw_erange_matrix(:, 13) = [1.1418872198921082e-05_dp, 6.173413750253069e-05_dp, 0.00015929220328335313_dp, 0.00031889503854739523_dp, 0.0005682342649483396_dp,&
+ 0.0009547547779672074_dp, 0.0015542608919948567_dp, 0.0024827272879236525_dp, 0.003914044995780404_dp, 0.006106526724782397_dp, 0.009441451620849054_dp,&
+ 0.01447827421468276_dp, 0.022033096235727034_dp, 0.03328960553532699_dp, 0.04995516756713029_dp, 0.07447945346316431_dp, 0.11035934551634245_dp,&
+ 0.16256247169247554_dp, 0.23811344985212937_dp, 0.3469031346310937_dp, 0.5028042883523934_dp, 0.7252121362263632_dp, 1.0411867545570728_dp,&
+ 1.4884852069632906_dp, 2.120012518561155_dp, 3.0108136851550755_dp, 4.2703677397197355_dp, 6.068165404997884_dp, 8.701408700808228_dp,&
+ 12.8626331750244_dp, 2.947787098787719e-05_dp, 7.225954134028555e-05_dp, 0.0001252402865134724_dp, 0.00019846473664424758_dp, 0.00030798161384563543_dp,&
+ 0.0004775038459907116_dp, 0.0007405481153276563_dp, 0.0011449321771295313_dp, 0.0017601237436588445_dp, 0.0026874815648166833_dp, 0.004074324357547685_dp,&
+ 0.0061335185303593494_dp, 0.009170846038462778_dp, 0.013623145317805922_dp, 0.020111251332522298_dp, 0.029513178507526473_dp, 0.043064913823154624_dp,&
+ 0.062498815014491525_dp, 0.09023329634576005_dp, 0.12963292767495377_dp, 0.18536685282870904_dp, 0.26390946533406945_dp, 0.3742607782294386_dp,&
+ 0.5290426355523791_dp, 0.7463296721416969_dp, 1.0531417380773798_dp, 1.493293292834725_dp, 2.1488272848196677_dp, 3.216586556758033_dp, 5.464388958502095_dp]
+ aw%aw_erange_matrix(:, 14) = [8.982546693806235e-06_dp, 4.865818678309805e-05_dp, 0.00012604148335636865_dp, 0.00025390861901678955_dp, 0.0004563995854196066_dp,&
+ 0.0007750952045840026_dp, 0.0012767265489376275_dp, 0.002064101925548432_dp, 0.0032927700122513484_dp, 0.005195994959981289_dp, 0.008121235122746024_dp,&
+ 0.012582721029292343_dp, 0.019336695756878207_dp, 0.029488494866509965_dp, 0.044644170175709534_dp, 0.06712415308115761_dp, 0.10026296333569998_dp,&
+ 0.14882782019535817_dp, 0.2196010954609523_dp, 0.3221882442730784_dp, 0.47013658664261176_dp, 0.6824859983381489_dp, 0.9859314820504801_dp,&
+ 1.417888163895422_dp, 2.030988118342932_dp, 2.900125529064684_dp, 4.134793295219112_dp, 5.904650857570968_dp, 8.50705581410213_dp,&
+ 12.633884453832914_dp, 2.3198709666506916e-05_dp, 5.709307522017352e-05_dp, 9.972792415428492e-05_dp, 0.0001599273928986242_dp, 0.0002518605559821019_dp,&
+ 0.00039647689416403176_dp, 0.0006236485188629505_dp, 0.0009766180462365724_dp, 0.0015189982582493745_dp, 0.0023445004429086033_dp, 0.0035904524574293063_dp,&
+ 0.005456804956339633_dp, 0.008232881015796438_dp, 0.012334887697009843_dp, 0.01835828332102448_dp, 0.027150564163334993_dp, 0.03991202944665125_dp,&
+ 0.05833481297012722_dp, 0.08479428042701978_dp, 0.12261246982859136_dp, 0.17642213365813839_dp, 0.2526759210340022_dp, 0.3603782883628389_dp,&
+ 0.5121951678672628_dp, 0.7262964913958404_dp, 1.0298496814196687_dp, 1.4668430564566999_dp, 2.119432331068027_dp, 3.1842446525056274_dp, 5.427158434113688_dp]
+ aw%aw_erange_matrix(:, 15) = [7.238349702296008e-06_dp, 3.928458373506955e-05_dp, 0.00010214563688496669_dp, 0.00020702207021802802_dp, 0.0003752580104799391_dp,&
+ 0.0006437818300993232_dp, 0.001072114382774453_dp, 0.0017525850080720873_dp, 0.002826070350614258_dp, 0.004505651346498813_dp, 0.007111320652225213_dp,&
+ 0.011120302372900251_dp, 0.017239502228764955_dp, 0.026509227663294707_dp, 0.04045088318380033_dp, 0.06127621597555976_dp, 0.09218233054747209_dp,&
+ 0.13776574927878416_dp, 0.2046011860485274_dp, 0.3020478300836994_dp, 0.443370229666864_dp, 0.6472971651730427_dp, 0.9402012658200933_dp,&
+ 1.3591924682162404_dp, 1.956655369037565_dp, 2.8073424394429862_dp, 4.020750844752612_dp, 5.766686098521229_dp, 8.342653009498491_dp,&
+ 12.439991369032668_dp, 1.8702020468622055e-05_dp, 4.6203219782190167e-05_dp, 8.131762180666392e-05_dp, 0.00013190143534228278_dp, 0.00021061299324796057_dp,&
+ 0.0003361903026363539_dp, 0.000535605997735673_dp, 0.0008484276122519987_dp, 0.0013334887847408908_dp, 0.0020781819161196638_dp, 0.003211507934451115_dp,&
+ 0.004922574199422692_dp, 0.007486789650255751_dp, 0.011302797934300408_dp, 0.016944298667165195_dp, 0.02523242357196762_dp, 0.03733639323117268_dp,&
+ 0.05491299477721061_dp, 0.08029934786534572_dp, 0.11677913471088484_dp, 0.16895145657274943_dp, 0.24324744526263437_dp, 0.3486724489732179_dp,&
+ 0.49792796808610074_dp, 0.7092652162431419_dp, 1.009980880755789_dp, 1.4442192775687972_dp, 2.094243792411222_dp, 3.1565101709731045_dp, 5.395251764843703_dp]
+ aw%aw_erange_matrix(:, 16) = [5.706429844293361e-06_dp, 3.1040364829701505e-05_dp, 8.107328661660111e-05_dp, 0.00016550326188419503_dp, 0.0003029763316477536_dp,&
+ 0.0005259009041296794_dp, 0.0008867852843333584_dp, 0.0014677450288040894_dp, 0.002395273728414361_dp, 0.003862517134876226_dp, 0.006162129729070569_dp,&
+ 0.00973422779264423_dp, 0.015235895683403678_dp, 0.023641332048275565_dp, 0.03638532798309582_dp, 0.055567718600602306_dp, 0.08424323176407787_dp,&
+ 0.12683043751734444_dp, 0.18968622248619452_dp, 0.2819098113026998_dp, 0.4164652673968472_dp, 0.6117484077902107_dp, 0.893783996100621_dp,&
+ 1.2993493017998998_dp, 1.8805551654919748_dp, 2.7119921346520504_dp, 3.9031533013982855_dp, 5.623997981838861_dp, 8.172198452849088_dp,&
+ 12.238558563265647_dp, 1.4751349028333799e-05_dp, 3.660909835718544e-05_dp, 6.501211560655282e-05_dp, 0.00010687536539993863_dp, 0.00017337123549154558_dp,&
+ 0.00028107588099189824_dp, 0.000454137569267576_dp, 0.0007285000756826098_dp, 0.001158211238344495_dp, 0.0018242672088928367_dp, 0.0028471735084972696_dp,&
+ 0.004404897269066725_dp, 0.006758454939132606_dp, 0.01028819929336629_dp, 0.01554501319618277_dp, 0.023322182186959424_dp, 0.03475584758118297_dp,&
+ 0.05146485198022031_dp, 0.07574483876932264_dp, 0.11083732616584702_dp, 0.16130359908425193_dp, 0.23354923720333218_dp, 0.3365774511982118_dp,&
+ 0.48312462993088157_dp, 0.6915266416555069_dp, 0.9892183849743513_dp, 1.420514754404278_dp, 2.0678032116600904_dp, 3.127373080182709_dp, 5.361746811812883_dp]
+ aw%aw_erange_matrix(:, 17) = [4.507925303711096e-06_dp, 2.4580451494530444e-05_dp, 6.451263281768541e-05_dp, 0.00013272058871030806_dp, 0.0002455197572529811_dp,&
+ 0.0004313910776655633_dp, 0.0007367445062259567_dp, 0.001234786889942828_dp, 0.002039383465959761_dp, 0.00332603532508658_dp, 0.005363004530984576_dp,&
+ 0.008557044500582709_dp, 0.01352012174944254_dp, 0.021166153619467505_dp, 0.03285042829603399_dp, 0.05056939685207151_dp, 0.07724543673788668_dp,&
+ 0.11713067199112848_dp, 0.17637697527453522_dp, 0.263837336282913_dp, 0.39218930488595755_dp, 0.5795089364205666_dp, 0.8514842120807159_dp,&
+ 1.2445671334250805_dp, 1.8105970655011243_dp, 2.6239991397280553_dp, 3.7942542214271437_dp, 5.491467032685958_dp, 8.013480504379215_dp,&
+ 12.05062051565182_dp, 1.165943020924494e-05_dp, 2.907711562944157e-05_dp, 5.2135381292650646e-05_dp, 8.692931914146652e-05_dp, 0.00014332433921579002_dp,&
+ 0.00023600989072825049_dp, 0.0003866717964299752_dp, 0.0006280479343018203_dp, 0.0010098870748762492_dp, 0.001607379741603303_dp, 0.00253325997236095_dp,&
+ 0.003955231709080428_dp, 0.006120960061358173_dp, 0.009393712743103142_dp, 0.014302912174317341_dp, 0.02161546778139668_dp, 0.03243595167457546_dp,&
+ 0.04834668628642002_dp, 0.07160299218511915_dp, 0.10540485530435402_dp, 0.15427553890661685_dp, 0.22459367842315606_dp, 0.3253574621758251_dp,&
+ 0.46933370101682803_dp, 0.6749372715340488_dp, 0.9697356715189667_dp, 1.3982111886845372_dp, 2.0428791235793997_dp, 3.099885407679866_dp, 5.330156088439341_dp]
+ aw%aw_erange_matrix(:, 18) = [3.2492504706355543e-06_dp, 1.7782935938647487e-05_dp, 4.702094527107548e-05_dp, 9.788765130060788e-05_dp, 0.00018394800566011574_dp,&
+ 0.0003290226690843259_dp, 0.0005722787919864911_dp, 0.0009762934532250238_dp, 0.0016397346725346576_dp, 0.002716663917457915_dp, 0.004445425742834286_dp,&
+ 0.007191491449190322_dp, 0.011510534331810433_dp, 0.01824066242763528_dp, 0.02863642038498904_dp, 0.044562287024877995_dp, 0.06877046943314344_dp,&
+ 0.10529755457345026_dp, 0.16002804271088766_dp, 0.24149146592791995_dp, 0.361986165199179_dp, 0.5391615439925698_dp, 0.7982521139849742_dp,&
+ 1.1752670593405194_dp, 1.7216703901842698_dp, 2.511651208522495_dp, 3.654660979891775_dp, 5.320994285506342_dp, 7.808735565003434_dp,&
+ 11.80762543615471_dp, 8.410837332223653e-06_dp, 2.113245841372446e-05_dp, 3.845111058827689e-05_dp, 6.548419810172488e-05_dp, 0.00011052592304298797_dp,&
+ 0.00018602054544749434_dp, 0.0003107143750285354_dp, 0.0005134448260073493_dp, 0.0008386432327700857_dp, 0.0013542399463937198_dp, 0.002163165180703502_dp,&
+ 0.0034200707057045_dp, 0.0053555078104983965_dp, 0.008310672199526598_dp, 0.012787041135722151_dp, 0.019516894799063707_dp, 0.029562998187469335_dp,&
+ 0.044458853860523784_dp, 0.0664052872217014_dp, 0.09854535532252624_dp, 0.14534905940024856_dp, 0.2131554574377401_dp, 0.3109515151654752_dp,&
+ 0.4515398978356489_dp, 0.653437304234083_dp, 0.9443877723109725_dp, 1.3691021780052584_dp, 2.010279336423766_dp, 3.063897971847719_dp, 5.288820184644417_dp]
+ aw%aw_erange_matrix(:, 19) = [2.460537860443357e-06_dp, 1.3513517677623214e-05_dp, 3.598515389781885e-05_dp, 7.575261086818076e-05_dp, 0.0001444216294004159_dp,&
+ 0.00026247903310060725_dp, 0.0004639039840208787_dp, 0.0008036114726657992_dp, 0.001369205915452374_dp, 0.0022989755449385045_dp, 0.0038090333768977967_dp,&
+ 0.006233886266199457_dp, 0.01008661073890614_dp, 0.016147469119526157_dp, 0.025593516684082565_dp, 0.04018693519947543_dp, 0.06254703089827915_dp,&
+ 0.0965408099871576_dp, 0.14784085162679408_dp, 0.22471839016516207_dp, 0.33916659817804756_dp, 0.5084886871639984_dp, 0.7575478060875892_dp,&
+ 1.1219864437669036_dp, 1.6529529420726783_dp, 2.4244318079577103_dp, 3.5458393070593472_dp, 5.187620119758077_dp, 7.648065546110419_dp,&
+ 11.61648316806262_dp, 6.374120402922641e-06_dp, 1.6128252577743594e-05_dp, 2.9754113670763418e-05_dp, 5.166430893732005e-05_dp, 8.901502625196717e-05_dp,&
+ 0.00015264214630912148_dp, 0.0002591687585053359_dp, 0.00043455383137211705_dp, 0.000719240735481554_dp, 0.0011756556233951615_dp, 0.0018992288700902785_dp,&
+ 0.003034542038483531_dp, 0.004798831948386736_dp, 0.007515980097531093_dp, 0.011665360331427038_dp, 0.017951632069288924_dp, 0.027403921176393425_dp,&
+ 0.041516070343442624_dp, 0.06244414300326091_dp, 0.0932837802259788_dp, 0.13845969920620585_dp, 0.20427585444540086_dp, 0.2997063234922189_dp,&
+ 0.43757882986144675_dp, 0.6364895482287001_dp, 0.9243252918542686_dp, 1.3459866886820373_dp, 1.9843322156142236_dp, 3.035224685946777_dp, 5.255903429150008_dp]
+ aw%aw_erange_matrix(:, 20) = [1.5637740408395342e-06_dp, 8.644581438556428e-06_dp, 2.3326026659580105e-05_dp, 5.012244143843333e-05_dp, 9.804997776691128e-05_dp,&
+ 0.000183175648888439_dp, 0.0003325825937550191_dp, 0.0005909069030179598_dp, 0.0010307262850542825_dp, 0.001768639145774748_dp, 0.0029898323691103764_dp,&
+ 0.004985271727949821_dp, 0.008207526024267482_dp, 0.013353895620644004_dp, 0.0214892751837372_dp, 0.034226463130117915_dp, 0.053989018153179254_dp,&
+ 0.08439206340451581_dp, 0.1307907673641504_dp, 0.20106621537104283_dp, 0.3067466011130968_dp, 0.46460274135109153_dp, 0.698920779817791_dp,&
+ 1.0447664262134877_dp, 1.5527831264532448_dp, 2.296617666855539_dp, 3.3856119528633637_dp, 4.990434105875191_dp, 7.4097119078577_dp,&
+ 11.33215729315795_dp, 4.056801137252665e-06_dp, 1.0400304864325584e-05_dp, 1.968307964805301e-05_dp, 3.537211676997081e-05_dp, 6.309758174077909e-05_dp,&
+ 0.00011156144898932593_dp, 0.0001945228908869725_dp, 0.0003339605532184735_dp, 0.000564711446670201_dp, 0.0009413729224733118_dp, 0.0015485976328911168_dp,&
+ 0.0025163527439127716_dp, 0.004042366217657837_dp, 0.006424908889055276_dp, 0.010110351754549359_dp, 0.01576172006986062_dp, 0.02435693199744164_dp,&
+ 0.03732881710193292_dp, 0.05676374129839576_dp, 0.08568239505343193_dp, 0.12843634401072082_dp, 0.19127041101280928_dp, 0.28313227875730185_dp,&
+ 0.41688110772833514_dp, 0.6112296495300013_dp, 0.8942832614684186_dp, 1.3112417204467246_dp, 1.9452277892500305_dp, 2.9919599852080703_dp, 5.206267501211972_dp]
+ aw%aw_erange_matrix(:, 21) = [1.162904999603526e-06_dp, 6.460220717190712e-06_dp, 1.7606607480068412e-05_dp, 3.8410731277459235e-05_dp, 7.652869912290393e-05_dp,&
+ 0.00014570244755436322_dp, 0.00026937164379552174_dp, 0.0004866802067040396_dp, 0.0008620687596415197_dp, 0.001500239074857704_dp, 0.0025692139442485516_dp,&
+ 0.004335527408651135_dp, 0.00721744537817494_dp, 0.011864777494471953_dp, 0.01927761941951377_dp, 0.030981700048419165_dp, 0.04928550606403292_dp,&
+ 0.07765484694198317_dp, 0.12125517110926898_dp, 0.18773242857967326_dp, 0.2883321960866146_dp, 0.43949878526491704_dp, 0.6651609536255874_dp,&
+ 1.0000229662476519_dp, 1.4944068851808134_dp, 2.2217383426459816_dp, 3.2913012165448343_dp, 4.873895944019108_dp, 7.268367413333011_dp,&
+ 11.163103194460474_dp, 3.0200745063435063e-06_dp, 7.819224105572315e-06_dp, 1.5081156733800399e-05_dp, 2.776801766506454e-05_dp, 5.0700455074630125e-05_dp,&
+ 9.145615638049602e-05_dp, 0.0001622504928743556_dp, 0.00028286367265657205_dp, 0.0004849887879932366_dp, 0.0008187828750348566_dp, 0.0013627221411797283_dp,&
+ 0.002238314348285273_dp, 0.003631885398877431_dp, 0.005826597760169261_dp, 0.009249172128608455_dp, 0.014537611686674936_dp, 0.0226387619956523_dp,&
+ 0.03494804598497715_dp, 0.053508604450163914_dp, 0.0812939971568708_dp, 0.12260888215529167_dp, 0.18365876903663883_dp, 0.27337120427563866_dp,&
+ 0.4046203209300098_dp, 0.5961868839329513_dp, 0.8763095433545912_dp, 1.2903758814089559_dp, 1.9216820534456363_dp, 2.9658783009061263_dp, 5.176364379511127_dp]
+ aw%aw_erange_matrix(:, 22) = [8.982200709109713e-07_dp, 5.013746520038623e-06_dp, 1.3797556086375253e-05_dp, 3.053886905121258e-05_dp, 6.188411270912267e-05_dp,&
+ 0.00011984809712211666_dp, 0.00022515174308936954_dp, 0.00041280335546669807_dp, 0.0007410557365297971_dp, 0.0013054805064640572_dp, 0.0022608163607798406_dp,&
+ 0.003854540538433318_dp, 0.006477967304857807_dp, 0.010743336152506139_dp, 0.01759914400488243_dp, 0.028501352515678965_dp, 0.04566568530951012_dp,&
+ 0.07243687914225057_dp, 0.11382566141804518_dp, 0.17728511649027562_dp, 0.2738276317065499_dp, 0.41962643246873177_dp, 0.6383115216108352_dp,&
+ 0.9642825901967439_dp, 1.4475879782153047_dp, 2.1614613507414213_dp, 3.2151308325865324_dp, 4.779503431415253_dp, 7.153609650797204_dp,&
+ 11.025589359258367_dp, 2.33509910395076e-06_dp, 6.10398857813977e-06_dp, 1.1988268517456785e-05_dp, 2.2570731247056643e-05_dp, 4.206867163196105e-05_dp,&
+ 7.722227756857685e-05_dp, 0.00013907449507452585_dp, 0.0002457091386543816_dp, 0.00042636927263886435_dp, 0.0007277240308901886_dp, 0.0012233619517539264_dp,&
+ 0.0020280492037779985_dp, 0.0033189631613667883_dp, 0.005367062740884365_dp, 0.008583092022062843_dp, 0.0135845766573915_dp, 0.021292762750234086_dp,&
+ 0.033072042665578866_dp, 0.05092942142345538_dp, 0.07779867772338114_dp, 0.11794435500606822_dp, 0.17753757154997848_dp, 0.26548687080483935_dp,&
+ 0.3946762763128839_dp, 0.5839408961339644_dp, 0.8616294721408878_dp, 1.27328786626255_dp, 1.902362545255473_dp, 2.944458259522062_dp, 5.1518134931437265_dp]
+ aw%aw_erange_matrix(:, 23) = [6.070765776691511e-07_dp, 3.416871225040894e-06_dp, 9.561919657171797e-06_dp, 2.1683051083242104e-05_dp, 4.515689173365717e-05_dp,&
+ 8.982491421280511e-05_dp, 0.00017296367691311632_dp, 0.00032428348083868487_dp, 0.0005940202656656541_dp, 0.001065793876730367_dp, 0.0018767883279394732_dp,&
+ 0.0032490764599530236_dp, 0.0055377486897541_dp, 0.009304158830434279_dp, 0.015426407047504075_dp, 0.02526460961553787_dp, 0.0409062041812229_dp,&
+ 0.06552740429734295_dp, 0.10392219781712_dp, 0.16327176797255086_dp, 0.25425762049527484_dp, 0.3926657116824371_dp, 0.6016960744289409_dp,&
+ 0.9153062522487351_dp, 1.3831427017478757_dp, 2.0781516959653166_dp, 3.1094698633638336_dp, 4.64815163738497_dp, 6.99350202546865_dp,&
+ 10.833342615226073_dp, 1.5810344568110277e-06_dp, 4.201983132608034e-06_dp, 8.509301559244783e-06_dp, 1.660217499192091e-05_dp, 3.1937948250709083e-05_dp,&
+ 6.0196622838881555e-05_dp, 0.00011090164490251824_dp, 0.00019990225033881748_dp, 0.0003531805009952824_dp, 0.000612721804071078_dp, 0.0010454964371682956_dp,&
+ 0.0017570690249359784_dp, 0.0029120339233426416_dp, 0.004764440773172712_dp, 0.007702737556158165_dp, 0.012315669576916223_dp, 0.019488241944529968_dp,&
+ 0.03054057337997689_dp, 0.0474276677063864_dp, 0.0730254826754342_dp, 0.11153946595828376_dp, 0.1690888848289202_dp, 0.2545515426791882_dp,&
+ 0.3808215765752087_dp, 0.5668083660036856_dp, 0.8410170454494971_dp, 1.2492234533619844_dp, 1.8750991975085831_dp, 2.91420232217261_dp, 5.117153113908438_dp]
+ aw%aw_erange_matrix(:, 24) = [3.9676424024146875e-07_dp, 2.2573188915559954e-06_dp, 6.453978574008018e-06_dp, 1.5076014172691726e-05_dp, 3.241300804980766e-05_dp,&
+ 6.644316731632574e-05_dp, 0.00013145859105193587_dp, 0.0002525113816701914_dp, 0.0004726891479758136_dp, 0.0008648183450896165_dp, 0.0015500448519401517_dp,&
+ 0.00272698303228361_dp, 0.004716941205527944_dp, 0.008033374074156422_dp, 0.013487530814882825_dp, 0.022347744374551653_dp, 0.03657761361377878_dp,&
+ 0.0591894063537043_dp, 0.09476465831169727_dp, 0.15021601736547668_dp, 0.23589569241536856_dp, 0.3672011309219512_dp, 0.5668972518738795_dp,&
+ 0.8684896297613345_dp, 1.3212084913196627_dp, 1.9976957850654782_dp, 3.00698161245029_dp, 4.520261622699826_dp, 6.837125864760079_dp,&
+ 10.645115539809895_dp, 1.0356874216884052e-06_dp, 2.812088667709278e-06_dp, 5.914445821533368e-06_dp, 1.2021336664547268e-05_dp, 2.3940050145157427e-05_dp,&
+ 4.6430499419310365e-05_dp, 8.765815047744608e-05_dp, 0.00016143932217372545_dp, 0.0002907528424437285_dp, 0.0005132235070598931_dp, 0.0008895970920506905_dp,&
+ 0.0015167009659352298_dp, 0.0025470709958953243_dp, 0.004218406965056695_dp, 0.006897410357753999_dp, 0.011144514451186464_dp, 0.017808764773569234_dp,&
+ 0.028165958189904933_dp, 0.044118529654135305_dp, 0.0684833014292294_dp, 0.1054043456969387_dp, 0.16094570015015752_dp, 0.24395004441521287_dp,&
+ 0.3673168074143_dp, 0.550025709656669_dp, 0.8207374761240367_dp, 1.2254629611475691_dp, 1.8481116761650778_dp, 2.884215749911384_dp, 5.082816358644647_dp]
+ aw%aw_erange_matrix(:, 25) = [2.3571329342099874e-07_dp, 1.3632343165414816e-06_dp, 4.023756596461991e-06_dp, 9.795394424152668e-06_dp, 2.195714519062327e-05_dp,&
+ 4.674841254419276e-05_dp, 9.563512339593217e-05_dp, 0.00018918230274547437_dp, 0.00036348321259617266_dp, 0.0006806544569921736_dp, 0.001245724390748882_dp,&
+ 0.002233454990133142_dp, 0.00393042938989855_dp, 0.0068003647335751725_dp, 0.011584430850915652_dp, 0.019453873577319414_dp, 0.032240162866761804_dp,&
+ 0.052779185694875504_dp, 0.08542204924536101_dp, 0.136787796738067_dp, 0.2168656674798965_dp, 0.3406212481786099_dp, 0.5303313641534245_dp,&
+ 0.8189892522205988_dp, 1.2553469341161432_dp, 1.9116889104572583_dp, 2.896909089589307_dp, 4.382351904816623_dp, 6.667935664555373_dp,&
+ 10.44093549828013_dp, 6.17436261768095e-07_dp, 1.7313881986083482e-06_dp, 3.841234035608705e-06_dp, 8.228727173271725e-06_dp, 1.709820341911912e-05_dp,&
+ 3.4332974259821285e-05_dp, 6.676429369632049e-05_dp, 0.00012617607786624823_dp, 0.0002325052400773221_dp, 0.0004189073145508487_dp, 0.000739676578430109_dp,&
+ 0.0012824873185346604_dp, 0.0021871159459730906_dp, 0.0036737980596718025_dp, 0.006085791120718465_dp, 0.009952725340223944_dp, 0.01608416328295351_dp,&
+ 0.02570677247015947_dp, 0.04066411629576856_dp, 0.06370600198386596_dp, 0.09890586632566792_dp, 0.15226260044097462_dp, 0.23257478024275838_dp,&
+ 0.35274192070832605_dp, 0.5318168800175598_dp, 0.7986316416317844_dp, 1.1994633292908101_dp, 1.8185003473260537_dp, 2.851271019221645_dp, 5.045111765749473_dp]
+ aw%aw_erange_matrix(:, 26) = [1.4156108142769783e-07_dp, 8.358408090279267e-07_dp, 2.563425668333653e-06_dp, 6.532496957198105e-06_dp, 1.529085429435563e-05_dp,&
+ 3.381004239065925e-05_dp, 7.145759572627074e-05_dp, 0.0001454048583206386_dp, 0.0002863676783658706_dp, 0.0005481076173216848_dp, 0.0010229120533241523_dp,&
+ 0.0018664583231752616_dp, 0.0033372345185815654_dp, 0.005858297289124_dp, 0.010112965971934416_dp, 0.017191603273076256_dp, 0.028814641239522522_dp,&
+ 0.04766849746482397_dp, 0.07790741829272711_dp, 0.12589760019317675_dp, 0.2013131761655887_dp, 0.3187416881227427_dp, 0.5000288557106496_dp,&
+ 0.7777107650960449_dp, 1.200107192058866_dp, 1.8391727503056268_dp, 2.803666178964093_dp, 4.265054523983134_dp, 6.5235529232359735_dp,&
+ 10.266242055151874_dp, 3.724391604535185e-07_dp, 1.0869250980985111e-06_dp, 2.5605516562597e-06_dp, 5.7850356623393795e-06_dp, 1.2528619638131183e-05_dp,&
+ 2.6016291223482876e-05_dp, 5.204832564381964e-05_dp, 0.00010081228246405614_dp, 0.00018982349811898816_dp, 0.0003486351977763963_dp, 0.000626280938172421_dp,&
+ 0.0011028905979224082_dp, 0.0019076162117445236_dp, 0.0032460080919710396_dp, 0.005441424633595424_dp, 0.00899711363781583_dp, 0.01468851247521531_dp,&
+ 0.023699427657021866_dp, 0.03782154672437762_dp, 0.059744945747629535_dp, 0.09347917704011861_dp, 0.1449628687820927_dp, 0.2229515840638538_dp,&
+ 0.34033980700933175_dp, 0.5162398701965166_dp, 0.7796319970356158_dp, 1.1770306615230532_dp, 1.7928810285625805_dp, 2.8227297861916565_dp, 5.012462806749877_dp]
+ aw%aw_erange_matrix(:, 27) = [5.619543540742037e-08_dp, 3.5072928313745456e-07_dp, 1.1785442886447028e-06_dp, 3.3029924055616623e-06_dp, 8.394882189434066e-06_dp,&
+ 1.987896075698813e-05_dp, 4.449626404673206e-05_dp, 9.506973724339386e-05_dp, 0.00019528307697601834_dp, 0.0003877720465039687_dp, 0.0007475784942017128_dp,&
+ 0.001404160723388905_dp, 0.002576876821658531_dp, 0.004631430044514_dp, 0.008168570072664031_dp, 0.014161927673231893_dp, 0.024169988544510326_dp,&
+ 0.04065896918886588_dp, 0.06749026098429482_dp, 0.1106503055340562_dp, 0.17933541972048098_dp, 0.28755422315274737_dp, 0.45648527437792397_dp,&
+ 0.7179486868235401_dp, 1.119577032884951_dp, 1.7327879813628193_dp, 2.6661030665007965_dp, 4.091161983842176_dp, 6.3086506803163065_dp,&
+ 10.005419833797736_dp, 1.4962249041277701e-07_dp, 4.835223883864694e-07_dp, 1.2927723889950915e-06_dp, 3.221113081192073e-06_dp, 7.5085382788298944e-06_dp,&
+ 1.653889597388599e-05_dp, 3.475621269796358e-05_dp, 7.020789074538884e-05_dp, 0.000137107896070371_dp, 0.0002600215543190807_dp, 0.00048059369103468994_dp,&
+ 0.0008682158907070847_dp, 0.0015367276921454673_dp, 0.0026702645844449866_dp, 0.004562839898703722_dp, 0.007678366608423676_dp, 0.012740848501038493_dp,&
+ 0.02086877544772841_dp, 0.03377384609132226_dp, 0.05405280484981297_dp, 0.08561371875294983_dp, 0.13429708936338725_dp, 0.20878452860262342_dp,&
+ 0.32195328331951945_dp, 0.4929981089833493_dp, 0.7511227960385115_dp, 1.1432128213684527_dp, 1.7541296769802968_dp, 2.7794877584199225_dp, 4.963023556769552_dp]
+ aw%aw_erange_matrix(:, 28) = [2.4343774571442308e-08_dp, 1.6513085830933388e-07_dp, 6.196802532079424e-07_dp, 1.9114039978346155e-06_dp, 5.2375690334248195e-06_dp,&
+ 1.316277905469794e-05_dp, 3.092030271194152e-05_dp, 6.876819455159673e-05_dp, 0.0001461441409773963_dp, 0.0002988264714800754_dp, 0.0005910302376020617_dp,&
+ 0.0011354771724870155_dp, 0.0021261659208679307_dp, 0.0038911087717360972_dp, 0.0069760886290369745_dp, 0.012276085772085119_dp, 0.021239226973771258_dp,&
+ 0.03618004618429005_dp, 0.060756103616981624_dp, 0.10068683961443668_dp, 0.16482922554469034_dp, 0.2667764798918916_dp, 0.4272231990996556_dp,&
+ 0.6774637303634756_dp, 1.064618278549332_dp, 1.6596947503579922_dp, 2.5710208535654164_dp, 3.9703478472317504_dp, 6.158711044835771_dp,&
+ 9.822845740299956_dp, 6.607779435757453e-08_dp, 2.4531316662915766e-07_dp, 7.456766806787507e-07_dp, 2.026328956129065e-06_dp, 5.0327732385235214e-06_dp,&
+ 1.1652295901214502e-05_dp, 2.5505955301673674e-05_dp, 5.331453501898778e-05_dp, 0.0001072058234797249_dp, 0.00020853777085767683_dp, 0.0003941273627591354_dp,&
+ 0.0007262462873395727_dp, 0.0013084426047463612_dp, 0.00231027419159065_dp, 0.004005535279633006_dp, 0.006830718203653046_dp, 0.011473559821092195_dp,&
+ 0.019005957730023747_dp, 0.031081856143062504_dp, 0.0502296954993904_dp, 0.08028203266369409_dp, 0.12700459445500437_dp, 0.19901982937944282_dp,&
+ 0.3091853239783209_dp, 0.4767481905112323_dp, 0.7310696923220488_dp, 1.1193069602208368_dp, 1.72663775937696_dp, 2.74875508795335_dp, 4.927904659791831_dp]
+ aw%aw_erange_matrix(:, 29) = [3.3134286206436378e-09_dp, 3.608476731974466e-08_dp, 1.9011771017402648e-07_dp, 7.319641454121685e-07_dp, 2.3402664590560514e-06_dp,&
+ 6.59508695658557e-06_dp, 1.6937909149354525e-05_dp, 4.048237319663682e-05_dp, 9.132011445721631e-05_dp, 0.00019639172259169963_dp, 0.0004056673541505352_dp,&
+ 0.0008094360939409007_dp, 0.001567130287522824_dp, 0.0029545924806747004_dp, 0.005440438931022152_dp, 0.009807773172795757_dp, 0.017345795847210112_dp,&
+ 0.030148043017114434_dp, 0.0515717640546498_dp, 0.08693872933672857_dp, 0.14459504048117927_dp, 0.23750169179013617_dp, 0.3856081802743787_dp,&
+ 0.6193889538319287_dp, 0.9851526108818242_dp, 1.5532426287786882_dp, 2.431651849778814_dp, 3.7922799603529507_dp, 5.93671227399739_dp,&
+ 9.551588089060862_dp, 1.0546633313159667e-08_dp, 6.866238130433312e-08_dp, 2.8014791592507246e-07_dp, 9.089927672975243e-07_dp, 2.5558210419120903e-06_dp,&
+ 6.498693707400478e-06_dp, 1.531991208406891e-05_dp, 3.4023779895267246e-05_dp, 7.197856727334818e-05_dp, 0.00014621506144801751_dp, 0.0002869199340733901_dp,&
+ 0.0005464264697957605_dp, 0.0010137006051227095_dp, 0.0018373548659257801_dp, 0.0032617470785987366_dp, 0.005682944230668296_dp, 0.009734554219352109_dp,&
+ 0.016418075032354977_dp, 0.02729906435610205_dp, 0.04479995778261982_dp, 0.07263414004010217_dp, 0.11644650227746163_dp, 0.1847594577631817_dp,&
+ 0.2903885825624092_dp, 0.4526492240843357_dp, 0.7011369514153092_dp, 1.0834309171758731_dp, 1.6852193328076974_dp, 2.7023644845108916_dp, 4.874923027763007_dp]
+ case(32)
+ aw%energy_range(:) = [4862.0_dp, 5846.0_dp, 6665.0_dp, 7800.0_dp, 10044.0_dp, 14058.0_dp,&
+ 19114.0_dp, 25870.0_dp, 35180.0_dp, 58986.0_dp, 85052.0_dp, 126612.0_dp, 247709.0_dp, 452410.0_dp,&
+ 1104308.0_dp, 2582180.0_dp, 10786426.0_dp, 72565710.0_dp]
+ aw%aw_erange_matrix(:, 1) = [6.390102821995496e-05_dp, 0.0003410048490902184_dp, 0.000858015893339577_dp, 0.0016504328288047757_dp, 0.002778247721262644_dp,&
+ 0.004336751679872466_dp, 0.0064710209548362084_dp, 0.009393407912277671_dp, 0.01340416788754177_dp, 0.018917565422190717_dp, 0.026497301468281335_dp,&
+ 0.036905213045864395_dp, 0.0511672148624311_dp, 0.07066128158960995_dp, 0.09723384839331731_dp, 0.13335312533591778_dp, 0.18231048817210543_dp,&
+ 0.24848450523394644_dp, 0.3376865863344385_dp, 0.4576131552357413_dp, 0.6184374387625521_dp, 0.8335859250026539_dp, 1.1207633263472254_dp,&
+ 1.5033220996389998_dp, 2.0121331479703484_dp, 2.6882384204905283_dp, 3.5868412256539663_dp, 4.783852020373796_dp, 6.387973693919086_dp,&
+ 8.566792744620582_dp, 11.61702931918549_dp, 16.243244163196902_dp, 0.0001644750107629364_dp, 0.0003927652580734362_dp, 0.0006470526340880139_dp,&
+ 0.0009476004809462573_dp, 0.0013236672585754251_dp, 0.00181722804655121_dp, 0.0024863648293148356_dp, 0.0034080264366486593_dp, 0.004681956510169319_dp,&
+ 0.006437986099490384_dp, 0.00884737093390095_dp, 0.01213798662642807_dp, 0.01661375946425665_dp, 0.022679584239104586_dp, 0.030873595466529645_dp,&
+ 0.0419091652309378_dp, 0.05672961944641861_dp, 0.07657952416894345_dp, 0.10309761695759492_dp, 0.13843826485639682_dp, 0.18543118617833296_dp,&
+ 0.24779409719067566_dp, 0.3304222201755898_dp, 0.43979746242641576_dp, 0.5846010059990558_dp, 0.7767070228661042_dp, 1.0329650164221098_dp,&
+ 1.3787901136203442_dp, 1.8564287417380754_dp, 2.547529279131862_dp, 3.6531886321446416_dp, 5.969270620351697_dp]
+ aw%aw_erange_matrix(:, 2) = [5.442349002883837e-05_dp, 0.0002906163628933693_dp, 0.0007321293214401846_dp, 0.0014109784539713872_dp, 0.0023816365307190094_dp,&
+ 0.0037311772208214787_dp, 0.005592773584012946_dp, 0.0081619152463338_dp, 0.011715729132325964_dp, 0.016637929524033673_dp, 0.023453105417011018_dp,&
+ 0.03287403908552556_dp, 0.045865900699847945_dp, 0.06373214396298486_dp, 0.08822857905561622_dp, 0.12171425464017217_dp, 0.16735049859917261_dp,&
+ 0.22936294868166074_dp, 0.3133859506800179_dp, 0.4269147709487938_dp, 0.5798994400836499_dp, 0.7855261781163106_dp, 1.0612512378052221_dp,&
+ 1.4301841263166695_dp, 1.9229772371853768_dp, 2.580501782235826_dp, 3.4578625966778955_dp, 4.630962088019041_dp, 6.208582258228505_dp,&
+ 8.358418878620247_dp, 11.37712612667173_dp, 15.968170544511102_dp, 0.0001401015051695221_dp, 0.00033499665110023704_dp, 0.0005532522530987489_dp,&
+ 0.0008133560062402562_dp, 0.0011422450286066607_dp, 0.0015787618621387204_dp, 0.002176697085238142_dp, 0.0030073676766694266_dp, 0.004163649639092577_dp,&
+ 0.005767402761174793_dp, 0.007980687395399007_dp, 0.011020625281672214_dp, 0.015178459352483943_dp, 0.020844174229750198_dp, 0.028538588286649656_dp,&
+ 0.03895532923923562_dp, 0.05301575138551127_dp, 0.07194074865569469_dp, 0.09734467595148226_dp, 0.1313584288969531_dp, 0.17679160298883081_dp,&
+ 0.23734854692003116_dp, 0.31792227850976007_dp, 0.42500882037583165_dp, 0.5673248919963556_dp, 0.7568049338284129_dp, 1.0103817704846647_dp,&
+ 1.3535647228420928_dp, 1.8286721197765015_dp, 2.517319618502594_dp, 3.6202102280059703_dp, 5.930981680526662_dp]
+ aw%aw_erange_matrix(:, 3) = [4.8544808464658475e-05_dp, 0.0002593485712181486_dp, 0.0006539518705617748_dp, 0.0012620998863735048_dp, 0.002134648029009164_dp,&
+ 0.003353250117842424_dp, 0.005043178699940835_dp, 0.007388686080392843_dp, 0.010651467508498257_dp, 0.01519484467183565_dp, 0.02151725732341947_dp,&
+ 0.03029858754646109_dp, 0.04246309490817034_dp, 0.05926381239480956_dp, 0.08239494336727046_dp, 0.11414097839482948_dp, 0.15757400511758252_dp,&
+ 0.21681422548727597_dp, 0.29737332757633034_dp, 0.4066065418252456_dp, 0.5543077141349219_dp, 0.7534939940706474_dp, 1.0214457127670413_dp,&
+ 1.3810991072747199_dp, 1.8629492914867638_dp, 2.5077428833752067_dp, 3.370510682262872_dp, 4.52714545796296_dp, 6.086483167699423_dp,&
+ 8.216299008759131_dp, 11.213210923746692_dp, 15.779945298966286_dp, 0.00012498176375406726_dp, 0.000299130758824733_dp, 0.0004949254877793316_dp,&
+ 0.0007296849915859161_dp, 0.0010288042473983914_dp, 0.0014290235014882077_dp, 0.0019812415860893163_dp, 0.0027529950493393966_dp, 0.00383257137438519_dp,&
+ 0.005336492795437645_dp, 0.007420608589016774_dp, 0.01029470391501449_dp, 0.014241296894904196_dp, 0.01964004703493962_dp, 0.02699971016577413_dp,&
+ 0.03700007872604122_dp, 0.050547012803328586_dp, 0.06884458868981981_dp, 0.09348967784530542_dp, 0.12659613160197555_dp, 0.17095862941207848_dp,&
+ 0.2302711267303353_dp, 0.3094239152326776_dp, 0.4149216994326361_dp, 0.555505084520509_dp, 0.7431502415960526_dp, 0.9948487920453783_dp,&
+ 1.3361777826685788_dp, 1.809509286088653_dp, 2.496441460806496_dp, 3.597410863544938_dp, 5.9045255378523525_dp]
+ aw%aw_erange_matrix(:, 4) = [4.2319791684398945e-05_dp, 0.0002262256833340046_dp, 0.0005710759339812151_dp, 0.0011041000499916853_dp, 0.0018721273080030145_dp,&
+ 0.002950744254164121_dp, 0.004456329948077625_dp, 0.006560445775378507_dp, 0.009507343812482433_dp, 0.013637283047013359_dp, 0.01941907839765781_dp,&
+ 0.027495223047590025_dp, 0.03874330338636378_dp, 0.054358588747561776_dp, 0.07596440384363516_dp, 0.10575909660902735_dp, 0.14671121294566578_dp,&
+ 0.20281810337064493_dp, 0.27944792395127677_dp, 0.38379131316561327_dp, 0.525457692252208_dp, 0.7172635733637082_dp, 0.9762793617085143_dp,&
+ 1.3252331952635001_dp, 1.7944297509586076_dp, 2.4244629711653745_dp, 3.270270626899914_dp, 4.407729666691881_dp, 5.945738068832148_dp,&
+ 8.052167730865541_dp, 11.023603896745234_dp, 15.561924493694205_dp, 0.00010896980958811763_dp, 0.0002611185815588283_dp, 0.00043301817888623847_dp,&
+ 0.0006406820460768114_dp, 0.0009077674409158128_dp, 0.001268624601649587_dp, 0.0017708556976942175_dp, 0.002477704567241762_dp, 0.0034722665030748113_dp,&
+ 0.004865004260125733_dp, 0.006804656478190395_dp, 0.009492536281842186_dp, 0.013201017163803366_dp, 0.01829768554187978_dp, 0.025277118873799437_dp,&
+ 0.034802761118126926_dp, 0.04776205831199323_dp, 0.06533896907314592_dp, 0.08910928388293891_dp, 0.1211660799438405_dp, 0.16428554188642505_dp,&
+ 0.22214824519628396_dp, 0.29963998828115096_dp, 0.40327442471190905_dp, 0.5418192779326029_dp, 0.7272994796496782_dp, 0.9767765646718063_dp,&
+ 1.315909458684106_dp, 1.7871373292268897_dp, 2.4720433230436907_dp, 3.5707586649853615_dp, 5.873612522584144_dp]
+ aw%aw_erange_matrix(:, 5) = [3.393255390660133e-05_dp, 0.00018157221465841256_dp, 0.0004592307676320871_dp, 0.0008905276367436023_dp, 0.0015164746316516245_dp,&
+ 0.0024038182425049908_dp, 0.003655880996707775_dp, 0.0054255179504103905_dp, 0.007931245931576318_dp, 0.0114792650369607_dp, 0.01649451279684121_dp,&
+ 0.023563843280162002_dp, 0.033494992691347265_dp, 0.047396265575400595_dp, 0.06678363974811272_dp, 0.093724229945987_dp, 0.13102792038715239_dp,&
+ 0.18250270781166214_dp, 0.2532942033927338_dp, 0.3503362853107127_dp, 0.4829488331079465_dp, 0.6636312054412428_dp, 0.9091194626135006_dp,&
+ 1.241807411536441_dp, 1.6916904363164948_dp, 2.299110603722669_dp, 3.1188473050465815_dp, 4.226742880544712_dp, 5.73178901479017_dp,&
+ 7.802015996740442_dp, 10.73398018079764_dp, 15.228283328315147_dp, 8.739335036060486e-05_dp, 0.00020983760313852035_dp, 0.0003493229451058535_dp,&
+ 0.0005199664146008647_dp, 0.0007428694438573918_dp, 0.001048824687194698_dp, 0.0014805150854819704_dp, 0.0020948189118065326_dp, 0.0029671598393268173_dp,&
+ 0.004198990073584458_dp, 0.005928343272370908_dp, 0.008343628060712927_dp, 0.011701624144711492_dp, 0.0163512213147089_dp, 0.022764888824347185_dp,&
+ 0.03158039794694182_dp, 0.04365605404949107_dp, 0.06014369592103612_dp, 0.08258509281019695_dp, 0.11303931699899293_dp, 0.1542516135087157_dp,&
+ 0.20987914795565896_dp, 0.28479788380848736_dp, 0.38553266378218126_dp, 0.5208913754190811_dp, 0.7029743313415381_dp, 0.9489538722825864_dp,&
+ 1.2846216880545815_dp, 1.7525303625505235_dp, 2.4342520367725067_dp, 3.5294590063092537_dp, 5.82574638448254_dp]
+ aw%aw_erange_matrix(:, 6) = [2.5286922170354894e-05_dp, 0.00013550300515152938_dp, 0.00034365254863389185_dp, 0.0006692829830793605_dp, 0.0011467768099562_dp,&
+ 0.0018326842825994733_dp, 0.0028151146148173586_dp, 0.004225026003742279_dp, 0.006250780019705354_dp, 0.009158586718943748_dp, 0.013321604127882514_dp,&
+ 0.01926054419553751_dp, 0.02769941545264008_dp, 0.03964139074601272_dp, 0.056471580120530336_dp, 0.08009577889831763_dp, 0.11312722824816804_dp,&
+ 0.15913731138320336_dp, 0.22299123810302657_dp, 0.3112966160076166_dp, 0.43300212495019025_dp, 0.6001966661049284_dp, 0.8291790761739616_dp,&
+ 1.141900704443846_dp, 1.5679415214227161_dp, 2.147298128643314_dp, 2.934523705189343_dp, 4.00539737112386_dp, 5.469022915149277_dp,&
+ 7.493643904207673_dp, 10.375817412384437_dp, 14.814601510443076_dp, 6.514769920993364e-05_dp, 0.00015687397983623111_dp, 0.00026260059811101074_dp,&
+ 0.000394267458907849_dp, 0.000569987485627106_dp, 0.0008163276402528582_dp, 0.0011701237352853642_dp, 0.001680758396099781_dp, 0.002414639429717159_dp,&
+ 0.0034624986342827427_dp, 0.004949404187288667_dp, 0.00704789552613599_dp, 0.00999535091125554_dp, 0.014117167183015276_dp, 0.019857768872086755_dp,&
+ 0.02782204007098351_dp, 0.03883055990410155_dp, 0.05399308565310966_dp, 0.07480617533828689_dp, 0.1032828703661818_dp, 0.14212537017885443_dp,&
+ 0.19495650401901887_dp, 0.2666345532300576_dp, 0.3636933937165475_dp, 0.4949878042793592_dp, 0.6727122940047311_dp, 0.91418280277028_dp,&
+ 1.2453685853158643_dp, 1.7089820529103965_dp, 2.3866034784779506_dp, 3.4773514427582293_dp, 5.765409584335823_dp]
+ aw%aw_erange_matrix(:, 7) = [1.932135319864962e-05_dp, 0.00010368197789193328_dp, 0.0002636661772942731_dp, 0.0005157191470705282_dp, 0.0008891130218806238_dp,&
+ 0.0014324323017507073_dp, 0.002221781063255329_dp, 0.003370774273254239_dp, 0.005043864110016273_dp, 0.00747544974094905_dp, 0.010997228176632299_dp,&
+ 0.01607649385487372_dp, 0.023369007932130658_dp, 0.033791453456649585_dp, 0.04862029962984213_dp, 0.06962623074409648_dp, 0.09925634818539467_dp,&
+ 0.14088037853305638_dp, 0.199122452009721_dp, 0.2803071363072363_dp, 0.39305808457961094_dp, 0.549101229063986_dp, 0.7643445772055675_dp,&
+ 1.0603390883163382_dp, 1.466283147413628_dp, 2.0218493641999524_dp, 2.781370504056042_dp, 3.8205517999540817_dp, 5.248586694740235_dp,&
+ 7.23391404025796_dp, 10.073125286074314_dp, 14.464007598891323_dp, 4.9794334064441845e-05_dp, 0.0001202442466871008_dp, 0.00020239142207391234_dp,&
+ 0.00030648388928353133_dp, 0.00044826394218884584_dp, 0.0006508962458350465_dp, 0.0009465213181019036_dp, 0.001378560941846276_dp, 0.002006235556189542_dp,&
+ 0.002911588665713435_dp, 0.004208981250342487_dp, 0.006057652087479506_dp, 0.008678530354123182_dp, 0.012376893766972177_dp, 0.01757291406967402_dp,&
+ 0.02484274557305271_dp, 0.034973648086824426_dp, 0.04903775694722466_dp, 0.0684906283923225_dp, 0.09530279631811456_dp, 0.1321356654214213_dp,&
+ 0.1825779770666456_dp, 0.2514677535724369_dp, 0.34534170861863805_dp, 0.473091186246975_dp, 0.6469906291688993_dp, 0.8844828931716822_dp,&
+ 1.2116994219481383_dp, 1.6715060390575855_dp, 2.3455108368533817_dp, 3.432378601360354_dp, 5.713384147526647_dp]
+ aw%aw_erange_matrix(:, 8) = [1.4818639796865528e-05_dp, 7.963886363515554e-05_dp, 0.00020311223580610354_dp, 0.00039911404589973475_dp, 0.0006926333595966217_dp,&
+ 0.0011254943882583104_dp, 0.0017635291623248677_dp, 0.0027054780460561163_dp, 0.004095260696633318_dp, 0.006139843660554759_dp, 0.009134914466544177_dp,&
+ 0.013500979005727987_dp, 0.019833495884515773_dp, 0.02897206838249403_dp, 0.042095533039198385_dp, 0.06085215831868936_dp, 0.08753730146299196_dp,&
+ 0.1253350272549887_dp, 0.17864571781396288_dp, 0.2535290933953418_dp, 0.35830209305587557_dp, 0.5043450664128841_dp, 0.7071902955364795_dp,&
+ 0.9879995840794562_dp, 1.3755955013642696_dp, 1.9093257812455384_dp, 2.6432950751333295_dp, 3.6531218956627853_dp, 5.048075954994877_dp,&
+ 6.99678689342338_dp, 9.795906582751762_dp, 14.142088288126018_dp, 3.820307739174523e-05_dp, 9.253211423715926e-05_dp, 0.00015666144789002137_dp,&
+ 0.00023941035175647392_dp, 0.0003544795957843895_dp, 0.0005220706038556393_dp, 0.0007702567427026573_dp, 0.0011373348215882129_dp, 0.001676302988186351_dp,&
+ 0.002461551034244103_dp, 0.003597851119996275_dp, 0.005232383925906072_dp, 0.007571020540645877_dp, 0.01090045623553385_dp, 0.01561826230147036_dp,&
+ 0.022273572546892197_dp, 0.03162200007875945_dp, 0.04469955727258082_dp, 0.06292193738822648_dp, 0.08821770562181855_dp, 0.12320712191071415_dp,&
+ 0.17144328423198826_dp, 0.23774090556227068_dp, 0.3286348439935499_dp, 0.45304683721268363_dp, 0.6233242933376546_dp, 0.8570306244015214_dp,&
+ 1.1804560303362448_dp, 1.6366228282940412_dp, 2.3071833124934_dp, 3.3903998854623985_dp, 5.664862602289436_dp]
+ aw%aw_erange_matrix(:, 9) = [1.1315989220620849e-05_dp, 6.091484824470965e-05_dp, 0.0001558556348063919_dp, 0.0003078203984115187_dp, 0.0005380983662976303_dp,&
+ 0.0008826023610964867_dp, 0.0013981206622491853_dp, 0.0021702768627684973_dp, 0.0033248504851841115_dp, 0.005044444967959304_dp, 0.007592519217726472_dp,&
+ 0.011347339662602948_dp, 0.016849450868861544_dp, 0.024867669342019266_dp, 0.03649043474384647_dp, 0.05325176815491175_dp, 0.07730430050505666_dp,&
+ 0.1116561161775443_dp, 0.16049387125009024_dp, 0.22962230812156062_dp, 0.3270606812998151_dp, 0.46385106272587334_dp, 0.6551545548992531_dp,&
+ 0.9217445361800276_dp, 1.2920638357850092_dp, 1.8051264992628424_dp, 2.514796276521399_dp, 3.496590833178514_dp, 4.85984548686659_dp,&
+ 6.773380959237685_dp, 9.533934166411905_dp, 13.837118014874001_dp, 2.918394667912216e-05_dp, 7.092102053120252e-05_dp, 0.0001208490607819795_dp,&
+ 0.00018654379226223144_dp, 0.00027989427379719806_dp, 0.0004184502969887145_dp, 0.000626673050017551_dp, 0.0009383293128013663_dp, 0.0014008572107836192_dp,&
+ 0.002081684144431634_dp, 0.0030767293366374213_dp, 0.004521918459768059_dp, 0.006608939226821494_dp, 0.009606834282132472_dp, 0.013891522205312699_dp,&
+ 0.0199860217642558_dp, 0.028615075699006714_dp, 0.04077910134384887_dp, 0.057854053870927825_dp, 0.08172606721705969_dp, 0.11497300539733377_dp,&
+ 0.16111009858027334_dp, 0.22492545113901904_dp, 0.3129477675464925_dp, 0.43412426576959084_dp, 0.6008706467915673_dp, 0.8308678912066612_dp,&
+ 1.1505656278854524_dp, 1.6031493439397482_dp, 2.270331555451258_dp, 3.3500083706514476_dp, 5.6182166490122984_dp]
+ aw%aw_erange_matrix(:, 10) = [7.188720818598015e-06_dp, 3.881661788798954e-05_dp, 9.991514616563082e-05_dp, 0.00019924670807668527_dp, 0.0003530921393375012_dp,&
+ 0.0005892390933533132_dp, 0.0009519594342766803_dp, 0.0015086954155209336_dp, 0.0023599840025008696_dp, 0.003654238190455114_dp, 0.005609186735480063_dp,&
+ 0.008542461005020551_dp, 0.01291487453690728_dp, 0.01939133485309362_dp, 0.028926175238232574_dp, 0.04288217331115784_dp, 0.06319585740381348_dp,&
+ 0.09260618135064007_dp, 0.13496966452445772_dp, 0.19569319485572675_dp, 0.2823266941469131_dp, 0.40537308432315655_dp, 0.5793949454394274_dp,&
+ 0.8245311284762115_dp, 1.1685945009236132_dp, 1.6500342331912714_dp, 2.322292524496194_dp, 3.260691519334744_dp, 4.574650070688025_dp,&
+ 6.433299519631953_dp, 9.133561259222846_dp, 13.369520380969645_dp, 1.8552570543955455e-05_dp, 4.5365280395614445e-05_dp, 7.824430449992235e-05_dp,&
+ 0.000123064841905601_dp, 0.00018917614532398957_dp, 0.00029038908164917863_dp, 0.0004461302902503803_dp, 0.0006838555287975979_dp, 0.001043105615047013_dp,&
+ 0.0015811894241096348_dp, 0.0023809364846653818_dp, 0.003561415027894291_dp, 0.005292829489029218_dp, 0.007817192602841475_dp, 0.011476902733337355_dp,&
+ 0.01675409107074492_dp, 0.024324590249295588_dp, 0.035131696353015066_dp, 0.050486674490227534_dp, 0.07220539175013203_dp, 0.10279391074071534_dp,&
+ 0.14570107833907187_dp, 0.20566478637597496_dp, 0.28919483053487227_dp, 0.40526987079618043_dp, 0.5664074675124494_dp, 0.7904744673132619_dp,&
+ 1.1041823544223337_dp, 1.5509968448017435_dp, 2.2127606942845244_dp, 3.286839828729209_dp, 5.545336982828468_dp]
+ aw%aw_erange_matrix(:, 11) = [5.212842853721373e-06_dp, 2.8216485728556984e-05_dp, 7.298119875698969e-05_dp, 0.00014666687860403872_dp, 0.00026275225618308033_dp,&
+ 0.0004444091505151155_dp, 0.0007287615881022521_dp, 0.0011728502574399147_dp, 0.0018626816535886259_dp, 0.0029267741621968922_dp, 0.004555909601317652_dp,&
+ 0.007031533755260647_dp, 0.01076629475072859_dp, 0.016361592669832718_dp, 0.02468887356341755_dp, 0.03700391916268461_dp, 0.055106793600662854_dp,&
+ 0.08156471559554047_dp, 0.12002134058150862_dp, 0.17562433753378992_dp, 0.2556145691836236_dp, 0.370135979817623_dp, 0.5333479158700739_dp,&
+ 0.7649561302861829_dp, 1.092336920188996_dp, 1.5535402649553307_dp, 2.201701148128128_dp, 3.111986649331865_dp, 4.39385578004782_dp,&
+ 6.216650142887412_dp, 8.877446914810541_dp, 13.069399675595056_dp, 1.3460633699481115e-05_dp, 3.307685267989567e-05_dp, 5.7604518102217696e-05_dp,&
+ 9.195641910083116e-05_dp, 0.00014400755053456355_dp, 0.00022539775962319305_dp, 0.0003526662335951264_dp, 0.0005496236389883362_dp, 0.0008511354053799554_dp,&
+ 0.0013083814172165737_dp, 0.0019961328695681448_dp, 0.0030229467394267007_dp, 0.00454547537639009_dp, 0.00678848631990991_dp, 0.010072747132319853_dp,&
+ 0.014853695284454384_dp, 0.021774843424492554_dp, 0.03174125164120884_dp, 0.04602026166587432_dp, 0.06637923482681696_dp, 0.0952736156331887_dp,&
+ 0.13610397708422503_dp, 0.19356942137149777_dp, 0.27416081565736494_dp, 0.3868712620397728_dp, 0.5442810461868627_dp, 0.7643794009427055_dp,&
+ 1.0740573000929907_dp, 1.5169810386781961_dp, 2.1751039860564134_dp, 3.2454752973208514_dp, 5.497663131109453_dp]
+ aw%aw_erange_matrix(:, 12) = [3.6756703015465298e-06_dp, 1.9954750677579616e-05_dp, 5.191549207164041e-05_dp, 0.00010531730513004429_dp, 0.00019114894568566566_dp,&
+ 0.0003284345206580502_dp, 0.0005478574351058358_dp, 0.0008970642726998205_dp, 0.001448846563954588_dp, 0.0023134440610659145_dp, 0.00365660754627558_dp,&
+ 0.005725809627536767_dp, 0.008888016831791598_dp, 0.01368381089343313_dp, 0.020904518142872384_dp, 0.031701561841387796_dp, 0.04774073523681854_dp,&
+ 0.07141882485947987_dp, 0.10616643258939448_dp, 0.15686955518574938_dp, 0.23045435097627895_dp, 0.33669592809026266_dp, 0.48933536087816165_dp,&
+ 0.7076244370403264_dp, 1.0184762856769092_dp, 1.4595108245228903_dp, 2.0835241856266555_dp, 2.965501956804563_dp, 4.214929989807013_dp,&
+ 6.001367447071038_dp, 8.622077664029446_dp, 12.76932426608392_dp, 9.497600314818484e-06_dp, 2.347760247868802e-05_dp, 4.136863276834202e-05_dp,&
+ 6.721947207800727e-05_dp, 0.00010755652914793868_dp, 0.00017204310109274583_dp, 0.00027461020521950513_dp, 0.00043573410701580053_dp, 0.0006859083122114215_dp,&
+ 0.0010704829571126738_dp, 0.0016564711186942442_dp, 0.0025422076964986724_dp, 0.003871039755848531_dp, 0.005850643295798488_dp, 0.008780144703142966_dp,&
+ 0.013088020403816946_dp, 0.01938482007375741_dp, 0.02853620387815694_dp, 0.04176374049584569_dp, 0.06078358076425594_dp, 0.087996854859105_dp,&
+ 0.12675113895160917_dp, 0.18170115882627896_dp, 0.2593129035941683_dp, 0.3685886307380454_dp, 0.5221684374385586_dp, 0.7381657526850111_dp,&
+ 1.0436599990100175_dp, 1.4825352832265704_dp, 2.136878793265541_dp, 3.2034437811357703_dp, 5.449257489548676_dp]
+ aw%aw_erange_matrix(:, 13) = [2.0394837579119305e-06_dp, 1.1136428689231387e-05_dp, 2.9311026954581983e-05_dp, 6.057395938117077e-05_dp, 0.00011273361636596131_dp,&
+ 0.00019945262227642557_dp, 0.00034307020413915784_dp, 0.0005789986244949678_dp, 0.0009626136389075716_dp, 0.0015797047702976012_dp, 0.0025620328180390273_dp,&
+ 0.00411027194192014_dp, 0.006527602589322277_dp, 0.010268581467814463_dp, 0.016009798955308914_dp, 0.02475143770962476_dp, 0.03796243042890685_dp,&
+ 0.057786831913653906_dp, 0.0873357482301367_dp, 0.1310983577206706_dp, 0.19551814727621097_dp, 0.2897978980472306_dp, 0.4270216153720778_dp,&
+ 0.6257183147230295_dp, 0.9120522680792509_dp, 1.3229345707400562_dp, 1.9105866829861018_dp, 2.7496652071687744_dp, 3.9496659363104385_dp,&
+ 5.680486965184195_dp, 8.239732353995374_dp, 12.318415719148392_dp, 5.276628830314947e-06_dp, 1.3196668481729192e-05_dp, 2.379458469172375e-05_dp,&
+ 3.999888381841533e-05_dp, 6.655277116013134e-05_dp, 0.00011053727387478837_dp, 0.00018248747181848964_dp, 0.00029842809341232193_dp, 0.0004828462223872788_dp,&
+ 0.0007729214376067976_dp, 0.001224631278196218_dp, 0.001921577765363735_dp, 0.0029876866735399437_dp, 0.0046053732161687655_dp, 0.007041380807008615_dp,&
+ 0.010683336283217822_dp, 0.016091204665789092_dp, 0.02406937359680715_dp, 0.03576720002987578_dp, 0.05281872257231177_dp, 0.07753624384014632_dp,&
+ 0.11317828438072734_dp, 0.16432147566237754_dp, 0.2373819281103962_dp, 0.34136408980953675_dp, 0.48899079151871744_dp, 0.6985643332266451_dp,&
+ 0.9974643386084848_dp, 1.4299370040199422_dp, 2.0783190576822954_dp, 3.138964327630411_dp, 5.375073752754771_dp]
+ aw%aw_erange_matrix(:, 14) = [1.2029417634752254e-06_dp, 6.609895643735541e-06_dp, 1.761886326860991e-05_dp, 3.714701435066809e-05_dp, 7.09606454750247e-05_dp,&
+ 0.00012924586800944736_dp, 0.0002289177620104591_dp, 0.00039735575327091586_dp, 0.0006783049971089168_dp, 0.001140918627613451_dp, 0.0018934100817969098_dp,&
+ 0.0031034810098270562_dp, 0.0050286516433828725_dp, 0.008060966671683137_dp, 0.012792436500279173_dp, 0.020110206423758527_dp, 0.03133410211483852_dp,&
+ 0.04841425570428367_dp, 0.07421348496567018_dp, 0.11290867950409522_dp, 0.1705586323733128_dp, 0.2559040285419376_dp, 0.38149111837813177_dp,&
+ 0.5652486706311622_dp, 0.8327086526705059_dp, 1.2201713489652732_dp, 1.7793482729282073_dp, 2.5845851027859807_dp, 3.745354303892851_dp,&
+ 5.4318267387256425_dp, 7.941927006849686_dp, 11.965772395891321_dp, 3.1166015808204985e-06_dp, 7.893584647537054e-06_dp, 1.4590421523143668e-05_dp,&
+ 2.540166835137321e-05_dp, 4.38866273658644e-05_dp, 7.544235506820306e-05_dp, 0.00012836853819339647_dp, 0.0002156510284757784_dp, 0.00035755049600582473_dp,&
+ 0.0005853791673295657_dp, 0.0009470589489445969_dp, 0.0015152726995104847_dp, 0.0023993396733646157_dp, 0.0037624022005128713_dp, 0.005846143988201738_dp,&
+ 0.009006130762738474_dp, 0.01376205648174844_dp, 0.02086880821287917_dp, 0.03141648831640661_dp, 0.04697057987136505_dp, 0.06976767926454802_dp,&
+ 0.10298830876584288_dp, 0.1511376630263013_dp, 0.2205811788480397_dp, 0.320313759532162_dp, 0.4631152216015924_dp, 0.6674360776688134_dp,&
+ 0.9609048344557064_dp, 1.3880820200304151_dp, 2.031544618845653_dp, 3.087377771089118_dp, 5.31578682998986_dp]
+ aw%aw_erange_matrix(:, 15) = [5.514768391533348e-07_dp, 3.0661463050989084e-06_dp, 8.370607042832422e-06_dp, 1.830793322995512e-05_dp, 3.65866489044243e-05_dp,&
+ 6.987140555359488e-05_dp, 0.00012955245746241426_dp, 0.00023469156977383316_dp, 0.00041673066301572737_dp, 0.0007268469188482661_dp, 0.0012473021552990137_dp,&
+ 0.002108784237240361_dp, 0.0035166643543472435_dp, 0.005790416868049286_dp, 0.009422327737378779_dp, 0.015164272167993003_dp, 0.02415507435487594_dp,&
+ 0.038106181361843135_dp, 0.05957064947730835_dp, 0.09233052534676135_dp, 0.14195168557080626_dp, 0.2165746550862792_dp, 0.3280373760158957_dp,&
+ 0.493465990037226_dp, 0.7375325370826453_dp, 1.0956894156446793_dp, 1.6189196862917987_dp, 2.381098691427177_dp, 3.4916207819996172_dp,&
+ 5.1210060943387665_dp, 7.5676555925110085_dp, 11.520669806145102_dp, 1.4324492833187423e-06_dp, 3.714945365379106e-06_dp, 7.187993199450151e-06_dp,&
+ 1.3287667789384625e-05_dp, 2.435221365340668e-05_dp, 4.406786544877652e-05_dp, 7.839477316844559e-05_dp, 0.00013700432533564813_dp, 0.00023541888373746023_dp,&
+ 0.0003982417143724247_dp, 0.0006640223423546365_dp, 0.0010925276402432504_dp, 0.0017755203327472222_dp, 0.0028526152739405167_dp, 0.0045344377578051915_dp,&
+ 0.007136218994535957_dp, 0.011126225466246156_dp, 0.01719515628222213_dp, 0.026355033830470446_dp, 0.04007940751399853_dp, 0.06050127009572156_dp,&
+ 0.09069160330701329_dp, 0.13505126572297815_dp, 0.19986523979796597_dp, 0.2940997147198093_dp, 0.4305938358212778_dp, 0.6279833290723216_dp,&
+ 0.9142278655051918_dp, 1.3343266294937697_dp, 1.971223529289826_dp, 3.0207289388880563_dp, 5.239269717116346_dp]
+ aw%aw_erange_matrix(:, 16) = [2.6346628583772034e-07_dp, 1.4870682611802608e-06_dp, 4.18499777462391e-06_dp, 9.565754079998203e-06_dp, 2.0095438915823317e-05_dp,&
+ 4.030712638205273e-05_dp, 7.820310873891258e-05_dp, 0.0001476189063429688_dp, 0.00027206125557350966_dp, 0.0004908276742423054_dp, 0.0008686422030538531_dp,&
+ 0.0015106576888148007_dp, 0.0025855700579017434_dp, 0.0043608859416256075_dp, 0.007256247781115456_dp, 0.011923381221441286_dp, 0.01936500732097008_dp,&
+ 0.031110395247887928_dp, 0.049472724953768164_dp, 0.07792391423249093_dp, 0.12163719777397036_dp, 0.18826820696011917_dp, 0.2890741916661454_dp,&
+ 0.44051299024821017_dp, 0.6665282145336267_dp, 1.0018392157983365_dp, 1.4967815518731842_dp, 2.2247902473537535_dp, 3.295151802440413_dp,&
+ 4.87866127574686_dp, 7.274154425483326_dp, 11.170031678415262_dp, 6.865691087424058e-07_dp, 1.8349687179642652e-06_dp, 3.75363535847515e-06_dp,&
+ 7.406302503889748e-06_dp, 1.4385998863803715e-05_dp, 2.7332856632656454e-05_dp, 5.070293872960844e-05_dp, 9.194731882902252e-05_dp, 0.00016333066755487376_dp,&
+ 0.0002847458523672339_dp, 0.0004880328440654819_dp, 0.0008235400684252141_dp, 0.001370000313997599_dp, 0.002249268185463258_dp, 0.003648135807576948_dp,&
+ 0.005850384133560756_dp, 0.009283540163912576_dp, 0.01458663604211278_dp, 0.022707798579110823_dp, 0.03504400012572891_dp, 0.05364018073213217_dp,&
+ 0.08147187176803067_dp, 0.12284570471579664_dp, 0.18396885882280342_dp, 0.27376977104743744_dp, 0.4051220237008429_dp, 0.5968036286827566_dp,&
+ 0.8770477402799991_dp, 1.2912341021707199_dp, 1.9226515113345246_dp, 2.9669527288987725_dp, 5.177596037459169_dp]
+ aw%aw_erange_matrix(:, 17) = [7.696764691509552e-08_dp, 4.5183075501644766e-07_dp, 1.3712733197245156e-06_dp, 3.452398063116915e-06_dp, 7.99119238288884e-06_dp,&
+ 1.7499890158507848e-05_dp, 3.668225172908821e-05_dp, 7.411367023252019e-05_dp, 0.0001450609740104884_dp, 0.0002761333471939282_dp, 0.0005128366382617873_dp,&
+ 0.0009316733536716902_dp, 0.0016592776527650684_dp, 0.0029023227583525545_dp, 0.004993762465329047_dp, 0.008463615785356367_dp, 0.014146318917564842_dp,&
+ 0.02334212828021178_dp, 0.03805782856888779_dp, 0.0613630042242151_dp, 0.0979136503362365_dp, 0.15471676332581316_dp, 0.24224053787692895_dp,&
+ 0.3760196167953944_dp, 0.5789730031642062_dp, 0.8847668378302425_dp, 1.3427798213464026_dp, 2.0257631969638736_dp, 3.042786371879784_dp,&
+ 4.564995894383141_dp, 6.891880055654338_dp, 10.711074682469496_dp, 2.0224960490304485e-07_dp, 5.837519191389681e-07_dp, 1.3534097826701593e-06_dp,&
+ 3.0163324999016133e-06_dp, 6.464297707355912e-06_dp, 1.331006273228438e-05_dp, 2.6438493784462622e-05_dp, 5.089377871159909e-05_dp, 9.53135908336066e-05_dp,&
+ 0.00017421956824809404_dp, 0.0003116271902197154_dp, 0.0005466663994455823_dp, 0.0009422361350401303_dp, 0.0015981946213501235_dp, 0.0026712728244169207_dp,&
+ 0.004404875333973468_dp, 0.00717331310959028_dp, 0.011546952692401411_dp, 0.018387490277830258_dp, 0.028986360940377882_dp, 0.04526460807725196_dp,&
+ 0.07006006488175816_dp, 0.10753871373789183_dp, 0.16378446149863707_dp, 0.24765288245177752_dp, 0.3720420890669611_dp, 0.5559074354965244_dp,&
+ 0.8278548563568215_dp, 1.2338117262467065_dp, 1.8576021658437778_dp, 2.8947650724141107_dp, 5.094894347251689_dp]
+ aw%aw_erange_matrix(:, 18) = [1.5580960122828055e-08_dp, 1.0192299261551187e-07_dp, 3.657511654714275e-07_dp, 1.0874230387694592e-06_dp, 2.8971440093678986e-06_dp,&
+ 7.1231112287328e-06_dp, 1.6440376252868036e-05_dp, 3.6035911594207885e-05_dp, 7.564822282610485e-05_dp, 0.0001530604093750471_dp, 0.0002999674552596099_dp,&
+ 0.0005716626169231291_dp, 0.0010627819854068627_dp, 0.0019325381417571955_dp, 0.0034446462658281212_dp, 0.006029758821968773_dp, 0.010382043759726605_dp,&
+ 0.017607085158632928_dp, 0.02944628039743525_dp, 0.04861435988540585_dp, 0.07930297685700823_dp, 0.12792652074627453_dp, 0.20421936908257549_dp,&
+ 0.3228415686086713_dp, 0.5057217947095013_dp, 0.785484422991801_dp, 1.2105330871831885_dp, 1.852886865611021_dp, 2.8213315422092657_dp,&
+ 4.2873111269979765_dp, 6.550982976987269_dp, 10.299461972660755_dp, 4.192785461816036e-08_dp, 1.4682586910958697e-07_dp, 4.248767433871547e-07_dp,&
+ 1.117972412187448e-06_dp, 2.71251708562224e-06_dp, 6.166664608205133e-06_dp, 1.3299698724334126e-05_dp, 2.7458360437668858e-05_dp, 5.463565964132874e-05_dp,&
+ 0.00010531494807998692_dp, 0.0001974602213268062_dp, 0.0003612942851684024_dp, 0.0006468325897487988_dp, 0.001135618706607295_dp, 0.0019588032650003236_dp,&
+ 0.003324710089253406_dp, 0.005560469162003084_dp, 0.009174344598623402_dp, 0.014948285309521006_dp, 0.024074306780617383_dp, 0.03835406948576763_dp,&
+ 0.060489181968959096_dp, 0.0945015966761899_dp, 0.1463417320393485_dp, 0.22477371348415012_dp, 0.34269334477792374_dp, 0.5192018690921564_dp,&
+ 0.7832512032052583_dp, 1.1813099794431254_dp, 1.7977731364021527_dp, 2.828182155100705_dp, 5.018697893750251_dp]
+ aw%aw_erange_matrix(:, 19) = [1.4796558719757977e-09_dp, 1.6277762282636202e-08_dp, 8.615102100471783e-08_dp, 3.3251166768869524e-07_dp, 1.064831343891703e-06_dp,&
+ 3.0042406722730696e-06_dp, 7.722404719947578e-06_dp, 1.8469628120696557e-05_dp, 4.168720676495336e-05_dp, 8.969407716668371e-05_dp, 0.00018534670944540425_dp,&
+ 0.00036995434452620024_dp, 0.0007164776276992899_dp, 0.0013511756947926401_dp, 0.0024885840769342527_dp, 0.004487272639985271_dp, 0.007937634518341114_dp,&
+ 0.013798542180092185_dp, 0.023607852053926744_dp, 0.03980353161167122_dp, 0.06620914631345257_dp, 0.10876176019481658_dp, 0.17659514989891748_dp,&
+ 0.28364164912494744_dp, 0.45099127302133024_dp, 0.7103683461225575_dp, 1.109312567732835_dp, 1.7191679096665389_dp, 2.648421848786194_dp,&
+ 4.06873544538514_dp, 6.280858212318488_dp, 9.971616727521422_dp, 4.7301698039073534e-09_dp, 3.1078236876760897e-08_dp, 1.2722293347158736e-07_dp,&
+ 4.135773629354279e-07_dp, 1.1643319139692173e-06_dp, 2.9633030798047164e-06_dp, 6.990659700961397e-06_dp, 1.5534394085699292e-05_dp, 3.28792052583233e-05_dp,&
+ 6.681670495514343e-05_dp, 0.00013116076656301764_dp, 0.0002498651223560153_dp, 0.0004636589258144925_dp, 0.0008405899279454757_dp, 0.0014925644239063773_dp,&
+ 0.0026009920182698686_dp, 0.004456120959091793_dp, 0.00751677674389606_dp, 0.012500261250050913_dp, 0.020516489982978243_dp, 0.03326657617193578_dp,&
+ 0.053334802223457274_dp, 0.08461553683522265_dp, 0.13293582624456382_dp, 0.20696680596446562_dp, 0.31958257452387945_dp, 0.4899879264178536_dp,&
+ 0.7474157763110646_dp, 1.1388011986618074_dp, 1.7490627041810483_dp, 2.7738272660229994_dp, 4.9565545529977175_dp]
+ case(34)
+ aw%energy_range(:) = [9649.0_dp, 15161.0_dp, 29986.0_dp, 49196.0_dp, 109833.0_dp, 276208.0_dp, 852991.0_dp]
+ aw%aw_erange_matrix(:, 1) = [3.284029233271286e-05_dp, 0.0001753443602861097_dp, 0.0004416382833363001_dp, 0.0008508530310865113_dp, 0.001435500605855746_dp,&
+ 0.0022474948219129297_dp, 0.003366173371324329_dp, 0.004907942966760921_dp, 0.007037748206337417_dp, 0.009983831117905245_dp, 0.014057973412231587_dp,&
+ 0.019683414844193538_dp, 0.02743271515183254_dp, 0.03807838736551588_dp, 0.052660091008446035_dp, 0.07257342975355677_dp, 0.09968697353631621_dp,&
+ 0.13649612296545818_dp, 0.18632500099011615_dp, 0.2535908886542759_dp, 0.3441500984275648_dp, 0.46575004766668_dp, 0.6286204407593304_dp,&
+ 0.8462483877785438_dp, 1.1364010501626234_dp, 1.5224916494827863_dp, 2.035445381255887_dp, 2.716346186249304_dp, 3.620421040738206_dp,&
+ 4.823581438788581_dp, 6.434509907627798_dp, 8.620766164346367_dp, 11.679090118639257_dp, 16.31432816585662_dp, 8.4538052355896e-05_dp,&
+ 0.00020209318539166847_dp, 0.00033361605486797254_dp, 0.0004901319572083779_dp, 0.0006876803644732437_dp, 0.0009493703556928221_dp, 0.0013072005549165328_dp,&
+ 0.0018035890085942577_dp, 0.0024937295684409103_dp, 0.0034499397324379713_dp, 0.00476826036404788_dp, 0.0065772141488150675_dp, 0.009049030640506878_dp,&
+ 0.012414126010019873_dp, 0.016979951815415794_dp, 0.02315561592334051_dp, 0.031484041042937_dp, 0.04268391545844468_dp, 0.05770434764295233_dp,&
+ 0.07779602216248598_dp, 0.10460388481675117_dp, 0.14028819232415718_dp, 0.18768361957484037_dp, 0.2505110517811862_dp, 0.33366599536844854_dp,&
+ 0.4436264870131247_dp, 0.5890644515470643_dp, 0.7818386670916874_dp, 1.0387776399865274_dp, 1.3852730956246349_dp, 1.8635541689521873_dp,&
+ 2.5552790973254864_dp, 3.661647560244881_dp, 5.979097365202448_dp]
+ aw%aw_erange_matrix(:, 2) = [2.2094687262226044e-05_dp, 0.00011816317101145329_dp, 0.00029854362986100777_dp, 0.0005779739014899124_dp, 0.0009819112670486493_dp,&
+ 0.0015516034173501654_dp, 0.0023507187818878183_dp, 0.0034732685500535195_dp, 0.00505334279364789_dp, 0.007278229326144087_dp, 0.010406819589614869_dp,&
+ 0.014795161155330522_dp, 0.020931286923915934_dp, 0.029482154546951286_dp, 0.04135653654321724_dp, 0.05778898092867048_dp, 0.08045158704880996_dp,&
+ 0.11160243319073283_dp, 0.15428220578421106_dp, 0.2125741178044686_dp, 0.2919468573365305_dp, 0.3997065271731107_dp, 0.545592087818525_dp,&
+ 0.7425611332686428_dp, 1.0078318394632224_dp, 1.3642789958888877_dp, 1.8423416665523202_dp, 2.48272174251732_dp, 3.34042303033154_dp,&
+ 4.49133411535853_dp, 6.044309582675748_dp, 8.167153038233048_dp, 11.156471603344267_dp, 15.714736908294974_dp, 5.689777248462453e-05_dp,&
+ 0.0001364647878286462_dp, 0.0002266959149215116_dp, 0.0003363227347021138_dp, 0.0004783149170860289_dp, 0.0006715498663212837_dp, 0.0009421913049362618_dp,&
+ 0.0013250426248297155_dp, 0.0018660179676916586_dp, 0.00262648268480602_dp, 0.003689465255982615_dp, 0.005167783411766887_dp, 0.007214591621086576_dp,&
+ 0.010037222243044243_dp, 0.013915457617770334_dp, 0.01922566776214666_dp, 0.02647264919678102_dp, 0.03633153858613665_dp, 0.049702887216291285_dp,&
+ 0.06778493328431712_dp, 0.09216841458681874_dp, 0.12496114099205212_dp, 0.1689524368948172_dp, 0.22783243637559455_dp, 0.3064902609254688_dp,&
+ 0.411433435566918_dp, 0.5514107558972641_dp, 0.7384129467740507_dp, 0.9894523508058952_dp, 1.3301301240547123_dp, 1.8028378573543902_dp,&
+ 2.489168614889156_dp, 3.5894672490279578_dp, 5.895310588871672_dp]
+ aw%aw_erange_matrix(:, 3) = [1.2132019239369146e-05_dp, 6.506554392462203e-05_dp, 0.00016528151320033429_dp, 0.00032271987439700723_dp, 0.0005549904907647636_dp,&
+ 0.0008912186380916402_dp, 0.0013769333304078336_dp, 0.00207998381188429_dp, 0.0030983248733590404_dp, 0.004571097441508312_dp, 0.006694456763746173_dp,&
+ 0.009743704668641925_dp, 0.0141037713916676_dp, 0.02031087384545962_dp, 0.029109193553804015_dp, 0.04152772200656733_dp, 0.05898411878582171_dp,&
+ 0.08342465247911345_dp, 0.11751221427114543_dp, 0.1648782324800013_dp, 0.23045938623741916_dp, 0.3209467823295079_dp, 0.44538447707509593_dp,&
+ 0.6159672665711226_dp, 0.8491072823533072_dp, 1.1668710896432313_dp, 1.5989474740844776_dp, 2.1854242653839444_dp, 2.9809152725739025_dp,&
+ 4.061217864274067_dp, 5.535407811609172_dp, 7.571672639611632_dp, 10.466564989305379_dp, 14.91952959384994_dp, 3.126217597574477e-05_dp,&
+ 7.540587737410632e-05_dp, 0.00012663926218204873_dp, 0.00019110769108438634_dp, 0.00027820581560489743_dp, 0.000401742249839652_dp, 0.0005808693019056328_dp,&
+ 0.0008413761481210849_dp, 0.0012182358494751703_dp, 0.001759637722089599_dp, 0.00253246317609668_dp, 0.003629502407336348_dp, 0.00517906799440672_dp,&
+ 0.0073579025027302025_dp, 0.01040852585005309_dp, 0.014662503493069159_dp, 0.020571571811010672_dp, 0.028749161300949972_dp, 0.04002565337439286_dp,&
+ 0.05552176300115481_dp, 0.07674587007131725_dp, 0.10572312939601615_dp, 0.14516718239506418_dp, 0.19871016099008434_dp, 0.2712154487579484_dp,&
+ 0.3692151806287191_dp, 0.5015525805409441_dp, 0.6803982020135383_dp, 0.9230308920142081_dp, 1.2553734442165063_dp, 1.7200955901449364_dp,&
+ 2.3987730554757754_dp, 3.4906629653715_dp, 5.780815874478559_dp]
+ aw%aw_erange_matrix(:, 4) = [7.845531705064765e-06_dp, 4.217579566703759e-05_dp, 0.0001076255406955941_dp, 0.0002116704074840506_dp, 0.0003678026352786526_dp,&
+ 0.000598637239972256_dp, 0.000939800791185946_dp, 0.0014447771966513766_dp, 0.002191627535252642_dp, 0.0032927972200630018_dp, 0.004909216880554122_dp,&
+ 0.007270144108734435_dp, 0.010700753084513917_dp, 0.015660261119126325_dp, 0.02279439226673758_dp, 0.033007300151380946_dp, 0.04755981744820865_dp,&
+ 0.06820320985515761_dp, 0.09736066855556012_dp, 0.13837281589809153_dp, 0.19582885861759528_dp, 0.2760121868265214_dp, 0.3874989458973457_dp,&
+ 0.5419617440352286_dp, 0.7552508475941064_dp, 1.048857678610048_dp, 1.4519234318259462_dp, 2.004071631268318_dp, 2.759600998924181_dp,&
+ 3.7942044073242056_dp, 5.217087596451319_dp, 7.196718451225344_dp, 10.029695823161129_dp, 14.413626849760721_dp, 2.022742080929783e-05_dp,&
+ 4.902127023830298e-05_dp, 8.308838409631613e-05_dp, 0.00012719755797047105_dp, 0.00018877141608928316_dp, 0.00027875729779708194_dp, 0.00041237481957666014_dp,&
+ 0.0006104274314639044_dp, 0.0009017824485847016_dp, 0.0013270526990110587_dp, 0.0019435429478184875_dp, 0.0028318806888766317_dp, 0.004105011117474572_dp,&
+ 0.0059204430431561185_dp, 0.008496895591229079_dp, 0.012136858469163465_dp, 0.017257067102487582_dp, 0.02442954195917895_dp, 0.03443669419909579_dp,&
+ 0.04834513188831433_dp, 0.06760433082481605_dp, 0.09417845588835595_dp, 0.13072271761835513_dp, 0.18082056576074482_dp, 0.2493066841224739_dp,&
+ 0.3427177893721846_dp, 0.46995019394607707_dp, 0.6432897947695325_dp, 0.8801980582788952_dp, 1.2068306280775711_dp, 1.6660767737909483_dp,&
+ 2.3395502248176463_dp, 3.4258517245052684_dp, 5.7058363778559205_dp]
+ aw%aw_erange_matrix(:, 5) = [3.865603619912879e-06_dp, 2.087430645188353e-05_dp, 5.3738065099243575e-05_dp, 0.00010718454630525007_dp, 0.0001900012319697737_dp,&
+ 0.00031718955789873134_dp, 0.0005126537329759226_dp, 0.0008128168395638415_dp, 0.0012719920833382853_dp, 0.001970384125983329_dp, 0.0030256963224515113_dp,&
+ 0.00460969356562721_dp, 0.006971643847773047_dp, 0.010471317877795917_dp, 0.01562522911317097_dp, 0.023171141484273704_dp, 0.034157679556524934_dp,&
+ 0.05006830174859498_dp, 0.0729921440414609_dp, 0.1058585802344639_dp, 0.1527581466742932_dp, 0.2193802673426605_dp, 0.31360877991591823_dp,&
+ 0.4463309353744743_dp, 0.6325368438825444_dp, 0.8928196332263253_dp, 1.2554443726415525_dp, 1.759267106284206_dp, 2.458035348630705_dp,&
+ 3.427215114290294_dp, 4.77616847618911_dp, 6.673804689443379_dp, 9.416907604833742_dp, 13.70063546514659_dp, 9.976454765718753e-06_dp,&
+ 2.4397956666150202e-05_dp, 4.2091633541468636e-05_dp, 6.622948123983615e-05_dp, 0.00010186030376456873_dp, 0.00015644233845744574_dp, 0.0002404690130604266_dp,&
+ 0.0003687782406776715_dp, 0.0005627493820533361_dp, 0.0008533803933831028_dp, 0.0012854870718438482_dp, 0.0019235107198793406_dp, 0.002859592750775737_dp,&
+ 0.004224781787747757_dp, 0.0062045295634641385_dp, 0.009060029072853486_dp, 0.0131574822853581_dp, 0.019008095244250185_dp, 0.02732254096178089_dp,&
+ 0.03908488812876366_dp, 0.055652686745107795_dp, 0.07889222315477536_dp, 0.11136127365662019_dp, 0.15655676737113142_dp, 0.21925337945032786_dp,&
+ 0.30597553969409247_dp, 0.42568066454670456_dp, 0.5908146138910935_dp, 0.8191119697759165_dp, 1.137096600179962_dp, 1.5880319126786595_dp,&
+ 2.2536634913094686_dp, 3.331728541732483_dp, 5.597118014202835_dp]
+ aw%aw_erange_matrix(:, 6) = [1.7147362511403065e-06_dp, 9.319802731855972e-06_dp, 2.4302616807482706e-05_dp, 4.948261860530359e-05_dp, 9.026404229610094e-05_dp,&
+ 0.0001560250715046401_dp, 0.00026193159643869907_dp, 0.0004316317370034808_dp, 0.0007014310228413562_dp, 0.0011265811323026616_dp, 0.001790538099368303_dp,&
+ 0.002818442710487939_dp, 0.004396613985562227_dp, 0.006800572618267542_dp, 0.01043510374307695_dp, 0.015891226467704685_dp, 0.02402679235817231_dp,&
+ 0.03607995947798214_dp, 0.05382821091103021_dp, 0.07981021388476216_dp, 0.11763406509273454_dp, 0.17240391938168603_dp, 0.25130849721857534_dp,&
+ 0.36443086121519086_dp, 0.525861591666699_dp, 0.7552321345423689_dp, 1.0798433566303969_dp, 1.5376756421659512_dp, 2.1818096583688225_dp,&
+ 3.087384050821325_dp, 4.363863206811109_dp, 6.180624421988004_dp, 8.83477361053772_dp, 13.019312520088521_dp, 4.43185996007463e-06_dp,&
+ 1.0980758773489005e-05_dp, 1.943725634861249e-05_dp, 3.1800270744211854e-05_dp, 5.129667367655266e-05_dp, 8.27095880626353e-05_dp, 0.0001329766243411858_dp,&
+ 0.00021237174266944332_dp, 0.0003362840713927107_dp, 0.0005277050042553842_dp, 0.0008207467241987074_dp, 0.001265656823748127_dp, 0.001935949524221289_dp,&
+ 0.002938498181312597_dp, 0.004427745609890722_dp, 0.00662561356009038_dp, 0.009849268137973679_dp, 0.01454967083492188_dp, 0.021364880820575197_dp,&
+ 0.031193465982641635_dp, 0.04529525929852885_dp, 0.06542926430703719_dp, 0.09404211859223464_dp, 0.13452588222462222_dp, 0.19157264817324873_dp,&
+ 0.27166955823017896_dp, 0.3838116245690371_dp, 0.5405893273969905_dp, 0.7600124959108089_dp, 1.0690028998164918_dp, 1.5112619233396074_dp,&
+ 2.168763561959426_dp, 3.238506003394989_dp, 5.489633460260332_dp]
+ aw%aw_erange_matrix(:, 7) = [6.35749973501056e-07_dp, 3.492169089246581e-06_dp, 9.302356973224121e-06_dp, 1.9592566972831844e-05_dp, 3.7377729183938204e-05_dp,&
+ 6.798117415794394e-05_dp, 0.00012023568563760358_dp, 0.0002084236297872551_dp, 0.00035534106272681936_dp, 0.0005969900768905776_dp, 0.0009896587375544644_dp,&
+ 0.001620507511517086_dp, 0.0026232770839453665_dp, 0.004201426984363522_dp, 0.006661986770200809_dp, 0.010464757550535931_dp, 0.01629338409394917_dp,&
+ 0.025157418466823473_dp, 0.038538075135755495_dp, 0.05859528378548497_dp, 0.088460352930584_dp, 0.13264771717146925_dp, 0.19763178422753508_dp,&
+ 0.2926522443111407_dp, 0.4308357751366649_dp, 0.6307586891808089_dp, 0.9186346830441839_dp, 1.3314221217344053_dp, 1.9213813610912545_dp,&
+ 2.76319200354934_dp, 3.9663504041897766_dp, 5.700732751780247_dp, 8.263919165830904_dp, 12.346999008174697_dp, 1.646994148539095e-06_dp,&
+ 4.168704436960474e-06_dp, 7.695536879782202e-06_dp, 1.3374173961844378e-05_dp, 2.3064311988245763e-05_dp, 3.958321376425686e-05_dp, 6.725628425988863e-05_dp,&
+ 0.00011284251346096221_dp, 0.0001868773135187132_dp, 0.0003056293856662244_dp, 0.0004939782736171523_dp, 0.0007896314087630558_dp, 0.0012492643080895956_dp,&
+ 0.001957402304692391_dp, 0.0030391875844591482_dp, 0.004678623430285177_dp, 0.007144500300310407_dp, 0.010827043576140467_dp, 0.016289458703073287_dp,&
+ 0.024340088611569204_dp, 0.03613298947254673_dp, 0.05330759009262987_dp, 0.07818208570144934_dp, 0.11402099109647866_dp, 0.16540631928634394_dp,&
+ 0.23875782212611196_dp, 0.3430802599354601_dp, 0.49109150628018977_dp, 0.7010818269759505_dp, 1.0004112023843146_dp, 1.4333015739126787_dp,&
+ 2.0820719815510036_dp, 3.1430997613534135_dp, 5.379828456565977_dp]
+ aw%aw_erange_matrix(:, 8) = [1.117489994479298e-09_dp, 1.0437767934573854e-08_dp, 5.084528505414382e-08_dp, 1.872213850467172e-07_dp, 5.813350591395648e-07_dp,&
+ 1.6041946888512065e-06_dp, 4.054564459005386e-06_dp, 9.568204612679587e-06_dp, 2.1360561665920905e-05_dp, 4.553900601252074e-05_dp, 9.336828090817695e-05_dp,&
+ 0.00018510270750313838_dp, 0.0003563527131882449_dp, 0.0006684922084643366_dp, 0.0012254246986170441_dp, 0.002200236453707954_dp, 0.0038770557829877106_dp,&
+ 0.006716063190006149_dp, 0.011453417554768287_dp, 0.019253386304452922_dp, 0.0319378960087355_dp, 0.052330033425615166_dp, 0.0847641054822857_dp,&
+ 0.13583764990140365_dp, 0.21551319196591645_dp, 0.3387243798072503_dp, 0.527711765290698_dp, 0.8154303015314811_dp, 1.2505960123470905_dp,&
+ 1.9054661547111273_dp, 2.8889237961629872_dp, 4.37232400643935_dp, 6.65560984092506_dp, 10.426038695834771_dp, 3.3457340053937633e-09_dp,&
+ 1.873386519501546e-08_dp, 7.20396391424945e-08_dp, 2.259124367219339e-07_dp, 6.20700398368113e-07_dp, 1.5516519034576341e-06_dp, 3.6098773524770243e-06_dp,&
+ 7.932321947059267e-06_dp, 1.6633942623129364e-05_dp, 3.353876533808818e-05_dp, 6.539287755778778e-05_dp, 0.00012384295496778607_dp, 0.00022861478182158466_dp,&
+ 0.0004125495803926801_dp, 0.0007294839100515848_dp, 0.0012664381661580966_dp, 0.002162272032202245_dp, 0.003635959152010226_dp, 0.006029053426126615_dp,&
+ 0.009868936147464018_dp, 0.015962272528537477_dp, 0.025532104472748035_dp, 0.040417626126145245_dp, 0.06336363493503006_dp, 0.09843823938908386_dp,&
+ 0.1516353587304579_dp, 0.23175010955983177_dp, 0.35168177852781385_dp, 0.5304884039781542_dp, 0.7970145382697631_dp, 1.197557199061726_dp,&
+ 1.8163260289376923_dp, 2.848850144582029_dp, 5.042342061181277_dp]
+ end select
+
+ end subroutine set_aw_array_tau
+
+ !> \brief Unpacks the minimax coefficients for the desired energy range
+ !! @param[in] k - size of the grid
+ !! @param[in] e_range - the selected energy range
+ !! @param[inout] ac_we - vector containing coefficients and weights
+ !! @param[out] ierr - error code
+ subroutine get_points_weights_tau(grid_size, e_range, ac_we, ierr, erange_list)
+ integer, intent(in) :: grid_size
+ real(kind=dp), intent(in) :: e_range
+ real(kind=dp), dimension(2*grid_size), intent(inout) :: ac_we
+ integer, intent(out) :: ierr
+ real(kind=dp),optional,allocatable,intent(out) :: erange_list(:)
+
+ !> Internal variables
+ integer :: kloc, bup
+ type(er_aw_aux) :: aw
+ real(kind=dp) :: e_ratio
+
+ !> Begin work
+ ierr = 0
+ if (.not. any(tau_npoints_supported == grid_size)) then
+ ierr = 1
+ _REGISTER_EXC("The grid size you chose is not available.")
+ return
+ end if
+
+ ! Find location of grid size
+ !kloc = findloc(tau_npoints_supported, grid_size, 1)
+ do kloc=1,size(tau_npoints_supported)
+ if (tau_npoints_supported(kloc) == grid_size) exit
+ end do
+ bup = energy_ranges_grids(kloc)
+
+ ! Allocate and set type elements
+ allocate(aw%energy_range(bup))
+ allocate(aw%aw_erange_matrix(2*grid_size, bup+1))
+ call set_aw_array_tau(grid_size, aw)
+
+ ! Get coefficients and weights
+ e_ratio = 1.0_dp
+ call aw%get_coeff_weight(grid_size, bup, e_range, ac_we, e_ratio)
+ ac_we(:) = ac_we(:) * e_ratio
+
+ if (present(erange_list)) then
+ allocate(erange_list(bup))
+ erange_list(:) = aw%energy_range
+ end if
+
+ ! Deallocate
+ deallocate(aw%energy_range)
+ deallocate(aw%aw_erange_matrix)
+
+ end subroutine get_points_weights_tau
+
+
+end module minimax_tau
diff --git a/GX-PAW/common/src/17_minimax/minimax_tau.o b/GX-PAW/common/src/17_minimax/minimax_tau.o
new file mode 100644
index 00000000..e5895d11
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/minimax_tau.o differ
diff --git a/GX-PAW/common/src/17_minimax/minimax_utils.F90 b/GX-PAW/common/src/17_minimax/minimax_utils.F90
new file mode 100644
index 00000000..3c72d6bf
--- /dev/null
+++ b/GX-PAW/common/src/17_minimax/minimax_utils.F90
@@ -0,0 +1,97 @@
+! ***************************************************************************************************
+! Copyright (C) 2020-2023 Green-X library
+! This file is distributed under the terms of the APACHE2 License.
+!
+! ***************************************************************************************************
+!> \brief This module contains auxiliary procedures and data structures for the main minimax routines
+! ***************************************************************************************************
+module minimax_utils
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "abi_common.h"
+#include "gx_common.h"
+ use defs_basis, only: dp
+ use m_errors
+ !use kinds, only: dp
+ implicit none
+
+ private
+
+ type, public :: er_aw_aux
+ ! Sorted array of the energy ranges
+ real(kind=dp), dimension(:), allocatable :: energy_range
+ ! Matrices with coefficients and weights per energy region
+ real(kind=dp), dimension(:, :), allocatable :: aw_erange_matrix
+ contains
+ procedure :: get_coeff_weight => coeffs_and_weights
+ end type er_aw_aux
+
+ !> Transformation types
+ integer, parameter, public :: cosine_tw = 1
+ integer, parameter, public :: cosine_wt = 2
+ integer, parameter, public :: sine_tw = 3
+
+contains
+
+ !> \brief Find first element in unsorted array that is strictly greater than a given value
+ !> This algorithm is O(n), difficult to do better with unsorted arrays
+ !! @param[in] lenght - lenght of sorted array
+ !! @param[in] einter - sorted array of the energy intervals
+ !! @param[in] eval - the energy value
+ function find_erange(length, einter, eval) result(idx)
+ integer, intent(in) :: length
+ real(kind=dp), dimension(length), intent(in) :: einter
+ real(kind=dp), intent(in) :: eval
+ integer :: idx
+
+ ! Auxiliary variables
+ integer :: jdx
+ real(kind=dp) :: tmp_min_max
+
+ ! Begin work
+ tmp_min_max = huge(0.0_dp)
+ idx = length + 1
+
+ do jdx = 1, length
+ if (eval < einter(jdx) .and. einter(jdx) < tmp_min_max) then
+ idx = jdx
+ tmp_min_max = einter(jdx)
+ end if
+ end do
+
+ end function find_erange
+
+ !> \brief Selects the energy region and scales weights and coefficients
+ !! @param[in] grid_size - the grid size
+ !! @param[in] bup - length of the energy region array
+ !! @param[in] e_range - the selected energy range
+ !! @param[inout] e_ratio - an heuristic correction factor
+ !! @param[inout] ac_we - vector containing coefficients and weights
+ subroutine coeffs_and_weights(this, grid_size, bup, e_range, ac_we, e_ratio)
+ class(er_aw_aux), intent(in) :: this
+ integer, intent(in) :: grid_size
+ integer, intent(in) :: bup
+ real(kind=dp), intent(in) :: e_range
+ real(kind=dp), dimension(:), intent(inout) :: ac_we
+ real(kind=dp), intent(inout) :: e_ratio
+
+ ! Internal variables
+ integer :: ien
+
+ ! Select energy region
+ ien = find_erange(bup, this%energy_range, e_range)
+
+ ! Scale grids for large sizes when erange falls in the first energy range
+ if (ien == 1 .and. grid_size > 20) then
+ e_ratio = this%energy_range(1) / e_range
+ if (e_ratio > 1.5_dp) then
+ e_ratio = e_ratio / 1.5_dp
+ endif
+ end if
+
+ ac_we(:) = this%aw_erange_matrix(:, ien)
+
+ end subroutine coeffs_and_weights
+
+end module minimax_utils
diff --git a/GX-PAW/common/src/17_minimax/minimax_utils.o b/GX-PAW/common/src/17_minimax/minimax_utils.o
new file mode 100644
index 00000000..d425c030
Binary files /dev/null and b/GX-PAW/common/src/17_minimax/minimax_utils.o differ
diff --git a/GX-PAW/common/src/17_yaml_out/.deps/c_pair_list.Po b/GX-PAW/common/src/17_yaml_out/.deps/c_pair_list.Po
new file mode 100644
index 00000000..20a5ca3d
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/.deps/c_pair_list.Po
@@ -0,0 +1,402 @@
+c_pair_list.o: c_pair_list.c \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
+ ../../../../shared/common/src/incs/abi_clib.h ../../../../config.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h \
+ /opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
+ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/AvailabilityInternal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/signal.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_mcontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/_structs.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdint.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdint.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/stdio.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stdarg.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_common.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_strings.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:
+
+../../../../shared/common/src/incs/abi_clib.h:
+
+../../../../config.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include/stddef.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/inttypes.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h:
+
+/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/include-fixed/math.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h:
+
+/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h:
diff --git a/GX-PAW/common/src/17_yaml_out/Makefile b/GX-PAW/common/src/17_yaml_out/Makefile
new file mode 100644
index 00000000..dc11d3ac
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/Makefile
@@ -0,0 +1,1509 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# shared/common/src/17_yaml_out/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/abinit
+pkgincludedir = $(includedir)/abinit
+pkglibdir = $(libdir)/abinit
+pkglibexecdir = $(libexecdir)/abinit
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-apple-darwin18.7.0
+host_triplet = x86_64-apple-darwin18.7.0
+target_triplet = x86_64-apple-darwin18.7.0
+subdir = shared/common/src/17_yaml_out
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_yaml_out_a_AR = $(AR) $(ARFLAGS)
+lib17_yaml_out_a_LIBADD =
+am__objects_1 = c_pair_list.$(OBJEXT) m_type_pair_list.$(OBJEXT) \
+ m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT) \
+ m_yaml.$(OBJEXT)
+am_lib17_yaml_out_a_OBJECTS = $(am__objects_1)
+lib17_yaml_out_a_OBJECTS = $(am_lib17_yaml_out_a_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/c_pair_list.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_$(V))
+am__v_PPFC_ = $(am__v_PPFC_$(AM_DEFAULT_VERBOSITY))
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_$(V))
+am__v_FCLD_ = $(am__v_FCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_yaml_out_a_SOURCES)
+DIST_SOURCES = $(lib17_yaml_out_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = abinit-10.0.0.83-58be4d_x86_64_darwin18.7.0_gnu9.4
+ABINIT_COMMON_CPPFLAGS =
+ABINIT_COMMON_FCFLAGS =
+ABINIT_COMMON_LDFLAGS =
+ABINIT_COMMON_LIBS =
+ABINIT_TARGET = x86_64_darwin18.7.0_gnu9.4
+ABINIT_VERSION = 10.0.0.83-58be4d
+ABINIT_VERSION_BASE = 10.0
+ABINIT_VERSION_BUILD = 20240316
+ABINIT_VERSION_MAJOR = 10
+ABINIT_VERSION_MICRO = 0
+ABINIT_VERSION_MINOR = 0
+ABI_CPPFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+ACLOCAL = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' aclocal-1.16
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rc
+ARFLAGS_CMD = rc
+ARFLAGS_DEBUG =
+ARFLAGS_EXTRA =
+ARFLAGS_HINTS =
+ARFLAGS_OPTIM =
+ATOMPAW_BIN =
+AUTOCONF = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoconf
+AUTOHEADER = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' autoheader
+AUTOMAKE = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' automake-1.16
+AWK = awk
+BIGDFT_CPPFLAGS =
+BIGDFT_FCFLAGS =
+BIGDFT_LDFLAGS =
+BIGDFT_LIBS =
+BOURNE_SHELL = /bin/sh
+CC = /opt/local/bin/mpicc
+CCDEPMODE = depmode=gcc3
+CC_LDFLAGS =
+CC_LDFLAGS_DEBUG =
+CC_LDFLAGS_EXTRA =
+CC_LDFLAGS_GPU =
+CC_LDFLAGS_HINTS =
+CC_LDFLAGS_OPTIM =
+CC_LIBS =
+CC_LIBS_DEBUG =
+CC_LIBS_EXTRA =
+CC_LIBS_GPU =
+CC_LIBS_HINTS =
+CC_LIBS_OPTIM =
+CFLAGS = -O2 -g
+CFLAGS_DEBUG =
+CFLAGS_EXTRA =
+CFLAGS_GPU =
+CFLAGS_HINTS =
+CFLAGS_OPTIM =
+CPP = /opt/local/bin/mpicc -E
+CPPFLAGS =
+CPPFLAGS_DEBUG =
+CPPFLAGS_EXTRA =
+CPPFLAGS_GPU =
+CPPFLAGS_HINTS =
+CPPFLAGS_HINTS_EXT = -P -std=c99
+CPPFLAGS_OPTIM =
+CXX = /opt/local/bin/mpicxx
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -O2 -g
+CXXFLAGS_DEBUG =
+CXXFLAGS_EXTRA =
+CXXFLAGS_GPU =
+CXXFLAGS_HINTS =
+CXXFLAGS_OPTIM =
+CXX_LDFLAGS =
+CXX_LDFLAGS_DEBUG =
+CXX_LDFLAGS_EXTRA =
+CXX_LDFLAGS_GPU =
+CXX_LDFLAGS_HINTS =
+CXX_LDFLAGS_OPTIM =
+CXX_LIBS =
+CXX_LIBS_DEBUG =
+CXX_LIBS_EXTRA =
+CXX_LIBS_GPU =
+CXX_LIBS_HINTS =
+CXX_LIBS_OPTIM =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = \c
+ECHO_N =
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+F77 = /opt/local/bin/mpif90
+FC = /opt/local/bin/mpif90
+FCFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FCFLAGS_DEBUG =
+FCFLAGS_EXTRA =
+FCFLAGS_F90 =
+FCFLAGS_FIXEDFORM = -ffixed-form
+FCFLAGS_FREEFORM = -ffree-form
+FCFLAGS_HINTS = -ffree-line-length-none
+FCFLAGS_MODDIR = -J../mods
+FCFLAGS_OPENMP =
+FCFLAGS_OPENMP_OFFLOAD =
+FCFLAGS_OPTIM =
+FCLIBS = -L/opt/local/lib -L/opt/local/lib/openmpi-gcc9 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0 -L/opt/local/lib/gcc9/gcc/x86_64-apple-darwin18/9.4.0/../../.. -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lquadmath -lm
+FC_LDFLAGS =
+FC_LDFLAGS_DEBUG =
+FC_LDFLAGS_EXTRA =
+FC_LDFLAGS_HINTS =
+FC_LDFLAGS_OPTIM =
+FC_LIBS =
+FC_LIBS_DEBUG =
+FC_LIBS_EXTRA =
+FC_LIBS_HINTS =
+FC_LIBS_OPTIM =
+FC_NOWRAP = /opt/local/bin/mpif90
+FFLAGS = -O2 -g -ffree-line-length-none -I/opt/local/include -I/opt/local/include -I/opt/local/include
+FFTW3_CFLAGS =
+FFTW3_CPPFLAGS = -I/opt/local/include
+FFTW3_FCFLAGS = -I/opt/local/include
+FFTW3_LDFLAGS =
+FFTW3_LIBS = -L/opt/local/lib -lfftw3 -lfftw3f
+FFT_CFLAGS =
+FFT_FCFLAGS =
+FPP =
+FPPFLAGS =
+FPPFLAGS_DEBUG =
+FPPFLAGS_EXTRA =
+FPPFLAGS_HINTS =
+FPPFLAGS_OPTIM =
+GPU_ARCH =
+GPU_CFLAGS =
+GPU_CPPFLAGS =
+GPU_CXXFLAGS =
+GPU_FCFLAGS =
+GPU_LDFLAGS =
+GPU_LIBS =
+GRAPHATOM_BIN =
+GREP = /usr/bin/grep
+H5CC =
+HDF5_CFLAGS =
+HDF5_CPPFLAGS =
+HDF5_CXXFLAGS =
+HDF5_FCFLAGS =
+HDF5_LDFLAGS =
+HDF5_LIBS =
+INSTALL = /opt/local/libexec/gnubin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KOKKOS_CPPFLAGS =
+KOKKOS_CXXFLAGS =
+KOKKOS_LDFLAGS =
+KOKKOS_LIBS =
+LDFLAGS =
+LEVMAR_CFLAGS =
+LEVMAR_CPPFLAGS =
+LEVMAR_LDFLAGS =
+LEVMAR_LIBS =
+LIBOBJS =
+LIBPAW_CPPFLAGS =
+LIBPAW_FCFLAGS =
+LIBPAW_LDFLAGS =
+LIBPAW_LIBS =
+LIBPSML_CPPFLAGS =
+LIBPSML_FCFLAGS =
+LIBPSML_LDFLAGS =
+LIBPSML_LIBS =
+LIBS = -L/opt/local/lib -lwannier -L/opt/local/lib -lxc -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm -L/opt/local/lib -lfftw3 -lfftw3f
+LIBXC_CFLAGS =
+LIBXC_CPPFLAGS =
+LIBXC_FCFLAGS =
+LIBXC_LDFLAGS =
+LIBXC_LIBS =
+LIBXML2_CPPFLAGS =
+LIBXML2_FCFLAGS =
+LIBXML2_LIBS =
+LINALG_CFLAGS =
+LINALG_CPPFLAGS =
+LINALG_CXXFLAGS =
+LINALG_FCFLAGS = -I/opt/local/include
+LINALG_LDFLAGS =
+LINALG_LIBS = -L/opt/local/lib -lopenblas
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} '/Users/gonze/_Research/ABINIT_git/gonze/config/gnu/missing' makeinfo
+MKDIR_P = /opt/local/libexec/gnubin/mkdir -p
+MODEXT = mod
+MPI_CFLAGS =
+MPI_CPPFLAGS =
+MPI_CXXFLAGS =
+MPI_FCFLAGS =
+MPI_LDFLAGS =
+MPI_LIBS =
+MV = /opt/local/libexec/gnubin/mv
+NETCDF_CFLAGS =
+NETCDF_CPPFLAGS =
+NETCDF_CXXFLAGS =
+NETCDF_FCFLAGS =
+NETCDF_FORTRAN_CFLAGS =
+NETCDF_FORTRAN_CPPFLAGS =
+NETCDF_FORTRAN_CXXFLAGS =
+NETCDF_FORTRAN_FCFLAGS =
+NETCDF_FORTRAN_LDFLAGS =
+NETCDF_FORTRAN_LIBS =
+NETCDF_LDFLAGS =
+NETCDF_LIBS =
+NVCC =
+NVCC_CFLAGS =
+NVCC_CPPFLAGS =
+NVCC_LDFLAGS =
+NVCC_LIBS =
+OBJEXT = o
+PACKAGE = abinit
+PACKAGE_BUGREPORT = https://bugs.launchpad.net/abinit/
+PACKAGE_NAME = ABINIT
+PACKAGE_STRING = ABINIT 10.0.0.83-58be4d
+PACKAGE_TARNAME = abinit
+PACKAGE_URL =
+PACKAGE_VERSION = 10.0.0.83-58be4d
+PAPI_CFLAGS =
+PAPI_CPPFLAGS =
+PAPI_LDFLAGS =
+PAPI_LIBS =
+PATCH = patch
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PFFT_CFLAGS =
+PFFT_CPPFLAGS =
+PFFT_LDFLAGS =
+PFFT_LIBS =
+PYFLAGS =
+PYTHON = python3.9
+PYTHON_CONFIG = python3.9-config
+PYTHON_CPPFLAGS = -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
+RANLIB = ranlib
+REALPATH = realpath
+RM = /opt/local/libexec/gnubin/rm
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP =
+TAR = tar
+TRIQS_CFLAGS =
+TRIQS_CPPFLAGS =
+TRIQS_CXXFLAGS =
+TRIQS_LDFLAGS =
+TRIQS_LIBS =
+TRUE_CPP = cpp
+VERSION = 10.0.0.83-58be4d
+WANNIER90_CPPFLAGS =
+WANNIER90_FCFLAGS = -I/opt/local/include
+WANNIER90_LDFLAGS =
+WANNIER90_LIBS = -L/opt/local/lib -lwannier
+XML2_CONFIG =
+XMLF90_CPPFLAGS =
+XMLF90_FCFLAGS =
+XMLF90_LDFLAGS =
+XMLF90_LIBS =
+XML_CPPFLAGS =
+XML_LIBS =
+XPP =
+XPPFLAGS =
+XPPFLAGS_DEBUG =
+XPPFLAGS_EXTRA =
+XPPFLAGS_OPTIM =
+YAKL_CPPFLAGS =
+YAKL_FCFLAGS =
+YAKL_LDFLAGS =
+YAKL_LIBS =
+abi_ac_distcheck = --with-config-file="/Users/gonze/_Research/ABINIT_git/gonze/mac-1P0-225.ac9"
+abi_ac_version = 027100
+abi_am_version = 011603
+abi_avx_safe_mode_enable = no
+abi_bse_unpacked_enable = no
+abi_cc_path =
+abi_cc_vendor = gnu
+abi_cc_version = 9.4
+abi_cclock_enable = no
+abi_cpp_path =
+abi_cpu_64bits = yes
+abi_cpu_bits = 64
+abi_cpu_model = unknown
+abi_cpu_platform = apple
+abi_cpu_spec = unknown_unknown
+abi_cpu_vendor = unknown
+abi_crpa_optim_enable = no
+abi_cxx_path =
+abi_cxx_vendor = gnu
+abi_cxx_version = 9.4
+abi_debug_flavor = basic
+abi_exports_enable = no
+abi_fbk_abinit_common_ok = no
+abi_fbk_bigdft_ok = disabled
+abi_fbk_config =
+abi_fbk_enable = no
+abi_fbk_fft_ok = no
+abi_fbk_fftw3_ok = no
+abi_fbk_gpu_ok = no
+abi_fbk_hdf5_ok = disabled
+abi_fbk_init = def
+abi_fbk_kokkos_ok = no
+abi_fbk_levmar_ok = no
+abi_fbk_libpaw_ok = no
+abi_fbk_libpsml_ok = disabled
+abi_fbk_libxc_ok = disabled
+abi_fbk_libxml2_ok = no
+abi_fbk_linalg_ok = disabled
+abi_fbk_list =
+abi_fbk_mpi_ok = no
+abi_fbk_netcdf_fortran_ok = disabled
+abi_fbk_netcdf_ok = disabled
+abi_fbk_papi_ok = no
+abi_fbk_pfft_ok = no
+abi_fbk_prefix =
+abi_fbk_required =
+abi_fbk_triqs_ok = no
+abi_fbk_wannier90_ok = disabled
+abi_fbk_xmlf90_ok = disabled
+abi_fbk_yakl_ok = no
+abi_fc_path =
+abi_fc_vendor = gnu
+abi_fc_version = 9.4
+abi_fc_wrap = no
+abi_fc_wrapper_enable = no
+abi_fpp_path =
+abi_gpu_arch =
+abi_gpu_fcflags =
+abi_gpu_flavor = none
+abi_gpu_hip_libdir =
+abi_gpu_incs =
+abi_gpu_ldflags =
+abi_gpu_libs =
+abi_gpu_nvtx_v3 =
+abi_gpu_roctx =
+abi_gw_dpc_enable = yes
+abi_hints_enable = yes
+abi_libtetra_enable = yes
+abi_libxml2_cppflags =
+abi_libxml2_enable = no
+abi_libxml2_fcflags =
+abi_libxml2_init = def
+abi_libxml2_ldflags =
+abi_libxml2_libs =
+abi_libxml2_ok = unknown
+abi_libxml2_prefix =
+abi_lotf_enable = no
+abi_lt_version = 020406
+abi_m4_version = 010419
+abi_memory_profiling_enable = no
+abi_mpi_cflags =
+abi_mpi_cppflags =
+abi_mpi_cxxflags =
+abi_mpi_enable = yes
+abi_mpi_fcflags =
+abi_mpi_flavor = auto
+abi_mpi_gpu_aware_enable = no
+abi_mpi_incs =
+abi_mpi_inplace_enable = yes
+abi_mpi_interfaces_bugfix_enable = no
+abi_mpi_io_default_enable = no
+abi_mpi_io_enable = yes
+abi_mpi_ldflags =
+abi_mpi_level = 2
+abi_mpi_libs =
+abi_netcdf_default_enable = no
+abi_openmp_enable = no
+abi_openmp_offload_enable = no
+abi_optim_flavor = standard
+abi_python_invocation_enable = no
+abi_source_debug_enable = no
+abi_stdin_enable = yes
+abi_sys_spec = darwin-x86_64
+abi_timer_enable = yes
+abi_triqs_v1_4_enable = no
+abi_triqs_v2_0_enable = no
+abi_zdot_bugfix_enable = no
+abinit_bindir = /usr/local/bin
+abinit_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abinit_chkdir = /usr/local/share/abinit/tests
+abinit_datdir = /usr/local/share/abinit
+abinit_docdir = /usr/local/doc/abinit
+abinit_incdir = /usr/local/include
+abinit_libdir = /usr/local/lib
+abinit_mandir = /usr/local/share/man
+abinit_prefix = /usr/local
+abinit_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_builddir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_yaml_out
+abs_srcdir = /Users/gonze/_Research/ABINIT_git/gonze/shared/common/src/17_yaml_out
+abs_top_builddir = /Users/gonze/_Research/ABINIT_git/gonze
+abs_top_srcdir = /Users/gonze/_Research/ABINIT_git/gonze
+ac_ct_CC =
+ac_ct_CXX =
+ac_ct_FC =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-apple-darwin18.7.0
+build_alias =
+build_cpu = x86_64
+build_os = darwin18.7.0
+build_vendor = apple
+builddir = .
+cc_info_string = gcc-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+cxx_info_string = g++-mp-9 (MacPorts gcc9 9.4.0_0) 9.4.0
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_avx_safe_mode =
+enable_bse_unpacked =
+enable_cclock =
+enable_crpa_optim =
+enable_exports =
+enable_fc_wrapper =
+enable_gw_dpc = yes
+enable_hints =
+enable_libtetra =
+enable_lotf =
+enable_memory_profiling =
+enable_mpi_gpu_aware =
+enable_mpi_inplace =
+enable_mpi_interfaces_bugfix =
+enable_mpi_io = yes
+enable_mpi_io_default =
+enable_netcdf_default =
+enable_openmp =
+enable_openmp_offload =
+enable_python_invocation =
+enable_shared =
+enable_source_debug =
+enable_static =
+enable_stdin =
+enable_timer =
+enable_triqs_v1_4 =
+enable_triqs_v2_0 =
+enable_zdot_bugfix =
+exec_prefix = ${prefix}
+fc_info_string = GNU Fortran (MacPorts gcc9 9.4.0_0) 9.4.0
+fc_mod_fcflags =
+fc_timing = standard
+fcflags_opt_02_clib =
+fcflags_opt_10_defs =
+fcflags_opt_11_memory_mpi =
+fcflags_opt_12_hide_mpi =
+fcflags_opt_14_hidewrite =
+fcflags_opt_16_hideleave =
+fcflags_opt_16_kokkos_toolbox =
+fcflags_opt_17_gpu_toolbox =
+fcflags_opt_17_libtetra_ext =
+fcflags_opt_17_minimax =
+fcflags_opt_17_yaml_out =
+fcflags_opt_18_timing =
+fcflags_opt_21_hashfuncs =
+fcflags_opt_27_toolbox_oop =
+fcflags_opt_28_numeric_noabirule =
+fcflags_opt_29_kpoints =
+fcflags_opt_32_util =
+fcflags_opt_33_xc_lowlevel =
+fcflags_opt_39_libpaw =
+fcflags_opt_41_geometry =
+fcflags_opt_42_nlstrain =
+fcflags_opt_42_parser =
+fcflags_opt_43_ptgroups = -O0
+fcflags_opt_43_wvl_wrappers =
+fcflags_opt_44_abitools =
+fcflags_opt_44_abitypes_defs =
+fcflags_opt_44_manage_kokkos =
+fcflags_opt_45_geomoptim =
+fcflags_opt_45_xgTools =
+fcflags_opt_46_ghc_omp =
+fcflags_opt_46_manage_cuda =
+fcflags_opt_48_diago =
+fcflags_opt_49_gw_toolbox_oop =
+fcflags_opt_51_manage_mpi =
+fcflags_opt_52_fft_mpi_noabirule =
+fcflags_opt_53_ffts =
+fcflags_opt_54_spacepar =
+fcflags_opt_55_abiutil =
+fcflags_opt_56_io_mpi =
+fcflags_opt_56_mixing =
+fcflags_opt_56_recipspace =
+fcflags_opt_56_xc =
+fcflags_opt_57_iopsp_parser =
+fcflags_opt_57_iovars =
+fcflags_opt_61_occeig =
+fcflags_opt_62_cg_noabirule =
+fcflags_opt_62_ctqmc =
+fcflags_opt_62_iowfdenpot =
+fcflags_opt_62_poisson =
+fcflags_opt_62_wvl_wfs =
+fcflags_opt_64_psp =
+fcflags_opt_65_lotf_base =
+fcflags_opt_65_paw =
+fcflags_opt_66_nonlocal =
+fcflags_opt_66_vdwxc =
+fcflags_opt_66_wfs =
+fcflags_opt_67_common =
+fcflags_opt_67_python_invocation_ext =
+fcflags_opt_67_triqs_ext =
+fcflags_opt_68_dmft =
+fcflags_opt_68_lotf =
+fcflags_opt_68_recursion =
+fcflags_opt_68_rsprc =
+fcflags_opt_69_wfdesc =
+fcflags_opt_70_gw =
+fcflags_opt_71_bse =
+fcflags_opt_71_wannier =
+fcflags_opt_72_response =
+fcflags_opt_77_ddb =
+fcflags_opt_77_suscep =
+fcflags_opt_78_effpot =
+fcflags_opt_78_eph =
+fcflags_opt_79_seqpar_mpi =
+fcflags_opt_80_rttddft =
+fcflags_opt_80_tdep =
+fcflags_opt_94_scfcv =
+fcflags_opt_95_drive =
+fcflags_opt_98_main =
+fcflags_opt_bigdft =
+fcflags_opt_default =
+fcflags_opt_hdf5 =
+fcflags_opt_levmar =
+fcflags_opt_libpsml =
+fcflags_opt_libxc =
+fcflags_opt_libxml2 =
+fcflags_opt_linalg =
+fcflags_opt_netcdf =
+fcflags_opt_netcdf_fortran =
+fcflags_opt_papi =
+fcflags_opt_triqs =
+fcflags_opt_wannier90 =
+fcflags_opt_xmlf90 =
+host = x86_64-apple-darwin18.7.0
+host_alias =
+host_cpu = x86_64
+host_os = darwin18.7.0
+host_vendor = apple
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /Users/gonze/_Research/ABINIT_git/gonze/config/gnu/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+runstatedir = ${localstatedir}/run
+sbindir = ${exec_prefix}/sbin
+sd_abinit_common_cppflags =
+sd_abinit_common_enable = no
+sd_abinit_common_enable_def = no
+sd_abinit_common_fcflags =
+sd_abinit_common_init = def
+sd_abinit_common_ldflags =
+sd_abinit_common_libs =
+sd_abinit_common_ok = unknown
+sd_abinit_common_options = optional skip
+sd_abinit_common_policy = skip
+sd_abinit_common_status = optional
+sd_bigdft_cppflags =
+sd_bigdft_enable = no
+sd_bigdft_enable_def = no
+sd_bigdft_fcflags =
+sd_bigdft_init = def
+sd_bigdft_ldflags =
+sd_bigdft_libs =
+sd_bigdft_ok = unknown
+sd_bigdft_options = optional warn
+sd_bigdft_policy = warn
+sd_bigdft_status = optional
+sd_fft_cflags =
+sd_fft_choices =
+sd_fft_cppflags = -I/opt/local/include
+sd_fft_cxxflags =
+sd_fft_enable = yes
+sd_fft_fcflags = -I/opt/local/include
+sd_fft_flavor = fftw3
+sd_fft_init = kwd
+sd_fft_ldflags =
+sd_fft_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fft_ok = yes
+sd_fftw3_cflags =
+sd_fftw3_cppflags = -I/opt/local/include
+sd_fftw3_enable = yes
+sd_fftw3_enable_def = no
+sd_fftw3_fcflags = -I/opt/local/include
+sd_fftw3_init = env
+sd_fftw3_ldflags =
+sd_fftw3_libs = -L/opt/local/lib -lfftw3 -lfftw3f
+sd_fftw3_ok = yes
+sd_fftw3_options = optional skip
+sd_fftw3_policy = skip
+sd_fftw3_status = optional
+sd_gpu_cflags =
+sd_gpu_cppflags =
+sd_gpu_cxxflags =
+sd_gpu_enable = no
+sd_gpu_enable_def = no
+sd_gpu_fcflags =
+sd_gpu_init = def
+sd_gpu_ldflags =
+sd_gpu_libs =
+sd_gpu_ok = no
+sd_gpu_options = optional warn
+sd_gpu_policy = warn
+sd_gpu_prefix =
+sd_gpu_status = optional
+sd_hdf5_cflags =
+sd_hdf5_cppflags = -I/opt/local/include -I/opt/local/include
+sd_hdf5_cxxflags =
+sd_hdf5_enable = yes
+sd_hdf5_enable_def = yes
+sd_hdf5_enable_fc = no
+sd_hdf5_fcflags =
+sd_hdf5_h5cc = /opt/local/bin/h5cc
+sd_hdf5_h5fc =
+sd_hdf5_init = dir
+sd_hdf5_ldflags =
+sd_hdf5_libs = -L/opt/local/lib -L/opt/local/lib -lhdf5_hl -L/opt/local/lib -lhdf5 -lz -ldl -lm
+sd_hdf5_ok = yes
+sd_hdf5_options = required no-fortran warn
+sd_hdf5_policy = warn
+sd_hdf5_status = required
+sd_kokkos_cppflags =
+sd_kokkos_cxxflags =
+sd_kokkos_enable = no
+sd_kokkos_enable_def = no
+sd_kokkos_init = def
+sd_kokkos_ldflags =
+sd_kokkos_libs =
+sd_kokkos_ok = unknown
+sd_kokkos_options = optional fail
+sd_kokkos_policy = fail
+sd_kokkos_status = optional
+sd_levmar_cflags =
+sd_levmar_cppflags =
+sd_levmar_enable = no
+sd_levmar_enable_def = no
+sd_levmar_init = def
+sd_levmar_ldflags =
+sd_levmar_libs =
+sd_levmar_ok = unknown
+sd_levmar_options = optional fail
+sd_levmar_policy = fail
+sd_levmar_status = optional
+sd_libpaw_cppflags =
+sd_libpaw_enable = no
+sd_libpaw_enable_def = no
+sd_libpaw_fcflags =
+sd_libpaw_init = def
+sd_libpaw_ldflags =
+sd_libpaw_libs =
+sd_libpaw_ok = unknown
+sd_libpaw_options = optional skip
+sd_libpaw_policy = skip
+sd_libpaw_status = optional
+sd_libpsml_cppflags =
+sd_libpsml_enable = no
+sd_libpsml_enable_def = no
+sd_libpsml_fcflags =
+sd_libpsml_init = def
+sd_libpsml_ldflags =
+sd_libpsml_libs =
+sd_libpsml_ok = unknown
+sd_libpsml_options = optional warn
+sd_libpsml_policy = warn
+sd_libpsml_status = optional
+sd_libxc_cflags =
+sd_libxc_cppflags = -I/opt/local/include
+sd_libxc_enable = yes
+sd_libxc_enable_def = yes
+sd_libxc_enable_fc = no
+sd_libxc_fcflags =
+sd_libxc_init = dir
+sd_libxc_ldflags =
+sd_libxc_libs = -L/opt/local/lib -lxc
+sd_libxc_ok = yes
+sd_libxc_options = required no-fortran warn
+sd_libxc_policy = warn
+sd_libxc_status = required
+sd_linalg_cflags =
+sd_linalg_choices =
+sd_linalg_cppflags =
+sd_linalg_cxxflags =
+sd_linalg_enable = yes
+sd_linalg_fcflags = -I/opt/local/include
+sd_linalg_flavor = openblas
+sd_linalg_has_elpa = no
+sd_linalg_has_scalapack = no
+sd_linalg_init = env
+sd_linalg_ldflags =
+sd_linalg_libs = -L/opt/local/lib -lopenblas
+sd_linalg_ok = yes
+sd_mpi_cc = /opt/local/bin/mpicc
+sd_mpi_cflags =
+sd_mpi_cppflags = -I/opt/local/include
+sd_mpi_cxx = /opt/local/bin/mpicxx
+sd_mpi_enable = yes
+sd_mpi_enable_cxx = yes
+sd_mpi_enable_def = auto
+sd_mpi_enable_fc = yes
+sd_mpi_fc = /opt/local/bin/mpif90
+sd_mpi_fcflags = -I/opt/local/include
+sd_mpi_init = dir
+sd_mpi_ldflags =
+sd_mpi_libs =
+sd_mpi_ok = yes
+sd_mpi_options = auto optional fail
+sd_mpi_policy = fail
+sd_mpi_status = optional
+sd_netcdf_cflags =
+sd_netcdf_cppflags = -I/opt/local/include
+sd_netcdf_enable = yes
+sd_netcdf_enable_def = yes
+sd_netcdf_fcflags = -I/opt/local/include
+sd_netcdf_fortran_cflags =
+sd_netcdf_fortran_cppflags = -I/opt/local/include
+sd_netcdf_fortran_enable = yes
+sd_netcdf_fortran_enable_def = yes
+sd_netcdf_fortran_fcflags = -I/opt/local/include
+sd_netcdf_fortran_init = dir
+sd_netcdf_fortran_ldflags =
+sd_netcdf_fortran_libs = -L/opt/local/lib -lnetcdff
+sd_netcdf_fortran_ok = yes
+sd_netcdf_fortran_options = required warn
+sd_netcdf_fortran_policy = warn
+sd_netcdf_fortran_status = required
+sd_netcdf_init = dir
+sd_netcdf_ldflags =
+sd_netcdf_libs = -L/opt/local/lib -lnetcdf
+sd_netcdf_ok = yes
+sd_netcdf_options = required warn
+sd_netcdf_policy = warn
+sd_netcdf_status = required
+sd_papi_cflags =
+sd_papi_cppflags =
+sd_papi_enable = no
+sd_papi_enable_def = no
+sd_papi_init = def
+sd_papi_ldflags =
+sd_papi_libs =
+sd_papi_ok = unknown
+sd_papi_options = optional fail
+sd_papi_policy = fail
+sd_papi_sd_papi_fcflags =
+sd_papi_status = optional
+sd_pfft_cflags =
+sd_pfft_cppflags =
+sd_pfft_enable = no
+sd_pfft_enable_def = no
+sd_pfft_init = def
+sd_pfft_ldflags =
+sd_pfft_libs =
+sd_pfft_ok = unknown
+sd_pfft_options = optional skip
+sd_pfft_policy = skip
+sd_pfft_status = optional
+sd_sys_fcflags =
+sd_triqs_cflags =
+sd_triqs_cppflags =
+sd_triqs_cxxflags =
+sd_triqs_enable = no
+sd_triqs_enable_def = no
+sd_triqs_fcflags =
+sd_triqs_init = def
+sd_triqs_ldflags =
+sd_triqs_libs =
+sd_triqs_ok = unknown
+sd_triqs_options = optional fail
+sd_triqs_policy = fail
+sd_triqs_status = optional
+sd_wannier90_cppflags =
+sd_wannier90_enable = yes
+sd_wannier90_enable_def = no
+sd_wannier90_fcflags = -I/opt/local/include
+sd_wannier90_init = env
+sd_wannier90_ldflags =
+sd_wannier90_libs = -L/opt/local/lib -lwannier
+sd_wannier90_ok = yes
+sd_wannier90_options = optional warn
+sd_wannier90_policy = warn
+sd_wannier90_status = optional
+sd_xmlf90_cppflags =
+sd_xmlf90_enable = no
+sd_xmlf90_enable_def = no
+sd_xmlf90_fcflags =
+sd_xmlf90_init = def
+sd_xmlf90_ldflags =
+sd_xmlf90_libs =
+sd_xmlf90_ok = unknown
+sd_xmlf90_options = optional warn
+sd_xmlf90_policy = warn
+sd_xmlf90_status = optional
+sd_yakl_cppflags =
+sd_yakl_enable = no
+sd_yakl_enable_def = no
+sd_yakl_fcflags =
+sd_yakl_init = def
+sd_yakl_ldflags =
+sd_yakl_libs =
+sd_yakl_ok = unknown
+sd_yakl_options = optional fail
+sd_yakl_policy = fail
+sd_yakl_status = optional
+sharedstatedir = ${prefix}/com
+src_02_clib_fcflags = -I$(top_builddir)/shared/common/src/02_clib -I$(top_srcdir)/shared/common/src/02_clib
+src_10_defs_fcflags = -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs
+src_11_memory_mpi_fcflags = -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi
+src_12_hide_mpi_fcflags = -I$(top_builddir)/shared/common/src/12_hide_mpi -I$(top_srcdir)/shared/common/src/12_hide_mpi
+src_14_hidewrite_fcflags = -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite
+src_16_hideleave_fcflags = -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave
+src_16_kokkos_toolbox_fcflags = -I$(top_builddir)/shared/common/src/16_kokkos_toolbox -I$(top_srcdir)/shared/common/src/16_kokkos_toolbox
+src_17_gpu_toolbox_fcflags = -I$(top_builddir)/shared/common/src/17_gpu_toolbox -I$(top_srcdir)/shared/common/src/17_gpu_toolbox
+src_17_libtetra_ext_fcflags = -I$(top_builddir)/shared/common/src/17_libtetra_ext -I$(top_srcdir)/shared/common/src/17_libtetra_ext
+src_17_minimax_fcflags = -I$(top_builddir)/shared/common/src/17_minimax -I$(top_srcdir)/shared/common/src/17_minimax
+src_17_yaml_out_fcflags = -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out
+src_18_timing_fcflags = -I$(top_builddir)/shared/common/src/18_timing -I$(top_srcdir)/shared/common/src/18_timing
+src_21_hashfuncs_fcflags = -I$(top_builddir)/shared/common/src/21_hashfuncs -I$(top_srcdir)/shared/common/src/21_hashfuncs
+src_27_toolbox_oop_fcflags = -I$(top_builddir)/shared/common/src/27_toolbox_oop -I$(top_srcdir)/shared/common/src/27_toolbox_oop
+src_28_numeric_noabirule_fcflags = -I$(top_builddir)/shared/common/src/28_numeric_noabirule -I$(top_srcdir)/shared/common/src/28_numeric_noabirule
+src_29_kpoints_fcflags = -I$(top_builddir)/shared/common/src/29_kpoints -I$(top_srcdir)/shared/common/src/29_kpoints
+src_32_util_fcflags = -I$(top_builddir)/shared/common/src/32_util -I$(top_srcdir)/shared/common/src/32_util
+src_33_xc_lowlevel_fcflags = -I$(top_builddir)/shared/common/src/33_xc_lowlevel -I$(top_srcdir)/shared/common/src/33_xc_lowlevel
+src_39_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/src -I$(top_srcdir)/shared/libpaw/src
+src_41_geometry_fcflags = -I$(top_builddir)/src/41_geometry -I$(top_srcdir)/src/41_geometry
+src_42_nlstrain_fcflags = -I$(top_builddir)/src/42_nlstrain -I$(top_srcdir)/src/42_nlstrain
+src_42_parser_fcflags = -I$(top_builddir)/src/42_parser -I$(top_srcdir)/src/42_parser
+src_43_ptgroups_fcflags = -I$(top_builddir)/src/43_ptgroups -I$(top_srcdir)/src/43_ptgroups
+src_43_wvl_wrappers_fcflags = -I$(top_builddir)/src/43_wvl_wrappers -I$(top_srcdir)/src/43_wvl_wrappers
+src_44_abitools_fcflags = -I$(top_builddir)/src/44_abitools -I$(top_srcdir)/src/44_abitools
+src_44_abitypes_defs_fcflags = -I$(top_builddir)/src/44_abitypes_defs -I$(top_srcdir)/src/44_abitypes_defs
+src_44_manage_kokkos_fcflags = -I$(top_builddir)/src/44_manage_kokkos -I$(top_srcdir)/src/44_manage_kokkos
+src_45_geomoptim_fcflags = -I$(top_builddir)/src/45_geomoptim -I$(top_srcdir)/src/45_geomoptim
+src_45_xgTools_fcflags = -I$(top_builddir)/src/45_xgTools -I$(top_srcdir)/src/45_xgTools
+src_46_ghc_omp_fcflags = -I$(top_builddir)/src/46_ghc_omp -I$(top_srcdir)/src/46_ghc_omp
+src_46_manage_cuda_fcflags = -I$(top_builddir)/src/46_manage_cuda -I$(top_srcdir)/src/46_manage_cuda
+src_48_diago_fcflags = -I$(top_builddir)/src/48_diago -I$(top_srcdir)/src/48_diago
+src_49_gw_toolbox_oop_fcflags = -I$(top_builddir)/src/49_gw_toolbox_oop -I$(top_srcdir)/src/49_gw_toolbox_oop
+src_51_manage_mpi_fcflags = -I$(top_builddir)/src/51_manage_mpi -I$(top_srcdir)/src/51_manage_mpi
+src_52_fft_mpi_noabirule_fcflags = -I$(top_builddir)/src/52_fft_mpi_noabirule -I$(top_srcdir)/src/52_fft_mpi_noabirule
+src_53_ffts_fcflags = -I$(top_builddir)/src/53_ffts -I$(top_srcdir)/src/53_ffts
+src_54_spacepar_fcflags = -I$(top_builddir)/src/54_spacepar -I$(top_srcdir)/src/54_spacepar
+src_55_abiutil_fcflags = -I$(top_builddir)/src/55_abiutil -I$(top_srcdir)/src/55_abiutil
+src_56_io_mpi_fcflags = -I$(top_builddir)/src/56_io_mpi -I$(top_srcdir)/src/56_io_mpi
+src_56_mixing_fcflags = -I$(top_builddir)/src/56_mixing -I$(top_srcdir)/src/56_mixing
+src_56_recipspace_fcflags = -I$(top_builddir)/src/56_recipspace -I$(top_srcdir)/src/56_recipspace
+src_56_xc_fcflags = -I$(top_builddir)/src/56_xc -I$(top_srcdir)/src/56_xc
+src_57_iopsp_parser_fcflags = -I$(top_builddir)/src/57_iopsp_parser -I$(top_srcdir)/src/57_iopsp_parser
+src_57_iovars_fcflags = -I$(top_builddir)/src/57_iovars -I$(top_srcdir)/src/57_iovars
+src_61_occeig_fcflags = -I$(top_builddir)/src/61_occeig -I$(top_srcdir)/src/61_occeig
+src_62_cg_noabirule_fcflags = -I$(top_builddir)/src/62_cg_noabirule -I$(top_srcdir)/src/62_cg_noabirule
+src_62_ctqmc_fcflags = -I$(top_builddir)/src/62_ctqmc -I$(top_srcdir)/src/62_ctqmc
+src_62_iowfdenpot_fcflags = -I$(top_builddir)/src/62_iowfdenpot -I$(top_srcdir)/src/62_iowfdenpot
+src_62_poisson_fcflags = -I$(top_builddir)/src/62_poisson -I$(top_srcdir)/src/62_poisson
+src_62_wvl_wfs_fcflags = -I$(top_builddir)/src/62_wvl_wfs -I$(top_srcdir)/src/62_wvl_wfs
+src_64_psp_fcflags = -I$(top_builddir)/src/64_psp -I$(top_srcdir)/src/64_psp
+src_65_lotf_base_fcflags = -I$(top_builddir)/src/65_lotf_base -I$(top_srcdir)/src/65_lotf_base
+src_65_paw_fcflags = -I$(top_builddir)/src/65_paw -I$(top_srcdir)/src/65_paw
+src_66_nonlocal_fcflags = -I$(top_builddir)/src/66_nonlocal -I$(top_srcdir)/src/66_nonlocal
+src_66_vdwxc_fcflags = -I$(top_builddir)/src/66_vdwxc -I$(top_srcdir)/src/66_vdwxc
+src_66_wfs_fcflags = -I$(top_builddir)/src/66_wfs -I$(top_srcdir)/src/66_wfs
+src_67_common_fcflags = -I$(top_builddir)/src/67_common -I$(top_srcdir)/src/67_common
+src_67_python_invocation_ext_fcflags = -I$(top_builddir)/src/67_python_invocation_ext -I$(top_srcdir)/src/67_python_invocation_ext
+src_67_triqs_ext_fcflags = -I$(top_builddir)/src/67_triqs_ext -I$(top_srcdir)/src/67_triqs_ext
+src_68_dmft_fcflags = -I$(top_builddir)/src/68_dmft -I$(top_srcdir)/src/68_dmft
+src_68_lotf_fcflags = -I$(top_builddir)/src/68_lotf -I$(top_srcdir)/src/68_lotf
+src_68_recursion_fcflags = -I$(top_builddir)/src/68_recursion -I$(top_srcdir)/src/68_recursion
+src_68_rsprc_fcflags = -I$(top_builddir)/src/68_rsprc -I$(top_srcdir)/src/68_rsprc
+src_69_wfdesc_fcflags = -I$(top_builddir)/src/69_wfdesc -I$(top_srcdir)/src/69_wfdesc
+src_70_gw_fcflags = -I$(top_builddir)/src/70_gw -I$(top_srcdir)/src/70_gw
+src_71_bse_fcflags = -I$(top_builddir)/src/71_bse -I$(top_srcdir)/src/71_bse
+src_71_wannier_fcflags = -I$(top_builddir)/src/71_wannier -I$(top_srcdir)/src/71_wannier
+src_72_response_fcflags = -I$(top_builddir)/src/72_response -I$(top_srcdir)/src/72_response
+src_77_ddb_fcflags = -I$(top_builddir)/src/77_ddb -I$(top_srcdir)/src/77_ddb
+src_77_suscep_fcflags = -I$(top_builddir)/src/77_suscep -I$(top_srcdir)/src/77_suscep
+src_78_effpot_fcflags = -I$(top_builddir)/src/78_effpot -I$(top_srcdir)/src/78_effpot
+src_78_eph_fcflags = -I$(top_builddir)/src/78_eph -I$(top_srcdir)/src/78_eph
+src_79_seqpar_mpi_fcflags = -I$(top_builddir)/src/79_seqpar_mpi -I$(top_srcdir)/src/79_seqpar_mpi
+src_80_rttddft_fcflags = -I$(top_builddir)/src/80_rttddft -I$(top_srcdir)/src/80_rttddft
+src_80_tdep_fcflags = -I$(top_builddir)/src/80_tdep -I$(top_srcdir)/src/80_tdep
+src_94_scfcv_fcflags = -I$(top_builddir)/src/94_scfcv -I$(top_srcdir)/src/94_scfcv
+src_95_drive_fcflags = -I$(top_builddir)/src/95_drive -I$(top_srcdir)/src/95_drive
+src_common_fcflags = -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods
+src_core_fcflags = -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods
+src_libpaw_fcflags = -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-apple-darwin18.7.0
+target_alias =
+target_cpu = x86_64
+target_os = darwin18.7.0
+target_vendor = apple
+top_build_prefix = ../../../../
+top_builddir = ../../../..
+top_srcdir = ../../../..
+with_abinit_common =
+with_bigdft =
+with_config_file =
+with_debug_flavor =
+with_fallbacks =
+with_fc_vendor =
+with_fc_version =
+with_fft_flavor = fftw3
+with_fftw3 =
+with_gnu_ld =
+with_gpu =
+with_hdf5 = /opt/local
+with_kokkos =
+with_levmar =
+with_libpaw =
+with_libpsml =
+with_libxc = /opt/local
+with_libxml2 =
+with_linalg_flavor = openblas
+with_mpi = /opt/local
+with_mpi_level =
+with_netcdf = /opt/local
+with_optim_flavor =
+with_papi =
+with_pfft =
+with_triqs =
+with_wannier90 =
+with_xmlf90 =
+with_yakl =
+AM_CFLAGS = -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = -ffree-form -J../mods
+AM_CPPFLAGS = \
+ -I$(top_builddir)/shared/common/src/10_defs -I$(top_srcdir)/shared/common/src/10_defs \
+ -I$(top_builddir)/shared/common/src/11_memory_mpi -I$(top_srcdir)/shared/common/src/11_memory_mpi \
+ -I$(top_builddir)/shared/common/src/14_hidewrite -I$(top_srcdir)/shared/common/src/14_hidewrite \
+ -I$(top_builddir)/shared/common/src/16_hideleave -I$(top_srcdir)/shared/common/src/16_hideleave \
+ -I$(top_builddir)/shared/common/src/17_yaml_out -I$(top_srcdir)/shared/common/src/17_yaml_out \
+ -I$(top_builddir)/shared/common/src/incs -I$(top_srcdir)/shared/common/src/incs -I$(top_builddir)/shared/common/src/mods -I$(top_srcdir)/shared/common/src/mods \
+ -I$(top_builddir)/src/incs -I$(top_srcdir)/src/incs -I$(top_builddir)/src/mods -I$(top_srcdir)/src/mods \
+ -I$(top_builddir)/shared/libpaw/incs -I$(top_srcdir)/shared/libpaw/incs -I$(top_builddir)/shared/libpaw/mods -I$(top_srcdir)/shared/libpaw/mods \
+
+
+
+# Regular source files
+lib17_yaml_out_srcs = \
+ c_pair_list.c \
+ m_type_pair_list.F90 \
+ m_pair_list.F90 \
+ m_stream_string.F90 \
+ m_yaml.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_yaml_out.a
+lib17_yaml_out_a_SOURCES = $(lib17_yaml_out_srcs)
+
+# Dependencies (inside the directory) of directory 17_yaml_out
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = c_pair_list_cpp.c m_type_pair_list_cpp.f90 \
+ m_pair_list_cpp.f90 m_stream_string_cpp.f90 m_yaml_cpp.f90 \
+ m_pair_list.$(MODEXT) m_stream_string.$(MODEXT) \
+ m_type_pair_list.$(MODEXT) m_yaml.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .c .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_yaml_out/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_yaml_out/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_yaml_out.a: $(lib17_yaml_out_a_OBJECTS) $(lib17_yaml_out_a_DEPENDENCIES) $(EXTRA_lib17_yaml_out_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_yaml_out.a
+ $(AM_V_AR)$(lib17_yaml_out_a_AR) lib17_yaml_out.a $(lib17_yaml_out_a_OBJECTS) $(lib17_yaml_out_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_yaml_out.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/c_pair_list.Po # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.o:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/c_pair_list.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/c_pair_list.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_pair_list.$(OBJEXT): m_type_pair_list.$(OBJEXT)
+
+m_yaml.$(OBJEXT): m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_yaml_out/Makefile.am b/GX-PAW/common/src/17_yaml_out/Makefile.am
new file mode 100644
index 00000000..3b206b4e
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/Makefile.am
@@ -0,0 +1,68 @@
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_yaml_out@
+
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_yaml_out_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @fc_mod_fcflags@
+
+# Regular source files
+lib17_yaml_out_srcs = \
+ c_pair_list.c \
+ m_type_pair_list.F90 \
+ m_pair_list.F90 \
+ m_stream_string.F90 \
+ m_yaml.F90
+
+# Source files depending on conditionals
+
+
+# Library description
+noinst_LIBRARIES = lib17_yaml_out.a
+
+lib17_yaml_out_a_SOURCES= $(lib17_yaml_out_srcs)
+
+CLEANFILES = \
+ c_pair_list_cpp.c \
+ m_type_pair_list_cpp.f90 \
+ m_pair_list_cpp.f90 \
+ m_stream_string_cpp.f90 \
+ m_yaml_cpp.f90
+
+EXTRA_DIST = abinit.src
+
+EXTRA_DIST += abinit.dep
+
+# Dependencies (inside the directory) of directory 17_yaml_out
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_pair_list.$(MODEXT) \
+ m_stream_string.$(MODEXT) \
+ m_type_pair_list.$(MODEXT) \
+ m_yaml.$(MODEXT)
+
+m_pair_list.$(OBJEXT): m_type_pair_list.$(OBJEXT)
+
+m_yaml.$(OBJEXT): m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_yaml_out/Makefile.in b/GX-PAW/common/src/17_yaml_out/Makefile.in
new file mode 100644
index 00000000..827d15ad
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/Makefile.in
@@ -0,0 +1,1509 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# Makefile for ABINIT -*- Automake -*-
+# Generated by make-makefiles-corelibs on 2024/03/16 21:07:38 +0000
+
+#
+# IMPORTANT NOTE
+#
+# Any manual change to this file will systematically be overwritten.
+# Please modify the make-makefiles-corelibs script or its config file instead.
+#
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = shared/common/src/17_yaml_out
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/m4/arch-gpu.m4 \
+ $(top_srcdir)/config/m4/arch-mpi.m4 \
+ $(top_srcdir)/config/m4/auto-autotools.m4 \
+ $(top_srcdir)/config/m4/auto-corelibs.m4 \
+ $(top_srcdir)/config/m4/auto-debug.m4 \
+ $(top_srcdir)/config/m4/auto-dirflags.m4 \
+ $(top_srcdir)/config/m4/auto-env.m4 \
+ $(top_srcdir)/config/m4/auto-hints.m4 \
+ $(top_srcdir)/config/m4/auto-optim.m4 \
+ $(top_srcdir)/config/m4/auto-options.m4 \
+ $(top_srcdir)/config/m4/auto-output.m4 \
+ $(top_srcdir)/config/m4/auto-triggers.m4 \
+ $(top_srcdir)/config/m4/conf-atompaw.m4 \
+ $(top_srcdir)/config/m4/conf-debug.m4 \
+ $(top_srcdir)/config/m4/conf-fallbacks.m4 \
+ $(top_srcdir)/config/m4/conf-files.m4 \
+ $(top_srcdir)/config/m4/conf-init.m4 \
+ $(top_srcdir)/config/m4/conf-openmp.m4 \
+ $(top_srcdir)/config/m4/conf-optim.m4 \
+ $(top_srcdir)/config/m4/lang-c++.m4 \
+ $(top_srcdir)/config/m4/lang-c.m4 \
+ $(top_srcdir)/config/m4/lang-fortran-import.m4 \
+ $(top_srcdir)/config/m4/lang-fortran.m4 \
+ $(top_srcdir)/config/m4/lang-python.m4 \
+ $(top_srcdir)/config/m4/libxml2.m4 \
+ $(top_srcdir)/config/m4/misc-display.m4 \
+ $(top_srcdir)/config/m4/sd_abinit_common.m4 \
+ $(top_srcdir)/config/m4/sd_arch_gpu.m4 \
+ $(top_srcdir)/config/m4/sd_arch_mpi.m4 \
+ $(top_srcdir)/config/m4/sd_bigdft.m4 \
+ $(top_srcdir)/config/m4/sd_core.m4 \
+ $(top_srcdir)/config/m4/sd_esl.m4 \
+ $(top_srcdir)/config/m4/sd_fftw3.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_kokkos.m4 \
+ $(top_srcdir)/config/m4/sd_gpu_yakl.m4 \
+ $(top_srcdir)/config/m4/sd_io_hdf5.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf.m4 \
+ $(top_srcdir)/config/m4/sd_io_netcdf_fortran.m4 \
+ $(top_srcdir)/config/m4/sd_levmar.m4 \
+ $(top_srcdir)/config/m4/sd_libpaw.m4 \
+ $(top_srcdir)/config/m4/sd_libpsml.m4 \
+ $(top_srcdir)/config/m4/sd_libxc.m4 \
+ $(top_srcdir)/config/m4/sd_math_fft.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_core.m4 \
+ $(top_srcdir)/config/m4/sd_math_linalg_util.m4 \
+ $(top_srcdir)/config/m4/sd_papi.m4 \
+ $(top_srcdir)/config/m4/sd_pfft.m4 \
+ $(top_srcdir)/config/m4/sd_triqs.m4 \
+ $(top_srcdir)/config/m4/sd_wannier90.m4 \
+ $(top_srcdir)/config/m4/sd_xmlf90.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+lib17_yaml_out_a_AR = $(AR) $(ARFLAGS)
+lib17_yaml_out_a_LIBADD =
+am__objects_1 = c_pair_list.$(OBJEXT) m_type_pair_list.$(OBJEXT) \
+ m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT) \
+ m_yaml.$(OBJEXT)
+am_lib17_yaml_out_a_OBJECTS = $(am__objects_1)
+lib17_yaml_out_a_OBJECTS = $(am_lib17_yaml_out_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/config/gnu/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/c_pair_list.Po
+am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(lib17_yaml_out_a_SOURCES)
+DIST_SOURCES = $(lib17_yaml_out_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/config/gnu/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABINIT_BINARY_PACKAGE = @ABINIT_BINARY_PACKAGE@
+ABINIT_COMMON_CPPFLAGS = @ABINIT_COMMON_CPPFLAGS@
+ABINIT_COMMON_FCFLAGS = @ABINIT_COMMON_FCFLAGS@
+ABINIT_COMMON_LDFLAGS = @ABINIT_COMMON_LDFLAGS@
+ABINIT_COMMON_LIBS = @ABINIT_COMMON_LIBS@
+ABINIT_TARGET = @ABINIT_TARGET@
+ABINIT_VERSION = @ABINIT_VERSION@
+ABINIT_VERSION_BASE = @ABINIT_VERSION_BASE@
+ABINIT_VERSION_BUILD = @ABINIT_VERSION_BUILD@
+ABINIT_VERSION_MAJOR = @ABINIT_VERSION_MAJOR@
+ABINIT_VERSION_MICRO = @ABINIT_VERSION_MICRO@
+ABINIT_VERSION_MINOR = @ABINIT_VERSION_MINOR@
+ABI_CPPFLAGS = @ABI_CPPFLAGS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+ARFLAGS_CMD = @ARFLAGS_CMD@
+ARFLAGS_DEBUG = @ARFLAGS_DEBUG@
+ARFLAGS_EXTRA = @ARFLAGS_EXTRA@
+ARFLAGS_HINTS = @ARFLAGS_HINTS@
+ARFLAGS_OPTIM = @ARFLAGS_OPTIM@
+ATOMPAW_BIN = @ATOMPAW_BIN@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BIGDFT_CPPFLAGS = @BIGDFT_CPPFLAGS@
+BIGDFT_FCFLAGS = @BIGDFT_FCFLAGS@
+BIGDFT_LDFLAGS = @BIGDFT_LDFLAGS@
+BIGDFT_LIBS = @BIGDFT_LIBS@
+BOURNE_SHELL = @BOURNE_SHELL@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_LDFLAGS = @CC_LDFLAGS@
+CC_LDFLAGS_DEBUG = @CC_LDFLAGS_DEBUG@
+CC_LDFLAGS_EXTRA = @CC_LDFLAGS_EXTRA@
+CC_LDFLAGS_GPU = @CC_LDFLAGS_GPU@
+CC_LDFLAGS_HINTS = @CC_LDFLAGS_HINTS@
+CC_LDFLAGS_OPTIM = @CC_LDFLAGS_OPTIM@
+CC_LIBS = @CC_LIBS@
+CC_LIBS_DEBUG = @CC_LIBS_DEBUG@
+CC_LIBS_EXTRA = @CC_LIBS_EXTRA@
+CC_LIBS_GPU = @CC_LIBS_GPU@
+CC_LIBS_HINTS = @CC_LIBS_HINTS@
+CC_LIBS_OPTIM = @CC_LIBS_OPTIM@
+CFLAGS = @CFLAGS@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_EXTRA = @CFLAGS_EXTRA@
+CFLAGS_GPU = @CFLAGS_GPU@
+CFLAGS_HINTS = @CFLAGS_HINTS@
+CFLAGS_OPTIM = @CFLAGS_OPTIM@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_DEBUG = @CPPFLAGS_DEBUG@
+CPPFLAGS_EXTRA = @CPPFLAGS_EXTRA@
+CPPFLAGS_GPU = @CPPFLAGS_GPU@
+CPPFLAGS_HINTS = @CPPFLAGS_HINTS@
+CPPFLAGS_HINTS_EXT = @CPPFLAGS_HINTS_EXT@
+CPPFLAGS_OPTIM = @CPPFLAGS_OPTIM@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_DEBUG = @CXXFLAGS_DEBUG@
+CXXFLAGS_EXTRA = @CXXFLAGS_EXTRA@
+CXXFLAGS_GPU = @CXXFLAGS_GPU@
+CXXFLAGS_HINTS = @CXXFLAGS_HINTS@
+CXXFLAGS_OPTIM = @CXXFLAGS_OPTIM@
+CXX_LDFLAGS = @CXX_LDFLAGS@
+CXX_LDFLAGS_DEBUG = @CXX_LDFLAGS_DEBUG@
+CXX_LDFLAGS_EXTRA = @CXX_LDFLAGS_EXTRA@
+CXX_LDFLAGS_GPU = @CXX_LDFLAGS_GPU@
+CXX_LDFLAGS_HINTS = @CXX_LDFLAGS_HINTS@
+CXX_LDFLAGS_OPTIM = @CXX_LDFLAGS_OPTIM@
+CXX_LIBS = @CXX_LIBS@
+CXX_LIBS_DEBUG = @CXX_LIBS_DEBUG@
+CXX_LIBS_EXTRA = @CXX_LIBS_EXTRA@
+CXX_LIBS_GPU = @CXX_LIBS_GPU@
+CXX_LIBS_HINTS = @CXX_LIBS_HINTS@
+CXX_LIBS_OPTIM = @CXX_LIBS_OPTIM@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCFLAGS_DEBUG = @FCFLAGS_DEBUG@
+FCFLAGS_EXTRA = @FCFLAGS_EXTRA@
+FCFLAGS_F90 = @FCFLAGS_F90@
+FCFLAGS_FIXEDFORM = @FCFLAGS_FIXEDFORM@
+FCFLAGS_FREEFORM = @FCFLAGS_FREEFORM@
+FCFLAGS_HINTS = @FCFLAGS_HINTS@
+FCFLAGS_MODDIR = @FCFLAGS_MODDIR@
+FCFLAGS_OPENMP = @FCFLAGS_OPENMP@
+FCFLAGS_OPENMP_OFFLOAD = @FCFLAGS_OPENMP_OFFLOAD@
+FCFLAGS_OPTIM = @FCFLAGS_OPTIM@
+FCLIBS = @FCLIBS@
+FC_LDFLAGS = @FC_LDFLAGS@
+FC_LDFLAGS_DEBUG = @FC_LDFLAGS_DEBUG@
+FC_LDFLAGS_EXTRA = @FC_LDFLAGS_EXTRA@
+FC_LDFLAGS_HINTS = @FC_LDFLAGS_HINTS@
+FC_LDFLAGS_OPTIM = @FC_LDFLAGS_OPTIM@
+FC_LIBS = @FC_LIBS@
+FC_LIBS_DEBUG = @FC_LIBS_DEBUG@
+FC_LIBS_EXTRA = @FC_LIBS_EXTRA@
+FC_LIBS_HINTS = @FC_LIBS_HINTS@
+FC_LIBS_OPTIM = @FC_LIBS_OPTIM@
+FC_NOWRAP = @FC_NOWRAP@
+FFLAGS = @FFLAGS@
+FFTW3_CFLAGS = @FFTW3_CFLAGS@
+FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@
+FFTW3_FCFLAGS = @FFTW3_FCFLAGS@
+FFTW3_LDFLAGS = @FFTW3_LDFLAGS@
+FFTW3_LIBS = @FFTW3_LIBS@
+FFT_CFLAGS = @FFT_CFLAGS@
+FFT_FCFLAGS = @FFT_FCFLAGS@
+FPP = @FPP@
+FPPFLAGS = @FPPFLAGS@
+FPPFLAGS_DEBUG = @FPPFLAGS_DEBUG@
+FPPFLAGS_EXTRA = @FPPFLAGS_EXTRA@
+FPPFLAGS_HINTS = @FPPFLAGS_HINTS@
+FPPFLAGS_OPTIM = @FPPFLAGS_OPTIM@
+GPU_ARCH = @GPU_ARCH@
+GPU_CFLAGS = @GPU_CFLAGS@
+GPU_CPPFLAGS = @GPU_CPPFLAGS@
+GPU_CXXFLAGS = @GPU_CXXFLAGS@
+GPU_FCFLAGS = @GPU_FCFLAGS@
+GPU_LDFLAGS = @GPU_LDFLAGS@
+GPU_LIBS = @GPU_LIBS@
+GRAPHATOM_BIN = @GRAPHATOM_BIN@
+GREP = @GREP@
+H5CC = @H5CC@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
+HDF5_CXXFLAGS = @HDF5_CXXFLAGS@
+HDF5_FCFLAGS = @HDF5_FCFLAGS@
+HDF5_LDFLAGS = @HDF5_LDFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KOKKOS_CPPFLAGS = @KOKKOS_CPPFLAGS@
+KOKKOS_CXXFLAGS = @KOKKOS_CXXFLAGS@
+KOKKOS_LDFLAGS = @KOKKOS_LDFLAGS@
+KOKKOS_LIBS = @KOKKOS_LIBS@
+LDFLAGS = @LDFLAGS@
+LEVMAR_CFLAGS = @LEVMAR_CFLAGS@
+LEVMAR_CPPFLAGS = @LEVMAR_CPPFLAGS@
+LEVMAR_LDFLAGS = @LEVMAR_LDFLAGS@
+LEVMAR_LIBS = @LEVMAR_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPAW_CPPFLAGS = @LIBPAW_CPPFLAGS@
+LIBPAW_FCFLAGS = @LIBPAW_FCFLAGS@
+LIBPAW_LDFLAGS = @LIBPAW_LDFLAGS@
+LIBPAW_LIBS = @LIBPAW_LIBS@
+LIBPSML_CPPFLAGS = @LIBPSML_CPPFLAGS@
+LIBPSML_FCFLAGS = @LIBPSML_FCFLAGS@
+LIBPSML_LDFLAGS = @LIBPSML_LDFLAGS@
+LIBPSML_LIBS = @LIBPSML_LIBS@
+LIBS = @LIBS@
+LIBXC_CFLAGS = @LIBXC_CFLAGS@
+LIBXC_CPPFLAGS = @LIBXC_CPPFLAGS@
+LIBXC_FCFLAGS = @LIBXC_FCFLAGS@
+LIBXC_LDFLAGS = @LIBXC_LDFLAGS@
+LIBXC_LIBS = @LIBXC_LIBS@
+LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+LIBXML2_FCFLAGS = @LIBXML2_FCFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LINALG_CFLAGS = @LINALG_CFLAGS@
+LINALG_CPPFLAGS = @LINALG_CPPFLAGS@
+LINALG_CXXFLAGS = @LINALG_CXXFLAGS@
+LINALG_FCFLAGS = @LINALG_FCFLAGS@
+LINALG_LDFLAGS = @LINALG_LDFLAGS@
+LINALG_LIBS = @LINALG_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MODEXT = @MODEXT@
+MPI_CFLAGS = @MPI_CFLAGS@
+MPI_CPPFLAGS = @MPI_CPPFLAGS@
+MPI_CXXFLAGS = @MPI_CXXFLAGS@
+MPI_FCFLAGS = @MPI_FCFLAGS@
+MPI_LDFLAGS = @MPI_LDFLAGS@
+MPI_LIBS = @MPI_LIBS@
+MV = @MV@
+NETCDF_CFLAGS = @NETCDF_CFLAGS@
+NETCDF_CPPFLAGS = @NETCDF_CPPFLAGS@
+NETCDF_CXXFLAGS = @NETCDF_CXXFLAGS@
+NETCDF_FCFLAGS = @NETCDF_FCFLAGS@
+NETCDF_FORTRAN_CFLAGS = @NETCDF_FORTRAN_CFLAGS@
+NETCDF_FORTRAN_CPPFLAGS = @NETCDF_FORTRAN_CPPFLAGS@
+NETCDF_FORTRAN_CXXFLAGS = @NETCDF_FORTRAN_CXXFLAGS@
+NETCDF_FORTRAN_FCFLAGS = @NETCDF_FORTRAN_FCFLAGS@
+NETCDF_FORTRAN_LDFLAGS = @NETCDF_FORTRAN_LDFLAGS@
+NETCDF_FORTRAN_LIBS = @NETCDF_FORTRAN_LIBS@
+NETCDF_LDFLAGS = @NETCDF_LDFLAGS@
+NETCDF_LIBS = @NETCDF_LIBS@
+NVCC = @NVCC@
+NVCC_CFLAGS = @NVCC_CFLAGS@
+NVCC_CPPFLAGS = @NVCC_CPPFLAGS@
+NVCC_LDFLAGS = @NVCC_LDFLAGS@
+NVCC_LIBS = @NVCC_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAPI_CFLAGS = @PAPI_CFLAGS@
+PAPI_CPPFLAGS = @PAPI_CPPFLAGS@
+PAPI_LDFLAGS = @PAPI_LDFLAGS@
+PAPI_LIBS = @PAPI_LIBS@
+PATCH = @PATCH@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PFFT_CFLAGS = @PFFT_CFLAGS@
+PFFT_CPPFLAGS = @PFFT_CPPFLAGS@
+PFFT_LDFLAGS = @PFFT_LDFLAGS@
+PFFT_LIBS = @PFFT_LIBS@
+PYFLAGS = @PYFLAGS@
+PYTHON = @PYTHON@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+RANLIB = @RANLIB@
+REALPATH = @REALPATH@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+TRIQS_CFLAGS = @TRIQS_CFLAGS@
+TRIQS_CPPFLAGS = @TRIQS_CPPFLAGS@
+TRIQS_CXXFLAGS = @TRIQS_CXXFLAGS@
+TRIQS_LDFLAGS = @TRIQS_LDFLAGS@
+TRIQS_LIBS = @TRIQS_LIBS@
+TRUE_CPP = @TRUE_CPP@
+VERSION = @VERSION@
+WANNIER90_CPPFLAGS = @WANNIER90_CPPFLAGS@
+WANNIER90_FCFLAGS = @WANNIER90_FCFLAGS@
+WANNIER90_LDFLAGS = @WANNIER90_LDFLAGS@
+WANNIER90_LIBS = @WANNIER90_LIBS@
+XML2_CONFIG = @XML2_CONFIG@
+XMLF90_CPPFLAGS = @XMLF90_CPPFLAGS@
+XMLF90_FCFLAGS = @XMLF90_FCFLAGS@
+XMLF90_LDFLAGS = @XMLF90_LDFLAGS@
+XMLF90_LIBS = @XMLF90_LIBS@
+XML_CPPFLAGS = @XML_CPPFLAGS@
+XML_LIBS = @XML_LIBS@
+XPP = @XPP@
+XPPFLAGS = @XPPFLAGS@
+XPPFLAGS_DEBUG = @XPPFLAGS_DEBUG@
+XPPFLAGS_EXTRA = @XPPFLAGS_EXTRA@
+XPPFLAGS_OPTIM = @XPPFLAGS_OPTIM@
+YAKL_CPPFLAGS = @YAKL_CPPFLAGS@
+YAKL_FCFLAGS = @YAKL_FCFLAGS@
+YAKL_LDFLAGS = @YAKL_LDFLAGS@
+YAKL_LIBS = @YAKL_LIBS@
+abi_ac_distcheck = @abi_ac_distcheck@
+abi_ac_version = @abi_ac_version@
+abi_am_version = @abi_am_version@
+abi_avx_safe_mode_enable = @abi_avx_safe_mode_enable@
+abi_bse_unpacked_enable = @abi_bse_unpacked_enable@
+abi_cc_path = @abi_cc_path@
+abi_cc_vendor = @abi_cc_vendor@
+abi_cc_version = @abi_cc_version@
+abi_cclock_enable = @abi_cclock_enable@
+abi_cpp_path = @abi_cpp_path@
+abi_cpu_64bits = @abi_cpu_64bits@
+abi_cpu_bits = @abi_cpu_bits@
+abi_cpu_model = @abi_cpu_model@
+abi_cpu_platform = @abi_cpu_platform@
+abi_cpu_spec = @abi_cpu_spec@
+abi_cpu_vendor = @abi_cpu_vendor@
+abi_crpa_optim_enable = @abi_crpa_optim_enable@
+abi_cxx_path = @abi_cxx_path@
+abi_cxx_vendor = @abi_cxx_vendor@
+abi_cxx_version = @abi_cxx_version@
+abi_debug_flavor = @abi_debug_flavor@
+abi_exports_enable = @abi_exports_enable@
+abi_fbk_abinit_common_ok = @abi_fbk_abinit_common_ok@
+abi_fbk_bigdft_ok = @abi_fbk_bigdft_ok@
+abi_fbk_config = @abi_fbk_config@
+abi_fbk_enable = @abi_fbk_enable@
+abi_fbk_fft_ok = @abi_fbk_fft_ok@
+abi_fbk_fftw3_ok = @abi_fbk_fftw3_ok@
+abi_fbk_gpu_ok = @abi_fbk_gpu_ok@
+abi_fbk_hdf5_ok = @abi_fbk_hdf5_ok@
+abi_fbk_init = @abi_fbk_init@
+abi_fbk_kokkos_ok = @abi_fbk_kokkos_ok@
+abi_fbk_levmar_ok = @abi_fbk_levmar_ok@
+abi_fbk_libpaw_ok = @abi_fbk_libpaw_ok@
+abi_fbk_libpsml_ok = @abi_fbk_libpsml_ok@
+abi_fbk_libxc_ok = @abi_fbk_libxc_ok@
+abi_fbk_libxml2_ok = @abi_fbk_libxml2_ok@
+abi_fbk_linalg_ok = @abi_fbk_linalg_ok@
+abi_fbk_list = @abi_fbk_list@
+abi_fbk_mpi_ok = @abi_fbk_mpi_ok@
+abi_fbk_netcdf_fortran_ok = @abi_fbk_netcdf_fortran_ok@
+abi_fbk_netcdf_ok = @abi_fbk_netcdf_ok@
+abi_fbk_papi_ok = @abi_fbk_papi_ok@
+abi_fbk_pfft_ok = @abi_fbk_pfft_ok@
+abi_fbk_prefix = @abi_fbk_prefix@
+abi_fbk_required = @abi_fbk_required@
+abi_fbk_triqs_ok = @abi_fbk_triqs_ok@
+abi_fbk_wannier90_ok = @abi_fbk_wannier90_ok@
+abi_fbk_xmlf90_ok = @abi_fbk_xmlf90_ok@
+abi_fbk_yakl_ok = @abi_fbk_yakl_ok@
+abi_fc_path = @abi_fc_path@
+abi_fc_vendor = @abi_fc_vendor@
+abi_fc_version = @abi_fc_version@
+abi_fc_wrap = @abi_fc_wrap@
+abi_fc_wrapper_enable = @abi_fc_wrapper_enable@
+abi_fpp_path = @abi_fpp_path@
+abi_gpu_arch = @abi_gpu_arch@
+abi_gpu_fcflags = @abi_gpu_fcflags@
+abi_gpu_flavor = @abi_gpu_flavor@
+abi_gpu_hip_libdir = @abi_gpu_hip_libdir@
+abi_gpu_incs = @abi_gpu_incs@
+abi_gpu_ldflags = @abi_gpu_ldflags@
+abi_gpu_libs = @abi_gpu_libs@
+abi_gpu_nvtx_v3 = @abi_gpu_nvtx_v3@
+abi_gpu_roctx = @abi_gpu_roctx@
+abi_gw_dpc_enable = @abi_gw_dpc_enable@
+abi_hints_enable = @abi_hints_enable@
+abi_libtetra_enable = @abi_libtetra_enable@
+abi_libxml2_cppflags = @abi_libxml2_cppflags@
+abi_libxml2_enable = @abi_libxml2_enable@
+abi_libxml2_fcflags = @abi_libxml2_fcflags@
+abi_libxml2_init = @abi_libxml2_init@
+abi_libxml2_ldflags = @abi_libxml2_ldflags@
+abi_libxml2_libs = @abi_libxml2_libs@
+abi_libxml2_ok = @abi_libxml2_ok@
+abi_libxml2_prefix = @abi_libxml2_prefix@
+abi_lotf_enable = @abi_lotf_enable@
+abi_lt_version = @abi_lt_version@
+abi_m4_version = @abi_m4_version@
+abi_memory_profiling_enable = @abi_memory_profiling_enable@
+abi_mpi_cflags = @abi_mpi_cflags@
+abi_mpi_cppflags = @abi_mpi_cppflags@
+abi_mpi_cxxflags = @abi_mpi_cxxflags@
+abi_mpi_enable = @abi_mpi_enable@
+abi_mpi_fcflags = @abi_mpi_fcflags@
+abi_mpi_flavor = @abi_mpi_flavor@
+abi_mpi_gpu_aware_enable = @abi_mpi_gpu_aware_enable@
+abi_mpi_incs = @abi_mpi_incs@
+abi_mpi_inplace_enable = @abi_mpi_inplace_enable@
+abi_mpi_interfaces_bugfix_enable = @abi_mpi_interfaces_bugfix_enable@
+abi_mpi_io_default_enable = @abi_mpi_io_default_enable@
+abi_mpi_io_enable = @abi_mpi_io_enable@
+abi_mpi_ldflags = @abi_mpi_ldflags@
+abi_mpi_level = @abi_mpi_level@
+abi_mpi_libs = @abi_mpi_libs@
+abi_netcdf_default_enable = @abi_netcdf_default_enable@
+abi_openmp_enable = @abi_openmp_enable@
+abi_openmp_offload_enable = @abi_openmp_offload_enable@
+abi_optim_flavor = @abi_optim_flavor@
+abi_python_invocation_enable = @abi_python_invocation_enable@
+abi_source_debug_enable = @abi_source_debug_enable@
+abi_stdin_enable = @abi_stdin_enable@
+abi_sys_spec = @abi_sys_spec@
+abi_timer_enable = @abi_timer_enable@
+abi_triqs_v1_4_enable = @abi_triqs_v1_4_enable@
+abi_triqs_v2_0_enable = @abi_triqs_v2_0_enable@
+abi_zdot_bugfix_enable = @abi_zdot_bugfix_enable@
+abinit_bindir = @abinit_bindir@
+abinit_builddir = @abinit_builddir@
+abinit_chkdir = @abinit_chkdir@
+abinit_datdir = @abinit_datdir@
+abinit_docdir = @abinit_docdir@
+abinit_incdir = @abinit_incdir@
+abinit_libdir = @abinit_libdir@
+abinit_mandir = @abinit_mandir@
+abinit_prefix = @abinit_prefix@
+abinit_srcdir = @abinit_srcdir@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cc_info_string = @cc_info_string@
+cxx_info_string = @cxx_info_string@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_avx_safe_mode = @enable_avx_safe_mode@
+enable_bse_unpacked = @enable_bse_unpacked@
+enable_cclock = @enable_cclock@
+enable_crpa_optim = @enable_crpa_optim@
+enable_exports = @enable_exports@
+enable_fc_wrapper = @enable_fc_wrapper@
+enable_gw_dpc = @enable_gw_dpc@
+enable_hints = @enable_hints@
+enable_libtetra = @enable_libtetra@
+enable_lotf = @enable_lotf@
+enable_memory_profiling = @enable_memory_profiling@
+enable_mpi_gpu_aware = @enable_mpi_gpu_aware@
+enable_mpi_inplace = @enable_mpi_inplace@
+enable_mpi_interfaces_bugfix = @enable_mpi_interfaces_bugfix@
+enable_mpi_io = @enable_mpi_io@
+enable_mpi_io_default = @enable_mpi_io_default@
+enable_netcdf_default = @enable_netcdf_default@
+enable_openmp = @enable_openmp@
+enable_openmp_offload = @enable_openmp_offload@
+enable_python_invocation = @enable_python_invocation@
+enable_shared = @enable_shared@
+enable_source_debug = @enable_source_debug@
+enable_static = @enable_static@
+enable_stdin = @enable_stdin@
+enable_timer = @enable_timer@
+enable_triqs_v1_4 = @enable_triqs_v1_4@
+enable_triqs_v2_0 = @enable_triqs_v2_0@
+enable_zdot_bugfix = @enable_zdot_bugfix@
+exec_prefix = @exec_prefix@
+fc_info_string = @fc_info_string@
+fc_mod_fcflags = @fc_mod_fcflags@
+fc_timing = @fc_timing@
+fcflags_opt_02_clib = @fcflags_opt_02_clib@
+fcflags_opt_10_defs = @fcflags_opt_10_defs@
+fcflags_opt_11_memory_mpi = @fcflags_opt_11_memory_mpi@
+fcflags_opt_12_hide_mpi = @fcflags_opt_12_hide_mpi@
+fcflags_opt_14_hidewrite = @fcflags_opt_14_hidewrite@
+fcflags_opt_16_hideleave = @fcflags_opt_16_hideleave@
+fcflags_opt_16_kokkos_toolbox = @fcflags_opt_16_kokkos_toolbox@
+fcflags_opt_17_gpu_toolbox = @fcflags_opt_17_gpu_toolbox@
+fcflags_opt_17_libtetra_ext = @fcflags_opt_17_libtetra_ext@
+fcflags_opt_17_minimax = @fcflags_opt_17_minimax@
+fcflags_opt_17_yaml_out = @fcflags_opt_17_yaml_out@
+fcflags_opt_18_timing = @fcflags_opt_18_timing@
+fcflags_opt_21_hashfuncs = @fcflags_opt_21_hashfuncs@
+fcflags_opt_27_toolbox_oop = @fcflags_opt_27_toolbox_oop@
+fcflags_opt_28_numeric_noabirule = @fcflags_opt_28_numeric_noabirule@
+fcflags_opt_29_kpoints = @fcflags_opt_29_kpoints@
+fcflags_opt_32_util = @fcflags_opt_32_util@
+fcflags_opt_33_xc_lowlevel = @fcflags_opt_33_xc_lowlevel@
+fcflags_opt_39_libpaw = @fcflags_opt_39_libpaw@
+fcflags_opt_41_geometry = @fcflags_opt_41_geometry@
+fcflags_opt_42_nlstrain = @fcflags_opt_42_nlstrain@
+fcflags_opt_42_parser = @fcflags_opt_42_parser@
+fcflags_opt_43_ptgroups = @fcflags_opt_43_ptgroups@
+fcflags_opt_43_wvl_wrappers = @fcflags_opt_43_wvl_wrappers@
+fcflags_opt_44_abitools = @fcflags_opt_44_abitools@
+fcflags_opt_44_abitypes_defs = @fcflags_opt_44_abitypes_defs@
+fcflags_opt_44_manage_kokkos = @fcflags_opt_44_manage_kokkos@
+fcflags_opt_45_geomoptim = @fcflags_opt_45_geomoptim@
+fcflags_opt_45_xgTools = @fcflags_opt_45_xgTools@
+fcflags_opt_46_ghc_omp = @fcflags_opt_46_ghc_omp@
+fcflags_opt_46_manage_cuda = @fcflags_opt_46_manage_cuda@
+fcflags_opt_48_diago = @fcflags_opt_48_diago@
+fcflags_opt_49_gw_toolbox_oop = @fcflags_opt_49_gw_toolbox_oop@
+fcflags_opt_51_manage_mpi = @fcflags_opt_51_manage_mpi@
+fcflags_opt_52_fft_mpi_noabirule = @fcflags_opt_52_fft_mpi_noabirule@
+fcflags_opt_53_ffts = @fcflags_opt_53_ffts@
+fcflags_opt_54_spacepar = @fcflags_opt_54_spacepar@
+fcflags_opt_55_abiutil = @fcflags_opt_55_abiutil@
+fcflags_opt_56_io_mpi = @fcflags_opt_56_io_mpi@
+fcflags_opt_56_mixing = @fcflags_opt_56_mixing@
+fcflags_opt_56_recipspace = @fcflags_opt_56_recipspace@
+fcflags_opt_56_xc = @fcflags_opt_56_xc@
+fcflags_opt_57_iopsp_parser = @fcflags_opt_57_iopsp_parser@
+fcflags_opt_57_iovars = @fcflags_opt_57_iovars@
+fcflags_opt_61_occeig = @fcflags_opt_61_occeig@
+fcflags_opt_62_cg_noabirule = @fcflags_opt_62_cg_noabirule@
+fcflags_opt_62_ctqmc = @fcflags_opt_62_ctqmc@
+fcflags_opt_62_iowfdenpot = @fcflags_opt_62_iowfdenpot@
+fcflags_opt_62_poisson = @fcflags_opt_62_poisson@
+fcflags_opt_62_wvl_wfs = @fcflags_opt_62_wvl_wfs@
+fcflags_opt_64_psp = @fcflags_opt_64_psp@
+fcflags_opt_65_lotf_base = @fcflags_opt_65_lotf_base@
+fcflags_opt_65_paw = @fcflags_opt_65_paw@
+fcflags_opt_66_nonlocal = @fcflags_opt_66_nonlocal@
+fcflags_opt_66_vdwxc = @fcflags_opt_66_vdwxc@
+fcflags_opt_66_wfs = @fcflags_opt_66_wfs@
+fcflags_opt_67_common = @fcflags_opt_67_common@
+fcflags_opt_67_python_invocation_ext = @fcflags_opt_67_python_invocation_ext@
+fcflags_opt_67_triqs_ext = @fcflags_opt_67_triqs_ext@
+fcflags_opt_68_dmft = @fcflags_opt_68_dmft@
+fcflags_opt_68_lotf = @fcflags_opt_68_lotf@
+fcflags_opt_68_recursion = @fcflags_opt_68_recursion@
+fcflags_opt_68_rsprc = @fcflags_opt_68_rsprc@
+fcflags_opt_69_wfdesc = @fcflags_opt_69_wfdesc@
+fcflags_opt_70_gw = @fcflags_opt_70_gw@
+fcflags_opt_71_bse = @fcflags_opt_71_bse@
+fcflags_opt_71_wannier = @fcflags_opt_71_wannier@
+fcflags_opt_72_response = @fcflags_opt_72_response@
+fcflags_opt_77_ddb = @fcflags_opt_77_ddb@
+fcflags_opt_77_suscep = @fcflags_opt_77_suscep@
+fcflags_opt_78_effpot = @fcflags_opt_78_effpot@
+fcflags_opt_78_eph = @fcflags_opt_78_eph@
+fcflags_opt_79_seqpar_mpi = @fcflags_opt_79_seqpar_mpi@
+fcflags_opt_80_rttddft = @fcflags_opt_80_rttddft@
+fcflags_opt_80_tdep = @fcflags_opt_80_tdep@
+fcflags_opt_94_scfcv = @fcflags_opt_94_scfcv@
+fcflags_opt_95_drive = @fcflags_opt_95_drive@
+fcflags_opt_98_main = @fcflags_opt_98_main@
+fcflags_opt_bigdft = @fcflags_opt_bigdft@
+fcflags_opt_default = @fcflags_opt_default@
+fcflags_opt_hdf5 = @fcflags_opt_hdf5@
+fcflags_opt_levmar = @fcflags_opt_levmar@
+fcflags_opt_libpsml = @fcflags_opt_libpsml@
+fcflags_opt_libxc = @fcflags_opt_libxc@
+fcflags_opt_libxml2 = @fcflags_opt_libxml2@
+fcflags_opt_linalg = @fcflags_opt_linalg@
+fcflags_opt_netcdf = @fcflags_opt_netcdf@
+fcflags_opt_netcdf_fortran = @fcflags_opt_netcdf_fortran@
+fcflags_opt_papi = @fcflags_opt_papi@
+fcflags_opt_triqs = @fcflags_opt_triqs@
+fcflags_opt_wannier90 = @fcflags_opt_wannier90@
+fcflags_opt_xmlf90 = @fcflags_opt_xmlf90@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sd_abinit_common_cppflags = @sd_abinit_common_cppflags@
+sd_abinit_common_enable = @sd_abinit_common_enable@
+sd_abinit_common_enable_def = @sd_abinit_common_enable_def@
+sd_abinit_common_fcflags = @sd_abinit_common_fcflags@
+sd_abinit_common_init = @sd_abinit_common_init@
+sd_abinit_common_ldflags = @sd_abinit_common_ldflags@
+sd_abinit_common_libs = @sd_abinit_common_libs@
+sd_abinit_common_ok = @sd_abinit_common_ok@
+sd_abinit_common_options = @sd_abinit_common_options@
+sd_abinit_common_policy = @sd_abinit_common_policy@
+sd_abinit_common_status = @sd_abinit_common_status@
+sd_bigdft_cppflags = @sd_bigdft_cppflags@
+sd_bigdft_enable = @sd_bigdft_enable@
+sd_bigdft_enable_def = @sd_bigdft_enable_def@
+sd_bigdft_fcflags = @sd_bigdft_fcflags@
+sd_bigdft_init = @sd_bigdft_init@
+sd_bigdft_ldflags = @sd_bigdft_ldflags@
+sd_bigdft_libs = @sd_bigdft_libs@
+sd_bigdft_ok = @sd_bigdft_ok@
+sd_bigdft_options = @sd_bigdft_options@
+sd_bigdft_policy = @sd_bigdft_policy@
+sd_bigdft_status = @sd_bigdft_status@
+sd_fft_cflags = @sd_fft_cflags@
+sd_fft_choices = @sd_fft_choices@
+sd_fft_cppflags = @sd_fft_cppflags@
+sd_fft_cxxflags = @sd_fft_cxxflags@
+sd_fft_enable = @sd_fft_enable@
+sd_fft_fcflags = @sd_fft_fcflags@
+sd_fft_flavor = @sd_fft_flavor@
+sd_fft_init = @sd_fft_init@
+sd_fft_ldflags = @sd_fft_ldflags@
+sd_fft_libs = @sd_fft_libs@
+sd_fft_ok = @sd_fft_ok@
+sd_fftw3_cflags = @sd_fftw3_cflags@
+sd_fftw3_cppflags = @sd_fftw3_cppflags@
+sd_fftw3_enable = @sd_fftw3_enable@
+sd_fftw3_enable_def = @sd_fftw3_enable_def@
+sd_fftw3_fcflags = @sd_fftw3_fcflags@
+sd_fftw3_init = @sd_fftw3_init@
+sd_fftw3_ldflags = @sd_fftw3_ldflags@
+sd_fftw3_libs = @sd_fftw3_libs@
+sd_fftw3_ok = @sd_fftw3_ok@
+sd_fftw3_options = @sd_fftw3_options@
+sd_fftw3_policy = @sd_fftw3_policy@
+sd_fftw3_status = @sd_fftw3_status@
+sd_gpu_cflags = @sd_gpu_cflags@
+sd_gpu_cppflags = @sd_gpu_cppflags@
+sd_gpu_cxxflags = @sd_gpu_cxxflags@
+sd_gpu_enable = @sd_gpu_enable@
+sd_gpu_enable_def = @sd_gpu_enable_def@
+sd_gpu_fcflags = @sd_gpu_fcflags@
+sd_gpu_init = @sd_gpu_init@
+sd_gpu_ldflags = @sd_gpu_ldflags@
+sd_gpu_libs = @sd_gpu_libs@
+sd_gpu_ok = @sd_gpu_ok@
+sd_gpu_options = @sd_gpu_options@
+sd_gpu_policy = @sd_gpu_policy@
+sd_gpu_prefix = @sd_gpu_prefix@
+sd_gpu_status = @sd_gpu_status@
+sd_hdf5_cflags = @sd_hdf5_cflags@
+sd_hdf5_cppflags = @sd_hdf5_cppflags@
+sd_hdf5_cxxflags = @sd_hdf5_cxxflags@
+sd_hdf5_enable = @sd_hdf5_enable@
+sd_hdf5_enable_def = @sd_hdf5_enable_def@
+sd_hdf5_enable_fc = @sd_hdf5_enable_fc@
+sd_hdf5_fcflags = @sd_hdf5_fcflags@
+sd_hdf5_h5cc = @sd_hdf5_h5cc@
+sd_hdf5_h5fc = @sd_hdf5_h5fc@
+sd_hdf5_init = @sd_hdf5_init@
+sd_hdf5_ldflags = @sd_hdf5_ldflags@
+sd_hdf5_libs = @sd_hdf5_libs@
+sd_hdf5_ok = @sd_hdf5_ok@
+sd_hdf5_options = @sd_hdf5_options@
+sd_hdf5_policy = @sd_hdf5_policy@
+sd_hdf5_status = @sd_hdf5_status@
+sd_kokkos_cppflags = @sd_kokkos_cppflags@
+sd_kokkos_cxxflags = @sd_kokkos_cxxflags@
+sd_kokkos_enable = @sd_kokkos_enable@
+sd_kokkos_enable_def = @sd_kokkos_enable_def@
+sd_kokkos_init = @sd_kokkos_init@
+sd_kokkos_ldflags = @sd_kokkos_ldflags@
+sd_kokkos_libs = @sd_kokkos_libs@
+sd_kokkos_ok = @sd_kokkos_ok@
+sd_kokkos_options = @sd_kokkos_options@
+sd_kokkos_policy = @sd_kokkos_policy@
+sd_kokkos_status = @sd_kokkos_status@
+sd_levmar_cflags = @sd_levmar_cflags@
+sd_levmar_cppflags = @sd_levmar_cppflags@
+sd_levmar_enable = @sd_levmar_enable@
+sd_levmar_enable_def = @sd_levmar_enable_def@
+sd_levmar_init = @sd_levmar_init@
+sd_levmar_ldflags = @sd_levmar_ldflags@
+sd_levmar_libs = @sd_levmar_libs@
+sd_levmar_ok = @sd_levmar_ok@
+sd_levmar_options = @sd_levmar_options@
+sd_levmar_policy = @sd_levmar_policy@
+sd_levmar_status = @sd_levmar_status@
+sd_libpaw_cppflags = @sd_libpaw_cppflags@
+sd_libpaw_enable = @sd_libpaw_enable@
+sd_libpaw_enable_def = @sd_libpaw_enable_def@
+sd_libpaw_fcflags = @sd_libpaw_fcflags@
+sd_libpaw_init = @sd_libpaw_init@
+sd_libpaw_ldflags = @sd_libpaw_ldflags@
+sd_libpaw_libs = @sd_libpaw_libs@
+sd_libpaw_ok = @sd_libpaw_ok@
+sd_libpaw_options = @sd_libpaw_options@
+sd_libpaw_policy = @sd_libpaw_policy@
+sd_libpaw_status = @sd_libpaw_status@
+sd_libpsml_cppflags = @sd_libpsml_cppflags@
+sd_libpsml_enable = @sd_libpsml_enable@
+sd_libpsml_enable_def = @sd_libpsml_enable_def@
+sd_libpsml_fcflags = @sd_libpsml_fcflags@
+sd_libpsml_init = @sd_libpsml_init@
+sd_libpsml_ldflags = @sd_libpsml_ldflags@
+sd_libpsml_libs = @sd_libpsml_libs@
+sd_libpsml_ok = @sd_libpsml_ok@
+sd_libpsml_options = @sd_libpsml_options@
+sd_libpsml_policy = @sd_libpsml_policy@
+sd_libpsml_status = @sd_libpsml_status@
+sd_libxc_cflags = @sd_libxc_cflags@
+sd_libxc_cppflags = @sd_libxc_cppflags@
+sd_libxc_enable = @sd_libxc_enable@
+sd_libxc_enable_def = @sd_libxc_enable_def@
+sd_libxc_enable_fc = @sd_libxc_enable_fc@
+sd_libxc_fcflags = @sd_libxc_fcflags@
+sd_libxc_init = @sd_libxc_init@
+sd_libxc_ldflags = @sd_libxc_ldflags@
+sd_libxc_libs = @sd_libxc_libs@
+sd_libxc_ok = @sd_libxc_ok@
+sd_libxc_options = @sd_libxc_options@
+sd_libxc_policy = @sd_libxc_policy@
+sd_libxc_status = @sd_libxc_status@
+sd_linalg_cflags = @sd_linalg_cflags@
+sd_linalg_choices = @sd_linalg_choices@
+sd_linalg_cppflags = @sd_linalg_cppflags@
+sd_linalg_cxxflags = @sd_linalg_cxxflags@
+sd_linalg_enable = @sd_linalg_enable@
+sd_linalg_fcflags = @sd_linalg_fcflags@
+sd_linalg_flavor = @sd_linalg_flavor@
+sd_linalg_has_elpa = @sd_linalg_has_elpa@
+sd_linalg_has_scalapack = @sd_linalg_has_scalapack@
+sd_linalg_init = @sd_linalg_init@
+sd_linalg_ldflags = @sd_linalg_ldflags@
+sd_linalg_libs = @sd_linalg_libs@
+sd_linalg_ok = @sd_linalg_ok@
+sd_mpi_cc = @sd_mpi_cc@
+sd_mpi_cflags = @sd_mpi_cflags@
+sd_mpi_cppflags = @sd_mpi_cppflags@
+sd_mpi_cxx = @sd_mpi_cxx@
+sd_mpi_enable = @sd_mpi_enable@
+sd_mpi_enable_cxx = @sd_mpi_enable_cxx@
+sd_mpi_enable_def = @sd_mpi_enable_def@
+sd_mpi_enable_fc = @sd_mpi_enable_fc@
+sd_mpi_fc = @sd_mpi_fc@
+sd_mpi_fcflags = @sd_mpi_fcflags@
+sd_mpi_init = @sd_mpi_init@
+sd_mpi_ldflags = @sd_mpi_ldflags@
+sd_mpi_libs = @sd_mpi_libs@
+sd_mpi_ok = @sd_mpi_ok@
+sd_mpi_options = @sd_mpi_options@
+sd_mpi_policy = @sd_mpi_policy@
+sd_mpi_status = @sd_mpi_status@
+sd_netcdf_cflags = @sd_netcdf_cflags@
+sd_netcdf_cppflags = @sd_netcdf_cppflags@
+sd_netcdf_enable = @sd_netcdf_enable@
+sd_netcdf_enable_def = @sd_netcdf_enable_def@
+sd_netcdf_fcflags = @sd_netcdf_fcflags@
+sd_netcdf_fortran_cflags = @sd_netcdf_fortran_cflags@
+sd_netcdf_fortran_cppflags = @sd_netcdf_fortran_cppflags@
+sd_netcdf_fortran_enable = @sd_netcdf_fortran_enable@
+sd_netcdf_fortran_enable_def = @sd_netcdf_fortran_enable_def@
+sd_netcdf_fortran_fcflags = @sd_netcdf_fortran_fcflags@
+sd_netcdf_fortran_init = @sd_netcdf_fortran_init@
+sd_netcdf_fortran_ldflags = @sd_netcdf_fortran_ldflags@
+sd_netcdf_fortran_libs = @sd_netcdf_fortran_libs@
+sd_netcdf_fortran_ok = @sd_netcdf_fortran_ok@
+sd_netcdf_fortran_options = @sd_netcdf_fortran_options@
+sd_netcdf_fortran_policy = @sd_netcdf_fortran_policy@
+sd_netcdf_fortran_status = @sd_netcdf_fortran_status@
+sd_netcdf_init = @sd_netcdf_init@
+sd_netcdf_ldflags = @sd_netcdf_ldflags@
+sd_netcdf_libs = @sd_netcdf_libs@
+sd_netcdf_ok = @sd_netcdf_ok@
+sd_netcdf_options = @sd_netcdf_options@
+sd_netcdf_policy = @sd_netcdf_policy@
+sd_netcdf_status = @sd_netcdf_status@
+sd_papi_cflags = @sd_papi_cflags@
+sd_papi_cppflags = @sd_papi_cppflags@
+sd_papi_enable = @sd_papi_enable@
+sd_papi_enable_def = @sd_papi_enable_def@
+sd_papi_init = @sd_papi_init@
+sd_papi_ldflags = @sd_papi_ldflags@
+sd_papi_libs = @sd_papi_libs@
+sd_papi_ok = @sd_papi_ok@
+sd_papi_options = @sd_papi_options@
+sd_papi_policy = @sd_papi_policy@
+sd_papi_sd_papi_fcflags = @sd_papi_sd_papi_fcflags@
+sd_papi_status = @sd_papi_status@
+sd_pfft_cflags = @sd_pfft_cflags@
+sd_pfft_cppflags = @sd_pfft_cppflags@
+sd_pfft_enable = @sd_pfft_enable@
+sd_pfft_enable_def = @sd_pfft_enable_def@
+sd_pfft_init = @sd_pfft_init@
+sd_pfft_ldflags = @sd_pfft_ldflags@
+sd_pfft_libs = @sd_pfft_libs@
+sd_pfft_ok = @sd_pfft_ok@
+sd_pfft_options = @sd_pfft_options@
+sd_pfft_policy = @sd_pfft_policy@
+sd_pfft_status = @sd_pfft_status@
+sd_sys_fcflags = @sd_sys_fcflags@
+sd_triqs_cflags = @sd_triqs_cflags@
+sd_triqs_cppflags = @sd_triqs_cppflags@
+sd_triqs_cxxflags = @sd_triqs_cxxflags@
+sd_triqs_enable = @sd_triqs_enable@
+sd_triqs_enable_def = @sd_triqs_enable_def@
+sd_triqs_fcflags = @sd_triqs_fcflags@
+sd_triqs_init = @sd_triqs_init@
+sd_triqs_ldflags = @sd_triqs_ldflags@
+sd_triqs_libs = @sd_triqs_libs@
+sd_triqs_ok = @sd_triqs_ok@
+sd_triqs_options = @sd_triqs_options@
+sd_triqs_policy = @sd_triqs_policy@
+sd_triqs_status = @sd_triqs_status@
+sd_wannier90_cppflags = @sd_wannier90_cppflags@
+sd_wannier90_enable = @sd_wannier90_enable@
+sd_wannier90_enable_def = @sd_wannier90_enable_def@
+sd_wannier90_fcflags = @sd_wannier90_fcflags@
+sd_wannier90_init = @sd_wannier90_init@
+sd_wannier90_ldflags = @sd_wannier90_ldflags@
+sd_wannier90_libs = @sd_wannier90_libs@
+sd_wannier90_ok = @sd_wannier90_ok@
+sd_wannier90_options = @sd_wannier90_options@
+sd_wannier90_policy = @sd_wannier90_policy@
+sd_wannier90_status = @sd_wannier90_status@
+sd_xmlf90_cppflags = @sd_xmlf90_cppflags@
+sd_xmlf90_enable = @sd_xmlf90_enable@
+sd_xmlf90_enable_def = @sd_xmlf90_enable_def@
+sd_xmlf90_fcflags = @sd_xmlf90_fcflags@
+sd_xmlf90_init = @sd_xmlf90_init@
+sd_xmlf90_ldflags = @sd_xmlf90_ldflags@
+sd_xmlf90_libs = @sd_xmlf90_libs@
+sd_xmlf90_ok = @sd_xmlf90_ok@
+sd_xmlf90_options = @sd_xmlf90_options@
+sd_xmlf90_policy = @sd_xmlf90_policy@
+sd_xmlf90_status = @sd_xmlf90_status@
+sd_yakl_cppflags = @sd_yakl_cppflags@
+sd_yakl_enable = @sd_yakl_enable@
+sd_yakl_enable_def = @sd_yakl_enable_def@
+sd_yakl_fcflags = @sd_yakl_fcflags@
+sd_yakl_init = @sd_yakl_init@
+sd_yakl_ldflags = @sd_yakl_ldflags@
+sd_yakl_libs = @sd_yakl_libs@
+sd_yakl_ok = @sd_yakl_ok@
+sd_yakl_options = @sd_yakl_options@
+sd_yakl_policy = @sd_yakl_policy@
+sd_yakl_status = @sd_yakl_status@
+sharedstatedir = @sharedstatedir@
+src_02_clib_fcflags = @src_02_clib_fcflags@
+src_10_defs_fcflags = @src_10_defs_fcflags@
+src_11_memory_mpi_fcflags = @src_11_memory_mpi_fcflags@
+src_12_hide_mpi_fcflags = @src_12_hide_mpi_fcflags@
+src_14_hidewrite_fcflags = @src_14_hidewrite_fcflags@
+src_16_hideleave_fcflags = @src_16_hideleave_fcflags@
+src_16_kokkos_toolbox_fcflags = @src_16_kokkos_toolbox_fcflags@
+src_17_gpu_toolbox_fcflags = @src_17_gpu_toolbox_fcflags@
+src_17_libtetra_ext_fcflags = @src_17_libtetra_ext_fcflags@
+src_17_minimax_fcflags = @src_17_minimax_fcflags@
+src_17_yaml_out_fcflags = @src_17_yaml_out_fcflags@
+src_18_timing_fcflags = @src_18_timing_fcflags@
+src_21_hashfuncs_fcflags = @src_21_hashfuncs_fcflags@
+src_27_toolbox_oop_fcflags = @src_27_toolbox_oop_fcflags@
+src_28_numeric_noabirule_fcflags = @src_28_numeric_noabirule_fcflags@
+src_29_kpoints_fcflags = @src_29_kpoints_fcflags@
+src_32_util_fcflags = @src_32_util_fcflags@
+src_33_xc_lowlevel_fcflags = @src_33_xc_lowlevel_fcflags@
+src_39_libpaw_fcflags = @src_39_libpaw_fcflags@
+src_41_geometry_fcflags = @src_41_geometry_fcflags@
+src_42_nlstrain_fcflags = @src_42_nlstrain_fcflags@
+src_42_parser_fcflags = @src_42_parser_fcflags@
+src_43_ptgroups_fcflags = @src_43_ptgroups_fcflags@
+src_43_wvl_wrappers_fcflags = @src_43_wvl_wrappers_fcflags@
+src_44_abitools_fcflags = @src_44_abitools_fcflags@
+src_44_abitypes_defs_fcflags = @src_44_abitypes_defs_fcflags@
+src_44_manage_kokkos_fcflags = @src_44_manage_kokkos_fcflags@
+src_45_geomoptim_fcflags = @src_45_geomoptim_fcflags@
+src_45_xgTools_fcflags = @src_45_xgTools_fcflags@
+src_46_ghc_omp_fcflags = @src_46_ghc_omp_fcflags@
+src_46_manage_cuda_fcflags = @src_46_manage_cuda_fcflags@
+src_48_diago_fcflags = @src_48_diago_fcflags@
+src_49_gw_toolbox_oop_fcflags = @src_49_gw_toolbox_oop_fcflags@
+src_51_manage_mpi_fcflags = @src_51_manage_mpi_fcflags@
+src_52_fft_mpi_noabirule_fcflags = @src_52_fft_mpi_noabirule_fcflags@
+src_53_ffts_fcflags = @src_53_ffts_fcflags@
+src_54_spacepar_fcflags = @src_54_spacepar_fcflags@
+src_55_abiutil_fcflags = @src_55_abiutil_fcflags@
+src_56_io_mpi_fcflags = @src_56_io_mpi_fcflags@
+src_56_mixing_fcflags = @src_56_mixing_fcflags@
+src_56_recipspace_fcflags = @src_56_recipspace_fcflags@
+src_56_xc_fcflags = @src_56_xc_fcflags@
+src_57_iopsp_parser_fcflags = @src_57_iopsp_parser_fcflags@
+src_57_iovars_fcflags = @src_57_iovars_fcflags@
+src_61_occeig_fcflags = @src_61_occeig_fcflags@
+src_62_cg_noabirule_fcflags = @src_62_cg_noabirule_fcflags@
+src_62_ctqmc_fcflags = @src_62_ctqmc_fcflags@
+src_62_iowfdenpot_fcflags = @src_62_iowfdenpot_fcflags@
+src_62_poisson_fcflags = @src_62_poisson_fcflags@
+src_62_wvl_wfs_fcflags = @src_62_wvl_wfs_fcflags@
+src_64_psp_fcflags = @src_64_psp_fcflags@
+src_65_lotf_base_fcflags = @src_65_lotf_base_fcflags@
+src_65_paw_fcflags = @src_65_paw_fcflags@
+src_66_nonlocal_fcflags = @src_66_nonlocal_fcflags@
+src_66_vdwxc_fcflags = @src_66_vdwxc_fcflags@
+src_66_wfs_fcflags = @src_66_wfs_fcflags@
+src_67_common_fcflags = @src_67_common_fcflags@
+src_67_python_invocation_ext_fcflags = @src_67_python_invocation_ext_fcflags@
+src_67_triqs_ext_fcflags = @src_67_triqs_ext_fcflags@
+src_68_dmft_fcflags = @src_68_dmft_fcflags@
+src_68_lotf_fcflags = @src_68_lotf_fcflags@
+src_68_recursion_fcflags = @src_68_recursion_fcflags@
+src_68_rsprc_fcflags = @src_68_rsprc_fcflags@
+src_69_wfdesc_fcflags = @src_69_wfdesc_fcflags@
+src_70_gw_fcflags = @src_70_gw_fcflags@
+src_71_bse_fcflags = @src_71_bse_fcflags@
+src_71_wannier_fcflags = @src_71_wannier_fcflags@
+src_72_response_fcflags = @src_72_response_fcflags@
+src_77_ddb_fcflags = @src_77_ddb_fcflags@
+src_77_suscep_fcflags = @src_77_suscep_fcflags@
+src_78_effpot_fcflags = @src_78_effpot_fcflags@
+src_78_eph_fcflags = @src_78_eph_fcflags@
+src_79_seqpar_mpi_fcflags = @src_79_seqpar_mpi_fcflags@
+src_80_rttddft_fcflags = @src_80_rttddft_fcflags@
+src_80_tdep_fcflags = @src_80_tdep_fcflags@
+src_94_scfcv_fcflags = @src_94_scfcv_fcflags@
+src_95_drive_fcflags = @src_95_drive_fcflags@
+src_common_fcflags = @src_common_fcflags@
+src_core_fcflags = @src_core_fcflags@
+src_libpaw_fcflags = @src_libpaw_fcflags@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_abinit_common = @with_abinit_common@
+with_bigdft = @with_bigdft@
+with_config_file = @with_config_file@
+with_debug_flavor = @with_debug_flavor@
+with_fallbacks = @with_fallbacks@
+with_fc_vendor = @with_fc_vendor@
+with_fc_version = @with_fc_version@
+with_fft_flavor = @with_fft_flavor@
+with_fftw3 = @with_fftw3@
+with_gnu_ld = @with_gnu_ld@
+with_gpu = @with_gpu@
+with_hdf5 = @with_hdf5@
+with_kokkos = @with_kokkos@
+with_levmar = @with_levmar@
+with_libpaw = @with_libpaw@
+with_libpsml = @with_libpsml@
+with_libxc = @with_libxc@
+with_libxml2 = @with_libxml2@
+with_linalg_flavor = @with_linalg_flavor@
+with_mpi = @with_mpi@
+with_mpi_level = @with_mpi_level@
+with_netcdf = @with_netcdf@
+with_optim_flavor = @with_optim_flavor@
+with_papi = @with_papi@
+with_pfft = @with_pfft@
+with_triqs = @with_triqs@
+with_wannier90 = @with_wannier90@
+with_xmlf90 = @with_xmlf90@
+with_yakl = @with_yakl@
+AM_CFLAGS = @ABI_CPPFLAGS@
+AM_CXXFLAGS = $(sd_triqs_cxxflags)
+AM_FCFLAGS = @FPPFLAGS@ @FCFLAGS_FREEFORM@ @FCFLAGS_MODDIR@ @sd_sys_fcflags@ @fcflags_opt_17_yaml_out@
+AM_CPPFLAGS = \
+ @src_10_defs_fcflags@ \
+ @src_11_memory_mpi_fcflags@ \
+ @src_14_hidewrite_fcflags@ \
+ @src_16_hideleave_fcflags@ \
+ @src_17_yaml_out_fcflags@ \
+ @src_common_fcflags@ \
+ @src_core_fcflags@ \
+ @src_libpaw_fcflags@ \
+ @fc_mod_fcflags@
+
+
+# Regular source files
+lib17_yaml_out_srcs = \
+ c_pair_list.c \
+ m_type_pair_list.F90 \
+ m_pair_list.F90 \
+ m_stream_string.F90 \
+ m_yaml.F90
+
+
+# Source files depending on conditionals
+
+# Library description
+noinst_LIBRARIES = lib17_yaml_out.a
+lib17_yaml_out_a_SOURCES = $(lib17_yaml_out_srcs)
+
+# Dependencies (inside the directory) of directory 17_yaml_out
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+CLEANFILES = c_pair_list_cpp.c m_type_pair_list_cpp.f90 \
+ m_pair_list_cpp.f90 m_stream_string_cpp.f90 m_yaml_cpp.f90 \
+ m_pair_list.$(MODEXT) m_stream_string.$(MODEXT) \
+ m_type_pair_list.$(MODEXT) m_yaml.$(MODEXT)
+EXTRA_DIST = abinit.src abinit.dep
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .F90 .c .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu shared/common/src/17_yaml_out/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu shared/common/src/17_yaml_out/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+lib17_yaml_out.a: $(lib17_yaml_out_a_OBJECTS) $(lib17_yaml_out_a_DEPENDENCIES) $(EXTRA_lib17_yaml_out_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f lib17_yaml_out.a
+ $(AM_V_AR)$(lib17_yaml_out_a_AR) lib17_yaml_out.a $(lib17_yaml_out_a_OBJECTS) $(lib17_yaml_out_a_LIBADD)
+ $(AM_V_at)$(RANLIB) lib17_yaml_out.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_pair_list.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/c_pair_list.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/c_pair_list.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+m_pair_list.$(OBJEXT): m_type_pair_list.$(OBJEXT)
+
+m_yaml.$(OBJEXT): m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/GX-PAW/common/src/17_yaml_out/README.md b/GX-PAW/common/src/17_yaml_out/README.md
new file mode 100644
index 00000000..c78d3303
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/README.md
@@ -0,0 +1,8 @@
+# What is this
+
+Neat is the NEw Abinit Testing tool. In this folder are tools for use in Fortran to produce
+structured data output. These data are to be used by the python side of the project in
+smart testing.
+
+This folder is for lower level tools that handle conversion of data into YAML
+document.
diff --git a/GX-PAW/common/src/17_yaml_out/__pycache__/abinit.cpython-36.pyc b/GX-PAW/common/src/17_yaml_out/__pycache__/abinit.cpython-36.pyc
new file mode 100644
index 00000000..06ab0e70
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/__pycache__/abinit.cpython-36.pyc differ
diff --git a/GX-PAW/common/src/17_yaml_out/abinit.dep b/GX-PAW/common/src/17_yaml_out/abinit.dep
new file mode 100644
index 00000000..4ea338c5
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/abinit.dep
@@ -0,0 +1,15 @@
+# Dependencies (inside the directory) of directory 17_yaml_out
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+CLEANFILES += \
+ m_pair_list.$(MODEXT) \
+ m_stream_string.$(MODEXT) \
+ m_type_pair_list.$(MODEXT) \
+ m_yaml.$(MODEXT)
+
+m_pair_list.$(OBJEXT): m_type_pair_list.$(OBJEXT)
+
+m_yaml.$(OBJEXT): m_pair_list.$(OBJEXT) m_stream_string.$(OBJEXT)
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_yaml_out/abinit.dir b/GX-PAW/common/src/17_yaml_out/abinit.dir
new file mode 100644
index 00000000..acfee4a3
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/abinit.dir
@@ -0,0 +1,8 @@
+# Dependencies (outside the directory) of directory 17_yaml_out
+#
+# This file has been generated by abisrc.py.
+# DO NOT edit this file. All changes will be lost.
+# Use `abisrc.py makemake` to regenerate the file.
+
+include_dirs = \
+['10_defs', '11_memory_mpi', '14_hidewrite', '16_hideleave', '17_yaml_out']
\ No newline at end of file
diff --git a/GX-PAW/common/src/17_yaml_out/abinit.src b/GX-PAW/common/src/17_yaml_out/abinit.src
new file mode 100644
index 00000000..59aab1db
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/abinit.src
@@ -0,0 +1,27 @@
+# -*- Python -*-
+#
+# Copyright (C) 2005-2024 ABINIT Group (Yann Pouillon)
+#
+# This file is part of the ABINIT software package. For license information,
+# please see the COPYING file in the top-level directory of the ABINIT source
+# distribution.
+#
+
+#
+# Source files making up the 70_gw library
+#
+
+# Source file attributes
+ABI_SRC_NIL = 0 # No attribute
+ABI_SRC_BLT = 1 # The file is built by a script
+ABI_SRC_DEP = 2 # The file depends on other files
+
+# Source files
+sources = [
+ "c_pair_list.c",
+ "m_type_pair_list.F90",
+ "m_pair_list.F90",
+ "m_stream_string.F90",
+ "m_yaml.F90",
+ ]
+# IMPORTANT : please use the alphabetic order in the previous list. Do NOT add the new routine names at the end of the list.
diff --git a/GX-PAW/common/src/17_yaml_out/c_pair_list.c b/GX-PAW/common/src/17_yaml_out/c_pair_list.c
new file mode 100644
index 00000000..e7a5927f
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/c_pair_list.c
@@ -0,0 +1,268 @@
+/*
+ * Author: Theo Cavignac
+ * Implementation of a simple linked pair list structure.
+ * Unless you really know what you are doing you probably should
+ * look at the Fortran interface instead: m_pair_list.F90
+ *
+ * Possible improvement:
+ * - Add new type to be stored: it may worth it to implement the possibility to store numerical arrays
+ * - Optimise memory allocation: malloc is not super efficient on little chunks
+ */
+#include
+
+#include
+#include
+#include
+
+#include "abi_clib.h"
+
+#define FALSE 0
+#define TRUE 1
+
+/* type codes */
+#define TC_EMPTY -2
+#define TC_NOTFOUND -1
+#define TC_INT 0
+#define TC_REAL 1
+#define TC_STRING 2
+
+typedef uint8_t bool;
+
+typedef union {
+ int i;
+ double r;
+ char* s;
+/*
+ int* iarr;
+ double* rarr;
+*/
+} value;
+
+typedef struct Pair {
+ int8_t type_code;
+ char* key;
+ struct Pair* next;
+ value val;
+} pair_t;
+
+typedef struct {
+ pair_t* first;
+ pair_t* cursor;
+ int length;
+} pair_list;
+
+/* Lazy string comparision */
+static bool str_eq(char* s1, char* s2){
+ while(*s1 && *s2){
+ if(*s1 != *s2){
+ return FALSE;
+ }
+ s1++; s2++;
+ }
+ return (*s1 | *s2) == 0;
+}
+
+/* Fortran style to C style string
+ * return a new allocated pointer to the C string
+ */
+static char* ftoc_str(char* fstr, int length){
+ int i;
+ char* cstr;
+ cstr = xmalloc((length+1)*sizeof(char));
+ for(i = 0; i < length; i++){
+ cstr[i] = fstr[i];
+ }
+ cstr[length] = '\x00';
+ return cstr;
+}
+
+/* C style to Fortran style string
+ * fstr must be allocated and of size length
+ */
+static void ctof_str(char* fstr, char* cstr, int length){
+ int c = 0;
+ while(cstr[c] != '\x00' && c < length){
+ fstr[c] = cstr[c];
+ c++;
+ }
+ while(c < length){
+ fstr[c++] = ' ';
+ }
+}
+
+/* Look for a given key, if found return FALSE and have
+ * selected point to the pair, else return TRUE, allocate a new pair
+ * and have selected point to it
+ */
+static bool get_or_create(pair_list* pl, char* ckey, pair_t** selected){
+ if(pl->first){
+ pair_t* prev = NULL;
+ pair_t* pair = pl->first;
+
+ while(pair){
+ if(str_eq(ckey, pair->key)){
+ *selected = pair;
+ return FALSE;
+ } else {
+ prev = pair;
+ pair = pair->next;
+ }
+ }
+ pair_t* new_pair = xmalloc(sizeof(pair_t));
+ new_pair->type_code = TC_EMPTY;
+ new_pair->key = ckey;
+ new_pair->next = NULL;
+ prev->next = new_pair;
+ *selected = new_pair;
+ return TRUE;
+ } else { /* first element of the list */
+ pair_t* new_pair = xmalloc(sizeof(pair_t));
+ new_pair->type_code = TC_EMPTY;
+ new_pair->key = ckey;
+ new_pair->next = NULL;
+ pl->first = new_pair;
+ pl->cursor = new_pair;
+ *selected = new_pair;
+ return TRUE;
+ }
+}
+
+/* free a pair after freeing the next one */
+static void pair_free(pair_t* p){
+ if(p){
+ pair_free(p->next);
+ xfree(p->key);
+ if(p->type_code == TC_STRING){
+ xfree(p->val.s);
+ }
+ xfree(p);
+ }
+}
+
+
+/* Visible from fortran */
+
+/* set an integer value */
+void pair_list_seti(pair_list* l, char* fkey, int* i, int* len){
+ pair_t* pair = NULL;
+ char* ckey = ftoc_str(fkey, *len);
+ bool is_new = get_or_create(l, ckey, &pair);
+ if(!is_new){
+ xfree(ckey);
+ } else {
+ if(pair->type_code == TC_STRING){
+ xfree(pair->val.s);
+ }
+ }
+ l->length += is_new;
+ pair->type_code = TC_INT;
+ pair->val.i = *i;
+}
+
+/* set a real (double) value */
+void pair_list_setr(pair_list* l, char* fkey, double* r, int* len){
+ pair_t* pair = NULL;
+ char* ckey = ftoc_str(fkey, *len);
+ bool is_new = get_or_create(l, ckey, &pair);
+ if(!is_new){
+ xfree(ckey);
+ } else {
+ if(pair->type_code == TC_STRING){
+ xfree(pair->val.s);
+ }
+ }
+ l->length += is_new;
+ pair->type_code = TC_REAL;
+ pair->val.r = *r;
+}
+
+/* set a string value
+ */
+void pair_list_sets(pair_list* l, char* fkey, char* s, int* len, int* len_s){
+ pair_t* pair = NULL;
+ char* ckey = ftoc_str(fkey, *len);
+ bool is_new = get_or_create(l, ckey, &pair);
+ if(!is_new){
+ xfree(ckey);
+ } else {
+ if(pair->type_code == TC_STRING){
+ xfree(pair->val.s);
+ }
+ }
+ l->length += is_new;
+ pair->type_code = TC_STRING;
+ pair->val.s = ftoc_str(s, *len_s);
+}
+
+/* get a value from a key */
+void pair_list_get_(pair_list* l, char* fkey, int* type_code, int*i, double* r, char* s, int* len, int* len_s){
+ if(!l->first){
+ /* list is empty */
+ *type_code = TC_EMPTY;
+ return;
+ } else {
+ char* ckey = ftoc_str(fkey, *len);
+ pair_t* pair = l->first;
+ while(pair){
+ if(str_eq(pair->key, ckey)){
+ *type_code = pair->type_code;
+ switch(pair->type_code){
+ case TC_REAL:
+ *r = pair->val.r;
+ break;
+ case TC_INT:
+ *i = pair->val.i;
+ break;
+ case TC_STRING:
+ ctof_str(s, pair->val.s, *len_s);
+ break;
+ }
+ break;
+ } else {
+ pair = pair->next;
+ }
+ }
+ if(!pair){
+ /* key not found */
+ *type_code = TC_NOTFOUND;
+ }
+ xfree(ckey);
+ }
+}
+
+/* move the cursor forward in the chain
+ */
+void pair_list_next(pair_list* pl){
+ pl->cursor = pl->cursor->next;
+}
+
+/* free the whole chained list */
+void pair_list_free(pair_list* pl){
+ pair_free(pl->first);
+ pl->first = NULL;
+ pl->cursor = NULL;
+ pl->length = 0;
+}
+
+/* Return the pair pointed by the cursor */
+void pair_list_look_(pair_list* pl, char* fkey, int* type_code, int* i, double* r, char* s, int* len, int* len_s){
+ pair_t* p = pl->cursor;
+ if(p){
+ *type_code = p->type_code;
+ switch(p->type_code){
+ case TC_REAL:
+ *r = p->val.r;
+ break;
+ case TC_INT:
+ *i = p->val.i;
+ break;
+ case TC_STRING:
+ ctof_str(s, p->val.s, *len_s);
+ break;
+ }
+ ctof_str(fkey, p->key, *len);
+ } else {
+ /* reached end of list */
+ *type_code = TC_EMPTY;
+ }
+}
diff --git a/GX-PAW/common/src/17_yaml_out/c_pair_list.o b/GX-PAW/common/src/17_yaml_out/c_pair_list.o
new file mode 100644
index 00000000..d918ef20
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/c_pair_list.o differ
diff --git a/GX-PAW/common/src/17_yaml_out/lib17_yaml_out.a b/GX-PAW/common/src/17_yaml_out/lib17_yaml_out.a
new file mode 100644
index 00000000..3da3b91e
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/lib17_yaml_out.a differ
diff --git a/GX-PAW/common/src/17_yaml_out/m_pair_list.F90 b/GX-PAW/common/src/17_yaml_out/m_pair_list.F90
new file mode 100644
index 00000000..7b948d42
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/m_pair_list.F90
@@ -0,0 +1,500 @@
+!!****m* ABINIT/m_pair_list
+!! NAME
+!! m_pair_list
+!!
+!! FUNCTION
+!! This module defines an API to build
+!! dictionaries containing string keys and numeric or string values.
+!! It is implemented in C as a simple linked pair list (associative list).
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (TC, MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! This module provide an implementation of a pair list
+!! Possible improvement:
+!! - Simplify the usage of get by removing the limit in key and string size
+!! - Simplify the usage of get by removing the need for variable for all possible
+!! content when you know what is stored
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_pair_list
+
+ use, intrinsic :: iso_c_binding
+ use m_type_pair_list
+ use m_errors
+
+ use m_fstrings, only : sjoin, itoa
+
+ implicit none
+
+ ! Similar constants used in C code.
+ integer,public,parameter :: TC_EMPTY=-2, TC_NOTFOUND=-1, TC_INT=0, TC_REAL=1, TC_STRING=2
+
+ private
+ public :: pair_list_set, pair_list_get, pair_list_free
+ public :: pair_list_next, pair_list_look, pair_list_iter, pair_list_restart
+ public :: pair_list
+
+ type :: pair_list
+ type(c_pair_list) :: plc
+ contains
+ procedure :: set => pair_list_set
+ procedure :: set_keys => pair_list_set_keys
+ procedure :: set_keys_to_null => pair_list_set_keys_to_null
+ procedure :: get => pair_list_get
+ procedure :: free => pair_list_free
+ procedure :: next => pair_list_next
+ procedure :: look => pair_list_look
+ procedure :: iter => pair_list_iter
+ procedure :: restart => pair_list_restart
+ procedure :: length => pair_list_length
+ procedure :: increment => pair_list_increment
+ end type pair_list
+
+! -------------------------------------------------------------------------------
+! - -
+! - Private C function binding -
+! - -
+! -------------------------------------------------------------------------------
+ interface
+
+ subroutine pair_list_next_c(pl) bind(C, name="pair_list_next")
+ use m_type_pair_list
+ type(c_pair_list),intent(in) :: pl
+ end subroutine pair_list_next_c
+
+ subroutine pair_list_free_c(pl) bind(C, name="pair_list_free")
+ use m_type_pair_list
+ type(c_pair_list),intent(inout) :: pl
+ end subroutine pair_list_free_c
+
+ subroutine pair_list_seti(pl, key, i, len) bind(C, name="pair_list_seti")
+ use m_type_pair_list
+ type(c_pair_list) :: pl
+ character(kind=c_char) :: key(*)
+ integer(kind=c_int) :: i, len
+ end subroutine pair_list_seti
+
+ subroutine pair_list_setr(pl, key, r, len) bind(C, name="pair_list_setr")
+ use m_type_pair_list
+ type(c_pair_list) :: pl
+ character(kind=c_char) :: key(*)
+ integer(kind=c_int) :: len
+ real(kind=c_double) :: r
+ end subroutine pair_list_setr
+
+ subroutine pair_list_sets(pl, key, s, len, len_s) bind(C, name="pair_list_sets")
+ use m_type_pair_list
+ type(c_pair_list) :: pl
+ character(kind=c_char) :: key(*), s(*)
+ integer(kind=c_int) :: len, len_s
+ real(kind=c_double) :: r
+ end subroutine pair_list_sets
+
+ subroutine pair_list_get_c(pl, key, type_code, i, r, s, len, len_s) bind(C, name="pair_list_get_")
+ use m_type_pair_list
+ type(c_pair_list) :: pl
+ character(kind=c_char) :: key(*), s(*)
+ integer(kind=c_int) :: i, type_code, len, len_s
+ real(kind=c_double) :: r
+ end subroutine pair_list_get_c
+
+ subroutine pair_list_look_c(pl, key, type_code, i, r, s, len, len_s) bind(C, name="pair_list_look_")
+ use m_type_pair_list
+ type(c_pair_list) :: pl
+ integer(kind=c_int) :: type_code, i, len, len_s
+ character(kind=c_char) :: key(len), s(len_s)
+ real(kind=c_double) :: r
+ end subroutine pair_list_look_c
+
+ end interface
+
+! -------------------------------------------------------------------------------
+! - -
+! - Pure Fortran Wrapper -
+! - -
+! -------------------------------------------------------------------------------
+ contains
+!!***
+
+!!****f* m_pair_list/pair_list_length
+!! NAME
+!! pair_list_length
+!!
+!! FUNCTION
+!! REturn the number of items stored in pl
+!!
+!! INPUTS
+!! pl =
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+function pair_list_length(pl) result(length)
+ class(pair_list),intent(in) :: pl
+ integer :: length
+ length = pl%plc%length
+end function pair_list_length
+!!***
+
+!!****f* m_pair_list/pair_list_get
+!! NAME
+!! pair_list_get
+!!
+!! FUNCTION
+!! Get the value associated with a key, only one of i and r is modified
+!!
+!! INPUTS
+!! pl =
+!! key =
+!! s =
+!!
+!! OUTPUT
+!! i =
+!! type_code =
+!! 0 if the value was an integer (and so that i is setted)
+!! 1 if the value was a real number (and so that r is setted)
+!! 2 if the value was a string (and so that s is setted)
+!! -1 if the key was not present (neither i nor r are setted)
+!! -2 if the list is empty (neither i nor r are setted)
+!! r =
+!!
+!! SOURCE
+
+subroutine pair_list_get(pl, key, type_code, i, r, s)
+ class(pair_list),intent(in) :: pl
+ character(kind=c_char,len=*),intent(in) :: key, s
+ integer(kind=c_int),intent(out) :: i, type_code
+ real(kind=c_double),intent(out) :: r
+ call pair_list_get_c(pl%plc, trim(key), type_code, i, r, s, len_trim(key), len(s))
+end subroutine pair_list_get
+!!***
+
+!!****f* m_pair_list/pair_list_look
+!! NAME
+!! pair_list_look
+!!
+!! FUNCTION
+!! pair_list has a cursor which point onto an arbitrary element
+!! of the list. pair_list_look allow to extract the key-value pair from
+!! that element
+!!
+!! If key is shorter than the actual key of the pair, only available space
+!! is used resulting in truncated key
+!! If key is longer than the actual key remaining space is filled with spaces
+!!
+!! INPUTS
+!! pl =
+!!
+!! OUTPUT
+!! key =
+!! s =
+!! type_code =
+!! 1 if the value was a real number (and so that r is setted)
+!! 0 if the value was an integer (and so that i is setted)
+!! -2 if the cursor is null (list is empty or end have been reached)
+!! i =
+!! r =
+!!
+!! SOURCE
+
+subroutine pair_list_look(pl, key, type_code, i, r, s)
+ use m_type_pair_list
+ class(pair_list),intent(in) :: pl
+ character(kind=c_char,len=*),intent(out) :: key, s
+ integer(kind=c_int),intent(out) :: type_code, i
+ real(kind=c_double),intent(out) :: r
+ call pair_list_look_c(pl%plc, key, type_code, i, r, s, len(key), len(s))
+end subroutine pair_list_look
+!!***
+
+!!****f* m_pair_list/pair_list_next
+!! NAME
+!! pair_list_next
+!!
+!! FUNCTION
+!! have the cursor (cf: pair_list_look) moving forward of one element.
+!!
+!! INPUTS
+!! pl =
+!!
+!! OUTPUT
+!!
+!! SOURCE
+ subroutine pair_list_next(pl)
+ class(pair_list),intent(in) :: pl
+ call pair_list_next_c(pl%plc)
+ end subroutine pair_list_next
+!!***
+
+!!****f* m_pair_list/pair_list_free
+!! NAME
+!! pair_list_free
+!!
+!! FUNCTION
+!! free memory occupied by the list (not the pair_list variable itself !)
+!! and reset the pair_list variable (it can be reused as an empty list)
+!!
+!! SOURCE
+
+subroutine pair_list_free(pl)
+
+ class(pair_list),intent(inout) :: pl
+ call pair_list_free_c(pl%plc)
+
+end subroutine pair_list_free
+!!***
+
+!!****f* m_pair_list/pair_list_set
+!! NAME
+!! pair_list_set
+!!
+!! FUNCTION
+!! set a key-value par into the list. If the key is already present, the
+!! corresponding pair is updated. If not the pair is created.
+!! Only one of i and r should be provided (i is the default if both are
+!! provided). Nothing happen if none of them are provided.
+!!
+!! INPUTS
+!! pl =
+!! key =
+!! i =optional
+!! r =optional
+!! s =optional
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine pair_list_set(pl, key, i, r, s)
+
+ class(pair_list),intent(in) :: pl
+ character(len=*),intent(in) :: key
+ integer,intent(in),optional :: i
+ real(kind=c_double),intent(in),optional :: r
+ character(len=*),intent(in),optional :: s
+
+ if (present(i)) then
+ call pair_list_seti(pl%plc, trim(key), i, len_trim(key))
+ else if (present(r)) then
+ call pair_list_setr(pl%plc, trim(key), r, len_trim(key))
+ else if (present(s)) then
+ call pair_list_sets(pl%plc, trim(key), s, len_trim(key), len_trim(s))
+ end if
+
+end subroutine pair_list_set
+!!***
+
+!!****f* m_pair_list/pair_list_set_keys
+!! NAME
+!! pair_list_set_keys
+!!
+!! FUNCTION
+!! Set the value of a list of comma-separated keys.
+!!
+!! Example
+!!
+!! d%set_keys("foo, bar", ivals=[1, 2])
+!!
+!! INPUTS
+!! pl =
+!! keylist =
+!! i =optional
+!! r =optional
+!! s =optional
+!!
+!! OUTPUT
+!!
+!! SOURCE
+
+subroutine pair_list_set_keys(pl, keylist, ivals, rvals) !, svals)
+
+ class(pair_list),intent(in) :: pl
+ character(len=*),intent(in) :: keylist
+ integer,intent(in),optional :: ivals(:)
+ real(kind=c_double),intent(in),optional :: rvals(:)
+ !character(len=*),intent(in),optional :: svals(:)
+
+!Local variables-------------------------------
+ integer :: i, n, start, stp
+ character(len=len(keylist)) :: key
+! *************************************************************************
+
+ n = 1
+ do i=1,len_trim(keylist)
+ if (keylist(i:i) == ",") n = n + 1
+ end do
+
+ start = 1
+ do i=1,n
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ key = keylist(start:)
+ else
+ key = keylist(start: start + stp - 2)
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ key = adjustl(key)
+
+ if (present(ivals)) then
+ ABI_CHECK(size(ivals) == n, "size(ivals) != n")
+ call pair_list_seti(pl%plc, trim(key), ivals(i), len_trim(key))
+
+ else if (present(rvals)) then
+ ABI_CHECK(size(rvals) == n, "size(rvals) != n")
+ call pair_list_setr(pl%plc, trim(key), rvals(i), len_trim(key))
+
+ !else if (present(svals)) then
+ ! TODO: Pass single string with comma-separated tokens.
+ ! ABI_CHECK(size(svals) == n, "size(svals) != n")
+ ! call pair_list_sets(pl%plc, trim(key), svals(i), len_trim(key), len_trim(svals(i)))
+ end if
+ end do
+
+end subroutine pair_list_set_keys
+!!***
+
+!!****f* m_pair_list/pair_list_set_keys_to_null
+!! NAME
+!! pair_list_set_keys_to_null
+!!
+!! FUNCTION
+!! Set the value of a list of comma-separated keys to null
+!!
+!! Example:
+!!
+!! dict%set_keys_to_null("foo, bar")
+!!
+!! INPUTS
+!! keylist: List of comma-separated keys
+!!
+!! SOURCE
+
+subroutine pair_list_set_keys_to_null(pl, keylist)
+
+ class(pair_list),intent(in) :: pl
+ character(len=*),intent(in) :: keylist
+
+!Local variables-------------------------------
+ integer :: start, stp
+! *************************************************************************
+
+ start = 1
+ do
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ call pl%set(adjustl(trim(keylist(start:))), s="null")
+ exit
+ else
+ call pl%set(adjustl(trim(keylist(start:start+stp-2))), s="null")
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ end do
+
+end subroutine pair_list_set_keys_to_null
+!!***
+
+!!****f* m_pair_list/pair_list_restart
+!! NAME
+!! pair_list_restart
+!!
+!! FUNCTION
+!! have the cursor going back to the first element (cf: pair_list_next)
+!!
+!! SOURCE
+
+subroutine pair_list_restart(pl)
+
+ class(pair_list),intent(inout) :: pl
+ pl%plc%cursor = pl%plc%first;
+
+end subroutine pair_list_restart
+!!***
+
+!!****f* m_pair_list/pair_list_iter
+!! NAME
+!! pair_list_iter
+!!
+!! FUNCTION
+!! equivalent to pair_list_look followed by pair_list_next
+!!
+!! INPUTS
+!! pl =
+!!
+!! OUTPUT
+!! key =
+!! type_code =
+!! i =
+!! r =
+!! s =
+!!
+!! SOURCE
+
+subroutine pair_list_iter(pl, key, type_code, i, r, s)
+
+ class(pair_list),intent(in) :: pl
+ character(len=*),intent(out) :: key
+ integer,intent(out) :: type_code
+ integer,intent(out) :: i
+ real(kind=c_double),intent(out) :: r
+ character(len=*),intent(out) :: s
+
+ call pair_list_look(pl, key, type_code, i, r, s)
+ if(type_code >= 0) call pair_list_next_c(pl%plc)
+
+end subroutine pair_list_iter
+!!***
+
+!!****f* m_pair_list/pair_list_increment
+!! NAME
+!! pair_list_increment
+!!
+!! FUNCTION
+!! Increment integer value. Create key if not already present.
+!!
+!! INPUTS
+!! pl =
+!! key =
+!! cnt=Increment
+!!
+!! SOURCE
+
+subroutine pair_list_increment(pl, key, cnt)
+
+ class(pair_list),intent(in) :: pl
+ character(len=*),intent(in) :: key
+ integer,intent(in) :: cnt
+
+ integer(kind=c_int) :: i, type_code
+ real(kind=c_double) :: r
+ character(kind=c_char,len=500) :: s
+
+ call pair_list_get(pl, key, type_code, i, r, s)
+ select case (type_code)
+ case (TC_EMPTY, TC_NOTFOUND)
+ call pair_list_set(pl, key, i=cnt)
+ case (TC_INT)
+ call pair_list_set(pl, key, i=cnt + i)
+ case default
+ ABI_ERROR(sjoin("Expecting value in dict of integer type. got:", itoa(type_code)))
+ end select
+
+end subroutine pair_list_increment
+!!***
+
+end module m_pair_list
+!!***
diff --git a/GX-PAW/common/src/17_yaml_out/m_pair_list.o b/GX-PAW/common/src/17_yaml_out/m_pair_list.o
new file mode 100644
index 00000000..29fa86c5
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/m_pair_list.o differ
diff --git a/GX-PAW/common/src/17_yaml_out/m_stream_string.F90 b/GX-PAW/common/src/17_yaml_out/m_stream_string.F90
new file mode 100644
index 00000000..9e2290fa
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/m_stream_string.F90
@@ -0,0 +1,383 @@
+!!****m* ABINIT/m_stream_string
+!! NAME
+!! m_stream_string
+!!
+!! FUNCTION
+!! This module define a type representing a variable size
+!! string. It can be used in a file-like way by writing to it or reading it.
+!! Memory is automatically allocated on writing and freed on reading.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (TC, MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!! Provide tools to manipulate variable size strings in an incremental FIFO way
+!! Use `stream%push` to incrementally fill the string. The required memory space will be allocated
+!! automatically when needed.
+!! To avoid memory leaks you have to use stream_free on the stream to free the memory space unless
+!! you already flushed it using stream%flush, stream%transfer, stream%to_string or stream%to_file.
+!! Unlike the last four methods, stream_copy and stream_debug do not modify the source stream
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_stream_string
+
+ use defs_basis
+ use m_profiling_abi
+
+ use m_fstrings, only : prep_char !, replace
+
+ implicit none
+
+ private
+
+ integer,public,parameter :: chunk_size = 248
+
+ type,private :: stream_chunk
+ type(stream_chunk), pointer :: next => null()
+ character(len=chunk_size) :: chunk = repeat(' ', chunk_size)
+ end type stream_chunk
+
+ type,public :: stream_string
+ integer :: length = 0
+ type(stream_chunk), pointer :: head => null()
+ contains
+ procedure :: flush => stream_flush_unit
+ procedure :: flush_units => stream_flush_units
+ procedure :: free => stream_free
+ procedure :: copy => stream_copy
+ procedure :: push => stream_push
+ procedure :: pop_chunk => stream_pop_chunk
+ procedure :: to_string => stream_to_string
+ procedure :: to_file => stream_to_file
+ procedure :: transfer => stream_transfer
+ procedure :: debug => stream_debug
+
+ end type stream_string
+
+contains
+!!***
+
+subroutine stream_flush_unit(stream, unit, newline, firstchar)
+
+ class(stream_string),intent(inout) :: stream
+ integer,intent(in) :: unit
+ logical,optional,intent(in) :: newline
+ character(len=*),optional,intent(in) :: firstchar
+
+ character(len=stream%length) :: s
+ character(len=2 * stream%length) :: new_s
+
+ if (unit == dev_null) then
+ call stream%free()
+ return
+ end if
+
+ call stream%to_string(s)
+
+ if (present(firstchar)) then
+ !new_s = trim(firstchar) // trim(replace(trim(s), ch10, ch10//trim(firstchar)))
+ new_s = prep_char(s, firstchar)
+ write(unit, "(a)")trim(new_s)
+ else
+#if defined FC_NVHPC || defined FC_LLVM
+ write(unit, "(a)") s
+#else
+ write(unit, "(a)") trim(s)
+#endif
+ end if
+
+ if (present(newline)) then
+ if (newline) write(unit, "(a)")""
+ end if
+
+ call stream%free()
+
+end subroutine stream_flush_unit
+
+
+subroutine stream_flush_units(stream, units, newline)
+
+ class(stream_string),intent(inout) :: stream
+ integer,intent(in) :: units(:)
+ logical,optional,intent(in) :: newline
+
+!Local variables-------------------------------
+!scalars
+ integer :: ii, cnt
+ character(len=stream%length) :: s
+!arrays
+ integer :: my_units(size(units))
+
+!******************************************************************
+
+ ! Remove duplicated units (if any)
+ my_units(1) = units(1); cnt = 1
+ do ii=2,size(units)
+ if (any(units(ii) == my_units(1:cnt))) cycle
+ cnt = cnt + 1
+ my_units(cnt) = units(ii)
+ end do
+
+ call stream%to_string(s)
+
+ do ii=1,cnt
+ if (units(ii) == dev_null) cycle
+ write(units(ii), "(a)")trim(s)
+ if (present(newline)) then
+ if (newline) write(units(ii), "(a)")""
+ end if
+ end do
+
+ call stream%free()
+
+end subroutine stream_flush_units
+
+!!****f* m_stream_string/stream_free
+!! NAME
+!! stream_free
+!!
+!! FUNCTION
+!! free stream. Most of the time this is not needed since
+!! routines to access the content free the stream
+!!
+!! SOURCE
+
+subroutine stream_free(stream)
+
+ class(stream_string),intent(inout) :: stream
+ type(stream_chunk), pointer :: cursor, prev
+ cursor => stream%head
+ do while (associated(cursor))
+ prev => cursor
+ cursor => cursor%next
+ ABI_FREE_SCALAR(prev)
+ end do
+ stream%head => NULL()
+ stream%length = 0
+
+end subroutine stream_free
+!!***
+
+!!****f* m_stream_string/stream_copy
+!! NAME
+!! stream_copy
+!!
+!! FUNCTION
+!! copy src content to dest without altering src
+!!
+!! SOURCE
+
+subroutine stream_copy(src, dest)
+ class(stream_string),intent(inout) :: src, dest
+ type(stream_chunk), pointer :: cursor
+ cursor => src%head
+ do while (associated(cursor))
+ call dest%push(cursor%chunk)
+ cursor => cursor%next
+ end do
+end subroutine stream_copy
+!!***
+
+!!****f* m_stream_string/stream_push
+!! NAME
+!! stream_push
+!!
+!! FUNCTION
+!! Write string to stream, allocating memory if needed
+!!
+!! SOURCE
+
+subroutine stream_push(stream, string)
+ class(stream_string),intent(inout) :: stream
+ character(len=*),intent(in) :: string
+ integer :: offset, room_left, soffset
+ type(stream_chunk), pointer :: cursor
+
+ offset = stream%length
+
+ if (.not.associated(stream%head)) then
+ ABI_MALLOC_SCALAR(stream%head)
+ end if
+ cursor => stream%head
+
+ do while(offset > chunk_size)
+ cursor => cursor%next
+ offset = offset - chunk_size
+ end do
+
+ room_left = chunk_size - offset
+ if (room_left < len(string)) then
+ cursor%chunk(offset+1:chunk_size) = string(1:room_left)
+ soffset = room_left
+ do while (soffset < len(string))
+ ABI_MALLOC_SCALAR(cursor%next)
+ cursor%next%chunk(1:min(chunk_size, len(string)-soffset)) = &
+ string(soffset+1:min(soffset+chunk_size,len(string)))
+ cursor => cursor%next
+ soffset = soffset + chunk_size
+ end do
+ else
+ cursor%chunk(offset+1:offset+len(string)) = string
+ end if
+ stream%length = stream%length + len(string)
+
+end subroutine stream_push
+!!***
+
+!!****f* m_stream_string/stream_pop_chunk
+!! NAME
+!! stream_pop_chunk
+!!
+!! FUNCTION
+!! Remove the last chunk of stream an put its content in string
+!!
+!! SOURCE
+
+subroutine stream_pop_chunk(stream, string)
+ class(stream_string),intent(inout) :: stream
+ character(len=chunk_size),intent(out) :: string
+ type(stream_chunk),pointer :: cursor
+
+ string = stream%head%chunk
+ if (stream%length > chunk_size) then
+ ! copy the next pointer
+ cursor => stream%head%next
+ ! have next pointing to nothing
+ stream%head%next => NULL()
+ ! free head
+ ABI_FREE_SCALAR(stream%head)
+ stream%head => cursor
+ stream%length = stream%length - chunk_size
+ else
+ ABI_FREE_SCALAR(stream%head)
+ stream%length = 0
+ end if
+
+end subroutine stream_pop_chunk
+!!***
+
+!!****f* m_stream_string/stream_to_string
+!! NAME
+!! stream_to_string
+!!
+!! FUNCTION
+!! Copy the content of stream to string, freeing stream. String must be large enough
+!!
+!! SOURCE
+
+subroutine stream_to_string(stream, string)
+
+ class(stream_string),intent(inout) :: stream
+ character(len=*),intent(out) :: string
+ character(len=chunk_size) :: stmp
+ integer :: offset, length
+ offset = 0
+
+ string = repeat(' ', len(string))
+ do while (stream%length > 0)
+ length = stream%length
+ call stream%pop_chunk(stmp)
+ string(offset+1:offset+min(length, chunk_size)) = stmp(1:min(length, chunk_size))
+ offset = offset + chunk_size
+ end do
+
+end subroutine stream_to_string
+!!***
+
+!!****f* m_stream_string/stream_to_file
+!! NAME
+!! stream_to_file
+!!
+!! FUNCTION
+!! Write the content of stream to the file, freeing stream
+!!
+!! SOURCE
+
+subroutine stream_to_file(stream, file_d)
+ class(stream_string),intent(inout) :: stream
+ integer,intent(in) :: file_d
+ character(len=chunk_size) :: stmp
+ integer :: offset, length
+ offset = 0
+
+ do while (stream%length > 0)
+ length = stream%length
+ call stream%pop_chunk(stmp)
+ write(file_d, '(A)', advance='no') stmp(1:min(length, chunk_size))
+ offset = offset + chunk_size
+ end do
+
+end subroutine stream_to_file
+!!***
+
+!!****f* m_stream_string/stream_transfer
+!! NAME
+!! stream_transfer
+!!
+!! FUNCTION
+!! Copy the content of src to dest, freeing src
+!! If possible does not reallocate memory and just have
+!! dest point to src content
+!!
+!! SOURCE
+
+subroutine stream_transfer(src, dest)
+ class(stream_string),intent(inout) :: src, dest
+ character(len=chunk_size) :: chunk
+ integer :: length
+ if(.not.associated(dest%head)) then
+ ! if possible just transfer the pointer
+ dest%head => src%head
+ dest%length = src%length
+ src%head => NULL()
+ else
+ do while (src%length > 0)
+ length = src%length
+ call src%pop_chunk(chunk)
+ if(length > chunk_size) then
+ call dest%push(chunk)
+ else
+ call dest%push(chunk(1:length))
+ end if
+ end do
+ end if
+
+end subroutine stream_transfer
+!!***
+
+!!****f* m_stream_string/stream_debug
+!! NAME
+!! stream_debug
+!!
+!! FUNCTION
+!! Show the content of the chunks on stdout
+!!
+!! SOURCE
+
+subroutine stream_debug(src)
+ class(stream_string),intent(inout) :: src
+ type(stream_chunk), pointer :: cursor
+ integer :: c
+ cursor => src%head
+ c = 1
+ do while (associated(cursor))
+ write(std_out,*) "Chunk no", c
+ write(std_out,'(A)') cursor%chunk
+ cursor => cursor%next
+ c = c + 1
+ end do
+end subroutine stream_debug
+!!***
+
+end module m_stream_string
+!!***
diff --git a/GX-PAW/common/src/17_yaml_out/m_stream_string.o b/GX-PAW/common/src/17_yaml_out/m_stream_string.o
new file mode 100644
index 00000000..cb5bbad4
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/m_stream_string.o differ
diff --git a/GX-PAW/common/src/17_yaml_out/m_type_pair_list.F90 b/GX-PAW/common/src/17_yaml_out/m_type_pair_list.F90
new file mode 100644
index 00000000..3c44692f
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/m_type_pair_list.F90
@@ -0,0 +1,37 @@
+!!****m* ABINIT/m_type_pair_list
+!! NAME
+!! m_pair_list
+!!
+!! FUNCTION
+!! This module define the interface to the C implementation
+!! of pair_list. See m_pair_list.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (TC, MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! NOTES
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+module m_type_pair_list
+ use, intrinsic :: iso_c_binding
+! type c_pair_list
+! Represent a list of key-value pairs value can be either
+! integer, double precision real or string.
+! Never manipulate member directly or you will corrupt
+! data. Use routines of m_pair_list instead
+ type, bind(C) :: c_pair_list
+ type(c_ptr) :: first = C_NULL_PTR
+ type(c_ptr) :: cursor = C_NULL_PTR
+ integer(c_int) :: length = 0
+ end type c_pair_list
+ contains
+end module m_type_pair_list
+!!***
diff --git a/GX-PAW/common/src/17_yaml_out/m_type_pair_list.o b/GX-PAW/common/src/17_yaml_out/m_type_pair_list.o
new file mode 100644
index 00000000..f220409e
Binary files /dev/null and b/GX-PAW/common/src/17_yaml_out/m_type_pair_list.o differ
diff --git a/GX-PAW/common/src/17_yaml_out/m_yaml.F90 b/GX-PAW/common/src/17_yaml_out/m_yaml.F90
new file mode 100644
index 00000000..3c66ba90
--- /dev/null
+++ b/GX-PAW/common/src/17_yaml_out/m_yaml.F90
@@ -0,0 +1,1889 @@
+!!****m* ABINIT/m_yaml
+!! NAME
+!! m_yaml
+!!
+!! FUNCTION
+!! This module defines low-level routines to format data into YAML documents.
+!! Supported data include numeric arrays of one and two dimensions,
+!! strings, numbers, dictionaries from m_pair_list and 1D arrays of dictionaries.
+!!
+!! COPYRIGHT
+!! Copyright (C) 2009-2024 ABINIT group (TC, MG)
+!! This file is distributed under the terms of the
+!! GNU General Public License, see ~abinit/COPYING
+!! or http://www.gnu.org/copyleft/gpl.txt .
+!!
+!! SOURCE
+
+#if defined HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "abi_common.h"
+
+module m_yaml
+
+ use defs_basis
+#ifdef HAVE_FC_IEEE_ARITHMETIC
+ use ieee_arithmetic
+#endif
+ use m_errors
+ use m_pair_list
+ use m_stream_string
+
+ use m_fstrings, only : sjoin, char_count, itoa, sjoin
+ use m_io_tools, only : is_open
+
+ implicit none
+
+ private
+!!***
+
+!----------------------------------------------------------------------
+
+!!****t* m_yaml/yamldoc_t
+!! NAME
+!! yamldoc_t
+!!
+!! FUNCTION
+!! High-level API to write (simple) Yaml documents.
+!!
+!! SOURCE
+
+ type,public :: yamldoc_t
+
+ integer :: default_keysize = 30
+ ! Default key size
+
+ integer :: default_stringsize = 500
+ ! Default string size
+
+ integer :: default_width = 0
+ ! impose a minimum width of the field name side of the column (padding with spaces)
+
+ integer :: default_multiline_trig = 8
+ ! minimum number of elements before switching to multiline representation.
+
+ character(len=20) :: default_ifmt = '(I0)'
+ ! Default format for integer
+
+ character(len=20) :: default_rfmt = '(ES16.8)'
+ ! Default format for real
+
+ character(len=20) :: default_kfmt = "(A)"
+ ! Default format for keys
+
+ character(len=20) :: default_sfmt = "(A)"
+ ! Default format for strings
+
+ type(stream_string) :: stream
+ ! Stream object used to build yaml string.
+
+ contains
+
+ procedure :: write_and_free => yamldoc_write_unit_and_free
+ ! Write Yaml document to unit and free memory.
+
+ procedure :: write_units_and_free => yamldoc_write_units_and_free
+ ! Write Yaml document to a list of units and free memory.
+
+ procedure :: add_real => yamldoc_add_real
+ ! Add a real number field to a document
+
+ procedure :: add_reals => yamldoc_add_reals
+ ! Add a list of real number fields to a document
+
+ procedure :: add_paired_real2d => yamldoc_add_paired_real2d
+ ! Add a field containing two 2D array of real numbers with the same shape.
+
+ procedure :: add_int => yamldoc_add_int
+ ! Add an integer field to a document
+
+ procedure :: add_ints => yamldoc_add_ints
+ ! Add a list of integers to a document
+
+ procedure :: add_string => yamldoc_add_string
+ ! Add a string field to a document
+
+ procedure :: add_real1d => yamldoc_add_real1d
+ ! Add a field containing a 1D array of real numbers
+
+ procedure :: add_real2d => yamldoc_add_real2d
+ ! Add a field containing a 2D real number array
+
+ procedure :: add_int1d => yamldoc_add_int1d
+ ! Add a field containing a 1D integer array
+
+ procedure :: add_int2d => yamldoc_add_int2d
+ ! Add a field containing a 2D integer array
+
+ !procedure :: add_tabular => yamldoc_add_tabular
+ ! Add a field with a complete table data
+
+ procedure :: open_tabular => yamldoc_open_tabular
+ ! Open a field for tabular data
+
+ procedure :: add_tabular_line => yamldoc_add_tabular_line
+ ! Add a line of tabular data in an already opened table field
+
+ procedure :: add_dict => yamldoc_add_dict
+ ! Add a field containing a dictionary/pair_list
+
+ procedure :: add_dictlist => yamldoc_add_dictlist
+ ! Add a field containing a list of dictionaries/array of pair_list
+
+ procedure :: set_keys_to_string => yamldoc_set_keys_to_string
+ ! Set all keys to a common (string) value
+
+ end type yamldoc_t
+!!***
+
+ public :: yamldoc_open
+ ! Open a yaml document
+
+ public :: yaml_single_dict
+ ! Create a full document from a single dictionary
+
+ public :: yaml_write_dict
+ ! Write a dictionary in a Yaml document.
+
+ public :: yaml_iterstart
+ ! Set the value of the iteration indices used to build the iteration_state dict in the Yaml documents
+
+ character(len=1),parameter :: eol = char(10)
+
+ ! This is a list of reserved_keywords that shall not be used as keys in Yaml dictionaries.
+ character(len=12),parameter :: reserved_keywords(10) = [character(len=12) :: &
+ "tol_abs", "tol_rel", "tol_vec", "tol_eq", "ignore", &
+ "ceil", "equation", "equations", "callback", "callbacks"]
+
+ ! Global variables used to save the iteration state in Abinit.
+ ! Set by yaml_iterstart
+ integer,public,save,protected :: DTSET_IDX = -1
+ integer,public,save,protected :: TIMIMAGE_IDX = -1
+ integer,public,save,protected :: IMAGE_IDX = -1
+ integer,public,save,protected :: ITIME_IDX = -1
+ integer,public,save,protected :: ICYCLE_IDX = -1
+
+ integer,parameter,private :: MAGIC_IGNORE_INT = huge(0) - 1
+ real(dp),parameter,private :: MAGIC_IGNORE_REAL = huge(one) - one
+
+contains
+
+!!****f* m_yaml/yaml_iterstart
+!! NAME
+!! yaml_iterstart
+!!
+!! FUNCTION
+!! Mark the start of an iteration named by label and numbered by file
+!!
+!! INPUTS
+!! label=key name
+!! val=value
+!! [newline] = set to false to prevent adding newlines after fields
+!!
+!! SOURCE
+
+subroutine yaml_iterstart(label, val, unit, use_yaml, newline)
+
+!Arguments ------------------------------------
+ integer,intent(in) :: val, unit, use_yaml
+ character(len=*),intent(in) :: label
+ logical,intent(in),optional :: newline
+
+!Local variables-------------------------------
+ character(len=6) :: tmp_i
+ logical :: nl
+ type(stream_string) :: stream
+! *************************************************************************
+
+ select case (label)
+ case ("dtset")
+ DTSET_IDX = val
+ TIMIMAGE_IDX = -1
+ IMAGE_IDX = -1
+ ITIME_IDX = -1
+ ICYCLE_IDX = -1
+ case ("timimage")
+ TIMIMAGE_IDX = val
+ case ("image")
+ IMAGE_IDX = val
+ case ("itime")
+ ITIME_IDX = val
+ case ("icycle")
+ ICYCLE_IDX = val
+ case default
+ ABI_ERROR(sjoin("Invalid value for label:", label))
+ end select
+
+ if (use_yaml == 1) then
+ if (unit == dev_null .or. .not. is_open(unit)) return
+ ABI_DEFAULT(nl, newline, .true.)
+ write(tmp_i, '(I6)') val
+ call stream%push('--- !IterStart'//eol//label//':'//tmp_i//eol//'...')
+ if (nl) call stream%push(eol)
+ call stream%flush(unit)
+ end if
+
+end subroutine yaml_iterstart
+!!***
+
+!!****f* m_yaml/yamldoc_open
+!! NAME
+!! yamldoc_open
+!!
+!! FUNCTION
+!! Open a yaml document
+!!
+!! INPUTS
+!! tag: add a tag to the field
+!! [info]: info about document.
+!! [newline]: optional, set to false to prevent adding newlines after fields
+!! [width]: optional, impose a minimum width of the field name side of the column (padding with spaces)
+!! [int_fmt]: Default format for integers.
+!! [real_fmt]: Default format for real.
+!! [with_iter_state]: True if dict with iteration state should be added. Default: True
+!!
+!! SOURCE
+
+type(yamldoc_t) function yamldoc_open(tag, info, newline, width, int_fmt, real_fmt, with_iter_state) result(new)
+
+!Arguments ------------------------------------
+ character(len=*),intent(in) :: tag
+ character(len=*),optional,intent(in) :: info
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),optional,intent(in) :: int_fmt, real_fmt
+ logical,optional,intent(in) :: with_iter_state
+
+!Local variables-------------------------------
+ logical :: nl, with_iter_state_
+ type(pair_list) :: dict
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .False.)
+
+ if (present(width)) new%default_width = width
+ if (present(int_fmt)) new%default_ifmt = int_fmt
+ if (present(real_fmt)) new%default_rfmt = real_fmt
+
+ call new%stream%push(ch10//'---'//' !'//trim(tag)//ch10)
+
+ with_iter_state_ = .True.; if (present(with_iter_state)) with_iter_state_ = with_iter_state
+ if (with_iter_state_ .and. DTSET_IDX /= -1) then
+ ! Write dictionary with iteration state.
+ call dict%set('dtset', i=DTSET_IDX)
+ if (TIMIMAGE_IDX /= -1) call dict%set("timimage", i=TIMIMAGE_IDX)
+ if (IMAGE_IDX /= -1) call dict%set("image", i=IMAGE_IDX)
+ if (ITIME_IDX /= -1) call dict%set("itime", i=ITIME_IDX)
+ if (ICYCLE_IDX /= -1) call dict%set("icycle", i=ICYCLE_IDX)
+ call new%add_dict('iteration_state', dict, int_fmt="(i0)")
+ call dict%free()
+ end if
+
+ if (present(info)) then
+ if (len_trim(info) /= 0) then
+ ! TODO: Replace comment with info
+ call new%stream%push('comment')
+ if (new%default_width > 7) call new%stream%push(repeat(' ', new%default_width - 7))
+ call new%stream%push(': ')
+ call yaml_print_string(new%stream, info)
+ call new%stream%push(eol)
+ end if
+ end if
+
+ if (nl) call new%stream%push(eol)
+
+end function yamldoc_open
+!!***
+
+!!****f* m_yaml/yamldoc_add_real
+!! NAME
+!! yamldoc_add_real
+!!
+!! FUNCTION
+!! Add a real number field to a document
+!!
+!! INPUTS
+!! label = key name
+!! val = value
+!! [tag] = optional, add a tag to the field
+!! [real_fmt] = override the default formatting
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [comment]: optional Yaml comment added after the value
+!! [ignore]= If present, ignore entry if value is equal to ignore.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_real(self, label, val, tag, real_fmt, newline, width, comment, ignore)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: label
+ real(dp),intent(in) :: val
+ character(len=*),intent(in),optional :: tag, real_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),intent(in),optional :: comment
+ real(dp),optional,intent(in) :: ignore
+
+!Local variables-------------------------------
+ integer :: w
+ character(len=50) :: tmp_r
+ character(len=30) :: rfmt
+ logical :: nl
+! *************************************************************************
+
+ if (present(ignore)) then
+ if (val == ignore) return
+ end if
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call self%stream%push(' ')
+ call format_real(val, tmp_r, trim(rfmt))
+ call self%stream%push(trim(tmp_r))
+
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_real
+!!***
+
+!!****f* m_yaml/yamldoc_add_reals
+!! NAME
+!! yamldoc_add_reals
+!!
+!! FUNCTION
+!! Add a list of real numbers to the document
+!!
+!! INPUTS
+!! keylist = List of comma-separated keywords
+!! values = List of values
+!! [real_fmt] = override the default formatting
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [dict_key]=If present, a dictionary with key `dict_key` is created instead of a list.
+!! [multiline_trig] = optional minimum number of elements before switching to multiline representation
+!! [ignore]= If present, ignore entries whose values is equal to ignore.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_reals(self, keylist, values, real_fmt, width, dict_key, multiline_trig, ignore)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: keylist
+ real(dp),intent(in) :: values(:)
+ character(len=*),intent(in),optional :: real_fmt, dict_key
+ integer,intent(in),optional :: width, multiline_trig
+ real(dp),optional,intent(in) :: ignore
+
+!Local variables-------------------------------
+ integer :: i, n, w, start, stp, vmax
+ character(len=30) :: rfmt
+ real(dp) :: my_ignore
+ type(pair_list) :: dict
+! *************************************************************************
+
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(my_ignore, ignore, MAGIC_IGNORE_REAL)
+
+ n = char_count(keylist, ",") + 1
+ ABI_CHECK(size(values) == n, sjoin("size of values:", itoa(size(values)), " != len(tokens):", keylist))
+
+ start = 1
+
+ if (.not. present(dict_key)) then
+ do i=1,n
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ call self%add_real(adjustl(keylist(start:)), values(i), real_fmt=rfmt, width=w, ignore=my_ignore)
+ else
+ call self%add_real(adjustl(keylist(start: start + stp - 2)), values(i), real_fmt=rfmt, width=w, ignore=my_ignore)
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ end do
+
+ else
+
+ ! Create and insert dictionary.
+ do i=1,n
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ if (values(i) /= my_ignore) call dict%set(adjustl(keylist(start:)), r=values(i))
+ else
+ if (values(i) /= my_ignore) call dict%set(adjustl(keylist(start: start + stp - 2)), r=values(i))
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ end do
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+ call self%add_dict(trim(dict_key), dict, multiline_trig=vmax, real_fmt=rfmt, width=w)
+ call dict%free()
+ end if
+
+end subroutine yamldoc_add_reals
+!!***
+
+!!****f* m_yaml/yamldoc_add_int
+!! NAME
+!! yamldoc_add_int
+!!
+!! FUNCTION
+!! Add an integer field to a document
+!!
+!! INPUTS
+!! label = key name
+!! val = value
+!! [tag] = optional, add a tag to the field
+!! [int_fmt] = optional override the default formatting
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [comment]: optional Yaml comment added after the value
+!! [ignore]= If present, ignore entrie if values is equal to ignore.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_int(self, label, val, tag, int_fmt, newline, width, comment, ignore)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ integer,intent(in) :: val
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag, int_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),intent(in),optional :: comment
+ integer,intent(in),optional :: ignore
+
+!Local variables-------------------------------
+ integer :: w
+ character(50) :: tmp_i
+ character(len=30) :: ifmt
+ logical :: nl
+! *************************************************************************
+
+ if (present(ignore)) then
+ if (val == ignore) return
+ end if
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call self%stream%push(' ')
+ write(tmp_i, trim(ifmt)) val
+ call self%stream%push(trim(tmp_i))
+
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_int
+!!***
+
+!!****f* m_yaml/yamldoc_add_ints
+!! NAME
+!! yamldoc_add_ints
+!!
+!! FUNCTION
+!! Add a list of integer numbers to the document
+!!
+!! INPUTS
+!! keylist = List of comma-separated keywords e.g. "foo, bar"
+!! values = List of integer values
+!! [int_fmt] = override the default formatting
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [dict_key]=If present, a dictionary with key `dict_key` is created instead of a list.
+!! [multiline_trig] = minimum number of elements before switching to multiline representation
+!! [ignore]= If present, ignore entrie if values is equal to ignore.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_ints(self, keylist, values, int_fmt, width, dict_key, multiline_trig, ignore)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: keylist
+ integer,intent(in) :: values(:)
+ character(len=*),intent(in),optional :: int_fmt, dict_key
+ integer,intent(in),optional :: width, multiline_trig
+ integer,intent(in),optional :: ignore
+
+!Local variables-------------------------------
+ integer :: i, n, w, start, stp, vmax, my_ignore
+ character(len=30) :: ifmt
+ type(pair_list) :: dict
+! *************************************************************************
+
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+ ABI_DEFAULT(my_ignore, ignore, MAGIC_IGNORE_INT)
+
+ n = char_count(keylist, ",") + 1
+ ABI_CHECK(size(values) == n, sjoin("size of values:", itoa(size(values)), " != len(tokens):", keylist))
+
+ start = 1
+
+ if (.not. present(dict_key)) then
+ ! one line per entry.
+ do i=1,n
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ call self%add_int(adjustl(keylist(start:)), values(i), int_fmt=ifmt, width=w, ignore=my_ignore)
+ else
+ call self%add_int(adjustl(keylist(start: start + stp - 2)), values(i), int_fmt=ifmt, width=w, ignore=my_ignore)
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ end do
+
+ else
+ ! Create and insert dictionary.
+ do i=1,n
+ stp = index(keylist(start:), ",")
+ if (stp == 0) then
+ if (values(i) /= my_ignore) call dict%set(adjustl(keylist(start:)), i=values(i))
+ else
+ if (values(i) /= my_ignore) call dict%set(adjustl(keylist(start: start + stp - 2)), i=values(i))
+ start = start + stp
+ ABI_CHECK(start < len_trim(keylist), sjoin("Invalid keylist:", keylist))
+ end if
+ end do
+
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+ call self%add_dict(trim(dict_key), dict, multiline_trig=vmax, int_fmt=ifmt, width=w)
+ call dict%free()
+ end if
+
+end subroutine yamldoc_add_ints
+!!***
+
+!!****f* m_yaml/yamldoc_add_string
+!! NAME
+!! yamldoc_add_string
+!!
+!! FUNCTION
+!! Add a string field to a document
+!!
+!! INPUTS
+!! label = key name
+!! val = value
+!! [tag] = optional, add a tag to the field
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!!
+!! SOURCE
+
+subroutine yamldoc_add_string(self, label, val, tag, newline, width)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: val
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+
+!Local variables-------------------------------
+ integer :: w
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call self%stream%push(' ')
+ call yaml_print_string(self%stream, trim(val))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_string
+!!***
+
+!!****f* m_yaml/yamldoc_add_real1d
+!! NAME
+!! yamldoc_add_real1d
+!!
+!! FUNCTION
+!! Add a field containing a 1D array of real numbers
+!!
+!! INPUTS
+!! label = key name
+!! arr(:)
+!! [multiline_trig] = optional minimum number of elements before switching to multiline representation
+!! [tag] = optional, add a tag to the field
+!! [real_fmt] = override the default formatting
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [comment]: optional Yaml comment added after the value
+!!
+!! SOURCE
+
+subroutine yamldoc_add_real1d(self, label, arr, tag, real_fmt, multiline_trig, newline, width, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ integer,intent(in),optional :: multiline_trig
+ real(dp),intent(in) :: arr(:)
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag, real_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: w, length, vmax
+ character(len=30) :: rfmt
+ logical :: nl
+! *************************************************************************
+
+ length = size(arr)
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call yaml_print_real1d(self%stream, length, arr, trim(rfmt), vmax)
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_real1d
+!!***
+
+!!****f* m_yaml/yamldoc_add_int1d
+!! NAME
+!! yamldoc_add_int1d
+!!
+!! FUNCTION
+!! Add a field containing a 1D integer array
+!!
+!! INPUTS
+!! label = key name
+!! arr(:) =
+!! [multiline_trig] = optional minimum number of elements before switching to multiline representation
+!! [tag] : add a tag to the field
+!! int_fmt =optional override the default formatting
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [comment]: optional Yaml comment added after the value
+!!
+!! SOURCE
+
+subroutine yamldoc_add_int1d(self, label, arr, tag, int_fmt, multiline_trig, newline, width, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ integer,intent(in),optional :: multiline_trig
+ integer,intent(in) :: arr(:)
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag, int_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ character(len=30) :: ifmt
+ integer :: w, length, vmax
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+ length = size(arr)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call yaml_print_int1d(self%stream, length, arr, trim(ifmt), vmax)
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_int1d
+!!***
+
+!!****f* m_yaml/yamldoc_add_dict
+!! NAME
+!! yamldoc_add_dict
+!!
+!! FUNCTION
+!! Add a field containing a dictionary/pair_list
+!!
+!! INPUTS
+!! label =
+!! pl =
+!! string_size =optional maximum storage size for strings found in a pair_list
+!! key_size =optional maximum storage size for keys of a pair_list
+!! multiline_trig =optional minimum number of elements before switching to multiline representation
+!! tag =optional add a tag to the field
+!! key_fmt =optional override the default formatting
+!! int_fmt =optional override the default formatting
+!! real_fmt =optional override the default formatting
+!! string_fmt =optional override the default formatting
+!! newline =optional set to false to prevent adding newlines after fields
+!! width =optional impose a minimum width of the field name side of the column (padding with spaces)
+!! [comment]: optional Yaml comment added after the value
+!!
+!! OUTPUT
+!! pl =
+!!
+!! SOURCE
+
+subroutine yamldoc_add_dict(self, label, pl, tag, key_size, string_size, key_fmt, &
+ int_fmt, real_fmt, string_fmt, multiline_trig, newline, width, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ type(pair_list),intent(inout) :: pl
+ character(len=*),intent(in) :: label
+ integer,intent(in),optional :: string_size, key_size, multiline_trig
+ character(len=*),intent(in),optional :: tag, key_fmt, int_fmt, real_fmt, string_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: w, vmax, ks, ss
+ character(len=30) :: kfmt, ifmt, rfmt, sfmt
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(ks, key_size, self%default_keysize)
+ ABI_DEFAULT(ss, string_size, self%default_stringsize)
+ ABI_DEFAULT(kfmt, key_fmt, self%default_kfmt)
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+ ABI_DEFAULT(sfmt, string_fmt, self%default_sfmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+
+ call yaml_print_dict(self%stream, pl, ks, ss, trim(kfmt), trim(ifmt), trim(rfmt), trim(sfmt), vmax)
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_dict
+!!***
+
+!!****f* m_yaml/yamldoc_add_real2d
+!! NAME
+!! yamldoc_add_real2d
+!!
+!! FUNCTION
+!! Add a field containing a 2D array of real numbers
+!!
+!! INPUTS
+!! label = key name
+!! arr(:, :) = input array.
+!! [slist(:)]= List of strings (same length as the first dim or second dime of arr, depending on mode).
+!! If present, the string will be included in the the row.
+!! [tag]= add a tag to the field
+!! [real_fmt]= override the default formatting
+!! [multiline_trig]: optional minimum number of elements before switching to multiline representation
+!! [newline]: set to false to prevent adding newlines after fields
+!! [width]: impose a minimum width of the field name side of the column (padding with spaces)
+!! [mode]: "T" to write the transpose of arr i.e columns become rows in output (DEFAULT), "N" for normal order
+!! [comment]: optional Yaml comment added after the key.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_real2d(self, label, arr, slist, tag, real_fmt, multiline_trig, newline, width, mode, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ real(dp),intent(in) :: arr(:, :)
+ character(len=*),intent(in) :: label
+ character(len=*),optional,intent(in) :: slist(:)
+ character(len=*),intent(in),optional :: tag, real_fmt
+ integer,intent(in),optional :: multiline_trig
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=1),intent(in),optional :: mode
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: m, n, w, i, vmax
+ real(dp) :: line(max(size(arr, dim=1), size(arr, dim=2)))
+ character(len=30) :: rfmt
+ character(len=1) :: my_mode
+ logical :: nl
+! *************************************************************************
+
+ m = size(arr, dim=1)
+ n = size(arr, dim=2)
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(my_mode, mode, "T")
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+
+ if (my_mode == "T") then
+ do i=1,n
+ call self%stream%push(eol//'-')
+ line(1:m) = arr(:,i)
+ if (.not. present(slist)) then
+ call yaml_print_real1d(self%stream, m, line, rfmt, vmax)
+ else
+ call yaml_print_real1d(self%stream, m, line, rfmt, vmax, string=trim(slist(i)))
+ end if
+ end do
+ else
+ do i=1,m
+ call self%stream%push(eol//'-')
+ line(1:n) = arr(i,:)
+ if (.not. present(slist)) then
+ call yaml_print_real1d(self%stream, n, line, rfmt, vmax)
+ else
+ call yaml_print_real1d(self%stream, n, line, rfmt, vmax, string=trim(slist(i)))
+ end if
+ end do
+ end if
+
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_real2d
+!!***
+
+!!****f* m_yaml/yamldoc_add_paired_real2d
+!! NAME
+!! yamldoc_add_paired_real2d
+!!
+!! FUNCTION
+!! Add a field containing two 2D real arrays with the same shape.
+!!
+!! Example:
+!! cartesian_forces_and_xred:
+!! - [ [ -0.0000E+00, -0.0000E+00, -0.0000E+00, ], [ 0.0000E+00, 0.0000E+00, 0.0000E+00, ] ]
+!! - [ [ -0.0000E+00, -0.0000E+00, -0.0000E+00, ], [ 2.5000E-01, 2.5000E-01, 2.5000E-01, ] ]
+!!
+!! INPUTS
+!! label = key name
+!! arr1(:,:), arr2(:,:) = input arrays.
+!! [slist(:)]= List of strings (same length as the first dim or second dime of arr, depending on mode).
+!! If present, the string will be included in the the row.
+!! [tag]= add a tag to the field
+!! [real_fmt]= override the default formatting
+!! [multiline_trig]: optional minimum number of elements before switching to multiline representation
+!! [newline]: set to false to prevent adding newlines after fields
+!! [width]: impose a minimum width of the field name side of the column (padding with spaces)
+!! [mode]: "T" to write the transpose of arr i.e columns become rows in output (DEFAULT), "N" for normal order
+!! [comment]: optional Yaml comment added after the key
+!!
+!! SOURCE
+
+subroutine yamldoc_add_paired_real2d(self, label, arr1, arr2, slist, tag, real_fmt, &
+ multiline_trig, newline, width, mode, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ real(dp),intent(in) :: arr1(:, :), arr2(:,:)
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag, real_fmt
+ integer,intent(in),optional :: multiline_trig
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=1),intent(in),optional :: mode
+ character(len=*),optional,intent(in) :: slist(:)
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: m, n, w, i, vmax
+ real(dp) :: line(2 * max(size(arr1, dim=1), size(arr1, dim=2)))
+ character(len=30) :: rfmt
+ character(len=1) :: my_mode
+ logical :: nl
+! *************************************************************************
+
+ m = size(arr1, dim=1)
+ n = size(arr1, dim=2)
+
+ ABI_CHECK(all(shape(arr1) == shape(arr2)), "arr1 and arr2 must have same shape")
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(my_mode, mode, "T")
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+
+ if (my_mode == "T") then
+ if (present(slist)) then
+ ABI_CHECK(size(slist) == n, "size(slist) != n")
+ end if
+ do i=1,n
+ call self%stream%push(eol//'- [')
+ line(1:m) = arr1(:,i)
+ call yaml_print_real1d(self%stream, m, line, rfmt, vmax)
+ call self%stream%push(',')
+ line(1:m) = arr2(:,i)
+ call yaml_print_real1d(self%stream, m, line, rfmt, vmax)
+ if (present(slist)) call self%stream%push(', '//trim(slist(i)))
+ call self%stream%push(' ]')
+ end do
+ else
+ if (present(slist)) then
+ ABI_CHECK(size(slist) == n, "size(slist) != m")
+ end if
+ do i=1,m
+ call self%stream%push(eol//'- [')
+ line(1:n) = arr1(i,:)
+ call yaml_print_real1d(self%stream, n, line, rfmt, vmax)
+ call self%stream%push(',')
+ line(1:n) = arr2(i,:)
+ call yaml_print_real1d(self%stream, n, line, rfmt, vmax)
+ if (present(slist)) call self%stream%push(', '//trim(slist(i)))
+ call self%stream%push(']')
+ end do
+ end if
+
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_paired_real2d
+!!***
+
+!!****f* m_yaml/yamldoc_add_int2d
+!! NAME
+!! yamldoc_add_int2d
+!!
+!! FUNCTION
+!! Add a field containing a 2D integer array
+!!
+!! INPUTS
+!! label = key name
+!! arr(:, :) =
+!! [slist(:)]= List of strings (same length as the first dim or second dime of arr, depending on mode).
+!! If present, the string will be included in the the row.
+!! [tag]= add a tag to the field
+!! [int_fmt]: override the default formatting
+!! multiline_trig =optional minimum number of elements before switching to multiline representation
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!! [mode] = "T" to write the transpose of arr i.e columns become rows in output (DEFAULT), "N" for normal order
+!! [comment]: optional Yaml comment added after the key.
+!!
+!! SOURCE
+
+subroutine yamldoc_add_int2d(self, label, arr, slist, tag, int_fmt, multiline_trig, newline, width, mode, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ integer,intent(in) :: arr(:, :)
+ character(len=*),intent(in) :: label
+ character(len=*),optional,intent(in) :: slist(:)
+ character(len=*),intent(in),optional :: tag, int_fmt
+ integer,intent(in),optional :: multiline_trig
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+ character(len=1),intent(in),optional :: mode
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: m, n, w, i, vmax
+ integer :: line(max(size(arr, dim=1), size(arr, dim=2)))
+ character(len=30) :: ifmt
+ character(len=1) :: my_mode
+ logical :: nl
+! *************************************************************************
+
+ m = size(arr, dim=1)
+ n = size(arr, dim=2)
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(my_mode, mode, "T")
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+ if (present(comment)) call self%stream%push(' # '//trim(comment))
+
+ if (my_mode == "T") then
+ do i=1,n
+ call self%stream%push(eol//'-')
+ line(1:m) = arr(:,i)
+ if (.not. present(slist)) then
+ call yaml_print_int1d(self%stream, m, line, ifmt, vmax)
+ else
+ call yaml_print_int1d(self%stream, m, line, ifmt, vmax, string=slist(i))
+ end if
+ end do
+ else
+ do i=1,m
+ call self%stream%push(eol//'-')
+ line(1:n) = arr(i,:)
+ if (.not. present(slist)) then
+ call yaml_print_int1d(self%stream, n, line, ifmt, vmax)
+ else
+ call yaml_print_int1d(self%stream, n, line, ifmt, vmax, string=slist(i))
+ end if
+ end do
+ end if
+
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_int2d
+!!***
+
+!!****f* m_yaml/yamldoc_add_dictlist
+!! NAME
+!! yamldoc_add_dictlist
+!!
+!! FUNCTION
+!! Add a field containing a list of dictionaries/array of pair_list
+!!
+!! INPUTS
+!! label = key name
+!! n =
+!! plarr(n) =
+!! key_size =optional maximum storage size for keys of a pair_list
+!! string_size =optional maximum storage size for strings of a pair_list
+!! multiline_trig =optional minimum number of elements before switching to multiline representation
+!! [tag]= add a tag to the field
+!! key_fmt =optional override the default formatting
+!! int_fmt =optional override the default formatting
+!! real_fmt =optional override the default formatting
+!! string_fmt =optional override the default formatting
+!! [newline] = set to false to prevent adding newlines after fields
+!! [width] = impose a minimum width of the field name side of the column (padding with spaces)
+!!
+!! SOURCE
+
+subroutine yamldoc_add_dictlist(self, label, n, plarr, tag, key_size, string_size, key_fmt, int_fmt, &
+ real_fmt, string_fmt, multiline_trig, newline, width)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ integer,intent(in) :: n
+ type(pair_list),intent(inout) :: plarr(n)
+ character(len=*),intent(in) :: label
+ integer,intent(in),optional :: key_size, string_size
+ integer,intent(in),optional :: multiline_trig
+ character(len=*),intent(in),optional :: tag, key_fmt, int_fmt, real_fmt, string_fmt
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: width
+
+!Local variables-------------------------------
+ integer :: w
+ character(len=30) :: kfmt, ifmt, rfmt, sfmt
+ integer :: vmax, ks, i, ss
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(w, width, self%default_width)
+ ABI_DEFAULT(kfmt, key_fmt, self%default_kfmt)
+ ABI_DEFAULT(rfmt, real_fmt, self%default_rfmt)
+ ABI_DEFAULT(ifmt, int_fmt, self%default_ifmt)
+ ABI_DEFAULT(sfmt, string_fmt, self%default_sfmt)
+ ABI_DEFAULT(vmax, multiline_trig, self%default_multiline_trig)
+ ABI_DEFAULT(ks, key_size, self%default_keysize)
+ ABI_DEFAULT(ss, string_size, self%default_keysize)
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, width=w, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, width=w)
+ end if
+ call self%stream%push(eol)
+
+ do i=1,n
+ call self%stream%push('- ')
+ call yaml_print_dict(self%stream, plarr(i), ks, ss, trim(kfmt), trim(ifmt), trim(rfmt), trim(sfmt), vmax)
+ if (nl .or. i /= n) call self%stream%push(eol)
+ end do
+
+end subroutine yamldoc_add_dictlist
+!!***
+
+!!****f* m_yaml/yamldoc_open_tabular
+!! NAME
+!! yamldoc_open_tabular
+!!
+!! FUNCTION
+!! Open a field for tabular data
+!!
+!! INPUTS
+!! label = key name
+!! [tag] =optional add a tag to the field
+!! [newline] = set to false to prevent adding newlines after fields
+!! [indent] = optional number of spaces to add to the header
+!! [comment]: optional Yaml comment added after the value
+!!
+!! SOURCE
+
+subroutine yamldoc_open_tabular(self, label, tag, indent, newline, comment)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: label
+ character(len=*),intent(in),optional :: tag
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: indent
+ character(len=*),intent(in),optional :: comment
+
+!Local variables-------------------------------
+ integer :: n
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(n, indent, 4)
+
+ if (n > 4) then
+ call self%stream%push(repeat(' ', n-4))
+ end if
+
+ if (present(tag)) then
+ call yaml_start_field(self%stream, label, tag=tag)
+ else
+ call yaml_start_field(self%stream, label, tag='Tabular')
+ end if
+
+ if (present(comment)) then
+ call self%stream%push(' | # '//trim(comment)//eol)
+ else
+ call self%stream%push(' |'//eol)
+ end if
+
+end subroutine yamldoc_open_tabular
+!!***
+
+!!****f* m_yaml/yamldoc_add_tabular_line
+!! NAME
+!! yamldoc_add_tabular_line
+!!
+!! FUNCTION
+!! Add a line of tabular data in an already opened table field
+!!
+!! INPUTS
+!! line =
+!! [newline] = set to false to prevent adding newlines after fields
+!! [indent] = optional number of spaces to add to the header
+!!
+!! SOURCE
+
+subroutine yamldoc_add_tabular_line(self, line, newline, indent)
+
+!Arguments ------------------------------------
+ class(yamldoc_t),intent(inout) :: self
+ character(len=*),intent(in) :: line
+ logical,intent(in),optional :: newline
+ integer,intent(in),optional :: indent
+
+!Local variables-------------------------------
+ integer :: n
+ logical :: nl
+! *************************************************************************
+
+ ABI_DEFAULT(nl, newline, .true.)
+ ABI_DEFAULT(n, indent, 4)
+
+ call self%stream%push(repeat(' ', n)//trim(line))
+ if (nl) call self%stream%push(eol)
+
+end subroutine yamldoc_add_tabular_line
+!!***
+
+!!****f* m_yaml/yamldoc_add_tabular
+!! NAME
+!! yamldoc_add_tabular
+!!
+!! FUNCTION
+!! Add a field with a complete table data
+!!
+!! INPUTS
+!! label =
+!! input =stream containing an already built table
+!! tag =optional add a tag to the field
+!! newline =optional set to false to prevent adding newlines after fields
+!! indent =optional number of spaces to add to each line
+!!
+!! SOURCE
+
+!subroutine yamldoc_add_tabular(self, label, input, tag, newline, indent)
+!
+!!Arguments ------------------------------------
+! class(yamldoc_t),intent(inout) :: self
+! character(len=*),intent(in) :: label
+! type(stream_string),intent(inout) :: input
+! character(len=*),intent(in),optional :: tag
+! logical,intent(in),optional :: newline
+! integer,intent(in),optional :: indent
+!
+!!Local variables-------------------------------
+! integer :: n
+! character(len=100) :: t
+! logical :: nl
+!! *************************************************************************
+!
+! ABI_DEFAULT(nl, newline, .true.)
+! ABI_DEFAULT(n, indent, 4)
+! ABI_DEFAULT(t, tag, 'Tabular')
+!
+! call yaml_open_tabular(label, tag=t, stream=self%stream, newline=nl)
+!
+! if (n > 4) call self%stream%push(repeat(' ', n - 4))
+!
+! call write_indent(input, self%stream, n)
+! if (nl) call self%stream%push(eol)
+!
+!end subroutine yamldoc_add_tabular
+!!***
+
+!!****f* m_yaml/yaml_single_dict
+!! NAME
+!! yaml_single_dict
+!!
+!! FUNCTION
+!! Create a full document from a single dictionary
+!!
+!! INPUTS
+!! unit
+!! tag =
+!! comment =
+!! pl =
+!! key_size =maximum storage size for the keys of pl
+!! string_size =maximum storage size for the strings found in pl
+!! tag =optional add a tag to the field
+!! int_fmt =optional override the default formatting
+!! real_fmt