Skip to content

Commit 0ff1106

Browse files
Hallberg-NOAAadcroft
authored andcommitted
+Use I0 format to simplify integer output
Use the I0 format that was introduced with Fortran 95 in 155 lines scattered across 40 files to simplify or shorten some error messages. In 21 cases, adjustl() calls that are no longer necessary for intended formatting were also eliminated. These changes have the effect of ensuring that there are still appropriate messages if there are, for example, more than 99 vertical layers or 9999 points (total) in a horizontal directions or more than 9999 PEs. In 15 cases, this change allowed for the elimination or reduction of if tests that formatted output based on the size of an integer. All answers are bitwise identical but there there may be some minor formatting changes in some error messages.
1 parent 00fde81 commit 0ff1106

40 files changed

+163
-205
lines changed

src/ALE/MOM_hybgen_regrid.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -988,12 +988,12 @@ subroutine hybgen_column_regrid(CS, nk, thkbot, Rcv_tgt, &
988988
! Verify that everything is consistent.
989989
do k=1,nk
990990
if (abs((h_col(k) - h_in(k)) + (dp_int(K) - dp_int(K+1))) > 1.0e-13*max(p_int(nk+1), CS%onem)) then
991-
write(mesg, '("k ",i4," h ",es13.4," h_in ",es13.4, " dp ",2es13.4," err ",es13.4)') &
991+
write(mesg, '("k ",I0," h ",es13.4," h_in ",es13.4, " dp ",2es13.4," err ",es13.4)') &
992992
k, h_col(k), h_in(k), dp_int(K), dp_int(K+1), (h_col(k) - h_in(k)) + (dp_int(K) - dp_int(K+1))
993993
call MOM_error(FATAL, "Mismatched thickness changes in hybgen_regrid: "//trim(mesg))
994994
endif
995995
if (h_col(k) < 0.0) then ! Could instead do: -1.0e-15*max(p_int(nk+1), CS%onem)) then
996-
write(mesg, '("k ",i4," h ",es13.4," h_in ",es13.4, " dp ",2es13.4, " fixlay ",i4)') &
996+
write(mesg, '("k ",I0," h ",es13.4," h_in ",es13.4, " dp ",2es13.4, " fixlay ",I0)') &
997997
k, h_col(k), h_in(k), dp_int(K), dp_int(K+1), fixlay
998998
call MOM_error(FATAL, "Significantly negative final thickness in hybgen_regrid: "//trim(mesg))
999999
endif

src/ALE/MOM_hybgen_unmix.F90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,18 +274,18 @@ subroutine hybgen_unmix(G, GV, US, CS, tv, Reg, ntr, h)
274274
Trh_tot_out(m) = Trh_tot_out(m) + h_col(k)*tracer(k,m)
275275
enddo ; enddo
276276
if (abs(Sh_tot_in - Sh_tot_out) > 1.e-15*(abs(Sh_tot_in) + abs(Sh_tot_out))) then
277-
write(mesg, '("i,j=",2i8,"Sh_tot = ",2es17.8," err = ",es13.4)') &
277+
write(mesg, '("i,j=",I0,",",I0," Sh_tot = ",2es17.8," err = ",es13.4)') &
278278
i, j, Sh_tot_in, Sh_tot_out, (Sh_tot_in - Sh_tot_out)
279279
call MOM_error(FATAL, "Mismatched column salinity in hybgen_unmix: "//trim(mesg))
280280
endif
281281
if (abs(Th_tot_in - Th_tot_out) > 1.e-10*(abs(Th_tot_in) + abs(Th_tot_out))) then
282-
write(mesg, '("i,j=",2i8,"Th_tot = ",2es17.8," err = ",es13.4)') &
282+
write(mesg, '("i,j=",I0,",",I0," Th_tot = ",2es17.8," err = ",es13.4)') &
283283
i, j, Th_tot_in, Th_tot_out, (Th_tot_in - Th_tot_out)
284284
call MOM_error(FATAL, "Mismatched column temperature in hybgen_unmix: "//trim(mesg))
285285
endif
286286
do m=1,ntr
287287
if (abs(Trh_tot_in(m) - Trh_tot_out(m)) > 1.e-10*(abs(Trh_tot_in(m)) + abs(Trh_tot_out(m)))) then
288-
write(mesg, '("i,j=",2i8,"Trh_tot(",i2,") = ",2es17.8," err = ",es13.4)') &
288+
write(mesg, '("i,j=",I0,",",I0," Trh_tot(",i0,") = ",2es17.8," err = ",es13.4)') &
289289
i, j, m, Trh_tot_in(m), Trh_tot_out(m), (Trh_tot_in(m) - Trh_tot_out(m))
290290
call MOM_error(FATAL, "Mismatched column tracer in hybgen_unmix: "//trim(mesg))
291291
endif

src/ALE/MOM_remapping.F90

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -574,12 +574,12 @@ subroutine check_reconstructions_1d(n0, h0, u0, deg, boundary_extrapolation, &
574574
u_min = min(u_l, u_c)
575575
u_max = max(u_l, u_c)
576576
if (ppoly_r_E(i0,1) < u_min) then
577-
write(0,'(a,i4,5(1x,a,1pe24.16))') 'Left edge undershoot at',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
577+
write(0,'(a,I0,5(1x,a,1pe24.16))') 'Left edge undershoot at ',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
578578
'edge=',ppoly_r_E(i0,1),'err=',ppoly_r_E(i0,1)-u_min
579579
problem_detected = .true.
580580
endif
581581
if (ppoly_r_E(i0,1) > u_max) then
582-
write(0,'(a,i4,5(1x,a,1pe24.16))') 'Left edge overshoot at',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
582+
write(0,'(a,I0,5(1x,a,1pe24.16))') 'Left edge overshoot at ',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
583583
'edge=',ppoly_r_E(i0,1),'err=',ppoly_r_E(i0,1)-u_max
584584
problem_detected = .true.
585585
endif
@@ -588,19 +588,19 @@ subroutine check_reconstructions_1d(n0, h0, u0, deg, boundary_extrapolation, &
588588
u_min = min(u_c, u_r)
589589
u_max = max(u_c, u_r)
590590
if (ppoly_r_E(i0,2) < u_min) then
591-
write(0,'(a,i4,5(1x,a,1pe24.16))') 'Right edge undershoot at',i0,'u(i0)=',u_c,'u(i0+1)=',u_r, &
591+
write(0,'(a,I0,5(1x,a,1pe24.16))') 'Right edge undershoot at ',i0,'u(i0)=',u_c,'u(i0+1)=',u_r, &
592592
'edge=',ppoly_r_E(i0,2),'err=',ppoly_r_E(i0,2)-u_min
593593
problem_detected = .true.
594594
endif
595595
if (ppoly_r_E(i0,2) > u_max) then
596-
write(0,'(a,i4,5(1x,a,1pe24.16))') 'Right edge overshoot at',i0,'u(i0)=',u_c,'u(i0+1)=',u_r, &
596+
write(0,'(a,I0,5(1x,a,1pe24.16))') 'Right edge overshoot at ',i0,'u(i0)=',u_c,'u(i0+1)=',u_r, &
597597
'edge=',ppoly_r_E(i0,2),'err=',ppoly_r_E(i0,2)-u_max
598598
problem_detected = .true.
599599
endif
600600
endif
601601
if (i0 > 1) then
602602
if ( (u_c-u_l)*(ppoly_r_E(i0,1)-ppoly_r_E(i0-1,2)) < 0.) then
603-
write(0,'(a,i4,5(1x,a,1pe24.16))') 'Non-monotonic edges at',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
603+
write(0,'(a,I0,5(1x,a,1pe24.16))') 'Non-monotonic edges at',i0,'u(i0-1)=',u_l,'u(i0)=',u_c, &
604604
'right edge=',ppoly_r_E(i0-1,2),'left edge=',ppoly_r_E(i0,1)
605605
write(0,'(5(a,1pe24.16,1x))') 'u(i0)-u(i0-1)',u_c-u_l,'edge diff=',ppoly_r_E(i0,1)-ppoly_r_E(i0-1,2)
606606
problem_detected = .true.
@@ -611,7 +611,7 @@ subroutine check_reconstructions_1d(n0, h0, u0, deg, boundary_extrapolation, &
611611
write(0,'(3(a,1pe24.16,1x))') 'u_l=',u_l,'u_c=',u_c,'u_r=',u_r
612612
write(0,'(a4,10a24)') 'i0','h0(i0)','u0(i0)','left edge','right edge','Polynomial coefficients'
613613
do n = 1, n0
614-
write(0,'(i4,1p10e24.16)') n,h0(n),u0(n),ppoly_r_E(n,1),ppoly_r_E(n,2),ppoly_r_coefs(n,:)
614+
write(0,'(I0,1p10e24.16)') n,h0(n),u0(n),ppoly_r_E(n,1),ppoly_r_E(n,2),ppoly_r_coefs(n,:)
615615
enddo
616616
call MOM_error(FATAL, 'MOM_remapping, check_reconstructions_1d: '// &
617617
'Edge values or polynomial coefficients were inconsistent!')
@@ -1861,7 +1861,7 @@ subroutine test_recon_consistency(test, scheme, n0, niter, h_neglect)
18611861
integer :: iter ! Loop counter
18621862
integer :: seed_size ! Number of integers used by seed
18631863
integer, allocatable :: seed(:) ! Random number seed
1864-
character(len=8) :: label ! Generated label
1864+
character(len=16) :: label ! Generated label
18651865

18661866
call initialize_remapping(remapCS, scheme, nk=n0, h_neglect=h_neglect, &
18671867
force_bounds_in_subcell=.false. )
@@ -1889,8 +1889,8 @@ subroutine test_recon_consistency(test, scheme, n0, niter, h_neglect)
18891889

18901890
enddo
18911891

1892-
write(label(1:8),'(i8)') niter
1893-
call test%test( error, trim(adjustl(label))//' consistency tests of '//scheme )
1892+
write(label,'(I0)') niter
1893+
call test%test( error, trim(label)//' consistency tests of '//scheme )
18941894

18951895
call remapCS%reconstruction%destroy()
18961896

@@ -1911,7 +1911,7 @@ subroutine test_preserve_uniform(test, scheme, n0, niter, h_neglect)
19111911
integer :: iter ! Loop counter
19121912
integer :: seed_size ! Number of integers used by seed
19131913
integer, allocatable :: seed(:) ! Random number seed
1914-
character(len=8) :: label ! Generated label
1914+
character(len=16) :: label ! Generated label
19151915

19161916
call initialize_remapping(remapCS, scheme, nk=n0, h_neglect=h_neglect, &
19171917
force_bounds_in_subcell=.true., &
@@ -1947,8 +1947,8 @@ subroutine test_preserve_uniform(test, scheme, n0, niter, h_neglect)
19471947

19481948
enddo
19491949

1950-
write(label(1:8),'(i8)') niter
1951-
call test%test( error, trim(adjustl(label))//' uniformity tests of '//scheme )
1950+
write(label,'(I0)') niter
1951+
call test%test( error, trim(label)//' uniformity tests of '//scheme )
19521952

19531953
end subroutine test_preserve_uniform
19541954

@@ -1970,7 +1970,7 @@ subroutine test_unchanged_grid(test, scheme, n0, niter, h_neglect)
19701970
real :: u0(n0), u1(n0) ! Source and target values [A]
19711971
logical :: error ! Indicates a divergence
19721972
integer :: iter ! Loop counter
1973-
character(len=8) :: label ! Generated label
1973+
character(len=16) :: label ! Generated label
19741974

19751975
call initialize_remapping(remapCS, scheme, nk=n0, h_neglect=h_neglect, &
19761976
force_bounds_in_subcell=.true., &
@@ -2000,8 +2000,8 @@ subroutine test_unchanged_grid(test, scheme, n0, niter, h_neglect)
20002000

20012001
enddo
20022002

2003-
write(label(1:8),'(i8)') niter
2004-
call test%test( error, trim(adjustl(label))//' unchanged grid tests of '//scheme )
2003+
write(label,'(I0)') niter
2004+
call test%test( error, trim(label)//' unchanged grid tests of '//scheme )
20052005

20062006
call remapCS%reconstruction%destroy()
20072007

@@ -2025,7 +2025,7 @@ subroutine compare_two_schemes(test, CS1, CS2, n0, n1, niter, msg)
20252025
integer :: iter ! Loop counter
20262026
integer :: seed_size ! Number of integers used by seed
20272027
integer, allocatable :: seed(:) ! Random number seed
2028-
character(len=8) :: label ! Generated label
2028+
character(len=16) :: label ! Generated label
20292029

20302030
call random_seed(size=seed_size)
20312031
allocate( seed(seed_Size) )
@@ -2061,8 +2061,8 @@ subroutine compare_two_schemes(test, CS1, CS2, n0, n1, niter, msg)
20612061
endif
20622062
enddo
20632063

2064-
write(label(1:8),'(i8)') niter
2065-
call test%test( error, trim(adjustl(label))//' comparisons of '//msg )
2064+
write(label,'(I0)') niter
2065+
call test%test( error, trim(label)//' comparisons of '//msg )
20662066

20672067
end subroutine compare_two_schemes
20682068

src/core/MOM.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4300,7 +4300,7 @@ subroutine extract_surface_state(CS, sfc_state_in)
43004300
ig = i + G%HI%idg_offset ! Global i-index
43014301
jg = j + G%HI%jdg_offset ! Global j-index
43024302
if (use_temperature) then
4303-
write(msg(1:240),'(2(a,i4,1x),4(a,f8.3,1x),8(a,es11.4,1x))') &
4303+
write(msg(1:240),'(2(a,I0,1x),4(a,f8.3,1x),8(a,es11.4,1x))') &
43044304
'Extreme surface sfc_state detected: i=',ig,'j=',jg, &
43054305
'lon=',G%geoLonT(i,j), 'lat=',G%geoLatT(i,j), &
43064306
'x=',G%gridLonT(ig), 'y=',G%gridLatT(jg), &
@@ -4309,7 +4309,7 @@ subroutine extract_surface_state(CS, sfc_state_in)
43094309
'U-=',US%L_T_to_m_s*sfc_state%u(I-1,j), 'U+=',US%L_T_to_m_s*sfc_state%u(I,j), &
43104310
'V-=',US%L_T_to_m_s*sfc_state%v(i,J-1), 'V+=',US%L_T_to_m_s*sfc_state%v(i,J)
43114311
else
4312-
write(msg(1:240),'(2(a,i4,1x),4(a,f8.3,1x),6(a,es11.4))') &
4312+
write(msg(1:240),'(2(a,I0,1x),4(a,f8.3,1x),6(a,es11.4))') &
43134313
'Extreme surface sfc_state detected: i=',ig,'j=',jg, &
43144314
'lon=',G%geoLonT(i,j), 'lat=',G%geoLatT(i,j), &
43154315
'x=',G%gridLonT(ig), 'y=',G%gridLatT(jg), &
@@ -4326,8 +4326,8 @@ subroutine extract_surface_state(CS, sfc_state_in)
43264326
enddo ; enddo
43274327
call sum_across_PEs(numberOfErrors)
43284328
if (numberOfErrors>0) then
4329-
write(msg(1:240),'(3(a,i9,1x))') 'There were a total of ',numberOfErrors, &
4330-
'locations detected with extreme surface values!'
4329+
write(msg(1:240),'(a,i0,a)') 'There were a total of ',numberOfErrors, &
4330+
' locations detected with extreme surface values!'
43314331
call MOM_error(FATAL, trim(msg))
43324332
endif
43334333
endif

src/core/MOM_barotropic.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2800,7 +2800,7 @@ subroutine btstep_timeloop(eta, ubt, vbt, uhbt0, Datu, BTCL_u, vhbt0, Datv, BTCL
28002800

28012801
! This might need to be moved outside of the OMP do loop directives.
28022802
if (CS%debug_bt) then
2803-
write(mesg,'("BT vel update ",I4)') n
2803+
write(mesg,'("BT vel update ",I0)') n
28042804
debug_halo = 0 ; if (CS%debug_wide_halos) debug_halo = iev - ie
28052805
call uvchksum(trim(mesg)//" PF[uv]", PFu, PFv, CS%debug_BT_HI, haloshift=debug_halo, &
28062806
symmetric=.true., unscale=US%L_T_to_m_s*US%s_to_T)
@@ -2888,7 +2888,7 @@ subroutine btstep_timeloop(eta, ubt, vbt, uhbt0, Datu, BTCL_u, vhbt0, Datv, BTCL
28882888
endif
28892889

28902890
if (CS%debug_bt) then
2891-
write(mesg,'("BT step ",I4)') n
2891+
write(mesg,'("BT step ",I0)') n
28922892
call uvchksum(trim(mesg)//" [uv]bt", ubt, vbt, CS%debug_BT_HI, haloshift=debug_halo, &
28932893
symmetric=.true., unscale=US%L_T_to_m_s)
28942894
call hchksum(eta, trim(mesg)//" eta", CS%debug_BT_HI, haloshift=debug_halo, unscale=GV%H_to_MKS)

src/core/MOM_checksum_packages.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ subroutine MOM_state_stats(mesg, u, v, h, Temp, Salt, G, GV, US, allowChange, pe
376376
write(0,'(a,2f12.5)') 'x,y=', G%geoLonT(i,j), G%geoLatT(i,j)
377377
write(0,'(a3,3a12)') 'k','h','Temp','Salt'
378378
do k = 1, nz
379-
write(0,'(i3,3es12.4)') k, h(i,j,k), T_scale*Temp(i,j,k), S_scale*Salt(i,j,k)
379+
write(0,'(I0," ",3es12.4)') k, h(i,j,k), T_scale*Temp(i,j,k), S_scale*Salt(i,j,k)
380380
enddo
381381
stop 'Extremum detected'
382382
endif
@@ -389,7 +389,7 @@ subroutine MOM_state_stats(mesg, u, v, h, Temp, Salt, G, GV, US, allowChange, pe
389389
write(0,'(a,2f12.5)') 'x,y=',G%geoLonT(i,j),G%geoLatT(i,j)
390390
write(0,'(a3,3a12)') 'k','h','Temp','Salt'
391391
do k = 1, nz
392-
write(0,'(i3,3es12.4)') k, h(i,j,k), T_scale*Temp(i,j,k), S_scale*Salt(i,j,k)
392+
write(0,'(I0," ",3es12.4)') k, h(i,j,k), T_scale*Temp(i,j,k), S_scale*Salt(i,j,k)
393393
enddo
394394
stop 'Negative thickness detected'
395395
endif

src/core/MOM_continuity_PPM.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2346,13 +2346,13 @@ subroutine PPM_reconstruction_x(h_in, h_W, h_E, G, LB, h_min, monotonic, simple_
23462346

23472347
if ((isl-stencil < G%isd) .or. (iel+stencil > G%ied)) then
23482348
write(mesg,'("In MOM_continuity_PPM, PPM_reconstruction_x called with a ", &
2349-
& "x-halo that needs to be increased by ",i2,".")') &
2349+
& "x-halo that needs to be increased by ",I0,".")') &
23502350
stencil + max(G%isd-isl,iel-G%ied)
23512351
call MOM_error(FATAL,mesg)
23522352
endif
23532353
if ((jsl < G%jsd) .or. (jel > G%jed)) then
23542354
write(mesg,'("In MOM_continuity_PPM, PPM_reconstruction_x called with a ", &
2355-
& "y-halo that needs to be increased by ",i2,".")') &
2355+
& "y-halo that needs to be increased by ",I0,".")') &
23562356
max(G%jsd-jsl,jel-G%jed)
23572357
call MOM_error(FATAL,mesg)
23582358
endif
@@ -2500,13 +2500,13 @@ subroutine PPM_reconstruction_y(h_in, h_S, h_N, G, LB, h_min, monotonic, simple_
25002500

25012501
if ((isl < G%isd) .or. (iel > G%ied)) then
25022502
write(mesg,'("In MOM_continuity_PPM, PPM_reconstruction_y called with a ", &
2503-
& "x-halo that needs to be increased by ",i2,".")') &
2503+
& "x-halo that needs to be increased by ",I0,".")') &
25042504
max(G%isd-isl,iel-G%ied)
25052505
call MOM_error(FATAL,mesg)
25062506
endif
25072507
if ((jsl-stencil < G%jsd) .or. (jel+stencil > G%jed)) then
25082508
write(mesg,'("In MOM_continuity_PPM, PPM_reconstruction_y called with a ", &
2509-
& "y-halo that needs to be increased by ",i2,".")') &
2509+
& "y-halo that needs to be increased by ",I0,".")') &
25102510
stencil + max(G%jsd-jsl,jel-G%jed)
25112511
call MOM_error(FATAL,mesg)
25122512
endif

src/core/MOM_open_boundary.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ subroutine initialize_segment_data(GV, US, OBC, PF, turns)
10421042
call MOM_error(FATAL," Unable to open OBC file " // trim(filename))
10431043

10441044
if (OBC%brushcutter_mode .and. (modulo(siz(1),2) == 0 .or. modulo(siz(2),2) == 0)) then
1045-
write(mesg,'("Brushcutter mode sizes ", I0, I0)') siz(1), siz(2)
1045+
write(mesg, '("Brushcutter mode sizes ",I0," ",I0)') siz(1), siz(2)
10461046
call MOM_error(WARNING, mesg // " " // trim(filename) // " " // trim(fieldname))
10471047
call MOM_error(FATAL,'segment data are not on the supergrid')
10481048
endif

src/diagnostics/MOM_PointAccel.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ subroutine write_u_accel(I, j, um, hin, ADp, CDp, dt, G, GV, US, CS, vel_rpt, st
157157
call get_date(CS%Time, yr, mo, day, hr, minute, sec)
158158
call get_time((CS%Time - set_date(yr, 1, 1, 0, 0, 0)), sec, yearday)
159159
write (file,'(/,"--------------------------")')
160-
write (file,'(/,"Time ",i5,i4,F6.2," U-velocity violation at ",I4,": ",2(I3), &
161-
& " (",F7.2," E ",F7.2," N) Layers ",I3," to ",I3,". dt = ",1PG10.4)') &
160+
write (file,'(/,"Time ",I0," ",I0," ",F6.2," U-velocity violation at ",I0,": ",I0,", ",I0, &
161+
& " (",F7.2," E ",F7.2," N) Layers ",I0," to ",I0,". dt = ",1PG10.4)') &
162162
yr, yearday, (REAL(sec)/3600.0), pe_here(), I, j, &
163163
G%geoLonCu(I,j), G%geoLatCu(I,j), ks, ke, US%T_to_s*dt
164164

@@ -497,8 +497,8 @@ subroutine write_v_accel(i, J, vm, hin, ADp, CDp, dt, G, GV, US, CS, vel_rpt, st
497497
call get_date(CS%Time, yr, mo, day, hr, minute, sec)
498498
call get_time((CS%Time - set_date(yr, 1, 1, 0, 0, 0)), sec, yearday)
499499
write (file,'(/,"--------------------------")')
500-
write (file,'(/,"Time ",i5,i4,F6.2," V-velocity violation at ",I4,": ",2(I3), &
501-
& " (",F7.2," E ",F7.2," N) Layers ",I3," to ",I3,". dt = ",1PG10.4)') &
500+
write (file,'(/,"Time ",I0," ",I0," ",F6.2," V-velocity violation at ",I0,": ",I0,", ",I0, &
501+
& " (",F7.2," E ",F7.2," N) Layers ",I0," to ",I0,". dt = ",1PG10.4)') &
502502
yr, yearday, (REAL(sec)/3600.0), pe_here(), i, J, &
503503
G%geoLonCv(i,J), G%geoLatCv(i,J), ks, ke, US%T_to_s*dt
504504

0 commit comments

Comments
 (0)