1 | |
---|
2 | Nathalie |
---|
3 | 1) Reperer tous les parametres potentiellement modifiables du code et les en extraire pour pouvoir |
---|
4 | les modifier dans le run.def sans avoir a recompiler le modele |
---|
5 | - have a set of PFTs that are associated to potentially different physics/equations but as restricted as possible |
---|
6 | ==> exemples Ciais |
---|
7 | 2) pour les PFTs existants, spatialiser les parametres de facon a pouvoir commencer a prendre en compte une notion de 'varietes'. (Voir comment on articule ca avec la lecture de la carte de vegetation) |
---|
8 | 3) pour les PFTs existants, definir de nouveaux parametres 'descriptifs' permettant de les definir en externe. Par exemple 'tree', 'C3', 'deciduous', ..... (Voir comment on articule ca avec la lecture de la carte de vegetation) |
---|
9 | 4) Toujours pour les PFTs existants, autoriser le choix du nombre de PFTs (par exemple 11 si pas d'agriculture, 13 si agriculture) a etre modifie en fonction de la simulation. |
---|
10 | 5) Et enfin pouvoir augmenter le nombre de PFTs mais cela releve tout d'abord des travaux des uns et des autres. |
---|
11 | |
---|
12 | Nicolas |
---|
13 | Il serait peut être sympa de pouvoir rajouter la possibilité de lire une carte (spatialisée) de |
---|
14 | correspondance entre les PFTs du modÚles et ceux de la carte de végétation lue. Comme cela on |
---|
15 | pourrait par exemple continuer à utiliser une carte 13 PFT existante mais définir que le PFT culture |
---|
16 | C4 (13 de la carte de veg) en Europe c'est du maïs (par ex pft 15 du modÚle) et du mil en Afrique |
---|
17 | (par ex pft 16 du modÚle). |
---|
18 | |
---|
19 | les fichiers textes existent déjà : les orchidee.def |
---|
20 | => on peut (doit !) les découper. 2 propositions : |
---|
21 | 1) orchidee_ol.def, sechiba.def, stomate.def |
---|
22 | 2) forcing_orchidee.def, physic_orchidee.def |
---|
23 | |
---|
24 | Pour externalisé les paramÚtres : |
---|
25 | 1) Nombre de PFT flottant => quid de la carte de végÚt ?? => plusieurs jeux de carte de végÚt ? |
---|
26 | 2) Les paramÚtres choisit sont transformés 1D (/pft) en 2D (/pts/pft) => spacialisation |
---|
27 | 3) Mise en oeuvre info : |
---|
28 | On refait presque tout getincom !! ==> transformation des listes de paramÚtre en xml ?? |
---|
29 | ===> On lit le paramÚtre toujours comme une chaîne de caractÚre |
---|
30 | |
---|
31 | exemples de getin : |
---|
32 | i) RVEG_PFT = 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1. |
---|
33 | |
---|
34 | ii) SOILTYPE_FILE = ../surfmap/soils_param.nc |
---|
35 | |
---|
36 | iii) |
---|
37 | SECHIBA_VEG__01 = 0.2 |
---|
38 | SECHIBA_VEG__02 = 0.0 |
---|
39 | SECHIBA_VEG__03 = 0.0 |
---|
40 | SECHIBA_VEG__04 = 0.0 |
---|
41 | SECHIBA_VEG__05 = 0.0 |
---|
42 | SECHIBA_VEG__06 = 0.0 |
---|
43 | SECHIBA_VEG__07 = 0.0 |
---|
44 | SECHIBA_VEG__08 = 0.0 |
---|
45 | SECHIBA_VEG__09 = 0.0 |
---|
46 | SECHIBA_VEG__10 = 0.8 |
---|
47 | SECHIBA_VEG__11 = 0.0 |
---|
48 | SECHIBA_VEG__12 = 0.0 |
---|
49 | SECHIBA_VEG__13 = 0.0 |
---|
50 | |
---|
51 | |
---|
52 | SECHIBA_VEG__06 = 0.3 |
---|
53 | SECHIBA_VEG = 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13, 1./13 |
---|
54 | |
---|
55 | SECHIBA_VEG = ../fichier_SECHIBA_VEG.nc |
---|
56 | ou |
---|
57 | SECHIBA_VEG__06 = ../fichier_SECHIBA_VEG__06.nc |
---|
58 | |
---|
59 | spacialisation => |
---|
60 | DIMENSION(kjpindex,nvm) :: SECHIBA_VEG |
---|
61 | sinon |
---|
62 | DIMENSION(1,nvm) :: SECHIBA_VEG |
---|
63 | DIM1_SECHIBA_VEG=kjpindex/1 |
---|
64 | |
---|
65 | toto(1:kjpindex,1:nvm)=tata(1:kjpindex,1:nvm)*SECHIBA_VEG(1:nvm) |
---|
66 | => |
---|
67 | toto(1:kjpindex,1:nvm)=tata(1:kjpindex,1:nvm)*SECHIBA_VEG(1:DIM1_SECHIBA_VEG,1:nvm) |
---|
68 | |
---|
69 | Q10 ?? |
---|
70 | DPU |
---|
71 | |
---|
72 | Fonction englobant |
---|
73 | a) un getin + une lecture de carte normalisée ( projection + valeur en cas de missing ==> flag qui |
---|
74 | bétonne les missings -> plantages) |
---|
75 | b) valeur par défaut / valeur par variétés==méta-classe (nom à trouver) => tableau de correspondance à rajouter |
---|
76 | ==> On lit le paramÚtre toujours comme une chaîne de caractÚre |
---|
77 | On initialise avec les valeurs par défaut (/variétés ?) |
---|
78 | Si le getin est une valeur simple, on écrit tout le tableau avec cette valeur |
---|
79 | Si le getin est une liste de valeur => on écrit par pft donnée |
---|
80 | Si le getin est un chemin vers un fichier : lecture de cette carte + utilisation de la projection |
---|
81 | => quid des PFTs manquantes dans la carte (variété ?) |
---|
82 | => quid des points de grille manquants ?? |
---|
83 | vcmax_op__18="MonfichierPFT18" |
---|
84 | vcmax_op="MonfichierPFT18" |
---|
85 | |
---|
86 | Flant Functionnal Type => PFT |
---|
87 | Plant Functionnal class => PFC |
---|
88 | Meta Class of Vegetation |
---|
89 | BioGechemical Class |
---|
90 | |
---|
91 | ====> restarter ces paramÚtres ??!! |
---|
92 | |
---|
93 | |
---|
94 | implications : |
---|
95 | 1) changer le nombre de PFT => supprimer tous les paramÚtres tableaux par PFT pour les relire |
---|
96 | pendant le run |
---|
97 | 2) les méta-classes (les PFTs actuelles ??) => définir un tableau de correspondance systématique et |
---|
98 | initialiser tous les tableaux de sous-classe avec une fonction utilisant systématiquement ce |
---|
99 | tableau. |
---|
100 | |
---|
101 | exemple : |
---|
102 | ========= |
---|
103 | vcmax_opt_m(2:nvm_m) = & |
---|
104 | & (/ 65., 65., 35., 45., 55., 35., & |
---|
105 | & 45., 35., 70., 70., 70., 70. /) |
---|
106 | |
---|
107 | appel de la fct de dim pour récupérer dim1_vcmax_opt |
---|
108 | allocation |
---|
109 | ALLOCATE( vcmax_opt(1:dim1_vcmax_opt,2:nvm), ERR ) |
---|
110 | initialisation : |
---|
111 | DO j=1:dim1_vcmax_opt |
---|
112 | vcmax_opt(j,2:nvm) = Transforma_meta_class(vcmax_opt_m(2:nvm_m)) |
---|
113 | ENDDO |
---|
114 | CALL lecture de carte : |
---|
115 | CALL getin_p("vcmax_opt", vcmax_opt) |
---|