[Dart-dev] DART/branches Revision: 12209
dart at ucar.edu
dart at ucar.edu
Sun Dec 17 17:06:22 MST 2017
thoar at ucar.edu
2017-12-17 17:06:15 -0700 (Sun, 17 Dec 2017)
887
Test implementation of new strategy to track the original dimensions of the netCDF
variables and still be able to ignore the non-spatial dimensions when adding to
the DART state vector.
The model_mod_check program now has an option to be a bit less verbose for the
first test. Models that do not have a mkmf_model_mod_check have had the
model_mod_check_nml removed from their namelist.
The NAG compiler found a couple places where arrays were being deallocated by
tasks that should not have been deallocating.
For some reason ... when running test_dart.csh ... lorenz_96_2scale fails - in dramatic fashion.
While running pmo, it dies right away with:
perfect_model_obs: Ready to run model to advance data ahead in time
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
To my knowledge, nothing I did should have affected any arithmetic.
Modified: DART/branches/mmc/assimilation_code/location/threed_sphere/location_mod.f90
===================================================================
--- DART/branches/mmc/assimilation_code/location/threed_sphere/location_mod.f90 2017-12-15 23:02:10 UTC (rev 12208)
+++ DART/branches/mmc/assimilation_code/location/threed_sphere/location_mod.f90 2017-12-18 00:06:15 UTC (rev 12209)
@@ -815,7 +815,7 @@
case (VERTISSURFACE)
write(charstring, '(A,F13.5,A)') trim(string1), loc%vloc, ' surface (m)'
case (VERTISLEVEL)
- write(charstring, '(A,F13.6,A)') trim(string1), loc%vloc, ' level'
+ write(charstring, '(A,F13.6,A)') trim(string1), loc%vloc, ' level'
case (VERTISPRESSURE)
write(charstring, '(A,F13.7,A)') trim(string1), loc%vloc / 100.0_r8, ' hPa'
case (VERTISHEIGHT)
@@ -1155,7 +1155,7 @@
subroutine get_close_init(gc, num, maxdist, locs, maxdist_list)
-! Initializes part of get_close accelerator that depends on the particular loc
+! Initializes part of get_close accelerator dependent on the particular location
type(get_close_type), intent(inout) :: gc
integer, intent(in) :: num
@@ -1304,7 +1304,7 @@
if(lon_box(i) < 0 .or. lon_box(i) > nlon) then
write(msgstring, *) 'Contact Dart Developers: this error should not happen'
call error_handler(E_MSG, 'get_close_init', msgstring, source, revision, revdate)
- write(msgstring, *) 'loc outside grid boxes, index value:', lon_box(i)
+ write(msgstring, *) 'location outside grid boxes, index value:', lon_box(i)
call error_handler(E_ERR, 'get_close_init', msgstring, source, revision, revdate)
endif
@@ -1517,7 +1517,7 @@
this_dist = get_dist(base_loc, locs(i), base_type, loc_qtys(i))
endif
if(this_dist <= this_maxdist) then
- ! Add this loc to correct list
+ ! Add this location to correct list
cnum_close = cnum_close + 1
cclose_ind(cnum_close) = i
cdist(cnum_close) = this_dist
@@ -1592,7 +1592,7 @@
no_vert = .true.)
endif
- ! If this loc's distance is less than cutoff, add it to the list
+ ! If this locations distance is less than cutoff, add it to the list
if(this_dist <= this_maxdist) then
num_close = num_close + 1
close_ind(num_close) = t_ind
@@ -1707,7 +1707,7 @@
! Add on the extra distance needed for the boxes
! To avoid any hard thinking about wraparound with sub-domain boxes
! Must span less than 180 degrees to get smaller boxes
- ! If addition of halos for close loc fills more than half of space
+ ! If addition of halos for close location fills more than half of space
! things go 0 to 2PI
! other places we are computing in radians. here we are computing in
@@ -2080,7 +2080,7 @@
integer, intent(in), optional :: tt
integer, intent(in), optional :: amount
-integer :: i, j, k, first, index, mytask, alltasks, whichtt
+integer :: i, j, k, first, myindex, mytask, alltasks, whichtt
integer :: sample, nfull, nempty, howmuch, total, maxcount, maxi, maxj
logical :: tickmark(gc%gtt(1)%num), iam0
real(r8) :: lon_cen, lat_cen
@@ -2290,21 +2290,21 @@
do j=1, nlat
first = gc%gtt(whichtt)%start(i, j)
do k=1, gc%gtt(whichtt)%count(i, j)
- index = first + k - 1
- if ((index < 1) .or. (index > gc%gtt(whichtt)%num)) then
+ myindex = first + k - 1
+ if ((myindex < 1) .or. (myindex > gc%gtt(whichtt)%num)) then
write(msgstring, *) 'exiting at first bad value; could be more'
call error_handler(E_MSG, 'locations_mod', msgstring)
- write(msgstring, *) 'bad loc list index, in box: ', index, i, j
+ write(msgstring, *) 'bad loc list index, in box: ', myindex, i, j
call error_handler(E_ERR, 'locations_mod', msgstring)
endif
- if (tickmark(index)) then
+ if (tickmark(myindex)) then
write(msgstring, *) 'exiting at first bad value; could be more'
call error_handler(E_MSG, 'locations_mod', msgstring)
write(msgstring, *) 'error: locs found in more than one box list. index, box: ', &
- index, i, j
+ myindex, i, j
call error_handler(E_ERR, 'locations_mod', msgstring)
endif
- tickmark(index) = .TRUE.
+ tickmark(myindex) = .TRUE.
enddo
enddo
enddo
Modified: DART/branches/mmc/assimilation_code/location/utilities/location_io_mod.f90
===================================================================
--- DART/branches/mmc/assimilation_code/location/utilities/location_io_mod.f90 2017-12-15 23:02:10 UTC (rev 12208)
+++ DART/branches/mmc/assimilation_code/location/utilities/location_io_mod.f90 2017-12-18 00:06:15 UTC (rev 12209)
@@ -15,6 +15,8 @@
More information about the Dart-dev
mailing list