Perform actual output for GrADS postprocessing.
866 INTEGER,
INTENT(IN) :: NX, NY, NSEA
871 INTEGER :: IX, IY, J, ISEA, IXL, IXR
872 INTEGER :: MAPXCL(NY,NX), MAPDRY(NY,NX), &
873 MAPICE(NY,NX), MAPLND(NY,NX), &
876 INTEGER,
SAVE :: IENT = 0
878 REAL :: X1(NX,NY), XX(NX,NY), XY(NX,NY), &
880 REAL :: VALLND = 0.001
885 CALL strace (ient,
'GXEXGO')
889 WRITE (ndst,9000) ((flreq(j,k),j=1,nogrp), k=1,ngrpp)
896 mapxcl = mod(mapst2,2)
897 mapice = mod(mapst2,2)
898 mapdry = mod(mapst2/2,2)
899 maplnd = mod(mapst2/4,2)
900 mapmsk = mod(mapst2/8,2)
904 IF ( mapsta(iy,ix).EQ.0 )
THEN
905 IF ( mapxcl(iy,ix).EQ.1 )
THEN
910 ELSE IF ( mapsta(iy,ix).LT.0 )
THEN
911 IF ( mapmsk(iy,ix).EQ.1 )
THEN
913 ELSE IF ( maplnd(iy,ix).EQ.1 )
THEN
915 ELSE IF ( mapice(iy,ix).EQ.1 .AND. &
916 mapdry(iy,ix).EQ.1 )
THEN
918 ELSE IF ( mapdry(iy,ix).EQ.1 )
THEN
920 ELSE IF ( mapice(iy,ix).EQ.1 )
THEN
926 x1(ix,iy) = real(mapsta(iy,ix))
928 IF ( mapsta(iy,ix) .GT. 0 ) x1(ix,iy) =
undef
929 ELSE IF ( mbout )
THEN
930 IF ( mapsta(iy,ix).EQ.2 .OR. &
931 iy.EQ.1 .OR. iy.EQ.ny .OR. &
932 ( iclose.NE.iclo_none .AND. &
933 (ix.EQ.1 .OR. ix.EQ.nx) ) )
THEN
936 ixl = 1 + mod(ix+nx-2,nx)
938 IF ( mapsta(iy+1,ixl).EQ.0 .AND. &
939 mapxcl(iy+1,ixl).EQ.1 ) x1(ix,iy) =
undef
940 IF ( mapsta(iy+1,ix ).EQ.0 .AND. &
941 mapxcl(iy+1,ix ).EQ.1 ) x1(ix,iy) =
undef
942 IF ( mapsta(iy+1,ixr).EQ.0 .AND. &
943 mapxcl(iy+1,ixr).EQ.1 ) x1(ix,iy) =
undef
944 IF ( mapsta( iy ,ixr).EQ.0 .AND. &
945 mapxcl( iy ,ixr).EQ.1 ) x1(ix,iy) =
undef
946 IF ( mapsta(iy-1,ixr).EQ.0 .AND. &
947 mapxcl(iy-1,ixr).EQ.1 ) x1(ix,iy) =
undef
948 IF ( mapsta(iy-1,ix ).EQ.0 .AND. &
949 mapxcl(iy-1,ix ).EQ.1 ) x1(ix,iy) =
undef
950 IF ( mapsta(iy-1,ixl).EQ.0 .AND. &
951 mapxcl(iy-1,ixl).EQ.1 ) x1(ix,iy) =
undef
952 IF ( mapsta( iy ,ixl).EQ.0 .AND. &
953 mapxcl( iy ,ixl).EQ.1 ) x1(ix,iy) =
undef
956 IF ( msout .AND. mapsta(iy,ix).EQ.1 ) x1(ix,iy) =
undef
957 IF ( mbout .AND. mapsta(iy,ix).EQ.2 ) x1(ix,iy) =
undef
963 WRITE (ndsdat) ((x1(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
978 IF ( flreq(j,k) )
THEN
988 WRITE (ndst,9020) idout(j,k)
995 IF ( j.EQ.1 .AND. k.EQ.1 )
THEN
997 CALL w3s2xy ( nsea, nsea, nx, ny, dw(1:nsea) &
1002 ELSE IF ( j.EQ.1 .AND. k.EQ.2 )
THEN
1004 CALL w3s2xy ( nsea, nsea, nx, ny, cx(1:nsea) &
1006 CALL w3s2xy ( nsea, nsea, nx, ny, cy(1:nsea) &
1011 ELSE IF ( j.EQ.1 .AND. k.EQ.3 )
THEN
1013 CALL w3s2xy ( nsea, nsea, nx, ny, ua(1:nsea) &
1015 CALL w3s2xy ( nsea, nsea, nx, ny, ud(1:nsea) &
1020 ELSE IF ( j.EQ.1 .AND. k.EQ.4 )
THEN
1022 CALL w3s2xy ( nsea, nsea, nx, ny, as(1:nsea) &
1027 ELSE IF ( j.EQ.1 .AND. k.EQ.5 )
THEN
1029 CALL w3s2xy ( nsea, nsea, nx, ny, wlv , mapsf, x1 )
1033 ELSE IF ( j.EQ.1 .AND. k.EQ.6 )
THEN
1035 CALL w3s2xy ( nsea, nsea, nx, ny, ice , mapsf, x1 )
1039 ELSE IF ( j.EQ.1 .AND. k.EQ.8 )
THEN
1041 CALL w3s2xy ( nsea, nsea, nx, ny, taua(1:nsea) &
1043 CALL w3s2xy ( nsea, nsea, nx, ny, tauadir(1:nsea) &
1048 ELSE IF ( j.EQ.1 .AND. k.EQ.9 )
THEN
1050 CALL w3s2xy ( nsea, nsea, nx, ny, rhoair, mapsf, x1 )
1055 ELSE IF ( j.EQ.1 .AND. k.EQ.11 )
THEN
1057 CALL w3s2xy (nsea, nsea, nx, ny, iceh , mapsf, x1 )
1063 ELSE IF ( j.EQ.1 .AND. k.EQ.12)
THEN
1065 CALL w3s2xy (nsea, nsea, nx, ny, icef , mapsf, x1 )
1071 ELSE IF ( j.EQ.2 .AND. k.EQ.1 )
THEN
1073 CALL w3s2xy ( nsea, nsea, nx, ny, hs , mapsf, x1 )
1077 ELSE IF ( j.EQ.2 .AND. k.EQ.2 )
THEN
1079 CALL w3s2xy ( nsea, nsea, nx, ny, wlm , mapsf, x1 )
1083 ELSE IF ( j.EQ.2 .AND. k.EQ.3 )
THEN
1085 CALL w3s2xy ( nsea, nsea, nx, ny, t02 , mapsf, x1 )
1089 ELSE IF ( j.EQ.2 .AND. k.EQ.4 )
THEN
1091 CALL w3s2xy ( nsea, nsea, nx, ny, t0m1 , mapsf, x1 )
1095 ELSE IF ( j.EQ.2 .AND. k.EQ.5 )
THEN
1097 CALL w3s2xy ( nsea, nsea, nx, ny, t01 , mapsf, x1 )
1101 ELSE IF ( j.EQ.2 .AND. k.EQ.6 )
THEN
1103 CALL w3s2xy ( nsea, nsea, nx, ny, fp0 , mapsf, x1 )
1107 ELSE IF ( j.EQ.2 .AND. k.EQ.7 )
THEN
1109 CALL w3s2xy ( nsea, nsea, nx, ny, thm , mapsf, x1 )
1113 ELSE IF ( j.EQ.2 .AND. k.EQ.8 )
THEN
1115 CALL w3s2xy ( nsea, nsea, nx, ny, ths , mapsf, x1 )
1119 ELSE IF ( j.EQ.2 .AND. k.EQ.9 )
THEN
1121 CALL w3s2xy ( nsea, nsea, nx, ny, thp0 , mapsf, x1 )
1125 ELSE IF ( j.EQ.2 .AND. k.EQ.17 )
THEN
1127 CALL w3s2xy ( nsea, nsea, nx, ny, wbt , mapsf, x1 )
1131 ELSE IF ( j.EQ.4 .AND. k.EQ.1 )
THEN
1134 CALL w3s2xy ( nsea, nsea, nx, ny, phs(:,i), &
1140 ELSE IF ( j.EQ.4 .AND. k.EQ.2 )
THEN
1143 CALL w3s2xy ( nsea, nsea, nx, ny, ptp(:,i), &
1149 ELSE IF ( j.EQ.4 .AND. k.EQ.3 )
THEN
1152 CALL w3s2xy ( nsea, nsea, nx, ny, plp(:,i), &
1158 ELSE IF ( j.EQ.4 .AND. k.EQ.4 )
THEN
1161 CALL w3s2xy ( nsea, nsea, nx, ny, pdir(:,i), &
1167 ELSE IF ( j.EQ.4 .AND. k.EQ.5 )
THEN
1170 CALL w3s2xy ( nsea, nsea, nx, ny, psi(:,i), &
1176 ELSE IF ( j.EQ.4 .AND. k.EQ.6 )
THEN
1179 CALL w3s2xy ( nsea, nsea, nx, ny, pws(:,i), &
1185 ELSE IF ( j.EQ.4 .AND. k.EQ.7 )
THEN
1188 CALL w3s2xy ( nsea, nsea, nx, ny, pthp0(:,i), &
1194 ELSE IF ( j.EQ.4 .AND. k.EQ.8 )
THEN
1197 CALL w3s2xy ( nsea, nsea, nx, ny, pqp(:,i), &
1204 ELSE IF ( j.EQ.4 .AND. k.EQ.9 )
THEN
1207 CALL w3s2xy ( nsea, nsea, nx, ny, ppe(:,i), &
1214 ELSE IF ( j.EQ.4 .AND. k.EQ.10 )
THEN
1217 CALL w3s2xy ( nsea, nsea, nx, ny, pgw(:,i), &
1224 ELSE IF ( j.EQ.4 .AND. k.EQ.11 )
THEN
1227 CALL w3s2xy ( nsea, nsea, nx, ny, psw(:,i), &
1234 ELSE IF ( j.EQ.4 .AND. k.EQ.12 )
THEN
1237 CALL w3s2xy ( nsea, nsea, nx, ny, ptm1(:,i), &
1244 ELSE IF ( j.EQ.4 .AND. k.EQ.13 )
THEN
1247 CALL w3s2xy ( nsea, nsea, nx, ny, pt1(:,i), &
1254 ELSE IF ( j.EQ.4 .AND. k.EQ.14 )
THEN
1257 CALL w3s2xy ( nsea, nsea, nx, ny, pt2(:,i), &
1264 ELSE IF ( j.EQ.4 .AND. k.EQ.15 )
THEN
1267 CALL w3s2xy ( nsea, nsea, nx, ny, pep(:,i), &
1273 ELSE IF ( j.EQ.4 .AND. k.EQ.16 )
THEN
1275 CALL w3s2xy ( nsea, nsea, nx, ny, pwst ,mapsf, x1 )
1279 ELSE IF ( j.EQ.4 .AND. k.EQ.17 )
THEN
1281 CALL w3s2xy ( nsea, nsea, nx, ny, pnr , mapsf, x1 )
1285 ELSE IF ( j.EQ.5 .AND. k.EQ.1 )
THEN
1287 CALL w3s2xy ( nsea, nsea, nx, ny, ust(1:nsea) &
1289 CALL w3s2xy ( nsea, nsea, nx, ny, ustdir(1:nsea) &
1294 ELSE IF ( j.EQ.5 .AND. k.EQ.2 )
THEN
1296 CALL w3s2xy ( nsea, nsea, nx, ny, charn , mapsf, x1 )
1300 ELSE IF ( j.EQ.5 .AND. k.EQ.3 )
THEN
1302 CALL w3s2xy ( nsea, nsea, nx, ny, cge , mapsf, x1 )
1306 ELSE IF ( j.EQ.5 .AND. k.EQ.4 )
THEN
1308 CALL w3s2xy ( nsea, nsea, nx, ny, phiaw , mapsf, x1 )
1312 ELSE IF ( j.EQ.5 .AND. k.EQ.5 )
THEN
1314 CALL w3s2xy ( nsea, nsea, nx, ny, tauwix, mapsf, xx )
1315 CALL w3s2xy ( nsea, nsea, nx, ny, tauwiy, mapsf, xy )
1319 ELSE IF ( j.EQ.5 .AND. k.EQ.6 )
THEN
1321 CALL w3s2xy ( nsea, nsea, nx, ny, tauwnx, mapsf, xx )
1322 CALL w3s2xy ( nsea, nsea, nx, ny, tauwny, mapsf, xy )
1326 ELSE IF ( j.EQ.8 .AND. k.EQ.5 )
THEN
1328 CALL w3s2xy ( nsea, nsea, nx, ny, qp , mapsf, x1 )
1332 ELSE IF ( j.EQ.9 .AND. k.EQ.1 )
THEN
1335 IF ( dtdyn(isea) .NE.
undef ) &
1336 dtdyn(isea) = dtdyn(isea) / 60.
1338 CALL w3s2xy ( nsea, nsea, nx, ny, dtdyn , mapsf, x1 )
1342 ELSE IF ( j.EQ.9 .AND. k.EQ.2 )
THEN
1344 CALL w3s2xy ( nsea, nsea, nx, ny, fcut , mapsf, x1 )
1348 ELSE IF ( j.EQ.9 .AND. k.EQ.3 )
THEN
1350 CALL w3s2xy ( nsea, nsea, nx, ny, cflxymax , mapsf, x1 )
1354 ELSE IF ( j.EQ.9 .AND. k.EQ.4 )
THEN
1356 CALL w3s2xy ( nsea, nsea, nx, ny, cflthmax , mapsf, x1 )
1362 ELSE IF ( j.EQ.7 .AND. k.EQ.1 )
THEN
1364 CALL w3s2xy ( nsea, nsea, nx, ny, aba , mapsf, xx )
1365 CALL w3s2xy ( nsea, nsea, nx, ny, abd , mapsf, xy )
1369 ELSE IF ( j.EQ.7 .AND. k.EQ.2 )
THEN
1371 CALL w3s2xy ( nsea, nsea, nx, ny, uba , mapsf, xx )
1372 CALL w3s2xy ( nsea, nsea, nx, ny, ubd , mapsf, xy )
1376 ELSE IF ( j.EQ.6 .AND. k.EQ.1 )
THEN
1378 CALL w3s2xy ( nsea, nsea, nx, ny, sxx , mapsf, x1 )
1379 CALL w3s2xy ( nsea, nsea, nx, ny, syy , mapsf, xx )
1380 CALL w3s2xy ( nsea, nsea, nx, ny, sxy , mapsf, xy )
1384 ELSE IF ( j.EQ.10 .AND. k.EQ.1 )
THEN
1386 CALL w3s2xy ( nsea, nsea, nx, ny, usero(:,1) &
1391 ELSE IF ( j.EQ.10 .AND. k.EQ.2 )
THEN
1393 CALL w3s2xy ( nsea, nsea, nx, ny, usero(:,2) &
1397 WRITE (ndse,990) j, k
1409 ((x1(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1411 ((xx(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1413 ((xy(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1417 ELSE IF ( flprt )
THEN
1420 ((xa(ix,iy,i),ix=ix0,ixn),iy=iy0,iyn)
1425 ELSE IF ( fltwo )
THEN
1427 ((xx(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1429 ((xy(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1433 ELSE IF ( flone )
THEN
1435 ((x1(ix,iy),ix=ix0,ixn),iy=iy0,iyn)
1450 940
FORMAT (1x,i8,3i3.2,2x,4e12.4)
1451 950
FORMAT (1x,a13,i9.8,i7.6,2(2f8.2,i4), &
1452 1x,a4,f8.4,1x,a10,2i2,1x,a11,i4)
1453 951
FORMAT (1x,2f10.5,2i8)
1455 990
FORMAT (/
' *** WAVEWATCH III ERROR IN W3EXGO :'/ &
1456 ' GROUP',i2,
' PARAMETER',i3,
' NOT LISTED ' )
1457 999
FORMAT (/
' *** WAVEWATCH III ERROR IN GXEXGO :'/ &
1458 ' PLEASE UPDATE FIELDS !!! '/)
1461 9000
FORMAT (
' TEST GXEXGO : FLAGS :',40l2)
1462 9020
FORMAT (
' TEST GXEXGO : OUTPUT FIELD : ',a)