[Dart-dev] DART/branches Revision: 12212

dart at ucar.edu dart at ucar.edu
Mon Dec 18 16:44:34 MST 2017


hendric at ucar.edu
2017-12-18 16:44:33 -0700 (Mon, 18 Dec 2017)
83
reverting to the old interpolation scheme for 
converting to geopotential height.




Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90	2017-12-18 18:02:45 UTC (rev 12211)
+++ DART/branches/recam/models/cam-fv/model_mod.f90	2017-12-18 23:44:33 UTC (rev 12212)
@@ -1,4 +1,4 @@
-! DART software - Copyright UCAR. This open source software is provided
+!-1nlevels - 1 DART software - Copyright UCAR. This open source software is provided
 ! by ucar, "as is", without charge, subject to all terms of use at
 ! http://www.image.ucar.edu/dares/dart/dart_download
 !
@@ -273,6 +273,10 @@
 ! this namelist variable so we can initialize the proper tables
 if (using_chemistry) call init_chem_tables()
 
+if (use_damping_ramp_at_model_top) then
+   print*, '"use_damping_ramp_at_model_top" not implemented yet'
+endif
+
 end subroutine static_init_model
 
 
@@ -537,20 +541,22 @@
 
    ! start at i, because my ensemble member is clearly at this level.
    ! then continue on to see if any other members are also at this level.
-   do j=i, ens_size
-      if (member_done(j)) cycle
-         print*, 'lev_index(1) ', i, lev_index(i)
-         print*, 'lev_index(2) ', j, lev_index(j)
-         print*, 'tem_values(:)', temp_vals(j)
-      
-      if (lev_index(j) == lev_index(i)) then
-         vals(j) = temp_vals(j)
-         member_done(j) = .true.
-         my_status(j) = 0
-         print*, 'tem_values(:)', temp_vals(j)
-      endif
-      
-   enddo
+   if (debug_level > 100) then
+      do j=i, ens_size
+         if (member_done(j)) cycle
+            print*, 'lev_index(1) ', i, lev_index(i)
+            print*, 'lev_index(2) ', j, lev_index(j)
+            print*, 'tem_values(:)', temp_vals(j)
+         
+         if (lev_index(j) == lev_index(i)) then
+            vals(j) = temp_vals(j)
+            member_done(j) = .true.
+            my_status(j) = 0
+            print*, 'tem_values(:)', temp_vals(j)
+         endif
+         
+      enddo
+   endif
 enddo
 
 end subroutine get_values_from_varid
@@ -1179,9 +1185,12 @@
          !>@todo FIXME somewhere cull out unique levels and only get_state() for those. (see wrf)
          call height_to_level(nlevels, height_array(:, imember), vert_val, &
                               bot_levs(imember), top_levs(imember), vert_fracts(imember), my_status(imember))
-         do k = 1,ens_size
-            print*, 'bot_levs(i), top_levs(i), vert_fracts()', bot_levs(imember), top_levs(imember), vert_fracts(imember)
-         enddo
+         if (debug_level > 100) then
+            do k = 1,ens_size
+               print*, 'bot_levs(k), top_levs(k), vert_fracts(k)', &
+                        bot_levs(k), top_levs(k), vert_fracts(k)
+            enddo
+         endif
       enddo
       
 
@@ -1257,7 +1266,7 @@
 ! get the surface elevation from the phis, including stagger if needed
 call get_quad_corners(1, lon_index, lat_index, QTY_SURFACE_ELEVATION, qty, surface_elevation, status1)
 
-print*, 'surface_elevation ', surface_elevation
+print*, 'lon lat surf elev ', lon_index, lat_index, surface_elevation
 
 do k = 1, nlevels
    ! temperature
@@ -2422,34 +2431,35 @@
 
 !-----------------------------------------------------------------------
 
-subroutine build_heights(n_levels,p_surf,h_surf,vertual_temp,height_midpts,height_interf,variable_r)
+subroutine build_heights(nlevels,p_surf,h_surf,vertual_temp,height_midpts,height_interf,variable_r)
 
-integer,  intent(in)  :: n_levels                            ! Number of vertical levels
+integer,  intent(in)  :: nlevels                            ! Number of vertical levels
 real(r8), intent(in)  :: p_surf                              ! Surface pressure (pascals)
 real(r8), intent(in)  :: h_surf                              ! Surface height (m)
-real(r8), intent(in)  :: vertual_temp( n_levels)             ! Vertual Temperature
-real(r8), intent(out) :: height_midpts(n_levels)             ! Geopotential height at midpoints, top to bottom
-real(r8), intent(out), optional :: height_interf(n_levels+1) ! Geopotential height at interfaces, top to bottom
-real(r8), intent(in),  optional :: variable_r(   n_levels)   ! Dry air gas constant, if varies, top to bottom
+real(r8), intent(in)  :: vertual_temp( nlevels)             ! Vertual Temperature
+real(r8), intent(out) :: height_midpts(nlevels)             ! Geopotential height at midpoints, top to bottom
+real(r8), intent(out), optional :: height_interf(nlevels+1) ! Geopotential height at interfaces, top to bottom


More information about the Dart-dev mailing list