Skip to content

Commit 7b784e2

Browse files
committed
Revert fcoo handling of "fillval as zeros"
1 parent 2fdec0f commit 7b784e2

File tree

1 file changed

+38
-25
lines changed

1 file changed

+38
-25
lines changed

model/src/ww3_prnc.F90

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2079,31 +2079,44 @@ PROGRAM W3PRNC
20792079
!
20802080
CALL INTERP(MXM, MYM, XC, IX21, IX22, IY21, IY22, &
20812081
RD11, RD12, RD21, RD22, FILLVALUE, FA)
2082-
END IF
2083-
2084-
WHERE ( XC.NE.FILLVALUE .AND. YC.NE.FILLVALUE)
2085-
XTEMP = XC*XC + YC*YC
2086-
ELSEWHERE
2087-
XTEMP = FILLVALUE
2088-
ENDWHERE
2089-
CALL INTERP(MXM, MYM, XTEMP, IX21, IX22, IY21, IY22, &
2090-
RD11, RD12, RD21, RD22, FILLVALUE, A3)
2091-
! CHA at FCOO: For at test I had padded zeros to the wind field over land areas
2092-
! and experienced that A3 got a (small) negative value after interpolation
2093-
! at a grid point. Then it failed in taking the SQRT below
2094-
! I haven't reported back to the WW3 dev community
2095-
A3 = ABS(A3)
2096-
2097-
WHERE ( XTEMP.NE.FILLVALUE )
2098-
XTEMP = SQRT(XTEMP)
2099-
ENDWHERE
2100-
CALL INTERP(MXM, MYM, XTEMP, IX21, IX22, IY21, IY22, &
2101-
RD11, RD12, RD21, RD22, FILLVALUE, A2)
2102-
2103-
DO IY=1,NY
2104-
DO IX=1,NX
2105-
A1(IX,IY) = MAX ( 1.E-10 , &
2106-
SQRT( FX(IX,IY)**2 + FY(IX,IY)**2 ) )
2082+
!
2083+
IF (NFCOMP.EQ.2) THEN
2084+
#ifdef W3_O3
2085+
IF ( IAPROC .EQ. NAPOUT ) WRITE (NDSO,976) ' (2) '
2086+
#endif
2087+
CALL INTERP(MXM, MYM, YC, JX21, JX22, JY21, JY22, &
2088+
XD11, XD12, XD21, XD22, FILLVALUE, FA)
2089+
END IF
2090+
!
2091+
! ... Two-component fields
2092+
!
2093+
ELSE !so if IFLD.GT.2
2094+
!
2095+
CALL INTERP(MXM, MYM, XC, IX21, IX22, IY21, IY22, &
2096+
RD11, RD12, RD21, RD22, FILLVALUE, FX)
2097+
2098+
CALL INTERP(MXM, MYM, YC, IX21, IX22, IY21, IY22, &
2099+
RD11, RD12, RD21, RD22, FILLVALUE, FY)
2100+
2101+
IF(FLSTAB) THEN
2102+
! AC only populated if FLSTAB is true
2103+
CALL INTERP(MXM, MYM, AC, IX21, IX22, IY21, IY22, &
2104+
RD11, RD12, RD21, RD22, FILLVALUE, FA)
2105+
ENDIF
2106+
2107+
WHERE ( XC.NE.FILLVALUE .AND. YC.NE.FILLVALUE)
2108+
XTEMP = XC*XC + YC*YC
2109+
ELSEWHERE
2110+
XTEMP = FILLVALUE
2111+
ENDWHERE
2112+
CALL INTERP(MXM, MYM, XTEMP, IX21, IX22, IY21, IY22, &
2113+
RD11, RD12, RD21, RD22, FILLVALUE, A3)
2114+
2115+
WHERE ( XTEMP.NE.FILLVALUE )
2116+
XTEMP = SQRT(XTEMP)
2117+
ENDWHERE
2118+
CALL INTERP(MXM, MYM, XTEMP, IX21, IX22, IY21, IY22, &
2119+
RD11, RD12, RD21, RD22, FILLVALUE, A2)
21072120

21082121
DO IY=1,NY
21092122
DO IX=1,NX

0 commit comments

Comments
 (0)