Changeset 2751


Ignore:
Timestamp:
2011-04-26T10:45:52+02:00 (10 years ago)
Author:
smasson
Message:

large update of IDL_scripts for Is-ENES

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#---------------------------------------------------------------------- 
     4To use these idl tools, you need to download some climatogies and mask files; 
    25that you can find here: http://dodsp.idris.fr/reee512/NEMO_OUT/ORCA2_LIM/ 
     6 
     7There is the wget command to get all those files (thanks to F. Pinsard) 
     8wget --recursive -l2 --no-directories --no-parent -A.nc -erobots=off http://dodsp.idris.fr/reee512/NEMO_OUT/ORCA2_LIM/ 
     9 
     10You 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#---------------------------------------------------------------------- 
     15Use 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 
     18to build your own std_plot_vardef.sh or std_ts_vardef.sh file. 
     19 
     20This 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  
     33idl -IDL_STARTUP initenv 
     34IDL> .r std_main 
     35IDL> resolve_all 
     36IDL> save, /routines, filename='std_main.sav' 
     37IDL> exit 
     38# 
     39#---------------------------------------------------------------------- 
  • trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_main.sh

    r2740 r2751  
    11#!/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 
    239# 
    340# AUTHOR - date 
    441# =========== 
    542# 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#- 
     51system=$(uname) 
     52case "${system}" in 
     53   AIX|IRIX64) 
     54      echo " www : no specific posix checking" 
     55   ;; 
     56   *) 
     57      set -o posix 
     58   ;; 
     59esac 
     60# 
     61usage="Usage: std_main.sh [OPTION] 
     62Options 
     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# 
     72vm=0 
     73noidl=0 
     74format=ps 
     75while [ ! -z "${1}" ] 
     76do 
     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 
     95done 
     96# 
     97PLOTTYPE=${PLOTTYPE:-NG} 
     98if [[ ( "$PLOTTYPE" != "plot" ) && ( "$PLOTTYPE" != "ts" ) ]] 
     99then 
     100    echo 'the type of plot must be defined with the option -plot or -ts' 
     101   exit 1 
    41102fi 
    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 
     103export PLOTTYPE 
     104# 
    63105set -u 
    64106# 
     107# 
     108tstexe () { 
     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#----------------------------------------------------------- 
    65119# 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# 
     129if [ $noidl -eq 0 ] 
     130then  
     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 
     138std_${PLOTTYPE}_all, /postscript 
    97139EOF 
    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 
    108147fi 
    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#----------------------------------------------------------- 
    122150# produce the final document 
     151#----------------------------------------------------------- 
     152# 
     153# build the list of ps that has been created by IDL 
     154pslist=$( grep "img width" ${PS_DIR}/std_${PLOTTYPE}_html_body.txt | sed -e "s/.*src=\(.*\)png.*/\1/" ) 
     155# 
    123156case ${format} in 
     157#__________________________________________________________ 
     158# PDF 
    124159    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 
    130174   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 
    137178#commented because convert gives images of bad quality 
    138 #  convert ${psdir}/*.ps /tmp/all_plots.pdf 
    139 #       convert -resize 800x600 ${psdir}/${exp1}_${exp2}/ps/*.ps /tmp/all_plots.pdf 
     179#  convert ${PS_DIR}/*.ps /tmp/all_${PLOTTYPE}.pdf 
     180#       convert -resize 800x600 ${PS_DIR}/${exp1}_${exp2}/ps/*.ps /tmp/all_${PLOTTYPE}.pdf 
    140181   ;; 
     182#__________________________________________________________ 
     183# HTML 
    141184    html) 
    142    rm /tmp/std_plots.html 2> /dev/null 
     185   filehtml=all_${PLOTTYPE}.html 
     186   [ ! -d ${HTML_DIR} ] && mkdir -p ${HTML_DIR} 
    143187# 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 
    156193   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> 
    166202EOF 
    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> 
    170208EOF 
    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 
    178210   ;; 
     211    ps)  ;; # nothing to do... 
    179212    *)    
    180213   echo " format ${format} not implemented" 
     
    190223#Tag_Name=ORCA2_LIM2 
    191224#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>&1 
    194 #       /usr/local/bin/dods_cp ${exp1} DODS/pub/${LOGIN}/${Tag_Name}/CORE2/INTERAN/plots_pdf/${exp1} > /dev/null 2>&1 
     225#       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 
    195228#EOF 
    196229#===================== 
  • 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 
     1pro 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 
    260   
    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 
    3862end 
  • 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 = ex 
    2    
     1pro std_plot_EqS, S1, S2, SLev, POSTSCRIPT = postscript, _extra = ex 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    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 
    1013   
    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 
    1817   
    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 
    3428 
    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 
    3831 
    3932  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 = ex 
    2    
     1pro std_plot_EqT, T1, T2, TLev, POSTSCRIPT = postscript, _extra = ex 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    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 
    1013   
    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 
    1817   
    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 
    2636                                ;  
    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 
    3939 
    4040  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 
     1pro 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 
    213   
    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 
    1217 
    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 
    1922  endif 
    2023   
    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 
    2826 
    2927  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 = ex 
     1pro std_plot_GlobMeanTS, T1, T2, TLev, S1, S2, SLev, sEXP1, sEXP2, POSTSCRIPT = postscript, _extra = ex 
    22 
    3  @common 
    4  compile_opt idl2, strictarrsubs 
     3  compile_opt idl2, strictarrsubs 
    54 
    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 
    97 
    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 
    1713 
    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 
    2433 
     34  htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png  />  ' ] 
     35  if KEYWORD_SET(postscript) then closeps 
    2536 
    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 
    3638end 
    3739 
  • 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 
     1pro 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 
    220   
    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 
    461 
    5  compile_opt idl2, strictarrsubs 
     62  htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png  />  ' ] 
     63  if KEYWORD_SET(postscript) then closeps 
    664 
    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 
    4266end 
  • 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 = ex 
    2    
     1pro std_plot_Med_Sdepth, S1, S2, SLev, lat, POSTSCRIPT = postscript,  _extra = ex 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    5    @common 
     5@common   
     6@std_common 
    67 
     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 
    731 
    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 
    1234 
    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 
    4736end 
  • 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 = ex 
    2    
     1pro std_plot_Med_Sspread, S1, S2, SLev, depth, POSTSCRIPT = postscript,  _extra = ex 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    5    @common 
     5@common   
     6@std_common 
    67 
     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 
    729 
    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 
    1232 
    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 
    4634end 
  • 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 = ex 
     1pro std_plot_S100m, S1, S2, SLev, POSTSCRIPT = postscript, _extra = ex 
    22 
    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 
    1015; 
    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 
    1219; 
     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 
    1329 
    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 
    3232 
    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 
    4434end 
  • 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 
     1pro std_plot_T100m, T1, T2, TLev, POSTSCRIPT = postscript, _extra = ex 
    52 
    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 
    1019; 
    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 
    1832 
    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 
    4134end 
  • 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 
     1pro std_plot_ZonMld, MLD1, MLD2, MLD, POSTSCRIPT = postscript, _extra = ex 
    42 
    5  compile_opt idl2, strictarrsubs 
     3  compile_opt idl2, strictarrsubs 
    64 
    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 
    127 
     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 
    1313                                ; 
    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  
    1720                                ; 
    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 
    2024                                ; 
    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 = blue 
     25  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 
    2327 
    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 
    2730 
    28  
    29  if KEYWORD_SET(POSTSCRIPT) then begin 
    30     closeps 
    31  endif 
    32  
    33  return 
     31  return 
    3432end 
  • 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  
     1pro std_plot_all, doplot = doplot, _extra = ex 
    132 
    143  compile_opt idl2, strictarrsubs 
    154 
     5@common 
     6@std_common 
     7                                ; scripts for nemo v3_2 and v3_3 
     8 
    169  PRINT, '' 
    1710  PRINT, '  ############################################' 
     
    2114  PRINT, '  ############################################' 
    2215  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 
    4724; 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'))) 
    5135; 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) 
    5740   
    5841; Output run experience2 
    59   std_file2_T     = std_EXP2+'_'+start_end+'_1Y_grid_T.nc' ; grid T input file 
    60   std_file2_U     = std_EXP2+'_'+start_end+'_1Y_grid_U.nc' ; grid U input file 
    61   std_file2_V     = std_EXP2+'_'+start_end+'_1Y_grid_V.nc' ; grid V input file 
    62 ;  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_EXP1 
    68   PRINT, '  std_EXP2       : ', std_EXP2 
    69   PRINT, '  std_iodir_data : ', std_iodir_data  
    70   PRINT, '  std_file1T : ', std_file1_T 
    71   PRINT, '  std_file1U : ', std_file1_U 
    72   PRINT, '  std_file1V : ', std_file1_V 
    73 ;  PRINT, ' std_file1W : ', std_file1_W 
    74   PRINT, '  std_file2I : ', std_file1_I 
    75   PRINT, '  std_file2T : ', std_file2_T 
    76   PRINT, '  std_file2U : ', std_file2_U 
    77   PRINT, '  std_file2V : ', std_file2_V 
    78 ;  PRINT, ' std_file2W : ', std_file2_W 
    79   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   
    8366; 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; 
    8574;;; 3D ;;; 
    8675; 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 )  
    9382 
    9483; 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 ;;; 
    9991; 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 
    105100;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 ) 
    107102 
    108103; 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} 
    113110 
    114111; 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        
    119258  
    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   
    395363  return 
    396364END 
  • 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 = ex 
     1pro std_plot_bsf, U1, U2, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44 
    5   @common 
     5@common   
     6@std_common 
    67 
    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   
    1014  domdef, 0, 6000 
    1115 
     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 
    1220 
    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 
    2726  endif 
    2827   
    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 
    3730 
    3831  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   
     1pro std_plot_emp, EMP1, EMP2, POSTSCRIPT = postscript, _extra = ex 
     2 
    53  compile_opt idl2, strictarrsubs 
    64 
    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 
    922  endif 
    10    
    11   title=sEXP1+' Emp (mm/day) / year '+start_end 
    12   varunit= 'mm/day' 
    13   plt, EMP1,  MIN = -10., MAX = 10., INTER = 1. $ 
    14        , small = [1,2,1], COAST_THICK = 2, TITLE = title, /PORTRAIT, _extra=ex 
    15    
    16 if sEXP1 ne sEXP2 then begin 
    1723 
    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 
    3126 
    3227  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 = ex 
     1pro std_plot_erp, ERP1, ERP2, POSTSCRIPT = postscript, _extra = ex 
    22 
    3 @common 
    4   
    53  compile_opt idl2, strictarrsubs 
    64 
    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 
    1013   
    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 
    1517   
    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 
    2222  endif 
    2323 
    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 
    3226 
    3327  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    
     1PRO std_plot_domht, Q, masknp, mask_filename, ibce, htr, htr_atl 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    5 @common 
     5@common   
    66 
    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  
    1023 
    11   masknp = read_ncdf('tmaskutil', file = 'mesh_mask_partial.nc', /nostruct) 
     24return 
     25END 
    1226 
    13   Qave1 = moyenne(Q1,'xy', mask2d = masknp)  
    14   Qave2 = moyenne(Q2,'xy', mask2d = masknp) 
     27pro std_plot_mht, Q1, Q2, masknp, mask_filename, POSTSCRIPT = postscript,  _extra = ex 
    1528 
    16   Qnet1 = Q1 - Qave1 
    17   Qnet2 = Q2 - Qave2 
     29  compile_opt idl2, strictarrsubs 
    1830 
    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 
    2539   
    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 
    5047   
    5148; update data informations 
     
    5451  vargrid = 'T'  
    5552 
    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 
    5858 
    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 
    6162 
    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 
    6568 
    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 
    6980   
    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 
    8882   
    8983  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 = ex 
     1pro std_plot_mld, MLD1, MLD2in, MLDin, POSTSCRIPT = postscript, _extra = ex 
    22 
    3  @common 
     3  compile_opt idl2, strictarrsubs 
    44 
    5  compile_opt idl2, strictarrsubs 
     5@common   
     6@std_common 
    67 
    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 
    4552end 
    4653 
  • 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 = ex 
     1pro std_plot_msf, V1, V2, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44 
    5   @common 
     5@common   
     6@std_common 
    67 
    7   if KEYWORD_SET(SUBBASIN) then subname = subbasin  
    8  
    9  
    10   if KEYWORD_SET(POSTSCRIPT) then begin 
    11      openps, '024_msf_'+subname+'_'+sEXP1+'_'+sEXP2+'_y'+start_end+'.ps',  portrait = 1 
    12   endif 
    13  
     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; 
    1415  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] 
    2624; 
    27  
    28    
    2925  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] 
    3531  ENDCASE 
    36  
    37  if subbasin eq 'Pac' then subname = "IndoPac" 
    3832   
    3933  domdef, 0, 6000 
    4034 
    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' 
    4639 
    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' 
    5345  endif 
    5446   
    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 
    6349 
    6450  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 
     1pro 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 
    214   
    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 
    418 
    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 
    631 
    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 
    4233end 
    4334 
  • 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 
     1pro 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 
    213   
    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  
    1519                                ; 
    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 
    2132 
    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 
    4034end 
  • 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 = ex 
     1pro std_plot_sst, T1, T2, TRey, POSTSCRIPT = postscript, _extra = ex 
    22 
    3  @common  
    4  compile_opt idl2, strictarrsubs 
     3  compile_opt idl2, strictarrsubs 
    54 
    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 
    117 
    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] 
    1516    min = -2. 
    1617    max = 32. 
    1718    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 
    1941 
    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 
    4443end 
  • 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 = ex 
     1pro std_plot_zonal_S, S1, S2, SLev, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44 
    5    @common 
     5@common   
     6@std_common 
    67 
    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 
    914 
    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, *] 
    1320 
    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 
    1953 
    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 
    7055end 
  • 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 = ex 
    2    
     1pro std_plot_zonal_T, T1, T2, TLev, SUBBASIN = subbasin, POSTSCRIPT = postscript, _extra = ex 
     2 
    33  compile_opt idl2, strictarrsubs 
    44 
    5    @common 
     5@common   
     6@std_common 
    67 
    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) 
    3229; 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 
    3933; 
    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  
    4437;  
    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 
    6047; 
    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 
    7755end 
  • 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 
     1PRO std_ts_read_AMOC, var_name, dt1, dt2, prefix, suffix, t45, t70, t50 
    22 
    3    
    43  compile_opt idl2, strictarrsubs 
    54   
    6   @common 
    7    
    8  @initorca2 
    9   
     5@common 
     6@std_common 
    107 
    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) 
    2210 
    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. 
    3515 
    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 
    4426; 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       
    5231; 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)] 
    5935 
    6036;  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 
     54end 
     55 
     56pro 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 
    64129     
    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 
    132131end 
  • 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  
     1pro std_ts_Drake, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    32 
    43  compile_opt idl2, strictarrsubs 
    54   
    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 
    743   
    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 
    1156 
    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 
    1362 
    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 
    1764 
    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 
    7769end 
  • 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 = ex 
     1pro std_ts_EMP, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    5   @common 
     5@common 
     6@std_common 
    67 
    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 
    1218 
    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 
    1633 
    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 
    1839 
    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 
    2043 
    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  
    2545 
    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   
    6749  return 
    6850end 
     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 = ex 
     1pro std_ts_ICE, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    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 
    633   
    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 
    837   
    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 
    1140 
     41  if prefix NE prefix2 then BEGIN 
    1242 
    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)+')' 
    1844 
    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 
    2253 
    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 
    2655 
    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 
    2863 
    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 
    9266 
    9367  endif 
    9468 
     69  domdef 
    9570   
    96   if KEYWORD_SET(POSTSCRIPT) then begin 
    97      closeps 
    98   endif 
    99    
    100    
     71 
    10172  return 
    10273end 
  • 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 = ex 
     1pro std_ts_Q, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    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 
    627   
    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 
    1629 
    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 
    1834 
     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 
    1938 
    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  
    2640 
    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 
     45end 
    3046 
    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 = date 
    34  
    35  endfor 
    36   
    37  ts_Heat = ts_Heat[1:*]         ; remove first record of 0 
    38  ts_Heat2 = ts_Heat2[1:*]         ; remove first record of 0 
    39  Time = ts_Time[1:*]            ; remove first record of 0 
    40   
    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 = ex 
    46  
    47  if sEXP2 ne sEXP1 then begin 
    48  
    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 = ex 
    52      
    53  endif 
    54  
    55   
    56  if KEYWORD_SET(POSTSCRIPT) then begin 
    57     closeps 
    58  endif 
    59   
    60   
    61  return 
    62 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 = ex 
     1pro std_ts_S, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    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 
    651   
    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 
    855   
    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 
    1158 
     59  IF prefix NE prefix2 THEN BEGIN 
    1260 
    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 
    2167 
    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 
    2969 
    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 
    3173 
    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 
    3877 
    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 
    4480 
    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 
    5082 
    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   endfor 
    55    
    56   ts_Sal = ts_Sal[1:*]             ; remove first record of 0 
    57   ts_Sal_2 = ts_Sal_2[1:*]         ; remove first record of 0 
    58   ts_Sal_Lev = ts_Sal_Lev[1:*]     ; remove first record of 0 
    59   ts_Sal_Lev_2 = ts_Sal_Lev_2[1:*] ; remove first record of 0 
    60    
    61   ts_z = ts_z[*,1:*]            ; remove first record of 0 
    62   ts_z_2 = ts_z_2[*,1:*]            ; remove first record of 0 
    63    
    64   Time = ts_Time[1:*]           ; remove first record of 0 
    65   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 = ex 
    71  
    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 = ex 
    75  
    76 ;;;;;;;;;;;;;;;;; new page ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    77 ERASE 
    78   
    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 = ex 
    82  
    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 = ex 
    86    
    87  
    88 if sEXP2 ne sEXP1 then begin 
    89  
    90 ERASE 
    91  
    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 = ex 
    95     
    96 endif 
    97  
    98    
    99   if KEYWORD_SET(POSTSCRIPT) then begin 
    100      closeps 
    101   endif 
    102    
    103    
    10483  return 
    10584end 
     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 = ex 
     1pro std_ts_SSH, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    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 
    628   
    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 
    845   
    9   if KEYWORD_SET(POSTSCRIPT) then begin 
    10      openps, sEXP1+'_SSH_mean.ps', portrait = 1 
    11   endif 
    12    
    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 begin 
    20       
    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) 
    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 = date 
    32       
    33   endfor 
    34    
    35   ts_SSH = ts_SSH[1:*]          ; remove first record of 0 
    36   ts_SSH2 = ts_SSH2[1:*]          ; remove first record of 0 
    37   Time = ts_Time[1:*]           ; remove first record of 0 
    38    
    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 = ex 
    44    
    45   if sEXP2 ne sEXP1 then begin 
    46       
    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 = ex 
    50       
    51   endif 
    52    
    53  
    54   
    55   if KEYWORD_SET(POSTSCRIPT) then begin 
    56      closeps 
    57   endif 
    58  
    59  
    6046  return 
    6147end 
     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 = ex 
     1pro std_ts_T, masknp, s_iodir_data, POSTSCRIPT = postscript, _extra = ex 
    22 
    33  compile_opt idl2, strictarrsubs 
    44   
    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 
    651   
    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 
    855   
    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 
    1258 
     59  IF prefix NE prefix2 THEN BEGIN 
    1360 
    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 
    1967 
    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 
    2469 
    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 
    3973 
    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 
    4277 
    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 
    4882 
    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 = date 
    54  
    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   endfor 
    59  
    60   ts_Temp = ts_Temp[1:*]        ; remove first record of 0  
    61   ts_Temp_2 = ts_Temp_2[1:*]        ; remove first record of 0 
    62   ts_Temp_Lev = ts_Temp_Lev[1:*] ; remove first record of 0 
    63   ts_Temp_Lev_2 = ts_Temp_Lev_2[1:*] ; remove first record of 0 
    64   ts_z = ts_z[*,1:*]             ; remove first record of 0 
    65   ts_z_2 = ts_z_2[*,1:*]             ; remove first record of 0 
    66    
    67   Time = ts_Time[1:*]           ; remove first record of 0 
    68   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 = ex 
    73  
    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 = ex 
    77  
    78   ;;;;;;;;;;;;;;;;; new page  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    79  
    80 ERASE 
    81  
    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 = ex 
    85    
    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 = ex 
    89    
    90 if sEXP2 ne sEXP1 then begin 
    91    
    92 ERASE 
    93   
    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 = ex 
    97     
    98 endif 
    99  
    100    
    101   if KEYWORD_SET(POSTSCRIPT) then begin 
    102      closeps 
    103   endif 
    104    
    105    
    10683  return 
    10784end 
  • 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  
     1pro std_ts_all, doplot = doplot, _extra=ex 
    112 
    123  compile_opt idl2, strictarrsubs 
     4 
     5@common 
     6@std_common 
    137 
    148  PRINT, '' 
     
    1913  PRINT, '  ############################################' 
    2014  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) 
    2126 
     27  date1   = long(getenv('DATE1'))     &   date2   = long(getenv('DATE2')) 
     28  date1_2 = long(getenv('DATE1_2'))   &   date2_2 = long(getenv('DATE2_2')) 
    2229 
    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'))) 
    3131 
    3232;######################################################################### 
    33 ;######################  TIME SERIES   ################################ 
     33;######################  STANDARD PLOTS   ################################ 
    3434;######################################################################### 
    3535 
     36  IF keyword_set(doplot) EQ 0 THEN doplot = 0 
     37 
    3638; 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 
    3866 
    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:*] 
    10568 
    10669  return 
Note: See TracChangeset for help on using the changeset viewer.