# Modern SLATEC Library

**URL:** <https://fortran-lang.discourse.group/t/modern-slatec-library/2101>\
**Category:** Uncategorized\
**Created:** [October 17, 2021, 4:35pm UTC](https://fortran-lang.discourse.group/t/modern-slatec-library/2101 "2021-10-17T16:35:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mehdi\_Chinoune](https://avatars.discourse-cdn.com/v4/letter/m/898d66/32.png) [@Mehdi\_Chinoune](https://fortran-lang.discourse.group/u/Mehdi_Chinoune)\
**Post date:** [October 17, 2021, 4:35pm UTC](https://fortran-lang.discourse.group/t/modern-slatec-library/2101/1 "2021-10-17T16:35:20Z")

</div>

Three years ago I have started modernizing SLATEC project.  
The project is hosted on [MehdiChinoune/SLATEC (github.com)](https://github.com/MehdiChinoune/SLATEC).  
I am publishing this just if someone is interested in the project and want to complete what I have started

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [October 17, 2021, 6:41pm UTC](https://fortran-lang.discourse.group/t/modern-slatec-library/2101/2 "2021-10-17T18:41:08Z")

</div>

Welcome to the forum, and thanks for the SLATEC modernization project. The original code base was FORTRAN 77. I see that you have

1. converted the original SLATEC to free source form
2. added argument intents
3. added KINDs to the declarations of reals
4. declared many procedures to be pure or elemental
5. put procedures in modules
6. used allocatable arrays
7. used `error stop`
8. used modern comparison operators such as `==` and `>`

When you say “complete what I have started”, do you have particular improvements in mind?

---

<div class="post-metadata">

**Author:** ![Mehdi\_Chinoune](https://avatars.discourse-cdn.com/v4/letter/m/898d66/32.png) [@Mehdi\_Chinoune](https://fortran-lang.discourse.group/u/Mehdi_Chinoune)\
**Post date:** [October 17, 2021, 7:09pm UTC](https://fortran-lang.discourse.group/t/modern-slatec-library/2101/3 "2021-10-17T19:09:17Z")

</div>

> [@Beliavsky](#):
>
> Welcome to the forum, and thanks for the SLATEC modernization project. The original code base was FORTRAN 77. I see that you have
> 
> 1. converted the original SLATEC to free source form
> 2. added argument intents
> 3. added KINDs to the declarations of reals
> 4. declared many procedures to be pure or elemental
> 5. put procedures in modules
> 6. used allocatable arrays
> 7. used `error stop`
> 8. used modern comparison operators such as `==` and `>`
> 
> When you say “complete what I have started”, do you have particular improvements in mind?

Yes  
1- Silent all the remaining warnings.  
2- Port tests to pFUnit (or another testing framwork).  
3- Rewrite tangled (spaghetti) code.  
4- Replace assumed-size arrays by assumed-shape arrays  
5- Write generic functions so Instead of calling one of two (or more) prefixed functions for single and double precision (`sfun` and `dfun`). the user calls the generic function `fun`.
