<p><b>sprice@lanl.gov</b> 2011-07-14 17:04:48 -0600 (Thu, 14 Jul 2011)</p><p>branch commit (land ice): More work on ice sheet mesh creation using altered version of basin.F. Still not working.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/land_ice/icesheet/src/icesheet.F
===================================================================
--- branches/land_ice/icesheet/src/icesheet.F        2011-07-14 15:23:34 UTC (rev 921)
+++ branches/land_ice/icesheet/src/icesheet.F        2011-07-14 23:04:48 UTC (rev 922)
@@ -1072,7 +1072,7 @@
 implicit none
 real (kind=4), allocatable, dimension(:) :: x,y, work_kmt
 !real (kind=4), allocatable, dimension(:,:) :: ztopo  
-real (kind=4), allocatable, dimension(:,:) :: thk  
+real (kind=4), allocatable, dimension(:,:) :: thck  
 integer :: nx, ny, inx, iny, ix, iy
 !real :: pi, dtr, zdata, rlon, rlat, r, ymin, ymax, xmin, xmax
 real :: pi, dtr, thkdata, rlon, rlat, r, ymin, ymax, xmin, xmax
@@ -1124,8 +1124,10 @@
 endif
 
 if(real_bathymetry) then
-    nx = 301  
-    ny = 561
+!    nx = 301        ! 5 km  
+!    ny = 561
+    nx = 76         ! 20 km  
+    ny = 141
     allocate(x(nx))
     allocate(y(ny))
 !    allocate(ztopo(nx,ny))
@@ -1135,10 +1137,10 @@
 
 !    allocate(lon(nx,ny))
 !    allocate(lat(nx,ny))
-    allocate(thk(nx,ny))
+    allocate(thck(nx,ny))
 !    lon = 0.0
 !    lat = 0.0
-    thk = 0.0
+    thck = 0.0
 
 
     call read_topo_init( inx, iny)
@@ -1146,13 +1148,16 @@
     if(inx.ne.nx) stop ' nx topo'
     if(iny.ne.ny) stop ' ny topo'
 
-    call read_topo_fields(x,y,thk)
+    call read_topo_fields(x,y,thck)
 
     call read_topo_finalize()
+    print *, 'min(x,y,thck), max(x,y,thck), val(x,y,thck) at 1,1'
     write(6,*) minval(x), maxval(x), x(1)
     write(6,*) minval(y), maxval(y), y(1)
-    write(6,*) minval(thk), maxval(thk), thk(1,1)
+    write(6,*) minval(thck), maxval(thck), thck(1,1)
 
+    pause
+
     do iCell=1,nCells
 
 !        ! calc. relative lat/lon
@@ -1169,39 +1174,41 @@
 !        ix = max(1,ix); ix = min(nx,ix)
 !        iy = max(1,iy); iy = min(ny,iy)
 
-        ix = xCell(iCell) / 5.0d3
-        ix = int( ix )
-        iy = yCell(iCell) / 5.0d3
-        iy = int( iy )
+        ix = nint( xCell(iCell) / 20.0d3 )
+        iy = nint( yCell(iCell) / 20.0d3 )
 
         print *, 'xCell(iCell)', xCell(iCell)
-        print *, 'ix', ix 
         print *, 'yCell(iCell)', yCell(iCell)
-        print *, 'iy', iy 
+        print *, 'ix,iy = ', ix,iy 
 
-        thkdata = thk(ix,iy)
+        !do i=1:nx; do j=1:ny
 
+        thkdata = thck(ix,iy)
+        print *, 'x1(ix,iy) = ', x(ix) 
+        print *, 'y1(ix,iy) = ', y(iy) 
+        print *, 'thck(ix,iy) = ', thkdata
+
         if(thkdata .gt. 0)then
            kmt(iCell) = nVertLevelsMod
-!        elseif( thkdata .eq. 0)then
-!           kmt(iCell) = 0
+        elseif( thkdata .eq. 0)then
+           kmt(iCell) = 0
         endif
 
     enddo
 
-!    ! output no. of cells removed
-!    allocate(work_kmt(nCells))
-!    work_kmt = 0.0
-!    where(kmt.eq.0) work_kmt=1.0
-!    write(6,*) 'number of cells culled ',sum(work_kmt)
-!    deallocate(work_kmt)
+    ! output no. of cells removed
+    allocate(work_kmt(nCells))
+    work_kmt = 0.0
+    where(kmt.eq.0) work_kmt=1.0
+    write(6,*) 'number of cells culled ',sum(work_kmt)
+    deallocate(work_kmt)
 
     deallocate(x)
     deallocate(y)
-    deallocate(thk)
+    deallocate(thck)
 endif
 
-! eliminate isolated ocean cells
+! eliminate isolated cells
 do iCell=1,nCells
     flag = .true.
     if(kmt(iCell).ne.0) then
@@ -1630,8 +1637,8 @@
 integer k
 
   dz( 1) = 0.0   !   5.006218       10.01244
-  dz( 2) = 50.0   !   15.06873       20.12502
-  dz( 3) = 100.0   !   25.28342       30.44183
+  dz( 2) = 2000.0   !   15.06873       20.12502
+  dz( 3) = 4000.0   !   25.28342       30.44183
 !  dz( 1) = 1001.244   !   5.006218       10.01244
 !  dz( 2) = 1011.258   !   15.06873       20.12502
 !  dz( 3) = 1031.682   !   25.28342       30.44183
@@ -1673,7 +1680,8 @@
 !  dz(39) = 25000.00   !   5124.999       5249.999
 !  dz(40) = 25000.00   !   5374.999       5499.999
 
-  dz = dz / 100.0
+!  dz = dz / 100.0
+  dz = dz / 1.0
 
   write(6,*)
 !  do k=1,40

Modified: branches/land_ice/icesheet/src/module_read_topo.F
===================================================================
--- branches/land_ice/icesheet/src/module_read_topo.F        2011-07-14 15:23:34 UTC (rev 921)
+++ branches/land_ice/icesheet/src/module_read_topo.F        2011-07-14 23:04:48 UTC (rev 922)
@@ -3,12 +3,10 @@
    integer :: rd_ncid
    integer :: rdDimIDnx
    integer :: rdDimIDny
-   integer :: rdVarIDz
+!   integer :: rdVarIDz
    integer :: rdVarIDx
    integer :: rdVarIDy
-!   integer :: rdVarIDthk
-!   integer :: rdVarIDlat
-!   integer :: rdVarIDlon
+   integer :: rdVarIDthk
  
    integer :: rdLocalnx
    integer :: rdLocalny
@@ -24,54 +22,47 @@
       integer, intent(out) :: nx, ny
  
       integer :: nferr
+
+      integer, dimension(3) :: dimids 
  
  
-      nferr = nf_open('topo/Greenland_5km_v1.1.nc', NF_SHARE, rd_ncid)
-      write(6,*) ' nferr ', nferr, rd_ncid
+!      nferr = nf_open('topo/Greenland_5km_v1.1.nc', NF_SHARE, rd_ncid)
+!      nferr = nf_open('topo/gis_5km.180511.nc', NF_SHARE, rd_ncid)
+      nferr = nf_open('topo/gis_20km.180511.nc', NF_SHARE, rd_ncid)
+      write(6,*) ' nferr ncid ', nferr, rd_ncid
+
  
       !
       ! Get IDs for variable dimensions
       !
 
-!      nferr = nf_inq_dimid(rd_ncid, 'x', rdDimIDnx)
-!      write(6,*) ' nferr ', nferr, rdDimIDnx
-!      nferr = nf_inq_dimlen(rd_ncid, rdDimIDnx, rdLocalnx)
-!      write(6,*) ' nferr ', nferr, rdLocalnx
-!      nferr = nf_inq_dimid(rd_ncid, 'y', rdDimIDny)
-!      write(6,*) ' nferr ', nferr, rdDimIDny
-!      nferr = nf_inq_dimlen(rd_ncid, rdDimIDny, rdLocalny)
-!      write(6,*) ' nferr ', nferr, rdLocalny
-
       nferr = nf_inq_dimid(rd_ncid, 'x1', rdDimIDnx)
-      write(6,*) ' nferr ', nferr, rdDimIDnx
+      write(6,*) ' nferr xdim-id ', nferr, rdDimIDnx
       nferr = nf_inq_dimlen(rd_ncid, rdDimIDnx, rdLocalnx)
-      write(6,*) ' nferr ', nferr, rdLocalnx
+      write(6,*) ' nferr xdim-length ', nferr, rdLocalnx
 
       nferr = nf_inq_dimid(rd_ncid, 'y1', rdDimIDny)
-      write(6,*) ' nferr ', nferr, rdDimIDny
+      write(6,*) ' nferr ydim-id ', nferr, rdDimIDny
       nferr = nf_inq_dimlen(rd_ncid, rdDimIDny, rdLocalny)
-      write(6,*) ' nferr ', nferr, rdLocalny
+      write(6,*) ' nferr ydim-length ', nferr, rdLocalny
 
       nx = rdLocalnx
       ny = rdLocalny
-
-      write(6,*) nx, ny
+      print *, 'x,y dims of .nc var = ', nx, ny 
  
       !
       ! Get IDs for variables
       !
-!      nferr = nf_inq_varid(rd_ncid, 'x', rdVarIDx)
-!      write(6,*) ' nferr ', nferr, rdVarIDx
-!      nferr = nf_inq_varid(rd_ncid, 'y', rdVarIDy)
-!      write(6,*) ' nferr ', nferr, rdVarIDy
-!      nferr = nf_inq_varid(rd_ncid, 'z', rdVarIDz)
-!      write(6,*) ' nferr ', nferr, rdVarIDz
       nferr = nf_inq_varid(rd_ncid, 'x1', rdVarIDx)
-      write(6,*) ' nferr ', nferr, rdVarIDx
+      write(6,*) ' nferr xvar-id ', nferr, rdVarIDx
       nferr = nf_inq_varid(rd_ncid, 'y1', rdVarIDy)
-      write(6,*) ' nferr ', nferr, rdVarIDy
-      nferr = nf_inq_varid(rd_ncid, 'thk', rdVarIDz)
-      write(6,*) ' nferr ', nferr, rdVarIDz
+      write(6,*) ' nferr yvar-id ', nferr, rdVarIDy
+      nferr = nf_inq_varid(rd_ncid, 'thk', rdVarIDthk)
+      write(6,*) ' nferr thkvar-id ', nferr, rdVarIDthk
+
+      nferr = nf_inq_vardimid( rd_ncid, rdVarIDthk, dimids )
+      write(6,*) ' nferr thk-dim-ids ', nferr, dimids  
+
  
    end subroutine read_topo_init
  
@@ -83,9 +74,6 @@
       include 'netcdf.inc'
  
       real (kind=4), dimension(:), intent(out) :: x,y
-!      real (kind=4), dimension(:,:), intent(out) :: z
-!      real (kind=4), dimension(:,:), intent(out) :: x 
-!      real (kind=4), dimension(:,:), intent(out) :: y 
       real (kind=4), dimension(:,:), intent(out) :: thk
 
       integer, dimension(1) :: start1, count1
@@ -98,41 +86,28 @@
       start1(1) = 1
       count1(1) = rdLocalnx
       nferr = nf_get_vara_real(rd_ncid, rdVarIDx, start1, count1, x)
-      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDx
+      write(6,*) ' nferr ncid xvar-id (get x-val) ', nferr, rd_ncid, rdVarIDx
 
       start1(1) = 1
       count1(1) = rdLocalny
       nferr = nf_get_vara_real(rd_ncid, rdVarIDy, start1, count1, y)
-      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDy
+      write(6,*) ' nferr ncid yvar-id (get y-val) ', nferr, rd_ncid, rdVarIDy
 
       start2(1) = 1
       start2(2) = 1
       count2(1) = rdLocalnx
       count2(2) = rdLocalny
-      nferr = nf_get_vara_real(rd_ncid, rdVarIDz, start2, count2, thk)
-      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDz, rdLocalnx

-!      start2(1) = 1
-!      start2(2) = 1
-!      count2(1) = rdLocalnx
-!      count2(2) = rdLocalny
-!      nferr = nf_get_vara_real(rd_ncid, rdVarIDx, start2, count2, x)
-!      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDx, rdLocalnx
-!
-!      start2(1) = 1
-!      start2(2) = 1
-!      count2(1) = rdLocalnx
-!      count2(2) = rdLocalny
-!      nferr = nf_get_vara_real(rd_ncid, rdVarIDy, start2, count2, y)
-!      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDy, rdLocalnx
-!
-!      start2(1) = 1
-!      start2(2) = 1
-!      count2(1) = rdLocalnx
-!      count2(2) = rdLocalny
-!      nferr = nf_get_vara_real(rd_ncid, rdVarIDthk, start2, count2, thk)
-!      write(6,*) ' nferr ', nferr, rd_ncid, rdVarIDthk, rdLocalnx
 
+      start3(1) = 1
+      start3(2) = 1 
+      start3(3) = 1
+      count3(1) = rdlocalnx
+      count3(2) = rdlocalny
+      count3(3) = 1
+
+      nferr = nf_get_vara_real(rd_ncid, rdVarIDthk, start3, count3, thk)
+      write(6,*) ' nferr ncid thkvar-id (get thk val) ', nferr, rd_ncid, rdVarIDthk

    end subroutine read_topo_fields
  
  

Modified: branches/land_ice/icesheet/src/module_write_netcdf.F
===================================================================
--- branches/land_ice/icesheet/src/module_write_netcdf.F        2011-07-14 15:23:34 UTC (rev 921)
+++ branches/land_ice/icesheet/src/module_write_netcdf.F        2011-07-14 23:04:48 UTC (rev 922)
@@ -107,7 +107,7 @@
       wrLocalnVertLevels = nVertLevels
       wrLocalvertexDegree = vertexDegree
  
-      nferr = nf_create('ocean.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
+      nferr = nf_create('icesheet.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
  
       !
       ! Define dimensions

</font>
</pre>