Perform actual grid output in NetCDF file.
967 INTEGER,
INTENT(IN) :: NX, NY, IX1, IXN, IY1, IYN, NSEA, &
968 E3DF(3,5), P2MSF(3), US3DF(3), &
969 USSPF(2), NCTYPE, NCVARTYPEI
970 CHARACTER(30) :: FILEPREFIX
971 LOGICAL,
INTENT(IN) :: TOGETHER
972 LOGICAL,
INTENT(IN) :: FLG2D(NOGRP,NGRPP)
973 INTEGER,
INTENT(INOUT) :: NCIDS(NOGRP,NGRPP,NOSWLL + 1), S3
974 CHARACTER*30,
INTENT(IN) :: STRSTOPDATE
979 INTEGER :: IFI, IFJ, MFILL, I, J, ISEA, IX, IY, &
980 I1, J1, IPART, INDEXIPART, COORDTYPE
981 INTEGER :: S1, S2, S4, S5, NCID, OLDNCID, NDSDAT,&
982 NFIELD, N, IRET, IK, EXTRADIM, IVAR, &
984 INTEGER :: DIMID(6), VARID(300), START(4), &
985 COUNT(4), DIMLN(6),START1D(2), &
986 COUNT1D(2), DIMFIELD(3), &
987 STARTDATE(8), CURDATE(8), &
989 MAP(NX+1,NY), MP2(NX+1,NY)
993 INTEGER,
SAVE :: IENT = 0
997 INTEGER(KIND=2),
ALLOCATABLE :: MX1(:,:), MXX(:,:), MYY(:,:), &
998 MXY(:,:), MAPOUT(:,:)
1000 REAL :: CABS, UABS, MFILLR
1002 REAL,
PARAMETER :: LOG2=log(2.)
1005 REAL,
DIMENSION(:),
ALLOCATABLE :: LON, LAT, FREQ
1006 REAL,
DIMENSION(:,:),
ALLOCATABLE :: LON2D, LAT2D, ANGLD2D
1008 REAL,
DIMENSION(:,:),
ALLOCATABLE :: LON2DEQ, LAT2DEQ
1011 REAL,
ALLOCATABLE :: X1(:,:), X2(:,:), XX(:,:), XY(:,:), &
1012 XK(:,:,:), XXK(:,:,:), XYK(:,:,:), &
1013 MX1R(:,:), MXXR(:,:), MYYR(:,:), &
1016 DOUBLE PRECISION :: OUTJULDAY
1017 INTEGER(KIND=8) :: OUTSECS
1018 DOUBLE PRECISION :: SXD, SYD, X0D, Y0D
1020 CHARACTER*120 :: STR2
1021 CHARACTER*512 :: PARTCOM
1023 CHARACTER*30 :: FORMAT1
1024 CHARACTER*30 :: STRSTARTDATE
1025 CHARACTER :: FNAMENC*128, &
1027 CHARACTER,
SAVE :: OLDTIMEID*16 =
'0000000000000000'
1028 CHARACTER,
SAVE :: TIMEID*16 =
'0000000000000000'
1030 LOGICAL :: FLFRQ, FLDIR, FEXIST, FREMOVE
1031 LOGICAL :: CUSTOMFRQ=.false.
1033 LOGICAL :: LTEMP(NGRPP)
1036 TYPE(META_T) :: META(3)
1043 CALL strace (ient,
'W3EXNC')
1048 ltemp = flg2d(ifi,:)
1049 WRITE (
ndst,9000) ifi, ltemp
1051 WRITE (
ndst,9001) nctype, ix1, ixn, iy1, iyn, vector
1064 ALLOCATE(x1(nxo,nyo), x2(nxo,nyo), xx(nxo,nyo), xy(nxo,nyo))
1065 ALLOCATE(xk(nxo,nyo,nk), xxk(nxo,nyo,nk), xyk(nxo,nyo,nk))
1067 ALLOCATE(mx1(nxo,nyo), mxx(nxo,nyo), myy(nxo,nyo), &
1068 mxy(nxo,nyo), mapout(nxo,nyo))
1069 ALLOCATE(mx1r(nxo,nyo), mxxr(nxo,nyo), myyr(nxo,nyo), mxyr(nxo,nyo))
1072 ALLOCATE(x1(nx+1,ny),x2(nx+1,ny),xx(nx+1,ny),xy(nx+1,ny))
1073 ALLOCATE(xk(nx+1,ny,nk), xxk(nx+1,ny,nk), xyk(nx+1,ny,nk))
1074 ALLOCATE(mx1(nx,ny), mxx(nx,ny), myy(nx,ny), mxy(nx,ny), mapout(nx,ny))
1075 ALLOCATE(mx1r(nx,ny), mxxr(nx,ny), myyr(nx,ny), mxyr(nx,ny))
1077 ALLOCATE(aux1(nsea))
1084 IF( smcgrd .AND. mapstaout)
THEN
1085 WRITE(ndso,*)
"MAPSTA output disabled for SMC grids"
1088 ncvartype = ncvartypei
1094 CALL t2iso(tepoch, epoch_iso)
1095 SELECT CASE(timeunit)
1097 epoch =
'days since ' // epoch_iso
1099 epoch =
'seconds since ' // epoch_iso
1101 print*,
'Unknown time units: ', timeunit
1105 CALL u2d(epoch, epochdate, ierr)
1108 mfill = nf90_fill_short
1109 mfillr = nf90_fill_float
1110 IF (gtype.NE.ungtype)
THEN
1120 IF (s3.GT.0 .AND. s3.LT.4) s3=4
1132 ELSE IF (s3.EQ.10)
THEN
1134 WRITE(format1,
'(A,I1,A,I1,A)')
'(I8.8,A1,I',s5,
'.',s5,
',A1)'
1135 WRITE (timeid,format1)
time(1),
'T', &
1136 floor(real(
time(2))/nint(10.**(6-s5))),
'Z'
1138 ELSE IF (s3.EQ.8)
THEN
1139 WRITE(format1,
'(A,I1,A,I1,A)')
'(I',s3,
'.',s3,
')'
1140 WRITE (timeid,format1)
time(1)
1144 WRITE(format1,
'(A,I1,A,I1,A)')
'(I',s3,
'.',s3,
')'
1145 WRITE (timeid,format1) floor(real(
time(1))/nint(10.**(8-s3)))
1148 s1=len_trim(fileprefix)
1150 fnamenc(1:s1)=fileprefix(1:s1)
1151 fnamenc(s1+1:s1+s4) = timeid(1:s4)
1160 IF( smcgrd .AND. (smcotype .EQ. 2) )
CALL mapsta_smc()
1174 IF ( flg2d(ifi,ifj) )
THEN
1177 ipart=tabipart(indexipart)
1189 WRITE (
ndst,9020) idout(ifi,ifj)
1197 IF (ncvartypei.EQ.3) ncvartype=2
1200 IF ( ifi .EQ. 1 .AND. ifj .EQ. 1 )
THEN
1204 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 2 )
THEN
1211 IF( .NOT. vector )
THEN
1213 tolerance=0.05, conv=
'O')
1221 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 3 )
THEN
1228 IF( .NOT. vector )
THEN
1230 tolerance=1.0, conv=
'N')
1238 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 4 )
THEN
1242 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 5 )
THEN
1246 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 6 )
THEN
1250 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 7 )
THEN
1252 WHERE ( x1.NE.
undef) x1 = x1*0.1
1255 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 8 )
THEN
1264 CALL w3s2xy_smc(
taua(1:nsea), xx )
1265 CALL w3s2xy_smc(
tauadir(1:nsea), xy )
1268 CALL w3s2xy ( nsea, nsea, nx+1, ny,
taua(1:nsea) &
1270 CALL w3s2xy ( nsea, nsea, nx+1, ny,
tauadir(1:nsea) &
1276 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 9 )
THEN
1279 CALL w3s2xy_smc(
rhoair, x1)
1282 CALL w3s2xy ( nsea, nsea, nx+1, ny,
rhoair, mapsf, x1 )
1287 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 10 )
THEN
1289 WHERE ( x1.NE.
undef) x1 = -log(x1/0.001)/log2
1295 ELSE IF (ifi .EQ. 1 .AND. ifj .EQ. 11 )
THEN
1302 ELSE IF (ifi .EQ. 1 .AND. ifj .EQ. 12 )
THEN
1308 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 1 )
THEN
1309 IF (ncvartypei.EQ.3) ncvartype=2
1313 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 2 )
THEN
1317 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 3 )
THEN
1321 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 4 )
THEN
1325 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 5 )
THEN
1329 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 6 )
THEN
1333 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 7 )
THEN
1342 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 8 )
THEN
1346 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 9 )
THEN
1354 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 10 )
THEN
1358 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 11 )
THEN
1362 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 12 )
THEN
1366 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 13 )
THEN
1370 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 14 )
THEN
1374 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 15 )
THEN
1378 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 16 )
THEN
1382 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 17 )
THEN
1386 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 18 )
THEN
1389 aux1(i) = 1.0 /
fp0(i)
1398 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 19 )
THEN
1401 CALL w3s2xy_smc(
wnmean, x1 )
1404 CALL w3s2xy ( nsea, nsea, nx+1, ny,
wnmean, mapsf, x1 )
1408 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 1 )
THEN
1415 IF (ncvartype.EQ.2)
WHERE ( xx.GE.0.) xx = alog10(xx+1e-12)
1420 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 2 )
THEN
1435 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 3 )
THEN
1446 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 4 )
THEN
1461 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 5 )
THEN
1472 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 6 )
THEN
1483 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 1 )
THEN
1487 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 2 )
THEN
1491 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 3 )
THEN
1495 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 4 )
THEN
1503 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 5 )
THEN
1507 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 6 )
THEN
1511 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 7 )
THEN
1519 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 8 )
THEN
1523 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 9 )
THEN
1527 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 10 )
THEN
1531 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 11 )
THEN
1535 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 12 )
THEN
1539 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 13 )
THEN
1543 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 14 )
THEN
1547 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 15 )
THEN
1552 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 16 )
THEN
1556 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 17 )
THEN
1560 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 1 )
THEN
1563 uabs = sqrt(
ust(isea)**2+
ustdir(isea)**2)
1564 IF (uabs.GE.10.)
THEN
1596 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 2 )
THEN
1600 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 3 )
THEN
1603 cge(isea) = 0.001 *
cge(isea)
1608 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 4 )
THEN
1609 IF (ncvartypei.EQ.3) ncvartype=4
1613 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 5 )
THEN
1639 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 6 )
THEN
1649 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 7 )
THEN
1653 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 8 )
THEN
1657 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 9 )
THEN
1661 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 10 )
THEN
1665 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 11 )
THEN
1669 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 1 )
THEN
1681 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 2 )
THEN
1691 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 3 )
THEN
1695 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 4 )
THEN
1696 IF (ncvartypei.EQ.3) ncvartype=4
1703 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 5 )
THEN
1736 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 6 )
THEN
1738 ussx(isea)=max(-0.9998,min(0.9998,
ussx(isea)))
1739 ussy(isea)=max(-0.9998,min(0.9998,
ussy(isea)))
1765 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 7 )
THEN
1771 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 8 )
THEN
1789 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 9 )
THEN
1797 IF (ncvartype.EQ.2)
THEN
1798 WHERE ( xx.GE.0.) xx = alog10(xx*(
dwat*
grav)**2+1e-12)
1800 WHERE ( xx.GE.0.) xx = xx*(
dwat*
grav)**2
1807 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 10 )
THEN
1817 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 11 )
THEN
1818 IF (ncvartypei.EQ.3) ncvartype=4
1822 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 12 )
THEN
1825 IF (usspf(1)==1)
THEN
1843 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 13 )
THEN
1850 CALL w3s2xy_smc(
tauocx(1:nsea), xx )
1851 CALL w3s2xy_smc(
tauocy(1:nsea), xy )
1854 CALL w3s2xy ( nsea, nsea, nx+1, ny,
tauocx(1:nsea) &
1856 CALL w3s2xy ( nsea, nsea, nx+1, ny,
tauocy(1:nsea) &
1862 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 1 )
THEN
1873 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 2 )
THEN
1884 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 3 )
THEN
1896 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 4 )
THEN
1900 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 5 )
THEN
1911 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 1 )
THEN
1921 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 2 )
THEN
1931 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 3 )
THEN
1944 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 4 )
THEN
1957 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 5 )
THEN
1961 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 6 )
THEN
1965 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 7 )
THEN
1969 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 8 )
THEN
1973 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 9 )
THEN
1977 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 1 )
THEN
1986 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 2 )
THEN
1990 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 3 )
THEN
1991 IF (ncvartypei.EQ.3) ncvartype=4
1995 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 4 )
THEN
1996 IF (ncvartypei.EQ.3) ncvartype=4
2000 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 5 )
THEN
2001 IF (ncvartypei.EQ.3) ncvartype=4
2005 ELSE IF ( ifi .EQ. 10 )
THEN
2009 WRITE (ndse,999) ifi, ifj
2016 meta(i) = getmeta(ifi, ifj, icomp=i, ipart=ipart)
2022 IF( .NOT. smcgrd )
THEN
2025 mapout(ix,iy)=int2(mapsta(iy,ix) + 8*mapst2(iy,ix))
2026 IF ( mapsta(iy,ix) .EQ. 0 )
THEN
2032 IF ( x1(ix,iy) .EQ.
undef )
THEN
2037 IF ( x2(ix,iy) .EQ.
undef )
THEN
2049 s2=len_trim(meta(1)%ENAME)
2050 s1=len_trim(fileprefix)+s4
2051 fnamenc(s1+1:128)=
' '
2052 fnamenc(s1+1:s1+1) =
'_'
2056 IF (together.AND.(.NOT.flfrq))
THEN
2061 fnamenc(s1+2:s1+s2) = meta(1)%ENAME(2:s2)
2064 fnamenc(s1+s2+1:s1+s2+3) =
'.nc'
2065 fnamenc(s1+s2+4:s1+s2+6) =
' '
2076 IF (gtype.NE.ungtype)
THEN
2079 IF( smcotype .EQ. 1 )
THEN
2106 IF (together.AND.(.NOT.flfrq))
THEN
2107 oldncid = ncids(1,1,1)
2109 oldncid = ncids(ifi,ifj,ipart+1)
2115 INQUIRE(
file=fnamenc, exist=fexist)
2119 IF (index(timeid,oldtimeid).EQ.0)
THEN
2121 IF (together.AND.(.NOT.flfrq).AND.ncid.EQ.0) fremove = .true.
2123 IF (.NOT.together.OR.flfrq) fremove = .true.
2127 OPEN(unit=1234, iostat=iret,
file=fnamenc, status=
'old')
2128 IF (iret == 0)
CLOSE(1234, status=
'delete')
2137 IF (.NOT.fexist)
THEN
2138 IF (index(
'0000000000000000',oldtimeid).EQ.0 .AND. index(timeid,oldtimeid).EQ.0)
THEN
2139 iret = nf90_redef(oldncid)
2141 IF(fl_default_gbl_meta)
THEN
2142 iret=nf90_put_att(oldncid,nf90_global,
'stop_date',strstopdate)
2145 iret=nf90_close(oldncid)
2153 IF (.NOT.fexist)
THEN
2176 CALL w3crnc(fnamenc,ncid,dimid,dimln,varid, &
2177 extradim,nctype,mapstaout)
2181 IF (together.AND.(.NOT.flfrq))
THEN
2184 ncids(ifi,ifj,ipart+1)=ncid
2188 IF (gtype.EQ.clgtype)
THEN
2189 IF (.NOT.
ALLOCATED(lon2d))
ALLOCATE(lon2d(nx,ny),lat2d(nx,ny))
2190 lon2d=transpose(xgrd)
2191 lat2d=transpose(ygrd)
2192 IF(fl_default_gbl_meta)
THEN
2193 iret=nf90_put_att(ncid,nf90_global, &
2194 'latitude_resolution',
'n/a')
2196 iret=nf90_put_att(ncid,nf90_global, &
2197 'longitude_resolution',
'n/a')
2204 IF(smcotype .EQ. 1)
THEN
2206 IF(.NOT.
ALLOCATED(lon))
ALLOCATE(lon(smcnout))
2207 IF(.NOT.
ALLOCATED(lat))
ALLOCATE(lat(smcnout))
2208 IF(.NOT.
ALLOCATED(smccx))
ALLOCATE(smccx(smcnout))
2209 IF(.NOT.
ALLOCATED(smccy))
ALLOCATE(smccy(smcnout))
2212 IF(.NOT.
ALLOCATED(lon))
ALLOCATE(lon(nxo))
2213 IF(.NOT.
ALLOCATED(lat))
ALLOCATE(lat(nyo))
2223 IF(.NOT.
ALLOCATED(lon2deq))
ALLOCATE(lon2deq(rtdnx,rtdny))
2224 IF(.NOT.
ALLOCATED(lat2deq))
ALLOCATE(lat2deq(rtdnx,rtdny))
2231 IF(.NOT.
ALLOCATED(lon2d))
THEN
2237 ALLOCATE(lon2d(rtdnx,rtdny), lat2d(rtdnx,rtdny))
2238 ALLOCATE(angld2d(rtdnx,rtdny))
2243 IF (.NOT.
ALLOCATED(lon))
ALLOCATE(lon(nx))
2246 IF ( rtdl .AND. .NOT.
ALLOCATED(lon2d)) &
2247 ALLOCATE(lon2d(nx,ny),lon2deq(nx,ny),angld2d(nx,ny))
2249 IF (.NOT.
ALLOCATED(lat))
THEN
2251 IF (gtype.EQ.rlgtype)
THEN
2255 IF ( rtdl .AND. .NOT.
ALLOCATED(lat2d)) &
2256 ALLOCATE(lat2d(nx,ny),lat2deq(nx,ny))
2270 IF (gtype.EQ.rlgtype .OR. gtype.EQ.smctype)
THEN
2274 IF( smcotype .EQ. 1 )
THEN
2278 lon(i) = (x0-0.5*sx) + (ijkcel(1,j) + 0.5 * ijkcel(3,j)) * dlon
2279 lat(i) = (y0-0.5*sy) + (ijkcel(2,j) + 0.5 * ijkcel(4,j)) * dlat
2280 smccx(i) = ijkcel(3,j)
2281 smccy(i) = ijkcel(4,j)
2290 CALL w3eqtoll(lat, lon, lat2d(:,1), lon2d(:,1), &
2296 sxd=dble(0.000001d0*dnint(1d6*(dble(dxo)) ))
2297 syd=dble(0.000001d0*dnint(1d6*(dble(dyo)) ))
2298 x0d=dble(0.000001d0*dnint(1d6*(dble(sxo)) ))
2299 y0d=dble(0.000001d0*dnint(1d6*(dble(syo)) ))
2301 lon(i)=real(x0d+sxd*dble(i-1))
2304 lon2deq(i,:) = lon(i)
2309 lat(i)=real(y0d+syd*dble(i-1))
2312 lat2deq(:,i) = lat(i)
2316 WRITE(str2,
'(F12.7)') dyo
2318 IF(fl_default_gbl_meta)
THEN
2319 iret=nf90_put_att(ncid,nf90_global, &
2320 'latitude_resolution', trim(str2))
2321 WRITE(str2,
'(F12.7)') dxo
2323 iret=nf90_put_att(ncid,nf90_global, &
2324 'longitude_resolution',trim(str2))
2333 CALL w3eqtoll(lat2deq, lon2deq, lat2d, lon2d, &
2340 sxd=dble(0.000001d0*dnint(1d6*(dble(sx)) ))
2341 syd=dble(0.000001d0*dnint(1d6*(dble(sy)) ))
2342 x0d=dble(0.000001d0*dnint(1d6*(dble(x0)) ))
2343 y0d=dble(0.000001d0*dnint(1d6*(dble(y0)) ))
2345 lon(i)=real(x0d+sxd*dble(i-1))
2348 lat(i)=real(y0d+syd*dble(i-1))
2359 CALL w3eqtoll(lat2deq, lon2deq, lat2d, lon2d, &
2363 IF(fl_default_gbl_meta)
THEN
2364 WRITE(str2,
'(F12.0)') sy
2366 iret=nf90_put_att(ncid,nf90_global, &
2367 'latitude_resolution', trim(str2))
2369 WRITE(str2,
'(F12.0)') sx
2371 iret=nf90_put_att(ncid,nf90_global, &
2372 'longitude_resolution',trim(str2))
2379 IF (gtype.EQ.ungtype)
THEN
2384 IF(fl_default_gbl_meta)
THEN
2385 iret=nf90_put_att(ncid,nf90_global, &
2386 'latitude_resolution',
'n/a')
2388 iret=nf90_put_att(ncid,nf90_global, &
2389 'longitude_resolution',
'n/a')
2395 IF(fl_default_gbl_meta)
THEN
2397 WRITE(str2,
'(F12.0)') minval(lat)
2399 WRITE(str2,
'(F12.0)') minval(ygrd)
2402 iret=nf90_put_att(ncid,nf90_global, &
2403 'southernmost_latitude',trim(str2))
2407 WRITE(str2,
'(F12.0)') maxval(lat)
2409 WRITE(str2,
'(F12.0)') maxval(ygrd)
2412 iret=nf90_put_att(ncid,nf90_global, &
2413 'northernmost_latitude',trim(str2))
2417 WRITE(str2,
'(F12.0)') minval(lon)
2419 WRITE(str2,
'(F12.0)') minval(xgrd)
2422 iret=nf90_put_att(ncid,nf90_global, &
2423 'westernmost_longitude',trim(str2))
2428 WRITE(str2,
'(F12.0)') maxval(lon)
2430 WRITE(str2,
'(F12.0)') maxval(xgrd)
2433 iret=nf90_put_att(ncid,nf90_global, &
2434 'easternmost_longitude',trim(str2))
2436 iret=nf90_put_att(ncid,nf90_global, &
2437 'minimum_altitude',
'-12000 m')
2439 iret=nf90_put_att(ncid,nf90_global, &
2440 'maximum_altitude',
'9000 m')
2442 iret=nf90_put_att(ncid,nf90_global, &
2443 'altitude_resolution',
'n/a')
2448 iret=nf90_put_att(ncid,nf90_global, &
2449 'grid_north_pole_latitude',
polat)
2450 iret=nf90_put_att(ncid,nf90_global, &
2451 'grid_north_pole_longitude',
polon)
2457 WRITE(strstartdate,
'(I4.4,A,4(I2.2,A),I2.2)') startdate(1),
'-',startdate(2),
'-', &
2458 startdate(3),
' ',startdate(5),
':',startdate(6),
':',startdate(7)
2461 iret = nf90_enddef(ncid)
2467 IF (gtype.EQ.rlgtype .OR. gtype.EQ.smctype)
THEN
2470 iret=nf90_put_var(ncid,varid(1),lon(:))
2472 iret=nf90_put_var(ncid,varid(2),lat(:))
2474 IF(smcotype .EQ. 1)
THEN
2476 iret=nf90_put_var(ncid,varid(5),smccx)
2478 iret=nf90_put_var(ncid,varid(6),smccy)
2483 iret=nf90_put_var(ncid,varid(1),lon(ix1:ixn))
2485 iret=nf90_put_var(ncid,varid(2),lat(iy1:iyn))
2490 iret=nf90_put_var(ncid,varid(7),lon2d(ix1:ixn,iy1:iyn))
2492 iret=nf90_put_var(ncid,varid(8),lat2d(ix1:ixn,iy1:iyn))
2499 IF (gtype.EQ.clgtype)
THEN
2500 iret=nf90_put_var(ncid,varid(1),lon2d(ix1:ixn,iy1:iyn))
2502 iret=nf90_put_var(ncid,varid(2),lat2d(ix1:ixn,iy1:iyn))
2507 IF (gtype.EQ.ungtype)
THEN
2508 iret=nf90_put_var(ncid,varid(1),lon(ix1:ixn))
2510 iret=nf90_put_var(ncid,varid(2),lat(ix1:ixn))
2515 IF (extradim.EQ.1)
THEN
2516 ALLOCATE(freq(i2f-i1f+1))
2524 freq(i)=sig(i1f-1+i)*
tpiinv
2527 iret=nf90_put_var(ncid,varid(10),freq)
2533 IF (gtype.EQ.ungtype)
THEN
2534 iret=nf90_put_var(ncid,varid(4),trigp)
2544 IF (gtype.NE.ungtype)
THEN
2545 iret=nf90_put_var(ncid,varid(20),mapout(ix1:ixn,iy1:iyn), &
2546 (/start(1:2)/),(/count(1:2)/))
2548 iret=nf90_put_var(ncid,varid(20),mapout(ix1:ixn,1),(/start(1)/),(/count(1)/))
2555 IF(timeunit .EQ.
'S')
THEN
2556 outsecs =
tsubsec(epochdate, refdate)
2557 iret = nf90_put_var(ncid, varid(12), outsecs)
2559 outjulday =
tsub(epochdate, refdate)
2560 iret = nf90_put_var(ncid, varid(12), outjulday)
2565 WRITE (ndso,973) fnamenc
2569 iret = nf90_redef(ncid)
2573 IF (coordtype.EQ.1)
THEN
2574 IF (ncvartype.EQ.2)
THEN
2576 IF( smcgrd .AND. smcotype .EQ. 1 )
THEN
2578 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_short, (/dimid(2), dimid(4+extradim)/), varid(ivar))
2581 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_short, dimid(2:4+extradim), varid(ivar))
2586 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2590 IF( smcgrd .AND. smcotype .EQ. 1 )
THEN
2592 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_float, (/dimid(2), dimid(4+extradim)/), varid(ivar))
2595 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_float, dimid(2:4+extradim), varid(ivar))
2600 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2604 dimfield(1)=dimid(2)
2605 dimfield(2)=dimid(4)
2606 dimfield(3)=dimid(5)
2607 IF (ncvartype.EQ.2)
THEN
2608 iret = nf90_def_var(ncid,meta(i)%VARNM, nf90_short, dimfield(1:2+extradim), varid(ivar))
2610 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2613 iret = nf90_def_var(ncid,meta(i)%VARNM, nf90_float, dimfield(1:2+extradim), varid(ivar))
2615 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2621 IF(ncvartype .GT. 2) meta(i)%FSC = 1.0
2624 CALL write_meta(ncid, varid(ivar), meta(i), iret)
2641 IF(fl_default_gbl_meta)
THEN
2642 iret=nf90_put_att(ncid,nf90_global,
'start_date',strstartdate)
2646 iret = nf90_enddef(ncid)
2657 IF (gtype.EQ.ungtype)
THEN
2658 iret=nf90_inq_varid(ncid,
'tri', varid(4))
2665 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
2666 iret=nf90_inq_dimid(ncid,
'seapoint', dimid(2))
2669 iret=nf90_inq_dimid(ncid,
'longitude', dimid(2))
2670 iret=nf90_inq_dimid(ncid,
'latitude', dimid(3))
2674 iret=nf90_inq_varid(ncid,
'longitude', varid(1))
2675 iret=nf90_inq_varid(ncid,
'latitude', varid(2))
2678 iret=nf90_inq_dimid(ncid,
'x', dimid(2))
2679 iret=nf90_inq_varid(ncid,
'x', varid(1))
2680 iret=nf90_inq_dimid(ncid,
'y', dimid(3))
2681 iret=nf90_inq_varid(ncid,
'y', varid(2))
2686 iret=nf90_inq_dimid(ncid,
'time', dimid(4+extradim))
2687 iret=nf90_inquire_dimension(ncid, dimid(4+extradim),len=n)
2689 iret=nf90_inq_varid(ncid,
'time', varid(3))
2691 iret = nf90_inq_varid(ncid,
'forecast_period', varid(11))
2695 IF (extradim.EQ.1) iret=nf90_inq_dimid(ncid,
'f', dimid(4))
2703 IF((together .AND. ifi.EQ.i1 .AND. ifj.EQ.j1 .AND. ipart.EQ.tabipart(1)) &
2704 .OR.(.NOT.together).OR.flfrq) n=n+1
2710 iret = nf90_redef(ncid)
2716 IF (coordtype.EQ.1)
THEN
2717 IF (ncvartype.EQ.2)
THEN
2719 IF( smcgrd .AND. smcotype .EQ. 1 )
THEN
2721 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_short, (/dimid(2), dimid(4+extradim)/), varid(ivar))
2724 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_short, dimid(2:4+extradim), varid(ivar))
2729 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2732 IF( smcgrd .AND. smcotype .EQ. 1 )
THEN
2734 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_float, (/dimid(2), dimid(4+extradim)/), varid(ivar))
2737 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_float, dimid(2:4+extradim), varid(ivar))
2742 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2746 dimfield(1)=dimid(2)
2747 dimfield(2)=dimid(4)
2748 dimfield(3)=dimid(5)
2749 IF (ncvartype.EQ.2)
THEN
2750 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_short, dimfield(1:2+extradim), varid(ivar))
2752 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2755 iret = nf90_def_var(ncid,meta(i)%varnm, nf90_float, dimfield(1:2+extradim), varid(ivar))
2757 IF (nctype.EQ.4) iret = nf90_def_var_deflate(ncid, varid(ivar), 1, 1, deflate)
2763 IF(ncvartype .GT. 2) meta(i)%FSC = 1.0
2766 CALL write_meta(ncid, varid(ivar), meta(i), iret)
2781 iret = nf90_enddef(ncid)
2786 iret=nf90_redef(ncid)
2792 iret=nf90_inq_varid(ncid, meta(i)%VARNM, varid(ivar))
2795 iret=nf90_enddef(ncid)
2803 WRITE(ndso,
'(A,A9,A,I6,A,I4,A,I2.2,A,I2.2,A,I2.2,A,I2.2,A,I2.2,2A)') &
2804 'Writing new record ', meta(1)%ENAME(2:) ,
'number ',n, &
2805 ' for ',curdate(1),
':',curdate(2),
':',curdate(3),
'T',curdate(5),&
2806 ':',curdate(6),
':',curdate(7),
' in file ',trim(fnamenc)
2817 start(3+1-coordtype+extradim)=n
2824 count1d(1)=ixn-ix1+1
2828 IF((ifi.EQ.i1.AND.ifj.EQ.j1.AND.together) &
2829 .OR.(.NOT.together).OR.flfrq)
THEN
2832 IF(timeunit .EQ.
'S')
THEN
2834 outsecs =
tsubsec(epochdate,curdate)
2835 iret = nf90_put_var(ncid, varid(3), outsecs, (/n/))
2838 outjulday =
tsub(epochdate,curdate)
2839 iret = nf90_put_var(ncid, varid(3), outjulday, (/n/))
2845 outsecs =
tsubsec(refdate, curdate)
2846 iret = nf90_put_var(ncid, varid(11), outsecs, (/n/))
2854 IF (ncvartype.EQ.2)
THEN
2855 IF ( nfield.EQ.3 )
THEN
2858 IF ( x1(ix,iy) .EQ.
undef )
THEN
2863 mxx(ix,iy) = nint(x1(ix,iy)/meta(1)%FSC)
2864 myy(ix,iy) = nint(x2(ix,iy)/meta(2)%FSC)
2865 mxy(ix,iy) = nint(xy(ix,iy)/meta(3)%FSC)
2870 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
2871 iret=nf90_put_var(ncid,varid(ivar1+1), &
2872 mxx(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2874 iret=nf90_put_var(ncid,varid(ivar1+2), &
2875 myy(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2877 iret=nf90_put_var(ncid,varid(ivar1+3), &
2878 mxy(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2882 iret=nf90_put_var(ncid,varid(ivar1+1), &
2883 mxx(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2885 iret=nf90_put_var(ncid,varid(ivar1+2), &
2886 myy(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2888 iret=nf90_put_var(ncid,varid(ivar1+3), &
2889 mxy(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2895 ELSE IF (nfield.EQ.2 )
THEN
2897 IF (extradim.EQ.0)
THEN
2900 IF ( xx(ix,iy) .EQ.
undef )
THEN
2904 mxx(ix,iy) = nint(xx(ix,iy)/meta(1)%FSC)
2905 myy(ix,iy) = nint(xy(ix,iy)/meta(2)%FSC)
2910 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
2911 iret=nf90_put_var(ncid,varid(ivar1+1), &
2912 mxx(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2914 iret=nf90_put_var(ncid,varid(ivar1+2), &
2915 myy(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2919 iret=nf90_put_var(ncid,varid(ivar1+1), &
2920 mxx(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2922 iret=nf90_put_var(ncid,varid(ivar1+2), &
2923 myy(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2930 start(3+1-coordtype)=0
2932 start(3+1-coordtype)=start(3+1-coordtype)+1
2935 IF ( xxk(ix,iy,ik) .EQ.
undef )
THEN
2939 mxx(ix,iy) = nint(xxk(ix,iy,ik)/meta(1)%FSC)
2940 myy(ix,iy) = nint(xyk(ix,iy,ik)/meta(2)%FSC)
2945 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
2946 iret=nf90_put_var(ncid,varid(ivar1+1), &
2947 mxx(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
2948 (/count(1), count(3), count(4)/))
2950 iret=nf90_put_var(ncid,varid(ivar1+2), &
2951 mxy(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
2952 (/count(1), count(3), count(4)/))
2956 iret=nf90_put_var(ncid,varid(ivar1+1), &
2957 mxx(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
2959 iret=nf90_put_var(ncid,varid(ivar1+2), &
2960 mxx(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
2970 IF (extradim.EQ.0)
THEN
2973 IF ( x1(ix,iy) .EQ.
undef )
THEN
2976 mx1(ix,iy) = nint(x1(ix,iy)/meta(1)%FSC)
2981 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
2982 iret=nf90_put_var(ncid,varid(ivar1+1), &
2983 mx1(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
2987 iret=nf90_put_var(ncid,varid(ivar1+1), &
2988 mx1(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
2995 start(3+1-coordtype)=0
2997 start(3+1-coordtype)=start(3+1-coordtype)+1
3000 IF ( xk(ix,iy,ik) .EQ.
undef )
THEN
3003 mx1(ix,iy) = nint(xk(ix,iy,ik)/meta(1)%FSC)
3008 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3009 iret=nf90_put_var(ncid,varid(ivar1+1), &
3010 mx1(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
3011 (/count(1), count(3), count(4)/))
3015 iret=nf90_put_var(ncid,varid(ivar1+1), &
3016 mx1(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
3028 IF ( nfield.EQ.3 )
THEN
3031 IF ( x1(ix,iy) .EQ.
undef )
THEN
3032 mxxr(ix,iy) = mfillr
3033 myyr(ix,iy) = mfillr
3034 mxyr(ix,iy) = mfillr
3036 mxxr(ix,iy) = x1(ix,iy)
3037 myyr(ix,iy) = x2(ix,iy)
3038 mxyr(ix,iy) = xy(ix,iy)
3043 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3044 iret=nf90_put_var(ncid,varid(ivar1+1), &
3045 mxxr(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3047 iret=nf90_put_var(ncid,varid(ivar1+2), &
3048 myyr(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3050 iret=nf90_put_var(ncid,varid(ivar1+3), &
3051 mxyr(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3055 iret=nf90_put_var(ncid,varid(ivar1+1), &
3056 mxxr(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3058 iret=nf90_put_var(ncid,varid(ivar1+2), &
3059 myyr(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3061 iret=nf90_put_var(ncid,varid(ivar1+3), &
3062 mxyr(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3068 ELSE IF (nfield.EQ.2 )
THEN
3070 IF (extradim.EQ.0)
THEN
3073 IF ( xx(ix,iy) .EQ.
undef )
THEN
3074 mxxr(ix,iy) = mfillr
3075 myyr(ix,iy) = mfillr
3077 mxxr(ix,iy) = xx(ix,iy)
3078 myyr(ix,iy) = xy(ix,iy)
3083 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3084 iret=nf90_put_var(ncid,varid(ivar1+1), &
3085 mxxr(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3087 iret=nf90_put_var(ncid,varid(ivar1+2), &
3088 myyr(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3092 iret=nf90_put_var(ncid,varid(ivar1+1), &
3093 mxxr(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3095 iret=nf90_put_var(ncid,varid(ivar1+2), &
3096 myyr(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3103 start(4-coordtype)=0
3105 start(4-coordtype)=start(4-coordtype)+1
3108 IF ( xxk(ix,iy,ik) .EQ.
undef )
THEN
3109 mxxr(ix,iy) = mfillr
3110 myyr(ix,iy) = mfillr
3112 mxxr(ix,iy) = xxk(ix,iy,ik)
3113 myyr(ix,iy) = xyk(ix,iy,ik)
3118 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3119 iret=nf90_put_var(ncid,varid(ivar1+1), &
3120 mxxr(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
3121 (/count(1), count(3), count(4)/))
3123 iret=nf90_put_var(ncid,varid(ivar1+2), &
3124 myyr(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
3125 (/count(1), count(3), count(4)/))
3129 iret=nf90_put_var(ncid,varid(ivar1+1), &
3130 mxxr(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
3132 iret=nf90_put_var(ncid,varid(ivar1+2), &
3133 myyr(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
3143 IF (extradim.EQ.0)
THEN
3146 IF ( x1(ix,iy) .EQ.
undef )
THEN
3147 mx1r(ix,iy) = mfillr
3149 mx1r(ix,iy) = x1(ix,iy)
3154 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3155 iret=nf90_put_var(ncid,varid(ivar1+1), &
3156 mx1r(ix1:ixn,iy1:iyn),(/start(1), start(3)/),(/count(1), count(3)/))
3160 iret=nf90_put_var(ncid,varid(ivar1+1), &
3161 mx1r(ix1:ixn,iy1:iyn),(/start(1:3)/),(/count(1:3)/))
3168 start(4-coordtype)=0
3170 start(4-coordtype)=start(4-coordtype)+1
3173 IF ( xk(ix,iy,ik) .EQ.
undef )
THEN
3174 mx1r(ix,iy) = mfillr
3176 mx1r(ix,iy) = xk(ix,iy,ik)
3181 IF(smcgrd .AND. smcotype .EQ. 1)
THEN
3182 iret=nf90_put_var(ncid,varid(ivar1+1), &
3183 mx1r(ix1:ixn,iy1:iyn),(/start(1), start(3), start(4)/), &
3184 (/count(1), count(3), count(4)/))
3188 iret=nf90_put_var(ncid,varid(ivar1+1), &
3189 mx1r(ix1:ixn,iy1:iyn),(/start(1:4)/),(/count(1:4)/))
3207 IF (ifi .EQ. 4 .AND. ifj .LE. noge(ifi) - 2)
THEN
3209 IF (indexipart.LT.nbipart)
THEN
3210 indexipart=indexipart+1
3211 IF (tabipart(indexipart).EQ.-1)
GOTO 560
3212 ipart=tabipart(indexipart)
3224 DEALLOCATE(x1, x2, xx, xy, xk, xxk, xyk)
3225 DEALLOCATE(mx1, mxx, myy, mxy, mapout)
3226 DEALLOCATE(mx1r, mxxr, myyr, mxyr)
3228 IF (
ALLOCATED(lon))
DEALLOCATE(lon, lat)
3229 IF (
ALLOCATED(lon2d))
DEALLOCATE(lon2d, lat2d)
3231 IF (
ALLOCATED(lon2deq))
DEALLOCATE(lat2deq, lon2deq, angld2d)
3242 973
FORMAT (
'NEW NETCDF FILE WAS CREATED ',a)
3243 999
FORMAT (/
' *** WAVEWATCH III ERROR IN W3EXNC :'/ &
3244 ' PLEASE UPDATE FIELDS !!! '/ &
3245 ' IFI = ',i2,
'- IFJ = ',i2/)
3248 9000
FORMAT (
' TEST W3EXNC : FLAGS :',i3,2x,20l2)
3249 9001
FORMAT (
' TEST W3EXNC : ITPYE :',i4/ &
3256 9012
FORMAT (
' TEST W3EXNC : BLOK PARS : ',3i4)
3257 9014
FORMAT (
' BASE NAME : ',a)
3261 9020
FORMAT (
' TEST W3EXNC : OUTPUT FIELD : ',a)