cdm/src/main/java/ucar/unidata/geoloc/vertical/OceanS.java
private ArrayDouble.D3 makeHeight(Array eta, Array s, Array depth, Array c, double depth_c) {
    int nz = (int) s.getSize();
    Index sIndex = s.getIndex();
    Index cIndex = c.getIndex();

    int[] shape2D = eta.getShape();
    int ny = shape2D[0];
    int nx = shape2D[1];
    Index etaIndex = eta.getIndex();
    Index depthIndex = depth.getIndex();

    ArrayDouble.D3 height = new ArrayDouble.D3(nz, ny, nx);

    for (int z = 0; z < nz; z++) {
      double sz = s.getDouble(sIndex.set(z));
      double cz = c.getDouble(cIndex.set(z));

      double term1 = depth_c * sz;

      for (int y = 0; y < ny; y++) {
        for (int x = 0; x < nx; x++) {
          //-sachin 03/23/09  modifications according to corrected equation.
          double fac1 = depth.getDouble(depthIndex.set(y, x));
          double term2 = (fac1 - depth_c) * cz;

          double Sterm = term1 + term2;

          double term3 = eta.getDouble(etaIndex.set(y, x));
          double term4 = 1 + Sterm / fac1;
          double hterm = Sterm + term3 * term4;

          height.set(z, y, x, hterm);

        }
      }
    }

    return height;
  }
private ArrayDouble.D3 makeHeight(Array eta, Array s, Array depth, Array c, double depth_c) {
    int nz = (int) s.getSize();
    Index sIndex = s.getIndex();
    Index cIndex = c.getIndex();

    int[] shape2D = eta.getShape();
    int ny = shape2D[0];
    int nx = shape2D[1];
    Index etaIndex = eta.getIndex();
    Index depthIndex = depth.getIndex();

    ArrayDouble.D3 height = new ArrayDouble.D3(nz, ny, nx);

    for (int z = 0; z < nz; z++) {
      double sz = s.getDouble(sIndex.set(z));
      double cz = c.getDouble(cIndex.set(z));

      double term1 = depth_c * sz;

      for (int y = 0; y < ny; y++) {
        for (int x = 0; x < nx; x++) {
          //-sachin 03/23/09  modifications according to corrected equation.
          double fac1 = depth.getDouble(depthIndex.set(y, x));
          double term2 = (fac1 - depth_c) * cz;

          double Sterm = term1 + term2;

          double term3 = eta.getDouble(etaIndex.set(y, x));
          double term4 = 1 + Sterm / fac1;
          double hterm = Sterm + term3 * term4;

          height.set(z, y, x, hterm);

        }
      }
    }

    return height;
  }
private ArrayDouble . D3 makeHeight ( Array eta , Array s , Array depth , Array c , double depth_c ) { int nz = ( int ) s . getSize ( ) ; Index sIndex = s . getIndex ( ) ; Index cIndex = c . getIndex ( ) ; int [ ] shape2D = eta . getShape ( ) ; int ny = shape2D [ 0 ] ; int nx = shape2D [ 1 ] ; Index etaIndex = eta . getIndex ( ) ; Index depthIndex = depth . getIndex ( ) ; ArrayDouble . D3 height = new ArrayDouble . D3 ( nz , ny , nx ) ; for ( int z = 0 ; z < nz ; z ++ ) { double sz = s . getDouble ( sIndex . set ( z ) ) ; double cz = c . getDouble ( cIndex . set ( z ) ) ; double term1 = depth_c * sz ; for ( int y = 0 ; y < ny ; y ++ ) { for ( int x = 0 ; x < nx ; x ++ ) { //-sachin 03/23/09  modifications according to corrected equation.
 double fac1 = depth . getDouble ( depthIndex . set ( y , x ) ) ; double term2 = ( fac1 - depth_c ) * cz ; double Sterm = term1 + term2 ; double term3 = eta . getDouble ( etaIndex . set ( y , x ) ) ; double term4 = 1 + Sterm / fac1 ; double hterm = Sterm + term3 * term4 ; height . set ( z , y , x , hterm ) ; } } } return height ; }
Make height from the given data. <br>
old equationn:  height(x,y,z) = eta(x,y)*(1+s(z)) + depth_c*s(z) + (depth(x,y)-depth_c)*C(z)
<p/>
<p/>
/* -sachin 03/23/09
The new corrected equation according to Hernan Arango (Rutgers)
height(x,y,z) =  S(x,y,z) + eta(x,y) * (1 + S(x,y,z) / depth(x,y) )
<p/>
where,
S(x,y,z) = depth_c*s(z) + (depth(x,y)-depth_c)*C(z)
/

@param eta     eta Array
@param s       s Array
@param depth   depth Array
@param c       c Array
@param depth_c value of depth_c
@return hieght data
Make height from the given data . <br > old equationn : height ( x y z ) = eta ( x y ) * ( 1 + s ( z )) + depth_c * s ( z ) + ( depth ( x y ) - depth_c ) * C ( z ) <p / > <p / > / * - sachin 03 / 23 / 09 The new corrected equation according to Hernan Arango ( Rutgers ) height ( x y z ) = S ( x y z ) + eta ( x y ) * ( 1 + S ( x y z ) / depth ( x y ) ) <p / > where S ( x y z ) = depth_c * s ( z ) + ( depth ( x y ) - depth_c ) * C ( z ) /