3 | | == Exemple avec le VLR == |
| 3 | == Exemple avec le MR025 - script cdo == |
| 4 | |
| 5 | Expérience : /ccc/cont003/home/gencmip6/oboucher/IPSLCM6.2/modipsl/config/IPSLCM6/CM61-MR025-pd-04 |
| 6 | |
| 7 | Sorties : /ccc/scratch/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/TEST/pdControl/CM61-MR025-pd-04/ |
| 8 | |
| 9 | Détail : 1 mois de simu |
| 10 | |
| 11 | Script cdo : on pondère par tmaskutil et l'aire des mailles pour l'océan. On pondère par l'aire des mailles et pourc_oce+pourc_sic pour l'atmosphère. |
| 12 | |
| 13 | {{{ |
| 14 | |
| 15 | exp="CM61-MR025-pd-04" |
| 16 | yr1=1850 |
| 17 | yr2=1850 |
| 18 | dir=/ccc/scratch/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/TEST/pdControl/${exp} |
| 19 | fileatm=${dir}/ATM/Output/MO/${exp}_${yr1}0101_${yr2}0131_1M_histmth.nc |
| 20 | fileevap1=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_COTOTEVA.nc |
| 21 | fileevap2=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_OTotEvap.nc |
| 22 | filerain1=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_COTOTRAI.nc |
| 23 | filerain2=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_OTotRain.nc |
| 24 | filesnow1=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_COTOTSNO.nc |
| 25 | filesnow2=${dir}/CPL/Output/MO/${exp}_${yr1}0101_${yr2}0131_OTotSnow.nc |
| 26 | fileoce=${dir}/OCE/Output/MO/${exp}_${yr1}0101_${yr2}0131_1M_grid_T.nc |
| 27 | maskoce=/ccc/work/cont003/igcmg/igcmg/IGCM/OCE/NEMO/eORCA025.4/GRIDS/eORCA025_mesh_mask.nc |
| 28 | |
| 29 | sumevap1=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -seltimestep,1/10 -selname,COTOTEVA ${fileevap1} -seltimestep,1 -expr,'toto=aire/100.*(pourc_oce+pourc_sic)' ${fileatm}` |
| 30 | sumevap2=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -mul -seltimestep,1/10 -selname,OTotEvap ${fileevap2} -selvar,tmaskutil ${maskoce} -gridarea ${fileoce}` |
| 31 | sumrain1=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -seltimestep,1/10 -selname,COTOTRAI ${filerain1} -seltimestep,1 -expr,'toto=aire/100.*(pourc_oce+pourc_sic)' ${fileatm}` |
| 32 | sumrain2=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -mul -seltimestep,1/10 -selname,OTotRain ${filerain2} -selvar,tmaskutil ${maskoce} -gridarea ${fileoce}` |
| 33 | sumsnow1=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -seltimestep,1/10 -selname,COTOTSNO ${filesnow1} -seltimestep,1 -expr,'toto=aire/100.*(pourc_oce+pourc_sic)' ${fileatm}` |
| 34 | sumsnow2=`cdo outputf,%12.10g,10 -divc,1.e9 -fldsum -mul -mul -seltimestep,1/10 -selname,OTotSnow ${filesnow2} -selvar,tmaskutil ${maskoce} -gridarea ${fileoce}` |
| 35 | |
| 36 | echo 'evap in=' $sumevap1 |
| 37 | echo 'evap out=' $sumevap2 |
| 38 | echo 'rain in=' $sumrain1 |
| 39 | echo 'rain out=' $sumrain2 |
| 40 | echo 'snow in=' $sumsnow1 |
| 41 | echo 'snow out=' $sumsnow2 |
| 42 | |
| 43 | }}} |
| 44 | |
| 45 | Résultats : |
| 46 | {{{ |
| 47 | evap in= 16.58377264 16.5842436 16.73348733 16.70182978 16.66627324 16.63719809 16.59929387 16.55878592 16.52697635 16.4860888 |
| 48 | evap out= 16.55351427 16.55350019 16.70269787 16.67088149 16.63496352 16.60587634 16.56772969 16.52697626 16.49513478 16.45415434 |
| 49 | rain in= 12.76418216 11.79569265 11.90206466 12.29730812 12.41094174 12.47357032 12.53198387 12.55976865 12.5649098 12.58444113 |
| 50 | rain out= 12.74270543 11.77684503 11.88402995 12.27952764 12.395365 12.45955016 12.51887749 12.5477753 12.55303025 12.57239723 |
| 51 | snow in= 0.6307305996 0.613739933 0.6188579544 0.6443643258 0.6604737915 0.6693078788 0.6729603416 0.6815849762 0.684608096 0.6879445765 |
| 52 | snow out= 0.6216787337 0.6042128991 0.608490469 0.6332710421 0.6475660592 0.6557678674 0.6592571085 0.6672780528 0.6703978744 0.6741682585 |
| 53 | }}} |
| 54 | |
| 55 | Les écarts sont très importants : 4e décimale et 0.2% pour rain et evap, 2e décimale et 2% pour snow. |
| 56 | Bien sûr, le biais est moindre pour P+S-E car il y a compensation d'erreur. |
| 57 | |
| 58 | == Exemple avec le VLR - script python == |