| 106 | |
| 107 | |
| 108 | == A vérifier avant de se lancer == |
| 109 | * bien vérifier les experiment id autorisé (table officielle) |
| 110 | * vérifier dans ts2ipcc la variable calendar qui peut valoir ''360_day'' ou ''noleap''. Elle doit correspondre à ce qu'il y avait dans le config.card de votre simulation |
| 111 | |
| 112 | == Pour Cmoriser autre chose que des TS == |
| 113 | C'est tout à fait possible mais : |
| 114 | * il faut modifier CMORizeIt pour qu'il appelle ts2ipcc avec le nom de la variable à cmoriser si il y en a plusieurs dans le fichier data.nc |
| 115 | * il faut modifier ipsl_path dans CMORizeIt pour qu'il aille chercher vos fichiers |
| 116 | * il faut modifier CMORizeIt pour qu'il n'aille pas chercher de fichier psol si cette variable est également dans data.nc |
| 117 | * il faut modifier ts2ipcc pour que la variable ps soit lue dans data.nc et non pas dans pression.nc |
| 118 | |
| 119 | == Petit bug dans ts2ipcc ? == |
| 120 | Actuellement la conversion d'unité pour cmor est appelée avec l'unité lue dans le fichier netcdf et non pas l'unité lue dans la table de correspondance IPSL/IPCC. Pour changer cela il faut modifier l'appel à cmor_variable : |
| 121 | {{{ |
| 122 | il devient : |
| 123 | |
| 124 | cmorvarid = cmor_variable( & |
| 125 | table_entry=TRIM(ipcc_name(index_table)), & |
| 126 | units=TRIM(ipsl_units(index_table)), & |
| 127 | ! units=TRIM(units), |
| 128 | !axis_ids=(/ ilon, ilat /), & |
| 129 | !axis_ids=axis_ids, & |
| 130 | !axis_ids=(/ grid_id, itim /), & |
| 131 | axis_ids=axis_ids_final, & |
| 132 | missing_value=missing_value, & |
| 133 | positive = TRIM(ipsl_pos(index_table)), & |
| 134 | original_name=TRIM(varname)) |
| 135 | |
| 136 | }}} |
| 137 | |
| 138 | == Short English Version == |
| 139 | |
| 140 | 1) First we start by the table: |
| 141 | /home/cont003/p86cmip5/CMOR_TABLES/CMIP5/Tables : the official CMIP5 tables |
| 142 | /home/cont003/p86cmip5/CMOR_TABLES/CMIP5/create_from_CMIP5_tables.bash : a script that will build empty correspondence table |
| 143 | /home/cont003/p86cmip5/CMOR_TABLES/CMIP5/EMPTY : results from the previous script |
| 144 | /home/cont003/p86cmip5/CMOR_TABLES/CMIP5/FULL : full correspondence table making the link between ipsl variable name and cmip5 variable name |
| 145 | /home/cont003/p86cmip5/CMOR_TABLES/CMIP5/EXPERIMENTS: where you describe your metadata experiment |
| 146 | |
| 147 | 2) Second we have a fortran code: |
| 148 | /home/cont003/p86cmip5/CMOR_CONVERTER_v3/ts2IPCC.f90 |
| 149 | /home/cont003/p86cmip5/CMOR_CONVERTER_v3/Makefile |
| 150 | |
| 151 | This code need : |
| 152 | - one file containing a time series of a single variable |
| 153 | - a config.def describing metadata of the experiment and pointing the original CMIP5 table |
| 154 | - a table.def describing correspondence between ipsl and cmip5 variable names |
| 155 | - grid description file in case of NEMO processing |
| 156 | |
| 157 | 3) End a script to drive all this: |
| 158 | /home/cont003/p86cmip5/CMIP5_CMOR2_SCRIPTS/launch_piControl2.job |
| 159 | /home/cont003/p86cmip5/CMIP5_CMOR2_SCRIPTS/CMORizeIt.job |
| 160 | |
| 161 | The first launch the second one, and adapt config.def. |
| 162 | The second one is the more interesting to look at. He can run standalone. |
| 163 | |
| 164 | /home/cont003/p86cmip5/CMIP5_CMOR2_SCRIPTS/OutScript : contains each script outputs (doing multiple cmor execution) |
| 165 | /home/cont003/p86cmip5/CMIP5_CMOR2_SCRIPTS/OutCmor : contains outputs for each cmor execution |
| 166 | |
| 167 | Netcdf results can be found on cesium: |
| 168 | /scratch/cont003/p86cmip5/CMIP5 |