@@ -5,7 +5,7 @@ module MOM_restart
5
5
6
6
use , intrinsic :: iso_fortran_env, only : int64
7
7
use MOM_array_transform, only : rotate_array, rotate_vector, rotate_array_pair
8
- use MOM_checksums, only : chksum = > rotated_field_chksum
8
+ use MOM_checksums, only : chksum = > field_checksum
9
9
use MOM_domains, only : PE_here, num_PEs, AGRID, BGRID_NE, CGRID_NE
10
10
use MOM_error_handler, only : MOM_error, MOM_mesg, FATAL, WARNING, NOTE, is_root_pe, MOM_get_verbosity
11
11
use MOM_file_parser, only : get_param, log_param, log_version, param_file_type
@@ -1738,15 +1738,15 @@ subroutine save_restart(directory, time, G, CS, time_stamped, filename, GV, num_
1738
1738
1739
1739
conv = CS% restart_field(m)% conv
1740
1740
if (associated (CS% var_ptr3d(m)% p)) then
1741
- check_val(m- start_var+1 ,1 ) = chksum(conv * CS% var_ptr3d(m)% p(isL:ieL,jsL:jeL,:), turns=- turns)
1741
+ check_val(m- start_var+1 ,1 ) = chksum(CS% var_ptr3d(m)% p(isL:ieL,jsL:jeL,:), turns=- turns, unscale = conv )
1742
1742
elseif (associated (CS% var_ptr2d(m)% p)) then
1743
- check_val(m- start_var+1 ,1 ) = chksum(conv * CS% var_ptr2d(m)% p(isL:ieL,jsL:jeL), turns=- turns)
1743
+ check_val(m- start_var+1 ,1 ) = chksum(CS% var_ptr2d(m)% p(isL:ieL,jsL:jeL), turns=- turns, unscale = conv )
1744
1744
elseif (associated (CS% var_ptr4 d(m)% p)) then
1745
- check_val(m- start_var+1 ,1 ) = chksum(conv * CS% var_ptr4 d(m)% p(isL:ieL,jsL:jeL,:,:), turns=- turns)
1745
+ check_val(m- start_var+1 ,1 ) = chksum(CS% var_ptr4 d(m)% p(isL:ieL,jsL:jeL,:,:), turns=- turns, unscale = conv )
1746
1746
elseif (associated (CS% var_ptr1d(m)% p)) then
1747
- check_val(m- start_var+1 ,1 ) = chksum(conv * CS% var_ptr1d(m)% p(:))
1747
+ check_val(m- start_var+1 ,1 ) = chksum(CS% var_ptr1d(m)% p(:), unscale = conv )
1748
1748
elseif (associated (CS% var_ptr0d(m)% p)) then
1749
- check_val(m- start_var+1 ,1 ) = chksum(conv * CS% var_ptr0d(m)% p, pelist= (/ PE_here()/ ))
1749
+ check_val(m- start_var+1 ,1 ) = chksum(CS% var_ptr0d(m)% p, pelist= (/ PE_here()/ ), unscale = conv )
1750
1750
endif
1751
1751
enddo
1752
1752
@@ -1924,11 +1924,11 @@ subroutine restore_state(filename, directory, day, G, CS)
1924
1924
! Read a 1d array, which should be invariant to domain decomposition.
1925
1925
call MOM_read_data(unit_path(n), varname, CS% var_ptr1d(m)% p, &
1926
1926
timelevel= 1 , scale= scale, MOM_Domain= G% Domain)
1927
- if (is_there_a_checksum) checksum_data = chksum(conv * CS% var_ptr1d(m)% p(:))
1927
+ if (is_there_a_checksum) checksum_data = chksum(CS% var_ptr1d(m)% p(:), unscale = conv )
1928
1928
elseif (associated (CS% var_ptr0d(m)% p)) then ! Read a scalar...
1929
1929
call MOM_read_data(unit_path(n), varname, CS% var_ptr0d(m)% p, &
1930
1930
timelevel= 1 , scale= scale, MOM_Domain= G% Domain)
1931
- if (is_there_a_checksum) checksum_data = chksum(conv * CS% var_ptr0d(m)% p, pelist= (/ PE_here()/ ))
1931
+ if (is_there_a_checksum) checksum_data = chksum(CS% var_ptr0d(m)% p, pelist= (/ PE_here()/ ), unscale = conv )
1932
1932
elseif (associated (CS% var_ptr2d(m)% p)) then ! Read a 2d array.
1933
1933
if (pos /= 0 ) then
1934
1934
call MOM_read_data(unit_path(n), varname, CS% var_ptr2d(m)% p, &
@@ -1938,7 +1938,7 @@ subroutine restore_state(filename, directory, day, G, CS)
1938
1938
" MOM_restart does not support 2-d arrays without domain decomposition." )
1939
1939
! call read_data(unit_path(n), varname, CS%var_ptr2d(m)%p,no_domain=.true., timelevel=1)
1940
1940
endif
1941
- if (is_there_a_checksum) checksum_data = chksum(conv * CS% var_ptr2d(m)% p(isL:ieL,jsL:jeL))
1941
+ if (is_there_a_checksum) checksum_data = chksum(CS% var_ptr2d(m)% p(isL:ieL,jsL:jeL), unscale = conv )
1942
1942
elseif (associated (CS% var_ptr3d(m)% p)) then ! Read a 3d array.
1943
1943
if (pos /= 0 ) then
1944
1944
call MOM_read_data(unit_path(n), varname, CS% var_ptr3d(m)% p, &
@@ -1948,7 +1948,7 @@ subroutine restore_state(filename, directory, day, G, CS)
1948
1948
" MOM_restart does not support 3-d arrays without domain decomposition." )
1949
1949
! call read_data(unit_path(n), varname, CS%var_ptr3d(m)%p, no_domain=.true., timelevel=1)
1950
1950
endif
1951
- if (is_there_a_checksum) checksum_data = chksum(conv * CS% var_ptr3d(m)% p(isL:ieL,jsL:jeL,:))
1951
+ if (is_there_a_checksum) checksum_data = chksum(CS% var_ptr3d(m)% p(isL:ieL,jsL:jeL,:), unscale = conv )
1952
1952
elseif (associated (CS% var_ptr4 d(m)% p)) then ! Read a 4d array.
1953
1953
if (pos /= 0 ) then
1954
1954
call MOM_read_data(unit_path(n), varname, CS% var_ptr4 d(m)% p, &
@@ -1959,7 +1959,7 @@ subroutine restore_state(filename, directory, day, G, CS)
1959
1959
" MOM_restart does not support 4-d arrays without domain decomposition." )
1960
1960
! call read_data(unit_path(n), varname, CS%var_ptr4d(m)%p, no_domain=.true., timelevel=1)
1961
1961
endif
1962
- if (is_there_a_checksum) checksum_data = chksum(conv * CS% var_ptr4 d(m)% p(isL:ieL,jsL:jeL,:,:))
1962
+ if (is_there_a_checksum) checksum_data = chksum(CS% var_ptr4 d(m)% p(isL:ieL,jsL:jeL,:,:), unscale = conv )
1963
1963
else
1964
1964
call MOM_error(FATAL, " MOM_restart restore_state: No pointers set for " // trim (varname))
1965
1965
endif
0 commit comments