@@ -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