[Dart-dev] DART/branches Revision: 12527
dart at ucar.edu
dart at ucar.edu
Tue Apr 17 11:34:45 MDT 2018
nancy at ucar.edu
2018-04-17 11:34:45 -0600 (Tue, 17 Apr 2018)
436
add the cheat sheet for interface changes between
classic and manhattan for location mods. need to fold
in the recam changes for get_maxdist() to my branch here.
also continue to try to consolidate output through
a single routine in utils (instead of writing to * and
then to the logfileunit directly) so we can more easily
control where output goes. this is for things that
don't call the error handler - usually debugging output.
Modified: DART/branches/all_nsc_changes/assimilation_code/location/channel/location_mod.f90
===================================================================
--- DART/branches/all_nsc_changes/assimilation_code/location/channel/location_mod.f90 2018-04-17 17:13:37 UTC (rev 12526)
+++ DART/branches/all_nsc_changes/assimilation_code/location/channel/location_mod.f90 2018-04-17 17:34:45 UTC (rev 12527)
@@ -14,7 +14,7 @@
use types_mod, only : r8, i8, MISSING_R8, MISSING_I, PI, RAD2DEG, DEG2RAD
use utilities_mod, only : register_module, error_handler, E_ERR, ascii_file_format, &
E_MSG, open_file, close_file, set_output, &
- logfileunit, nmlfileunit, find_namelist_in_file, &
+ nmlfileunit, find_namelist_in_file, &
check_namelist_read, do_output, do_nml_file, &
do_nml_term, is_longitude_between
use random_seq_mod, only : random_seq_type, init_random_seq, random_uniform
Added: DART/branches/all_nsc_changes/assimilation_code/location/location_changes
===================================================================
--- DART/branches/all_nsc_changes/assimilation_code/location/location_changes (rev 0)
+++ DART/branches/all_nsc_changes/assimilation_code/location/location_changes 2018-04-17 17:34:45 UTC (rev 12527)
@@ -0,0 +1,197 @@
+
+old public interface list: new public interface list:
+
+ LocationDims LocationDims
+ LocationLName LocationLName
+ LocationName LocationName
+ get_close_maxdist_init LocationStorageOrder
+ get_close_obs LocationUnits
+ get_close_obs_destroy convert_vertical_obs
+ get_close_obs_init convert_vertical_state
+ get_close_type get_close_destroy
+ get_dist get_close_init
+ get_location get_close_obs
+ get_vert get_close_state
+ has_vertical_localization get_close_type
+ interactive_location get_dist
+ is_location_in_region get_location
+ nc_get_location_varids get_vertical_localization_coord
+ nc_write_location has_vertical_choice
+ nc_write_location_atts interactive_location
+ operator(/=) is_location_in_region
+ operator(==) is_vertical
+ query_location location_type
+ read_location operator(/=)
+ set_location operator(==)
+ set_location_missing query_location
+ set_vert read_location
+ set_which_vert set_location
+ vert_is_height set_location_missing
+ vert_is_level set_vertical
+ vert_is_pressure set_vertical_localization_coord
+ vert_is_surface vertical_localization_on
+ vert_is_undef write_location
+ write_location
+ location_type
+ ! example location parms
+
+ integer, parameter :: LocationDims = 1
+ character(len = 64), parameter :: LocationName = "loc1d"
+ character(len = 64), parameter :: LocationLName = "location on unit circle"
+ character(len = 64), parameter :: LocationStorageOrder = "X"
+ character(len = 64), parameter :: LocationUnits = "none"
+
+ interface operator(==); module procedure loc_eq; end interface
+ interface operator(/=); module procedure loc_ne; end interface
+
+ interface set_location
+ module procedure set_location_single
+ module procedure set_location_array
+ end interface set_location
+
+ ! if no vert
+ use default_location_mod, only : has_vertical_choice, vertical_localization_on, &
+ get_vertical_localization_coord, &
+ set_vertical_localization_coord
+
+
+
+ subroutine initialize_module
+subroutine initialize_module
+ function get_dist(loc1, loc2, type1, kind2)
+function get_dist(loc1, loc2, type1, kind2) type(location_type), intent(in) :: loc1, loc2
+type(location_type), intent(in) :: loc1, loc2 integer, optional, intent(in) :: type1, kind2
+integer, optional, intent(in) :: type1, kind2 real(r8) :: get_dist
+real(r8) :: get_dist
+ function loc_eq(loc1,loc2)
+function loc_eq(loc1,loc2) type(location_type), intent(in) :: loc1, loc2
+type(location_type), intent(in) :: loc1, loc2 logical :: loc_eq
+logical :: loc_eq
+ function loc_ne(loc1,loc2)
+function loc_ne(loc1,loc2) type(location_type), intent(in) :: loc1, loc2
+type(location_type), intent(in) :: loc1, loc2 logical :: loc_ne
+logical :: loc_ne
+ function get_location(loc)
+function get_location(loc) type(location_type), intent(in) :: loc
+type(location_type), intent(in) :: loc real(r8) :: get_location
+real(r8), dimension(2) :: get_location
+ function set_location_single(x)
+function set_location_single(lon, lat) real(r8), intent(in) :: x
+real(r8), intent(in) :: lon, lat type (location_type) :: set_location_single
+type (location_type) :: set_location_single
+ function set_location_array(list)
More information about the Dart-dev
mailing list