Skip to content

Commit 924fe89

Browse files
authored
Merge pull request #293 from GEOS-ESM/bugfix/mathomp4/v12-r8fv-fix
v12: precision fixes for R8 Builds
2 parents a5c3af0 + 9953d8b commit 924fe89

File tree

2 files changed

+52
-52
lines changed

2 files changed

+52
-52
lines changed

fv_regrid_c2c.F90

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ module fv_regrid_c2c
5555
module procedure read_topo_file_r4
5656
module procedure read_topo_file_r8
5757
end interface
58-
58+
5959
contains
60-
60+
6161
subroutine read_topo_file_r4(fname,output,grid,rc)
6262
character(len=*), intent(in) :: fname
6363
type(ESMF_Grid), intent(in) :: grid
6464
real(REAL32), intent(inout) :: output(:,:)
6565
integer, intent(out), optional :: rc
66-
66+
6767
integer :: status,dims(3),funit
6868
integer :: rank
6969
type(ESMF_VM) :: vm
@@ -89,7 +89,7 @@ subroutine read_topo_file_r8(fname,output,grid,rc)
8989
type(ESMF_Grid), intent(in) :: grid
9090
real(REAL64), intent(inout) :: output(:,:)
9191
integer, intent(out), optional :: rc
92-
92+
9393
integer :: status,dims(3),funit
9494
real, allocatable :: input(:,:)
9595
integer :: rank
@@ -104,7 +104,7 @@ subroutine read_topo_file_r8(fname,output,grid,rc)
104104
open(newunit=funit,file=trim(fname),form='unformatted',iostat=status)
105105
_VERIFY(status)
106106
read(funit)input
107-
input_r8 = input
107+
input_r8 = input
108108
else
109109
allocate(input(0,0),input_r8(0,0))
110110
end if
@@ -189,7 +189,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
189189
character(len=:), pointer :: var_name
190190
type(StringVariableMap), pointer :: variables
191191
type(Variable), pointer :: myVariable
192-
type(StringVector) :: all_moist_vars
192+
type(StringVector) :: all_moist_vars
193193
type(StringVector), pointer :: var_dimensions
194194
type(StringVectorIterator) :: siter
195195
type(StringVector) :: moist_variables
@@ -211,7 +211,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
211211
isd_i = Atm_i(1)%bd%isd
212212
ied_i = Atm_i(1)%bd%ied
213213
jsd_i = Atm_i(1)%bd%jsd
214-
jed_i = Atm_i(1)%bd%jed
214+
jed_i = Atm_i(1)%bd%jed
215215
is_i = Atm_i(1)%bd%is
216216
ie_i = Atm_i(1)%bd%ie
217217
js_i = Atm_i(1)%bd%js
@@ -228,9 +228,9 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
228228
jsd = Atm(1)%bd%jsd
229229
jed = Atm(1)%bd%jed
230230
is = Atm(1)%bd%is
231-
ie = Atm(1)%bd%ie
232-
js = Atm(1)%bd%js
233-
je = Atm(1)%bd%je
231+
ie = Atm(1)%bd%ie
232+
js = Atm(1)%bd%js
233+
je = Atm(1)%bd%je
234234
ng = Atm(1)%ng
235235

236236
! Zero out all initial tracer fields:
@@ -265,7 +265,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
265265

266266
if( is_master() ) then
267267
print *
268-
write(*,*) 'Input Vertical Grid'
268+
write(*,*) 'Input Vertical Grid'
269269
write(*,*) '--------------------'
270270
write(6,100)
271271
100 format(2x,' k ',' A(k) ',2x,' B(k) ',2x,' Pref ',2x,' DelP',/, &
@@ -283,7 +283,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
283283

284284
! Read U
285285
allocate ( u0(isd_i:ied_i,jsd_i:jed_i+1,km) )
286-
u0(:,:,:) = 0.0
286+
u0(:,:,:) = 0.0
287287
do k=1,km
288288
call MAPL_VarRead(formatter,"U",u0(is_i:ie_i,js_i:je_i,k),arrdes=Arrdes_i,lev=k)
289289
enddo
@@ -304,7 +304,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
304304
sbufferx=sbuffer, nbufferx=nbuffer, &
305305
gridtype=DGRID_NE )
306306
do k=1,km
307-
do i=is_i,ie_i
307+
do i=is_i,ie_i
308308
u0(i,je_i+1,k) = nbuffer(i,k)
309309
enddo
310310
do j=js_i,je_i
@@ -337,9 +337,9 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
337337
sbufferx=sbuffer, nbufferx=nbuffer, &
338338
gridtype=DGRID_NE )
339339
do k=1,km
340-
do i=is,ie
340+
do i=is,ie
341341
ud(i,je+1,k) = nbuffer(i,k)
342-
enddo
342+
enddo
343343
do j=js,je
344344
vd(ie+1,j,k) = ebuffer(j,k)
345345
enddo
@@ -388,7 +388,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
388388
enddo
389389
call prt_maxmin('PT_geos', t0, is_i, ie_i, js_i, je_i, 0, km, 1.0_FVPRC)
390390
call print_memuse_stats('get_geos_cubed_ic: read T')
391-
! Read PE
391+
! Read PE
392392
allocate ( pe0(is_i:ie_i,js_i:je_i,km+1) )
393393
do k=1,km+1
394394
call MAPL_VarRead(formatter,"PE",pe0(is_i:ie_i,js_i:je_i,k),arrdes=Arrdes_i,lev=k)
@@ -433,7 +433,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
433433
call read_topo_file(fname1,gz0(is_i:ie_i,js_i:je_i),grid_i)
434434
gz0 = gz0*grav
435435

436-
! Horiz Interp for surface pressure
436+
! Horiz Interp for surface pressure
437437
allocate( psc(is:ie,js:je) )
438438
call prt_maxmin('PS_geos', ps0, is_i, ie_i, js_i, je_i, 0, 1, 1.0_FVPRC)
439439
call regridder%regrid(ps0(is_i:ie_i,js_i:je_i),psc(is:ie,js:je),rc=status)
@@ -477,7 +477,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
477477
if (ndims == 3) call moist_variables%push_back(trim(var_name))
478478
call siter%next()
479479
enddo
480-
if (moist_variables%size() /= atm(1)%ncnst) call mpp_error(FATAL,'Wrong number of variables in moist file')
480+
if (moist_variables%size() /= atm(1)%ncnst) call mpp_error(FATAL,'Wrong number of variables in moist file')
481481

482482
lvar_cnt=0
483483
do ivar=1,Atm(1)%ncnst
@@ -545,15 +545,15 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
545545
do i=1,size(extra_rst)
546546
do j=1,size(extra_rst(i)%vars)
547547
if (extra_rst(i)%vars(j)%nLev/=1) then
548-
if (extra_rst(i)%vars(j)%nLev == npz) then
548+
if (extra_rst(i)%vars(j)%nLev == npz) then
549549
tracer_bundles(i)%vars(j)%nLev=km
550550
call tracer_bundles(i)%vars(j)%alloc_var(is,ie,js,je,km)
551551
else if (extra_rst(i)%vars(j)%nLev == npz+1) then
552552
tracer_bundles(i)%vars(j)%nLev=km+1
553553
call tracer_bundles(i)%vars(j)%alloc_var(is,ie,js,je,km+1)
554-
end if
554+
end if
555555
else
556-
call tracer_bundles(i)%vars(j)%alloc_Var(is,ie,js,je)
556+
call tracer_bundles(i)%vars(j)%alloc_Var(is,ie,js,je)
557557
end if
558558
enddo
559559
enddo
@@ -589,7 +589,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
589589
do n_ungrid=1,tracer_bundles(ifile)%vars(ivar)%n_ungrid
590590
do k=1,nlev
591591
call MAPL_VarRead(formatter,vname,qlev(is_i:ie_i,js_i:je_i),arrdes=Arrdes_i,lev=k,offset2=n_ungrid)
592-
q0(is_i:ie_i,js_i:je_i,k) = qlev(is_i:ie_i,js_i:je_i)
592+
q0(is_i:ie_i,js_i:je_i,k) = qlev(is_i:ie_i,js_i:je_i)
593593
call regridder%regrid(qlev(is_i:ie_i,js_i:je_i),tracer_bundles(ifile)%vars(ivar)%ptr4d(is:ie,js:je,k,n_ungrid),rc=status)
594594
enddo
595595
call prt_maxmin( trim(vname)//'_geos_'//trim(tracer_bundles(ifile)%file_name), q0, is_i, ie_i, js_i, je_i, 0, nlev, 1._FVPRC)
@@ -603,7 +603,7 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
603603

604604
enddo
605605
deallocate ( q0 )
606-
606+
607607
if (is_master()) print*, ''
608608
if (is_master()) print*, 'Vertical Remapping: '
609609
! Vert remap for scalars
@@ -649,12 +649,12 @@ subroutine get_geos_cubed_ic( Atm_i, Atm, grid_i, grid, Arrdes_i, extra_rst )
649649

650650
! Range check the MOIST tracers
651651
! Iterate over tracer names
652-
652+
653653
iter = moist_tracers%begin()
654654
do while (iter /= moist_tracers%end())
655655
iptr => iter%value()
656656
cptr => iter%key()
657-
if (.not.match(cptr)) then
657+
if (.not.match(cptr)) then
658658
do k=1,npz
659659
do j=js,je
660660
do i=is,ie
@@ -730,7 +730,7 @@ subroutine remap_winds(is,ie, js, je, isd,ied, jsd,jed, km, npz, ak0, bk0, psc,
730730
enddo
731731
enddo
732732
enddo
733-
call mpp_update_domains(pe0, Atm%domain)
733+
call mpp_update_domains(pe0, Atm%domain)
734734

735735
do k=1,npz+1
736736
do j=js,je
@@ -753,17 +753,17 @@ subroutine remap_winds(is,ie, js, je, isd,ied, jsd,jed, km, npz, ak0, bk0, psc,
753753
enddo
754754
do k=1,km
755755
do i=is,ie
756-
dpe0(i,k) = pe0d(i,k+1)-pe0d(i,k)
756+
dpe0(i,k) = pe0d(i,k+1)-pe0d(i,k)
757757
enddo
758758
enddo
759759
do k=1,npz+1
760760
do i=is,ie
761-
pe1d(i,k) = 0.5*(pe1(i,j-1,k)+pe1(i,j,k))
761+
pe1d(i,k) = 0.5*(pe1(i,j-1,k)+pe1(i,j,k))
762762
enddo
763763
enddo
764764
do k=1,npz
765765
do i=is,ie
766-
dpe1(i,k) = pe1d(i,k+1)-pe1d(i,k)
766+
dpe1(i,k) = pe1d(i,k+1)-pe1d(i,k)
767767
enddo
768768
enddo
769769
call map_scalar( km, pe0d, ud(is:ie,j,1:km), &
@@ -790,12 +790,12 @@ subroutine remap_winds(is,ie, js, je, isd,ied, jsd,jed, km, npz, ak0, bk0, psc,
790790
enddo
791791
do k=1,npz+1
792792
do i=is,ie
793-
pe1d(i,k) = 0.5*(pe1(i-1,j,k)+pe1(i,j,k))
793+
pe1d(i,k) = 0.5*(pe1(i-1,j,k)+pe1(i,j,k))
794794
enddo
795795
enddo
796796
do k=1,npz
797797
do i=is,ie
798-
dpe1(i,k) = pe1d(i,k+1)-pe1d(i,k)
798+
dpe1(i,k) = pe1d(i,k+1)-pe1d(i,k)
799799
enddo
800800
enddo
801801
call map_scalar( km, pe0d, vd(is:ie,j,1:km), &
@@ -824,14 +824,14 @@ end subroutine remap_winds
824824
subroutine xyz_to_dgrid(v3, ud, vd, npx, npy, is, ie, js, je, isd, ied, jsd, jed, gridstruct)
825825

826826
! Move A-Grid xyz winds to the D-grid cubed-sphere orientation
827-
827+
828828
! !INPUT/OUTPUT PARAMETERS:
829829
integer, intent(in) :: npx, npy, is, ie, js, je, isd, ied, jsd, jed
830830
real(REAL64) :: v3(3, isd:ied ,jsd:jed )
831831
real(FVPRC), intent(inout) :: ud(isd:ied,jsd:jed+1) ! U-Wind
832832
real(FVPRC), intent(inout) :: vd(isd:ied+1,jsd:jed) ! V-Wind
833833
type(fv_grid_type), intent(IN), target :: gridstruct
834-
! !Local Variables
834+
! !Local Variables
835835
integer :: i,j, im2,jm2
836836

837837
real(REAL64) :: ue(is-1:ie+1,js :je+1,3) ! 3D winds at edges
@@ -941,14 +941,14 @@ subroutine xyz_to_dgrid(v3, ud, vd, npx, npy, is, ie, js, je, isd, ied, jsd, jed
941941
do i=is,ie
942942
ud(i,j) = ue(i,j,1)*gridstruct%es(1,i,j,1) + &
943943
ue(i,j,2)*gridstruct%es(2,i,j,1) + &
944-
ue(i,j,3)*gridstruct%es(3,i,j,1)
944+
ue(i,j,3)*gridstruct%es(3,i,j,1)
945945
enddo
946946
enddo
947947
do j=js,je
948948
do i=is,ie+1
949949
vd(i,j) = ve(i,j,1)*gridstruct%ew(1,i,j,2) + &
950950
ve(i,j,2)*gridstruct%ew(2,i,j,2) + &
951-
ve(i,j,3)*gridstruct%ew(3,i,j,2)
951+
ve(i,j,3)*gridstruct%ew(3,i,j,2)
952952
enddo
953953
enddo
954954

@@ -961,11 +961,11 @@ subroutine d2a2d(ui, vi, uo, vo, Atm_i, Atm, regridder)
961961

962962
class(AbstractRegridder), pointer :: regridder
963963

964-
real(REAL32), dimension(Atm_i%bd%isd:Atm_i%bd%ied ,Atm_i%bd%jsd:Atm_i%bd%jed+1), intent(in) :: ui
965-
real(REAL32), dimension(Atm_i%bd%isd:Atm_i%bd%ied+1,Atm_i%bd%jsd:Atm_i%bd%jed ), intent(in) :: vi
964+
real(FVPRC), dimension(Atm_i%bd%isd:Atm_i%bd%ied ,Atm_i%bd%jsd:Atm_i%bd%jed+1), intent(in) :: ui
965+
real(FVPRC), dimension(Atm_i%bd%isd:Atm_i%bd%ied+1,Atm_i%bd%jsd:Atm_i%bd%jed ), intent(in) :: vi
966966

967-
real(REAL32), dimension(Atm%bd%isd:Atm%bd%ied ,Atm%bd%jsd:Atm%bd%jed+1), intent(inout) :: uo
968-
real(REAL32), dimension(Atm%bd%isd:Atm%bd%ied+1,Atm%bd%jsd:Atm%bd%jed ), intent(inout) :: vo
967+
real(FVPRC), dimension(Atm%bd%isd:Atm%bd%ied ,Atm%bd%jsd:Atm%bd%jed+1), intent(inout) :: uo
968+
real(FVPRC), dimension(Atm%bd%isd:Atm%bd%ied+1,Atm%bd%jsd:Atm%bd%jed ), intent(inout) :: vo
969969

970970
!------------------------------------------------------------------!
971971
! local variables !
@@ -1034,7 +1034,7 @@ subroutine d2a2d(ui, vi, uo, vo, Atm_i, Atm, regridder)
10341034
tmp_i = va_xyz_i(n,:,:)
10351035
call regridder%regrid(tmp_i( is: ie, js: je), &
10361036
tmp_o(Atm%bd%is:Atm%bd%ie,Atm%bd%js:Atm%bd%je), rc=status)
1037-
call mpp_update_domains(tmp_o, Atm%domain)
1037+
call mpp_update_domains(tmp_o, Atm%domain)
10381038
va_xyz_o(n,:,:) = tmp_o
10391039
enddo
10401040
!------------------------------------------------------------!
@@ -1046,6 +1046,6 @@ subroutine d2a2d(ui, vi, uo, vo, Atm_i, Atm, regridder)
10461046
Atm%gridstruct)
10471047

10481048
end subroutine d2a2d
1049-
1049+
10501050
end module fv_regrid_c2c
10511051

interp_restarts.F90

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ program interp_restarts
77
! to the cubed-sphere grid with optional vertical levels !
88
!--------------------------------------------------------------------!
99
use ESMF
10-
use MAPL
10+
use MAPL
1111
use mpp_mod, only: mpp_error, FATAL, NOTE, mpp_root_pe, mpp_broadcast
1212
use fms_mod, only: print_memory_usage, fms_init, fms_end, file_exist
1313
use fv_control_mod, only: fv_init1, fv_init2, fv_end
@@ -308,7 +308,7 @@ program interp_restarts
308308
if( is_master() ) then
309309
print *
310310
write(*,*) 'Output Vertical Grid'
311-
write(*,*) '--------------------'
311+
write(*,*) '--------------------'
312312
write(6,100)
313313
100 format(2x,' k ',' A(k) ',2x,' B(k) ',2x,' Pref ',2x,' DelP',/, &
314314
1x,'----',3x,'----------',2x,'--------',2x,'----------',2x,'---------' )
@@ -528,7 +528,7 @@ program interp_restarts
528528
! PT
529529
if (is_master()) print*, 'Writing : ', TRIM(fname1), ' PT'
530530
r4_local(is:ie,js:je,1:npz) = pt_local
531-
call prt_mxm('PT', r4_local, is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
531+
call prt_mxm('PT', real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
532532
call MAPL_VarWrite(OutFmt,"PT",pt_local(is:ie,js:je,1:npz),arrdes=arrdes,rc=status)
533533
VERIFY_(status)
534534

@@ -537,7 +537,7 @@ program interp_restarts
537537
do k=1,npz+1
538538
r4_local(is:ie,js:je,k)= Atm(1)%pe(is:ie,k,js:je)
539539
enddo
540-
call prt_mxm('PE', r4_local, is, ie, js, je, 0, npz+1, 1.0, Atm(1)%gridstruct%area_64, Atm(1)%domain)
540+
call prt_mxm('PE', real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz+1, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
541541
do k=1,npz+1
542542
r8_local(is:ie,js:je,k) = Atm(1)%pe(is:ie,k,js:je)
543543
enddo
@@ -546,7 +546,7 @@ program interp_restarts
546546
! PKZ
547547
if (is_master()) print*, 'Writing : ', TRIM(fname1), ' PKZ'
548548
r4_local(is:ie,js:je,1:npz) = Atm(1)%pkz(is:ie,js:je,1:npz)
549-
call prt_mxm('PKZ', r4_local, is, ie, js, je, 0, npz, 1.0, Atm(1)%gridstruct%area_64, Atm(1)%domain)
549+
call prt_mxm('PKZ', real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
550550
r8_local(is:ie,js:je,1:npz) = Atm(1)%pkz(is:ie,js:je,1:npz)
551551
call MAPL_VarWrite(OutFmt,"PKZ",r8_local(is:ie,js:je,1:npz),arrdes=arrdes,rc=status)
552552
VERIFY_(status)
@@ -555,15 +555,15 @@ program interp_restarts
555555
! DZ
556556
if (is_master()) print*, 'Writing : ', TRIM(fname1), ' DZ'
557557
r4_local(is:ie,js:je,1:npz) = Atm(1)%delz(is:ie,js:je,1:npz)
558-
call prt_mxm('DZ', r4_local, is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
558+
call prt_mxm('DZ', real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
559559
r8_local(is:ie,js:je,1:npz) = Atm(1)%delz(is:ie,js:je,1:npz)
560560
call MAPL_VarWrite(OutFmt,"DZ",r8_local(is:ie,js:je,1:npz),arrdes=arrdes,rc=status)
561561
VERIFY_(status)
562562

563563
! W
564564
if (is_master()) print*, 'Writing : ', TRIM(fname1), ' W'
565565
r4_local(is:ie,js:je,1:npz) = Atm(1)%w(is:ie,js:je,1:npz)
566-
call prt_mxm('W', r4_local, is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
566+
call prt_mxm('W', real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
567567
r8_local(is:ie,js:je,1:npz) = Atm(1)%w(is:ie,js:je,1:npz)
568568
call MAPL_VarWrite(OutFmt,"W",r8_local(is:ie,js:je,1:npz),arrdes=arrdes,rc=status)
569569
VERIFY_(status)
@@ -649,7 +649,7 @@ program interp_restarts
649649
lcnt_var=lcnt_var+1
650650
end if
651651
r4_local(is:ie,js:je,1:npz) = Atm(1)%q(is:ie,js:je,:,iq0)
652-
call prt_mxm(trim(var_name), r4_local, is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
652+
call prt_mxm(trim(var_name), real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
653653
call MAPL_VarWrite(OutFmt,triM(var_name),r4_local(is:ie,js:je,1:npz),arrdes=arrdes,rc=status)
654654
VERIFY_(status)
655655
end if
@@ -708,11 +708,11 @@ program interp_restarts
708708
allocate(r4_local(is:ie,js:je,nlev))
709709
if (rst_files(ifile)%vars(iq)%rank ==2) then
710710
r4_local2d(is:ie,js:je)=rst_files(ifile)%vars(iq)%ptr2d(is:ie,js:je)
711-
call prt_mxm(trim(vname), r4_local2d, is, ie, js, je, 0, 1, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
711+
call prt_mxm(trim(vname), real(r4_local2d, kind=FVPRC), is, ie, js, je, 0, 1, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
712712
call MAPL_VarWrite(OutFmt,vname,r4_local2d(is:ie,js:je),arrdes=arrdes)
713713
else if (rst_files(ifile)%vars(iq)%rank ==3) then
714714
r4_local(is:ie,js:je,1:nlev)=rst_files(ifile)%vars(iq)%ptr3d(is:ie,js:je,1:nlev)
715-
call prt_mxm(trim(vname), r4_local, is, ie, js, je, 0, nlev, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
715+
call prt_mxm(trim(vname), real(r4_local, kind=FVPRC), is, ie, js, je, 0, nlev, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
716716
call MAPL_VarWrite(OutFmt,vname,r4_local(is:ie,js:je,1:nlev),arrdes)
717717
else if (rst_files(ifile)%vars(iq)%rank ==4) then
718718
do n=1,size(rst_files(ifile)%vars(iq)%ptr4d,4)
@@ -722,7 +722,7 @@ program interp_restarts
722722
call MAPL_VarWrite(OutFmt,vname,r4_local2d(is:ie,js:je),arrdes=arrdes,lev=k,offset2=n)
723723
if (k<=npz) r4_local(is:ie,js:je,k) = r4_local2d(is:ie,js:je)
724724
enddo
725-
call prt_mxm(trim(vname), r4_local, is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
725+
call prt_mxm(trim(vname), real(r4_local, kind=FVPRC), is, ie, js, je, 0, npz, 1.0_FVPRC, Atm(1)%gridstruct%area_64, Atm(1)%domain)
726726
enddo
727727
end if
728728
end do

0 commit comments

Comments
 (0)