http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/threeDVariableTwoDSlice.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/threeDVariableTwoDSlice.scala.html 
b/.target/views/climate/threeDVariableTwoDSlice.scala.html
new file mode 100644
index 0000000..d950b73
--- /dev/null
+++ b/.target/views/climate/threeDVariableTwoDSlice.scala.html
@@ -0,0 +1,711 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more          
   *
+ * contributor license agreements.  See the NOTICE file distributed with       
   *
+ * this work for additional information regarding copyright ownership.         
*
+ * The ASF licenses this file to You under the Apache License, Version 2.0     
*
+ * (the "License"); you may not use this file except in compliance with        
*
+ * the License.  You may obtain a copy of the License at                       
*
+ *                                                                             
*
+ *    http://www.apache.org/licenses/LICENSE-2.0                               
*
+ *                                                                             
                                                                           *
+ * Unless required by applicable law or agreed to in writing, software         
*
+ * distributed under the License is distributed on an "AS IS" BASIS,           
*
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    
*
+ * See the License for the specific language governing permissions and         
*
+ * limitations under the License.                                              
                                           *
+ 
*******************************************************************************@
 
+
+@(parameters: metadata.ThreeDVar2DSlice) @import helper._
+<link rel="stylesheet"
+       href='@routes.Assets.at("stylesheets/livefitler.css")'>
+@scripts = {
+<script src='@routes.Assets.at("javascripts/edit_button.js")'></script>
+<script src='@routes.Assets.at("javascripts/livefilter.js")'></script>
+<script type="text/javascript"
+       src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script>
+<script type="text/javascript"
+       
src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js";></script>
+<script type="
+       text/javascript"
+       src='@routes.Assets.at("javascripts/json2.js")'></script>
+<script type="text/javascript"
+       src='@routes.Assets.at("javascripts/xmisc.js")'></script>
+<script type="text/javascript">
+        var Response = null;
+    var variable = "";
+    window.onload = function() {
+      changeMonths();
+      changeDataSource();
+      select_data();
+      changeVariableName();
+      select_var();
+      enable_download_button();
+      $('#t0').val($('#startYearMonth').text());
+      $('#t1').val($('#endYearMonth').text());
+      $('#pres').val($('#pressureLevel').text());
+      $('#lat0').val($('#startLat').text());
+      $('#lat1').val($('#endLat').text());
+      $('#lon0').val($('#startLon').text());
+      $('#lon1').val($('#endLon').text());
+      $('#purpose').html($('#executionPurpose').text());
+      var imageUrl = $('#image').text();
+      $('#Image').html('<img src="'+imageUrl+'" width=680 />');
+      $('#data_url').html($('#dataURL').text());
+      $('#Response').html($('serviceResponseText').text());
+      var colorScale = $('#colorScale').text();
+      if(colorScale == "0") {
+        $('#radioLin').prop( "checked", true );
+        $('#radioLog').prop( "checked", false );
+      }
+      else {
+        $('#radioLin').prop( "checked", false );
+        $('#radioLog').prop( "checked", true );
+      }
+    }
+    function disable_download_button()
+    {
+      var x=document.getElementById("download_data");
+      x.disabled=true;
+    }
+    function enable_download_button()
+    {
+      var x=document.getElementById("download_data");
+      x.disabled=false;
+    }         
+    function changeMonths(){
+      var months = $("#monthsPara").text();
+      var temp = months.split(", ");
+      for(i = 0;i < temp.length;i ++){
+        if(temp[i] == 'jan'){
+          document.getElementById('Jan').checked = true;
+        }else if(temp[i] == 'feb'){
+          document.getElementById('Feb').checked = true;
+        }else if(temp[i] == 'mar'){
+          document.getElementById('Mar').checked = true;
+        }else if(temp[i] == 'apr'){
+          document.getElementById('Apr').checked = true;
+        }else if(temp[i] == 'may'){
+          document.getElementById('May').checked = true;
+        }else if(temp[i] == 'jun'){
+          document.getElementById('Jun').checked = true;
+        }else if(temp[i] == 'jul'){
+          document.getElementById('Jul').checked = true;
+        }else if(temp[i] == 'aug'){
+          document.getElementById('Aug').checked = true;
+        }else if(temp[i] == 'sep'){
+          document.getElementById('Sep').checked = true;
+        }else if(temp[i] == 'oct'){
+          document.getElementById('Oct').checked = true;
+        }else if(temp[i] == 'nov'){
+          document.getElementById('Nov').checked = true;
+        }else if(temp[i] == 'dec'){
+          document.getElementById('Dec').checked = true;
+        }
+      }
+    }
+    function select_all_months()
+    {
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+        document.getElementById('Dec').checked = true;
+    }
+    function no_month_check()
+    {
+        if (document.getElementById('Jan').checked == false &&
+           document.getElementById('Feb').checked == false &&
+           document.getElementById('Mar').checked == false &&
+           document.getElementById('Apr').checked == false &&
+           document.getElementById('May').checked == false &&
+           document.getElementById('Jun').checked == false &&
+           document.getElementById('Jul').checked == false &&
+           document.getElementById('Aug').checked == false &&
+           document.getElementById('Sep').checked == false &&
+           document.getElementById('Oct').checked == false &&
+           document.getElementById('Nov').checked == false &&
+           document.getElementById('Dec').checked == false) {
+           return true;
+          }
+        else
+           return false;
+    }
+    function reset_months()
+    {
+        document.getElementById('Jan').checked = false;
+        document.getElementById('Feb').checked = false;
+        document.getElementById('Mar').checked = false;
+        document.getElementById('Apr').checked = false;
+        document.getElementById('May').checked = false;
+        document.getElementById('Jun').checked = false;
+        document.getElementById('Jul').checked = false;
+        document.getElementById('Aug').checked = false;
+        document.getElementById('Sep').checked = false;
+        document.getElementById('Oct').checked = false;
+        document.getElementById('Nov').checked = false;
+        document.getElementById('Dec').checked = false;
+    }
+    function reset_vars()
+    {
+      var x=document.getElementById("var");
+      x.options[0].disabled=false;
+      x.options[1].disabled=false;
+      x.options[2].disabled=false;
+      x.options[3].disabled=false;
+      x.options[4].disabled=false;
+      x.options[5].disabled=false;
+      x.options[6].disabled=false;
+      x.options[7].disabled=false;
+    }
+    function select_var()
+    {
+      var var_string = $("#var").val();
+      disable_download_button();
+      if (var_string == "Air Temperature")
+        variable = "ta";
+      else if (var_string == "Specific Humidity")
+        variable = "hus";
+      else if (var_string == "Cloud Ice Water Content")
+        variable = "cli";
+      else if (var_string == "Cloud Liquid Water Content")
+        variable = "clw";
+      else if (var_string == "Ocean Temperature")
+        variable = "ot";
+      else if (var_string == "Ocean Salinity")
+        variable = "os";
+      else if (var_string == "Vertical Wind Velocity")
+        variable = "wap";
+      else if (var_string == "Relative Humidity")
+        variable = "hur";
+    }
+    function select_data()
+    {
+      var data_string = $("#data").val();
+      var x=document.getElementById("var");
+      disable_download_button();
+      reset_vars();
+      if (data_string == "NASA/AIRS") {
+        x.options[0].selected=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "NASA/MLS") {
+        x.options[0].selected=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "ARGO/ARGO") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].selected=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "ECMWF/interim") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].selected=true;
+      }
+      else { 
+        x.options[0].selected=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+      }
+      select_var();
+    }
+    function changeDataSource(){
+      var dataSource = $('#dataSource').text();
+      var x = document.getElementById("data");
+      if(dataSource == "NASA_AIRS" ){
+        x.options[0].selected=true;
+      }
+      else if(dataSource == "NASA_MLS" ){
+        x.options[1].selected=true;
+      }
+      else if(dataSource == "NASA_ARGO" ){
+        x.options[2].selected=true;
+      }
+      else if(dataSource == "CCCMA_CANESM2" ){
+        x.options[3].selected=true;
+      }
+      else if(dataSource == "GFDL_ESM2G" ){
+        x.options[4].selected=true;
+      }
+      else if(dataSource == "GISS_E2-H" ){
+        x.options[5].selected=true;
+      }
+      else if(dataSource == "GISS_E2-R" ){
+        x.options[6].selected=true;
+      }
+      else if(dataSource == "NCAR_CAM5" ){
+        x.options[7].selected=true;
+      }
+      else if(dataSource == "NCC_NORESM" ){
+        x.options[8].selected=true;
+      }
+      else if(dataSource == "UKMO_HadGEM2-ES-A" ){
+        x.options[9].selected=true;
+      }
+      else if(dataSource == "CCCMA_CANAM4" ){
+        x.options[10].selected=true;
+      }
+      else if(dataSource == "CSIRO_MK3.6" ){
+        x.options[11].selected=true;
+      }
+      else if(dataSource == "GFDL_CM3" ){
+        x.options[12].selected=true;
+      }
+      else if(dataSource == "IPSL_CM5A-LR" ){
+        x.options[13].selected=true;
+      }
+      else if(dataSource == "MIROC_MIROC5" ){
+        x.options[14].selected=true;
+      }
+      else if(dataSource == "UKMO_HadGEM2-A" ){
+        x.options[15].selected=true;
+      }
+      else if(dataSource == "ECMWF_interim" ){
+        x.options[16].selected=true;
+      }
+    }
+    function changeVariableName(){
+      var var_string = $('#variableName').text();
+      var x = document.getElementById("var");
+      if (var_string == "ta")
+        x.options[0].selected=true;
+        else if (var_string == "hus")
+          x.options[1].selected=true;
+        else if (var_string == "cli"){
+          x.options[2].selected=true;
+        }else if (var_string == "clw")
+          x.options[3].selected=true;
+        else if (var_string == "ot")
+          x.options[4].selected=true;
+        else if (var_string == "os")
+          x.options[5].selected=true;
+        else if (var_string == "wap")
+          x.options[6].selected=true;
+        else if (var_string == "hur")
+          x.options[7].selected=true;
+    }
+    function select_months()
+    {
+      var s1=document.getElementById("months");
+      disable_download_button();
+      if (s1.selectedIndex == 1) {
+        reset_months();
+      }
+      if (s1.selectedIndex == 0) {
+        select_all_months();
+      }
+      if (s1.selectedIndex == 2) {
+        reset_months();
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+      }
+      if (s1.selectedIndex == 3) {
+        reset_months();
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+      }
+      if (s1.selectedIndex == 4) {
+        reset_months();
+        document.getElementById('Dec').checked = true;
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+      }
+      if (s1.selectedIndex == 5) {
+        reset_months();
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+      }
+    }
+    $(document).ready(function(){
+      $("#download_data").click(function(event) {
+        var durl = $("#data_url").val();
+        window.location.assign(durl);
+      });
+      $("#twodvarmap").click(function(event) {
+       Response = null;
+        disable_download_button();
+        if (no_month_check()) {
+           $("#Response").html("Error: please check at least one month.");
+           $("#Image").html("");
+           return;
+        }
+        $("#Response").html("Calculating ...");
+        $("#data_url").html("Calculating ...");
+        $("#Image").html("");
+        var url = "http://"; + window.location.hostname + 
":9002/svc/twoDimSlice3D?";
+        var d1 = $("#data").val();
+        var model1 = d1.replace("/", "_");
+        var arglist = "";
+        arglist = arglist.concat("model=");
+        arglist = arglist.concat(model1);
+        var v1 = $("#var").val();
+        arglist = arglist.concat("&var=");
+        arglist = arglist.concat(variable);
+        var t0 = $("#t0").val();
+        var t1 = $("#t1").val();
+        t0 = t0.replace("-", "");
+        t1 = t1.replace("-", "");
+        arglist = arglist.concat("&start_time=");
+        arglist = arglist.concat(t0);
+        arglist = arglist.concat("&end_time=");
+        arglist = arglist.concat(t1);
+        var pres = $("#pres").val();
+        if (variable == 'ot' || variable == 'os')
+          pres = pres * 10000;  
+        else
+          pres = pres * 100;  
+        arglist = arglist.concat("&pr=");
+        arglist = arglist.concat(pres);
+        var lon0 = $("#lon0").val();
+        var lon1 = $("#lon1").val();
+        var lat0 = $("#lat0").val();
+        var lat1 = $("#lat1").val();
+        arglist = arglist.concat("&lon1=");
+        arglist = arglist.concat(lon0);
+        arglist = arglist.concat("&lon2=");
+        arglist = arglist.concat(lon1);
+        arglist = arglist.concat("&lat1=");
+        arglist = arglist.concat(lat0);
+        arglist = arglist.concat("&lat2=");
+        arglist = arglist.concat(lat1);
+        var s1 = document.getElementById('months');
+        var month_str = "";
+        var mm = document.getElementById('Jan');
+        if (mm.checked == true)
+          month_str = month_str.concat(",1");
+        var mm = document.getElementById('Feb');
+        if (mm.checked == true)
+          month_str = month_str.concat(",2");
+        var mm = document.getElementById('Mar');
+        if (mm.checked == true)
+          month_str = month_str.concat(",3");
+        var mm = document.getElementById('Apr');
+        if (mm.checked == true)
+          month_str = month_str.concat(",4");
+        var mm = document.getElementById('May');
+        if (mm.checked == true)
+          month_str = month_str.concat(",5");
+        var mm = document.getElementById('Jun');
+        if (mm.checked == true)
+          month_str = month_str.concat(",6");
+        var mm = document.getElementById('Jul');
+        if (mm.checked == true)
+          month_str = month_str.concat(",7");
+        var mm = document.getElementById('Aug');
+        if (mm.checked == true)
+          month_str = month_str.concat(",8");
+        var mm = document.getElementById('Sep');
+        if (mm.checked == true)
+          month_str = month_str.concat(",9");
+        var mm = document.getElementById('Oct');
+        if (mm.checked == true)
+          month_str = month_str.concat(",10");
+        var mm = document.getElementById('Nov');
+        if (mm.checked == true)
+          month_str = month_str.concat(",11");
+        var mm = document.getElementById('Dec');
+        if (mm.checked == true)
+          month_str = month_str.concat(",12");
+        month_str = month_str.substr(1);
+        arglist = arglist.concat("&months=");
+        arglist = arglist.concat(month_str);
+        arglist = arglist.concat("&scale=");
+        var z = document.getElementById("radioLin").checked;
+        if (z == true)
+          arglist = arglist.concat('0');
+        else
+          arglist = arglist.concat('4');
+        var purpose = $("#purpose").val();
+        arglist = arglist.concat("&purpose=");
+        arglist = arglist.concat(purpose);
+        url = url + encodeURI(arglist);
+        var urlTimeBounds = "http://"; + window.location.hostname + 
":9002/svc/time_bounds?";
+        var arglistTB = "";
+        arglistTB = arglistTB.concat("serviceType=");
+        arglistTB = arglistTB.concat("1");
+        arglistTB = arglistTB.concat("&source=");
+        arglistTB = arglistTB.concat(d1);
+        arglistTB = arglistTB.concat("&var=");
+        arglistTB = arglistTB.concat(variable);
+        urlTimeBounds = urlTimeBounds + encodeURI(arglistTB);
+        $.ajax({
+            type: "GET",
+            url: urlTimeBounds,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                var tb = data.time_bounds;
+                var bds = String(tb).split(",");
+                var lowerT = parseInt(bds[0]);
+                var upperT = parseInt(bds[1]);
+                var t0I = parseInt(t0);
+                var t1I = parseInt(t1);
+                if ( lowerT == 0 && upperT ==0 ) {
+                  alert("We do not have data for this source and variable 
configuration.");
+                  return;
+                }
+                if (t0I < lowerT && t1I < lowerT ||
+                    t0I > upperT && t1I > upperT) {
+                  alert("We do not have data that span your time range. Try 
the range inside ["+lowerT+", "+upperT+"].");
+                  return;
+                }
+                if (t0I < lowerT && t1I <= upperT) {
+                  alert("Your start year-month is out of bound. It has to be 
in or later than " + lowerT +
+                        ". We will use the range ["+lowerT+", "+t1I+"] for 
you.");
+                }
+                if (t1I > upperT && t0I >= lowerT) {
+                  alert("Your end year-month is out of bound. It has to be in 
or earlier than " + upperT +
+                        ". We will use the range ["+t0I+", "+upperT+"] for 
you.");
+                }
+                if (t0I < lowerT && t1I > upperT ) {
+                  alert("Both of your start and end year-months are out of 
bounds. They have to be in or earlier than " + upperT +
+                        ", and in or later than " + lowerT + ". We will use 
the range ["+lowerT+", "+upperT+"] for you.");
+                }
+            },
+            error: function(xhr, textStatus, errorThrown) {
+               $("#Response").html("error!");
+               $("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+        $.ajax({
+            type: "GET",
+            url: url,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                $("#Response").html(text);
+                var html1 = "<img src='"+data.url+"' width='680'/>";
+                $("#Image").html(html1);
+                $("#data_url").html(data.dataUrl);
+                enable_download_button();
+            },
+            error: function(xhr, textStatus, errorThrown) {
+               $("#Response").html("error!");
+               $("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+      });
+    });
+  </script>
+} @main("Parameters of ConfId", scripts){ @flash_message()
+<p>
+<div id="dataSource" style="display: none;">@parameters.getDataSource()</div>
+<div id="variableName" style="display: 
none;">@parameters.getVariableName()</div>
+<div id="startYearMonth" style="display: 
none;">@parameters.getStartYearMonth()</div>
+<div id="endYearMonth" style="display: 
none;">@parameters.getEndYearMonth()</div>
+<div id="pressureLevel" style="display: 
none;">@parameters.getPressureLevel()</div>
+<div id="selectMonths" style="display: 
none;">@parameters.getSelectMonths()</div>
+<div id="monthsPara" style="display: none;">@parameters.getMonth()</div>
+<div id="startLat" style="display: none;">@parameters.getStartLat()</div>
+<div id="endLat" style="display: none;">@parameters.getEndLat()</div>
+<div id="startLon" style="display: none;">@parameters.getStartLon()</div>
+<div id="endLon" style="display: none;">@parameters.getEndLon()</div>
+<div id="colorScale" style="display: none;">@parameters.getColorScale()</div>
+<div id="executionPurpose" style="display: 
none;">@parameters.getExecutionPurpose()</div>
+<div id="image" style="display: none;">@parameters.getImage()</div>
+<div id="dataURL" style="display: none;">@parameters.getDataURL()</div>
+<div id="serviceResponseText" style="display: 
none;">@parameters.getServiceResponseText()</div>
+<table border="1" width="800" align="center">
+       <tr>
+               <td colspan="4">
+                       <center>
+                               <b>Service: 3-D Variable 2-D Slice</b><br>
+                               <br> This service generates a slice map of a 
3-dimensional
+                               variable at a selected pressure level. <br> 
Select a data
+                               source, a variable name, a time range, a 
spatial range, and a
+                               pressure level below.<br>
+                               <br>
+                       </center>
+               </td>
+       </tr>
+       <tr>
+               <td>data source:</td>
+               <td><select name="data" , id="data" onchange="select_data()">
+                               <optgroup label="Observation">
+                                       <option 
selected="NASA/AIRS">NASA/AIRS</option>
+                                       <option>NASA/MLS</option>
+                                       <option>ARGO/ARGO</option>
+                               </optgroup>
+                               <optgroup label="Model: Historical">
+                                       <option>CCCMA/CANESM2</option>
+                                       <option>GFDL/ESM2G</option>
+                                       <option>GISS/E2-H</option>
+                                       <option>GISS/E2-R</option>
+                                       <option>NCAR/CAM5</option>
+                                       <option>NCC/NORESM</option>
+                                       <option>UKMO/HadGEM2-ES</option>
+                               </optgroup>
+                               <optgroup label="Model: AMIP">
+                                       <option>CCCMA/CANAM4</option>
+                                       <option>CSIRO/MK3.6</option>
+                                       <option>GFDL/CM3</option>
+                                       <option>IPSL/CM5A-LR</option>
+                                       <option>MIROC/MIROC5</option>
+                                       <option>UKMO/HadGEM2-A</option>
+                               </optgroup>
+                               </optgroup>
+                               <optgroup label="Reanalysis">
+                                       <option>ECMWF/interim</option>
+               </select></td>
+               <td>variable name:</td>
+               <td><select name="var" , id="var" onchange="select_var()">
+                               <option>Air Temperature</option>
+                               <option>Specific Humidity</option>
+                               <option>Cloud Ice Water Content</option>
+                               <option>Cloud Liquid Water Content</option>
+                               <option>Ocean Temperature</option>
+                               <option>Ocean Salinity</option>
+                               <option>Vertical Wind Velocity</option>
+                               <option>Relative Humidity</option>
+               </select></td>
+       </tr>
+       <tr>
+               <td>start year-month:</td>
+               <td><input id="t0" value="2004-01" alt="start" /></td>
+               <td>end year-month:</td>
+               <td><input id="t1" value="2004-12" alt="end" /></td>
+       </tr>
+       <tr>
+               <td>select months:</td>
+               <td><select name="months" id="months" 
onchange="select_months()">
+                               <option id="all">select all</option>
+                               <option id="none">select none</option>
+                               <option id="summer">Summer:Jun-Jul-Aug</option>
+                               <option id="autum">Autumn:Sep-Oct-Nov</option>
+                               <option id="winter">Winter:Dec-Jan-Feb</option>
+                               <option id="spring">Spring:Mar-Apr-May</option>
+               </select></td>
+               <td>atmosphere pressure level (hPa) <br> or ocean pressure
+                       level (dbar)
+               </td>
+               <td><input id="pres" value="500" alt="pressure" /></td>
+       </tr>
+       <tr>
+               <td><label><input type="checkbox" name="option1" id="Jan"
+                               value="Jan" /> Jan<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Feb" value="Feb" /> 
Feb<br></label> <label><input
+                               type="checkbox" name="option1" id="Mar" 
value="Mar" /> Mar<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Apr"
+                               value="Apr" /> Apr<br></label> <label><input 
type="checkbox"
+                               name="option1" id="May" value="May" /> 
May<br></label> <label><input
+                               type="checkbox" name="option1" id="Jun" 
value="Jun" /> Jun<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Jul"
+                               value="Jul" /> Jul<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Aug" value="Aug" /> 
Aug<br></label> <label><input
+                               type="checkbox" name="option1" id="Sep" 
value="Sep" /> Sep<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Oct"
+                               value="Oct" /> Oct<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Nov" value="Nov" /> 
Nov<br></label> <label><input
+                               type="checkbox" name="option1" id="Dec" 
value="Dec" /> Dec<br></label>
+               </td>
+       </tr>
+       <tr>
+               <td>start lat (deg):</td>
+               <td><input id="lat0" value="-90" /></td>
+               <td>end lat (deg):</td>
+               <td><input id="lat1" value="90" /></td>
+       </tr>
+       <tr>
+               <td>start lon (deg):</td>
+               <td><input id="lon0" value="0" /></td>
+               <td>end lon (deg):</td>
+               <td><input id="lon1" value="360" /></td>
+       </tr>
+       <tr>
+               <td colspan="1">color scale:</td>
+               <td colspan="3">
+                       <form>
+                               <input type="radio" name="scale1" 
value="linear" id="radioLin"
+                                       checked>linear <input type="radio" 
name="scale1"
+                                       value="logarithmic" 
id="radioLog">logarithmic
+                       </form>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="1">Execution purpose</td>
+               <td colspan="3">
+                       <form>
+                               <textarea name="purpose" id="purpose" rows="4" 
cols="50"> </textarea>
+                       </form>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="2" align="center"><input id="twodvarmap"
+                       type="submit" value="            Run Again            "
+                       style="height: 28px" /></td>
+               <form>
+                       <td colspan="2" align="center"><input id="download_data"
+                               type="button" value="Download Data" 
style="height: 28px" /></td>
+               </form>
+       </tr>
+       <tr>
+               <td colspan="4">
+                       <div id="Image">Image Here</div>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="4" align="center"><textarea readonly id="data_url"
+                               cols="89" rows="2">Data URL Here</textarea></td>
+       </tr>
+       <tr>
+               <td colspan="4" align="center"><textarea readonly id="Response"
+                               cols="89" rows="6">Service Response Text 
Here</textarea></td>
+       </tr>
+       </p>
+</table>
+}

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/threeDVariableZonalMean.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/threeDVariableZonalMean.scala.html 
b/.target/views/climate/threeDVariableZonalMean.scala.html
new file mode 100644
index 0000000..4ed6e83
--- /dev/null
+++ b/.target/views/climate/threeDVariableZonalMean.scala.html
@@ -0,0 +1,737 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more          
   *
+ * contributor license agreements.  See the NOTICE file distributed with       
   *
+ * this work for additional information regarding copyright ownership.         
*
+ * The ASF licenses this file to You under the Apache License, Version 2.0     
*
+ * (the "License"); you may not use this file except in compliance with        
*
+ * the License.  You may obtain a copy of the License at                       
*
+ *                                                                             
*
+ *    http://www.apache.org/licenses/LICENSE-2.0                               
*
+ *                                                                             
                                                                           *
+ * Unless required by applicable law or agreed to in writing, software         
*
+ * distributed under the License is distributed on an "AS IS" BASIS,           
*
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    
*
+ * See the License for the specific language governing permissions and         
*
+ * limitations under the License.                                              
                                           *
+ 
*******************************************************************************@
 
+
+@(parameters: metadata.ThreeDVarZonalMean) @import helper._
+<link rel="stylesheet"
+       href='@routes.Assets.at("stylesheets/livefitler.css")'>
+@scripts = {
+<script src='@routes.Assets.at("javascripts/edit_button.js")'></script>
+<script src='@routes.Assets.at("javascripts/livefilter.js")'></script>
+<script type="text/javascript"
+       src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script>
+<script type="text/javascript"
+       
src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js";></script>
+<script type="
+       text/javascript"
+       src='@routes.Assets.at("javascripts/json2.js")'></script>
+<script type="text/javascript"
+       src='@routes.Assets.at("javascripts/xmisc.js")'></script>
+<script type="text/javascript">
+       var Response = null;
+    var variable = "";
+    window.onload = function() {
+      changeMonths();
+      changeDataSource();
+      select_data();
+      changeVariableName();
+      select_var();
+      enable_download_button();
+      $('#t0').val($('#startYearMonth').text());
+      $('#t1').val($('#endYearMonth').text());
+      $('#pres').val($('#pressureRange').text());
+      $('#lat0').val($('#startLat').text());
+      $('#lat1').val($('#endLat').text());
+      $('#purpose').html($('#executionPurpose').text());
+      var imageUrl = $('#image').text();
+      $('#Image').html('<img src="'+imageUrl+'" width=680 />');
+      $('#data_url').html($('#dataURL').text());
+      $('#Response').html($('serviceResponseText').text());
+      var pressureLvlScale = $('#pressureLevelScale').text();
+      if(pressureLvlScale == "0") {
+        $('#radioLin').prop( "checked", true );
+        $('#radioLog').prop( "checked", false );
+      }
+      else {
+        $('#radioLin').prop( "checked", false );
+        $('#radioLog').prop( "checked", true );
+      }
+      var colorScale = $('#colorScale').text();
+      if(colorScale == "0") {
+        $('#radioLin2').prop("checked", true);
+        $('#radioLog2').prop("checked", false);
+      }
+      else {
+        $('#radioLin2').prop("checked", false);
+        $('#radioLog2').prop("checked", true);
+      }
+    }
+    function disable_download_button()
+    {
+      var x=document.getElementById("download_data");
+      x.disabled=true;
+    }
+    function enable_download_button()
+    {
+      var x=document.getElementById("download_data");
+      x.disabled=false;
+    }
+    function changeMonths(){
+      var months = $("#monthsPara").text();
+      var temp = months.split(", ");
+      for(i = 0;i < temp.length;i ++){
+        if(temp[i] == 'jan'){
+          document.getElementById('Jan').checked = true;
+        }else if(temp[i] == 'feb'){
+          document.getElementById('Feb').checked = true;
+        }else if(temp[i] == 'mar'){
+          document.getElementById('Mar').checked = true;
+        }else if(temp[i] == 'apr'){
+          document.getElementById('Apr').checked = true;
+        }else if(temp[i] == 'may'){
+          document.getElementById('May').checked = true;
+        }else if(temp[i] == 'jun'){
+          document.getElementById('Jun').checked = true;
+        }else if(temp[i] == 'jul'){
+          document.getElementById('Jul').checked = true;
+        }else if(temp[i] == 'aug'){
+          document.getElementById('Aug').checked = true;
+        }else if(temp[i] == 'sep'){
+          document.getElementById('Sep').checked = true;
+        }else if(temp[i] == 'oct'){
+          document.getElementById('Oct').checked = true;
+        }else if(temp[i] == 'nov'){
+          document.getElementById('Nov').checked = true;
+        }else if(temp[i] == 'dec'){
+          document.getElementById('Dec').checked = true;
+        }
+      }
+    }
+    function select_all_months()
+    {
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+        document.getElementById('Dec').checked = true;
+    }
+    function no_month_check()
+    {
+        if (document.getElementById('Jan').checked == false &&
+           document.getElementById('Feb').checked == false &&
+           document.getElementById('Mar').checked == false &&
+           document.getElementById('Apr').checked == false &&
+           document.getElementById('May').checked == false &&
+           document.getElementById('Jun').checked == false &&
+           document.getElementById('Jul').checked == false &&
+           document.getElementById('Aug').checked == false &&
+           document.getElementById('Sep').checked == false &&
+           document.getElementById('Oct').checked == false &&
+           document.getElementById('Nov').checked == false &&
+           document.getElementById('Dec').checked == false) {
+           return true;
+          }
+        else
+           return false;
+    }
+    function reset_months()
+    {
+        document.getElementById('Jan').checked = false;
+        document.getElementById('Feb').checked = false;
+        document.getElementById('Mar').checked = false;
+        document.getElementById('Apr').checked = false;
+        document.getElementById('May').checked = false;
+        document.getElementById('Jun').checked = false;
+        document.getElementById('Jul').checked = false;
+        document.getElementById('Aug').checked = false;
+        document.getElementById('Sep').checked = false;
+        document.getElementById('Oct').checked = false;
+        document.getElementById('Nov').checked = false;
+        document.getElementById('Dec').checked = false;
+    }
+    function reset_vars()
+    {
+      var x=document.getElementById("var");
+      x.options[0].disabled=false;
+      x.options[1].disabled=false;
+      x.options[2].disabled=false;
+      x.options[3].disabled=false;
+      x.options[4].disabled=false;
+      x.options[5].disabled=false;
+      x.options[6].disabled=false;
+      x.options[7].disabled=false;
+    }
+    function select_var()
+    {
+      var var_string = $("#var").val();
+      disable_download_button();
+      if (var_string == "Air Temperature")
+        variable = "ta";
+      else if (var_string == "Specific Humidity")
+        variable = "hus";
+      else if (var_string == "Cloud Ice Water Content")
+        variable = "cli";
+      else if (var_string == "Cloud Liquid Water Content")
+        variable = "clw";
+      else if (var_string == "Ocean Temperature")
+        variable = "ot";
+      else if (var_string == "Ocean Salinity")
+        variable = "os";
+      else if (var_string == "Vertical Wind Velocity")
+        variable = "wap";
+      else if (var_string == "Relative Humidity")
+        variable = "hur";
+    }
+    function select_data()
+    {
+      var data_string = $("#data").val();
+      var x=document.getElementById("var");
+      disable_download_button();
+      reset_vars();
+      if (data_string == "NASA/AIRS") {
+        x.options[0].selected=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "NASA/MLS") {
+        x.options[0].selected=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "ARGO/ARGO") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].selected=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+      }
+      else if (data_string == "ECMWF/interim") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].selected=true;
+      }
+      else {
+        x.options[0].selected=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+      }
+      select_var();
+    }
+    function changeDataSource(){
+      var dataSource = $('#dataSource').text();
+      var x = document.getElementById("data");
+      if(dataSource == "NASA_AIRS" ){
+        x.options[0].selected=true;
+      }
+      else if(dataSource == "NASA_MLS" ){
+        x.options[1].selected=true;
+      }
+      else if(dataSource == "ARGO_ARGO" ){
+        x.options[2].selected=true;
+      }
+      else if(dataSource == "CCCMA_CANESM2" ){
+        x.options[3].selected=true;
+      }
+      else if(dataSource == "GFDL_ESM2G" ){
+        x.options[4].selected=true;
+      }
+      else if(dataSource == "GISS_E2-H" ){
+        x.options[5].selected=true;
+      }
+      else if(dataSource == "GISS_E2-R" ){
+        x.options[6].selected=true;
+      }
+      else if(dataSource == "NCAR_CAM5" ){
+        x.options[7].selected=true;
+      }
+      else if(dataSource == "NCC_NORESM" ){
+        x.options[8].selected=true;
+      }
+      else if(dataSource == "UKMO_HadGEM2-ES-A" ){
+        x.options[9].selected=true;
+      }
+      else if(dataSource == "CCCMA_CANAM4" ){
+        x.options[10].selected=true;
+      }
+      else if(dataSource == "CSIRO_MK3.6" ){
+        x.options[11].selected=true;
+      }
+      else if(dataSource == "GFDL_CM3" ){
+        x.options[12].selected=true;
+      }
+      else if(dataSource == "IPSL_CM5A-LR" ){
+        x.options[13].selected=true;
+      }
+      else if(dataSource == "MIROC_MIROC5" ){
+        x.options[14].selected=true;
+      }
+      else if(dataSource == "UKMO_HadGEM2-A" ){
+        x.options[15].selected=true;
+      }
+      else if(dataSource == "ECMWF_interim" ){
+        x.options[16].selected=true;
+      }
+    }
+    function changeVariableName(){
+      var var_string = $('#variableName').text();
+      var x = document.getElementById("var");
+      if (var_string == "ta")
+        x.options[0].selected=true;
+        else if (var_string == "hus")
+          x.options[1].selected=true;
+        else if (var_string == "cli"){
+          x.options[2].selected=true;
+        }else if (var_string == "clw")
+          x.options[3].selected=true;
+        else if (var_string == "ot")
+          x.options[4].selected=true;
+        else if (var_string == "os")
+          x.options[5].selected=true;
+        else if (var_string == "wap")
+          x.options[6].selected=true;
+        else if (var_string == "hur")
+          x.options[7].selected=true;
+    }
+    function select_months()
+    {
+      var s1=document.getElementById("months");
+      disable_download_button();
+      if (s1.selectedIndex == 1) {
+        reset_months();
+      }
+      if (s1.selectedIndex == 0) {
+        select_all_months();
+      }
+      if (s1.selectedIndex == 2) {
+        reset_months();
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+      }
+      if (s1.selectedIndex == 3) {
+        reset_months();
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+      }
+      if (s1.selectedIndex == 4) {
+        reset_months();
+        document.getElementById('Dec').checked = true;
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+      }
+      if (s1.selectedIndex == 5) {
+        reset_months();
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+      }
+    }
+    $(document).ready(function(){
+      $("#download_data").click(function(event) {
+        var durl = $("#data_url").val();
+        window.location.assign(durl);
+      });
+      $("#threedvarzonalmean").click(function(event) {
+       Response = null;
+        disable_download_button();
+        if (no_month_check()) {
+           $("#Response").html("Error: please check at least one month.");
+           $("#Image").html("");
+           return;
+        }
+        $("#Response").html("Calculating ...");
+        $("#data_url").html("Calculating ...");
+        $("#Image").html("");
+        var url = "http://"; + window.location.hostname + 
":9002/svc/threeDimZonalMean?";
+        var d1 = $("#data").val();
+        var model1 = d1.replace("/", "_");
+        var arglist = "";
+        arglist = arglist.concat("model=");
+        arglist = arglist.concat(model1);
+        var v1 = $("#var").val();
+        arglist = arglist.concat("&var=");
+        arglist = arglist.concat(variable);
+        var t0 = $("#t0").val();
+        var t1 = $("#t1").val();
+        t0 = t0.replace("-", "");
+        t1 = t1.replace("-", "");
+        arglist = arglist.concat("&start_time=");
+        arglist = arglist.concat(t0);
+        arglist = arglist.concat("&end_time=");
+        arglist = arglist.concat(t1);
+        var lat0 = $("#lat0").val();
+        var lat1 = $("#lat1").val();
+        arglist = arglist.concat("&lat1=");
+        arglist = arglist.concat(lat0);
+        arglist = arglist.concat("&lat2=");
+        arglist = arglist.concat(lat1);
+        var pres = $("#pres").val();
+        var splitty = pres.split(',');
+        if (splitty.length != 2) {
+          alert("pressure level range needs to be two values separated by 
comma.");
+          return;
+        }
+        else {
+          pres1 = splitty[0];
+          pres2 = splitty[1];
+          if (variable == 'ot' || variable == 'os') {
+            pres1 = pres1 * 10000;  
+            pres2 = pres2 * 10000;  
+          }
+          else {
+            pres1 = pres1 * 100;  
+            pres2 = pres2 * 100;  
+          }
+        }
+        arglist = arglist.concat("&pres1=");
+        arglist = arglist.concat(pres1);
+        arglist = arglist.concat("&pres2=");
+        arglist = arglist.concat(pres2);
+        var s1 = document.getElementById('months');
+        var month_str = "";
+        var mm = document.getElementById('Jan');
+        if (mm.checked == true)
+          month_str = month_str.concat(",1");
+        var mm = document.getElementById('Feb');
+        if (mm.checked == true)
+          month_str = month_str.concat(",2");
+        var mm = document.getElementById('Mar');
+        if (mm.checked == true)
+          month_str = month_str.concat(",3");
+        var mm = document.getElementById('Apr');
+        if (mm.checked == true)
+          month_str = month_str.concat(",4");
+        var mm = document.getElementById('May');
+        if (mm.checked == true)
+          month_str = month_str.concat(",5");
+        var mm = document.getElementById('Jun');
+        if (mm.checked == true)
+          month_str = month_str.concat(",6");
+        var mm = document.getElementById('Jul');
+        if (mm.checked == true)
+          month_str = month_str.concat(",7");
+        var mm = document.getElementById('Aug');
+        if (mm.checked == true)
+          month_str = month_str.concat(",8");
+        var mm = document.getElementById('Sep');
+        if (mm.checked == true)
+          month_str = month_str.concat(",9");
+        var mm = document.getElementById('Oct');
+        if (mm.checked == true)
+          month_str = month_str.concat(",10");
+        var mm = document.getElementById('Nov');
+        if (mm.checked == true)
+          month_str = month_str.concat(",11");
+        var mm = document.getElementById('Dec');
+        if (mm.checked == true)
+          month_str = month_str.concat(",12");
+        month_str = month_str.substr(1);
+        arglist = arglist.concat("&months=");
+        arglist = arglist.concat(month_str);
+        arglist = arglist.concat("&scale=");
+        var y = document.getElementById("radioLin").checked;
+        var yval;
+        var z = document.getElementById("radioLin2").checked;
+        var zval;
+        if (y == true)
+          yval = 0;
+        else
+          yval = 2;
+        if (z == true)
+          zval = 0;
+        else
+          zval = 4;
+        var scale1 =  yval + zval;
+        var scale1_str =  scale1.toString();
+        arglist = arglist.concat(scale1_str);
+        var purpose = $("#purpose").val();
+        arglist = arglist.concat("&purpose=");
+        arglist = arglist.concat(purpose);
+        url = url + encodeURI(arglist);
+        var urlTimeBounds = "http://"; + window.location.hostname + 
":9002/svc/time_bounds?";
+        var arglistTB = "";
+        arglistTB = arglistTB.concat("serviceType=");
+        arglistTB = arglistTB.concat("1");
+        arglistTB = arglistTB.concat("&source=");
+        arglistTB = arglistTB.concat(d1);
+        arglistTB = arglistTB.concat("&var=");
+        arglistTB = arglistTB.concat(variable);
+        urlTimeBounds = urlTimeBounds + encodeURI(arglistTB);
+        $.ajax({
+            type: "GET",
+            url: urlTimeBounds,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                var tb = data.time_bounds;
+                var bds = String(tb).split(",");
+                var lowerT = parseInt(bds[0]);
+                var upperT = parseInt(bds[1]);
+                var t0I = parseInt(t0);
+                var t1I = parseInt(t1);
+                if ( lowerT == 0 && upperT ==0 ) {
+                  alert("We do not have data for this source and variable 
configuration.");
+                  return;
+                }
+                if (t0I < lowerT && t1I < lowerT ||
+                    t0I > upperT && t1I > upperT) {
+                  alert("We do not have data that span your time range. Try 
the range inside ["+lowerT+", "+upperT+"].");
+                  return;
+                }
+                if (t0I < lowerT && t1I <= upperT) {
+                  alert("Your start year-month is out of bound. It has to be 
in or later than " + lowerT +
+                        ". We will use the range ["+lowerT+", "+t1I+"] for 
you.");
+                }
+                if (t1I > upperT && t0I >= lowerT) {
+                  alert("Your end year-month is out of bound. It has to be in 
or earlier than " + upperT +
+                        ". We will use the range ["+t0I+", "+upperT+"] for 
you.");
+                }
+                if (t0I < lowerT && t1I > upperT ) {
+                  alert("Both of your start and end year-months are out of 
bounds. They have to be in or earlier than " + upperT +
+                        ", and in or later than " + lowerT + ". We will use 
the range ["+lowerT+", "+upperT+"] for you.");
+                }
+            },
+            error: function(xhr, textStatus, errorThrown) {
+               $("#Response").html("error!");
+               $("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+        $.ajax({
+            type: "GET",
+            url: url,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                $("#Response").html(text);
+                var html1 = "<img src='"+data.url+"' width='680'/>";
+                $("#Image").html(html1);
+                $("#data_url").html(data.dataUrl);
+                enable_download_button();
+            },
+            error: function(xhr, textStatus, errorThrown) {
+               $("#Response").html("error!");
+                $("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+      });
+    });
+  </script>
+} @main("Parameters of ConfId", scripts){ @flash_message()
+<p>
+<div id="dataSource" style="display: none;">@parameters.getDataSource()</div>
+<div id="variableName" style="display: 
none;">@parameters.getVariableName()</div>
+<div id="startYearMonth" style="display: 
none;">@parameters.getStartYearMonth()</div>
+<div id="endYearMonth" style="display: 
none;">@parameters.getEndYearMonth()</div>
+<div id="selectMonths" style="display: 
none;">@parameters.getSelectMonths()</div>
+<div id="pressureRange" style="display: 
none;">@parameters.getPressureRange()</div>
+<div id="monthsPara" style="display: none;">@parameters.getMonth()</div>
+<div id="startLat" style="display: none;">@parameters.getStartLat()</div>
+<div id="endLat" style="display: none;">@parameters.getEndLat()</div>
+<div id="pressureLevelScale" style="display: 
none;">@parameters.getPressureScale()</div>
+<div id="colorScale" style="display: none;">@parameters.getColorScale()</div>
+<div id="executionPurpose" style="display: 
none;">@parameters.getExecutionPurpose()</div>
+<div id="image" style="display: none;">@parameters.getImage()</div>
+<div id="dataURL" style="display: none;">@parameters.getDataURL()</div>
+<div id="serviceResponseText" style="display: 
none;">@parameters.getServiceResponseText()</div>
+<table border="1" WIDTH="800" align="center">
+       <tr>
+               <td colspan="4">
+                       <center>
+                               <b>Service: 3-D Variable Zonal Mean</b> <br>
+                               <br> This service generates a contour plot of 
zonal-mean
+                               vertical profiles of a 3-dimensional variable. 
<br> Select a
+                               data source, a variable name, a time range, and 
a pressure range
+                               below.<br>
+                               <br>
+                       </center>
+               </td>
+       </tr>
+       <tr>
+               <td>data source:</td>
+               <td><select name="data" , id="data" onchange="select_data()">
+                               <optgroup label="Observation">
+                                       <option 
selected="NASA/AIRS">NASA/AIRS</option>
+                                       <option>NASA/MLS</option>
+                                       <option>ARGO/ARGO</option>
+                               </optgroup>
+                               <optgroup label="Model: Historical">
+                                       <option>CCCMA/CANESM2</option>
+                                       <option>GFDL/ESM2G</option>
+                                       <option>GISS/E2-H</option>
+                                       <option>GISS/E2-R</option>
+                                       <option>NCAR/CAM5</option>
+                                       <option>NCC/NORESM</option>
+                                       <option>UKMO/HadGEM2-ES</option>
+                               </optgroup>
+                               <optgroup label="Model: AMIP">
+                                       <option>CCCMA/CANAM4</option>
+                                       <option>CSIRO/MK3.6</option>
+                                       <option>GFDL/CM3</option>
+                                       <option>IPSL/CM5A-LR</option>
+                                       <option>MIROC/MIROC5</option>
+                                       <option>UKMO/HadGEM2-A</option>
+                               </optgroup>
+                               <optgroup label="Reanalysis">
+                                       <option>ECMWF/interim</option>
+               </select></td>
+               <td>variable name:</td>
+               <td><select name="var" , id="var" onchange="select_var()">
+                               <option>Air Temperature</option>
+                               <option>Specific Humidity</option>
+                               <option>Cloud Ice Water Content</option>
+                               <option>Cloud Liquid Water Content</option>
+                               <option>Ocean Temperature</option>
+                               <option>Ocean Salinity</option>
+                               <option>Vertical Wind Velocity</option>
+                               <option>Relative Humidity</option>
+               </select></td>
+       </tr>
+       <tr>
+               <td>start year-month:</td>
+               <td><input id="t0" value="2004-01" alt="start" /></td>
+               <td>end year-month:</td>
+               <td><input id="t1" value="2004-12" alt="end" /></td>
+       </tr>
+       <tr>
+               <td>select months:</td>
+               <td><select name="months" id="months" 
onchange="select_months()">
+                               <option id="all">select all</option>
+                               <option id="none">select none</option>
+                               <option id="summer">Summer:Jun-Jul-Aug</option>
+                               <option id="autum">Autumn:Sep-Oct-Nov</option>
+                               <option id="winter">Winter:Dec-Jan-Feb</option>
+                               <option id="spring">Spring:Mar-Apr-May</option>
+               </select></td>
+               <td>atmosphere pressure range (hPa) <br> or ocean pressure
+                       range (dbar):
+               </td>
+               <td><input id="pres" value="200,900" alt="pressure" /></td>
+       </tr>
+       <tr>
+               <td><label><input type="checkbox" name="option1" id="Jan"
+                               value="Jan" /> Jan<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Feb" value="Feb" /> 
Feb<br></label> <label><input
+                               type="checkbox" name="option1" id="Mar" 
value="Mar" /> Mar<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Apr"
+                               value="Apr" /> Apr<br></label> <label><input 
type="checkbox"
+                               name="option1" id="May" value="May" /> 
May<br></label> <label><input
+                               type="checkbox" name="option1" id="Jun" 
value="Jun" /> Jun<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Jul"
+                               value="Jul" /> Jul<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Aug" value="Aug" /> 
Aug<br></label> <label><input
+                               type="checkbox" name="option1" id="Sep" 
value="Sep" /> Sep<br></label>
+               </td>
+               <td><label><input type="checkbox" name="option1" id="Oct"
+                               value="Oct" /> Oct<br></label> <label><input 
type="checkbox"
+                               name="option1" id="Nov" value="Nov" /> 
Nov<br></label> <label><input
+                               type="checkbox" name="option1" id="Dec" 
value="Dec" /> Dec<br></label>
+               </td>
+       </tr>
+       <tr>
+               <td>start lat (deg):</td>
+               <td><input id="lat0" value="-90" /></td>
+               <td>end lat (deg):</td>
+               <td><input id="lat1" value="90" /></td>
+       </tr>
+       <tr>
+               <td colspan="1">pressure level scale:</td>
+               <td colspan="1">
+                       <form>
+                               <input type="radio" name="scale1" 
value="linear" id="radioLin">linear
+                               <input type="radio" name="scale1" 
value="logarithmic" id="radioLog"
+                                       checked>logarithmic
+                       </form>
+               </td>
+               <td colspan="1">color scale:</td>
+               <td colspan="1">
+                       <form>
+                               <input type="radio" name="scale2" 
value="linear" id="radioLin2"
+                                       checked>linear <input type="radio" 
name="scale2"
+                                       value="logarithmic" 
id="radioLog2">logarithmic
+                       </form>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="1">Execution purpose</td>
+               <td colspan="3">
+                       <form>
+                               <textarea name="purpose" id="purpose" rows="4" 
cols="50"> </textarea>
+                       </form>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="2" align="center"><input id="threedvarzonalmean"
+                       type="submit" value="            Run  Again            "
+                       style="height: 28px" /></td>
+               <form>
+                       <td colspan="2" align="center"><input id="download_data"
+                               type="button" value="Download Data" 
style="height: 28px" /></td>
+               </form>
+       </tr>
+       <tr>
+               <td colspan="4">
+                       <div id="Image">Image Here</div>
+               </td>
+       </tr>
+       <tr>
+               <td colspan="4" align="center"><textarea readonly id="data_url"
+                               cols="89" rows="2">Data URL Here</textarea></td>
+       </tr>
+       <tr>
+               <td colspan="4" align="center"><textarea readonly id="Response"
+                               cols="89" rows="6">Service Response Text 
Here</textarea></td>
+       </tr>
+       </p>
+</table>
+}

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/tutorial.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/tutorial.scala.html 
b/.target/views/climate/tutorial.scala.html
new file mode 100644
index 0000000..f515cac
--- /dev/null
+++ b/.target/views/climate/tutorial.scala.html
@@ -0,0 +1,42 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more          
   *
+ * contributor license agreements.  See the NOTICE file distributed with       
   *
+ * this work for additional information regarding copyright ownership.         
*
+ * The ASF licenses this file to You under the Apache License, Version 2.0     
*
+ * (the "License"); you may not use this file except in compliance with        
*
+ * the License.  You may obtain a copy of the License at                       
*
+ *                                                                             
*
+ *    http://www.apache.org/licenses/LICENSE-2.0                               
*
+ *                                                                             
                                                                           *
+ * Unless required by applicable law or agreed to in writing, software         
*
+ * distributed under the License is distributed on an "AS IS" BASIS,           
*
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    
*
+ * See the License for the specific language governing permissions and         
*
+ * limitations under the License.                                              
                                           *
+ 
*******************************************************************************@
 
+
+@main("Tutorial") {
+
+<ol class="breadcrumb">
+       <li class="active">Tutorial</li>
+       <li><a href="/estimator">Collect Data</a></li>
+       <li><a href="/estimator/1">Input Preference</a></li>
+       <li><a href="/estimator/2">Workflow Summary</a></li>
+       <li><a href="/estimator/3">Recommendation</a></li>
+</ol>
+
+<iframe width="550" height="315" 
src="https://www.youtube.com/embed/t9tgr3I2d5g"; frameborder="0" 
allowfullscreen></iframe>
+<iframe width="550" height="315" style="margin-left: 25px" 
src="https://www.youtube.com/embed/tftPn4YQbVE"; frameborder="0" 
allowfullscreen></iframe>
+
+<p>
+In these videos, we will help you learn the available web services, how to use 
them, and help you to design your climate analytics workflows.
+
+<!-- <ul>
+<li>Run vistrails. (python VISTRAILS_PATH/vistrails/vistrails.py)</li>
+<li>Import a workflow.</li>
+<li>Click the menu Packages, and then Amazon Plugin. Inside that choose the 
'Go to estimator'</li>
+<li>Input the notification email and click Estimate. Then you can be directed 
to the estimator web page.</li>
+</ul> -->
+</p>
+
+}
\ No newline at end of file

Reply via email to