prise en compte du carbone 14 dans le modèle...

53
Institut Institut Institut de Supérieure d' National de la Radioprotection et de Informatique de Recherche Sûreté Modélisation et de leurs Agronomique Nucléaire Applications Unité de Recherche sur l' Ecosystème Prairial Rapport de stage de troisième année d'école d'ingénieur Filière 2 : génie logiciel et système informatique Prise en compte du carbone 14 dans le modèle PASIM Auteur : Etienne Duclos Durée : 6 mois Avril à Septembre 2010 Responsables Entreprises : Raphaël Martin & Romain Lardy Denis Maro Responsable ISIMA : Claude Mazel 2009 – 2010

Upload: dinhphuc

Post on 11-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Institut Institut Institut deSupérieure d' National de la Radioprotection et deInformatique de Recherche SûretéModélisation et de leurs Agronomique NucléaireApplications

Unité de

Recherche sur l' Ecosystème

Prairial

Rapport de stage de troisième année d'école d'ingénieurFilière 2 : génie logiciel et système informatique

Prise en compte du carbone 14dans le modèle PASIM

Auteur : Etienne Duclos

Durée : 6 mois Avril à Septembre 2010

Responsables Entreprises : Raphaël Martin & Romain Lardy Denis MaroResponsable ISIMA : Claude Mazel

2009 – 2010

Page 2: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Institut Institut Institut deSupérieure d' National de la Radioprotection et deInformatique de Recherche SûretéModélisation et de leurs Agronomique NucléaireApplications

Unité de

Recherche sur l' Ecosystème

Prairial

Rapport de stage de troisième année d'école d'ingénieurFilière 2 : génie logiciel et système informatique

Prise en compte du carbone 14dans le modèle PASIM

Auteur : Etienne Duclos

Durée : 6 mois Avril à Septembre 2010

Responsables Entreprises : Raphaël Martin & Romain Lardy Denis MaroResponsable ISIMA : Claude Mazel

2009 – 2010

Page 3: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Remerciements

Je tiens avant tout à remercier toutes les personnes qui m'ont permis d'effec-tuer mon stage dans un environnement de travail agréable et dans d'excellentes conditions. Je pense ainsi à tous les employés de l'INRA de Clermont-Ferrand, et plus particulièrement aux membres de l'UREP, pour leur accueil au sein de leur laboratoire ainsi que leur bonne humeur.

Je remercie aussi chaleureusement Romain Lardy et Raphaël Martin, mes maitres de stage, pour leur accueil, leur disponibilité, ainsi que leurs conseils et leur encadrement tout au long de mon stage. Je remercie de même Dennis Maro et Séverine Le Dizès-Maurel, membres de l'IRSN, et Claude Mazel, mon référent ISIMA.

Enfin je tiens à remercier les membres de l'UREP qui travaillent sur le modèle PaSim et qui m'ont aidé durant mon stage. Je pense ainsi à Anne-Isabelle Graux et à Michaël Gaurut.

Etienne Duclos

Page 4: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Table des figures

Figure 1 : entrées et sorties de PaSim..........................................................6

Figure 2 : exemple de fichier .pasim.............................................................7

Figure 3 : exemple de fichier names_files_input.............................................7

Figure 4 : exemple de fichier pasimvar.txt ....................................................8

Figure 5 : exemple de fichier de sortie..........................................................9

Figure 6 : type carbon avec une fraction......................................................13

Figure 7 : surcharge d'un opérateur via une interface....................................13

Figure 8 : fonction addCarbon....................................................................13

Figure 9 : type carbon avec une quantité.....................................................14

Figure 10 : exemple de multiplication.........................................................15

Figure 11 : exemple de fichier d'entrée pour le carbone 14............................17

Figure 12 : prise en compte du carbone 14 lors de la photosynthèse...............17

Figure 13 : une partie de la fonction histwrite..............................................19

Figure 14 : exemple de fichier de sortie avec du carbone 14...........................19

Figure 15 : interface graphique pour PaSim.................................................20

Figure 16 : paramètres optionnels dans l'interface graphique.........................22

Figure 17 : onglet outputs de l'interface graphique.......................................22

Figure 18 : fenêtre de sauvegarde de l'interface graphique............................23

Figure 19 : onglet météo de l'interface, sans le carbone 14............................24

Figure 20 : onglet météo de l'interface, avec le carbone 14............................25

Figure 21 : fichier names_files_input généré par l'interface graphique.............25

Figure 22 : exécution de PaSim via l'interface..............................................26

Figure 23 : fin de simulation via l'interface graphique....................................27

Figure 24 : erreur lors d'une simulation par l'interface graphique....................27

Figure 25 : résultats avec une fraction de carbone 14 ambiant fixée à 1...........30

Figure 26 : gestion de la fraction de carbone 14 ambiant...............................30

Figure 27 : résultats avec une fraction de carbone 14 ambiant fixée à 1%........31

Figure 28 : effet de la désintégration du carbone 14......................................32

Etienne Duclos

Page 5: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 29 : évolution de la variable storage_rrc sans désintégration................33

Figure 30 : comparaison simulation vs observation dans l'herbe......................34

Figure 31 : comparaison simulation vs observation dans la biomasse...............35

Figure 32 : comparaison simulation vs observation dans la plante...................36

Figure 33 : problèmes de précision numérique.............................................37

Etienne Duclos

Page 6: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Résumé

J'ai effectué mon stage de fin d'étude d'ingénieur ISIMA au sein de l'Institut National de la Recherche Agronomique (INRA), dans l'Unité de Recherche sur l'Ecosystème Prairial (UREP). Mon stage a été effectué en collaboration avec l'Institut de Radioprotection et de Sûreté Nucléaire (IRSN).

J'ai été chargé d'ajouter la gestion du carbone 14 au sein de PaSim, modèle de simulation de prairie gérant déjà les flux de carbone et d'azote. Il m'a donc fallu faire la distinction, au sein du modèle, entre le carbone 12 et le carbone 14. Pour implémenter cela j'ai tout d'abord ajouté une fraction de carbone 14 pour ensuite raisonner en terme de quantité. Au final, un taux exprimé en Becquerels par kilo de carbone 14 fut la solution retenue.

Pour faciliter l'utilisation de PaSim, et ainsi permettre à l'IRSN de le prendre en main plus rapidement, une interface graphique a été réalisée lors d'un projet d'élève ingénieur en troisième année à l'ISIMA. Durant mon stage j'ai aussi été en charge de la maintenance et de la mise à jour de cette interface.

Mots clés : carbone 14, PaSim, fraction, quantité, Becquerels, interface graphique

Etienne Duclos

Page 7: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Abstract

My ISIMA third year course placement took place at the INRA, more precisely at the UREP. It was also realized in collaboration with the IRSN.

My aim was to add the carbon 14 to PaSim, a pasture simulation model which already deals with carbon and nitrogen. In order to realize this, I had to make the difference in the model between carbon 12 and carbon 14. I first add a fraction of carbon 14, then a quantity. The solution I choose was to add a rate expressed in Becquerels per kilogram of carbon 14.

In order to make PaSim more user friendly, for the IRSN for example, a graphical interface has been made as a project by two ISIMA third year students. During my internship I was in charge of the maintenance and the updates of this interface.

Keywords : carbon 14, PaSim, fraction, quantity, Becquerels, graphical interface

Etienne Duclos

Page 8: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Remerciements

Table des figures

Résumé

Abstract

Table des Matières

Introduction 1

1 Présentation 31.1 Présentation des instituts..................................................................3

1.1.1 Présentation de l'IRSN..............................................................31.1.2 Présentation de l'INRA..............................................................31.1.3 Présentation de l'UREP.............................................................4

1.2 Présentation du sujet.......................................................................51.2.1 Objectifs du stage....................................................................51.2.2 PaSim ...................................................................................5 i) Présentation du modèle................................................................5

ii) Les données nécessaires.............................................................6

iii) les sorties de PaSim...................................................................8

iv) Fonctionnement de PaSim...........................................................9

1.3 Présentation des outils et des langages utilisés...................................101.3.1 Les outils..............................................................................101.3.2 Les langages de programmation...............................................10

2 Réalisation 122.1 Module Carbone 14........................................................................12

2.1.1 Présentation..........................................................................122.1.2 Implémentation ....................................................................13 i) Raisonnement en fraction...........................................................13

ii) Raisonnement en quantité.........................................................14

iii) L'ajout d'une quantité de carbone 14 dans la matière sèche...........15

iv) Raisonnement en Becquerels.....................................................16

2.1.3 Les entrées...........................................................................162.1.4 Les sorties............................................................................18 i) Le fichier restart........................................................................18

ii) L'écriture des variables de type carbon........................................18

2.2 Interface graphique........................................................................202.2.1 Présentation..........................................................................202.2.2 Modifications apportées..........................................................21 i) Fichiers en entrée......................................................................21

Etienne Duclos

Page 9: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

ii) Nouveaux paramètres...............................................................21

iii) Gestion des paramètres............................................................21

iv) Sauvegarde............................................................................23

v) Gestion des fichiers de carbone 14..............................................24

vi) Exécuter PaSim via l'interface graphique.....................................26

3 Résultats et discussion 293.1 Tests relatifs à l'ajout du carbone 14.................................................293.2 Tests relatifs à la désintégration du carbone 14...................................323.3 Tests relatifs à l'utilisation du Becquerel............................................343.4 Problèmes de précision numérique....................................................373.5 Discussion.....................................................................................39

3.5.1 Désintégration du carbone 14 : intérêt et réalisation...................393.5.2 Intérêt de l'ajout de nouveaux éléments...................................393.5.3 Comparaison PaSim – TOCATTA...............................................40

Conclusion 41

Références bibliographiques et webographiques

Lexique

Lexique de programmation

Etienne Duclos

Page 10: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Introduction

La sûreté nucléaire et le devenir des rejets radioactifs sont des sujets qui nous concernent tous. On peut ainsi se demander si la présence de rejet radioactifs à côté de prairies éventuellement pâturées constitue un risque pour l'homme. C'est une des questions que traite l'IRSN, Institut de Radioprotection et de Sûreté Nu-cléaire. L'Unité de Recherche sur l'Ecosystème Prairial (UREP) appartenant à l'IN-RA étudie quant à elle, et comme son nom l'indique, l'écosystème des prairies, et notamment les cycles du carbone et de l'azote dans celles ci. Mon sujet de stage est issu d'une collaboration entre l'IRSN et l'UREP.

Le but de ce dernier est d'ajouter un module permettant la gestion différenciée des différents isotopes du carbone au modèle PaSim, développé par l'UREP. Ce modèle permet la simulation d'une prairie pour en connaître ses cycles d'azote et de carbone. L'un de ses avantages est le fait qu'il fonctionne avec un pas de temps horaire, contrairement à TOCATTA, modèle développé par l'IRSN, qui fonc-tionne avec un pas de temps journalier. Cette discrétisation au pas de temps ho-raire permet de modéliser plus finement le comportement de la végétation et ain-si différencier une réponse à une rejet nocturne ou diurne. Le modèle ainsi modi-fié pourra servir à traiter les cas de rejets accidentels de produits radioactifs et permettra de connaître les risques encourus lors de ces rejets.

Dans une première partie je présenterai les instituts dans lesquels j'ai effectué mon stage, ainsi que le modèle sur lequel j'ai travaillé et les outils utilisés. J'ex-pliquerai dans une deuxième partie comment j'ai ajouté le carbone 14 dans Pa-Sim et les modifications que j'ai apportées à l'interface graphique. Enfin j'expose-rai dans une troisième partie les résultats obtenus.

Etienne Duclos 1

Page 11: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Première partie

Présentation

Page 12: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

1 Présentation

1.1 Présentation des instituts

1.1.1 Présentation de l'IRSN

L'Institut de Radioprotection et de Sûreté Nucléaire (IRSN) est un établisse-ment public créé en 2001 et placé sous la tutelle de 5 ministères. Son activité principale est basée sur la recherche et l’expertise des risques nucléaires et ra-diologiques.

Plus précisément, l'IRSN exerce ses missions d'expertise et de recherche dans les domaines suivants :

● Radioprotection de l’homme ;● Sûreté des réacteurs ;● Sûreté des usines, des laboratoires, des transports et des déchets ;● Expertise nucléaire de défense ;● Prévention des accidents majeurs dans les installations nucléaires ; ● Surveillance radiologique de l’environnement et intervention en situation

d’urgence radiologique.

C'est dans le cadre de ce dernier point que l'IRSN et l'INRA collaborent pour intégrer la gestion du carbone 14 dans le modèle PaSim.

1.1.2 Présentation de l'INRA

L'Institut National de Recherche Agronomique (INRA) est un établissement de recherche public créé en 1946 lors de la reconstruction nationale d'après guerre. Son rôle était alors d'aider à la modernisation de l'agriculture française. Depuis, l'INRA a accompagné les mutations du monde agricole, des filières alimentaires et des territoires avec l’objectif de répondre aux attentes exprimées par la socié-té, notamment celle de la suffisance alimentaire de la nation.

Etienne Duclos 3

Page 13: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Son rôle actuel est basé sur trois grands axes de recherche : agriculture, ali-mentation et environnement, le tout dans une perspective de développement du-rable. Des thématiques possibles sont ainsi l'étude du changement climatique, la nutrition humaine, l'épuisement des ressources fossiles, ou l'équilibre dans la gestion des territoires. Une autre priorité de l'institut est la formation à la re-cherche et par la recherche. L'INRA accueille ainsi de nombreux doctorants et stagiaires, et ses chercheurs donnent des cours dans les disciplines agrono-miques.

L'INRA est actuellement le premier institut de recherche agronomique en Eu-rope, et le deuxième dans le monde. Il est placé sous la double tutelle du minis-tère de l'Enseignement supérieur et de la Recherche et du ministère de l'Alimen-tation, de l’Agriculture et de la Pêche. L’INRA comprend 14 départements scienti-fiques et 20 centres de recherche régionaux, répartis dans toute la France. Il comprend 230 Unités de Recherche (UR) et 146 Unités Mixtes de Recherche (UMR), l'associant à d’autres organismes de recherche ou d’enseignement supé-rieur.

Le centre de Clermont-Ferrand - Theix, dans lequel j'ai effectué mon stage, constitue le troisième des 20 centres de recherches et rassemble 9% de l’effectif total. Ce centre couvre des domaines tels que l’exploitation agricole, la prairie et l’animal, les produits animaux (lait, fromage, viandes) ou encore le végétal. Le centre est constitué de plusieurs unités, ayant chacune un thème de recherche spécifique. J'ai intégré l'Unité de Recherche sur l'Ecosystème Prairial (UREP).

1.1.3 Présentation de l'UREP

L'UREP est basée sur le site de Crouël, à Clermont-Ferrand, et fait partie du centre de Clermont-Ferrand – Theix. L'équipe est composée de 25 membres, dont 8 scientifiques, 9 doctorants et post-doctorants, et 8 techniciens de recherche.

Le projet global de l'unité pour la période 2008-2011 s'intitule : " Ecologie, fonctionnement et services de la prairie permanente dans un contexte de chan-gement global ". Il en résulte plusieurs objectifs, tels la maîtrise de la dynamique de la végétation, l'entretien de l'espace et du paysage, la gestion des milieux pour la conservation de la biodiversité, la préservation des stocks de carbone dans les sols, ou la limitation des pollutions azotées.

Pour parvenir à ses objectifs, l'UREP utilise dans certains cas une approche ba-sée sur la modélisation. FARMSIM, qui simule les productions d'une exploitation agricole dans sa globalité, est ainsi un modèle d'exploitation à vocation écono-mique, agronomique et environnementale. PaSim, modèle sur lequel j'ai travaillé et qui sera décrit par la suite, simule quant à lui un écosystème prairial.

Etienne Duclos 4

Page 14: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

1.2 Présentation du sujet

1.2.1 Objectifs du stage

Un projet de recherche commun entre l'IRSN et l'INRA a pour objectif d'implé-menter au sein de PaSim un module permettant de prendre en compte la diffé-rentiation des différents isotopes du carbone.

Ce module doit permettre de pouvoir suivre le chemin d'un élément radioactif, ici le carbone 14, dans un écosystème prairial à la suite d'un rejet de matières radioactive. Ceci afin de déterminer rapidement le taux de la contamination de la prairie afin par exemple de pouvoir déterminer si les animaux et leur produits sont consommables. L’IRSN disposerait alors d’un modèle traitant des situations accidentelles en complément du modèle TOCATTA1 (développé au sein de l’IRSN) qui est quant à lui adapté aux situations de rejets chroniques.

L'ajout de ce module va cependant entrainer des modifications dans les autres modules de PaSim2, car le carbone a une grande importance dans le modèle. Mon stage consiste donc aussi à vérifier que l'ajout de ce nouveau module ne fausse pas les résultats des autres modules.

1.2.2 PaSim

i) Présentation du modèle

PaSim (PAsture SImulation Model) est un modèle biogéochimique de simula-tion d'un écosystème prairial géré. Il simule, à l'échelle d'une parcelle et au pas de temps horaire, les flux de carbone, d'azote et d'énergie à l'interface entre le sol, la végétation, les animaux et l'atmosphère. PaSim est composé de plusieurs modules représentant les processus de la végétation, du microclimat, de la biolo-gie et de la physique du sol. La végétation y est représentée à l'échelle de la communauté et a été initialement paramétrée pour une prairie permanente, com-posée de graminées et de légumineuses.

PaSim a été adapté en 1998 du modèle Hurley Pasture Model (HPM). De nom-breux changements ont été opérés depuis avec par exemple l'ajout de modules d'irrigation, de labour, et de fertilisation automatisée. Le code, comportant ac-tuellement environ 60.000 lignes de code est écrit en FORTRAN 90 et est tou-jours en cours d'évolution. Ainsi le module animal est actuellement en développe-ment. Il permettra de :

Améliorer la simulation des performances de troupeaux laitiers ;Complexifier le rationnement (foin, ensilage et concentrés) ;Prendre en compte le type de production (lait ou viande) sur les émissions de méthane.

L'illustration 1 met en avant les différentes entrées et sorties du modèle, ainsi que ses modules.

1 Voir page 40 | 2 Voir page 12

Etienne Duclos 5

Page 15: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 1 : entrées et sorties de PaSim

PaSim est utilisé intensivement dans des projets de recherche européens et français dont le but est d'étudier les cycles du carbone et de l'azote, en particulier l'activité de séquestration de carbone et les émissions de gaz à effets de serre au niveau des prairies. Il est aussi utilisé affin de mieux appréhender les effets du changement et de la variabilité climatique.

La durée de simulation de PaSim est d'environ 20 secondes pour 1 an.

ii) Les données nécessaires

D'un point de vue technique, le lancement d'une simulation grâce à PaSim né-cessite la connaissance de beaucoup de données, comme nous pouvons le voir sur la figure 1. Ces données sont réparties dans 13 fichiers de la manière sui-vante :

un fichier .pasim (figure 2), contient la liste des options de la simulation, la liste des variables souhaitées en sortie, l'adresse vers le fichier names_files_input, l'adresse du dossier de sortie et l'adresse du fichier contenant les variables ainsi que leurs descriptions (fichier pasimvar) ;

un fichier .init_cond.par contient les données utiles à l’initialisation du mo-dèle pour les plantes, le sol et les animaux. Il contient également des pro-priétés de gestion sur la végétation ;

un fichier .management.dat contient un ensemble de données concernant la fauche, le pâturage et la fertilisation de la prairie ;

Etienne Duclos 6

Page 16: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 2 : exemple de fichier .pasim

un fichier .site_spe.par contient les données spécifiques du site sur lequel la simulation est effectuée (telle que la latitude ou le pH du sol) ;

un fichier names_files_input (figure 3) contient l'adresse des fichiers météo et des fichiers .init_cond.par, .management.dat et .site_spe.par ;

Figure 3 : exemple de fichier names_files_input

Etienne Duclos 7

Page 17: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

7 fichiers météo contiennent les données horaires des précipitations, de la température de l'air, de la vitesse du vent, de rayonnement, de la pression de la vapeur d'eau et des concentrations atmosphériques en CO2 et NH3 du site ;

Un fichier pasimvar.txt (figure 4) contient la liste de toutes les variables du modèle, avec leur description, leur unité ainsi qu'un entier utilisé pour connaître la dimension de la variable pour son écriture.

Figure 4 : exemple de fichier pasimvar.txt

iii) les sorties de PaSim

Les données fournies en sortie par PaSim sont stockées dans un fichier nom-mé out.nom_du_site.txt, comme illustré par la figure 5.

Les sorties peuvent être données à la fréquence souhaitée par l'utilisateur, les plus courantes étant horaire et journalière. De même nous pouvons les deman-dées pour toutes les années simulées ou uniquement pour la dernière, dans le cas de longues simulations par exemple.

Etienne Duclos 8

Page 18: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 5 : exemple de fichier de sortie

iv) Fonctionnement de PaSim

PaSim est un modèle à compartiments. C'est-à-dire que chaque entité, comme par exemple les racines de la plante ou l'animal, est représentée comme un com-partiment. Ces compartiments communiquent entre eux par l'intermédiaire de flux d'entrées et de sorties. Ces échanges de flux sont représentés par des équa-tions différentielles du type suivant :

où q représente la masse du compartiment, u(t) ce qui rentre dans le compar-timent à l'instant t, et k un paramètre représentant les sorties.

Nous avons donc les variables, notamment celles comportant du carbone, qui évoluent à chaque pas de temps en suivant des opérations simples (additions ou multiplications par exemple). Dans PaSim les équations différentielles sont réso-lues par la méthode d'Euler :

Yt+1 = Yt + dYt

où Yt+1 représente la valeur de la variable Y au temps t+1 et Yt au temps t, et dYt la variation de la grandeur Yt entre l'instant t et l'instant t+dt.

Le but de mon stage est donc de savoir comment évolue le carbone 14 au cours du temps et de l'intégrer à ces équations1.

1 Voir page 14

Etienne Duclos 9

Page 19: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

1.3 Présentation des outils et des langages utilisés

1.3.1 Les outils

Voici un rapide descriptif des outils que j'ai utilisé lors de mon stage.

Microsoft Visual Studio 2005 : Cet Environnement de Développement Intégré (IDE) développé par Microsoft permet de générer facilement du code en diffé-rents langages, en l'occurrence FORTRAN 90 pour mon stage. Il permet de plus la compilation, l'exécution et le débogage des applications.

Subversion : Lorsque plusieurs personnes travaillent sur un même projet, la mise en commun peut être délicate. L’utilisation d’un système de gestion de ver-sion tel que Subversion (SVN) permet d'éviter ce genre de désagrément, en per-mettant à chaque utilisateur de travailler sur une copie locale du projet. Lors des mises à jours, effectuées par les utilisateurs, SVN gère les conflits entre les diffé-rentes versions locales et maintient à jour une version qui contient l'ensemble des modifications/nouveautés sur un serveur distant. L'historique de l'ensemble des modifications est conservé.

Tortoise SVN : Il s'agit d'un client subversion pour Windows. Il permet d'utili-ser plus facilement les fonctionnalités offertes par ce gestionnaire de version en les intégrant directement à l'explorer Windows.

WinMerge : Cet outil open source permet de comparer facilement deux fichiers en indiquant quelles lignes sont différentes et en quoi elles le sont. Il est ainsi utilisé lors de la mise à jour d'un projet, ou lorsque l'on veut chercher une diffé-rence dans les résultats de deux simulations.

Eclipse : Cet Environnement de Développement Intégré (IDE) libre et écrit en JAVA permet de développer en JAVA. Je m'en suis servi pour l'interface graphique lors de mon stage. De même que Visual Studio, il permet la compilation, l'exécu-tion et le débogage des applications.

1.3.2 Les langages de programmation

Le modèle PaSim est écrit en langage FORTRAN (pour FORmula TRANslator). Il s'agit d'un langage procédural spécialisé pour les mathématiques et les applica-tions de calculs scientifiques, utilisé pour la première fois en 1956. La version uti-lisée pour PaSim, le FORTRAN 95, permet, entre autre, la création de types per-sonnalisés pour les variables, ainsi que la surcharge de fonctions et d'opérateurs. Il permet aussi l'utilisation de modules, permettant de regrouper des fonctions et des données pour les mettre plus facilement à disposition.

L'interface graphique de PaSim est quant à elle écrite en JAVA. Il s'agit d'un langage orienté objet, développé par Sun Microsystems, très facilement portable sur plusieurs systèmes d'exploitation, et utilisé pour la première fois en 1995.

Etienne Duclos 10

Page 20: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Deuxième partie

Réalisation

Page 21: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

2 Réalisation

2.1 Module Carbone 14

2.1.1 Présentation

Le carbone 14 est un isotope radioactif du carbone, présent naturellement à l'état de trace dans l'atmosphère à hauteur de 10-10 pour cent du carbone total. On peu ainsi observer une radioactivité classique de 240 Becquerels par kilo de carbone, un becquerel correspondant à une désintégration par seconde. Le car-bone 14 fait aussi partie des éléments rejetés par l'usine de retraitement des dé-chets radioactifs de la Hague, à côté de laquelle est située la prairie qui a servi lors de la collaboration entre l'IRSN et PaSim.

Comme tout élément radioactif, le carbone 14 se désintègre au cours du temps. Son temps de demi-vie, noté t1/2, est de 5730 ans ([WIKI14C]), c'est-à-dire que la moitié des atomes de carbone 14 sera désintégrée au bout de ce temps. Grâce à ceci nous pouvons en déduire la constante de désintégration journalière, k, grâce à la formule suivante : e-k.t

1/2 = ½. Celle ci, valant environ 3,31 10-7, sert pour la fonction de désintégration que j'ai implémenté dans Pa-Sim1. Lors de sa désintégration, le carbone 14 émet de l'azote 14, élément lui aussi radioactif. Cependant celui-ci n'est pas pris en compte dans PaSim car les quantités libérées sont négligeables.

En accord avec les chercheurs de l'IRSN, nous avons émis quelques hypo-thèses concernant le comportement du carbone 14 au sein de PaSim. Tout d'abord nous admettons que celui ci ne diffère pas du comportement du carbone stable (le carbone 12). Il suit ainsi le même chemin dans les plantes, le sol et les animaux. Cela a facilité l'ajout du carbone 14 dans PaSim car il n'a pas fallu diffé-rencier les flux de carbone entre les divers compartiments.

De même on suppose que la plante assimile indifféremment les différents iso-topes du carbone. Logiquement, l'activité de photosynthèse devrait favoriser les plus légers. Le carbone 14 étant plus lourd que le carbone 12, il devrait donc être moins absorbé, et toute la fraction présente lors de la photosynthèse ne devrait donc pas être prise en compte. Cependant, ce phénomène étant minime, nous considérons dans PaSim qu'il peut être négligé.

La dernière hypothèse concerne les animaux. Nous admettons ainsi que les vaches ne stockent pas de carbone, c'est-à-dire que l'ensemble du carbone ingé-ré se retrouve dans le lait, les urines, les matières fécales et le méthane.

1 Voir page 39

Etienne Duclos 12

Page 22: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

2.1.2 Implémentation

i) Raisonnement en fraction

Notre première idée pour implémenter l'intégration du carbone 14 dans PaSim fut de créer un nouveau type de variable contenant deux attributs : la quantité de carbone, qui correspond à la valeur de la variable, et sa fraction de carbone 14. Ceci est illustré figure 6.

Figure 6 : type carbon avec une fraction

La création de ce nouveau type de variable s'est faite dans un module diffé-rent, intitulé carbon14, dans lequel j'ai aussi implémenté les fonctions néces-saires à l'utilisation de ce type de variables. Il a ainsi fallu surcharger tous les opérateurs, ainsi que certaines autres fonctions, telle la fonction histwrite1. En FORTRAN la surcharge d'opérateur ou de fonction se fait via l'utilisation d'inter-face.

Figure 7 : surcharge d'un opérateur via une interface

Ainsi, lors de l'ajout de deux variables de type carbon, écrit « a + b » dans le code, la fonction addCarbon sera appelée implicitement. Le calcul effectué sera alors le suivant :

Figure 8 : fonction addCarbon

1 Voir page 18

Etienne Duclos 13

Page 23: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Nous avons donc dans le cas d'une addition du type x = a + b, la fraction de carbone 14 de x qui est calculée comme suit :

xc = (ac.aq+ bc.bq) / (aq + bq)où aq représente la quantité de carbone de a et ac représente la fraction de

carbone 14 de a.Ainsi dans une résolution d'équation différentielle grâce à la méthode d'Euler,

les opérations effectuées (additions et multiplications) le sont avec ces opéra-teurs redéfinis spécialement pour le type carbon.

Une fois ce type créé et les fonctions mises en place, il a fallu redéfinir toutes les variables contenant du carbone. Elles étaient jusqu'alors définies comme des réels ou des tableaux de réels. Ces variables sont nombreuses et présentes dans tous les modules de PaSim.

Comme dit précédemment, nous considérons, en plus de la quantité de car-bone de la variable, sa fraction de carbone 14, exprimée en pourcentage de la quantité de carbone. Nous avons raisonné en fraction car, pour nous, cela était le plus facile à interpréter. Ainsi une constante c14_ambiant a été créée et fixée à 1,2 10-12, fraction ambiante ([DATATIONC14]). Elle sert lors de l'initialisation des variables.

Cependant des problèmes numériques sont rapidement apparus, dus à la très faible valeur des fractions manipulées (parfois de l'ordre de 10 -17). Ces problèmes sont traités plus amplement dans la troisième partie de ce rapport1.

ii) Raisonnement en quantité

Pour parer à ces problèmes nous sommes passé à une autre option : plutôt que d'exprimer le carbone 14 en fraction, nous l'exprimons maintenant en quan-tité. Les valeurs ainsi manipulées sont plus importantes, et donc les risques de problème numérique moindres. La déclaration du type carbon ressemble donc maintenant à ceci :

Figure 9 : type carbon avec une quantité

Ce changement en a bien entendu entraîné d'autres, notamment au niveau des opérateurs. La constante c14_ambiant n'a quant à elle pas été modifiée, les quantités de carbone 14 étant initialisées en multipliant la quantité de carbone par la fraction ambiante.

Ce changement a eu l'effet escompté : la plupart des problèmes numériques ont été réglés. Cependant d'autres problèmes ont été mis en avant. J'ai ainsi re-

1 Voir page 37

Etienne Duclos 14

Page 24: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

marqué que d'autres variables allaient devoir être changées de type, comme l'ex-plique le paragraphe suivant.

iii) L'ajout d'une quantité de carbone 14 dans la matière sèche

Au départ seules les variables dont l'unité contenait du carbone se sont vues changées en type carbon. Cependant dans PaSim le cycle du carbone passe par de la matière sèche lors du calcul de la croissance de la partie aérienne des plantes, puis bascule à nouveau en carbone lors du calcul du substrat des plantes. Toute une portion du modèle ne prenait donc pas en compte le carbone 14.

Pour ne pas perdre d'information il a donc fallu changer certaines variables de matière sèche en type carbon. Cette modification a été faite alors que nous utili-sions la quantité de carbone 14. Nous avons donc considéré que ces variables avaient initialement une quantité de carbone 14 égale à leur valeur multipliée par la constante c14_ambiant. Cette considération fut aussi vraie lorsque nous avons utilisé les Becquerels par kilo de carbone, le taux de carbone 14 des variables de matière sèche étant fixé au taux ambiant.

Ce changement a causé quelques problèmes lors par exemple de la multiplica-tion d'une variable de matière sèche par une variable de carbone, principalement pour des raisons d'unités ou de calcul, comme l'illustre la figure 10. Multiplier les deux quantités de carbone 14 n'avait aucun sens physique, et il a donc fallu choi-sir dans ces cas là quelle quantité garder parmi les deux. Ces choix ne furent pas toujours évidents, et certains ne furent possibles que grâce à la mise en place de la désintégration du carbone 141.

Figure 10 : exemple de multiplication

Dans cet exemple, on a :- wsh et wshtot qui représentent la matière sèche structurelle et totale de la

repousse. Ce sont des variables de type carbon, et elles sont exprimées en kg MS (MS : Matière sèche) ;

- mc/12 qui est un paramètre représentant la masse molaire de la matière sèche sur celle du carbone (12). C'est un réel exprimé en kg MS/kg C ;– c qui représente le carbone total dans la plante. Il s'exprime en kilo de car-

bone (kg C), et est de type carbon ;

Ainsi, mc/12 * c s'exprime en kg MS et est de type carbon. wsh * (mc/12 * c) est donc un produit de matière sèche, ce qui a un sens

physique. Cependant dans PaSim il s'agit d'un produit de variables de type car-bon, ce qui pose alors problème.

1 Voir page 39

Etienne Duclos 15

Page 25: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

iv) Raisonnement en Becquerels

A la suite d'une réunion en présence de l'IRSN et après avoir reçu leurs don-nées, j'ai dû de nouveau modifier le type carbon pour prendre en compte non plus la quantité de carbone 14, mais un taux de carbone 14, exprimé en Becque-rels par kilo de carbone. En effet cette unité dérivée du Système International (S.I.) est la plus utilisée lorsqu'on parle d'éléments radioactifs. C'est de plus dans cette unité que l'IRSN possède ses données.

J'ai donc modifié de nouveau le module du carbone 14 pour prendre en compte un taux et non plus une quantité. De plus, comme ce taux n'est pas in-fime (le taux ambiant de carbone 14 est de 240 Becquerels par kilo de carbone), les erreurs numériques qui nous avaient poussé à raisonner en quantité plutôt qu'en fraction n'apparaissent pas.

Le modèle fonctionnant correctement avec le carbone 14 exprimé en quantités1, il n'y a donc pas eu de changements majeurs à effectuer. Les principales modi-fications se sont situées dans les opérateurs (l'addition de deux taux est diffé-rente de l'addition de deux quantités par exemple, mais elle est identique à l'ad-dition de deux fractions2), au niveau de la constante de carbone 14 ambiant (qui passe de 1,2 10-12 à 240), et dans les fichiers d'entrées. Pour le reste le taux de carbone 14 se comporte comme le faisait la quantité de carbone 14.

2.1.3 Les entrées

Comme pour les autres données météo, les fractions de carbone 14 présentes sur le site se trouvent dans un fichier appelé <nom_du_site>.C14.dat. Un exemple de fichier d'entrée est présenté figure 11. La lecture des données pré-sentes dans ce fichier se fait de la même manière que pour les autres entrées : toutes les valeurs sont lues pour une année, et une interpolation linéaire est ef-fectuée afin de ramener les valeurs sur le pas de temps souhaité (pour PaSim le pas de temps « usuel » est de 1/50e de jour).

Le format du fichier reste identique : la première colonne correspond à l'an-née, la deuxième au jour, la troisième à l'heure et la dernière colonne correspond au taux de carbone 14 présent dans l'air, exprimée en becquerel par kilo de car-bone.

Ces valeurs sont ensuite prises en compte lors de la photosynthèse. En effet dans le modèle PaSim les entrées de carbone se font uniquement via la photo-synthèse, et la variable « Pc_1pctl », qui représente le carbone substrat entrant via la photosynthèse. Il en va donc de même pour le carbone 14. La figure 12 illustre ceci.

1 Voir page 29 | 2 Voir page 13

Etienne Duclos 16

Page 26: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 11 : exemple de fichier d'entrée pour le carbone 14

Figure 12 : prise en compte du carbone 14 lors de la photosynthèse

Etienne Duclos 17

Page 27: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

2.1.4 Les sorties

i) Le fichier restart

Le fichier restart est, comme son nom l'indique, un fichier permettant de com-mencer une simulation à partir des données d'une simulation précédente. Ainsi à la fin d'une simulation ou lorsque le nombre maximum d'itérations fixé est at-teint, les valeurs de 153 variables contenant les informations nécessaires au lan-cement d'une simulation sont stockées dans ce fichier. Ces variables sont, par exemple, le taux de carbone présent dans le sol, dans les plantes, ou la tempéra-ture du sol à différentes profondeurs.

Parmi toutes ces variables certaines ont été passées en type carbon, et il a donc fallu stocker leur taux de carbone 14 en plus de leur quantité de carbone normal. Ceci s'est fait relativement facilement, le plus dur étant de faire attention à ne pas inverser deux variables ou deux indices dans le tableau servant de buf-fer.

La lecture du fichier restart nouvellement modifié s'est faite elle aussi assez simplement. Il s'agissait de faire les mêmes opérations que pour l'écriture, mais dans le sens inverse.

ii) L'écriture des variables de type carbon

L'affichage d'une variable dans le fichier de sortie se fait via une interface spé-cifique, appelée histwrite, qui alloue, selon la taille de la variable, le nombre de colonnes nécessaires pour pouvoir écrire la variable. En effet un tableau de trois valeurs demandera trois colonnes pour s'écrire, alors qu'une variable « simple » ne demandera qu'une colonne. Cette fonction se charge aussi, suivant le format de sortie demandé pour la variable, d'effectuer les calculs nécessaires. Par exemple si nous voulons une variable dont la valeur se cumule au fil des années, c'est la fonction histwrite qui s'en occupe, comme le montre la figure 13, dans le deuxième choix du case :

buff_c14(i,iv,1) = buff_c14(i,iv,1) + pdata(i)%quantityLa dimension de la variable est quant à elle connue grâce à l'entier présent

dans le fichier pasimvar1, et le lien entre cet entier et la dimension de la variable est fait dans le programme.

Jusqu'à présent il n'existait pas dans PaSim de variables dédoublées. J'ai donc dû ajouter une correspondance entre un entier et l'écriture d'une variable sur deux colonnes, puis créer une fonction histwrite_c14, à partir des fonctions hist-write existantes, qui s'occupe de stocker dans la première colonne la valeur de la variable, et dans le deuxième le taux de carbone 14 de la variable. Les sorties sont donc maintenant au format montré figure 14.

1 Voir page 8

Etienne Duclos 18

Page 28: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 13 : une partie de la fonction histwrite

Figure 14 : exemple de fichier de sortie avec du carbone 14

Etienne Duclos 19

Page 29: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

2.2 Interface graphique

2.2.1 Présentation

Comme nous l'avons vu précédemment, le lancement d'une simulation avec PaSim demande un grand nombre de données, réparties dans une dizaine de fi-chiers possédant chacun un formalisme bien précis. Leur saisie, qui se faisait le plus souvent à la main, est fastidieuse. Pour remédier à ceci l'UREP, via un projet de troisième année ISIMA réalisé en 2010 ([KPAMEGAN & AMENTA - 2010]), s'est doté d'une interface graphique permettant de créer et gérer plus facilement ces fichiers. L'interface, réalisée en JAVA par Sénoumi Karel Kpamegan et Raphaël Amenta, a l'apparence suivante :

Figure 15 : interface graphique pour PaSim

L'utilisateur saisit ensuite les données dans les champs prévus à cet effet, et les fichiers sont créés avec le bon formalisme de manière automatique lors de la sauvegarde. De plus des valeurs par défaut sont proposées pour aider à la créa-tion d'une nouvelle simulation. L'utilisateur peut enfin charger un site existant pour le modifier.

L'un de mes premiers objectifs a été de mettre l'interface à jour, des modifica-tions sur PaSim ayant été effectuées récemment. Quelques modifications ont été ajoutées par là même afin de faciliter son utilisation.

Par la suite j'ai été chargé, durant la durée de mon stage, de la maintenance de l'interface graphique. J'ai ainsi effectué les changements lorsqu'un fichier était modifié, ou corrigé les bugs découverts lors de l'utilisation de l'interface.

Etienne Duclos 20

Page 30: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

2.2.2 Modifications apportées

Au cours de mon stage j'ai apporté de nombreuses modifications à l'interface graphique.

i) Fichiers en entrée

La première modification que j'ai effectuée concerne le fichier lu par l'interface lors du chargement d'un site de simulation. Il s'agissait du fichier names_files_input qui, comme nous l'avons vu, contient l'adresse des fichiers d'entrées. Cependant nous ne pouvons pas connaître l'adresse du fichier .pasim à partir de ce fichier, alors que l'inverse est possible (le fichier .pasim contient l'adresse du fichier names_files_input). L'interface considérait que le fichier .pa-sim se trouvait dans le même répertoire que le fichier names_files_input, ce qui est vrai la majorité du temps. Cependant, pour éviter que des problèmes sur-viennent, il a été décidé que le fichier lu en entrée serait le fichier .pasim. Ainsi les adresses de tous les fichiers seraient connues.

Ce changement n'a pas entrainé beaucoup de modifications dans le code source de l'interface. Il a suffit de changer le mode de récupération de l'adresse du fichier names_files_inputs : au lieu de la récupérer à partir d'une boite de dia-logue on la récupère via la lecture du fichier .pasim. La récupération de l'adresse du fichier .pasim subit quant à elle l'effet inverse : nous la récupérons mainte-nant grâce à une boite de dialogue au lieu d'un chemin relatif créé à partir de ce-lui du names_files_inputs.

ii) Nouveaux paramètres

La deuxième étape des modifications concernait les paramètres : de nouveaux paramètres ont été ajoutés entre la création de l'interface et son utilisation. Il a donc fallu que je les identifie et que je les ajoute. La principale difficulté vient du fait que les paramètres n'ont pas d'ordres spécifiques dans le fichier .pasim. Nous devons donc, pour chacun d'entre eux, parcourir le fichier pour savoir si le para-mètre est présent ou non. En effet certains de ces paramètres sont optionnels, et ne sont donc pas forcément présents dans le fichier. Il a donc fallu gérer de plus ces cas particuliers, en ajoutant dans l'interface la possibilité de renseigner ou non des valeurs, et ce grâce à des boites à cocher (JcheckBox), comme nous pouvons le voir sur la figure 16. Si un paramètre est présent dans les fichiers d'entrée la case est alors cochée. De même une case non cochée fait que le para-mètre n'est pas écrit dans les fichiers en sortie.

iii) Gestion des paramètres

Une autre modification apportée a été la correction de certaines erreurs pré-sentes dans le code. En effet certains paramètres étaient rentrés « en dur » c'est-à-dire que ils étaient fixés à une valeur définie par le programmeur. Ces pa-ramètres pouvaient cependant être modifiées par la suite via l'interface gra-phique. Cela entrainait quelques erreurs, car lors du chargement d'un site dans l'interface on ne pense pas forcément à vérifier que tous les paramètres affichés dans l'interface sont bien ceux présents dans les fichiers chargés et non ceux par défaut. On peut donc se retrouver avec des valeurs par défaut qui ne corres-pondent pas à celles souhaitées.

Etienne Duclos 21

Page 31: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

De plus lors de la lecture du fichier .pasim, les variables souhaitées en sortie étaient lues puis stockées, mais pas prises en compte. Il a donc fallu faire en sorte que ces dernières soient affichées correctement dans la partie « outputs » de l'interface graphique afin que l'utilisateur puissent les repérer et éventuelle-ment les modifier. Ceci est illustré figure 17 : la colonne de droite correspond aux variables souhaitées en sortie et renseignées dans le fichiers .pasim. Elles n'étaient, avant les modifications, pas mises directement dans cette colonne lors de la lecture. Il fallait les y ajouter manuellement.

Figure 16 : paramètres optionnels dans l'interface graphique

Figure 17 : onglet outputs de l'interface graphique

Etienne Duclos 22

Page 32: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

iv) Sauvegarde

Une autre modification a été apportée au niveau de la sauvegarde des fichiers. L'interface possède deux options : « save » et « save as », qui sauvegardaient toutes deux les fichiers dans le répertoire par défaut, c'est-à-dire celui où se trouve l'exécutable de l'interface. La seule différence venait du fait qu'avec l'op-tion « save as » l'utilisateur pouvait choisir le nom du dossier, alors qu'avec l'op-tion « save » le nom du dossier était le nom du site renseigné dans l'interface.

Je me suis donc attaché à rendre cette interface plus conviviale en permettant à l'utilisateur de choisir, en plus du nom du dossier, son emplacement. Les deux options « save » et « save as » ont maintenant le comportement suivant : lorsque l'on sélectionne « save as », une fenêtre apparaît pour nous demander où nous souhaitons sauvegarder les fichiers, comme le montre la figure 18. Le com-portement de l'option « save » est sensiblement identique : lors du premier appel à cette option, la fenêtre présentée figue 18 apparaît. L'interface stocke alors le chemin du dossier dans lequel les fichiers ont été sauvegardés, et par la suite les y enregistre directement lors des nouveaux appels à l'option « save ».

Figure 18 : fenêtre de sauvegarde de l'interface graphique

Etienne Duclos 23

Page 33: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

v) Gestion des fichiers de carbone 14

Comme nous l'avons vu précédemment1, un nouveau fichier a été ajouté en entrée du modèle PaSim suite à l'intégration du carbone 14. J'ai donc dû logique-ment ajouter sa gestion dans l'interface graphique. Seulement le module du car-bone 14 ne sera pas utilisé par tous. Nous avons donc convenu de faire une ver-sion de l'interface spécifique aux sites contenant du carbone 14.

Concrètement cela s'est traduit par la présence dans le code d'un booléen, mis à « vrai » si nous souhaitons utiliser le carbone 14, et à « faux » sinon. Ceci n'est pas modifiable par l'utilisateur, car celui ci possèdera la bonne version de l'inter-face. Par la suite, si ce booléen est vrai, la gestion du carbone 14 se fait comme pour n'importe quel autre fichier météo : un bouton permet de charger le fichier, comme le montre les figures 19 et 20.

Figure 19 : onglet météo de l'interface, sans le carbone 14

Les valeurs affichées dans cet onglet correspondent au taux de carbone 14 moyen présent dans l'atmosphère durant l'année. Cependant ces valeurs étant très petite, de l'ordre de 10-12 en temps normal (cette modification a été faite lorsque nous raisonnions en quantité), il a fallu modifier la précision de l'affichage de l'interface graphique pour ne pas que celle ci affiche 0,0 comme valeur. J'en ai profité pour augmenter aussi la précision des autres valeurs, car comme nous le voyons sur la figure 19 elle n'était que d'un chiffre significatif pour la partie frac-tionnaire, ce qui n'était pas toujours suffisant. La précision est maintenant de 14 chiffres significatifs pour la partie fractionnaire du carbone 14, et de 4 pour les

1 voir page 16

Etienne Duclos 24

Page 34: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

autres variables. Maintenant, avec l'utilisation des Becquerels par kilo de car-bone, toutes les précisions sont à 4 chiffres.

Figure 20 : onglet météo de l'interface, avec le carbone 14

Comme pour les autres fichiers météo, le fichier <nom_du_site>.C14.dat n'est pas réellement sauvegardé. Ainsi le fichier utilisé pour le nouveau site est soit ce-lui qui a été chargé via l'interface graphique, soit celui d'un autre site. Il n'est pas recopié ni déplacé par l'interface.

Le fichier names_files_input sauvegardé par l'interface contient donc l'adresse du fichier chargé, comme le montre la figure 21 : ici les fichiers météo chargés sont ceux du site « Oensingen », et le site enregistré s'appelle « test ».

Figure 21 : fichier names_files_input généré par l'interface graphique

Etienne Duclos 25

Page 35: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

vi) Exécuter PaSim via l'interface graphique

Une autre fonctionnalité qui n'avait pas été implémentée dans l'interface est la possibilité de lancer une simulation directement depuis l'interface graphique. Jus-qu'à présent nous exécutions PaSim via Visual Studio ou en ligne de commande via la console MS-DOS. Cependant, dans le cadre de la collaboration avec l'IRSN, et afin de rendre PaSim plus facilement utilisable, nous avons décidé d'ajouter cette fonctionnalité à l'interface graphique.

Il fallait donc pouvoir faire en sorte qu'à partir d'un dossier contenant le .jar de l'interface et le .exe de PaSim, l'utilisateur puisse simuler un site se trouvant où que ce soit dans l'arborescence de fichier.

J'ai réalisé cela via la commande « exec » de la classe « Runtime », qui prend en argument la commande à exécuter (en l'occurrence pasim.exe site_de_simu-lation.pasim), les variables d'environnement (ici null, ce sont les mêmes que pour l'interface graphique), et le répertoire de travail (celui du fichier .pasim souhaité).

try {Runtime rt = Runtime.getRuntime();final Process p = rt.exec("pasim.exe " + this.grassland.getName()+".pasim", null,

temp);

Figure 22 : exécution de PaSim via l'interface

La difficulté majeure fut de lire les flux de sortie et les flux d'erreur générés par PaSim. Pour cela l'utilisation d'un thread par flux de sortie est nécessaire. Sans cela leur lecture ne peut s'effectuer de manière simultanée. Ainsi, si dans le code la lecture du flux de sortie est mis en avant, l'apparition d'une erreur ne sera pas prise en compte et le programme tournera donc indéfiniment.

L'utilisateur peut donc maintenant lancer une simulation d'un site à partir de l'interface. Pour cela il doit charger le site, éventuellement effectuer quelques modifications et les sauvegarder, si besoin est, puis lancer l'exécution via l'option « Run » du menu.

A la fin de l'exécution, si aucune erreur n'a été rencontrée, les fichiers de sor-ties sont écrits normalement, et l'utilisateur est averti que tout s'est déroulé sans problème, comme le montre la figure 23.

Si une erreur est intervenue, alors celle-ci est affichée, comme le montre la fi-gure 24.

Etienne Duclos 26

Page 36: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 23 : fin de simulation via l'interface graphique

Figure 24 : erreur lors d'une simulation par l'interface graphique

Etienne Duclos 27

Page 37: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Troisième partie

Résultats et discussion

Page 38: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3 Résultats et discussion

3.1 Tests relatifs à l'ajout du carbone 14

Afin de pouvoir valider les changements que j'ai apporté suite à la création du type carbon, j'ai effectué une série de tests sur plusieurs sites. Ces tests ont été réalisés avec la version de PaSim sans le module carbone 14 et avec celle conte-nant le module, pour pouvoir comparer les résultats et vérifier la non régression de l'application. En parallèle de ces tests j'ai fixé la fraction de carbone 14 am-biant à différentes valeurs « stratégiques », telles 100% et 1%, pour pouvoir va-lider le comportement des fractions.

La première série de tests a donc été effectuée avec une fraction de carbone 14 ambiant fixée à 1 et avait pour objectif de valider à la fois le comportement des fractions et le changement de type des variables.

Ces tests ont été réalisés à la fois pour le raisonnement en fraction et pour le raisonnement en quantité. Ils sont regroupés car ils ont eu la même utilité et sensiblement les mêmes résultats.

Pour pouvoir valider le changement de type des variables, c'est-à-dire la non

régression du modèle, une simple comparaison des résultats obtenus par la si-mulation avec et sans carbone 14 est nécessaire. Si ceux-ci sont identiques alors le changement est validé. En effet l'ajout d'une fraction (ou d'une quantité) de carbone 14 dans le modèle ne devrait pas changer le bilan de carbone de ce der-nier. Il s'agit juste d'une partie du carbone présent dans le modèle qui est main-tenant considérée comme du carbone 14 et non plus comme du carbone 12.

La validation du comportement des fractions est elle aussi facile à réaliser. Nous fixons la fraction ambiante à 1. La quantité de carbone 14 d'une variable doit alors être en tout temps égale à sa quantité de carbone totale. En effet le cycle du carbone 14 est le même que le cycle du carbone 12 car au moment où ces tests ont été réalisés nous ne considérions pas la désintégration du carbone 14.

Les résultats obtenus pour la quantité de carbone ont été immédiatement bons, contrairement à ceux des fractions. En effet au début des différences étaient présentes pour les fractions, dues à des erreurs pour la plupart dans les opérateurs surchargés. Une fois ces erreurs corrigées, les résultats ont été cor-rects, comme le montre la figure 25 (site d'Alinya, avec une fraction de carbone 14 ambiant de 1, en utilisant le raisonnement en quantité). Pour chaque variable la colonne de gauche représente la quantité totale de carbone, et celle de droite la quantité de carbone 14. On peut donc constater que la quantité de carbone 14 est bien égale à celle de carbone, que ce soit en début d'année (haut de la fi-gure) ou en fin d'année (bas de la figure).

Etienne Duclos 29

Page 39: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Figure 25 : résultats avec une fraction de carbone 14 ambiant fixée à 1

Suite à ces résultats satisfaisants, une nouvelle série de tests a été lancée, avec cette fois-ci une fraction de carbone 14 ambiant fixée à 1%. Ces tests ont permis de déceler de nouvelles erreurs, notamment avec le raisonnement en quantité : j'avais oublié régulièrement de multiplier la quantité de carbone 14 par la fraction de carbone 14 ambiant, lors par exemple de l'addition d'un nombre réel à une variable de type carbon, comme le montre la figure suivante.

Figure 26 : gestion de la fraction de carbone 14 ambiant

Ces erreurs ne pouvaient apparaître avec une fraction ambiante de 1, et n'ap-paraissent pas dans le raisonnement en fraction. Une fois ces erreurs réglées un nouveau problème est apparu : celui de la précision numérique, comme nous pouvons le voir sur la figure 27. Ici pour chaque variable, la fraction de carbone 14 devraient être égale à 1% de la quantité de carbone, ce qui n'est pas le cas pour les variables c et RECO.

Ces problèmes, ainsi que leur traitement, seront développés par la suite1.

1 Voir page 37

Etienne Duclos 30

Page 40: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Les résultats exposés ci dessous sont eux aussi obtenus sur le site d'Alinya, avec une fraction de carbone 14 ambiant de 1%, en utilisant le raisonnement en quantité, et sans désintégration.

Figure 27 : résultats avec une fraction de carbone 14 ambiant fixée à 1%

Afin de confirmer les résultats précédemment obtenus, de nouveaux tests ont été lancés avec une fraction de carbone 14 ambiant plus réaliste : 10-10. Ces tests ont été lancés sur cinq sites. Cependant, et contrairement aux précédents tests, ceux-ci se sont étalés sur des périodes variant de 6 à 100 ans, ceci dans le but de surveiller l'évolution de la quantité de carbone 14 au cours du temps. De plus beaucoup plus de sorties étaient cette fois demandées, de façon à pouvoir véri-fier que toutes les variables contenant du carbone 14 se comportent comme il faut.

Là encore des problèmes de précision numérique sont apparus. Mais d'autres anomalies au niveau des fractions de carbone 14 se sont révélées : certaines étaient beaucoup trop petites (de l'ordre de 10-20, contre 10-10 normalement). J'ai ainsi pu me rendre compte que lors de la multiplication de variables de type car-bon par des variables de matière sèche il fallait faire attention à ne garder la fraction de carbone 14 que d'une des deux variables. J'ai donc vérifié, pour chaque variable posant problème, son unité afin de choisir quelle fraction de car-bone il fallait garder1.

Une fois ces derniers détails réglés la vérification du changement de type des variables a été faite, et j'ai pu passer à l'ajout de la désintégration du carbone 14, dont voici les résultats.

1 Voir page 15

Etienne Duclos 31

Page 41: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3.2 Tests relatifs à la désintégration du carbone 14

Pour pouvoir tester si les fonctions de désintégration fonctionnent correcte-ment j'ai tout d'abord fixé la constante de désintégration à ln(2)/365. Il était ain-si plus simple de vérifier que les variables étaient correctement désintégrées qu'avec la constante normale, étant données qu'elles devraient diminuer de moi-tié en 1 an.

Cela m'a ainsi permis de me rendre compte de quelques erreurs (certaines va-riables avaient plus de carbone 14 quand elles étaient « désintégrée » qu'en temps normal..) et de les corriger.

Par la suite j'ai lancé les tests avec la constante de désintégration réelle (3,31 10-7), afin d'en valider l'ajout. Les résultats obtenus ont été satisfaisants, comme nous pouvons le voir sur la figure suivante :

Figure 28 : effet de la désintégration du carbone 14

Cette courbe, obtenue sur le site de Easter Bush S, montre l'évolution de la fraction de carbone 14 dans la variable storage_rrc lors de la 1294e année simu-lée. Cette variable est un bon indicateur de la concentration en carbone dans les plantes. Pour cette simulation l'entrée de carbone 14 était fixée constante à 1,2 10-12.

Afin de mieux interpréter cette courbe, on peut la comparer à la figure 29 qui montre l'évolution de cette même variable, dans la même simulation, mais sans

Etienne Duclos 32

Page 42: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

désintégration.

Figure 29 : évolution de la variable storage_rrc sans désintégration

Sur cette figure les variations sont dues aux imprécisions numériques. Nous pouvons cependant voir que la fraction reste constante à 1,2 10-12, qui corres-pond à la fraction ambiante.

Nous pouvons ainsi voir que les fonctions de désintégration du carbone 14 fonctionnent correctement.

Etienne Duclos 33

Page 43: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3.3 Tests relatifs à l'utilisation du Becquerel

Ces tests ont été pour la plupart réalisés sur le site de l'Atelier Nord, site dont les données nous ont été fournies par l'IRSN. Les simulations ne durent qu'un an, car nous possédons les données météo nécessaires à PaSim uniquement pour l'année 2007. Les résultats montrés ont été obtenus après avoir mis le site à l'équilibre, c'est-à-dire après avoir fait simuler la prairie jusqu'à ce que le sol at-teigne un état « stable ». La désintégration n'a pas été activée.

Outre le fait de vérifier que le passage de quantité de carbone 14 à des taux en Becquerel ne modifie pas les résultats, ces tests ont permis de comparer les résultats d'une simulation à des données réelles, l'IRSN nous ayant fourni les données nécessaires à ces comparaisons.

Voici les principales comparaisons effectuées :

Figure 30 : comparaison simulation vs observation dans l'herbe

Nous avons ici une comparaison entre le taux de carbone 14 mesuré in situ par l'IRSN (points violets) et le taux simulée par PaSim (courbe). La différence initiale résulte d'un pic de carbone 14 ayant eu lieu peu avant ces mesures (fin 2006), évènement que PaSim ne peut prendre en compte sans simuler l'année 2006.

Etienne Duclos 34

Page 44: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Nous remarquons ainsi que les résultats obtenus par simulation ont bien la même dynamique que les données mesurées, malgré quelques différences.

Figure 31 : comparaison simulation vs observation dans la biomasse

Cette deuxième comparaison est effectuée de la manière suivante. Régulière-ment (environ une fois par mois), l'IRSN effectue une fauche dans la prairie et mesure le carbone 14 contenue dans la biomasse fauchée. Cette mesure est ef-fectuée en deux endroits distincts, appelés zones, qui correspondent aux courbes jaune et violette. La courbe bleue correspond quant à elle au taux de carbone 14 obtenu par PaSim dans les repousses, c'est-à-dire dans la biomasse qui a pous-sée depuis la fauche précédente.

Nous remarquons que les taux obtenus par PaSim sont légèrement plus élevés que ceux mesurés, notamment en été. Cela vient du fait que le paramétrage de la prairie n'est pas encore optimal, possiblement au niveau de la teneur en eau du sol. La biomasse simulée en été est donc plus importante que celle observée, ce qui implique une plus grande absorption du carbone 14.

La dernière comparaison, présentée figure 32, concerne l'absorption du car-bone 14 par la plante. La courbe jaune représente le taux de carbone 14 mesuré dans l'air par l'IRSN ainsi que le carbone 14 en entrée de PaSim. La courbe noire représente quant à elle le carbone 14 présent dans le substrat de la plante, c'est- à-dire ce que la plante a absorbé lors de la simulation effectuée via PaSim.

Nous remarquons ainsi qu'en hivers (premier pic) les plantes captent beau-coup moins le carbone 14 qu'en été, la photosynthèse étant moins forte.

Etienne Duclos 35

Page 45: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

De même certains pics, comme celui proche du 152e jour ou ceux proches du 332e jour, ne sont pas totalement absorbés. Nous ne savons cependant pas d'où cela peut venir.

Malgré ces quelques différences, les résultats sont encore une fois satisfai-sants.

Figure 32 : comparaison simulation vs observation dans la plante

Ces principales comparaisons, ainsi que les autres effectuées et qui donnaient des résultats similaires, nous permettent de dire que la gestion du carbone 14 en utilisant le Becquerel par kilo de carbone est bonne.

Il faudrait maintenant pouvoir tester cette modification et comparer les résul-tats sur d'autres sites, mais nous n'avons pas les données météo nécessaires pour le moment, notamment au niveau du carbone 14.

Etienne Duclos 36

Page 46: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3.4 Problèmes de précision numérique

Comme nous l'avons vu lors de la présentation des résultats, des problèmes de précision numérique sont apparus. Au départ je pensais que les différences entre la quantité affichée et la quantité souhaitée venaient d'erreurs dans le code, mais après n'en avoir trouvé aucune, j'ai commencé à chercher au niveau de la précision des variables (Les variables sont, dans PaSim, des réels double précision (REAL(8)). Pour cela j'ai affiché, au moment de l'affectation des va-riables, les valeurs que ces dernières prenaient. Les résultats suivants ont été ob-tenues avec une fraction de carbone 14 ambiant de 1%.

Figure 33 : problèmes de précision numérique

Etienne Duclos 37

Page 47: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Nous devrions avoir

outc(:)%quantity_c14 = 0.01 * outc(:)%quantity

Or comme nous pouvons le voir des différences commencent à apparaître à partir du 7e chiffre après la virgule, et ce quelle que soit la dimension des valeurs passées. Ainsi avec une fraction de carbone 14 ambiant fixée à 10-10 nous avons l'erreur suivante :

outc(:)%quantity = 1.000000000000000e-003 outc(:)%quantity_c14 = 1.000000013351432e-013

Ces erreurs sont certes minimes, de l'ordre de 10-22 lorsque le modèle est utili-sé avec la fraction réelle, mais en cumulé cela donne des différences de l'ordre de 10-14 au final pour une variable comme c.

J'ai donc essayé de modifier la précision des variables dans le code de PaSim, et de l'augmenter, mais les résultats restent les mêmes. La différence apparaît toujours à partir du 7e chiffre après la virgule. J'ai donc voulu doubler cette préci-sion (passer les variables en REAL(16)), mais sans succès.

De plus ces problèmes de précision ne sont pas forcément visibles rapidement. Ainsi une variable qui est la différence de deux autres variables identiques pos-sède, selon l'affichage et les sorties du modèle, une valeur de l'ordre de 10 -27, au lieu de valoir 0.

La seule méthode à laquelle nous avons pensé pour résoudre ce problème est de mettre des tests en plus dans le modèle, ce qui le ralentirait considérable-ment. Et comme ces erreurs ne sont pas d'un ordre de grandeur trop important (au maximum de l'ordre de 1% de la fraction de carbone 14 ambiant) nous avons décidé de ne pas les traiter et de les laisser présentes. De plus ces erreurs appa-raissent essentiellement sur des variables de cumul, variables difficilement inter-prétables en terme de carbone 14.

Il est cependant à noter que ces erreurs n'apparaissent plus (ou alors sont tel-lement minimes qu'elles semblent ne plus être présentes) lorsque nous utilisons PaSim avec les taux en becquerel par kilo de carbone. Cela permet donc de ré-gler le problème.

Etienne Duclos 38

Page 48: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3.5 Discussion

3.5.1 Désintégration du carbone 14 : intérêt et réalisation

Comme nous l'avons vu précédemment le carbone 14 a un temps de demi vie de 5730 ans, c'est-à-dire qu'il se désintègre très lentement. On peut donc se de-mander si implémenter la désintégration est nécessaire et utile dans PaSim, sa-chant que la plupart des simulations durent moins d'une dizaine d'années.

Mais la principale utilité de la fonction de désintégration a été de valider le code. En effet, une fois celle-ci mise en place, nous aurions dû remarquer une très légère baisse du carbone 14 au cours du temps dans les résultats. Or au contraire nous avons remarqué que, pour certaines variables, la quantité de car-bone 14 augmentait (les tests pour la désintégration ont été effectués avec le rai-sonnement en quantité). Cela nous a donc permis de trouver et de corriger quelques erreurs qui subsistaient dans le code, notamment avec les variables de matière sèche.

Un flag a été ajouté dans le code et dans le fichier .pasim pour activer ou non la désintégration.

3.5.2 Intérêt de l'ajout de nouveaux éléments

Le carbone 12 et le carbone 14 ne sont pas les seuls isotopes du carbone. Il existe aussi le carbone 13, qui est stable et présent naturellement en quantité négligeable (environ 1% du carbone total), mais néanmoins nettement supé-rieure à celle du carbone 14. Cet isotope n'est pour le moment pas pris en compte dans PaSim car il ne représente pas un grand intérêt pour le modèle, sa principale utilisation étant le rôle de marqueur lors d'expérimentation.

Un autre isotope du carbone est le carbone 11. Il est radioactif, tout comme le carbone 14, et possède un temps de demi vie de 20 minutes. Lui aussi n'est pas vraiment intéressant pour PaSim, sa principale utilisation étant le domaine de la médecine nucléaire.

Cependant leur ajout, si un jour il s'avérait nécessaire, serait, grâce au type carbon que j'ai créé, relativement simple. Il suffirait en effet de rajouter une nou-velle ligne dans la définition du type, et de modifier les opérateurs et fonctions spéciales.

Un autre projet est l'ajout du tritium dans PaSim. Le tritium est un isotope ra-dioactif de l'hydrogène. Il est, avec le carbone 14, l'un des deux radionucléides les plus émis dans l’environnement par les installations nucléaires en fonctionne-ment normal. On le trouve ensuite principalement dans l'eau.

Son intégration à PaSim serait néanmoins délicate, contrairement à celle des isotopes du carbone. En effet l'eau est utilisée, dans PaSim, uniquement pour les mécanismes de croissance des plantes. Tous les mécanismes internes à la plante sont ensuite basés sur la matière sèche. L'ajout du tritium nécessiterait donc la gestion de l'eau dans la plante, ce qui n'est pour l'instant pas une priorité.

Etienne Duclos 39

Page 49: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

3.5.3 Comparaison PaSim – TOCATTA

Comme nous l'avons vu, l'IRSN possède aussi un modèle de simulation pre-nant en compte le carbone 14 ainsi que le tritium. Il s'agit du modèle TOCATTA (Transfer Of Carbon 14 And Tritium in Terrestrial and Aquatic environments), qui comme son nom l'indique, simule le transfert du carbone 14 et du tritium.

La différence première entre PaSim et TOCATTA, et ce qui a d'ailleurs poussé l'IRSN à vouloir utiliser PaSim, est le pas de temps des modèles. Les simulations de PaSim se font au pas de temps horaire alors qu'elles se font de manière jour-nalière dans TOCATTA. Cela a une importance au niveau de la photosynthèse. En effet, lors de rejet de carbone 14 durant la nuit, nous remarquons bien que la vé-gétation modélisée par PaSim ne l'absorbe pas, ou très peu, ce qui est réaliste. TOCATTA, faisant la moyenne sur la journée, le prend quant à lui en compte. Cette différence implique que PaSim peut être utilisé dans une situation de rejet ponctuel, durant tout au plus quelques heures, alors que TOCATTA, lui, est plus fait pour une situation de rejets constants et chroniques, situation que PaSim peut lui aussi traiter.

Un point commun aux deux modèles est qu'ils sont tous les deux conçus pour simuler un milieu agricole. Ils sont composés de compartiments représentant le sol, la végétation et les animaux. Cependant, et contrairement à PaSim, TOCATTA gère l'eau dans la plante et dans le sol, ce qui lui permet de prendre en compte le tritium.

Une autre différence importante entre PaSim et TOCATTA vient de la concep-tion du modèle. Dans PaSim les compartiments de la plante sont composés de quatre pools d'âges différents. Les différents isotopes du carbone rentrent dans le compartiment le plus jeune pour ensuite être dilués dans les trois autres pools au cours du temps. Dans TOCATTA le carbone est capté partout pareil. Cette diffé-rence conceptuelle n'a cependant pas encore pu être testée et comparée en terme de résultats.

Etienne Duclos 40

Page 50: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Prise en compte du carbone 14 dans le modèle PASIM

Conclusion

Le but du stage était d'ajouter la différentiation des différents isotopes du carbone au modèle PaSim, et de valider cet ajout en le testant sur des données réelles. Il m'a de plus été demandé, au cours de mon stage, de m'occuper de l'interface graphique de PaSim, en la tenant à jour vis à vis des modifications apportées dans le logiciel, et de lui ajouter quelques fonctionnalités.

Ces objectifs sont considérés comme atteints. Le carbone 14 et sa gestion ont été ajoutés dans PaSim, et les simulations menées grâces aux données ap-portées par l'IRSN fournissent des résultats satisfaisants. De son côté l'inter-face graphique de PaSim est à jour et opérationnelle, et permet de lancer sim-plement des simulations.

La complexité de PaSim, ainsi que sa grande taille (plus de 60 000 lignes de code) ont représentés une difficulté au début, notamment au niveau de la prise en main. Cependant, une fois ce temps d'adaptation passé, travailler sur un programme de cette taille m'a permis d'apprendre à prendre plus de recul quant aux choix que je fais, à voir s'ils ont vraiment leur place dans le pro-gramme et s'ils ne modifient pas une autre partie à laquelle je n'avais pas pen-sé.

Le prochain objectif pourrait être l'ajout du tritium à PaSim. Cela se tradui-rait aussi par l'ajout de la gestion de l'eau dans les plantes, chose qui n'est ac-tuellement pas prise en compte. De plus, l'étude de PaSim et du carbone 14 va être poursuivie par moi dans un premier temps, grâce à la signature d'un contrat à durée déterminée de 3 mois, puis par une post-doctorante de l'IRSN à partir de janvier.

Rapport de stage 2010 41

Page 51: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Références bibliographiques et webographiques[WIKI14C] : Carbon 14, http://en.wikipedia.org/wiki/Carbon-14

[DATATIONC14] : La mesure du temps dans l’histoire de la Terre et de la vie, http://herve.mulard.pagesperso-orange.fr/Telechargement/Mesure%20du%20temps.pdf

[KPAMEGAN & AMENTA - 2010] : S. K. KPAMEGAN & R. AMENTA, Conception d’une interface pour le modèle PASIM, 2010

Etienne Duclos

Page 52: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Lexique

Becquerels : Unité dérivée du Système International pour l'activité d'un ra-dionucléide. Correspond à une désintégration par seconde. Elle est homogène à s-1,l'inverse de la seconde.

graminées : Famille des plantes herbacées qui comprend notamment les cé-réales.

isotopes : Atomes possédant le même nombre de protons mais un nombre différent de neutrons. Par exemple le carbone 12 et le carbone 14.

légumineuses : Plantes dont le fruit est une gousse.

matière sèche : Matière obtenue lorsqu'on enlève l'eau de la plante (matière organique et minérale, moins l'eau).

prairie permanente : Prairie consacrée à la production d’herbage sur une période d'au moins 5 ans.

Etienne Duclos

Page 53: Prise en compte du carbone 14 dans le modèle PASIMweb.soccerlab.polymtl.ca/~ducloset/projets/isima_stage3.pdf · Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle

Rapport de stage 2010 : Prise en compte du carbone 14 dans le modèle PASIM

Lexique de programmation

buffer : Mémoire utilisée pour le stockage temporaire de données.

IDE : Est appelé Environnement de Développement Intégré un programme regroupant un ensemble d'outils d'aide au développement logiciels.

interface : En FORTRAN une interface permet de regrouper sous un même nom plusieurs fonctions.

Langage procédural : Langage basé sur l'appel de procédures (série d'étapes à réaliser).

Langage orienté objet : Langage basé sur l'interaction d'objets, qui repré-sentent un concept, une idée ou une entité.

open source : Un logiciel est open source lorsqu'il est distribué librement, que son code source ainsi que ses travaux dérivés sont accessible librement

surcharge : En programmation, la surcharge d'un opérateur ou d'une fonc-tion est la redéfinition de cet opérateur pour qu'il puisse être utilisé avec d'autres objets que ceux prévus initialement.

thread : Ou tâche, est une partie des instructions d'un processus.

Etienne Duclos