[Fortran] Easy exercises / Exercices de Fortran



Exercice 1 : Accès réservé aux enfants !
Écrire un programme en Fortran qui permet d’afficher un message de «Laissez-passer » aux personnes ayant un âge inférieur ou égal à 14.  

Exercice 2 : Réponse oui/non
Écrire un programme qui permet de lire un caractère au clavier et agir en conséquence en tenant compte du fait que l’utilisateur peut répondre « oui » en tapant O majuscule ou o minuscule et idem pour non ( avec N ou n).  

Exercice 3 : Résolution d’une équation de deuxième degré
Écrire un programme qui permet de résoudre une équation de type           
ax2+bx+c=0
dans l’ensemble R, a,b et c sont des données à lire à partie du clavier.
Test de vérification : x2-13x/6-5/6  admet comme solution 5/2 et -1/3

Exercice 4 : Somme d’une suit
Écrire un programme qui permet de calculer la somme des 100 premiers éléments de la suite (n2 +1).

Exercice 5 : Créer un compteur à rebours.

Exercice 6 : Total des prix.
Nous disposons d’un fichier contenant des prix arrangés en colonnes, en veut calculer la somme de chaque colonne et générer un fichier contenant le résultat sous le format suivant :
Somme colonne 1 : ####
Somme colonne 2 : ####
Somme colonne 3 : ####

Exercice 7 : Recherche d’un entier négatif
Soit une liste d’entier stockée dans un fichier, écrire un programme qui permet de chercher le premier entier négatif dans cette liste, afficher sa valeur et sa position dans la liste.

Exercice 8 : Somme infinie d’une suite :
Calculer la somme infinie de la suite suivante :
S= {1/n.n}n=1,infini
On prend comme critère de convergence la condition suivante : 1/n.n<epsilon=0.0001
                                     
                                                                      
Exercice 9 : Sommation de deux matrices
Créer deux tableaux A(n,n) et B(n,n) pour deux matrices, et ensuite écrire un code Fortran qui permet de faire la somme de ces matrices carrés A(n,n) et B(n,n) et stocker la somme dans une matrice SOMME(n,n)

Exercice 10 : Produit de deux vecteurs :
Créer deux vecteurs A(n) et B(n) et calculer son produit scalaire.  

Exercice 11 : Traitement de fichiers
Les éléments de deux matrices A(n,m), et B(n,m) sont stockés dans deux fichiers, écrire un code qui permet de lire ces données et les stocker dans deux tableau fortran ensuite calculer leur somme dans SOMME(n,m) et enregistrer cette matrice dans un nouveau fichier.

Solutions
   Exercice 1
   Exercice 2

[Fortran 77] Random Number Generators

Often problems arise that require generation of a random number or a series of random numbers.
I propose you a subroutine written under Fortran 77 that can generate The random number distributed between 0 and 1 or if you want between -1 and 1.


      subroutine random(ranVOld,SEED,ranV)

       double precision  ranVOld,ranV
       integer sing
       INTEGER*4 SEED

        SEED = time() + ranVOld*10000000
        ranV =  ran ( SEED )

        sing = int( ranV*100 )
        if(mod(sing,2).EQ. 0 ) ranV=-RanV

      End
This is an example to use it

        double precision ranV,ranVold
        integer i,j,SEED
        double precision Track(100000,2)


        ranV = 0.d0
        SEED = TIME()
        ranVold = 0.d0

        call  random(ranVold,SEED, ranV)

        write(*,*)ranV

        END

Simulation of droplet in flat bassin

A simulation of droplet in flat bassin can be done using the 2D shallow water equations ( namely also Saint-Venant equations). It can be written as:

 

We use in this simulation, the finite volume method to solve numerically this equations on a cartesian meshes.



How to mesh a coastal area: Triangular mesh of Gibraltar as example


Please contact me if you need more explanations.

Many numerical studies of coastal areas uses triangular meshes in their models, in this tutorial, I well try to demonstrate an easy way to generate a triangular mesh of the strait of Gibraltar.

In this work, we need a soft to extract the boundary node to use in a mesh generator. For this we can use any picture editor, which can give the coordinate in pixels. WebPlotDigitizer can do this task very well.

1- Map of Gibraltar
With Google maps or any other digital maps try to zooming on Gibraltar or your coastal area, then create an image of it.



2- With a soft that can give the coordinate, extract a serie of coordinate in the sense of watch needle as shown in this picture.


3- With triangle mesh, generate the triangular mesh of your system. This tool generates two file, One is for the coordinate node, the other is for the element nodes.
 For more explantions, to help you for another mesh or simply you need this mess, please contact me.

My Thesis

Contribution to the shallow water modelisation, with pollutant transport (Application to the Bay of Tangier)
This thesis is a contribution to the numerical solution of a hyperbolic conservation law resulting from a coupling between the Saint-Venant equations, for the modeling of flows in shallow water, and transport-diffusion equation of a non active pollutant. The mathematical model used is two dimensional, incorporating terms of friction, diffusion, surface tension and a term of variation of the bathymetry. We present a numerical model based on a higher order two-dimensional finite volume scheme , conservative and consistent, on an adaptive unstructured mesh , this model preserves the positivity of water depth and the steady state associated with the lake at rest, it can accurately capture shock waves. In a time extension to the second order is guaranteed by using a Runge-Kutta which will take into account the different speeds of propagation of information in the different issues involved. We apply the numerical model developed over several issues. Among other things, the simulation of propagation of a flood wave, flow around a singularity geometric flow on variable funds and having steep edges. And in the end, the numerical study ends with an application of the model for the simulation of pollutant transport in a real geometry with a highly variable bathymetry as like the bay of Tangier.

DOI: http://tel.archives-ouvertes.fr/docs/00/57/51/38/PDF/These_EMCA.pdf

Pollutant Transport In Tanger's Bay

In this simulation, the Shallow water equations are used and resolved by the finit volume method over triangular mesh with Roe scheme and Vazquez-Cendon traitement for the bottom variable.

New Mesh: Nador Lagoon

I would start studying hydrodynamics of the lagoon of Nador. A numerical work requires a meshing of the study area, and because I am interested on triangular mesh, on the following pic an example of the last mesh that I made.

meshNador