source: TOOLS/CMIP6_FORCING/SCENARIOS/SST_SIC_anomaly.sh @ 4004

Last change on this file since 4004 was 4004, checked in by tlurton, 6 years ago

A few scripts to generate oxidant files and SST/SIC files for the scenarios.

  • Property svn:executable set to *
File size: 5.5 KB
Line 
1#--Script performing bias-correction of RCP scenarios with the AMIP runs
2#--over SST and SIC.
3#--Th. Lurton, IPSL, 07/2018
4
5#--working directory
6ici=${GENCMIP6_CCCWORKDIR}/CMIP6_LIMIT/
7if [ ! -d ${ici} ] ; then mkdir -p ${ici} ; fi
8
9gridfile=/ccc/work/cont003/gencmip6/lurtont/CMIP6_LIMIT/GRID/grid_MR_CMIP5
10
11#--AMIP input files
12dirinAMIP=/ccc/work/cont003/gencmip6/lurtont/CMIP6_LIMIT/AMIP/
13
14#--performing horizontal remapping for AMIP files between 2006 and 2017
15fileintsoloceAMIP=${dirinAMIP}tos_input4MIPs_SSTsAndSeaIce_CMIP_PCMDI-AMIP-1-1-4_gn_187001-201712.nc
16fileinpourcsicAMIP=${dirinAMIP}siconc_input4MIPs_SSTsAndSeaIce_CMIP_PCMDI-AMIP-1-1-4_gn_187001-201712.nc
17
18fileinSSTyearsAMIP=${ici}SST_AMIP_2006_2017.nc
19fileinSICyearsAMIP=${ici}SIC_AMIP_2006_2017.nc
20
21cdo -seldate,2006-01-01,2017-12-31 ${fileintsoloceAMIP} ${fileinSSTyearsAMIP}
22cdo -seldate,2006-01-01,2017-12-31 ${fileinpourcsicAMIP} ${fileinSICyearsAMIP}
23
24#--AMIP files remapped to CMIP5-MR grid
25fileremaptsoloceAMIP=${ici}amipbc_sst_remapped_2006_2017.nc
26fileremappourcsicAMIP=${ici}amipbc_sic_remapped_2006_2017.nc
27
28echo "Remapping AMIP SST file towards CMIP5 MR grid, for years 2006-2017..."
29cdo remapcon,${gridfile} ${fileinSSTyearsAMIP} ${fileremaptsoloceAMIP}
30echo "Remapping AMIP SIC file towards CMIP5 MR grid, for years 2006-2017..."
31cdo remapcon,${gridfile} ${fileinSICyearsAMIP} ${fileremappourcsicAMIP}
32
33
34#--loop on RCPs
35for rcp in rcp26 rcp45 rcp60 rcp85
36do
37
38if [ ${rcp} == "rcp26" ] ; then dirinRCP=/ccc/store/cont003/dsmipsl/p86maf/dmf_import/IGCM_OUT/IPSLCM5A-MR/PROD/rcp26/v5.rcp26MR1/ATM/Analyse/TS_MO/ ; fi
39if [ ${rcp} == "rcp45" ] ; then dirinRCP=/ccc/store/cont003/dsmipsl/p86maf/dmf_import/IGCM_OUT/IPSLCM5A-MR/PROD/rcp45/v5.rcp45MR1/ATM/Analyse/TS_MO/ ; fi
40if [ ${rcp} == "rcp60" ] ; then dirinRCP=/ccc/store/cont003/dsm/p86denv/IGCM_OUT/IPSLCM5A-MR/PROD/rcp60/v5.rcp60MR1/ATM/Analyse/TS_MO/ ; fi
41if [ ${rcp} == "rcp85" ] ; then dirinRCP=/ccc/store/cont003/dsmipsl/p86maf/dmf_import/IGCM_OUT/IPSLCM5A-MR/PROD/rcp85/v5.rcp85MR1/ATM/Analyse/TS_MO/ ; fi
42
43rcpdir=${ici}Scenarios/${rcp}/
44if [ ! -d ${rcpdir} ] ; then mkdir -p ${rcpdir} ; fi
45
46rcpsplitdir=${rcpdir}split/
47if [ ! -d ${rcpsplitdir} ] ; then mkdir -p ${rcpsplitdir} ; fi
48
49#--RCP input files
50fileintsoloceRCP=${dirinRCP}v5.${rcp}MR1_20060101_21001231_1M_tsol_oce.nc
51fileinpourcsicRCP=${dirinRCP}v5.${rcp}MR1_20060101_21001231_1M_pourc_sic.nc
52fileinpourclicRCP=${dirinRCP}v5.${rcp}MR1_20060101_21001231_1M_pourc_lic.nc
53
54#--splitting years
55echo ${rcp}": splitting years for SST..."
56cdo splityear ${fileintsoloceRCP} ${rcpsplitdir}v5.${rcp}MR1_tsol_oce_
57echo ${rcp}": splitting years for SIC..."
58cdo splityear ${fileinpourcsicRCP} ${rcpsplitdir}v5.${rcp}MR1_pourc_sic_
59echo ${rcp}": splitting years for LIC..."
60cdo splityear ${fileinpourclicRCP} ${rcpsplitdir}v5.${rcp}MR1_pourc_lic_
61
62dirout=${rcpdir}/OUT_anocorr/
63if [ ! -d ${dirout} ] ; then mkdir -p ${dirout} ; fi
64
65tmpavgsstAMIP=${ici}tmpavgsstAMIP.nc
66tmpavgsicAMIP=${ici}tmpavgsicAMIP.nc
67tmpavgsstRCP=${ici}tmpavgsstRCP.nc
68tmpavgsicRCP=${ici}tmpavgsicRCP.nc
69tmpavglicRCP=${ici}tmpavglicRCP.nc
70cdo ymonmean -seldate,2006-01-01,2017-12-31 ${fileremaptsoloceAMIP} ${tmpavgsstAMIP}
71cdo ymonmean -seldate,2006-01-01,2017-12-31 ${fileremappourcsicAMIP} ${tmpavgsicAMIP}
72cdo ymonmean -seldate,2006-01-01,2017-12-31 ${fileintsoloceRCP} ${ici}sstRCP.nc
73cdo ymonmean -seldate,2006-01-01,2017-12-31 ${fileinpourcsicRCP} ${ici}sicRCP.nc
74cdo ymonmean -seldate,2006-01-01,2017-12-31 ${fileinpourclicRCP} ${tmpavglicRCP}
75ncrename -v siconc,pourc_sic ${tmpavgsicAMIP}
76ncrename -v tos,tsol_oce ${tmpavgsstAMIP} -O ${ici}tmp.nc
77cdo expr,'tsol_oce=tsol_oce+273.15' ${ici}tmp.nc ${tmpavgsstAMIP}
78rm -f ${ici}tmp.nc
79ncrename -v time,time_counter -d time,time_counter ${tmpavgsstAMIP}
80ncrename -v time,time_counter -d time,time_counter ${tmpavgsicAMIP}
81ncrename -v pourc_lic,pourc_sic ${tmpavglicRCP} -O ${ici}tmp.nc
82ncks -C -O -x -v aire ${ici}tmp.nc ${tmpavglicRCP}
83rm -f ${ici}tmp.nc
84ncks -C -O -x -v aire ${ici}sstRCP.nc ${tmpavgsstRCP}
85ncks -C -O -x -v aire ${ici}sicRCP.nc ${tmpavgsicRCP}
86rm -f ${ici}sstRCP.nc ${ici}sicRCP.nc
87
88for year in {2015..2100}
89do
90
91echo ${rcp}": Correcting anomaly for year "${year}"..."
92
93fileyeartsoloceRCP=${rcpsplitdir}v5.${rcp}MR1_tsol_oce_${year}.nc
94fileouttsoloce=${dirout}v5.${rcp}MR1_tsol_oce_${year}_anocorr.nc
95
96fileyearpourcsicRCP=${rcpsplitdir}v5.${rcp}MR1_pourc_sic_${year}.nc
97fileoutpourcsic=${dirout}v5.${rcp}MR1_pourc_sic_${year}_anocorr.nc
98
99ncks -C -O -x -v aire ${fileyeartsoloceRCP} ${ici}tmpyearSST.nc
100ncks -C -O -x -v aire ${fileyearpourcsicRCP} ${ici}tmpyearSIC.nc
101
102#--performing anomaly corrections
103echo "... for SST..."
104cdo add -sub ${ici}tmpyearSST.nc ${tmpavgsstRCP} ${tmpavgsstAMIP} ${fileouttsoloce}
105echo "... for SIC, as SIC = SIC(RCP) + <SICLIC(AMIP)> - <SIC(RCP)> - <LIC(RCP)>..."
106cdo add -sub ${ici}tmpyearSIC.nc ${tmpavgsicRCP} ${tmpavgsicAMIP} ${ici}tmp.nc
107cdo sub ${ici}tmp.nc ${tmpavglicRCP} ${fileoutpourcsic}
108rm -f ${ici}tmp.nc
109#--clipping of pourc_sic values between 0 and 100
110ncap2 -s 'where(pourc_sic>100.) pourc_sic=100;' ${fileoutpourcsic} -O ${ici}tmp.nc
111ncap2 -s 'where(pourc_sic<0.) pourc_sic=0;' ${ici}tmp.nc -O ${fileoutpourcsic}
112rm -f ${ici}tmp.nc ${ici}tmpyearSST.nc ${ici}tmpyearSIC.nc
113
114#--end loop on years
115done
116
117echo "Cleaning up..."
118rm -f ${tmpavgsstAMIP} ${tmpavgsicAMIP} ${tmpavgsstRCP} ${tmpavgsicRCP} ${tmpavglicRCP}
119rm -rf ${rcpsplitdir}
120
121#--end loop on RCPs
122done
123
124#--cleaning up remapped AMIPs
125echo "Cleaning up..."
126rm -f ${ici}amipbc_sst_2006_2017_remapped.nc
127rm -f ${ici}amipbc_sic_2006_2017_remapped.nc
128echo "...OK!"
Note: See TracBrowser for help on using the repository browser.