Skip to content

Commit b8d553c

Browse files
changed precision of coordinates from real to double only for regridded SMC type grids.
1 parent c674de0 commit b8d553c

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

model/src/w3metamd.F90

+3-2
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,9 @@ SUBROUTINE META_LIST_APPEND_D(LIST, ATTNAME, DVAL)
258258

259259
TYPE(META_LIST_T), INTENT(INOUT) :: LIST
260260
CHARACTER(*), INTENT(IN) :: ATTNAME
261-
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
262-
REAL(dp), INTENT(IN) :: DVAL
261+
!INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
262+
!REAL(dp), INTENT(IN) :: DVAL
263+
DOUBLE PRECISION, INTENT(IN) :: DVAL
263264
!/ ------------------------------------------------------------------- /
264265
!/ Local parameters
265266
!/

model/src/w3ounfmetamd.F90

+6-4
Original file line numberDiff line numberDiff line change
@@ -1271,8 +1271,9 @@ SUBROUTINE GET_ATTVAL_TYPE(BUF, ILINE, ATTV, ATT_TYPE)
12711271
!
12721272
REAL :: R
12731273
INTEGER :: I, IERR
1274-
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
1275-
REAL(dp) :: D
1274+
!INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
1275+
!REAL(dp) :: D
1276+
DOUBLE PRECISION :: D
12761277

12771278
! Get attribute and type (default to "c" if no type set)
12781279
ATT_TYPE = 'c'
@@ -2337,8 +2338,9 @@ SUBROUTINE WRITE_FREEFORM_META_LIST(NCID, VARID, METALIST, ERR)
23372338
!/
23382339
INTEGER :: I, IVAL
23392340
REAL :: RVAL
2340-
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
2341-
REAL(dp) :: DVAL
2341+
!INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
2342+
!REAL(dp) :: DVAL
2343+
DOUBLE PRECISION :: DVAL
23422344
TYPE(META_PAIR_T), POINTER :: P
23432345

23442346
IF(METALIST%N .EQ. 0) RETURN

model/src/ww3_ounf.F90

+18-8
Original file line numberDiff line numberDiff line change
@@ -2303,15 +2303,19 @@ SUBROUTINE W3EXNC ( NX, NY, IX1, IXN, IY1, IYN, NSEA, &
23032303
!LON(1) = X0D
23042304
!LAT(1) = Y0D
23052305
DO i=1,NXO
2306-
lon(i)=DBLE(X0D+SXD*DBLE(i-1))
2306+
lon(i)=REAL(X0D+SXD*DBLE(i-1))
2307+
! KS: Regridded SMC data - use double precision
2308+
dbllon(i)=DBLE(X0D+SXD*DBLE(i-1))
23072309
#endif
23082310
#ifdef W3_RTD
23092311
LON2DEQ(i,:) = lon(i)
23102312
#endif
23112313
#ifdef W3_SMC
23122314
END DO
23132315
DO i=1,NYO
2314-
lat(i)=DBLE(Y0D+SYD*DBLE(i-1))
2316+
lat(i)=REAL(Y0D+SYD*DBLE(i-1))
2317+
! KS: Regridded SMC data - use double precision
2318+
dbllat(i)=DBLE(Y0D+SYD*DBLE(i-1))
23152319
#endif
23162320
#ifdef W3_RTD
23172321
LAT2DEQ(:,i) = lat(i)
@@ -2350,10 +2354,10 @@ SUBROUTINE W3EXNC ( NX, NY, IX1, IXN, IY1, IYN, NSEA, &
23502354
!LON(1) = X0D
23512355
!LAT(1) = Y0D
23522356
DO I=1,NX
2353-
LON(I)=DBLE(X0D+SXD*DBLE(I-1))
2357+
LON(I)=REAL(X0D+SXD*DBLE(I-1))
23542358
END DO
23552359
DO I=1,NY
2356-
LAT(I)=DBLE(Y0D+SYD*DBLE(I-1))
2360+
LAT(I)=REAL(Y0D+SYD*DBLE(I-1))
23572361
END DO
23582362
#ifdef W3_RTD
23592363
IF ( RTDL ) THEN
@@ -2475,16 +2479,22 @@ SUBROUTINE W3EXNC ( NX, NY, IX1, IXN, IY1, IYN, NSEA, &
24752479
IF (GTYPE.EQ.RLGTYPE .OR. GTYPE.EQ.SMCTYPE) THEN
24762480
IF(SMCGRD) THEN ! CB: shelter original code from SMC grid
24772481
#ifdef W3_SMC
2478-
IRET=NF90_PUT_VAR(NCID,VARID(1),LON(:))
2479-
CALL CHECK_ERR(IRET)
2480-
IRET=NF90_PUT_VAR(NCID,VARID(2),LAT(:))
2481-
CALL CHECK_ERR(IRET)
24822482
IF(SMCOTYPE .EQ. 1) THEN
2483+
IRET=NF90_PUT_VAR(NCID,VARID(1),LON(:))
2484+
CALL CHECK_ERR(IRET)
2485+
IRET=NF90_PUT_VAR(NCID,VARID(2),LAT(:))
2486+
CALL CHECK_ERR(IRET)
2487+
24832488
! For type 1 SCM file also put lat/lons and cell sizes:
24842489
IRET=NF90_PUT_VAR(NCID,VARID(5),SMCCX)
24852490
CALL CHECK_ERR(IRET)
24862491
IRET=NF90_PUT_VAR(NCID,VARID(6),SMCCY)
24872492
CALL CHECK_ERR(IRET)
2493+
ELSE ! KS: Regridded SMC data - use double precision
2494+
IRET=NF90_PUT_VAR(NCID,VARID(1),dbllon(:))
2495+
CALL CHECK_ERR(IRET)
2496+
IRET=NF90_PUT_VAR(NCID,VARID(2),dbllat(:))
2497+
CALL CHECK_ERR(IRET)
24882498
ENDIF
24892499
#endif
24902500
ELSE ! SMCGRD

0 commit comments

Comments
 (0)