Changeset 2751 for trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts
- Timestamp:
- 2011-04-26T10:45:52+02:00 (13 years ago)
- Location:
- trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts
- Files:
-
- 9 added
- 13 deleted
- 1 edited
- 33 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/README
r2709 r2751 1 To use these idl tools you need to download some climatogies and mask files; 1 #---------------------------------------------------------------------- 2 # prerequired 3 #---------------------------------------------------------------------- 4 To use these idl tools, you need to download some climatogies and mask files; 2 5 that you can find here: http://dodsp.idris.fr/reee512/NEMO_OUT/ORCA2_LIM/ 6 7 There is the wget command to get all those files (thanks to F. Pinsard) 8 wget --recursive -l2 --no-directories --no-parent -A.nc -erobots=off http://dodsp.idris.fr/reee512/NEMO_OUT/ORCA2_LIM/ 9 10 You will aslo need the meshmask file (set nn_msh = 1 or nn_msh = 7 in your namelist and run the model for at least 1 time step). 11 12 #---------------------------------------------------------------------- 13 # define your std_plot_vardef.sh or std_ts_vardef.sh file 14 #---------------------------------------------------------------------- 15 Use the examples provided in : 16 - std_ts_vardef.sh_1 or std_ts_vardef.sh_2 17 - std_plot_vardef.sh_1 or std_plot_vardef.sh_2 18 to build your own std_plot_vardef.sh or std_ts_vardef.sh file. 19 20 This file is needed to define you PATH, the experiments and variables names 21 22 23 24 25 26 27 28 29 #---------------------------------------------------------------------- 30 # short note on: How to build IDL virtual Machine: 31 # 32 . ./std_plot_vardef.sh # or . ./std_ts_vardef.sh 33 idl -IDL_STARTUP initenv 34 IDL> .r std_main 35 IDL> resolve_all 36 IDL> save, /routines, filename='std_main.sav' 37 IDL> exit 38 # 39 #---------------------------------------------------------------------- -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_main.sh
r2740 r2751 1 1 #!/bin/sh 2 #+ 3 # 4 # .. program:: std_main.sh 5 # 6 # ================ 7 # std_main.sh 8 # ================ 9 # 10 # ------------------------------------- 11 # launch idl scripts to produce graphics diagnostics in Postscript, PDF or HTML document 12 # ------------------------------------- 13 # 14 # SYNOPSIS 15 # ======== 16 # 17 # ``std_main.sh -ts`` or ``std_main.sh -plot`` 18 # 19 # DESCRIPTION 20 # =========== 21 # 22 # .. option:: -ts to produce time series 23 # .. option:: -plot to produce maps and sections 24 # .. option:: -html to produce html document 25 # .. option:: -pdf to produce pdf document 26 # .. option:: -noidl to skip the call to IDL and the production of Postscript 27 # .. option:: -vm to use IDL virtual machine (free) instead of IDL 28 # .. option:: -help to get help! 29 # 30 # variables have to be defined in std_plot_vardef.sh (or std_ts_vardef.sh) 31 # before calling std_main.sh -plot (or std_main.sh -ts) 32 # 33 # EXAMPLES 34 # ======== 35 # $ ./std_main.sh -ts html 36 # $ ./std_main.sh -ts pdf -noidl 37 # 38 # $ ./std_main.sh -plot -pdf -vm 2 39 # 3 40 # AUTHOR - date 4 41 # =========== 5 42 # Françoise Pinsard - 01/2010 - LOCEAN 6 # Simona Flavoni - 01/2010 - LOCEAN 7 # 8 # DESCRIPTION 9 # =========== 10 # Graphics outputs files are written in ./exp1_exp2/ps/. 11 # 12 # A global document with all plots in Postscript, PDF or HTML file can be produced. 13 # 14 # EXAMPLES 15 # ======== 16 # $ ./std_plots.sh -exp1 v32colib -exp2 v32colib -y 19800101_19801231 -format html 17 # 18 # $ ./std_plots.sh -exp1 core100 -exp2 core100 -y 00910101_01001231 -format pdf 19 # 20 # PROBLEMS 21 # ======== 22 # no batch processing possible because of SAXO interactiviy Seb is working on it ... 23 # 24 # TODO 25 # ==== 26 # portability on linux 27 # define overriding policy 28 # finalize ps and pdf production 29 # 30 usage=" Usage : ${command} -exp1 exp1 -exp2 exp2 -y start -format html 31 example: ./std_plots.sh -exp1 core2000 -exp2 core2000 -y 1991 -format pdf 32 exp1 is your experience name 33 exp2 is the reference experience (if you don't have one exp2 = exp1) 34 ystart is the first year of your 10years file output; example: 361 if you want to take file core2000_03610101_03701231_1Y_grid_T.nc" 35 # 36 minargcount=8 37 if [ ${#} -lt ${minargcount} ]; then 38 echo "Not enought arguments" 39 echo "${usage}" 40 exit 1 43 # Simona Flavoni - 01/2010 - LOCEAN 44 # Sebastien Masson - 04/2011 - LOCEAN 45 # 46 #----------------------------------------------------------- 47 # Usage... 48 #----------------------------------------------------------- 49 # 50 #- 51 system=$(uname) 52 case "${system}" in 53 AIX|IRIX64) 54 echo " www : no specific posix checking" 55 ;; 56 *) 57 set -o posix 58 ;; 59 esac 60 # 61 usage="Usage: std_main.sh [OPTION] 62 Options 63 -ts to produce time series 64 -plot to produce maps and sections 65 -html to produce html document 66 -pdf to produce pdf document 67 -noidl to skip the call to IDL and the production of Postscript 68 -vm to use IDL virtual machine (free) instead of IDL 69 -help to get this help 70 " 71 # 72 vm=0 73 noidl=0 74 format=ps 75 while [ ! -z "${1}" ] 76 do 77 case ${1} in 78 -plot|--plot) PLOTTYPE=plot ;; 79 -ts|--ts) PLOTTYPE=ts ;; 80 -f|-format|--format) format=${2} shift ;; 81 -html|--html) format=html ;; 82 -pdf|--pdf) format=pdf ;; 83 -h|-help|--help) 84 echo "${usage}" 85 exit 0 86 ;; 87 -ni|--ni|-noidl|--noidl) noidl=1 ;; 88 -vm|--vm|-virtual_machine|--virtual_machine) vm=1 ;; 89 *) # other choice 90 echo "${usage}" 91 exit 1 92 ;; 93 esac 94 shift # next flag 95 done 96 # 97 PLOTTYPE=${PLOTTYPE:-NG} 98 if [[ ( "$PLOTTYPE" != "plot" ) && ( "$PLOTTYPE" != "ts" ) ]] 99 then 100 echo 'the type of plot must be defined with the option -plot or -ts' 101 exit 1 41 102 fi 42 # 43 while [ ! -z "${1}" ] # ++ pb bash 44 do 45 case ${1} in 46 -exp1) exp1=${2} shift ;; 47 -exp2) exp2=${2} shift ;; 48 -y) ystart=${2} shift ;; 49 -format) format=${2} shift ;; 50 -h) 51 echo "${usage}" 52 exit 0 53 ;; 54 *) # other choice 55 echo "${usage}" 56 exit 1 57 ;; 58 esac 59 shift # next flag 60 done 61 # 62 # ++ check parameters 103 export PLOTTYPE 104 # 63 105 set -u 64 106 # 107 # 108 tstexe () { 109 type ${1} 110 status_type=${?} 111 if [ ${status_type} -ne 0 ] 112 then 113 echo "eee : ${2}" 114 exit 1 115 fi 116 } 117 # 118 #----------------------------------------------------------- 65 119 # define output directory for POSTCRIPT files 66 #++ change directory 67 psdir=~/TOOLS/my_IDL/PS/CLIMATO/${exp1}_${exp2}/ps/ 68 #psdir=~/TOOLS/my_IDL/PS/INTERAN/${exp1}_${exp2}/ps/ 69 pdfdir=~/TOOLS/my_IDL/PS/CLIMATO/${exp1}_${exp2}/pdf 70 #pdfdir=~/TOOLS/my_IDL/PS/INTERAN/${exp1}_${exp2}/pdf 71 htmldir=~/TOOLS/my_IDL/HTML 72 # test if ${psdir} already exists 73 if [ -d ${psdir} ]; then 74 echo "${psdir} already exist" 75 #+++exit 1 76 else 77 mkdir -p ${psdir} 78 fi 79 # test if ${pdfdir} already exists 80 if [ -d ${pdfdir} ]; then 81 echo "${psdir} already exist" 82 #+++exit 1 83 else 84 mkdir -p ${pdfdir} 85 fi 86 87 # memorize current IDL_STARTUP file 88 memo_idl_startup=${IDL_STARTUP} 89 90 # generation of IDL commands file to launch several std_plots commands 91 # NOTE: $(( 10#${ystart} )) is used to have decimal, if not the number that start with 0 (for example if you put 0361) would be interpeted like alphanumerical number 92 rm /tmp/std_plots_multi.pro 2> /dev/null 93 cat << EOF >> /tmp/std_plots_multi.pro 94 psdir='${psdir}' 95 std_plots,'${exp1}','${exp2}', $(( 10#${ystart} )), /postscript 96 exit 120 #----------------------------------------------------------- 121 # 122 . ./std_${PLOTTYPE}_vardef.sh 123 [ ! -d ${PS_DIR} ] && mkdir -p ${PS_DIR} 124 # 125 #----------------------------------------------------------- 126 # run IDL 127 #----------------------------------------------------------- 128 # 129 if [ $noidl -eq 0 ] 130 then 131 tstexe ${idl_command} "idl not found" 132 # 133 if [ $vm -eq 1 ] 134 then 135 ${idl_command} -vm=std_main.sav 136 else 137 ${idl_command} -IDL_STARTUP 'initenv' << EOF 138 std_${PLOTTYPE}_all, /postscript 97 139 EOF 98 # 99 idl_command='/Applications/itt/idl64/bin/idl' # !! only on my mac 100 # 101 # check if IDL available 102 type ${idl_command} 103 status_type=${?} 104 if [ ${status_type} -ne 0 ] 105 then 106 echo "eee : idl not found" 107 exit 1 140 fi 141 status_idl=${?} 142 if [ ${status_idl} -ne 0 ] 143 then 144 echo "eee : error in the execution of IDL" 145 exit 1 146 fi 108 147 fi 109 # debug 110 more /tmp/std_plots_multi.pro 111 # 112 # launch IDL 113 ${idl_command} /tmp/std_plots_multi.pro 114 status_idl=${?} 115 # test if idl returns ok 116 #echo "iii : ${status_idl}" 117 # 118 # restore IDL_STARTUP file 119 IDL_STARTUP=${memo_idl_startup} 120 export IDL_STARTUP 121 148 # 149 #----------------------------------------------------------- 122 150 # produce the final document 151 #----------------------------------------------------------- 152 # 153 # build the list of ps that has been created by IDL 154 pslist=$( grep "img width" ${PS_DIR}/std_${PLOTTYPE}_html_body.txt | sed -e "s/.*src=\(.*\)png.*/\1/" ) 155 # 123 156 case ${format} in 157 #__________________________________________________________ 158 # PDF 124 159 pdf) 125 rm ${pdfdir}/all_plots.pdf 2> /dev/null 126 for file in ${psdir}/*.ps ; do 127 echo "ps2pdf" 128 # echo "nome file: ${file}" 129 ps2pdf -sPAPERSIZE=a4 ${file} 160 # check if ps2pdf available 161 ps2pdf_command=$( which ps2pdf ) 162 tstexe ${ps2pdf_command} "ps2pdf not found" 163 # check if texexec available 164 texexec_command=$( which texexec ) 165 tstexe ${texexec_command} "texexec not found" 166 # 167 filepdf=all_${PLOTTYPE}.pdf 168 [ ! -d ${PDF_DIR} ] && mkdir -p ${PDF_DIR} 169 pdflist='' 170 for file in ${pslist} ; do 171 ps2pdf -sPAPERSIZE=a4 ${PS_DIR}/${file}ps ${PDF_DIR}/${file}pdf 172 echo "ps2pdf ${file}ps done" 173 pdflist=${pdflist}' '${PDF_DIR}/${file}pdf 130 174 done 131 # echo "dentro pdf" 132 ls ${pdfdir} 133 mv *.pdf ${pdfdir}/. 134 texexec --pdfarrange --result=/tmp/all_plots.pdf ${pdfdir}/*.pdf 135 rm -rf *.aux *.log /tmp/*.log 136 mv /tmp/all_plots.pdf ${pdfdir} 175 texexec --pdfarrange --result=$PDF_DIR/$filepdf $pdflist 176 rm -f $PDF_DIR/$( basename $filepdf .pdf ).aux $PDF_DIR/$( basename $filepdf .pdf ).log 177 echo ${PDF_DIR}/$filepdf done 137 178 #commented because convert gives images of bad quality 138 # convert ${ psdir}/*.ps /tmp/all_plots.pdf139 # convert -resize 800x600 ${ psdir}/${exp1}_${exp2}/ps/*.ps /tmp/all_plots.pdf179 # convert ${PS_DIR}/*.ps /tmp/all_${PLOTTYPE}.pdf 180 # convert -resize 800x600 ${PS_DIR}/${exp1}_${exp2}/ps/*.ps /tmp/all_${PLOTTYPE}.pdf 140 181 ;; 182 #__________________________________________________________ 183 # HTML 141 184 html) 142 rm /tmp/std_plots.html 2> /dev/null 185 filehtml=all_${PLOTTYPE}.html 186 [ ! -d ${HTML_DIR} ] && mkdir -p ${HTML_DIR} 143 187 # check if convert available 144 convert_command='/sw/bin/convert' # !! only on my mac 145 type ${convert_command} 146 status_type=${?} 147 if [ ${status_type} -ne 0 ] 148 then 149 echo "eee : convert not found" 150 exit 1 151 fi 152 # debug 153 154 for file in `ls ${psdir}/*.ps | sed -e "s/\.ps//"` ; do 155 ${convert_command} -antialias ${file}.ps ${file}.png 188 convert_command=$( which convert ) 189 tstexe ${convert_command} "convert not found" 190 # convert each ps to png 191 for file in ${pslist} ; do 192 ${convert_command} -antialias ${PS_DIR}/${file}ps ${HTML_DIR}/${file}png 156 193 done 157 # creation of a HTML file 158 cat << EOF > /tmp/std_plots.html 159 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 160 <html xmlns="http://www.w3.org/1999/xhtml"> 161 <head> 162 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 163 <hr> 164 </head> 165 <body> 194 # creation of the HTML file 195 cat << EOF > ${HTML_DIR}/$filehtml 196 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 197 <html xmlns="http://www.w3.org/1999/xhtml"> 198 <head> 199 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 200 </head> 201 <body> 166 202 EOF 167 cat /tmp/std_plots.txt >> /tmp/std_plots.html 168 cat << EOF >> /tmp/std_plots.html 169 <hr/> 203 cat ${PS_DIR}/std_${PLOTTYPE}_html_body.txt >> ${HTML_DIR}/$filehtml 204 cat << EOF >> ${HTML_DIR}/$filehtml 205 <hr> 206 </body> 207 </html> 170 208 EOF 171 172 cat << EOF >> /tmp/std_plots.html 173 174 </body> 175 </html> 176 EOF 177 more /tmp/std_plots.html 209 echo ${HTML_DIR}/$filehtml done 178 210 ;; 211 ps) ;; # nothing to do... 179 212 *) 180 213 echo " format ${format} not implemented" … … 190 223 #Tag_Name=ORCA2_LIM2 191 224 #rsh ${LOGIN}@gaya.idris.fr exec /bin/ksh <<EOF 192 # cd ${homegaya}/IGCM_OUT/${Tag_Name}/CORE2/INTERAN/ plots_pdf/${exp1}193 # /usr/local/bin/dods_rm DODS/pub/${LOGIN}/${Tag_Name}/CORE2/INTERAN/ plots_pdf/${exp1} > /dev/null 2>&1194 # /usr/local/bin/dods_cp ${exp1} DODS/pub/${LOGIN}/${Tag_Name}/CORE2/INTERAN/ plots_pdf/${exp1} > /dev/null 2>&1225 # cd ${homegaya}/IGCM_OUT/${Tag_Name}/CORE2/INTERAN/${PLOTTYPE}_pdf/${exp1} 226 # /usr/local/bin/dods_rm DODS/pub/${LOGIN}/${Tag_Name}/CORE2/INTERAN/${PLOTTYPE}_pdf/${exp1} > /dev/null 2>&1 227 # /usr/local/bin/dods_cp ${exp1} DODS/pub/${LOGIN}/${Tag_Name}/CORE2/INTERAN/${PLOTTYPE}_pdf/${exp1} > /dev/null 2>&1 195 228 #EOF 196 229 #===================== -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_ArcSal.pro
r2733 r2751 1 pro xxx_EXP1_S_ARC, S1, SLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 1 pro std_plot_ArcSal, S1, S2in, SLevin, Z100 = z100, POSTSCRIPT = postscript, _extra = ex 2 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 CASE n_params() OF 9 2:BEGIN 10 Slev = S2in 11 END 12 3:BEGIN 13 IF S2in.arr[0] EQ -1 THEN return 14 S2 = S2in 15 Slev = Slevin 16 END 17 ENDCASE 18 ; 19 cdti3 = string(cnt, format = '(i3.3)') 20 print, cdti3 + ') ' + blabla 21 ; 22 IF keyword_set(z100) THEN tmp = min(abs(100 - gdept), ind) ELSE ind = 0 23 sdepref = strtrim(round(gdept[ind]), 1)+'m' 24 filename = cdti3 + '_Arctic_Sal'+sdepref+'_'+std_file1_T 25 IF keyword_set(S2) THEN filename = filename + '_' + std_file2_T 26 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 27 ; 28 domdef, 20, 380, 60, 90 29 ; 30 varunit = S1.unit 31 titleorg = 'Salinity ('+sdepref+')!C' 32 ; 33 IF keyword_set(S2) THEN BEGIN 34 title = titleorg+std_file1_T+ ' - '+std_file2_T 35 plt, S1.arr - S2.arr, MIN = -4., MAX = 4., INTER = 0.2, CELL_FILL = 2, STYLE = 'so0so', format = '(f4.1)' $ 36 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, CHARSIZE = -0.55, GLINETHICK = 2. $ 37 , /ORTHO, MAP = [90, 0, 0], LATDEL = 5, boxzoom = [ind, ind], /zindex, /portrait, _extra = ex 38 ENDIF ELSE BEGIN 39 title = titleorg+std_file1_T 40 plt, S1, MIN = 30.0, MAX = 36., INTER = 0.2, CELL_FILL = 2, format = '(f4.1)' $ 41 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, CHARSIZE = -0.55, GLINETHICK = 2. $ 42 , /ORTHO, MAP = [90, 0, 0], LATDEL = 5, boxzoom = [ind, ind], /zindex, /PORTRAIT, _extra = ex 43 ENDELSE 44 ; 45 IF keyword_set(S2) THEN BEGIN 46 title = titleorg+std_file2_T+ ' - Levitus' 47 tmp = S2.arr - SLev.arr 48 ENDIF ELSE BEGIN 49 title = titleorg+std_file1_T+ ' - Levitus' 50 tmp = S1.arr - SLev.arr 51 ENDELSE 52 plt, temporary(tmp), MIN = -4., MAX = 4., INTER = 0.2, CELL_FILL = 2, STYLE = 'so0so', format = '(f4.1)' $ 53 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, CHARSIZE = -0.55, GLINETHICK = 2. $ 54 , /ORTHO, MAP = [90, 0, 0], LATDEL = 5, boxzoom = [ind, ind], /zindex, /NOERASE, _extra = ex 55 ; 56 domdef 57 ; 58 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 59 if KEYWORD_SET(postscript) then closeps 2 60 3 @common 4 compile_opt idl2, strictarrsubs 5 6 7 if KEYWORD_SET(POSTSCRIPT) then begin 8 openps, '008_S_ARC_'+sEXP1+'_y'+start_end+'.ps', portrait = 1 9 endif 10 11 ; 12 domdef,20,380,60,90 13 ; 14 title=sEXP1+' Salinity SSS' 15 plt, S1, MIN = 30.0, MAX = 36., INTER = 0.2, CELL_FILL = 2 $ 16 , small = [1,2,1], COAST_THICK = 2, TITLE = title, CHARSIZE = -0.55, GLINETHICK = 2. $ 17 , /ORTHO, MAP = [90,0,0], LATDEL = 5, boxzoom = [4., 6.], /PORTRAIT, _extra = ex 18 ; 19 20 title=sEXP1+' - Levitus Salinity SSS m / year '+start_end 21 plt, S1.arr-SLev.arr, MIN = -4., MAX = 4., INTER = 0.2, CELL_FILL = 2, STYLE = 'so0so' $ 22 , small = [1,2,2], COAST_THICK = 2, TITLE = title, CHARSIZE = -0.55, GLINETHICK = 2. $ 23 , /ORTHO, MAP = [90,0,0], LATDEL = 5, boxzoom = [4., 6.], /NOERASE, _extra = ex 24 ; 25 domdef 26 27 title = 'Artic salinity at SSS meters' 28 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/008_S_ARC_'+sEXP1+'_y'+start_end+'.png /> ' ] 29 putfile, '/tmp/prova.txt', text 30 31 32 if KEYWORD_SET(POSTSCRIPT) then begin 33 closeps 34 endif 35 36 37 return 61 return 38 62 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_EqS.pro
r2735 r2751 1 pro xxx_Eq_S, S1, S2, SLev, sEXP1, sEXP2, start_end,POSTSCRIPT = postscript, _extra = ex2 1 pro std_plot_EqS, S1, S2, SLev, POSTSCRIPT = postscript, _extra = ex 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 S = S1.arr-S2.arr 6 sEXP = sEXP1+' - '+sEXP2 7 min = -1. 8 max = -min 9 inter = .1 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_EqS_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 10 13 11 if sEXP2 eq sEXP1 then begin 12 sEXP = sEXP1+' - Levitus' 13 S = S1.arr-Slev.arr 14 min = -1. 15 max = -min 16 inter = .1 17 endif 14 title = 'Equatorial Salinity!C'+std_file1_T 15 pltz, S1, MININ = 33., MAXIN = 37., INTER = .2, typein = 'xz', FORMAT = '(f4.1)' $ 16 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /PORTRAIT, _extra = ex 18 17 19 if KEYWORD_SET(POSTSCRIPT) then begin 20 openps, '026_Eq_S_'+sEXP+'_y'+start_end+'.ps', portrait = 1 21 endif 22 ; 23 title = sEXP1+' Equatorial S / year '+start_end 24 pltz, S1, MININ = 33., MAXIN = 37., INTER = .2, typein='xz' $ 25 , small=[1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /PORTRAIT, _extra = ex 26 ; 27 title = sEXP+' Eq. S / year '+start_end 28 pltz, S, MININ = min, MAXIN = max, INTER = inter, typein = 'xz', STYLE = 'so0so' $ 29 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /PORTRAIT, _extra = ex 30 ; 31 title = 'Equatorial differences with Levitus and '+sEXP+' of salinity' 32 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/026_Eq_S_'+sEXP+'_y'+start_end+'.png /> ' ] 33 putfile, '/tmp/prova.txt', text 18 if std_file1_T EQ std_file2_T then begin 19 S = S1.arr - Slev.arr 20 title = title+' - Levitus' 21 ENDIF ELSE BEGIN 22 S = S1.arr - S2.arr 23 title = title+' - '+std_file2_T 24 ENDELSE 25 26 pltz, S, MININ = -1., MAXIN = 1., INTER = 0.1, typein = 'xz', STYLE = 'so0so', FORMAT = '(f4.1)' $ 27 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /noerase, _extra = ex 34 28 35 if KEYWORD_SET(POSTSCRIPT) then begin 36 closeps 37 endif 29 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 30 if KEYWORD_SET(postscript) then closeps 38 31 39 32 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_EqT.pro
r2735 r2751 1 pro xxx_Eq_T, T1, T2, TLev, sEXP1, sEXP2, start_end,POSTSCRIPT = postscript, _extra = ex2 1 pro std_plot_EqT, T1, T2, TLev, POSTSCRIPT = postscript, _extra = ex 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 T = T1.arr-T2.arr 6 sEXP = sEXP1+' - '+sEXP2 7 min = -2. 8 max = -min 9 inter = .25 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_EqT_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 10 13 11 if sEXP2 eq sEXP1 then begin 12 sEXP = sEXP1+' - Levitus' 13 T = T1.arr-TLev.arr 14 min = -4. 15 max = -min 16 inter = .5 17 endif 14 title = 'Equatorial Temperature!C'+std_file1_T 15 pltz, T1, MININ = 2., MAXIN = 30., INTER = 1., typein = 'xz', FORMAT = '(I2)' $ 16 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /PORTRAIT, _extra = ex 18 17 19 if KEYWORD_SET(POSTSCRIPT) then begin 20 openps, '025_Eq_T_'+sEXP+'_y'+start_end+'.ps', portrait = 1 21 endif 22 ; 23 title = sEXP1+' Equatorial T / year '+start_end 24 pltz, T1, MININ = 2., MAXIN = 30., INTER = 1., typein = 'xz' $ 25 , small = [1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /PORTRAIT, _extra = ex 18 if std_file1_T EQ std_file2_T then begin 19 T = T1.arr - TLev.arr 20 title = title+' - Levitus' 21 min = -4. 22 max = -min 23 inter = .5 24 fmt = '(I2)' 25 ENDIF ELSE BEGIN 26 T = T1.arr - T2.arr 27 title = title+' - '+std_file2_T 28 min = -2. 29 max = -min 30 inter = .25 31 fmt = '(f4.1)' 32 ENDELSE 33 34 pltz, T, MININ = min, MAXIN = max, INTER = inter, typein = 'xz', STYLE = 'so0so', FORMAT = fmt $ 35 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /NOERASE, _extra = ex 26 36 ; 27 28 title = sEXP+' Eq. T / year '+start_end 29 pltz, T, MININ = min, MAXIN = max, INTER = inter, typein = 'xz', STYLE = 'so0so' $ 30 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], /NOERASE, _extra = ex 31 ; 32 title ='Equatorial differences with Levitus and '+sEXP+'of temperature' 33 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/025_Eq_T_'+sEXP+'_y'+start_end+'.png /> ' ] 34 putfile, '/tmp/prova.txt', text 35 36 if KEYWORD_SET(POSTSCRIPT) then begin 37 closeps 38 endif 37 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 38 if KEYWORD_SET(postscript) then closeps 39 39 40 40 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_EqU.pro
r2735 r2751 1 pro xxx_Eq_U, U1, U2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 1 pro std_plot_EqU, U1, U2, POSTSCRIPT = postscript, _extra = ex 2 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_EqU_'+std_file1_U 11 if std_file1_U NE std_file2_U then filename = filename + '_'+std_file2_U 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 2 13 3 compile_opt idl2, strictarrsubs 4 5 if KEYWORD_SET(POSTSCRIPT) then begin 6 openps, '027_Eq_U_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 1 7 endif 8 ; 9 title = sEXP1+' Equatorial U_zonal / year '+start_end 10 pltz, U1, MININ = -1., MAXIN = 1., INTER = .1, typein = 'xz', STYLE = 'so0so', UNIT = varunit $ 11 , small = [1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], ZOOM = 500, /PORTRAIT, _extra = ex 14 title = 'Equatorial Zonal Current!C'+std_file1_U 15 pltz, U1, MININ = -1., MAXIN = 1., INTER = .1, typein = 'xz', STYLE = 'so0so', FORMAT = '(f4.1)' $ 16 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], ZOOM = 500, /PORTRAIT, _extra = ex 12 17 13 if sEXP1 ne sEXP2 then begin 14 ; 15 title = sEXP1+' - '+sEXP2+' U_zonal / year '+start_end 16 pltz, U1.arr-U2.arr, MININ = -.5, MAXIN = .5, INTER = .1, typein = 'xz', STYLE = 'so0so', UNIT = varunit $ 17 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], ZOOM = 500, /PORTRAIT, _extra = ex 18 ; 18 if std_file1_U NE std_file2_U then begin 19 title = title+' - '+std_file2_U 20 pltz, U1.arr-U2.arr, MININ = -.5, MAXIN = .5, INTER = .1, typein = 'xz', STYLE = 'so0so', FORMAT = '(f4.1)' $ 21 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [20., 380., -1., 1., 0., 500.], ZOOM = 500, /PORTRAIT, _extra = ex 19 22 endif 20 23 21 title ='Equatorial differences with Levitus and '+sEXP2+'of zonal velocity U' 22 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/027_Eq_U_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 23 putfile, '/tmp/prova.txt', text 24 25 if KEYWORD_SET(POSTSCRIPT) then begin 26 closeps 27 endif 24 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 25 if KEYWORD_SET(postscript) then closeps 28 26 29 27 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_GlobMeanTS.pro
r2735 r2751 1 pro xxx_TS_ZGlobm, T1, T2, TLev, S1, S2, SLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_GlobMeanTS, T1, T2, TLev, S1, S2, SLev, sEXP1, sEXP2, POSTSCRIPT = postscript, _extra = ex 2 2 3 @common 4 compile_opt idl2, strictarrsubs 3 compile_opt idl2, strictarrsubs 5 4 6 if KEYWORD_SET(POSTSCRIPT) then begin 7 openps, '030_TS_ZGlobmean_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', /portrait 8 endif 5 @common 6 @std_common 9 7 10 varunit = T1.unit 11 title=sEXP1+' (Black) & '+sEXP2+' (Red) - Levitus Temp. Global mean / year '+start_end 12 plt1d, T1.arr - TLev.arr, typein = 'z', ticklen = 1 , MIN = -2., MAX = 2., boxzoom = [4.,5300.], /KEEPBOTTOM $ 13 , small = [1,2,1], XGRIDSTYLE = 2, YGRIDSTYLE = 2, TITLE = title, _extra = ex 14 plt1d, T2.arr - TLev.arr, typein = 'z', ticklen = 1 , MIN = -2., MAX = 2., boxzoom = [4.,5300.], /KEEPBOTTOM $ 15 , /ov1d, COLOR = 250,TITLE = title, _extra = ex 16 ; 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_GlobMeanTS_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 17 13 18 varunit = S1.unit 19 title=sEXP1+'(Black) & '+sEXP2+' (Red) - Levitus Sal. Global mean / year '+start_end 20 plt1d, S1.arr - SLev.arr, typein = 'z', ticklen = 1 , MIN = -.2, MAX = .2, boxzoom = [4.,5300.], /KEEPBOTTOM $ 21 , small = [1,2,2], XGRIDSTYLE = 2, YGRIDSTYLE = 2, TITLE = title, /NOERASE, _extra = ex 22 plt1d, S2.arr - SLev.arr, typein = 'z', ticklen = 1 , MIN = -2., MAX = 2., boxzoom = [4.,5300.], /KEEPBOTTOM $ 23 , /ov1d, COLOR = 250, TITLE = title, _extra = ex 14 varunit = T1.unit 15 title = 'Temperature Global mean!C'+std_file1_T+' - Levitus (Black)' 16 if std_file1_T NE std_file2_T THEN title = title+'!C'+std_file2_T+' - Levitus (Red)' 17 plt1d, T1.arr - TLev.arr, typein = 'z', ticklen = 1, MIN = -2., MAX = 2., boxzoom = [4., 5300.], /KEEPBOTTOM $ 18 , small = [1, 2, 1], XGRIDSTYLE = 2, YGRIDSTYLE = 2, TITLE = title, /PORTRAIT, _extra = ex 19 if std_file1_T NE std_file2_T then begin 20 plt1d, T2.arr - TLev.arr, typein = 'z', ticklen = 1, MIN = -2., MAX = 2., boxzoom = [4., 5300.], /KEEPBOTTOM $ 21 , /ov1d, COLOR = 250, TITLE = title, _extra = ex 22 endif 23 ; 24 varunit = S1.unit 25 title = 'Salinity Global mean!C'+std_file1_T+' - Levitus (Black)' 26 if std_file1_T NE std_file2_T THEN title = title+'!C'+std_file2_T+' - Levitus (Red)' 27 plt1d, S1.arr - SLev.arr, typein = 'z', ticklen = 1, MIN = -.2, MAX = .2, boxzoom = [4., 5300.], /KEEPBOTTOM $ 28 , small = [1, 2, 2], XGRIDSTYLE = 2, YGRIDSTYLE = 2, TITLE = title, /NOERASE, _extra = ex 29 if std_file1_T NE std_file2_T then begin 30 plt1d, S2.arr - SLev.arr, typein = 'z', ticklen = 1, MIN = -2., MAX = 2., boxzoom = [4., 5300.], /KEEPBOTTOM $ 31 , /ov1d, COLOR = 250, TITLE = title, _extra = ex 32 endif 24 33 34 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 35 if KEYWORD_SET(postscript) then closeps 25 36 26 title = 'Temperature & Salinity horizontal mean' 27 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/030_TS_ZGlobmean_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 28 putfile, '/tmp/prova.txt', text 29 30 31 if KEYWORD_SET(POSTSCRIPT) then begin 32 closeps 33 endif 34 35 return 37 return 36 38 end 37 39 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_IceThick.pro
r2733 r2751 1 pro xxx_ARC_Icethick_MARS, Ithi_mars_1, Ithi_mars_2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 1 pro std_plot_IceThick, Ithi1, Ithi2, ARC = arc, ANT = ant, MARCH = march, SEPT = sept, POSTSCRIPT = postscript, _extra = ex 2 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 11 var = 'IceThi' 12 IF keyword_set(arc) THEN var = var+'_Arc_' 13 IF keyword_set(ant) THEN var = var+'_Ant_' 14 IF keyword_set(march) THEN var = var+'March' 15 IF keyword_set(sept) THEN var = var+'Sept' 16 17 filename = cdti3 + '_'+var+'_'+std_file1_I 18 if std_file1_I NE std_file2_I then filename = filename + '_'+std_file2_I 19 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 2 20 3 @common 21 IF keyword_set(arc) THEN BEGIN 22 domdef, 20, 380, 50, 90 23 vmin = 0. 24 vmax = 10. 25 vint = 0.5 26 fmt = '(i2)' 27 vmind = -3. 28 vmaxd = 3. 29 vintd = 0.5 30 fmtd = '(i2)' 31 map = [90, 0, 0] 32 ENDIF 33 IF keyword_set(ant) THEN BEGIN 34 domdef, 20, 380, -90, -50 35 vmin = 0. 36 vmax = 3. 37 vint = 0.2 38 fmt = '(f4.1)' 39 vmind = -1. 40 vmaxd = 1. 41 vintd = 0.2 42 fmtd = '(f4.1)' 43 map = [-90, 0, 0] 44 ENDIF 45 ; 46 varunit = Ithi1.unit 47 ; 48 title = var+'!C'+std_file1_I 49 plt, (Ithi1.arr < 10. ) - 1.E-04, MIN = vmin, MAX = vmax, INTER = vint, /STRICTFILL, CELL_FILL = 2, format = fmt $ 50 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title $ 51 , CHARSIZE = 1.05, GLINETHICK = 2., /ORTHO, MAP = map, /PORTRAIT, _extra = ex 52 ; ; 53 if std_file1_I NE std_file2_I then begin 54 title = title + std_file2_I 55 plt, Ithi1.arr - Ithi2.arr, MIN = vmind, MAX = vmaxd, INTER = vintd, STYLE = 'so0so', format = fmtd $ 56 , small = [1, 2, 2], COAST_THICK = 2, CELL_FILL = 2, TITLE = title $ 57 , CHARSIZE = 1.05, GLINETHICK = 2., /ORTHO, MAP = map, /NOERASE, _extra = ex 58 endif 59 60 domdef 4 61 5 compile_opt idl2, strictarrsubs 62 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 63 if KEYWORD_SET(postscript) then closeps 6 64 7 8 if KEYWORD_SET(POSTSCRIPT) then begin 9 openps, '018_ARC_IceThick_MARS_'+sEXP1+'_'+sEXP2+'y'+start_end+'.ps', portrait = 1 10 endif 11 12 domdef,20,380,55,90 13 14 varunit = Ithi_mars_1.unit 15 ; 16 title=sEXP1+' Arctic Ice Thickness MARS/ year '+start_end 17 ;SF Ithi_mars_1.arr = Ithi_mars_1.arr < 6. 18 plt, Ithi_mars_1.arr - 1.E-04, MIN = 0., MAX = 9.5, INTER = 0.5 ,/STRICTFILL , CELL_FILL = 2, STYLE = 'so0so' $ 19 , small = [1,2,1], COAST_THICK = 2, TITLE = title $ 20 , CHARSIZE = 1.05, GLINETHICK = 2., /ORTHO, MAP = [90,0,0], /PORTRAIT, _extra = ex 21 ; 22 if sEXP1 ne sEXP2 then begin 23 title = sEXP1+' - '+sEXP2+' Arctic Ice Thickness / year '+start_end 24 plt, Ithi_mars_1.arr - Ithi_mars_2.arr, MIN = -3., MAX = 3., INTER = .5, /STRICTFILL , STYLE = 'so0so' $ 25 , small = [1,2,2], COAST_THICK = 2, TITLE = title $ 26 , CHARSIZE = 1.05, GLINETHICK = 2., /ORTHO, MAP = [90,0,0], /NOERASE, _extra = ex 27 28 endif ; end of 2 29 30 domdef 31 32 title = 'Arctic Sea-ice Thickness MARS' 33 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/018_ARC_IceThick_MARS_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 34 putfile, '/tmp/prova.txt', text 35 36 if KEYWORD_SET(POSTSCRIPT) then begin 37 closeps 38 endif 39 40 41 return 65 return 42 66 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_Med_Sdepth.pro
r2735 r2751 1 pro xxx_Med_S_depth, S1, S2, SLev, sEXP1, sEXP2, start_end, DEPTH=depth, LAT=lat, POSTSCRIPT = postscript, _extra = ex2 1 pro std_plot_Med_Sdepth, S1, S2, SLev, lat, POSTSCRIPT = postscript, _extra = ex 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 8 slat = strtrim(lat, 1)+'N' 9 cdti3 = string(cnt, format = '(i3.3)') 10 print, cdti3 + ') ' + blabla 11 filename = cdti3 + '_Med_Sdepth_'+slat+'_'+std_file1_T 12 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 13 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 14 ; 15 title = 'Salinity ('+slat+')!C'+std_file1_T 16 pltz, S1, MININ = 35., MAXIN = 37., INTER = 0.1, FORMAT = '(f4.1)' $ 17 , small = [1, 2, 1], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title $ 18 , boxzoom = [2000.], ZOOM = 2000., /PORTRAIT, _extra = ex 19 ; 20 if std_file1_T NE std_file2_T then begin 21 title = title+ ' - '+std_file2_T 22 pltz, S1.arr - S2.arr + valmask*(1.-tmask), MININ = -.4, MAXIN = .4, INTER = .05, STYLE = 'so0so', FORMAT = '(f4.1)' $ 23 , small = [1, 2, 2], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title $ 24 , boxzoom = [2000.], ZOOM = 2000., /noerase, _extra = ex 25 endif else begin 26 title = title+ ' - Levitus' 27 pltz, S1.arr - SLev.arr + valmask*(1.-tmask), MININ = -1., MAXIN = 1., INTER = 0.1, STYLE = 'so0so', FORMAT = '(f4.1)' $ 28 , small = [1, 2, 2], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title $ 29 , boxzoom = [2000.], ZOOM = 2000., /noerase, _extra = ex 30 endelse 7 31 8 if KEYWORD_SET(POSTSCRIPT) then begin 9 openps, '029_'+sEXP1+'_Med_Levitus_S_depth'+strtrim(lat,1)+'_d'+strtrim(depth,1)+'_S_y'+start_end+'.ps' 10 endif 11 ;domdef, 0, 6000 32 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 33 if KEYWORD_SET(postscript) then closeps 12 34 13 ;domdef,270,365,5,70 14 minval = min(abs(gdept - depth),index) 15 ; 16 varunit = S1.unit 17 ; 18 title = sEXP1+' Mediterranean water at ' +strtrim(lat,1)+'°N / year '+start_end 19 pltz, S1.arr, MININ = 35., MAXIN = 37., INTER = 0.1, UNIT = varunit $ 20 , small = [1,2,1], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title, boxzoom = [2000.], ZOOM = 2000., /PORTRAIT, _extra = ex 21 ; 22 23 if sEXP1 ne sEXP2 then begin 24 25 title = sEXP1+' - '+sEXP2+' Mediterranean water at '+strtrim(lat,1)+'°N / year '+start_end 26 pltz, S1.arr - S2.arr, MININ = -.4, MAXIN = .4, INTER = .05, UNIT = varunit $ 27 , small = [1,2,2], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title, boxzoom = [2000.], ZOOM = 2000., _extra = ex 28 29 endif else begin 30 31 title = sEXP1+' - Levitus Mediterranean water at '+strtrim(lat,1)+'°N / year '+start_end 32 pltz, S1.arr-SLev.arr, MININ = -1., MAXIN = 1., INTER=0.1, UNIT = varunit $ 33 , small = [1,2,2], COAST_THICK = 2, endpoints = [300., lat, 357., lat], TITLE = title, boxzoom = [2000.], ZOOM = 2000., _extra = ex 34 endelse 35 36 37 title ='Mediterranean water Lat: '+strtrim(lat,1)+', '+strtrim(depth,1) 38 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/029_'+sEXP1+'_Med_Levitus_S_depth'+strtrim(lat,1)+'_d'+strtrim(depth,1)+'_S_y'+start_end+'.png /> ' ] 39 putfile, '/tmp/prova.txt', text 40 41 if KEYWORD_SET(POSTSCRIPT) then begin 42 closeps 43 endif 44 45 46 return 35 return 47 36 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_Med_Sspread.pro
r2735 r2751 1 pro xxx_Med_S_tongue, S1, S2, SLev, sEXP1, sEXP2, start_end, DEPTH=depth, LAT=lat, POSTSCRIPT = postscript, _extra = ex2 1 pro std_plot_Med_Sspread, S1, S2, SLev, depth, POSTSCRIPT = postscript, _extra = ex 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 tmp = min(abs(depth - gdept), ind) 11 sdepref = strtrim(round(gdept[ind]), 1)+'m' 12 filename = cdti3 + '_Med_Sspread_'+sdepref+'_'+std_file1_T 13 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 14 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 15 ; 16 title = 'Salinity ('+sdepref+')!C'+std_file1_T 17 plt, S1, MININ = 35., MAXIN = 37., INTER = 0.1, FORMAT = '(f4.1)' $ 18 , small = [1, 2, 1], boxzoom = [270, 365, 5, 70, ind, ind], /zindex, COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 19 ; 20 if std_file1_T NE std_file2_T then begin 21 title = title+ ' - '+std_file2_T 22 plt, S1.arr - S2.arr, MININ = -.4, MAXIN = .4, INTER = .05, STYLE = 'so0so', FORMAT = '(f4.1)' $ 23 , small = [1, 2, 2], boxzoom = [270, 365, 5, 70, ind, ind], /zindex, COAST_THICK = 2, TITLE = title, /noerase, _extra = ex 24 endif else begin 25 title = title+ ' - Levitus' 26 plt, S1.arr - SLev.arr, MININ = -1., MAXIN = 1., INTER = 0.1, STYLE = 'so0so', FORMAT = '(f4.1)' $ 27 , small = [1, 2, 2], boxzoom = [270, 365, 5, 70, ind, ind], /zindex, COAST_THICK = 2, TITLE = title, /noerase, _extra = ex 28 ENDELSE 7 29 8 if KEYWORD_SET(POSTSCRIPT) then begin 9 openps, '028_Med_S_tongue_'+sEXP1+'_'+strtrim(lat,1)+'_d'+strtrim(depth,1)+'_S_y'+start_end+'.ps' 10 endif 11 ;domdef, 0, 6000 30 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 31 if KEYWORD_SET(postscript) then closeps 12 32 13 ;domdef,270,365,5,70 14 minval = min(abs(gdept - depth),index) 15 ; 16 varunit = S1.unit 17 ; 18 title = sEXP1+' Mediterranean salt tongue at depth=' + strtrim(gdept[index],1)+' m / year '+start_end 19 plt, S1.arr, MININ=35., MAXIN=37., INTER=0.1, UNIT= varunit $ 20 , small=[1,2,1], boxzoom = [270, 365, 5,70, index,index],/zindex, COAST_THICK=2, TITLE=title, /PORTRAIT, _extra=ex 21 ; 22 if sEXP1 ne sEXP2 then begin 23 24 title = sEXP1+' - '+sEXP2+' Mediterranean salt tongue at depth=' + strtrim(gdept[index],1)+' m / year '+start_end 25 plt, S1.arr - S2.arr, MININ = -.4, MAXIN = .4, INTER = .05, UNIT = varunit $ 26 , small=[1,2,2], boxzoom = [270, 365, 5,70, index,index],/zindex, COAST_THICK=2, TITLE=title, /PORTRAIT, _extra=ex 27 28 endif else begin 29 30 title = sEXP1+' - Levitus Mediterranean salt tongue at depth=' + strtrim(gdept[index],1)+' m / year '+start_end 31 plt, S1.arr - SLev.arr, MININ=-1., MAXIN=1., INTER=0.1, UNIT = varunit $ 32 , small=[1,2,2], boxzoom = [270, 365, 5,70, index,index],/zindex, COAST_THICK=2, TITLE=title, /PORTRAIT, _extra=ex 33 34 endelse 35 36 title ='Mediterranean water Lat: '+strtrim(lat,1)+', '+strtrim(depth,1) 37 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/028_Med_S_tongue_'+sEXP1+'_'+strtrim(lat,1)+'_d'+strtrim(depth,1)+'_S_y'+start_end+'.png /> ' ] 38 putfile, '/tmp/prova.txt', text 39 40 if KEYWORD_SET(POSTSCRIPT) then begin 41 closeps 42 endif 43 44 45 return 33 return 46 34 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_S100m.pro
r2733 r2751 1 pro xxx_S_z105, S1, S2, SLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_S100m, S1, S2, SLev, POSTSCRIPT = postscript, _extra = ex 2 2 3 @common 4 compile_opt idl2, strictarrsubs 5 6 if KEYWORD_SET(POSTSCRIPT) then begin 7 openps, '013_S_z105_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.ps', portrait = 1 8 endif 9 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 tmp = min(abs(100 - gdept), ind) 11 sdepref = strtrim(round(gdept[ind]), 1)+'m' 12 filename = cdti3 + '_S'+sdepref+'_'+std_file1_T 13 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 14 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 10 15 ; 11 varunit = S1.unit 16 title = 'Salinity ('+sdepref+')!C'+std_file1_T 17 plt, S1, MIN = 33., MAX = 38.2, INTER = .2, format = '(f4.1)' $ 18 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /PORTRAIT, _extra = ex 12 19 ; 20 if std_file1_T NE std_file2_T then begin 21 title = title+ ' - '+std_file2_T 22 plt, S1.arr[*, *, 0] - S2.arr[*, *, 0], MIN = -1., MAX = 1., INTER = .1, STYLE = 'so0so', format = '(f4.1)' $ 23 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /noerase, _extra = ex 24 endif else begin 25 title = title+ ' - Levitus' 26 plt, S1.arr-SLev.arr, MIN = -1., MAX = 1., INTER = 0.1, STYLE = 'so0so', format = '(f4.1)' $ 27 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /noerase, _extra = ex 28 endelse 13 29 14 title=sEXP1+' S (PSU) depth=105m / Sal year '+start_end 15 plt, S1.arr, MIN = 33., MAX = 38.2, INTER = .2, STYLE = 'so0so' $ 16 , small = [1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /NOERASE, _extra = ex 17 ; 18 if sEXP1 ne sEXP2 then begin 19 20 title = sEXP1+' - '+sEXP2+' S (PSU) depth=105m / Sal year '+start_end 21 plt, S1.arr[*,*,0] - S2.arr[*,*,0], MIN = -1., MAX = 1., INTER = .1 $ 22 , small = [1,2,2], COAST_THICK = 2, TITLE = title, _extra=ex 23 24 endif else begin 25 26 title=sEXP1+' - Levitus S (PSU) depth=105m / Sal year '+start_end 27 plt, S1.arr-SLev.arr, MIN = -1., MAX = 1., INTER=0.1, STYLE='so0so' $ 28 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /PORTRAIT, _extra = ex 29 30 endelse 31 30 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 31 if KEYWORD_SET(postscript) then closeps 32 32 33 34 title = 'Salinity differences at z=105 m with Levitus and '+sEXP2 35 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/013_S_z105_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.png /> ' ] 36 putfile, '/tmp/prova.txt', text ; 37 38 39 if KEYWORD_SET(POSTSCRIPT) then begin 40 closeps 41 endif 42 43 return 33 return 44 34 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_T100m.pro
r2733 r2751 1 pro xxx_T_z105, T1, T2, TLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 2 3 @common 4 compile_opt idl2, strictarrsubs 1 pro std_plot_T100m, T1, T2, TLev, POSTSCRIPT = postscript, _extra = ex 5 2 6 7 if KEYWORD_SET(POSTSCRIPT) then begin 8 openps, '012_T_z105_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.ps', portrait = 1 9 endif 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 tmp = min(abs(100 - gdept), ind) 11 sdepref = strtrim(round(gdept[ind]), 1)+'m' 12 filename = cdti3 + '_T'+sdepref+'_'+std_file1_T 13 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 14 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 15 ; 16 title = 'Temperature ('+sdepref+')!C'+std_file1_T 17 plt, T1, MIN = -2., MAX = 32., INTER = 1., FORMAT = '(I2)' $ 18 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /portrait, _extra = ex 10 19 ; 11 varunit = T1.unit 12 ; 13 title = sEXP1+' T (°C) depth=105m / Temp year '+start_end 14 plt, T1.arr, MIN = -2., MAX = 32., INTER = 1., STYLE = 'so0so' $ 15 , small = [1,2,1], COAST_THICK = 2, TITLE = title, FORMAT = '(I2)', boxzoom = [105., 106.], /NOERASE, _extra = ex 16 ; 17 if sEXP1 ne sEXP2 then begin 20 IF std_file1_T NE std_file2_T THEN BEGIN 21 title = title+ ' - '+std_file2_T 22 plt, T1.arr - T2.arr, MIN = -2., MAX = 2., INTER = .2, STYLE = 'so0so', FORMAT = '(f4.1)' $ 23 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /noerase, _extra = ex 24 ENDIF ELSE BEGIN 25 title = title+ ' - Levitus' 26 plt, T1.arr - TLev.arr, MIN = -4., MAX = 4., INTER = .5, STYLE = 'so0so', FORMAT = '(I2)' $ 27 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /noerase, _extra = ex 28 ENDELSE 29 ; 30 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 31 if KEYWORD_SET(postscript) then closeps 18 32 19 title = sEXP1+' - '+sEXP2+' T (°C) depth=105m / Temp year '+start_end 20 plt, T1.arr-T2.arr, MIN = -2., MAX = 2., INTER = .2 $ 21 , small = [1,2,2], COAST_THICK = 2, TITLE = title, _extra=ex 22 23 endif else begin 24 25 title = sEXP1+' - Levitus T (°C) depth=105m / Temp year '+start_end 26 plt, T1.arr-TLev.arr, MIN = -4., MAX = 4., INTER = .5, STYLE = 'so0so' $ 27 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = [105., 106.], /PORTRAIT, _extra = ex 28 endelse 29 30 31 title = 'Temperature differences at z=105 m with Levitus and '+sEXP1+'-'+sEXP2 32 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/012_T_z105_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.png /> ' ] 33 putfile, '/tmp/prova.txt', text ; 34 35 36 if KEYWORD_SET(POSTSCRIPT) then begin 37 closeps 38 endif 39 40 return 33 return 41 34 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_ZonMld.pro
r2733 r2751 1 pro xxx_ZonMxl, MXL1, MXL2, MLD, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 2 3 @common 1 pro std_plot_ZonMld, MLD1, MLD2, MLD, POSTSCRIPT = postscript, _extra = ex 4 2 5 compile_opt idl2, strictarrsubs3 compile_opt idl2, strictarrsubs 6 4 7 8 if KEYWORD_SET(POSTSCRIPT) then begin 9 openps, '015_ZonMxl_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 1 10 endif 11 5 @common 6 @std_common 12 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_ZonMld_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 13 13 ; 14 title=sEXP1+' (Black) , '+sEXP2+' (Red) & Clim (Blue) Mxl10 / year '+start_end 15 plt1d, -MXL1.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $ 16 , small=[1,1,1], boxzoom=5500, ZOOM=500, CHARSIZE=.8, TITLE = title, /PORTRAIT, _extra=ex ; color by default = black 14 title = std_file1_T+' (Black)!C' 15 if std_file1_T NE std_file2_T THEN title = title + std_file2_T+' (Red)!C' 16 title = title + 'DeBoyer (Blue)!C' 17 18 plt1d, -MLD1.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $ 19 , small = [1, 1, 1], boxzoom = 5500, ZOOM = 500, CHARSIZE = .8, TITLE = title, /PORTRAIT, _extra = ex 17 20 ; 18 plt1d, -MXL2.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $ 19 , /ov1d, COLOR = 250, TITLE = title, /NOERASE, _extra = ex ; color 250 = red 21 IF std_file1_T NE std_file2_T THEN $ 22 plt1d, -MLD2.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $ 23 , /ov1d, COLOR = 250, TITLE = title, /NOERASE, _extra = ex ; color 250 = red 20 24 ; 21 plt1d, -MLD.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $22 , /ov1d, COLOR = 100, THICK = 3, TITLE = title, /NOERASE, _extra = ex ; color 100 = blue25 plt1d, -MLD.arr, MIN = -300., MAX = 0., INTER = 10., typein = 'y' $ 26 , /ov1d, COLOR = 100, THICK = 3, TITLE = title, /NOERASE, _extra = ex ; color 100 = blue 23 27 24 title = 'Mxl field' 25 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/015_ZonMxl_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 26 putfile, '/tmp/prova.txt', text 28 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 29 if KEYWORD_SET(postscript) then closeps 27 30 28 29 if KEYWORD_SET(POSTSCRIPT) then begin 30 closeps 31 endif 32 33 return 31 return 34 32 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_all.pro
r2740 r2751 1 pro std_plots, std_EXP1, std_EXP2, ystart, _extra=ex 2 3 ; scripts for nemo v3_3 4 5 6 PRINT, 'usage: postscript ' 7 PRINT, '========================================================================' 8 PRINT, 'std_plots, ''std_EXP1'', ''std_EXP2'', ystart, /postscript' 9 PRINT, '========================================================================' 10 PRINT, 'std_plots, ''core2000'', ''core2000'', 1991, /postscript' 11 PRINT, '========================================================================' 12 1 pro std_plot_all, doplot = doplot, _extra = ex 13 2 14 3 compile_opt idl2, strictarrsubs 15 4 5 @common 6 @std_common 7 ; scripts for nemo v3_2 and v3_3 8 16 9 PRINT, '' 17 10 PRINT, ' ############################################' … … 21 14 PRINT, ' ############################################' 22 15 PRINT, '' 23 24 25 @common 26 @initorca2 27 @std_com 28 29 year_start = ystart * 10000L + 101L ; year of start (corresponding to filename) 30 year_end = (ystart + 9L) * 10000L + 1231L ; year of end (corresponding to filename) 31 start_end = string(year_start,format= '(I08)')+'_'+string(year_end,format ='(I08)') ; variable string for filename 32 ; std_iodir_data = '/Users/sflod/idl_PLOTS/DATA_STORE/RUN_INTERAN/brodie/' ; path of data in NetCdf format 33 std_iodir_data = '/Users/sflod/idl_PLOTS/DATA_STORE/RUN_CLIMATO/brodie/' ; path of data in NetCdf format 34 std_iodir_climato = '/Users/sflod/idl_PLOTS/CLIMATOLOGIES/' ; path of climatological data 35 std_iodir_mask = '/Users/sflod/idl_PLOTS/MASK/' ; path of mask files (ex: subbasins) 36 37 ;;;;; ==================================================== WARNING ================================================================= ;;;;;;;;;; 38 d1 = (ystart + 9L) * 10000L + 101L ; date to select last record of file with 10 years of record 39 d2 = year_end ; date to select last record of file with 10 years of record 40 id1 = (ystart + 9L) * 10000L + 1201L ; date to select starting date for (monthly) ice output 41 id2 = d2 ; date to select last record for (monthly) ice output 42 id_mars_1 = (ystart + 9L) * 10000L + 301L ; date to select mars ice output 43 id_mars_2 = (ystart + 9L) * 10000L + 331L ; date to select mars ice output 44 id_sept_1 = (ystart + 9L) * 10000L + 901L ; date to select september ice output 45 id_sept_2 = (ystart + 9L) * 10000L + 930L ; date to select september ice output 46 ; 16 ; 17 std_iodir_data = isadirectory(getenv('DIR_DATA'), title = 'path of data in NetCdf format') 18 std_iodir_climato = isadirectory(getenv('DIR_CLIMATO'), title = 'path of climatological data') 19 std_iodir_mask = isadirectory(getenv('DIR_MASK'), title = 'path of mask files (ex: subbasins)') 20 ; meshmask 21 std_file_mesh = isafile(getenv('FILE_MESH_MASK'), title = 'mesh_mask', iodir = std_iodir_mask) 22 std_file_msksub = isafile(getenv('FILE_MASK_SUBDOMAIN'), title = 'sub-bassin masks', iodir = std_iodir_mask) 23 47 24 ; Levitus 98 48 std_file_Levitus_T = 'data_1y_potential_temperature_nomask.nc' 49 std_file_Levitus_S = 'data_1y_salinity_nomask.nc' 50 25 std_file_Levitus_T = isafile(getenv('FILE_TEMP_3D'), title = 'Levitus_T', iodir = std_iodir_climato) 26 std_file_Levitus_S = isafile(getenv('FILE_SAL_3D'), title = 'Levitus_S', iodir = std_iodir_climato) 27 std_file_reynolds = isafile(getenv('FILE_SST'), title = 'Reynolds', iodir = std_iodir_climato) 28 std_file_oaflux = isafile(getenv('FILE_FLUX'), title = 'oaflux', iodir = std_iodir_climato) 29 std_file_mld = isafile(getenv('FILE_MLD'), title = 'Mixed layer depth', iodir = std_iodir_climato) 30 31 IF strlowcase(getenv('FILE_GEOHEAT')) EQ 'no' THEN std_file_geoheat = 'no' $ 32 ELSE std_file_geoheat = isafile(getenv('FILE_GEOHEAT'), title = 'Geothermal heating', iodir = std_iodir_climato) 33 ; 34 allrec = 1 - keyword_set(long(getenv('READ_ONLY_FIRST_RECORD'))) 51 35 ; Output run experience1 52 std_file1_T = std_EXP1+'_'+start_end+'_1Y_grid_T.nc' ; grid T input file 53 std_file1_U = std_EXP1+'_'+start_end+'_1Y_grid_U.nc' ; grid U input file 54 std_file1_V = std_EXP1+'_'+start_end+'_1Y_grid_V.nc' ; grid V input file 55 ; std_file1_W = std_EXP1+'_'+start_end+'_1Y_grid_W.nc' ; grid W input file 56 std_file1_I = std_EXP1+'_'+start_end+'_1M_icemod.nc' ; ice input file 36 std_file1_T = isafile(getenv('FILE1_T'), title = 'exp1 grid T input file', iodir = std_iodir_data) 37 std_file1_U = isafile(getenv('FILE1_U'), title = 'exp1 grid U input file', iodir = std_iodir_data) 38 std_file1_V = isafile(getenv('FILE1_V'), title = 'exp1 grid V input file', iodir = std_iodir_data) 39 std_file1_I = isafile(getenv('FILE1_I'), title = 'exp1 ice input file', iodir = std_iodir_data) 57 40 58 41 ; Output run experience2 59 std_file2_T = std_EXP2+'_'+start_end+'_1Y_grid_T.nc' ; grid T input file60 std_file2_U = std_EXP2+'_'+start_end+'_1Y_grid_U.nc' ; grid U input file61 std_file2_V = std_EXP2+'_'+start_end+'_1Y_grid_V.nc' ; grid V input file62 ; std_file2_W = std_EXP2+'_'+start_end+'_1Y_grid_W.nc' ; grid W 63 std_file2_I = std_EXP2+'_'+start_end+'_1M_icemod.nc' ; ice input file 64 65 66 PRINT, ' '67 PRINT, ' std_ EXP1 : ', std_EXP168 PRINT, ' std_ EXP2 : ', std_EXP269 PRINT, ' std_iodir_data : ', std_iodir_data 70 PRINT, ' std_file 1T : ', std_file1_T71 PRINT, ' std_file 1U : ', std_file1_U72 PRINT, ' std_file 1V : ', std_file1_V73 ; PRINT, ' std_file1W : ', std_file1_W 74 PRINT, ' std_file2I : ', std_file1_I 75 PRINT, ' std_file2 T : ', std_file2_T76 PRINT, ' std_file2U : ', std_file2_U77 PRINT, ' std_file2V : ', std_file2_V 78 ; PRINT, ' std_file2W : ', std_file2_W79 PRINT, ' std_file2I : ', std_file2_I 80 PRINT, '' 81 82 ;######################################################################### 42 std_file2_T = isafile(getenv('FILE2_T'), title = 'exp2 grid T input file', iodir = std_iodir_data) 43 std_file2_U = isafile(getenv('FILE2_U'), title = 'exp2 grid U input file', iodir = std_iodir_data) 44 std_file2_V = isafile(getenv('FILE2_V'), title = 'exp2 grid V input file', iodir = std_iodir_data) 45 std_file2_I = isafile(getenv('FILE2_I'), title = 'exp2 ice input file', iodir = std_iodir_data) 46 47 PRINT, '' 48 PRINT, ' std_iodir_data : ' + std_iodir_data 49 PRINT, ' std_file1T : ' + std_file1_T 50 PRINT, ' std_file1U : ' + std_file1_U 51 PRINT, ' std_file1V : ' + std_file1_V 52 ; PRINT, ' std_file1W : ' + std_file1_W 53 PRINT, ' std_file2I : ' + std_file1_I 54 PRINT, ' std_file2T : ' + std_file2_T 55 PRINT, ' std_file2U : ' + std_file2_U 56 PRINT, ' std_file2V : ' + std_file2_V 57 ; PRINT, ' std_file2W : ' + std_file2_W 58 PRINT, ' std_file2I : ' + std_file2_I 59 PRINT, '' 60 61 ;######################################################################### 62 ;########################## Load Grids ################################ 63 ;######################################################################### 64 ; load the grid 65 load_orca, std_file_mesh 83 66 ; reading variables 84 67 masknp = read_ncdf('tmaskutil', file = std_file_mesh, /nostruct, /cont_nofill) 68 ;######################################################################### 69 ;############################ Read Data ################################ 70 ;######################################################################### 71 ; 72 allrec = 1; - keyword_set(long(getenv('READ_ONLY_FIRST_RECORD'))) 73 ; 85 74 ;;; 3D ;;; 86 75 ; temperature 87 T1 = read_ncdf('thetao', d1, d2, filename = std_iodir_data+std_file1_T)88 T2 = read_ncdf('thetao', d1, d2, filename = std_iodir_data+std_file2_T )89 TLev = read_ncdf('votemper', filename = std_iodir_climato+std_file_Levitus_T)90 TRey = read_ncdf('sst' , filename = std_iodir_climato+'NewREY_ORCA2_1991_2000_1y.nc' )91 92 help,T1,T2,TLev,TRey 76 T1 = read_ncdf(getenv('VAR1_T'), allrecords = allrec, direc = 't', filename = std_file1_T ) 77 IF std_file2_T NE std_file1_T THEN BEGIN 78 T2 = read_ncdf(getenv('VAR2_T'), allrecords = allrec, direc = 't', filename = std_file2_T ) 79 ENDIF ELSE T2 = {arr:-1} 80 TLev = read_ncdf(getenv('VAR_TEMP_3D'), filename = std_file_Levitus_T ) 81 TRey = read_ncdf(getenv('VAR_SST'), filename = std_file_reynolds ) 93 82 94 83 ; salinity 95 S1 = read_ncdf('so', d1, d2, filename = std_iodir_data+std_file1_T ) 96 S2 = read_ncdf('so', d1, d2, filename = std_iodir_data+std_file2_T ) 97 SLev = read_ncdf('vosaline', filename = std_iodir_climato+std_file_Levitus_S ) 98 84 S1 = read_ncdf(getenv('VAR1_S'), allrecords = allrec, direc = 't', filename = std_file1_T ) 85 IF std_file2_T NE std_file1_T THEN BEGIN 86 S2 = read_ncdf(getenv('VAR2_S'), allrecords = allrec, direc = 't', filename = std_file2_T ) 87 ENDIF ELSE S2 = {arr:-1} 88 SLev = read_ncdf(getenv('VAR_SAL_3D'), filename = std_file_Levitus_S ) 89 90 ;;; 2D ;;; 99 91 ; Net Downward heat flux 100 Q1 = read_ncdf('qt', d1, d2, filename = std_iodir_data+std_file1_T ) 101 Q2 = read_ncdf('qt', d1, d2, filename = std_iodir_data+std_file2_T ) 102 geo = read_ncdf('heatflow', filename= std_iodir_climato+'geothermal_heating.nc' ) 103 geo = geo.arr*1.e-3 ; convert into W/m2 104 92 Q1 = read_ncdf(getenv('VAR1_QNET'), allrecords = allrec, direc = 't', filename = std_file1_T ) 93 IF std_file2_T NE std_file1_T THEN BEGIN 94 Q2 = read_ncdf(getenv('VAR2_QNET'), allrecords = allrec, direc = 't', filename = std_file2_T ) 95 ENDIF ELSE Q2 = {arr:-1} 96 ; Geothermal heating 97 IF std_file_geoheat EQ 'no' THEN geo = {arr:float(getenv('VAR_GEOHEAT'))} $ 98 ELSE geo = read_ncdf(getenv('VAR_GEOHEAT'), filename = std_file_geoheat ) 99 geo = geo.arr*1.e-3 ; convert into W/m2 105 100 ;climatology 106 QNET = read_ncdf('qnet', filename = std_iodir_climato+'OAFlux_1my_01_12_1984_2004_orca2_qnet.nc')101 QNET = read_ncdf(getenv('VAR_FLUX'), filename = std_file_oaflux ) 107 102 108 103 ; erp (evaporation damping) 109 ERP1 = read_ncdf('wfcorr', d1, d2, filename = std_iodir_data+std_file1_T ) 110 ERP2 = read_ncdf('wfcorr', d1, d2, filename = std_iodir_data+std_file2_T ) 111 ERP1 = ERP1.arr * 86400 112 ERP2 = ERP2.arr * 86400 104 ERP1 = read_ncdf(getenv('VAR1_ERP'), allrecords = allrec, direc = 't', filename = std_file1_T ) 105 ERP1 = {arr:ERP1.arr * 86400., unit:'mm/day', grid:'T'} 106 IF std_file2_T NE std_file1_T THEN BEGIN 107 ERP2 = read_ncdf(getenv('VAR2_ERP'), allrecords = allrec, direc = 't', filename = std_file2_T ) 108 ERP2 = {arr:ERP2.arr * 86400., unit:'mm/day', grid:'T'} 109 ENDIF ELSE ERP2 = {arr:-1} 113 110 114 111 ; emp (evaporation minus precipitation) 115 EMP1 = read_ncdf('wfo', d1, d2, filename = std_iodir_data+std_file1_T ) 116 EMP2 = read_ncdf('wfo', d1, d2, filename = std_iodir_data+std_file2_T ) 117 EMP1 = EMP1.arr * 86400 118 EMP2 = EMP2.arr * 86400 112 EMP1 = read_ncdf(getenv('VAR1_EMP'), allrecords = allrec, direc = 't', filename = std_file1_T ) 113 EMP1 = {arr:EMP1.arr * 86400., unit:'mm/day', grid:'T'} 114 IF std_file2_T NE std_file1_T THEN BEGIN 115 EMP2 = read_ncdf(getenv('VAR2_EMP'), allrecords = allrec, direc = 't', filename = std_file2_T ) 116 EMP2 = {arr:EMP2.arr * 86400., unit:'mm/day', grid:'T'} 117 ENDIF ELSE EMP2 = {arr:-1} 118 119 ;mixed layer depth 120 MLD1 = read_ncdf(getenv('VAR1_MLD'), allrecords = allrec, direc = 't', filename = std_file1_T ) ; 10 m 121 IF std_file2_T NE std_file1_T THEN BEGIN 122 MLD2 = read_ncdf(getenv('VAR2_MLD'), allrecords = allrec, direc = 't', filename = std_file2_T ) ; 10 m 123 ENDIF ELSE MLD2 = {arr:-1} 124 ;climatology 125 MLD = read_ncdf(getenv('VAR_MLD'), filename = std_file_mld ) 126 127 ; velocities 128 U1 = read_ncdf(getenv('VAR1_U'), allrecords = allrec, direc = 't', filename = std_file1_U ) 129 IF strlowcase(getenv('VAR1_U')) EQ 'uocetr_eff' THEN BEGIN 130 U1.arr = U1.arr / e3u_3d(/e2) * umask() 131 U1.unit = 'm/s' 132 ENDIF 133 IF std_file2_U NE std_file1_U THEN BEGIN 134 U2 = read_ncdf(getenv('VAR2_U'), allrecords = allrec, direc = 't', filename = std_file2_U ) 135 IF strlowcase(getenv('VAR2_U')) EQ 'uocetr_eff' THEN BEGIN 136 U2.arr = U2.arr / e3u_3d(/e2) * umask() 137 U2.unit = 'm/s' 138 ENDIF 139 ENDIF ELSE U2 = {arr:-1} 140 ; 141 V1 = read_ncdf(getenv('VAR1_V'), allrecords = allrec, direc = 't', filename = std_file1_V ) 142 IF strlowcase(getenv('VAR1_V')) EQ 'vocetr_eff' THEN BEGIN 143 V1.arr = V1.arr / e3v_3d(/e1) * vmask() 144 V1.unit = 'm/s' 145 ENDIF 146 IF std_file2_V NE std_file1_V THEN BEGIN 147 V2 = read_ncdf(getenv('VAR2_V'), allrecords = allrec, direc = 't', filename = std_file2_V ) 148 IF strlowcase(getenv('VAR2_V')) EQ 'vocetr_eff' THEN BEGIN 149 V2.arr = V2.arr / e3v_3d(/e1) * vmask() 150 V2.unit = 'm/s' 151 ENDIF 152 ENDIF ELSE V2 = {arr:-1} 153 154 ; ice 155 Ithi_1 = read_ncdf(getenv('VAR1_Ithick'), allrecords = allrec, filename = std_file1_I ) 156 caldat, time, mm 157 march = where(mm EQ 3, cnt) 158 Ithi_march_1 = {arr:1./float(cnt) * total(Ithi_1.arr[*, *, temporary(march)], 3), unit:Ithi_1.unit} 159 sept = where(mm EQ 3, cnt) 160 Ithi_sept_1 = {arr:1./float(cnt) * total(Ithi_1.arr[*, *, temporary(sept)], 3), unit:Ithi_1.unit} 161 undefine, Ithi_1 162 ; 163 IF std_file2_I NE std_file1_I THEN BEGIN 164 Ithi_2 = read_ncdf(getenv('VAR2_Ithick'), allrecords = allrec, filename = std_file2_I ) 165 caldat, time, mm 166 march = where(mm EQ 3, cnt) 167 Ithi_march_2 = {arr:1./float(cnt) * total(Ithi_2.arr[*, *, temporary(march)], 3), unit:Ithi_2.unit} 168 sept = where(mm EQ 3, cnt) 169 Ithi_sept_2 = {arr:1./float(cnt) * total(Ithi_2.arr[*, *, temporary(sept)], 3), unit:Ithi_2.unit} 170 undefine, Ithi_2 171 ENDIF ELSE BEGIN 172 Ithi_march_2 = {arr:-1} 173 Ithi_sept_2 = {arr:-1} 174 ENDELSE 175 ; 176 Ifra_1 = read_ncdf(getenv('VAR1_Ifrac'), allrecords = allrec, filename = std_file1_I ) 177 caldat, time, mm 178 march = where(mm EQ 3, cnt) 179 Ifra_march_1 = {arr:1./float(cnt) * total(Ifra_1.arr[*, *, temporary(march)], 3), unit:Ifra_1.unit} 180 sept = where(mm EQ 9, cnt) 181 Ifra_sept_1 = {arr:1./float(cnt) * total(Ifra_1.arr[*, *, temporary(sept)], 3), unit:Ifra_1.unit} 182 undefine, Ifra_1 183 ; 184 IF std_file2_I NE std_file1_I THEN BEGIN 185 Ifra_2 = read_ncdf(getenv('VAR2_Ifrac'), allrecords = allrec, filename = std_file2_I ) 186 caldat, time, mm 187 march = where(mm EQ 3, cnt) 188 Ifra_march_2 = {arr:1./float(cnt) * total(Ifra_2.arr[*, *, temporary(march)], 3), unit:Ifra_2.unit} 189 sept = where(mm EQ 9, cnt) 190 Ifra_sept_2 = {arr:1./float(cnt) * total(Ifra_2.arr[*, *, temporary(sept)], 3), unit:Ifra_2.unit} 191 undefine, Ifra_2 192 ENDIF ELSE BEGIN 193 Ifra_march_2 = {arr:-1} 194 Ifra_sept_2 = {arr:-1} 195 ENDELSE 196 ; 197 jpt = 1 198 ; 199 ; shorter file names for legends... 200 ; 201 std_file1_T = file_basename(std_file1_T,'.nc') 202 std_file1_T = (strsplit(std_file1_T,'_grid_T',/extract,/regex))[0] 203 std_file2_T = file_basename(std_file2_T,'.nc') 204 std_file2_T = (strsplit(std_file2_T,'_grid_T',/extract,/regex))[0] 205 std_file1_U = file_basename(std_file1_U,'.nc') 206 std_file1_U = (strsplit(std_file1_U,'_grid_U',/extract,/regex))[0] 207 std_file2_U = file_basename(std_file2_U,'.nc') 208 std_file2_U = (strsplit(std_file2_U,'_grid_U',/extract,/regex))[0] 209 std_file1_V = file_basename(std_file1_V,'.nc') 210 std_file1_V = (strsplit(std_file1_V,'_grid_V',/extract,/regex))[0] 211 std_file2_V = file_basename(std_file2_V,'.nc') 212 std_file2_V = (strsplit(std_file2_V,'_grid_V',/extract,/regex))[0] 213 std_file1_I = file_basename(std_file1_I,'.nc') 214 std_file1_I = (strsplit(std_file1_I,'_icemod',/extract,/regex))[0] 215 std_file2_I = file_basename(std_file2_I,'.nc') 216 std_file2_I = (strsplit(std_file2_I,'_icemod',/extract,/regex))[0] 217 218 ;######################################################################### 219 ;###################### STANDARD PLOTS ################################ 220 ;######################################################################### 221 222 IF keyword_set(doplot) EQ 0 THEN doplot = 0 223 224 ; fixed color tabled 225 lct, 64 226 cnt = 0 227 htmltxt = '' 228 ; 229 cnt = cnt+1 & blabla = 'Erp salinity damping term' 230 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_erp, ERP1, ERP2, _extra = ex 231 232 cnt = cnt+1 & blabla = 'Evaporation - Precipitation - Runoff term' 233 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_emp, EMP1, EMP2, _extra = ex 234 235 cnt = cnt+1 & blabla = 'Net heat flux' 236 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_qnet, Q1, Q2, QNET, _extra = ex 237 238 cnt = cnt+1 & blabla = 'Meridionnal Heat Transport' 239 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mht, Q1.arr+geo, Q2.arr+geo, masknp, std_file_msksub, _extra = ex 240 241 cnt = cnt+1 & blabla = 'Global Barotropic stream Function' 242 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_bsf, U1, U2, _extra = ex 243 244 cnt = cnt+1 & blabla = 'mean Temperature diff with New Reynolds' 245 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_sst, T1, T2, TRey, _extra = ex 246 247 cnt = cnt+1 & blabla = 'mean Salinity diff with Levitus' 248 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_sss, S1, S2, SLev, _extra = ex 249 250 cnt = cnt+1 & blabla = 'Arctic mean Salinity diff with Levitus' 251 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, SLev, _extra = ex 252 253 cnt = cnt+1 & blabla = 'Arctic mean Salinity diff with Levitus and exp2' 254 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, S2, SLev, _extra = ex 255 256 cnt = cnt+1 & blabla = 'Arctic mean Salinity diff with Levitus at z=100 meters' 257 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, SLev, /z100, _extra = ex 119 258 120 ;mixed layer depth 121 MXL1 = read_ncdf('mldr10_1', d1, d2, filename = std_iodir_data+std_file1_T ) ; 10 m 122 MXL2 = read_ncdf('mldr10_1', d1, d2, filename = std_iodir_data+std_file2_T ) ; 10 m 123 ;climatology 124 MLD = read_ncdf('mld', filename = std_iodir_climato+'mld_DR003_c1m_ORCA2_1y.nc' ) 125 126 ; velocities 127 U1 = read_ncdf('uocetr_eff', d1, d2, filename = std_iodir_data+std_file1_U ) 128 U2 = read_ncdf('uocetr_eff', d1, d2, filename = std_iodir_data+std_file2_U ) 129 e23 = e3u_3d(/e2) 130 e23 = e23[*]#replicate(1., jpt) 131 U1.arr = U1.arr /e23 132 U2.arr = U2.arr /temporary(e23) 133 U1.unit = 'm/s' 134 U2.unit = 'm/s' 135 ; 136 V1 = read_ncdf('vocetr_eff', d1, d2, filename = std_iodir_data+std_file1_V ) 137 V2 = read_ncdf('vocetr_eff', d1, d2, filename = std_iodir_data+std_file2_V ) 138 e13 = e3u_3d(/e1) 139 e13 = e13[*]#replicate(1., jpt) 140 V1.arr = V1.arr /e13 141 V2.arr = V2.arr /temporary(e13) 142 V1.unit = 'm/s' 143 V2.unit = 'm/s' 144 145 ; Take into account the Gent & McWilliams "Eddy Induced velocity" 146 ; Veiv1 = read_ncdf('vomeeivv', filename = std_iodir_data+std_file2_V ) 147 ; Veiv2 = read_ncdf('vomeeivv', filename = std_iodir_data+std_file2_V ) 148 149 ; ice 150 Ithi_mars_1 = read_ncdf('sit', id_mars_1, id_mars_2, filename = std_iodir_data+std_file1_I ) 151 Ithi_mars_2 = read_ncdf('sit', id_mars_1, id_mars_2, filename = std_iodir_data+std_file2_I ) 152 153 Ithi_sept_1 = read_ncdf('sit', id_sept_1, id_sept_2, filename = std_iodir_data+std_file1_I ) 154 Ithi_sept_2 = read_ncdf('sit', id_sept_1, id_sept_2, filename = std_iodir_data+std_file2_I ) 155 156 Ifra_mars_1 = read_ncdf('sic', id_mars_1, id_mars_2, filename = std_iodir_data+std_file1_I ) 157 Ifra_mars_2 = read_ncdf('sic', id_mars_1, id_mars_2, filename = std_iodir_data+std_file2_I ) 158 159 Ifra_sept_1 = read_ncdf('sic', id_sept_1, id_sept_2, filename = std_iodir_data+std_file1_I ) 160 Ifra_sept_2 = read_ncdf('sic', id_sept_1, id_sept_2, filename = std_iodir_data+std_file2_I ) 161 162 163 ;######################################################################### 164 165 ;######################################################################### 166 ;###################### STANDARD PLOTS ################################ 167 ;######################################################################### 168 169 ; fixed color tabled 170 lct,64 171 172 PRINT, ' ' 173 PRINT, ' Experience treated:', std_EXP1 174 PRINT, ' ' 175 PRINT, ' ' 176 PRINT, ' ' 177 178 ;;;;;;;; ErP & Emp salinity damping term 179 ;;;;;;;; ============================================= 180 PRINT, '============================================= ' 181 PRINT, ' PLOTS 2D ' 182 PRINT, '============================================= ' 183 PRINT, ' ErP salinity damping term' 184 PRINT, '1' 185 xxx_Erp, ERP1, ERP2, std_EXP1, std_EXP2, start_end, _extra = ex 186 PRINT, '2' 187 xxx_Emp, EMP1, EMP2, std_EXP1, std_EXP2, start_end, _extra = ex 188 189 ;;;;; Net heat flux 190 ;;;;; ============= 191 PRINT, ' ' 192 PRINT, ' Net heat flux' 193 PRINT, '3 ' 194 xxx_Qnet, Q1, Q2, QNET, std_EXP1, std_EXP2, start_end, _extra = ex 195 196 ;;; Meridionnal Heat Transport 197 ;;; =========================== 198 PRINT, ' ' 199 PRINT, ' Meridionnal Heat Transport' 200 PRINT, '4 ' 201 fig_ht_fromQ, Q1.arr+geo, Q2.arr+geo, std_EXP1, std_EXP2, start_end, MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 202 203 ;;; Global Barotropic Function 204 ;;; =========================== 205 PRINT, ' ' 206 PRINT, ' Global Barotropic Function ' 207 PRINT, '5 ' 208 plt_bsf, U1, U2, std_EXP1, std_EXP2, start_end, _extra=ex 209 210 ;; mean Temperature diff with New Reynolds 211 ;; ======================================= 212 PRINT, ' ' 213 PRINT, ' mean Temperature diff with New Reynolds' 214 PRINT, '6 ' 215 xxx_SST, T1[*,*,0], T2[*,*,0], TRey, std_EXP1, std_EXP2, start_end, _extra=ex 216 217 218 ;;;; mean Salinity diff with Levitus 219 ;;;; =============================== 220 PRINT, ' ' 221 PRINT, ' mean Salinity diff with Levitus' 222 PRINT, '7 ' 223 xxx_SSS, S1[*,*,0], S2[*,*,0], SLev[*,*,0], std_EXP1, std_EXP2, start_end, _extra=ex 224 225 ;;;;;;; Arctic mean Salinity diff with Levitus at z=105 meters 226 ;;;;;;; ====================================================== 227 PRINT, ' ' 228 PRINT, ' Arctic mean Salinity diff with Levitus at z=105 meters' 229 PRINT, '8 exp1-levitus' 230 xxx_EXP1_S_ARC, S1, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 231 PRINT, '9 exp2-levitus' 232 xxx_EXP2_S_ARC, S1, S2, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 233 PRINT, '10 exp1-levitus at 105 meters' 234 xxx_EXP1_S_ARC_z105, S1, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 235 PRINT, '11 exp2-levitus at 105 meters' 236 xxx_EXP2_S_ARC_z105, S1, S2, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 237 238 239 ;;;;;;;; mean Temperature diff with Levitus at z=105 meters 240 ;;;;;;;; ================================================== 241 PRINT, ' ' 242 PRINT, ' mean Temperature diff with Levitus at z=105 meters' 243 PRINT, '12' 244 xxx_T_z105, T1, T2, TRey, std_EXP1, std_EXP2, start_end, _extra=ex 245 246 247 ;;;;;;;; mean Salinity diff with Levitus at z=105 meters 248 ;;;;;;;; ================================================== 249 PRINT, ' ' 250 PRINT, ' mean Salinity diff with Levitus at z=105 meters' 251 PRINT, '13' 252 xxx_S_z105, S1, S2, SLev, std_EXP1, std_EXP2, start_end, _extra=ex 253 254 255 PRINT, '============================================= ' 256 PRINT, ' PLOTS 3D ' 257 PRINT, '============================================= ' 258 259 PRINT, ' Mixed layer depth' 260 PRINT, '14 ' 261 xxx_mxl10, MXL1, MXL2, MLD, std_EXP1, std_EXP2, start_end, _extra = ex 262 PRINT, '15' 263 xxx_ZonMxl, MXL1, MXL2, MLD, std_EXP1, std_EXP2, start_end, _extra = ex 264 265 266 ;;;;;;;;; Zonal mean Temperature diff with Levitus 267 ;;;;;;;;; ======================================== 268 PRINT, ' ' 269 PRINT, ' Zonal mean Temperature diff with Levitus' 270 PRINT, '16 ' 271 xxx_zonal_T, T1, T2, TLev, std_EXP1, std_EXP2, start_end, MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 272 273 PRINT, '16 ' 274 xxx_zonal_T, T1, T2, TLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Atl', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 275 276 PRINT, '16 ' 277 xxx_zonal_T, T1, T2, TLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Ind', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 278 279 PRINT, '16 ' 280 xxx_zonal_T, T1, T2, TLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Pac', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 281 282 283 ;;;;;;;;;; Zonal mean Salinity diff with Levitus 284 ;;;;;;;;;; ======================================== 285 PRINT, ' ' 286 PRINT, ' Zonal mean Salinity diff with Levitus' 287 PRINT, '17 ' 288 xxx_zonal_S, S1, S2, SLev, std_EXP1, std_EXP2, start_end, MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 289 290 PRINT, '17 ' 291 xxx_zonal_S, S1, S2, SLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Atl', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 292 293 PRINT, '17 ' 294 xxx_zonal_S, S1, S2, SLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Ind', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 295 296 PRINT, '17 ' 297 xxx_zonal_S, S1, S2, SLev, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Pac', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 298 299 ;;;;;;; Seasonal & Annual mean Arctic/Antarctic Ice Thickness & Ice Concentration 300 ;;;;;; ========================================================================== 301 PRINT, ' ' 302 PRINT, ' Arctic/Antarctic Ice Thickness' 303 PRINT, ' 18' 304 xxx_ARC_Icethick_MARS, Ithi_mars_1, Ithi_mars_2, std_EXP1, std_EXP2, start_end, _extra = ex 305 306 PRINT, ' 19' 307 xxx_ARC_Icethick_SEPT, Ithi_sept_1, Ithi_sept_2, std_EXP1, std_EXP2, start_end, _extra = ex 308 309 PRINT, ' 20' 310 xxx_ANT_Icethick_MARS, Ithi_mars_1, Ithi_mars_2, std_EXP1, std_EXP2, start_end, _extra = ex 311 312 PRINT, ' 21' 313 xxx_ANT_Icethick_SEPT, Ithi_sept_1, Ithi_sept_2, std_EXP1, std_EXP2, start_end, _extra = ex 314 315 PRINT, ' Arctic/Antarctic Ice Concentration (area of sea-ice per grid cell area' 316 PRINT, ' 22' 317 xxx_Iceleadfrac_MARS, Ifra_mars_1, Ifra_mars_2, std_EXP1, std_EXP2, start_end, _extra = ex 318 319 PRINT, ' 23' 320 xxx_Iceleadfrac_SEPT, Ifra_sept_1, Ifra_sept_2, std_EXP1, std_EXP2, start_end, _extra = ex 321 322 323 ;;; Global and Atlantic Meridional Function 324 ;;; ======================================= 325 PRINT, ' ' 326 PRINT, ' Global and Atlantic Meridional Function' 327 PRINT, ' 24 ' 328 plt_msf, V1, V2, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Glo', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 329 PRINT, ' 24 ' 330 plt_msf, V1, V2, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Atl', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 331 PRINT, ' 24 ' 332 plt_msf, V1, V2, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Ind', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 333 PRINT, ' 24 ' 334 plt_msf, V1, V2, std_EXP1, std_EXP2, start_end, SUBBASIN = 'Pac', MASK_FILENAME = std_iodir_mask+'subbasins_orca21_nored.nc', _extra = ex 335 336 337 PRINT, '============================================= ' 338 PRINT, ' Local PLOTS ' 339 PRINT, '============================================= ' 340 341 ;;;;;;;;; Equatorial Temperature 342 ;;;;;;;;; ====================== 343 PRINT, ' ' 344 PRINT, ' Equatorial Temperature' 345 PRINT, ' ' 346 PRINT, ' 25 ' 347 xxx_Eq_T, T1, T2, Tlev, std_EXP1, std_EXP2, start_end, _extra = ex 348 349 ;;;;;;;; Equatorial Salinity 350 ;;;;;;;; =================== 351 PRINT, ' ' 352 PRINT, ' Equatorial Salinity' 353 PRINT, ' 26 ' 354 xxx_Eq_S, S1, S2, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 355 356 ;;; Equatorial zonal velocity 357 ;;; ========================= 358 PRINT, ' ' 359 PRINT, ' Equatorial zonal velocity' 360 PRINT, ' 27 ' 361 xxx_Eq_U, U1, U2, std_EXP1, std_EXP2, start_end, _extra = ex 362 363 ;;;;;;;;;;;; Mediterranean salt tongue 364 ;;;;;;;;;;;; =============================================== 365 366 PRINT, ' ' 367 PRINT, ' Mediterranean salt tongue at depth=700 and lat 40°N' 368 PRINT, ' 28 ' 369 xxx_Med_S_tongue, S1, S2, SLev, std_EXP1, std_EXP2, start_end, DEPTH = 700, LAT = 40, _extra = ex 370 ; 371 PRINT, ' Mediterranean salt tongue at depth=1000 and lat 38°N' 372 PRINT, ' 28 ' 373 xxx_Med_S_tongue, S1, S2, SLev, std_EXP1, std_EXP2, start_end, DEPTH = 1000, LAT = 38, _extra = ex 374 375 ;;;;;;;;; Mediterranean 376 ;;;;;;;;; =============================================== 377 PRINT, ' ' 378 PRINT, ' Mediterranean water at 38°N' 379 PRINT, ' 29 ' 380 xxx_Med_S_depth, S1, S2, SLev, std_EXP1, std_EXP2, start_end, DEPTH = 1000, LAT = 38, _extra = ex 381 PRINT, ' Mediterranean water at 38°N' 382 PRINT, ' 29 ' 383 xxx_Med_S_depth, S1, S2, SLev, std_EXP1, std_EXP2, start_end, DEPTH = 700, LAT = 40, _extra = ex 384 385 ; 386 387 ;;;;;;;;;;; Vertical Global mean T & S 388 ;;;;;;;;;;; =========================== 389 PRINT, ' ' 390 PRINT, ' Vertical Global mean T & S' 391 PRINT, ' 30 ' 392 xxx_TS_ZGlobm, T1, T2, TLev, S1, S2, SLev, std_EXP1, std_EXP2, start_end, _extra = ex 393 394 259 cnt = cnt+1 & blabla = 'Arctic mean Salinity diff with Levitus and exp2 at z=100 meters' 260 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, S2, SLev, /z100, _extra = ex 261 262 cnt = cnt+1 & blabla = 'mean Temperature diff with Levitus at z=100 meters' 263 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_T100m, T1, T2, Tlev, _extra = ex 264 265 cnt = cnt+1 & blabla = 'mean Salinity diff with Levitus at z=100 meters' 266 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_S100m, S1, S2, SLev, _extra = ex 267 268 cnt = cnt+1 & blabla = 'Mixed layer depth' 269 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mld, MLD1, MLD, _extra = ex 270 271 cnt = cnt+1 & blabla = 'Mixed layer depth differences' 272 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mld, MLD1, MLD2, MLD, _extra = ex 273 274 cnt = cnt+1 & blabla = 'Zonal mean Mixed layer depth' 275 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ZonMld, MLD1, MLD2, MLD, _extra = ex 276 277 cnt = cnt+1 & blabla = 'Zonal mean Temperature diff with Levitus: Global' 278 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, _extra = ex 279 280 cnt = cnt+1 & blabla = 'Zonal mean Temperature diff with Levitus: Atlantic' 281 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Atl', _extra = ex 282 283 cnt = cnt+1 & blabla = 'Zonal mean Temperature diff with Levitus: Indian' 284 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Ind', _extra = ex 285 286 cnt = cnt+1 & blabla = 'Zonal mean Temperature diff with Levitus: Pacific' 287 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Pac', _extra = ex 288 289 cnt = cnt+1 & blabla = 'Zonal mean Salinity diff with Levitus: Global' 290 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, _extra = ex 291 292 cnt = cnt+1 & blabla = 'Zonal mean Salinity diff with Levitus: Atlantic' 293 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Atl', _extra = ex 294 295 cnt = cnt+1 & blabla = 'Zonal mean Salinity diff with Levitus: Indian' 296 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Ind', _extra = ex 297 298 cnt = cnt+1 & blabla = 'Zonal mean Salinity diff with Levitus: Pacific' 299 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Pac', _extra = ex 300 301 cnt = cnt+1 & blabla = 'Arctic Ice Thickness: MARCH' 302 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_march_1, Ithi_march_2, /ARC, /MARCH, _extra = ex 303 304 cnt = cnt+1 & blabla = 'Arctic Ice Thickness: SEPT' 305 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_sept_1, Ithi_sept_2, /ARC, /SEPT, _extra = ex 306 307 cnt = cnt+1 & blabla = 'Antarctic Ice Thickness: MARCH' 308 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_march_1, Ithi_march_2, /ANT, /MARCH, _extra = ex 309 310 cnt = cnt+1 & blabla = 'Antarctic Ice Thickness: SEPT' 311 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_sept_1, Ithi_sept_2, /ANT, /SEPT, _extra = ex 312 313 cnt = cnt+1 & blabla = 'Arctic Ice Fraction: MARCH' 314 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_march_1, Ifra_march_2, /ARC, /MARCH, _extra = ex 315 316 cnt = cnt+1 & blabla = 'Arctic Ice Fraction: SEPT' 317 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_sept_1, Ifra_sept_2, /ARC, /SEPT, _extra = ex 318 319 cnt = cnt+1 & blabla = 'Antarctic Ice Fraction: MARCH' 320 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_march_1, Ifra_march_2, /ANT, /MARCH, _extra = ex 321 322 cnt = cnt+1 & blabla = 'Antarctic Ice Fraction: SEPT' 323 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_sept_1, Ifra_sept_2, /ANT, /SEPT, _extra = ex 324 325 cnt = cnt+1 & blabla = 'Meridional stream Function: Global (no Med)' 326 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'GloNoMed', _extra = ex 327 328 cnt = cnt+1 & blabla = 'Meridional stream Function: Atlantic' 329 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'Atl', _extra = ex 330 331 cnt = cnt+1 & blabla = 'Meridional stream Function: Indian' 332 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'Ind', _extra = ex 333 334 cnt = cnt+1 & blabla = 'Meridional stream Function: Indo-Pacific' 335 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'IndoPac', _extra = ex 336 337 cnt = cnt+1 & blabla = 'Equatorial Temperature' 338 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqT, T1, T2, Tlev, _extra = ex 339 340 cnt = cnt+1 & blabla = 'Equatorial Salinity' 341 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqS, S1, S2, SLev, _extra = ex 342 343 cnt = cnt+1 & blabla = 'Equatorial zonal velocity' 344 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqU, U1, U2, _extra = ex 345 346 cnt = cnt+1 & blabla = 'Mediterranean salt tongue at depth=700' 347 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sspread, S1, S2, SLev, 700, _extra = ex 348 349 cnt = cnt+1 & blabla = 'Mediterranean salt tongue at depth=1000' 350 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sspread, S1, S2, SLev, 1000, _extra = ex 351 352 cnt = cnt+1 & blabla = 'Mediterranean water at lat=40°N' 353 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sdepth, S1, S2, SLev, 40, _extra = ex 354 355 cnt = cnt+1 & blabla = 'Mediterranean water at lat=38°N' 356 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sdepth, S1, S2, SLev, 38, _extra = ex 357 358 cnt = cnt+1 & blabla = 'Vertical Global mean T & S' 359 IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_GlobMeanTS, T1, T2, TLev, S1, S2, SLev, _extra = ex 360 361 IF n_elements(htmltxt) GT 1 THEN putfile, psdir+'std_plot_html_body.txt', htmltxt[1:*] 362 395 363 return 396 364 END -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_bsf.pro
r2733 r2751 1 pro plt_bsf, U1, U2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_bsf, U1, U2, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 7 if KEYWORD_SET(POSTSCRIPT) then begin 8 openps, '005_bsf_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 1 9 endif 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_BSF_'+std_file1_U 11 if std_file1_U NE std_file2_U then filename = filename + '_'+std_file2_U 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 13 10 14 domdef, 0, 6000 11 15 16 bb1 = bsf(U1.arr, refvalue = 0., refpoint = [25, 0]) 17 title = 'Barotropic Stream Function!C'+std_file1_U 18 plt, bb1, min = -200., max = 200., int = 10., /portrait, FORMAT = '(I4)', STYLE = 'so0so' $ 19 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, _extra = ex 12 20 13 bb1 = bsf(U1.arr, refvalue = 0., refpoint = [25, 0] ) 14 bb2 = bsf(U2.arr, refvalue = 0., refpoint = [25, 0]) 15 16 title = sEXP1+' Barotropic Stream Function'+' / year '+start_end 17 plt, bb1, min =-200., max = 200., int = 10.,/portrait, FORMAT = '(I4)', STYLE= 'so0so' $ 18 , small = [1,2,1], COAST_THICK = 2, TITLE = title, _extra = ex 19 20 21 if sEXP1 ne sEXP2 then begin 22 23 title = sEXP1+' - '+sEXP2+' Barotropic Stream Function'+' / year '+start_end 24 plt, bb1.arr - bb2.arr , min = -20., max = 20., int = 2., FORMAT = '(I2)', STYLE= 'so0so' $ 25 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /NOERASE, _extra = ex 26 21 if std_file1_U NE std_file2_U then BEGIN 22 bb2 = bsf(U2.arr, refvalue = 0., refpoint = [25, 0]) 23 title = 'Barotropic Stream Function!C'+std_file1_U+' - '+std_file2_U 24 plt, bb1.arr - bb2.arr, min = -20., max = 20., int = 2., FORMAT = '(I2)', STYLE = 'so0so' $ 25 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, /NOERASE, _extra = ex 27 26 endif 28 27 29 title = 'Barotropic Stream Function' 30 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/005_bsf_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 31 putfile, '/tmp/prova.txt', text 32 33 if KEYWORD_SET(POSTSCRIPT) then begin 34 closeps 35 endif 36 28 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 29 if KEYWORD_SET(postscript) then closeps 37 30 38 31 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_emp.pro
r2726 r2751 1 pro xxx_Emp, EMP1, EMP2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 2 3 @common 4 1 pro std_plot_emp, EMP1, EMP2, POSTSCRIPT = postscript, _extra = ex 2 5 3 compile_opt idl2, strictarrsubs 6 4 7 if KEYWORD_SET(POSTSCRIPT) then begin 8 openps, '002_Emp_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 1 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_Emp_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 13 14 title = 'Emp!C'+std_file1_T 15 plt, EMP1, MIN = -10., MAX = 10., INTER = 1., style = 'so0so' $ 16 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, format = '(i3)', /PORTRAIT, _extra = ex 17 18 if std_file1_T NE std_file2_T then begin 19 title = title+' - '+std_file2_T 20 plt, EMP1.arr - EMP2.arr, MIN = -5., MAX = 5., INTER = 1., style = 'so0so' $ 21 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, format = '(i3)', /NOERASE, _extra = ex 9 22 endif 10 11 title=sEXP1+' Emp (mm/day) / year '+start_end12 varunit= 'mm/day'13 plt, EMP1, MIN = -10., MAX = 10., INTER = 1. $14 , small = [1,2,1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra=ex15 16 if sEXP1 ne sEXP2 then begin17 23 18 title=sEXP1+' - '+sEXP2+' / Emp year '+start_end 19 plt, EMP1-EMP2, MIN = -5., MAX = 5., INTER = 1. $ 20 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /NOERASE, _extra=ex 21 endif 22 23 title = 'Emp field' 24 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/002_Emp_'+sEXP1+'_'+sEXP2+'_y '+start_end+'.png /> ' ] 25 putfile, '/tmp/prova.txt', text 26 27 28 if KEYWORD_SET(POSTSCRIPT) then begin 29 closeps 30 endif 24 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 25 if KEYWORD_SET(postscript) then closeps 31 26 32 27 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_erp.pro
r2726 r2751 1 pro xxx_Erp, ERP1, ERP2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_erp, ERP1, ERP2, POSTSCRIPT = postscript, _extra = ex 2 2 3 @common4 5 3 compile_opt idl2, strictarrsubs 6 4 7 if KEYWORD_SET(POSTSCRIPT) then begin 8 openps, '001_Erp_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 1 9 endif 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_Erp_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 10 13 11 title=sEXP1+' Erp (mm/day) / year '+start_end 12 varunit= 'mm/day' 13 plt, ERP1, MIN = -5., MAX = 5., INTER = .5 $ 14 , small = [1,2,1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra=ex 14 title = 'Erp!C'+std_file1_T 15 plt, ERP1, MIN = -5., MAX = 5., INTER = .5, style = 'so0so' $ 16 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, /PORTRAIT, format = '(i2)', _extra = ex 15 17 16 if sEXP1 ne sEXP2 then begin 17 18 title=sEXP1+' - '+sEXP2+' / Erp year '+start_end 19 plt, ERP1-ERP2, MIN = -2., MAX = 2., INTER = .25 $ 20 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /NOERASE, _extra=ex 21 18 if std_file1_T NE std_file2_T then begin 19 title = title+' - '+std_file2_T 20 plt, ERP1.arr - ERP2.arr, MIN = -2., MAX = 2., INTER = .25, style = 'so0so' $ 21 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, format = '(f4.1)', /NOERASE, _extra = ex 22 22 endif 23 23 24 title = 'Erp field' 25 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/001_Erp_'+sEXP1+'_'+sEXP2+'_y '+start_end+'.png /> ' ] 26 putfile, '/tmp/prova.txt', text 27 28 29 if KEYWORD_SET(POSTSCRIPT) then begin 30 closeps 31 endif 24 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 25 if KEYWORD_SET(postscript) then closeps 32 26 33 27 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_mht.pro
r2733 r2751 1 pro fig_ht_fromQ, Q1, Q2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, MASK_FILENAME = mask_filename, _extra = ex 2 1 PRO std_plot_domht, Q, masknp, mask_filename, ibce, htr, htr_atl 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 6 7 tmask_save = tmask 8 ; suppress 1/2 north ligne dans TMASK 9 tmask[jpi/2:jpi-1,jpj-1,0] = 0b ; 0 byte 7 Qave = moyenne(Q, 'xy', mask2d = masknp) ; mean value 8 Qnet = Q - Qave 9 ibce = STRTRIM(Qave, 1) 10 ; 11 msk = read_ncdf('atlmsk_nomed', filename = mask_filename, /nostruct) 12 msk = msk[*]#replicate(1., nzt) ; from 2D array to 3D array 13 14 ; *1.E-15 to have PetaWatt 15 Qx = moyenne(Qnet*e2t , 'x', mask2d = masknp, /integration)*1.E-15 16 Qx_atl = moyenne(Qnet*e2t*msk, 'x', mask2d = masknp, /integration)*1.E-15 17 ; northward heat flux transport from antartic 18 htr = total(Qx, /cumulative) 19 htr_atl = total(reverse(Qx_atl), /cumulative) ; ! from north to south 20 htr_atl = -reverse(htr_atl) 21 ; we take from values north till 30° South 22 htr_atl[where(gphit[0, *] lt -30.)] = !Values.F_NaN 10 23 11 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 24 return 25 END 12 26 13 Qave1 = moyenne(Q1,'xy', mask2d = masknp) 14 Qave2 = moyenne(Q2,'xy', mask2d = masknp) 27 pro std_plot_mht, Q1, Q2, masknp, mask_filename, POSTSCRIPT = postscript, _extra = ex 15 28 16 Qnet1 = Q1 - Qave1 17 Qnet2 = Q2 - Qave2 29 compile_opt idl2, strictarrsubs 18 30 19 index=where(gphit eq max(gphit)) 20 nx=index[0] mod jpi 21 gphi_save=gphit 22 gphit[0,*]=gphit[nx,*] 23 ; 24 msk = read_ncdf( 'atlmsk_nomed', filename = mask_filename, _extra = ex) 31 @common 32 @std_common 33 34 cdti3 = string(cnt, format = '(i3.3)') 35 print, cdti3 + ') ' + blabla 36 filename = cdti3 + '_MHT_'+std_file1_T 37 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 38 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 25 39 26 ; from 2D array to 3D array 27 msk = msk.arr[*]#replicate(1., nzt) 28 29 ; x average (zonal mean) 30 ; *1.E-15 to have PetaWatt 31 Q1x = moyenne(Qnet1*e2t,'x', mask2d = masknp,/integration)*1.E-15 32 Q2x = moyenne(Qnet2*e2t,'x', mask2d = masknp,/integration)*1.E-15 33 Q1x_atl = moyenne(Qnet1*e2t*msk,'x', mask2d = masknp,/integration)*1.E-15 34 Q2x_atl = moyenne(Qnet2*e2t*msk,'x', mask2d = masknp,/integration)*1.E-15 35 ; northward heat flux transport from antartic 36 htr1 = total(Q1x, /cumulative) 37 htr2 = total(Q2x, /cumulative) 38 htr1_atl = total(reverse(Q1x_atl), /cumulative) 39 htr1_atl = -reverse(htr1_atl) 40 htr2_atl = total(reverse(Q2x_atl), /cumulative) 41 htr2_atl = -reverse(htr2_atl) 42 43 bad_gphit = where(gphit[0,*] lt -30.) 44 htr1_atl[bad_gphit] = !Values.F_NaN ; we take from values north till 30° South 45 htr2_atl[bad_gphit] = !Values.F_NaN ; we take from values north till 30° South 46 47 if KEYWORD_SET(POSTSCRIPT) then begin 48 openps, '004_MHT_'+sEXP1+'-'+sEXP2+'_y'+start_end+ '.ps', /landscape 49 endif 40 ; find the x index with the highest latitude (for the plot) 41 index = where(gphit eq max(gphit)) 42 nx = index[0] mod jpi 43 gphi_save = gphit 44 gphit[0, *] = gphit[nx, *] 45 ; compute meridional heat transport 46 std_plot_domht, Q1, masknp, mask_filename, ibce1, htr1, htr1_atl 50 47 51 48 ; update data informations … … 54 51 vargrid = 'T' 55 52 56 ibce1 = STRTRIM(Qave1, 1) 57 ibce2 = STRTRIM(Qave2, 1) 53 title = 'MHT (Black) & Atlantic MHT (Blue)!C'+std_file1_T 54 subtitle = '(Qnet='+ibce1+' W/m2)' 55 plt1d, htr1, 'y', min = -2., max = 2.5, TITLE = title, SUBTITLE = subtitle, /portrait $ 56 , SMALL = [2, 2, 1], YTITLE = 'PW', XGRIDSTYLE = 2, TICKLEN = 1, YGRIDSTYLE = 2, _extra = ex 57 plt1d, htr1_atl, 'y', COLOR = 50, /ov1d, _extra = ex 58 58 59 title = sEXP1+' MHT (Black) & Atlantic MHT (Blue) / year '+start_end 60 subtitle = sEXP1 + ' (Qnet='+ibce1+' W/m2) - (Qnet='+ibce2+' W/m2)' 59 if std_file1_T NE std_file2_T then begin 60 ; compute meridional heat transport 61 std_plot_domht, Q2, masknp, mask_filename, ibce2, htr2, htr2_atl 61 62 62 plt1d, htr1,'y',min = -2., max = 2.5, TITLE=title, SUBTITLE = subtitle $ 63 , SMALL = [2,2,1], YTITLE = 'PW', XGRIDSTYLE = 2, TICKLEN = 1, YGRIDSTYLE = 2 , _extra = ex 64 plt1d, htr1_atl,'y', COLOR = 50, /ov1d, _extra = ex 63 title = 'MHT (Black) & Atlantic MHT (Blue)!C'+std_file2_T 64 subtitle = '(Qnet='+ibce2+' W/m2)' 65 plt1d, htr2, 'y', min = -2., max = 2.5, TITLE = title, SUBTITLE = subtitle, /noerase $ 66 , SMALL = [2, 2, 2], YTITLE = 'PW', XGRIDSTYLE = 2, TICKLEN = 1, YGRIDSTYLE = 2, _extra = ex 67 plt1d, htr2_atl, 'y', COLOR = 50, /ov1d, _extra = ex 65 68 66 if sEXP1 ne sEXP2 then begin 67 plt1d, htr2,'y', /ov1d, LINESTYLE = 2, _extra = ex 68 plt1d, htr2_atl,'y', /ov1d, LINESTYLE = 2, _extra = ex 69 varunit = 'Tw' 70 title = 'MHT (TeraW) differences!C'+std_file1_T+' - '+std_file2_T 71 plt1d, (htr1-htr2)*1.e3, 'y', min = -250., max = 250., TITLE = title $ 72 , SMALL = [2, 2, 3], TICKLEN = 1, XGRIDSTYLE = 2 $ 73 , YTITLE = 'TW', YGRIDSTYLE = 2, /NOERASE, _extra = ex 74 plt1d, (htr1_atl - htr2_atl)*1.e3, 'y', COLOR = 50, /ov1d, _extra = ex 75 76 endif 77 78 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 79 if KEYWORD_SET(postscript) then closeps 69 80 70 title = sEXP1+' - '+sEXP2+' MHT (TeraW) differences / year '+start_end 71 plt1d, (htr1-htr2)*1.e3,'y',min = -250., max = 250., TITLE = title $ 72 , SMALL = [2,2,3], TICKLEN = 1, XGRIDSTYLE = 2 $ 73 , YTITLE = 'TW', YGRIDSTYLE = 2, /NOERASE, _extra = ex 74 plt1d, (htr1_atl - htr2_atl)*1.e3,'y', COLOR = 50, /ov1d, _extra = ex 75 76 endif 77 78 title = 'Qnet' 79 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/004_MHT_'+sEXP1+'-'+sEXP2+'_y'+start_end+ '.png /> ' ] 80 putfile, '/tmp/prova.txt', text 81 82 if KEYWORD_SET(POSTSCRIPT) then begin 83 closeps 84 endif 85 86 tmask=tmask_save 87 gphit=gphi_save 81 gphit = gphi_save 88 82 89 83 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_mld.pro
r2733 r2751 1 pro xxx_mxl10, MXL1, MXL2, MLD, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_mld, MLD1, MLD2in, MLDin, POSTSCRIPT = postscript, _extra = ex 2 2 3 @common3 compile_opt idl2, strictarrsubs 4 4 5 compile_opt idl2, strictarrsubs 5 @common 6 @std_common 6 7 7 MXL = MXL1.arr-MXL2.arr 8 sEXP = sEXP1+' - '+sEXP2 9 min = -100. 10 max = -min 11 inter = 10. 12 13 if sEXP2 eq sEXP1 then begin 14 sEXP = sEXP1+' - MLD ' 15 MXL = MXL1.arr-MLD.arr 16 min = -80. 17 max = -min 18 inter = 10. 19 endif 20 21 22 if KEYWORD_SET(POSTSCRIPT) then begin 23 openps, '014_Mxl10_'+sEXP+'_y'+start_end+'.ps', portrait = 1 24 endif 25 26 title=sEXP1+' Mxl10 / year '+start_end 27 plt, MXL1, MIN = 0., MAX = 500., INTER = 25., /NOCONTOUR ,FORMAT = '(I3)' $ 28 , small = [1,2,1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 29 ; 30 31 title=sEXP+' Mxl10 / year '+start_end 32 plt, MXL, MIN = min, MAX = max, INTER = inter $ 33 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /NOCONTOUR, /NOERASE, _extra = ex 34 ; end of 2 35 title = 'Mxl10 field' 36 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/014_Mxl10_'+sEXP+'_y'+start_end+'.png /> ' ] 37 putfile, '/tmp/prova.txt', text 38 39 40 if KEYWORD_SET(POSTSCRIPT) then begin 41 closeps 42 endif 43 44 return 8 CASE n_params() OF 9 2:BEGIN 10 MLD = MLD2in 11 END 12 3:BEGIN 13 IF MLD2in.arr[0] EQ -1 THEN return 14 MLD2 = MLD2in 15 MLD = MLDin 16 END 17 ENDCASE 18 ; 19 cdti3 = string(cnt, format = '(i3.3)') 20 print, cdti3 + ') ' + blabla 21 filename = cdti3 + '_MLD_'+std_file1_T 22 IF keyword_set(MLD2) THEN filename = filename + '_' + std_file2_T 23 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 24 ; 25 varunit = MLD1.unit 26 titleorg = 'MLD!C' 27 ; 28 IF keyword_set(MLD2) THEN BEGIN 29 title = titleorg+std_file1_T+ ' - '+std_file2_T 30 plt, MLD1.arr - MLD2.arr, MIN = -80., MAX = 80., INTER = 10., FORMAT = '(I3)' $ 31 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, /NOCONTOUR, /PORTRAIT, _extra = ex 32 ENDIF ELSE BEGIN 33 title = titleorg+std_file1_T 34 plt, MLD1, MIN = 0., MAX = 500., INTER = 25., /NOCONTOUR, FORMAT = '(I3)' $ 35 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 36 ENDELSE 37 ; 38 IF keyword_set(MLD2) THEN BEGIN 39 title = titleorg+std_file2_T+ ' - DeBoyer' 40 tmp = MLD2.arr - MLD.arr 41 ENDIF ELSE BEGIN 42 title = titleorg+std_file1_T+ ' - DeBoyer' 43 tmp = MLD1.arr - MLD.arr 44 ENDELSE 45 plt, temporary(tmp), MIN = -80., MAX = 80., INTER = 10., FORMAT = '(I3)' $ 46 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, /NOCONTOUR, /NOERASE, _extra = ex 47 ; 48 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 49 if KEYWORD_SET(postscript) then closeps 50 ; 51 return 45 52 end 46 53 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_msf.pro
r2733 r2751 1 pro plt_msf, V1, V2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, SUBBASIN = subbasin, MASK_FILENAME = mask_filename,_extra = ex1 pro std_plot_msf, V1, V2, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 7 if KEYWORD_SET(SUBBASIN) then subname = subbasin8 9 10 if KEYWORD_SET(POSTSCRIPT) then begin11 openps, '024_msf_'+subname+'_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps', portrait = 112 endif13 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 if KEYWORD_SET(SUBBASIN) then subname = subbasin else subname = "Glo" 11 filename = cdti3 + '_MSF_'+subname+'_'+std_file1_V 12 if std_file1_V NE std_file2_V then filename = filename + '_'+std_file2_V 13 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 14 ; 14 15 if KEYWORD_SET(SUBBASIN) then begin 15 16 CASE 1 of 17 subbasin eq 'Atl' : var = 'atlmsk_nomed' 18 subbasin eq 'Ind' : var = 'indmsk' 19 subbasin eq 'Pac' : var = 'indpacmsk' 20 subbasin eq 'Glo' : var = 'glomsk_nomed' 21 ENDCASE 22 ; 23 msk = read_ncdf( var, filename = mask_filename, /nostruct, _extra = ex ) 24 25 endif else msk = tmask[*,*,0] 16 CASE subname of 17 'Atl' : var = 'atlmsk_nomed' 18 'Ind' : var = 'indmsk' 19 'IndoPac' : var = 'indpacmsk' 20 'GloNoMed' : var = 'glomsk_nomed' 21 ENDCASE 22 msk = read_ncdf( var, filename = std_file_msksub, /nostruct, _extra = ex ) 23 endif else msk = tmask[*, *, 0] 26 24 ; 27 28 29 25 CASE subname OF 30 'Glo':lat_ext=[-80,90]31 'Atl':lat_ext=[-30,90]32 'Ind':lat_ext=[-30,30]33 'Pac':lat_ext=[-30,70]34 26 'GloNoMed':lat_ext = [-80, 90] 27 'Glo':lat_ext = [-80, 90] 28 'Atl':lat_ext = [-30, 90] 29 'Ind':lat_ext = [-30, 30] 30 'IndoPac':lat_ext = [-30, 70] 35 31 ENDCASE 36 37 if subbasin eq 'Pac' then subname = "IndoPac"38 32 39 33 domdef, 0, 6000 40 34 41 mm1 = msf(V1.arr, msk, indexboxzoom = ind, maskout = ma) 42 mm2 = msf(V2.arr, msk, indexboxzoom = ind, maskout = ma) 43 title=sEXP1+' Meridional Stream Function '+subname+'/ year '+start_end 44 pltz, mm1, -20., 20., int = 1., boxzoom = [ind[0:1],lat_ext, 0, 5500], /xindex , FORMAT = '(I3)' $ 45 , small=[1,2,1], COAST_THICK=2 , zoom = 5500, maskdta = ma, /no_partial, TITLE = title, style = 'so0so' 35 mm1 = msf(V1.arr, indexboxzoom = ind, maskout = ma) 36 title = 'Meridional Stream Function, '+subname+'!C'+std_file1_V 37 pltz, mm1, 'yz', -20., 20., int = 1., boxzoom = [ind[0:1], lat_ext, 0, 5500], /xindex, FORMAT = '(I3)', /portrait $ 38 , small = [1, 2, 1], COAST_THICK = 2, zoom = 5500, maskdta = ma, /no_partial, TITLE = title, style = 'so0so' 46 39 47 if sEXP1 ne sEXP2 then begin 48 49 title=sEXP1+' - '+sEXP2+subname+'/ year '+start_end 50 pltz, mm1.arr-mm2.arr, -10., 10., int = 1., boxzoom = [ind[0:1],lat_ext, 0, 5500], /xindex, FORMAT = '(I3)' $ 51 , small=[1,2,2], COAST_THICK=2, zoom = 5500, maskdta = ma, /no_partial, TITLE = title, /NOERASE, style = 'so0so' 52 40 if std_file1_V NE std_file2_V then begin 41 mm2 = msf(V2.arr, indexboxzoom = ind, maskout = ma) 42 title = title+' - '+std_file2_V 43 pltz, mm1.arr-mm2.arr, 'yz', -10., 10., int = 1., boxzoom = [ind[0:1], lat_ext, 0, 5500], /xindex, FORMAT = '(I3)' $ 44 , small = [1, 2, 2], COAST_THICK = 2, zoom = 5500, maskdta = ma, /no_partial, TITLE = title, /NOERASE, style = 'so0so' 53 45 endif 54 46 55 title = + subname+ 'Meridional Stream Function' 56 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/024_msf_'+subname+'_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.png /> ' ] 57 putfile, '/tmp/prova.txt', text 58 59 if KEYWORD_SET(POSTSCRIPT) then begin 60 closeps 61 endif 62 47 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 48 if KEYWORD_SET(postscript) then closeps 63 49 64 50 return -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_qnet.pro
r2733 r2751 1 pro xxx_Qnet, Q1, Q2, QNET, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 1 pro std_plot_qnet, Q1, Q2, QNET, POSTSCRIPT = postscript, _extra = ex 2 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_Qnet_'+std_file1_T 11 if std_file1_T EQ std_file2_T then filename = filename + '_OAFlux' $ 12 ELSE filename = filename + '_'+std_file2_T 13 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 2 14 3 @common 15 title = 'Qnet!C'+std_file1_T 16 plt, Q1, MIN = -200., MAX = 200., INTER = 20., STYLE = 'so0so' $ 17 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, FORMAT = '(I4)', /PORTRAIT, _extra = ex 4 18 5 compile_opt idl2, strictarrsubs 19 if std_file1_T EQ std_file2_T then begin 20 title = 'Qnet!C'+std_file1_T+' - OAFlux' 21 Q = Q1.arr - QNET.arr 22 ENDIF ELSE BEGIN 23 title = 'Qnet!C'+std_file1_T+' - '+std_file2_T 24 Q = Q1.arr - Q2.arr 25 ENDELSE 26 plt, Q, MIN = -100, MAX = 100, INTER = 10, STYLE = 'so0so' $ 27 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, FORMAT = '(I4)', /NOERASE, _extra = ex 28 ; 29 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 30 if KEYWORD_SET(postscript) then closeps 6 31 7 Q = Q1.arr-Q2.arr 8 sEXP = sEXP1+' - '+sEXP2 9 min = -200. 10 max = -min 11 inter = 20. 12 13 if sEXP2 eq sEXP1 then begin 14 sEXP = sEXP1+' - OAFlux' 15 Q = Q1.arr-QNET.arr 16 min = -200. 17 max = -min 18 inter = 20. 19 endif 20 21 if KEYWORD_SET(POSTSCRIPT) then begin 22 openps, '003_Qnet_'+sEXP+'_y'+start_end+'.ps', portrait = 1 23 endif 24 25 title=sEXP1+' / Qnet year '+start_end 26 plt, Q1, MIN = -200., MAX = 200., INTER = 20., STYLE = 'so0so' $ 27 , small = [1,2,1], COAST_THICK = 2, TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex 28 ; 29 title=sEXP+' / Qnet year '+start_end 30 plt, Q, MIN = min, MAX = max, INTER = inter, STYLE = 'so0so' $ 31 , small = [1,2,2], COAST_THICK = 2, TITLE = title, FORMAT = '(I3)', /NOERASE, _extra = ex 32 ; 33 title = 'Qnet differences with '+sEXP 34 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/003_Qnet_'+sEXP+'_y'+start_end+'.png /> ' ] 35 putfile, '/tmp/prova.txt', text 36 37 if KEYWORD_SET(POSTSCRIPT) then begin 38 closeps 39 endif 40 41 return 32 return 42 33 end 43 34 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_sss.pro
r2733 r2751 1 pro xxx_SSS, S1, S2, SLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex 1 pro std_plot_sss, S1, S2, SLev, POSTSCRIPT = postscript, _extra = ex 2 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 7 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_SSS_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 2 13 3 @common 4 compile_opt idl2, strictarrsubs 5 6 if KEYWORD_SET(POSTSCRIPT) then begin 7 openps, '007_SSS_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.ps', portrait = 1 8 endif 9 10 varunit = S1.unit 11 12 title = sEXP1+' / SSS year '+start_end 13 plt, S1.arr[*,*,0] , MIN = 33., MAX = 41., INTER = .25, STYLE = 'so0so' $ 14 , small = [1,2,1], COAST_THICK = 2, TITLE=title, /NOERASE, _extra = ex 14 varunit = S1.unit 15 16 title = 'SSS!C'+std_file1_T 17 plt, S1.arr[*, *, 0], MIN = 33., MAX = 41., INTER = .25, format = '(f4.1)' $ 18 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 15 19 ; 16 if sEXP1 ne sEXP2 then begin 17 18 title = sEXP1+' - '+sEXP2+' / SSS year '+start_end 19 plt, S1.arr[*,*,0] - S2.arr[*,*,0], MIN = -2., MAX = 2., INTER = .2 $ 20 , small = [1,2,2], COAST_THICK = 2, TITLE = title, _extra=ex 20 if std_file1_T NE std_file2_T then begin 21 title = 'SSS!C'+std_file1_T+' - '+std_file2_T 22 plt, S1.arr[*, *, 0] - S2.arr[*, *, 0], MIN = -2., MAX = 2., INTER = 0.2, STYLE = 'so0so' $ 23 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, /noerase, format = '(f4.1)', _extra = ex 24 endif else begin 25 title = 'SSS!C'+std_file1_T+' - Levitus' 26 plt, S1.arr[*, *, 0] - SLev.arr[*, *, 0], MIN = -3., MAX = 3., INTER = 0.2, STYLE = 'so0so' $ 27 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, /noerase, format = '(f4.1)', _extra = ex 28 endelse 29 ; 30 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 31 if KEYWORD_SET(postscript) then closeps 21 32 22 endif else begin 23 24 title = sEXP1+' - Levitus / SSS year '+start_end 25 plt, S1.arr[*,*,0]-SLev.arr[*,*,0], MIN = -3., MAX = 3., INTER = 0.2, STYLE = 'so0so' $ 26 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 27 28 endelse 29 30 ; 31 title = 'SSS differences with Levitus and '+sEXP1+'-'+sEXP2 32 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/007_SSS_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.png /> ' ] 33 putfile, '/tmp/prova.txt', text 34 35 if KEYWORD_SET(POSTSCRIPT) then begin 36 closeps 37 endif 38 39 return 33 return 40 34 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_sst.pro
r2733 r2751 1 pro xxx_SST, T1, T2, TRey, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, _extra = ex1 pro std_plot_sst, T1, T2, TRey, POSTSCRIPT = postscript, _extra = ex 2 2 3 @common 4 compile_opt idl2, strictarrsubs 3 compile_opt idl2, strictarrsubs 5 4 6 T = T1.arr[*,*,0]-T2.arr[*,*,0] 7 sEXP = sEXP1+' - '+sEXP2 8 min = -1. 9 max = -min 10 inter = 0.1 5 @common 6 @std_common 11 7 12 if sEXP2 eq sEXP1 then begin 13 sEXP = sEXP1 14 T = T1.arr[*,*,0] 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 filename = cdti3 + '_SST_'+std_file1_T 11 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 12 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 13 14 if std_file1_T EQ std_file2_T then begin 15 T = T1.arr[*, *, 0] 15 16 min = -2. 16 17 max = 32. 17 18 inter = 1. 18 endif 19 STYLE = 0 20 title = 'SST!C'+std_file1_T 21 ENDIF ELSE BEGIN 22 T = T1.arr[*, *, 0] - T2.arr[*, *, 0] 23 min = -1. 24 max = -min 25 inter = 0.1 26 STYLE = 'so0so' 27 title = 'SST!C'+std_file1_T+' - '+std_file2_T 28 ENDELSE 29 ; 30 varunit = T1.unit 31 ; 32 plt, T, MIN = min, MAX = max, INTER = inter, STYLE = STYLE $ 33 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, FORMAT = '(I2)', /PORTRAIT, _extra = ex 34 ; 35 title = 'SST!C'+std_file1_T+' - NewReynolds' 36 plt, T1.arr[*, *, 0] - TRey.arr, MIN = -8., MAX = 8., INTER = 0.5, STYLE = 'so0so', FORMAT = '(I2)' $ 37 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, /NOERASE, _extra = ex 38 39 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 40 if KEYWORD_SET(postscript) then closeps 19 41 20 if KEYWORD_SET(POSTSCRIPT) then begin 21 openps, '006_SST_'+sEXP+'_y'+start_end+'.ps', portrait = 1 22 endif 23 24 varunit = T1.unit 25 26 ; 27 title = sEXP+' / SST year '+start_end 28 plt, T , MIN = min, MAX = max, INTER = inter , STYLE = 'so0so' $ 29 , small = [1,2,1], COAST_THICK = 2, TITLE = title, FORMAT = '(I2)', /NOERASE, _extra = ex 30 ; 31 title=sEXP1+' - NewReynolds / SST year '+start_end 32 plt, T1.arr[*,*,0]-TRey.arr[*,*,0], MIN = -8., MAX = 8., INTER = 0.5 , STYLE = 'so0so' $ 33 , small = [1,2,2], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra = ex 34 35 title = 'SST differences with Reynolds and '+sEXP 36 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/006_SST_'+sEXP+'_y'+start_end+'.png /> ' ] 37 putfile, '/tmp/prova.txt', text 38 39 if KEYWORD_SET(POSTSCRIPT) then begin 40 closeps 41 endif 42 43 return 42 return 44 43 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_zonal_S.pro
r2733 r2751 1 pro xxx_zonal_S, S1, S2, SLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, SUBBASIN = subbasin, MASK_FILENAME = mask_filename, _extra = ex1 pro std_plot_zonal_S, S1, S2, SLev, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 7 if KEYWORD_SET(SUBBASIN) then subname = subbasin else subname = "Glo" 8 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 if KEYWORD_SET(SUBBASIN) then subname = subbasin else subname = "Glo" 11 filename = cdti3 + '_ZonalS_'+subname+'_'+std_file1_T 12 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 13 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 9 14 10 if KEYWORD_SET(POSTSCRIPT) then begin 11 openps, '017_Zonal_S_'+subname+'_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.ps', portrait = 1 12 endif 15 ; looking for longitudinal index corresponding to the highest latitude (closest to the North Pole) 16 index = where(gphit eq max(gphit)) 17 nx = index[0] mod jpi 18 gphi_save = gphit 19 gphit[0, *] = gphit[nx, *] 13 20 14 ; looking for longitudinal index corresponding to the highest latitude (closest to the North Pole) 15 index=where(gphit eq max(gphit)) 16 nx=index[0] mod jpi 17 gphi_save=gphit 18 gphit[0,*]=gphit[nx,*] 21 if KEYWORD_SET(SUBBASIN) then begin 22 tmasksv = tmask 23 CASE 1 of 24 subbasin eq 'Atl' : var = 'atlmsk_nomed' 25 subbasin eq 'Ind' : var = 'indmsk_nored' 26 subbasin eq 'Pac' : var = 'pacmsk' 27 ENDCASE 28 msk = read_ncdf( var, filename = std_file_msksub, _extra = ex) 29 ; from 2D array to 3D array 30 msk = msk.arr[*]#replicate(1., nzt) 31 tmask[firstxt:lastxt, firstyt:lastyt, firstzt:lastzt] = tmask[firstxt:lastxt, firstyt:lastyt, firstzt:lastzt] * msk 32 endif 33 ; 34 title = 'Salinity, '+subname+'!C'+std_file1_T 35 pltz, S1, MININ = 32., MAXIN = 37., INTER = .2, typein = 'yz', FORMAT = '(f4.1)' $ 36 , small = [1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /PORTRAIT, _extra = ex 37 ; 38 if std_file1_T NE std_file2_T then begin 39 title = title+' - '+std_file2_T 40 pltz, S1.arr-S2.arr, MIN = -1., MAX = 1., INTER = .1, typein = 'yz', FORMAT = '(f4.1)', style = 'so0so' $ 41 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 42 endif else begin 43 title = title+' - Levitus' 44 pltz, S1.arr-SLev.arr, MININ = -1, MAXIN = 1., INTER = .1, typein = 'yz', FORMAT = '(f4.1)', style = 'so0so' $ 45 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 46 endelse 47 ; 48 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 49 if KEYWORD_SET(postscript) then closeps 50 ; 51 if KEYWORD_SET(SUBBASIN) then tmask = tmasksv 52 gphit = gphi_save 19 53 20 if KEYWORD_SET(SUBBASIN) then begin 21 ; save tmask 22 tmasksv = tmask 23 ; 24 CASE 1 of 25 subbasin eq 'Atl' : var = 'atlmsk_nomed' 26 subbasin eq 'Ind' : var = 'indmsk_nored' 27 subbasin eq 'Pac' : var = 'pacmsk' 28 ENDCASE 29 ; 30 msk = read_ncdf( var, filename = mask_filename, _extra =ex) 31 32 ; from 2D array to 3D array 33 msk = msk.arr[*]#replicate(1., nzt) 34 tmask[firstxt:lastxt,firstyt:lastyt,firstzt:lastzt] = tmask[firstxt:lastxt,firstyt:lastyt,firstzt:lastzt] * msk 35 endif 36 37 varunit = S1.unit 38 ; 39 title=sEXP1+' '+subname+' / S year '+start_end 40 pltz, S1.arr, MININ = 32., MAXIN = 37., INTER = .2, typein = 'yz' $ 41 , small = [1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /PORTRAIT, _extra=ex 42 ; 43 if sEXP1 ne sEXP2 then begin 44 45 title = sEXP1+' - '+sEXP2+' '+subname+' / S year '+start_end 46 pltz, S1.arr-S2.arr, MIN = -1., MAX = 1., INTER = .1, typein = 'yz' $ 47 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra=ex 48 49 endif else begin 50 51 title=sEXP1+' - Levitus '+subname+'/ S year'+start_end 52 pltz, S1.arr-SLev.arr, MININ = -1, MAXIN = 1., INTER = .1, typein = 'yz' $ 53 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 54 endelse 55 ; 56 title = 'Salinity differences in zonal average ' + subname +' with Levitus and '+sEXP1+'-'+sEXP2 57 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/017_Zonal_S_'+subname+'_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.png /> ' ] 58 putfile, '/tmp/prova.txt', text 59 60 if KEYWORD_SET(POSTSCRIPT) then begin 61 closeps 62 endif 63 64 65 if KEYWORD_SET(SUBBASIN) then tmask = tmasksv 66 67 gphit=gphi_save 68 69 return 54 return 70 55 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_zonal_T.pro
r2733 r2751 1 pro xxx_zonal_T, T1, T2, TLev, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, SUBBASIN = subbasin, MASK_FILENAME = mask_filename, _extra = ex2 1 pro std_plot_zonal_T, T1, T2, TLev, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 7 if KEYWORD_SET(SUBBASIN) then subname = subbasin else subname = "Glo" 8 9 10 if KEYWORD_SET(POSTSCRIPT) then begin 11 openps, '016_Zonal_T_'+subname+'_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.ps', portrait = 1 12 endif 13 14 ; looking for longitudinal index corresponding to the highest latitude (closest to the North Pole) 15 index=where(gphit eq max(gphit)) 16 nx=index[0] mod jpi 17 gphi_save=gphit 18 gphit[0,*]=gphit[nx,*] 19 20 if KEYWORD_SET(SUBBASIN) then begin 21 ; save tmask 22 tmasksv = tmask 23 ; 24 CASE 1 of 25 subbasin eq 'Atl' : var = 'atlmsk_nomed' 26 subbasin eq 'Ind' : var = 'indmsk_nored' 27 subbasin eq 'Pac' : var = 'pacmsk' 28 ENDCASE 29 ; 30 msk = read_ncdf( var, filename = mask_filename, _extra =ex) 31 8 cdti3 = string(cnt, format = '(i3.3)') 9 print, cdti3 + ') ' + blabla 10 if KEYWORD_SET(SUBBASIN) then subname = subbasin else subname = "Glo" 11 filename = cdti3 + '_ZonalT_'+subname+'_'+std_file1_T 12 if std_file1_T NE std_file2_T then filename = filename + '_'+std_file2_T 13 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 14 ; 15 ; looking for longitudinal index corresponding to the highest latitude (closest to the North Pole) 16 index = where(gphit eq max(gphit)) 17 nx = index[0] mod jpi 18 gphi_save = gphit 19 gphit[0, *] = gphit[nx, *] 20 ; 21 if KEYWORD_SET(SUBBASIN) then begin 22 tmasksv = tmask 23 CASE 1 of 24 subbasin eq 'Atl' : var = 'atlmsk_nomed' 25 subbasin eq 'Ind' : var = 'indmsk_nored' 26 subbasin eq 'Pac' : var = 'pacmsk' 27 ENDCASE 28 msk = read_ncdf( var, filename = std_file_msksub, _extra = ex) 32 29 ; from 2D array to 3D array 33 msk = msk.arr[*]#replicate(1., nzt) 34 tmask[firstxt:lastxt,firstyt:lastyt,firstzt:lastzt] = tmask[firstxt:lastxt,firstyt:lastyt,firstzt:lastzt] * msk 35 36 endif 37 38 varunit = T1.unit 30 msk = msk.arr[*]#replicate(1., nzt) 31 tmask[firstxt:lastxt, firstyt:lastyt, firstzt:lastzt] = tmask[firstxt:lastxt, firstyt:lastyt, firstzt:lastzt] * msk 32 endif 39 33 ; 40 41 title=sEXP1+' '+subname+' / T year '+start_end 42 pltz, T1.arr, MININ = -2., MAXIN = 30., INTER = 1., typein = 'yz', FORMAT = '(I2)' $ 43 , small =[ 1,2,1], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /PORTRAIT, _extra = ex 34 title = 'Temperature, '+subname+'!C'+std_file1_T 35 pltz, T1, MININ = -2., MAXIN = 30., INTER = 1., typein = 'yz', FORMAT = '(I2)' $ 36 , small = [ 1, 2, 1], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /PORTRAIT, _extra = ex 44 37 ; 45 if sEXP1 ne sEXP2 then begin 46 47 title = sEXP1+' - '+sEXP2+' T (°C) depth=105m / Temp year '+start_end 48 pltz, T1.arr-T2.arr, MIN = -2., MAX = 2., INTER = .2, typein = 'yz' $ 49 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /PORTRAIT, _extra=ex 50 51 endif else begin 52 53 title=sEXP1+' - Levitus '+subname+'/ T year'+start_end 54 pltz, T1.arr-TLev.arr, MININ = -4., MAXIN = 4., INTER = .5, typein='yz', FORMAT = '(I2)' $ 55 , small = [1,2,2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 56 57 endelse 58 59 38 if std_file1_T NE std_file2_T then begin 39 title = title+' - '+std_file2_T 40 pltz, T1.arr-T2.arr, MIN = -2., MAX = 2., INTER = .2, typein = 'yz', FORMAT = '(f4.1)', style = 'so0so' $ 41 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 42 endif else begin 43 title = title+' - Levitus' 44 pltz, T1.arr-TLev.arr, MININ = -4., MAXIN = 4., INTER = .5, typein = 'yz', FORMAT = '(I2)', style = 'so0so' $ 45 , small = [1, 2, 2], COAST_THICK = 2, TITLE = title, boxzoom = 5500, ZOOM = 1000, /NOERASE, _extra = ex 46 endelse 60 47 ; 61 title = 'Temperature differences in zonal average ' + subname+' with Levitus and '+sEXP1+'-'+sEXP2 62 text = [ title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/'+sEXP1+'_'+sEXP2+'/ps/016_Zonal_T_'+subname+'_'+sEXP1+'-'+sEXP2+'_y'+start_end+'.png /> ' ] 63 putfile, '/tmp/prova.txt', text 64 65 66 if KEYWORD_SET(POSTSCRIPT) then begin 67 closeps 68 endif 69 70 if KEYWORD_SET(SUBBASIN) then tmask = tmasksv 71 72 73 gphit=gphi_save 74 75 76 return 48 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 49 if KEYWORD_SET(postscript) then closeps 50 ; 51 if KEYWORD_SET(SUBBASIN) then tmask = tmasksv 52 gphit = gphi_save 53 ; 54 return 77 55 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_AMOC.pro
r2740 r2751 1 pro ts_mean_V, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 1 PRO std_ts_read_AMOC, var_name, dt1, dt2, prefix, suffix, t45, t70, t50 2 2 3 4 3 compile_opt idl2, strictarrsubs 5 4 6 @common 7 8 @initorca2 9 5 @common 6 @std_common 10 7 11 if KEYWORD_SET(POSTSCRIPT) then begin 12 openps, sEXP1+'_V_mean.ps', portrait = 1 13 endif 14 15 ; inizialization of vectors (for experience 1 and 2) 16 ts_mAMOC45 = 0. 17 ts_mAABW70 = 0. 18 ts_mAABC50 = 0. 19 ts_mAMOC45_2 = 0. 20 ts_mAABW70_2 = 0. 21 ts_mAABC50_2 = 0. 8 list = rseries_ncdf(var_name, dt1, dt2, prefix, suffix, /fileslist) 9 nfiles = n_elements(list) 22 10 23 ts_Time = 0. 24 25 for year=year1,year2 do begin 26 27 date1 = year * 10000L + 101 28 date2 = year * 10000L + 1231 29 filename = getname(s_iodir_data,sEXP1,'1Y','grid_V',date1) 30 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_V',date1) 31 32 if filename eq '' then stop 33 34 domdef, 0, jpk-1,/zindex 11 t45 = 0. 12 t70 = 0. 13 t50 = 0. 14 ts_Time = 0. 35 15 36 V1 = read_ncdf('vocetr_eff',date1 ,date2 , filename = filename, /nostruct) 37 V2 = read_ncdf('vocetr_eff',date1 ,date2 , filename = filename2, /nostruct) 38 39 msf_tot = msf(V1, indexboxzoom = ind) 40 msf2_tot = msf(V2, indexboxzoom = ind) 41 42 yaxis = gphit[ind[0], ind[2]:ind[3]] 43 16 trans = strlowcase(var_name) EQ 'vocetr_eff' 17 18 FOR i = 0, nfiles-1 DO BEGIN 19 var = read_ncdf(var_name, allrecords = allrec, filename = list[i], /nostruct) 20 ts_Time = [ ts_Time, Time] 21 ; 22 FOR t = 0, jpt-1 DO BEGIN 23 msftot = msf(var[*, *, *, t], TRANSPORT = trans, /nostruct, indexboxzoom = ind) 24 yaxis = gphit[ind[0], ind[2]:ind[3]] 25 44 26 ; computation of max Atlatic Meridional Overturninc Circulation at 40°N and 50°N 45 ;; see plot msf global 46 indy = where(yaxis gt 40 and yaxis le 50) 47 domdef, 0, 3500 48 49 mAMOC45 = max(msf_tot.arr[indy, firstzw:lastzw],/NaN) 50 mAMOC45_2 = max(msf2_tot.arr[indy, firstzw:lastzw],/NaN) 51 27 indy = where(yaxis gt 40 and yaxis le 50) 28 domdef, 0, 3500 29 t45 = [t45, max(msftot[indy, firstzw:lastzw], /NaN)] 30 52 31 ; computation of max atlantic Antarctic Bottom Water between 80°S and 65°S 53 ;; see plot msf global 54 indy = where(yaxis gt -80 and yaxis le -65) 55 domdef, 300, 3500 56 57 mAABW70 = min(msf_tot.arr[indy, firstzw:lastzw],/NaN) 58 mAABW70_2 = min(msf2_tot.arr[indy, firstzw:lastzw],/NaN) 32 indy = where(yaxis gt -80 and yaxis le -65) 33 domdef, 300, 3500 34 t70 = [t70, min(msftot[indy, firstzw:lastzw], /NaN)] 59 35 60 36 ; computation of max Antarctic Abyssal Bottom Cell between 65°S and 30°N , 61 ;; see plot msf global 62 indy = where(yaxis gt -65 and yaxis le 30) 63 domdef, 2500, 5000 37 indy = where(yaxis gt -65 and yaxis le 30) 38 domdef, 2500, 5000 39 t50 = [t50, min(msftot[indy, firstzw:lastzw], /NaN)] 40 41 domdef, 0, jpk-1, /zindex 42 ENDFOR 43 44 ENDFOR 45 46 time = ts_Time[1:*] ; remove first record of 0 47 jpt = n_elements(time) 48 49 t45 = t45[1:*] ; remove first record of 0 50 t70 = t70[1:*] ; remove first record of 0 51 t50 = t50[1:*] ; remove first record of 0 52 53 return 54 end 55 56 pro std_ts_AMOC, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 57 58 compile_opt idl2, strictarrsubs 59 60 @common 61 @std_common 62 63 ; get exp1 info 64 vV1 = getenv('VAR1_V') & prefix = getenv('V1V_PREF') & suffix = getenv('V1V_SUFF') 65 ; get exp2 info 66 vV2 = getenv('VAR2_V') & prefix2 = getenv('V2V_PREF') & suffix2 = getenv('V2V_SUFF') 67 ; 68 cdti3 = string(cnt, format = '(i3.3)') 69 print, cdti3 + ') ' + blabla 70 filename = cdti3 + '_ts_AMOC_'+prefix 71 if prefix NE prefix2 then filename = filename + '_'+prefix2 72 if KEYWORD_SET(postscript) then openps, filename+'_1.ps', portrait = 1 73 ; 74 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 75 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 76 ; 77 iodir = std_iodir_data 78 79 ; compute the MSF 80 81 std_ts_read_AMOC, vV1, date1, date2, prefix, suffix, t45, t70, t50 82 if prefix NE prefix2 then begin 83 tsave = time 84 std_ts_read_AMOC, vV2, date1_2, date2_2, prefix2, suffix2, t45_2, t70_2, t50_2 85 time = tsave & IF n_elements(time) NE jpt THEN stop 86 ENDIF 87 88 ; plots... 89 90 title = prefix+' '+d1_d2+'!C'+'Max Atlantic MOC between 40N and 50N' 91 pltt, t45, 't', 0., 30., date1, date2, /REMPLI, /PORTRAIT $ 92 , small = [1, 2, 1], TITLE = title, YTITLE = varunit, _extra = ex 93 IF prefix NE prefix2 then begin 94 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Max Atlantic MOC between 40N and 50N' 95 pltt, t45 - t45_2, 't', -9., 9., date1, date2, /REMPLI, /NOERASE $ 96 , COLOR = 250, small = [1, 2, 2], TITLE = title, YTITLE = varunit, _extra = ex 97 endif 98 99 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_1.png /> ' ] 100 if KEYWORD_SET(postscript) then closeps 101 if KEYWORD_SET(postscript) then openps, filename+'_2.ps', portrait = 1 102 103 title = prefix+' '+d1_d2+'!C'+'Max AntArctic Bottom Water between 80S and 65S '+d1_d2 104 pltt, -t70, 't', 0., 20., date1, date2, /REMPLI, /PORTRAIT, window = 2 $ 105 , small = [1, 2, 1], TITLE = title, YTITLE = varunit, _extra = ex 106 if prefix NE prefix2 then begin 107 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Max AntArctic Bottom Water between 80S and 65S' 108 pltt, -t70 + t70_2, 't', -5., 5., date1, date2, /REMPLI, /NOERASE $ 109 , COLOR = 250, small = [1, 2, 2], TITLE = title, YTITLE = varunit, _extra = ex 110 endif 111 112 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_2.png /> ' ] 113 if KEYWORD_SET(postscript) then closeps 114 if KEYWORD_SET(postscript) then openps, filename+'_3.ps', portrait = 1 115 116 title = prefix+' '+d1_d2+'!C'+'Max AntArctic Bottom Cell between 65S and 30N '+d1_d2 117 pltt, -t50, 't', 5., 30., date1, date2, /REMPLI, /PORTRAIT, window = 3 $ 118 , small = [1, 2, 1], TITLE = title, YTITLE = varunit, _extra = ex 119 if prefix NE prefix2 then begin 120 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Max AntArctic Bottom Cell between 65S and 30N' 121 pltt, -t50 + t50_2, 't', -5., 5., date1, date2, /REMPLI, /NOERASE $ 122 , COLOR = 250, small = [1, 2, 2], TITLE = title, YTITLE = varunit, _extra = ex 123 endif 124 125 domdef, 0, jpk-1, /zindex 126 127 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_3.png /> ' ] 128 if KEYWORD_SET(postscript) then closeps 64 129 65 mAABC50 = min(msf_tot.arr[indy, firstzw:lastzw],/NaN) 66 mAABC50_2 = min(msf2_tot.arr[indy, firstzw:lastzw],/NaN) 67 68 ; creation of Time Series 69 ; for EXPERIENCE 1 70 ts_mAMOC45 = [ ts_mAMOC45, mAMOC45 ] 71 ts_mAABW70 = [ ts_mAABW70, mAABW70 ] 72 ts_mAABC50 = [ ts_mAABC50, mAABC50 ] 73 74 ; for EXPERIENCE 2 75 ts_mAMOC45_2 = [ ts_mAMOC45_2, mAMOC45_2 ] 76 ts_mAABW70_2 = [ ts_mAABW70_2, mAABW70_2 ] 77 ts_mAABC50_2 = [ ts_mAABC50_2, mAABC50_2 ] 78 79 ts_Time = [ ts_Time, Time] ; Time = date 80 81 endfor 82 83 ts_mAMOC45 = ts_mAMOC45[1:*] ; remove first record of 0 84 ts_mAABW70 = ts_mAABW70[1:*] ; remove first record of 0 85 ts_mAABC50 = ts_mAABC50[1:*] ; remove first record of 0 86 87 ts_mAMOC45_2 = ts_mAMOC45_2[1:*] ; remove first record of 0 88 ts_mAABW70_2 = ts_mAABW70_2[1:*] ; remove first record of 0 89 ts_mAABC50_2 = ts_mAABC50_2[1:*] ; remove first record of 0 90 91 Time = ts_Time[1:*] ; remove first record of 0 92 93 jpt = n_elements(Time) 94 95 title = sEXP1+' Max Atlantic MOC between 40N and 50N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 96 pltt, ts_mAMOC45,'t', 0., 30., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $ 97 , small = [1,2,1], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 98 99 if sEXP2 ne sEXP1 then begin 100 title = sEXP1+' - '+sEXP2+' Max Atlantic MOC between 40N and 50N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 101 pltt, ts_mAMOC45 - ts_mAMOC45_2,'t', -9., 9., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $ 102 , COLOR = 250, small = [1,2,2], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 103 endif 104 105 title = sEXP1+' Max AntArctic Bottom Water between 80S and 65S --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 106 pltt,-ts_mAABW70,'t', 0., 20., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $ 107 , small = [1,2,1], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 108 109 if sEXP2 ne sEXP1 then begin 110 title = sEXP1+' - '+sEXP2+' Max AntArctic Bottom Water between 80S and 65S --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 111 pltt,-ts_mAABW70 + ts_mAABW70_2 ,'t', -5., 5., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $ 112 , COLOR = 250, small = [1,2,2], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 113 endif 114 115 title = sEXP1+' Max AntArctic Bottom Cell between 65S and 30N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 116 pltt,-ts_mAABC50,'t', 5., 30., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $ 117 , small = [1,2,1], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 118 119 if sEXP2 ne sEXP1 then begin 120 121 title = sEXP1+' - '+sEXP2+' Max AntArctic Bottom Cell between 65S and 30N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 122 pltt,-ts_mAABC50 + ts_mAABC50_2,'t', -5., 5., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI,/NOERASE $ 123 , COLOR = 250, small = [1,2,2], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 124 endif 125 126 if KEYWORD_SET(POSTSCRIPT) then begin 127 closeps 128 endif 129 130 131 return 130 return 132 131 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_Drake.pro
r2740 r2751 1 pro ts_mean_U, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 1 pro std_ts_Drake, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 3 2 4 3 compile_opt idl2, strictarrsubs 5 4 6 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vU1 = getenv('VAR1_U') & prefix = getenv('V1U_PREF') & suffix = getenv('V1U_SUFF') 10 ; get exp2 info 11 vU2 = getenv('VAR2_U') & prefix2 = getenv('V2U_PREF') & suffix2 = getenv('V2U_SUFF') 12 ; 13 cdti3 = string(cnt, format = '(i3.3)') 14 print, cdti3 + ') ' + blabla 15 filename = cdti3 + '_ts_Drake_'+prefix 16 if prefix NE prefix2 then filename = filename + '_'+prefix2 17 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 18 ; 19 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 20 ; 21 iodir = std_iodir_data 22 23 ; find a point in south America (around 60E-30S) 24 if max(glamt) gt 300 then testlam = abs(glamt - 300) else testlam = abs(glamt + 60) 25 testlat = abs(gphit + 30) 26 index = where(abs(testlam - min(testlam)) lt 1 and abs(testlat - min(testlat)) lt 1 ) 27 xindex = index[0] mod jpi 28 yindex = index[0]/jpi 29 ; define a domain limited to a thin band going from Antactica to this point in south America 30 domdef, xindex, xindex+1, 0, yindex, 0, jpk-1, /index ; keep 2 points for x to avoid degenerated dimension... 31 ; 32 u1 = rseries_ncdf(vU1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, /nostruct) 33 drk1 = fltarr(jpt) 34 trans = strlowcase(getenv('VAR1_U')) EQ 'uocetr_eff' 35 FOR t = 0, jpt-1 DO BEGIN 36 tmp = bsf(u1[*, *, *, t], TRANSPORT = trans, /nostruct) 37 drk1[t] = tmp[0, nyt-1]-tmp[0, 0] 38 ENDFOR 39 ; 40 title = prefix+' '+d1_d2+'!C'+blabla 41 pltt, drk1, 't', 0., 200., date1, date2, /REMPLI $ 42 , small = [1, 2, 1], TITLE = title, YTITLE = varunit, /PORTRAIT, _extra = ex 7 43 8 @initorca2 9 10 if max(glamt) gt 300 then testlam = abs(glamt - 300) else testlam = abs(glamt + 60) 44 if prefix NE prefix2 then begin 45 ; 46 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 47 tsave = time 48 u2 = rseries_ncdf(vU2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, /nostruct) 49 drk2 = fltarr(jpt) 50 trans = strlowcase(getenv('VAR2_U')) EQ 'uocetr_eff' 51 FOR t = 0, jpt-1 DO BEGIN 52 tmp = bsf(u2[*, *, *, t], TRANSPORT = trans, /nostruct) 53 drk2[t] = tmp[0, nyt-1]-tmp[0, 0] 54 ENDFOR 55 time = tsave & IF n_elements(time) NE jpt THEN stop 11 56 12 testlat = abs(gphit + 30) 57 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 58 pltt, drk1 - drk2, 't', -30., 30., date1, date2, /REMPLI, /NOERASE $ 59 , COLOR = 250, small = [1, 2, 2], TITLE = title, YTITLE = varunit, _extra = ex 60 61 endif 13 62 14 index=where(abs(testlam - min(testlam)) lt 1 and abs(testlat - min(testlat)) lt 1 ) 15 xindex=index[0] mod jpi 16 yindex=index[0]/jpi 63 domdef 17 64 18 domdef, xindex, xindex+1, 0, yindex, 0, jpk-1, /index 19 20 if KEYWORD_SET(POSTSCRIPT) then begin 21 openps, sEXP1+'_U_mean.ps', portrait = 1 22 endif 23 24 ts_bbD = 0. 25 ts_bbD2 = 0. 26 ts_Time = 0. 27 28 for year=year1,year2 do begin 29 30 date1 = year * 10000L + 101 31 date2 = year * 10000L + 1231 32 filename = getname(s_iodir_data,sEXP1,'1Y','grid_U',date1) 33 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_U',date1) 34 35 if filename eq '' then stop 36 U1 = read_ncdf('uocetr_eff',date1 ,date2 , filename = filename, /nostruct) 37 U2 = read_ncdf('uocetr_eff',date1 ,date2 , filename = filename2, /nostruct) 38 39 bb1 = bsf(U1) 40 bb2 = bsf(U2) 41 bb1=bb1.arr[0,*] 42 bb2=bb2.arr[0,*] 43 44 bbDRAKE = bb1[nyt-1]-bb1[0] 45 bb2DRAKE = bb2[nyt-1]-bb2[0] 46 47 ts_bbD = [ ts_bbD, bbDRAKE ] 48 ts_bbD2 = [ ts_bbD2, bb2DRAKE ] 49 ts_Time = [ ts_Time, Time] ; Time = date 50 51 endfor 52 53 ts_bbD = ts_bbD[1:*] ; remove first record of 0 54 ts_bbD2 = ts_bbD2[1:*] ; remove first record of 0 55 Time = ts_Time[1:*] ; remove first record of 0 56 57 jpt = n_elements(Time) 58 59 title = sEXP1+' DRAKE transport --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 60 pltt,ts_bbD,'t', 0., 200., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $ 61 , small = [1,2,1], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 62 63 if sEXP2 ne sEXP1 then begin 64 65 title = sEXP1+' - '+sEXP2+' DRAKE transport --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 66 pltt,ts_bbD - ts_bbD2,'t', -30., 30., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $ 67 , COLOR = 250, small = [1,2,2], TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex 68 69 endif 70 71 if KEYWORD_SET(POSTSCRIPT) then begin 72 closeps 73 endif 74 75 76 return 65 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 66 if KEYWORD_SET(postscript) then closeps 67 68 return 77 69 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_EMP.pro
r2740 r2751 1 pro ts_mean_EMP, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_EMP, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 6 7 7 @initorca2 8 9 if KEYWORD_SET(POSTSCRIPT) then begin 10 openps, sEXP1+'_EMP_mean.ps', portrait = 1 11 endif 8 ; get exp1 info 9 vemp = getenv('VAR1_EMP') & prefix = getenv('V1EMP_PREF') & suffix = getenv('V1EMP_SUFF') 10 ; get exp2 info 11 vemp2 = getenv('VAR2_EMP') & prefix2 = getenv('V2EMP_PREF') & suffix2 = getenv('V2EMP_SUFF') 12 ; 13 cdti3 = string(cnt, format = '(i3.3)') 14 print, cdti3 + ') ' + blabla 15 filename = cdti3 + '_ts_EMP_'+prefix 16 if prefix NE prefix2 then filename = filename + '_'+prefix2 17 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 12 18 13 ts_EMP = 0. 14 ts_EMP2 = 0. 15 ts_Time = 0. 19 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 20 ; 21 iodir = std_iodir_data 22 ; 23 surf_oce = e1t * e2t * tmask[*,*,0] * masknp 24 surf_oce = total(surf_oce) 25 ; 26 ts_EMP = rseries_ncdf(vemp, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 27 ts_EMP.arr = ts_EMP.arr * ( 1.E-09 * surf_oce ) & ts_EMP.unit = 'Sv' 28 title = prefix+' '+d1_d2+'!C'+blabla 29 pltt, ts_EMP, 't', -.001, .001, date1, date2, /REMPLI $ 30 , small = [1, 2, 1], YTITLE = 'Sv', TITLE = title, /PORTRAIT, _extra = ex 31 32 IF prefix NE prefix2 THEN BEGIN 16 33 17 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 34 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 35 tsave = time 36 ts_EMP2 = rseries_ncdf(vemp2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 37 ts_EMP2.arr = ts_EMP2.arr * ( 1.E-09 * surf_oce ) & ts_EMP2.unit = 'Sv' 38 time = tsave & IF n_elements(time) NE jpt THEN stop 18 39 19 for year=year1,year2 do begin 40 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 41 pltt, ts_EMP.arr - ts_EMP2.arr, 't', -.001, .001, date1, date2, /REMPLI $ 42 , color = 250, small = [1, 2, 2], YTITLE = 'Sv', TITLE = title, /noerase, _extra = ex 20 43 21 date1 = year * 10000L + 101 22 date2 = year * 10000L + 1231 23 filename = getname(s_iodir_data,sEXP1,'1Y','grid_T',date1) 24 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_T',date1) 44 ENDIF 25 45 26 if filename eq '' then stop 27 EMP = read_ncdf('wfo',date1 ,date2 , filename = filename, /nostruct) 28 EMP2 = read_ncdf('wfo',date1 ,date2 , filename = filename2, /nostruct) 29 30 ts_EMP = [ ts_EMP, moyenne(EMP, 'xy', mask2d = masknp)] 31 ts_EMP2 = [ ts_EMP2, moyenne(EMP2, 'xy', mask2d = masknp)] 32 ts_Time = [ ts_Time, Time] ; Time = date 33 34 endfor 35 36 surf_oce = e1t * e2t * tmask[*,*,0] 37 surf_oce = total(surf_oce) 38 39 ts_EMP = ts_EMP[1:*] ; remove first record of 0 40 ts_EMP = ts_EMP * 1.E-09 * surf_oce ; to have Sv 41 42 ts_EMP2 = ts_EMP2[1:*] ; remove first record of 0 43 ts_EMP2 = ts_EMP2 * 1.E-09 * surf_oce ; to have Sv 44 45 varunit= 'Sv' 46 vol_oce = moyenne( replicate(1., jpi, jpj, jpk), /integration, 'xyz') 47 48 Time = ts_Time[1:*] ; remove first record of 0 49 jpt = n_elements(Time) 50 51 title = sEXP1+' Global Annual EMP Budget (Sv) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 52 pltt,ts_EMP,'t', -.01, 0.00, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $ 53 , small = [1,2,1], YTITLE = 'Sv', TITLE = title, /PORTRAIT, _extra = ex 54 55 if sEXP2 ne sEXP1 then begin 56 57 title = sEXP1+' - '+sEXP2+' Global Annual EMP Budget (Sv) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 58 pltt,ts_EMP - ts_EMP2,'t', -.002, .002, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI, /NOERASE $ 59 , COLOR = 250, small = [1,2,2], YTITLE = 'Sv', TITLE = title, /PORTRAIT, _extra = ex 60 endif 61 62 if KEYWORD_SET(POSTSCRIPT) then begin 63 closeps 64 endif 65 66 46 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 47 if KEYWORD_SET(postscript) then closeps 48 67 49 return 68 50 end 51 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_ICE.pro
r2740 r2751 1 pro ts_mean_ICE, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_ICE, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vICE1 = getenv('VAR1_ICE') & prefix = getenv('V1ICE_PREF') & suffix = getenv('V1ICE_SUFF') 10 ; get exp2 info 11 vICE2 = getenv('VAR2_ICE') & prefix2 = getenv('V2ICE_PREF') & suffix2 = getenv('V2ICE_SUFF') 12 ; 13 cdti3 = string(cnt, format = '(i3.3)') 14 print, cdti3 + ') ' + blabla 15 filename = cdti3 + '_ts_AMOC_'+prefix 16 if prefix NE prefix2 then filename = filename + '_'+prefix2 17 if KEYWORD_SET(postscript) then openps, filename+'_1.ps', portrait = 1 18 ; 19 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 20 ; 21 iodir = std_iodir_data 22 23 domdef, 0, jpi-1, 30, 90, /xindex 24 ICE_N = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, direc = 'xy', /integration, mask2d = masknp) 25 ICE_N.arr = ICE_N.arr * 1.e-12 & ICE_N.unit = '10^12 m^2' 26 domdef, 0, jpi-1, -90, -30, /xindex 27 ICE_S = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, direc = 'xy', /integration, mask2d = masknp) 28 ICE_S.arr = ICE_S.arr * 1.e-12 & ICE_S.unit = '10^12 m^2' 29 30 title = prefix+' '+d1_d2+'!C'+'Global Annual Mean Ice Area (North. Hemisp.)' 31 pltt, ICE_N, 't', 0., 15., date1, date2, /REMPLI, /PORTRAIT $ 32 , small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex 6 33 7 @initorca2 34 title = prefix+' '+d1_d2+'!C'+'Global Annual Mean Ice Area (South. Hemisp.)' 35 pltt, ICE_S, 't', 0., 15., date1, date2, /REMPLI, /NOERASE $ 36 , small = [1, 2, 2], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex 8 37 9 std_iodir_climato = '/Users/sflod/idl_PLOTS/CLIMATOLOGIES/'10 std_iodir_interan = '/Users/sflod/idl_PLOTS/INTERAN/'38 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_1.png /> ' ] 39 if KEYWORD_SET(postscript) then closeps 11 40 41 if prefix NE prefix2 then BEGIN 12 42 13 if KEYWORD_SET(POSTSCRIPT) then begin 14 openps, sEXP1+'_ice_area_mean.ps', portrait = 1 15 endif 16 17 43 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 18 44 19 ;NORTHERN Hemisphere 20 ts_ICE_N = 0. 21 ts_ICE_N_2 = 0. 45 tsave = time 46 domdef, 0, jpi-1, 30, 90, /xindex 47 ICE_N2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, direc = 'xy', /integration, mask2d = masknp) 48 ICE_N2.arr = ICE_N2.arr * 1.e-12 & ICE_N2.unit = '10^12 m^2' 49 domdef, 0, jpi-1, -90, -30, /xindex 50 ICE_S2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, direc = 'xy', /integration, mask2d = masknp) 51 ICE_S2.arr = ICE_S2.arr * 1.e-12 & ICE_S2.unit = '10^12 m^2' 52 time = tsave & IF n_elements(time) NE jpt THEN stop 22 53 23 ;SOUTHERN Hemisphere 24 ts_ICE_S = 0. 25 ts_ICE_S_2 = 0. 54 if KEYWORD_SET(postscript) then openps, filename+'_2.ps', portrait = 1 26 55 27 ts_Time = 0. 56 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Global Annual Mean Ice Area (North. Hemisp.)' 57 pltt, ICE_N.arr - ICE_N2.arr, 't', -2., 2., date1, date2, /REMPLI, /PORTRAIT, window = 2 $ 58 , COLOR = 250, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex 59 60 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Global Annual Mean Ice Area (South. Hemisp.)' 61 pltt, ICE_S.arr - ICE_S2.arr, 't', -2., 2., date1, date2, /REMPLI, /NOERASE $ 62 , COLOR = 250, small = [1, 2, 2], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex 28 63 29 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 30 31 for year=year1,year2 do begin 32 date1 = year * 10000L + 101 33 date2 = year * 10000L + 1231 34 filename = getname(s_iodir_data,sEXP1,'1M','icemod',date1) 35 filename2 = getname(s_iodir_data,sEXP2,'1M','icemod',date1) 36 37 if filename eq '' then stop 38 39 domdef, 0, jpi-1, 30, 90, /xindex 40 41 ; computation of annual mean 42 ICE_N = read_ncdf('sic',date1 ,date2 , filename = filename, /nostruct, dir = 't') 43 ICE_N_2 = read_ncdf('sic',date1 ,date2 , filename = filename2, /nostruct, dir = 't') 44 45 ts_ICE_N = [ ts_ICE_N, moyenne(ICE_N, 'xy', /integration, mask2d = masknp) ] 46 ts_ICE_N_2 = [ ts_ICE_N_2, moyenne(ICE_N_2, 'xy', /integration, mask2d = masknp) ] 47 48 domdef, 0, jpi-1, -30, -90, /xindex 49 50 ICE_S = read_ncdf('sic',date1 ,date2 , filename = filename, /nostruct, dir = 't') 51 ICE_S_2 = read_ncdf('sic',date1 ,date2 , filename = filename2, /nostruct, dir = 't') 52 53 ts_ICE_S = [ ts_ICE_S, moyenne(ICE_S, 'xy', /integration, mask2d = masknp) ] 54 ts_ICE_S_2 = [ ts_ICE_S_2, moyenne(ICE_s_2, 'xy', /integration, mask2d = masknp) ] 55 56 ts_Time = [ ts_Time, Time] ; Time = date 57 58 endfor 59 60 ; surf_oce = e1t[firstxt:lastxt,firstyt:lastyt] * e2t[firstxt:lastxt,firstyt:lastyt] * tmask[firstxt:lastxt,firstyt:lastyt,0] 61 ; surf_oce = total(surf_oce) 62 63 ts_ICE_N = ts_ICE_N[1:*] ; remove first record of 0 64 ts_ICE_N_2 = ts_ICE_N_2[1:*] ; remove first record of 0 65 ts_ICE_N = ts_ICE_N * 1.E-12 ; remove first record of 0 66 ts_ICE_N_2 = ts_ICE_N_2 * 1.E-12 ; remove first record of 0 67 68 ts_ICE_S = ts_ICE_S[1:*] ; remove first record of 0 69 ts_ICE_S_2 = ts_ICE_S_2[1:*] ; remove first record of 0 70 ts_ICE_S = ts_ICE_S * 1.E-12 ; remove first record of 0 71 ts_ICE_S_2 = ts_ICE_S_2 * 1.E-12 ; remove first record of 0 72 73 Time = ts_Time[1:*] ; remove first record of 0 74 jpt = n_elements(Time) 75 76 title = sEXP1+' Global Annual Mean Ice Area (North. Hemisp.) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 77 pltt, ts_ICE_N, 't', 0., 15., year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $ 78 , small = [1,2,1], YTITLE='10^12 m^2 ', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex 79 80 title = sEXP1+' Global Annual Mean Ice Area (South. Hemisp.) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 81 pltt, ts_ICE_S, 't', 0., 15., year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI, /NOERASE $ 82 , small = [1,2,2], YTITLE='10^12 m^2 ', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex 83 84 if sEXP2 ne sEXP1 then begin 85 title = sEXP1+' - '+sEXP2+' Global Annual Mean Ice Area (North. Hemisp.) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 86 pltt, ts_ICE_N - ts_ICE_N_2 , 't', -2., 2., year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $ 87 , COLOR = 250, small = [1,2,1], YTITLE='10^12 m^2 ', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex 88 89 title = sEXP1+' - '+sEXP2+' Global Annual Mean Ice Area (South. Hemisp.) --- year '+strtrim(year1,1)+' - '+strtrim(year2,1) 90 pltt, ts_ICE_S - ts_ICE_S_2, 't', -2., 2., year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI, /NOERASE $ 91 , COLOR = 250, small = [1,2,2], YTITLE='10^12 m^2 ', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex 64 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_2.png /> ' ] 65 if KEYWORD_SET(postscript) then closeps 92 66 93 67 endif 94 68 69 domdef 95 70 96 if KEYWORD_SET(POSTSCRIPT) then begin 97 closeps 98 endif 99 100 71 101 72 return 102 73 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_Q.pro
r2740 r2751 1 pro ts_mean_Q, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_Q, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vq = getenv('VAR1_Q') & prefix = getenv('V1Q_PREF') & suffix = getenv('V1Q_SUFF') 10 ; get exp2 info 11 vq2 = getenv('VAR2_Q') & prefix2 = getenv('V2Q_PREF') & suffix2 = getenv('V2Q_SUFF') 12 ; 13 cdti3 = string(cnt, format = '(i3.3)') 14 print, cdti3 + ') ' + blabla 15 filename = cdti3 + '_ts_Q_'+prefix 16 if prefix NE prefix2 then filename = filename + '_'+prefix2 17 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 18 19 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 20 ; 21 iodir = std_iodir_data 22 ; 23 ts_Q = rseries_ncdf(vq, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 24 title = prefix+' '+d1_d2+'!C'+blabla 25 pltt, ts_Q, 't', -4, 4, date1, date2, /REMPLI $ 26 , small = [1, 2, 1], YTITLE = varunit, TITLE = title, /PORTRAIT, _extra = ex 6 27 7 @initorca2 8 9 if KEYWORD_SET(POSTSCRIPT) then begin 10 openps, sEXP1+'_Heat_mean.ps', portrait = 1 11 endif 12 13 ts_Heat = 0. 14 ts_Heat2 = 0. 15 ts_Time = 0. 28 IF prefix NE prefix2 THEN BEGIN 16 29 17 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 30 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 31 tsave = time 32 ts_Q2 = rseries_ncdf(vq2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 33 time = tsave & IF n_elements(time) NE jpt THEN stop 18 34 35 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 36 pltt, ts_Q.arr - ts_Q2.arr, 't', -4., 4., date1, date2, /REMPLI $ 37 , color = 250, small = [1, 2, 2], YTITLE = varunit, TITLE = title, /noerase, _extra = ex 19 38 20 for year=year1,year2 do begin 21 22 date1 = year * 10000L + 101 23 date2 = year * 10000L + 1231 24 filename = getname(s_iodir_data,sEXP1,'1Y','grid_T',date1) 25 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_T',date1) 39 ENDIF 26 40 27 if filename eq '' then stop 28 Heat = read_ncdf('qns+qsr',date1 ,date2 , filename = filename, /nostruct) 29 Heat2 = read_ncdf('qns+qsr',date1 ,date2 , filename = filename2, /nostruct) 41 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 42 if KEYWORD_SET(postscript) then closeps 43 44 return 45 end 30 46 31 ts_Heat = [ ts_Heat, moyenne(Heat, 'xy', mask2d = masknp)]32 ts_Heat2 = [ ts_Heat2, moyenne(Heat2, 'xy', mask2d = masknp)]33 ts_Time = [ ts_Time, Time] ; Time = date34 35 endfor36 37 ts_Heat = ts_Heat[1:*] ; remove first record of 038 ts_Heat2 = ts_Heat2[1:*] ; remove first record of 039 Time = ts_Time[1:*] ; remove first record of 040 41 jpt = n_elements(Time)42 43 title = sEXP1+' Global Annual Mean Surface Heat Flux --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)44 pltt,ts_Heat,'t', -4., 4., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $45 , small = [1,2,1], YTITLE = 'W/m2', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex46 47 if sEXP2 ne sEXP1 then begin48 49 title = sEXP1+' - '+sEXP2+' Global Annual Mean Surface Heat Flux --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)50 pltt,ts_Heat - ts_Heat2,'t', -4., 4., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $51 , COLOR = 250, small = [1,2,2], YTITLE = 'W/m2', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex52 53 endif54 55 56 if KEYWORD_SET(POSTSCRIPT) then begin57 closeps58 endif59 60 61 return62 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_S.pro
r2740 r2751 1 pro ts_mean_S, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_S, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vsal = getenv('VAR1_S') & prefix = getenv('V1S_PREF') & suffix = getenv('V1S_SUFF') 10 vssh = getenv('VAR1_SSH') & sshprefix = getenv('V1SSH_PREF') & sshsuffix = getenv('V1SSH_SUFF') 11 ; get exp2 info 12 vsal2 = getenv('VAR2_S') & prefix2 = getenv('V2S_PREF') & suffix2 = getenv('V2S_SUFF') 13 vssh2 = getenv('VAR2_SSH') & sshprefix2 = getenv('V2SSH_PREF') & sshsuffix2 = getenv('V2SSH_SUFF') 14 ; 15 cdti3 = string(cnt, format = '(i3.3)') 16 print, cdti3 + ') ' + blabla 17 filename = cdti3 + '_ts_S_'+prefix 18 if prefix NE prefix2 then filename = filename + '_'+prefix2 19 if KEYWORD_SET(postscript) then openps, filename+'_1.ps', portrait = 1 20 21 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 22 23 ; read levitus data 24 std_file_Levitus_S = isafile(getenv('FILE_SAL_3D'), title = 'Levitus_S', iodir = std_iodir_climato) 25 Lev = read_ncdf(getenv('VAR_SAL_3D'), filename = std_file_Levitus_S, /nostruct ) 26 Lev_xyz = moyenne(Lev, 'xyz', mask2d = masknp) 27 levz = moyenne(temporary(Lev), 'xy', mask2d = masknp, /KEEPBOTTOM) 28 ; 29 iodir = std_iodir_data 30 ; 31 32 ; read exp1 data 33 std_ts_read, vsal, date1, date2, prefix, suffix, ts_Sal, ts_z $ 34 , WITHSSH = vssh, SSHPREFIX = sshprefix, SSHSUFFIX = sshsuffix, LEVZ = levz 35 36 title = prefix+'!C'+blabla+' '+d1_d2 37 pltt, ts_Sal, 't', 34.54, 34.76, date1, date2, /REMPLI $ 38 , small = [1, 2, 1], YTITLE = varunit, TITLE = title, /PORTRAIT, _extra = ex 39 40 title = prefix+' - Levitus!C'+blabla+' '+d1_d2 41 pltt, ts_Sal - Lev_xyz, 't', -.05, .05, date1, date2, /REMPLI $ 42 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, /NOERASE, _extra = ex 43 44 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_1.png /> ' ] 45 if KEYWORD_SET(postscript) then closeps 46 if KEYWORD_SET(postscript) then openps, filename+'_2.ps', portrait = 1 47 48 title = prefix+' - Levitus!C ZT-plot (0-1500m) '+blabla+' '+d1_d2 49 pltt, ts_z, 'zt', -.5, .5, INTER = .05, date1, date2, /REMPLI, style = 'so0so' $ 50 , small = [1, 2, 1], YTITLE = varunit, TITLE = title, boxzoom = 1500., /portrait, window = 1, _extra = ex 6 51 7 @initorca2 52 title = prefix+' - Levitus!C ZT-plot (0-6000m) '+blabla+' '+d1_d2 53 pltt, ts_z, 'zt', -.5, .5, INTER = .05, date1, date2, /REMPLI, style = 'so0so' $ 54 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, boxzoom = 6000., /NOERASE, _extra = ex 8 55 9 std_iodir_climato = '/Users/sflod/idl_PLOTS/CLIMATOLOGIES/'10 std_iodir_interan = '/Users/sflod/idl_PLOTS/INTERAN/'56 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_2.png /> ' ] 57 if KEYWORD_SET(postscript) then closeps 11 58 59 IF prefix NE prefix2 THEN BEGIN 12 60 13 if KEYWORD_SET(POSTSCRIPT) then begin 14 openps, sEXP1+'_Salinity_mean.ps', portrait = 1 15 endif 16 17 filename = std_iodir_climato+'data_1y_salinity_nomask.nc' 18 Lev = read_ncdf('vosaline', filename = filename, /nostruct ) 19 Lev_xyz = moyenne(Lev, 'xyz', mask2d = masknp) 20 Lev_z = moyenne(Lev, 'xy', mask2d = masknp ,/KEEPBOTTOM) 61 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 62 ; read exp2 data 63 tsave = time 64 std_ts_read, vsal2, date1_2, date2_2, prefix2, suffix2, ts_Sal2, ts_z2 $ 65 , WITHSSH = vssh2, SSHPREFIX = sshprefix2, SSHSUFFIX = sshsuffix2, LEVZ = levz 66 time = tsave & IF n_elements(time) NE jpt THEN stop 21 67 22 ts_Sal = 0. 23 ts_Sal_2 = 0. 24 ts_Sal_Lev = 0. 25 ts_Sal_Lev_2 = 0. 26 ts_Time = 0. 27 ts_z = fltarr(jpk) 28 ts_z_2 = fltarr(jpk) 68 if KEYWORD_SET(postscript) then openps, filename+'_3.ps', portrait = 1 29 69 30 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 70 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 71 pltt, ts_Sal - ts_Sal2, 't', -0.1, 0.1, date1, date2, /REMPLI $ 72 , COLOR = 250, small = [1, 2, 1], YTITLE = varunit, TITLE = title, /PORTRAIT, window = 2, _extra = ex 31 73 32 for year=year1,year2 do begin 33 34 date1 = year * 10000L + 101 35 date2 = year * 10000L + 1231 36 filename = getname(s_iodir_data,sEXP1,'1Y','grid_T',date1) 37 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_T',date1) 74 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C ZT-plot (0-6000m) '+blabla 75 pltt, ts_z - ts_z2, 'zt', -0.1, 0.1, INTER = .01, date1, date2, /REMPLI, style = 'so0so' $ 76 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, boxzoom = 6000., /NOERASE, _extra = ex 38 77 39 if filename eq '' then stop 40 Sal = read_ncdf('so',date1 ,date2 , filename = filename, /nostruct) 41 Sal_2 = read_ncdf('so',date1 ,date2 , filename = filename2, /nostruct) 42 SSH = read_ncdf('zos',date1 ,date2 , filename = filename, /nostruct) 43 SSH_2 = read_ncdf('zos',date1 ,date2 , filename = filename2, /nostruct) 78 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_3.png /> ' ] 79 if KEYWORD_SET(postscript) then closeps 44 80 45 ts_Sal = [ ts_Sal, moyenne(Sal, 'xyz', mask2d = masknp, ssh = SSH) ] 46 ts_Sal_2 = [ ts_Sal_2, moyenne(Sal_2, 'xyz', mask2d = masknp, ssh = SSH_2) ] 47 ts_Sal_Lev = [ ts_Sal_Lev, moyenne(Sal, 'xyz', mask2d = masknp, ssh = SSH) - Lev_xyz ] 48 ts_Sal_Lev_2 = [ ts_Sal_Lev_2, moyenne(Sal_2, 'xyz', mask2d = masknp, ssh = SSH_2) - Lev_xyz ] 49 ts_Time = [ ts_Time, Time] ; Time = date 81 ENDIF 50 82 51 ts_z = [ [ts_z], [moyenne(Sal, 'xy',/KEEPBOTTOM, mask2d = masknp, ssh = SSH)- Lev_z] ]52 ts_z_2 = [ [ts_z_2], [moyenne(Sal_2, 'xy',/KEEPBOTTOM, mask2d = masknp, ssh = SSH_2)- Lev_z] ]53 54 endfor55 56 ts_Sal = ts_Sal[1:*] ; remove first record of 057 ts_Sal_2 = ts_Sal_2[1:*] ; remove first record of 058 ts_Sal_Lev = ts_Sal_Lev[1:*] ; remove first record of 059 ts_Sal_Lev_2 = ts_Sal_Lev_2[1:*] ; remove first record of 060 61 ts_z = ts_z[*,1:*] ; remove first record of 062 ts_z_2 = ts_z_2[*,1:*] ; remove first record of 063 64 Time = ts_Time[1:*] ; remove first record of 065 jpt = n_elements(Time)66 67 68 title = sEXP1+' Global Annual Mean Salinity --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)69 pltt, ts_Sal, 't', 34.54, 34.76, INTER = .2, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $70 , small = [1,2,1], YTITLE='psu', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex71 72 title = sEXP1+' Global Annual Mean Salinity - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)73 pltt, ts_Sal_Lev, 't', -.05, .05, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $74 , small = [1,2,2], YTITLE='psu', TITLE = title, FORMAT = '(I3)', /NOERASE, _extra = ex75 76 ;;;;;;;;;;;;;;;;; new page ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77 ERASE78 79 title = sEXP1+' ZT-plot Salinity Mean (0-1500m) - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)80 pltt,ts_z ,'zt', -.5, .5, INTER = .025, year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $81 , small = [1,2,1], YTITLE='psu', STYLE = 'so0so', TITLE = title, boxzoom = 1500., /PORTRAIT, _extra = ex82 83 title = sEXP1+' ZT-plot Salinity Mean (0-6000) - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)84 pltt,ts_z,'zt', -.5, .5, INTER = .025, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $85 , small = [1,2,2], YTITLE='psu', STYLE = 'so0so', TITLE = title, boxzoom = 6000., zoom = 1500., /NOERASE, _extra = ex86 87 88 if sEXP2 ne sEXP1 then begin89 90 ERASE91 92 title = sEXP1+' - '+sEXP2+' Global Annual Mean Salinity --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)93 pltt, ts_Sal - ts_Sal_2, 't', -1., 1., INTER = .2, year1 * 10000L + 101, year2 * 10000L + 1231, /REMPLI $94 , COLOR = 250, small = [1,2,1], YTITLE='psu', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex95 96 endif97 98 99 if KEYWORD_SET(POSTSCRIPT) then begin100 closeps101 endif102 103 104 83 return 105 84 end 85 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_SSH.pro
r2740 r2751 1 pro ts_mean_SSH, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_SSH, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vssh = getenv('VAR1_SSH') & prefix = getenv('V1SSH_PREF') & suffix = getenv('V1SSH_SUFF') 10 ; get exp2 info 11 vssh2 = getenv('VAR2_SSH') & prefix2 = getenv('V2SSH_PREF') & suffix2 = getenv('V2SSH_SUFF') 12 ; 13 cdti3 = string(cnt, format = '(i3.3)') 14 print, cdti3 + ') ' + blabla 15 filename = cdti3 + '_ts_SSH_'+prefix 16 if prefix NE prefix2 then filename = filename + '_'+prefix2 17 if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1 18 19 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 20 ; 21 iodir = std_iodir_data 22 ; 23 ts_SSH = rseries_ncdf(vssh, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 24 ts_SSH.arr = ts_SSH.arr * 100 & ts_SSH.unit = 'cm' 25 title = prefix+' '+d1_d2+'!C'+blabla 26 pltt, ts_SSH, 't', -.1, .1, date1, date2, /REMPLI $ 27 , small = [1, 2, 1], YTITLE = 'cm', TITLE = title, /PORTRAIT, _extra = ex 6 28 7 @initorca2 29 IF prefix NE prefix2 THEN BEGIN 30 31 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 32 tsave = time 33 ts_SSH2 = rseries_ncdf(vssh2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec, direc = 'xy', mask2d = masknp) 34 ts_SSH2.arr = ts_SSH2.arr * 100 & ts_SSH2.unit = 'cm' 35 time = tsave & IF n_elements(time) NE jpt THEN stop 36 37 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 38 pltt, ts_SSH.arr - ts_SSH2.arr, 't', -.1, .1, date1, date2, /REMPLI $ 39 , color = 250, small = [1, 2, 2], YTITLE = 'cm', TITLE = title, /noerase, _extra = ex 40 41 ENDIF 42 43 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png /> ' ] 44 if KEYWORD_SET(postscript) then closeps 8 45 9 if KEYWORD_SET(POSTSCRIPT) then begin10 openps, sEXP1+'_SSH_mean.ps', portrait = 111 endif12 13 ts_SSH = 0.14 ts_SSH2 = 0.15 ts_Time = 0.16 17 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct)18 19 for year=year1,year2 do begin20 21 date1 = year * 10000L + 10122 date2 = year * 10000L + 123123 filename = getname(s_iodir_data,sEXP1,'1Y','grid_T',date1)24 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_T',date1)25 26 SSH = read_ncdf('zos',date1 ,date2 , filename = filename, /nostruct)27 SSH2 = read_ncdf('zos',date1 ,date2 , filename = filename2, /nostruct)28 29 ts_SSH = [ ts_SSH, moyenne(SSH, 'xy', mask2d = masknp)]30 ts_SSH2 = [ ts_SSH2, moyenne(SSH2, 'xy', mask2d = masknp)]31 ts_Time = [ ts_Time, Time] ; Time = date32 33 endfor34 35 ts_SSH = ts_SSH[1:*] ; remove first record of 036 ts_SSH2 = ts_SSH2[1:*] ; remove first record of 037 Time = ts_Time[1:*] ; remove first record of 038 39 jpt = n_elements(Time)40 41 title = sEXP1+' Global Annual Mean SSH --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)42 pltt,ts_SSH,'t', -.001, .001, year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $43 , small = [1,2,1], YTITLE = 'm', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex44 45 if sEXP2 ne sEXP1 then begin46 47 title = sEXP1+' - '+sEXP2+' Global Annual Mean SSH --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)48 pltt, ts_SSH - ts_SSH2,'t', -.0001, .0001, year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $49 , COLOR = 250, small = [1,2,2], YTITLE = 'm', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex50 51 endif52 53 54 55 if KEYWORD_SET(POSTSCRIPT) then begin56 closeps57 endif58 59 60 46 return 61 47 end 48 -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_T.pro
r2740 r2751 1 pro ts_mean_T, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex1 pro std_ts_T, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 2 2 3 3 compile_opt idl2, strictarrsubs 4 4 5 @common 5 @common 6 @std_common 7 8 ; get exp1 info 9 vtemp = getenv('VAR1_T') & prefix = getenv('V1T_PREF') & suffix = getenv('V1T_SUFF') 10 vssh = getenv('VAR1_SSH') & sshprefix = getenv('V1SSH_PREF') & sshsuffix = getenv('V1SSH_SUFF') 11 ; get exp2 info 12 vtemp2 = getenv('VAR2_T') & prefix2 = getenv('V2T_PREF') & suffix2 = getenv('V2T_SUFF') 13 vssh2 = getenv('VAR2_SSH') & sshprefix2 = getenv('V2SSH_PREF') & sshsuffix2 = getenv('V2SSH_SUFF') 14 ; 15 cdti3 = string(cnt, format = '(i3.3)') 16 print, cdti3 + ') ' + blabla 17 filename = cdti3 + '_ts_T_'+prefix 18 if prefix NE prefix2 then filename = filename + '_'+prefix2 19 if KEYWORD_SET(postscript) then openps, filename+'_1.ps', portrait = 1 20 21 d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')' 22 23 ; read levitus data 24 std_file_Levitus_T = isafile(getenv('FILE_TEMP_3D'), title = 'Levitus_T', iodir = std_iodir_climato) 25 Lev = read_ncdf(getenv('VAR_TEMP_3D'), filename = std_file_Levitus_T, /nostruct ) 26 Lev_xyz = moyenne(Lev, 'xyz', mask2d = masknp) 27 levz = moyenne(temporary(Lev), 'xy', mask2d = masknp, /KEEPBOTTOM) 28 ; 29 iodir = std_iodir_data 30 ; 31 32 ; read exp1 data 33 std_ts_read, vtemp, date1, date2, prefix, suffix, ts_Temp, ts_z $ 34 , WITHSSH = vssh, SSHPREFIX = sshprefix, SSHSUFFIX = sshsuffix, LEVZ = levz 35 36 title = prefix+' '+d1_d2+'!C'+blabla 37 pltt, ts_Temp, 't', 1., 4.5, date1, date2, /REMPLI $ 38 , small = [1, 2, 1], YTITLE = varunit, TITLE = title, /PORTRAIT, _extra = ex 39 40 title = prefix+' '+d1_d2+' - Levitus!C'+blabla 41 pltt, ts_Temp - Lev_xyz, 't', -1., 1., date1, date2, /REMPLI $ 42 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, /NOERASE, _extra = ex 43 44 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_1.png /> ' ] 45 if KEYWORD_SET(postscript) then closeps 46 if KEYWORD_SET(postscript) then openps, filename+'_2.ps', portrait = 1 47 48 title = prefix+' '+d1_d2+' - Levitus!C ZT-plot (0-1500m) '+blabla 49 pltt, ts_z, 'zt', -2., 2., inter = .2, date1, date2, /REMPLI, style = 'so0so' $ 50 , small = [1, 2, 1], YTITLE = varunit, TITLE = title, boxzoom = 1500., /portrait, window = 1, _extra = ex 6 51 7 @initorca2 52 title = prefix+' '+d1_d2+' - Levitus!C ZT-plot (0-6000m) '+blabla 53 pltt, ts_z, 'zt', -2., 2., inter = .2, date1, date2, /REMPLI, style = 'so0so' $ 54 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, boxzoom = 6000., /NOERASE, _extra = ex 8 55 9 std_iodir_climato = '/Users/sflod/idl_PLOTS/CLIMATOLOGIES/' 10 ; std_iodir_interan = '/Users/sflod/idl_PLOTS/INTERAN/' 11 std_iodir_data = '/Users/sflod/idl_PLOTS/INTERAN/mercure/' 56 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_2.png /> ' ] 57 if KEYWORD_SET(postscript) then closeps 12 58 59 IF prefix NE prefix2 THEN BEGIN 13 60 14 if KEYWORD_SET(POSTSCRIPT) then begin 15 openps, sEXP1+'_Temperature_mean.ps', portrait = 1 16 endif 17 18 masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 61 d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')' 62 ; read exp2 data 63 tsave = time 64 std_ts_read, vtemp2, date1_2, date2_2, prefix2, suffix2, ts_Temp2, ts_z2 $ 65 , WITHSSH = vssh2, SSHPREFIX = sshprefix2, SSHSUFFIX = sshsuffix2, LEVZ = levz 66 time = tsave & IF n_elements(time) NE jpt THEN stop 19 67 20 filename = std_iodir_climato+'data_1y_potential_temperature_nomask.nc' 21 Lev = read_ncdf('votemper', filename = filename, /nostruct ) 22 Lev_xyz = moyenne(Lev, 'xyz', mask2d = masknp) 23 Lev_z = moyenne(Lev, 'xy', mask2d = masknp,/KEEPBOTTOM) 68 if KEYWORD_SET(postscript) then openps, filename+'_3.ps', portrait = 1 24 69 25 ts_Temp = 0. 26 ts_Temp_2 = 0. 27 ts_Temp_Lev = 0. 28 ts_Temp_Lev_2 = 0. 29 ts_Time = 0. 30 ts_z = fltarr(jpk) 31 ts_z_2 = fltarr(jpk) 32 33 for year=year1,year2 do begin 34 35 date1 = year * 10000L + 101L 36 date2 = year * 10000L + 1231L 37 38 print,s_iodir_data 70 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+blabla 71 pltt, ts_Temp - ts_Temp2, 't', -1., 1., date1, date2, /REMPLI $ 72 , COLOR = 250, small = [1, 2, 1], YTITLE = varunit, TITLE = title, /PORTRAIT, window = 2, _extra = ex 39 73 40 filename = getname(s_iodir_data,sEXP1,'1Y','grid_T',date1) 41 filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_T',date1) 74 title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C ZT-plot (0-6000m) '+blabla 75 pltt, ts_z - ts_z2, 'zt', -1., 1., inter = .1, date1, date2, /REMPLI, style = 'so0so' $ 76 , small = [1, 2, 2], YTITLE = varunit, TITLE = title, boxzoom = 6000., /NOERASE, _extra = ex 42 77 43 if filename eq '' then stop 44 Temp = read_ncdf('thetao',date1 ,date2 , filename = filename, /nostruct) 45 Temp_2 = read_ncdf('thetao',date1 ,date2 , filename = filename2, /nostruct) 46 SSH = read_ncdf('zos',date1 ,date2 , filename = filename, /nostruct) 47 SSH_2 = read_ncdf('zos',date1 ,date2 , filename = filename2, /nostruct) 78 htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_3.png /> ' ] 79 if KEYWORD_SET(postscript) then closeps 80 81 ENDIF 48 82 49 ts_Temp = [ ts_Temp, moyenne(Temp, 'xyz', mask2d = masknp,ssh = SSH) ]50 ts_Temp_2 = [ ts_Temp_2, moyenne(Temp_2, 'xyz', mask2d = masknp,ssh = SSH_2) ]51 ts_Temp_Lev = [ ts_Temp_Lev, moyenne(Temp, 'xyz', mask2d = masknp,ssh = SSH) - Lev_xyz ]52 ts_Temp_Lev_2 = [ ts_Temp_Lev_2, moyenne(Temp_2, 'xyz', mask2d = masknp,ssh = SSH_2) - Lev_xyz ]53 ts_Time = [ ts_Time, Time] ; Time = date54 55 ts_z = [ [ts_z], [moyenne(Temp, 'xy', mask2d = masknp,/KEEPBOTTOM, ssh = SSH)- Lev_z] ]56 ts_z_2 = [ [ts_z_2], [moyenne(Temp_2, 'xy', mask2d = masknp,/KEEPBOTTOM, ssh = SSH_2)- Lev_z] ]57 58 endfor59 60 ts_Temp = ts_Temp[1:*] ; remove first record of 061 ts_Temp_2 = ts_Temp_2[1:*] ; remove first record of 062 ts_Temp_Lev = ts_Temp_Lev[1:*] ; remove first record of 063 ts_Temp_Lev_2 = ts_Temp_Lev_2[1:*] ; remove first record of 064 ts_z = ts_z[*,1:*] ; remove first record of 065 ts_z_2 = ts_z_2[*,1:*] ; remove first record of 066 67 Time = ts_Time[1:*] ; remove first record of 068 jpt = n_elements(Time)69 70 title = sEXP1+' Global Annual Mean Temperature --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)71 pltt, ts_Temp, 't', 1., 4.5, INTER = .5, year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $72 , small = [1,2,1], YTITLE='Deg C', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex73 74 title = sEXP1+' Global Annual Mean Temperature - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)75 pltt,ts_Temp_Lev, 't', -1., 1., INTER = .25, year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $76 , small = [1,2,2], YTITLE='Deg C', TITLE = title, FORMAT = '(I3)', /NOERASE, _extra = ex77 78 ;;;;;;;;;;;;;;;;; new page ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79 80 ERASE81 82 title = sEXP1+' ZT-plot Temperature Mean (0-1500m) - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)83 pltt,ts_z ,'zt', -2., 2., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $84 , small = [1,2,1], YTITLE='Deg C', TITLE = title, boxzoom = 1500., /NOERASE, _extra = ex85 86 title = sEXP1+' ZT-plot Temperature Mean (0-6000m) - Levitus --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)87 pltt,ts_z ,'zt', -2., 2., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $88 , small = [1,2,2], YTITLE='Deg C', TITLE = title, boxzoom = 6000., /NOERASE, _extra = ex89 90 if sEXP2 ne sEXP1 then begin91 92 ERASE93 94 title = sEXP1+' - '+sEXP2+' Global Annual Mean Temperature --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)95 pltt, ts_Temp - ts_Temp_2, 't', -1., 1., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $96 , COLOR = 250, small = [1,2,1], YTITLE='Deg C', TITLE = title, FORMAT = '(I3)', /PORTRAIT, _extra = ex97 98 endif99 100 101 if KEYWORD_SET(POSTSCRIPT) then begin102 closeps103 endif104 105 106 83 return 107 84 end -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_all.pro
r2740 r2751 1 pro std_ts, std_EXP1, std_EXP2, year1, year2, _extra=ex 2 3 4 PRINT, 'usage: postscript ' 5 PRINT, '========================================================================' 6 PRINT, 'std_ts, ''std_EXP1'', ''std_EXP2'', ''year_start'', ''year_end'', /postscript' 7 PRINT, '========================================================================' 8 PRINT, 'std_ts, ''core2000'', ''core2000'', ''1'', ''2000'', /postscript' 9 PRINT, '========================================================================' 10 1 pro std_ts_all, doplot = doplot, _extra=ex 11 2 12 3 compile_opt idl2, strictarrsubs 4 5 @common 6 @std_common 13 7 14 8 PRINT, '' … … 19 13 PRINT, ' ############################################' 20 14 PRINT, '' 15 ; 16 std_iodir_data = isadirectory(getenv('DIR_DATA'), title = 'path of data in NetCdf format') 17 std_iodir_climato = isadirectory(getenv('DIR_CLIMATO'), title = 'path of climatological data') 18 std_iodir_mask = isadirectory(getenv('DIR_MASK'), title = 'path of mask files (ex: subbasins)') 19 ; meshmask 20 std_file_mesh = isafile(getenv('FILE_MESH_MASK'), title = 'mesh_mask', iodir = std_iodir_mask) 21 std_file_msksub = isafile(getenv('FILE_MASK_SUBDOMAIN'), title = 'sub-bassin masks', iodir = std_iodir_mask) 22 ; load the grid 23 load_orca, std_file_mesh 24 ; reading variables 25 masknp = read_ncdf('tmaskutil', file = std_file_mesh, /nostruct, /cont_nofill) 21 26 27 date1 = long(getenv('DATE1')) & date2 = long(getenv('DATE2')) 28 date1_2 = long(getenv('DATE1_2')) & date2_2 = long(getenv('DATE2_2')) 22 29 23 @common 24 @initorca2 25 @std_com 26 27 28 ; std_iodir_data = '/Users/sflod/idl_PLOTS/DATA_STORE/RUN_INTERAN/mercure/' ; path of data in NetCdf format 29 std_iodir_data = '/Users/sflod/idl_PLOTS/DATA_STORE/RUN_CLIMATO/brodie/' ; path of data in NetCdf format 30 30 allrec = 1 - keyword_set(long(getenv('READ_ONLY_FIRST_RECORD'))) 31 31 32 32 ;######################################################################### 33 ;###################### TIME SERIES ################################33 ;###################### STANDARD PLOTS ################################ 34 34 ;######################################################################### 35 35 36 IF keyword_set(doplot) EQ 0 THEN doplot = 0 37 36 38 ; fixed color tabled 37 lct,64 39 lct, 64 40 cnt = 0 41 htmltxt = '' 42 ; 43 cnt = cnt+1 & blabla = 'Global Mean Temperature' 44 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_T, masknp, POSTSCRIPT = postscript, _extra = ex 45 ; 46 cnt = cnt+1 & blabla = 'Global Mean Salinity' 47 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_S, masknp, POSTSCRIPT = postscript, _extra = ex 48 ; 49 cnt = cnt+1 & blabla = 'Global Mean SSH' 50 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_SSH, masknp, POSTSCRIPT = postscript, _extra = ex 51 ; 52 cnt = cnt+1 & blabla = 'Global Mean Q net' 53 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_Q, masknp, POSTSCRIPT = postscript, _extra = ex 54 ; 55 cnt = cnt+1 & blabla = 'Global Mean EMP' 56 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_EMP, masknp, POSTSCRIPT = postscript, _extra = ex 57 ; 58 cnt = cnt+1 & blabla = 'Drake Transport' 59 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_Drake, masknp, POSTSCRIPT = postscript, _extra = ex 60 ; 61 cnt = cnt+1 & blabla = 'Max AMOC' 62 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_AMOC, masknp, POSTSCRIPT = postscript, _extra = ex 63 ; 64 cnt = cnt+1 & blabla = 'Sea-Ice cover' 65 IF doplot EQ cnt OR doplot EQ 0 THEN std_ts_ICE, masknp, POSTSCRIPT = postscript, _extra = ex 38 66 39 40 41 ;; Temperature Mean 42 ;; ======================================= 43 PRINT, ' ' 44 PRINT, ' Temperature Mean' 45 PRINT, '1 ' 46 ts_mean_T, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 47 48 ;; Salinity Mean 49 ;; ======================================= 50 PRINT, ' ' 51 PRINT, ' Salinity Mean' 52 PRINT, '2 ' 53 ts_mean_S, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 54 55 ;; Sea Surface Height 56 ;; ======================================= 57 PRINT, ' ' 58 PRINT, ' SSH' 59 PRINT, '3 ' 60 ts_mean_SSH, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 61 62 ;; Heat flux Mean 63 ;; ======================================= 64 PRINT, ' ' 65 PRINT, ' Heat Mean' 66 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 67 ; commented because not good in iodef.xml file for 33beta!!!!!!!!!!! 68 ;PRINT, '4 ' 69 ts_mean_Q, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 70 71 ;; EMP Mean 72 ;; ======================================= 73 PRINT, ' ' 74 PRINT, ' EMP Mean' 75 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 76 ; commented because not good in iodef.xml file for 33beta!!!!!!!!!!! 77 ;PRINT, '5 ' 78 ts_mean_EMP, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 79 80 81 ;; Drake transport 82 ;; ======================================= 83 PRINT, ' ' 84 PRINT, ' Drake Transport' 85 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 86 ; commented because not good in iodef.xml file for 33beta!!!!!!!!!!! 87 ;PRINT, '6 ' 88 ts_mean_U, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 89 90 ;; Max AMOC 91 ;; ======================================= 92 PRINT, ' ' 93 PRINT, ' Max AMOC' 94 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 95 ; commented because not good in iodef.xml file for 33beta!!!!!!!!!!! 96 ;PRINT, '7 ' 97 ts_mean_V, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 98 99 ;; Sea-Ice Area 100 ;; ======================================= 101 PRINT, ' ' 102 PRINT, ' Sea-Ice Area' 103 PRINT, '8 ' 104 ts_mean_ICE, std_EXP1, std_EXP2, year1, year2, std_iodir_data, _extra = ex 67 IF n_elements(htmltxt) GT 1 THEN putfile, psdir+'std_ts_html_body.txt', htmltxt[1:*] 105 68 106 69 return
Note: See TracChangeset
for help on using the changeset viewer.