Code Monkey home page Code Monkey logo

penf's Introduction

PENF GitHub tag

License License License License

Status Build Status Coverage Status

PENF, Portability Environment for Fortran poor people

A KISS library for exploiting codes portability for modern (2003+) Fortran projects.

  • PENF is a pure Fortran (KISS) library for achieving portable codes for modern Fortran projects;
  • PENF provides many number-to-string and viceversa facilities;
  • PENF is Fortran 2003+ standard compliant;
  • PENF is a Free, Open Source Project.

Table of Contents

Issues

GitHub issues Ready in backlog In Progress Open bugs

Compiler Support

Compiler Compiler Compiler Compiler Compiler Compiler

What is PENF?

Fortran is the most popular programming language for scientific computing. With Fortran it is quite simple obtain fast code and manage large multidimensional array. Because Fortran permits the achievement of high performance it is also used on great range of different computer-architectures, and often on the fastest supercomputer in the world. Therefore Fortran programs must be portable: portability means that the code will give the same results on every different computer-architectures. One of the most important goal of the numeric code is to control the numeric error due to finite precision of numerical operations. Fortran uses the IEEE representations. Integers and reals (floating point) are represented with a finite precision. So when the code computes an operation it has a truncation error due to the truncation of the numerical finite representations. For numerical and more in general scientific applications this source of errors must be controlled. The programmer must know which is the precision associated to the code variables. Before the standard Fortran 90/95 there are not any way to select the precision of the numerical variables in a portable fashion.

Modern Fortran standards (2003+) have introduced better support for codes portability. With the possibility to specify a kind parameter for variables, the standard Fortran 90+ makes available useful functions to select the kind precision in a portable parametric way. Using these functions the programmer can accurately control the precision of its own variables in a portable manner.

PENF module provides an effective KISS library to achieve portability and concurrently it provides many tools to handles parametrized numbers.

Go to Top

Main features

The library provides portable kind-parameters and many useful procedures to deal with them:

  • integer and reals parameters for 1,2,4,8,16 bytes-like representations;
  • integer and real formats definitions for all parameters;
  • integer and real minimum maximum representable numbers;
  • number-to-string and string-to-number casting procedures;
  • endianism procedures checking.

Any feature request is welcome.

Go to Top

Copyrights

PENF is an open source project, it is distributed under a multi-licensing system:

Anyone is interest to use, to develop or to contribute to PENF is welcome, feel free to select the license that best matches your soul!

More details can be found on wiki.

Go to Top

Documentation

Besides this README file the PENF documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.

A Taste of PENF

To be written.

Go to Top

Project history

a graphical overview of the history and evolution of PENF project

stack

survival

Go to Top

penf's People

Contributors

szaghi avatar lettleli avatar femparadmin avatar giacrossi avatar mardiehl avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.