[1380] | 1 | #!/bin/ksh |
---|
| 2 | set -vx |
---|
| 3 | # |
---|
| 4 | # create_sst_anomaly.ksh |
---|
| 5 | # |
---|
| 6 | # This script will correct the sea-surface temperature (SST) from a coupled model simulation |
---|
| 7 | # using the difference between an AMIP reference SST field and an historical coupled model |
---|
| 8 | # reference SST field. The two reference SST fields are both monthly mean over the period 1979-2005. |
---|
| 9 | # |
---|
| 10 | # The output is stored in the directory out_anomaly, set below, and is directly usable with |
---|
| 11 | # the program ce0l (create_etat0_limit) in LMDZ5 revision 1508 or later. For each year there |
---|
| 12 | # are two output files : one at model original grid and one at a higer resolution grid(with |
---|
| 13 | # suffix _HR.nc). If the SST are to be used at a higer resolution grid or with a zoom it is |
---|
| 14 | # better to use the high resolution SST (_HR.nc). |
---|
| 15 | # |
---|
| 16 | # 1 - Create reference file |
---|
| 17 | # 2 - Add reference file to the scenario simulation |
---|
| 18 | # 3 - Interpolate to higer regular resolution |
---|
| 19 | # |
---|
| 20 | # |
---|
| 21 | # Author and contact Josefine Ghattas, IPSL, 2011 |
---|
| 22 | # |
---|
| 23 | ########## User definitions |
---|
| 24 | # Three time series are needed : amip_TS, hist_TS and simul_TS. They should all contain |
---|
| 25 | # the same variable tsol_oce at the same model grid resolution with monthly values. |
---|
| 26 | |
---|
| 27 | # amip_TS : AMIP SST containg at least the reference period 1979-2005 |
---|
| 28 | amip_TS=/dmnfs/cont003/p86musat/IGCM_OUT/LMDZOR/PROD/amip/v3.amip1/ATM/Analyse/TS_MO/v3.amip1_19790101_20091231_1M_tsol_oce.nc |
---|
| 29 | |
---|
| 30 | # hist_TS : model output SST from reference simulation containg at least the reference period 1979-2005 |
---|
| 31 | hist_TS=/dmnfs/cont003/p86denv/IGCM_OUT/IPSLCM5A/PROD/historical/v3.historical1/ATM/Analyse/TS_MO/v3.historical1_18500101_20051231_1M_tsol_oce.nc |
---|
| 32 | |
---|
| 33 | # simul_TS : model output SST from the simulation to be corrected containing at least the years [year_begin,year_end] to be set below |
---|
| 34 | simul_TS=/dmnfs/cont003/p86denv/IGCM_OUT/IPSLCM5A/PROD/rcp45/v3.rcp45.1/ATM/Analyse/TS_MO/v3.rcp45.1_20060101_21651231_1M_tsol_oce.nc |
---|
| 35 | |
---|
| 36 | # year_begin and year_end : interval for simul_TS |
---|
| 37 | year_begin=2006 |
---|
| 38 | year_end=2095 |
---|
| 39 | |
---|
| 40 | # outname : basename for output files |
---|
| 41 | outname=v3.rcp45.1_tsol_oce_ |
---|
| 42 | |
---|
| 43 | # out_simul : directory where the original simulation will be stored splitted in years |
---|
| 44 | out_simul=$SCRATCHDIR/OUTTEST/simul |
---|
| 45 | |
---|
| 46 | # out_anomaly : directory where the final simulation with anomaly will be created and stored |
---|
| 47 | out_anomaly=$SCRATCHDIR/OUTTEST/anomaly |
---|
| 48 | |
---|
| 49 | # rundir : directory where temporary files will be created and stored |
---|
| 50 | rundir=$SCRATCHDIR/OUTTEST/rundir |
---|
| 51 | |
---|
| 52 | ########## End User definitions |
---|
| 53 | |
---|
| 54 | ########## 0 Create output and run directories |
---|
| 55 | mkdir -p $out_simul |
---|
| 56 | mkdir -p $out_anomaly |
---|
| 57 | |
---|
| 58 | mkdir -p $rundir |
---|
| 59 | cd $rundir |
---|
| 60 | |
---|
| 61 | |
---|
| 62 | ########## 1 Create reference file |
---|
| 63 | # extract reference period from AMIP SST and create reference file |
---|
| 64 | cdo seldate,1979-01-01,2005-12-31 $amip_TS amip_ts_ref.nc |
---|
| 65 | cdo ymonmean amip_ts_ref.nc amip_ref.nc |
---|
| 66 | |
---|
| 67 | # extract reference period from histroical simulation SST and create reference file |
---|
| 68 | cdo seldate,1979-01-01,2005-12-31 $hist_TS hist_ts_ref.nc |
---|
| 69 | cdo ymonmean hist_ts_ref.nc hist_ref.nc |
---|
| 70 | |
---|
| 71 | # create difference file AMIP - HIST |
---|
| 72 | cdo sub amip_ref.nc hist_ref.nc refdiff.nc |
---|
| 73 | |
---|
| 74 | |
---|
| 75 | ########## 2 Add reference file to the scenario simulation |
---|
| 76 | # split time serie into yearly files |
---|
| 77 | cdo splityear $simul_TS $out_simul/${outname} |
---|
| 78 | |
---|
| 79 | # add refdiff anomalies to each year of RCP4.5 |
---|
| 80 | year=$year_begin |
---|
| 81 | while [[ ${year} -le ${year_end} ]] ; do |
---|
| 82 | cdo add $out_simul/${outname}$year.nc2 refdiff.nc $out_anomaly/${outname}anomaly_amip_${year}.nc |
---|
| 83 | |
---|
| 84 | # next year |
---|
| 85 | year=`expr $year + 1` |
---|
| 86 | done |
---|
| 87 | |
---|
| 88 | ########## 3 Interpolate to higer regular resolution |
---|
| 89 | year=$year_begin |
---|
| 90 | while [[ ${year} -le ${year_end} ]] ; do |
---|
| 91 | cdo remapbic,r720x360 $out_anomaly/${outname}anomaly_amip_$year.nc $out_anomaly/${outname}anomaly_amip_${year}_HR.nc |
---|
| 92 | |
---|
| 93 | # next year |
---|
| 94 | year=`expr $year + 1` |
---|
| 95 | done |
---|
| 96 | |
---|
| 97 | |
---|
| 98 | exit |
---|
| 99 | |
---|
| 100 | |
---|