158 CHARACTER(LEN=10),
PARAMETER,
PRIVATE :: verogr =
'2019-10-04'
159 CHARACTER(LEN=30),
PARAMETER,
PRIVATE :: &
160 idstr =
'WAVEWATCH III GRID OUTPUT FILE'
177 SUBROUTINE w3flgrdupdt ( NDSO, NDSEN, FLGRD, FLGR2, FLGD, FLG2 )
244 INTEGER,
INTENT(IN) :: NDSO, NDSEN
245 LOGICAL,
INTENT(INOUT) :: FLGRD(NOGRP,NGRPP), FLGD(NOGRP), &
246 FLGR2(NOGRP,NGRPP), FLG2(NOGRP)
252 CHARACTER(LEN=10) :: VARNAME1(5),VARNAME2(5)
254 INTEGER,
SAVE :: IENT = 0
260 CALL strace (ient,
'W3FLGRDUPDT')
263 varname1(1) =
'EF'; varname2(1) =
'E3D'
264 varname1(2) =
'TH1M'; varname2(2) =
'TH1MF'
265 varname1(3) =
'STH1M'; varname2(3) =
'STH1MF'
266 varname1(4) =
'TH2M'; varname2(4) =
'TH2MF'
267 varname1(5) =
'STH2M'; varname2(5) =
'STH2MF'
271 IF (flgrd(3,i).OR.flgr2(3,i))
THEN
272 WRITE(ndsen,1008) varname1(i),varname2(i)
279 IF (flgrd(6,8).OR.flgr2(6,8))
THEN
280 WRITE(ndsen,1008)
'USF',
'US3D'
286 IF (flgrd(6,12).OR.flgr2(6,12))
THEN
287 WRITE(ndsen,1008)
'USP',
'USSP'
293 IF (flgrd(6,9).OR.flgr2(6,9))
THEN
294 WRITE(ndsen,1008)
'P2L',
'P2SF'
302 IF(any(flgrd(3,:))) flgd(3)=.true.
303 IF(any(flgr2(3,:))) flg2(3)=.true.
306 IF(any(flgrd(6,:))) flgd(6)=.true.
307 IF(any(flgr2(6,:))) flg2(6)=.true.
311 1008
FORMAT (/
' *** WAVEWATCH III WARNING : '/ &
312 ' PARAMETER ',a,
' not allowed: need to set', &
313 ' parameter ',a,
' in OUTS namelist (in ww3_grid.inp)' &
314 ' with proper bounds' )
334 SUBROUTINE w3readflgrd ( NDSI , NDSO, NDSS, NDSEN, COMSTR, &
335 FLG1D, FLG2D, IAPROC, NAPOUT, IERR)
414 INTEGER,
INTENT(IN) :: NDSI, NDSO, NDSS, NDSEN, IAPROC, NAPOUT
415 INTEGER,
INTENT(OUT) :: IERR
416 CHARACTER(LEN=1) :: COMSTR
417 LOGICAL,
INTENT(OUT) :: FLG2D(NOGRP,NGRPP), FLG1D(NOGRP)
418 CHARACTER(LEN=100) :: OUT_NAMES(100), TESTSTR
423 INTEGER :: IFI, IFJ, IOUT
425 INTEGER,
SAVE :: IENT = 0
427 CHARACTER(LEN=1) :: AFLG
428 LOGICAL :: FLT, NAMES
433 CALL strace (ient,
'W3READFLGRD')
446 CALL nextln ( comstr , ndsi , ndsen )
447 READ (ndsi,*,
END=2001,ERR=2002) aflg
448 IF (aflg.EQ.
'T')
THEN
450 ELSE IF (aflg.EQ.
'F')
THEN
452 ELSE IF (aflg.EQ.
'N')
THEN
459 IF ( flg1d(ifi) )
THEN
460 CALL nextln ( comstr , ndsi , ndsen )
461 READ (ndsi,
'(A)',
END=2001,ERR=2006,IOSTAT=IERR) &
464 CALL strsplit(
fldout,out_names)
466 DO WHILE (len_trim(out_names(ifj+1)).NE.0)
468 IF ( out_names(ifj) .EQ.
'T' ) &
469 flg2d(ifi,ifj)=.true.
471 IF ( iaproc .EQ. napout .AND. ifj .LT. noge(ifi) )
WRITE(ndsen,1007) ifi
479 CALL nextln ( comstr , ndsi , ndsen )
480 READ (ndsi,
'(A)',
END=2001,ERR=2003,IOSTAT=IERR)
fldout
482 CALL strsplit(
fldout,out_names)
484 DO WHILE (len_trim(out_names(iout+1)).NE.0)
485 CALL str_to_upper(out_names(iout+1))
489 teststr=out_names(iout+1)
490 CALL w3fldtoij(teststr, ifi, ifj, iaproc, napout, ndsen)
493 flg2d(ifi, ifj) = .true.
504 IF ( iaproc .EQ. napout )
THEN
506 IF ( flg2d(ifi,ifj) )
THEN
508 WRITE (ndso,1945) idout(ifi,ifj)
511 WRITE (ndso,1946) idout(ifi,ifj)
516 IF(any(flg2d(ifi,:))) flg1d(ifi)=.true.
518 IF ( iaproc .EQ. napout )
THEN
519 IF ( flt )
WRITE (ndso,1945)
'no fields defined'
525 IF ( iaproc .EQ. napout )
WRITE (ndsen,1001)
528 IF ( iaproc .EQ. napout )
WRITE (ndsen, 1002) ifi, ierr
531 IF ( iaproc .EQ. napout )
WRITE (ndsen, 1003) ierr
535 IF ( iaproc .EQ. napout )
WRITE (ndsen, 1005) aflg
538 IF ( iaproc .EQ. napout )
WRITE (ndsen, 1006) ifi,ierr
541 1945
FORMAT (
' Fields : ',a)
544 1001
FORMAT (/
' *** WAVEWATCH III ERROR : '/ &
545 ' PREMATURE END OF INPUT FILE'/)
547 1002
FORMAT (/
' *** WAVEWATCH III ERROR : '/ &
548 ' ERROR IN READING OUTPUT FIELDS GROUP FLAGS ', &
549 i2, /,
' IOSTAT =',i5/)
551 1003
FORMAT (/
' *** WAVEWATCH III ERROR : '/ &
552 ' ERROR READING OUTPUT FIELD NAMES FROM INPUT FILE'/&
555 1005
FORMAT (/
' *** WAVEWATCH III ERROR : '/ &
556 ' WAS EXPECTING "T" "F" or "N", but found "',a,
'".'/)
558 1006
FORMAT (/
' *** WAVEWATCH III ERROR : '/ &
559 ' ERROR IN READING OUTPUT FIELDS FLAGS FOR GROUP ', &
560 i2, /,
' IOSTAT =',i5/)
562 1007
FORMAT (/
' *** WAVEWATCH III WARNING : '/ &
563 ' NUMBER OF REQUESTED OUTPUT FIELD FLAGS IN GROUP ',&
564 i2, /,
' LESS THAN AVAILABLE, CHECK DOCS FOR MORE OPTIONS')
584 SUBROUTINE w3flgrdflag ( NDSO, NDSS, NDSEN, FLDOUT, &
585 FLG1D, FLG2D, IAPROC, NAPOUT, IERR)
664 INTEGER,
INTENT(IN) :: NDSO, NDSS, NDSEN, IAPROC, NAPOUT
665 CHARACTER(1024),
INTENT(IN) :: FLDOUT
666 INTEGER,
INTENT(OUT) :: IERR
667 LOGICAL,
INTENT(OUT) :: FLG2D(NOGRP,NGRPP), FLG1D(NOGRP)
668 CHARACTER(LEN=100) :: OUT_NAMES(100), TESTSTR
673 INTEGER :: I, IFI, IFJ, IOUT
675 INTEGER,
SAVE :: IENT = 0
682 CALL strace (ient,
'W3FLGRDFLAG')
695 CALL strsplit(fldout,out_names)
697 DO WHILE (len_trim(out_names(iout+1)).NE.0)
698 CALL str_to_upper(out_names(iout+1))
702 teststr=out_names(iout+1)
703 CALL w3fldtoij(teststr, ifi, ifj, iaproc, napout, ndsen)
706 flg2d(ifi, ifj) = .true.
715 IF ( iaproc .EQ. napout )
THEN
717 IF ( flg2d(ifi,ifj) )
THEN
719 WRITE (ndso,1945)
idout(ifi,ifj)
722 WRITE (ndso,1946)
idout(ifi,ifj)
727 IF(any(flg2d(ifi,:))) flg1d(ifi)=.true.
729 IF ( iaproc .EQ. napout )
THEN
730 IF ( flt )
WRITE (ndso,1945)
'no fields defined'
735 1945
FORMAT (
' Fields : ',a)
760 SUBROUTINE w3fldtoij(FLD, I, J, IAPROC, NAPOUT, NDSEN)
795 CHARACTER(LEN=*),
INTENT(IN) :: FLD
796 INTEGER,
INTENT(IN) :: IAPROC, NAPOUT, NDSEN
797 INTEGER,
INTENT(OUT) :: I, J
802 SELECT CASE(trim(fld(1:6)))
1066 IF (
us3df(1).GE.1)
THEN
1070 IF ( iaproc .EQ. napout )
WRITE(ndsen,1008)
'USF',
'US3D'
1082 IF (
usspf(1).GE.1)
THEN
1086 IF ( iaproc .EQ. napout )
WRITE(ndsen,1008)
'USP',
'USSP'
1174 IF ( iaproc .EQ. napout )
WRITE (ndsen,1004) trim(fld)
1177 1004
FORMAT (/
' *** WAVEWATCH III WARNING : '/ &
1178 ' REQUESTED OUTPUT FIELD ',a,
' WAS NOT RECOGNIZED.'/)
1180 1008
FORMAT (/
' *** WAVEWATCH III WARNING : '/ &
1181 ' PARAMETER ',a,
' not allowed: need to set', &
1182 ' parameter ',a,
' in OUTS namelist (in ww3_grid.inp)')
1197 SUBROUTINE w3outg ( A, FLPART, FLOUTG, FLOUTG2 )
1325 REAL,
INTENT(IN) :: A(NTH,NK,0:NSEAL)
1326 LOGICAL,
INTENT(IN) :: FLPART, FLOUTG, FLOUTG2
1331 INTEGER :: IK, ITH, JSEA, ISEA, IX, IY, &
1332 IKP0(NSEAL), NKH(NSEAL), &
1333 I, J, LKMS, HKMS, ITL
1335 INTEGER,
SAVE :: IENT = 0
1337 REAL :: FXPMC, FACTOR, FACTOR2, EBAND, FKD, &
1339 XL, XH, XL2, XH2, EL, EH, DENOM, KD, &
1340 M1, M2, MA, MB, MC, STEX, STEY, STED
1341 REAL :: ET(NSEAL), EWN(NSEAL), ETR(NSEAL), &
1342 ETX(NSEAL), ETY(NSEAL), AB(NSEAL), &
1343 ETXX(NSEAL), ETYY(NSEAL), ETXY(NSEAL),&
1344 ABX(NSEAL), ABY(NSEAL),ET02(NSEAL), &
1345 EBD(NK,NSEAL), EC(NSEAL), &
1346 ABR(NSEAL), UBR(NSEAL), UBS(NSEAL), &
1347 ABX2(NSEAL), ABY2(NSEAL), &
1348 AB2X(NSEAL), AB2Y(NSEAL), &
1349 ABST(NSEAL), ABXX(NSEAL), &
1350 ABYY(NSEAL), ABXY(NSEAL), &
1351 ABYX(NSEAL), EET1(NSEAL), &
1352 ETUSCX(NSEAL), ETUSCY(NSEAL), &
1353 ETMSSL(NSEAL), ETMSSCL(NSEAL), &
1354 ETTPMM(NSEAL), ETF(NSEAL), &
1355 ET1(NSEAL), ABX2M(NSEAL), &
1356 ABY2M(NSEAL), ABXM(NSEAL), &
1357 ABYM(NSEAL), ABXYM(NSEAL), &
1358 MSSXM(NSEAL), MSSYM(NSEAL), &
1359 MSSXTM(NSEAL), MSSYTM(NSEAL), &
1360 MSSXYM(NSEAL), THMP(NSEAL), &
1361 T02P(NSEAL), NV(NSEAL), NS(NSEAL), &
1362 NB(NSEAL), MODE(NSEAL), &
1363 MU(NSEAL), NI(NSEAL), STMAXEL(NSEAL),&
1364 PHI(21,NSEAL),PHIST(NSEAL), &
1365 EBC(NK,NSEAL), ABP(NSEAL), &
1366 STMAXDL(NSEAL), TLPHI(NSEAL), &
1367 WL02X(NSEAL), WL02Y(NSEAL), &
1368 ALPXT(NSEAL), ALPYT(NSEAL), &
1369 ALPXY(NSEAL), SCREST(NSEAL), &
1370 QK1(NSEAL), QK2(NSEAL)
1372 REAL,
SAVE :: HSMIN = 0.01
1373 LOGICAL :: FLOLOC(NOGRP,NGRPP)
1378 CALL strace (ient,
'W3OUTG')
1383 ((floutg.AND.
flogrd(i,j)).OR.(floutg2.AND.
flogr2(i,j)))
1387 fxpmc = 0.66 *
grav / 28.
1389 ft1 = 0.3333 *
sig(nk)**2 *
dth *
sig(nk)
1511 nkh(jsea) = min( nk , &
1513 ab(jsea) = ab(jsea) + a(ith,ik,jsea)
1514 abx(jsea) = abx(jsea) + a(ith,ik,jsea)*
ecos(ith)
1515 aby(jsea) = aby(jsea) + a(ith,ik,jsea)*
esin(ith)
1517 abx2(jsea) = abx2(jsea) + a(ith,ik,jsea)*
ec2(ith)
1518 aby2(jsea) = aby2(jsea) + a(ith,ik,jsea)*
es2(ith)
1520 ab2x(jsea) = ab2x(jsea) + a(ith,ik,jsea)*(2*
ec2(ith) - 1)
1521 ab2y(jsea) = ab2y(jsea) + a(ith,ik,jsea)*(2*
esc(ith))
1522 abyx(jsea) = abyx(jsea) + a(ith,ik,jsea)*
esc(ith)
1523 IF (ith.LE.nth/2)
THEN
1524 abst(jsea) = abst(jsea) + &
1525 a(ith,ik,jsea)*a(ith+nth/2,ik,jsea)
1526 qk1(jsea) = qk1(jsea) + (a(ith,ik,jsea)+a(ith+nth/2,ik,jsea))**2
1529 factor = max( 0.5 , cg(ik,isea)/
sig(ik)*wn(ik,isea) )
1530 abxx(jsea) = abxx(jsea) + ((1.+
ec2(ith))*factor-0.5) * &
1532 abyy(jsea) = abyy(jsea) + ((1.+
es2(ith))*factor-0.5) * &
1534 abxy(jsea) = abxy(jsea) +
esc(ith)*factor * a(ith,ik,jsea)
1552 factor =
dden(ik) / cg(ik,isea)
1553 ebd(ik,jsea) = ab(jsea) * factor
1554 et(jsea) = et(jsea) + ebd(ik,jsea)
1556 IF (ik.EQ.nint(
igpars(5))) hsig(jsea) = 4*sqrt(et(jsea))
1558 etf(jsea) = etf(jsea) + ebd(ik,jsea) * cg(ik,isea)
1559 ewn(jsea) = ewn(jsea) + ebd(ik,jsea) / wn(ik,isea)
1560 etr(jsea) = etr(jsea) + ebd(ik,jsea) /
sig(ik)
1561 et1(jsea) = et1(jsea) + ebd(ik,jsea) *
sig(ik)
1563 eet1(jsea) = eet1(jsea)+ ebd(ik,jsea)**2 *
sig(ik)/
dsii(ik)
1564 et02(jsea) = et02(jsea)+ ebd(ik,jsea) *
sig(ik)**2
1565 etx(jsea) = etx(jsea) + abx(jsea) * factor
1566 ety(jsea) = ety(jsea) + aby(jsea) * factor
1567 tusx(jsea) = tusx(jsea) + abx(jsea)*factor &
1569 tusy(jsea) = tusy(jsea) + aby(jsea)*factor &
1571 etxx(jsea) = etxx(jsea) + abx2(jsea) * factor* wn(ik,isea)**2
1573 qk2(jsea) = qk2(jsea) + qk1(jsea) * factor*
sig(ik) /wn(ik,isea)
1574 etyy(jsea) = etyy(jsea) + aby2(jsea) * factor* wn(ik,isea)**2
1575 etxy(jsea) = etxy(jsea) + abyx(jsea) * factor* wn(ik,isea)**2
1576 IF (
sig(ik)*0.5*(1+
xfr).LT.0.4*
tpi)
THEN
1577 etmssl(jsea) = etmssl(jsea) + ab(jsea)*factor &
1580 IF (
sig(max(ik-1,1))*0.5*(1+
xfr).LT.0.4*
tpi)
THEN
1581 etmssl(jsea) = etmssl(jsea) + ab(jsea)*factor &
1585 etmsscl(jsea) = ab(jsea)*factor*factor2
1589 ubs(jsea) = ubs(jsea) + ab(jsea) *
sig(ik)**2
1596 factor2 =
dth*2/(
tpi**2) &
1598 * (
tpi*
sig(ik)/cg(ik,isea))**2 &
1603 prms(jsea) = prms(jsea) + factor2 * 2 *
dsii(ik)
1604 IF ( floloc(6, 9).AND.(ik.GE.
p2msf(2).AND.ik.LE.
p2msf(3))) &
1605 p2sms(jsea,ik) = factor2 * 2 *
tpi
1606 IF (factor2 .GT. ettpmm(jsea))
THEN
1607 ettpmm(jsea) = factor2
1616 etuscx(jsea) = abx(jsea)*factor*factor2
1617 etuscy(jsea) = aby(jsea)*factor*factor2
1622 ma = abx2(jsea) * factor * factor2
1623 mc = aby2(jsea) * factor * factor2
1624 mb = abyx(jsea) * factor * factor2
1628 mscd(jsea)=0.5*atan2(2*mb,ma-mc)
1630 mscx(jsea)= ma*cos(mscd(jsea))**2 &
1631 +2*mb*sin(mscd(jsea))*cos(mscd(jsea))+ma*sin(mscd(jsea))**2
1632 mscy(jsea)= mc*cos(mscd(jsea))**2 &
1633 -2*mb*sin(mscd(jsea))*cos(mscd(jsea))+ma*sin(mscd(jsea))**2
1638 kd = max( 0.001 , wn(ik,isea) * dw(isea) )
1639 IF ( kd .LT. 6. )
THEN
1640 fkd = factor / sinh(kd)**2
1641 abr(jsea) = abr(jsea) + ab(jsea) * fkd
1642 aba(jsea) = aba(jsea) + abx(jsea) * fkd
1643 abd(jsea) = abd(jsea) + aby(jsea) * fkd
1644 ubr(jsea) = ubr(jsea) + ab(jsea) *
sig(ik)**2 * fkd
1645 uba(jsea) = uba(jsea) + abx(jsea) *
sig(ik)**2 * fkd
1646 ubd(jsea) = ubd(jsea) + aby(jsea) *
sig(ik)**2 * fkd
1647 ussco=fkd*
sig(ik)*wn(ik,isea)*cosh(2.*kd)
1648 bhd(jsea) = bhd(jsea) + &
1649 grav*wn(ik,isea) * ebd(ik,jsea) / (sinh(2.*kd))
1651 ussco=factor*
sig(ik)*2.*wn(ik,isea)
1654 abxx(jsea) = max( 0. , abxx(jsea) ) * factor
1655 abyy(jsea) = max( 0. , abyy(jsea) ) * factor
1656 abxy(jsea) = abxy(jsea) * factor
1657 sxx(jsea) = sxx(jsea) + abxx(jsea)
1658 syy(jsea) = syy(jsea) + abyy(jsea)
1659 sxy(jsea) = sxy(jsea) + abxy(jsea)
1660 ebd(ik,jsea) = ebd(ik,jsea) /
dsii(ik)
1662 IF ( floloc( 3, 1).AND.(ik.GE.
e3df(2,1).AND.ik.LE.
e3df(3,1))) &
1663 ef(jsea,ik) = ebd(ik,jsea) *
tpi
1665 ussx(jsea) = ussx(jsea) + abx(jsea)*ussco
1666 ussy(jsea) = ussy(jsea) + aby(jsea)*ussco
1675 IF ( floloc( 3, 2).AND.(ik.GE.
e3df(2,2).AND.ik.LE.
e3df(3,2))) &
1676 th1m(jsea,ik)= mod( 630. -
rade*atan2(aby(jsea),abx(jsea)) , 360. )
1677 m1 = sqrt(abx(jsea)**2+aby(jsea)**2)/max(1e-20,ab(jsea))
1678 IF ( floloc( 3, 3).AND.(ik.GE.
e3df(2,3).AND.ik.LE.
e3df(3,3))) &
1679 sth1m(jsea,ik)= sqrt(abs(2.*(1-m1)))*
rade
1680 IF ( floloc( 3, 4).AND.(ik.GE.
e3df(2,4).AND.ik.LE.
e3df(3,4))) &
1681 th2m(jsea,ik)= mod( 270. -
rade*0.5*atan2(aby2(jsea),ab2x(jsea)) , 180. )
1682 m2 = sqrt(ab2x(jsea)**2+ab2y(jsea)**2)/max(1e-20,ab(jsea))
1683 IF ( floloc( 3, 5).AND.(ik.GE.
e3df(2,5).AND.ik.LE.
e3df(3,5))) &
1684 sth2m(jsea,ik)= sqrt(abs(0.5*(1-m2)))*
rade
1695 .OR. (
stedu .GT. 0. ) )
THEN
1711 IF (
mapsta(iy,ix) .GT. 0 )
THEN
1712 IF ( abs(etx(jsea))+abs(ety(jsea)) .GT. 1.e-7 )
THEN
1713 thmp(jsea) = atan2(ety(jsea),etx(jsea))
1733 abx2m(jsea) = abx2m(jsea) + a(ith,ik,jsea)* &
1734 (
ecos(ith)*cos(thmp(jsea))+
esin(ith)*sin(thmp(jsea)))**2
1735 aby2m(jsea) = aby2m(jsea) + a(ith,ik,jsea)* &
1736 (
esin(ith)*cos(thmp(jsea))-
ecos(ith)*sin(thmp(jsea)))**2
1737 abxm(jsea) = abxm(jsea) + a(ith,ik,jsea)* &
1738 (
ecos(ith)*cos(thmp(jsea))+
esin(ith)*sin(thmp(jsea)))
1739 abym(jsea) = abym(jsea) + a(ith,ik,jsea)* &
1740 (
esin(ith)*cos(thmp(jsea))-
ecos(ith)*sin(thmp(jsea)))
1741 abxym(jsea) = abxym(jsea) + a(ith,ik,jsea)* &
1742 (
ecos(ith)*cos(thmp(jsea))+
esin(ith)*sin(thmp(jsea)))* &
1743 (
esin(ith)*cos(thmp(jsea))-
ecos(ith)*sin(thmp(jsea)))
1758 factor =
dden(ik) / cg(ik,isea)
1759 mssxm(jsea) = mssxm(jsea) + abx2m(jsea)*factor* &
1761 mssym(jsea) = mssym(jsea) + aby2m(jsea)*factor* &
1763 mssxtm(jsea) = mssxtm(jsea) + abxm(jsea)*factor*wn(ik,isea)* &
1765 mssytm(jsea) = mssytm(jsea) + abym(jsea)*factor*wn(ik,isea)* &
1767 mssxym(jsea) = mssxym(jsea) + abxym(jsea)*factor* &
1784 IF ( et02(jsea) .GT. 1.e-7 )
THEN
1785 t02p(jsea) =
tpi * sqrt(et(jsea) / et02(jsea) )
1789 IF ( mssxm(jsea) .GT. 1.e-7 )
THEN
1790 wl02x(jsea) =
tpi * sqrt(et(jsea) / mssxm(jsea))
1792 IF ( mssym(jsea) .GT. 1.e-7 )
THEN
1793 wl02y(jsea) =
tpi * sqrt(et(jsea) / mssym(jsea))
1797 IF ((mssxm(jsea) .GT. 1.e-7) .AND. (et02(jsea) .GT. 1.e-7))
THEN
1798 alpxt(jsea) = mssxtm(jsea) / (sqrt(mssxm(jsea) * et02(jsea)))
1800 IF ((mssym(jsea) .GT. 1.e-7) .AND. (et02(jsea) .GT. 1.e-7))
THEN
1801 alpyt(jsea) = mssytm(jsea) / (sqrt(mssym(jsea) * et02(jsea)))
1803 IF ((mssxm(jsea) .GT. 1.e-7) .AND. (mssym(jsea) .GT. 1.e-7))
THEN
1804 alpxy(jsea) = mssxym(jsea) / (sqrt(mssxm(jsea) * mssym(jsea)))
1808 IF (mssxm(jsea) .GT. 1.e-7)
THEN
1809 screst(jsea) = sqrt(mssym(jsea)/mssxm(jsea))
1822 IF (
stedu .GT. 0 )
THEN
1829 IF ((wl02x(jsea) .GT. 1.e-7) .AND. (wl02y(jsea) .GT. 1.e-7) &
1830 .AND. (t02p(jsea) .GT. 1.e-7))
THEN
1831 nv(jsea) =
tpi*(stex*stey*sted)/ &
1832 (wl02x(jsea)*wl02y(jsea)*t02p(jsea)) * &
1833 sqrt(1-alpxt(jsea)**2-alpyt(jsea)**2 - &
1834 alpxy(jsea)**2+2*alpxt(jsea)*alpyt(jsea)*alpxy(jsea))
1835 ns(jsea) = sqrt(
tpi)*((stex*sted)/(wl02x(jsea)*t02p(jsea)) * &
1836 sqrt(1-alpxt(jsea)**2) + &
1837 (stey*sted)/(wl02y(jsea)*t02p(jsea)) * &
1838 sqrt(1-alpyt(jsea)**2) + &
1839 (stex*stey)/(wl02x(jsea)*wl02y(jsea)) * &
1840 sqrt(1-alpxy(jsea)**2))
1841 nb(jsea) = stex/wl02x(jsea) + stey/wl02y(jsea) + &
1847 IF (et1(jsea) .GT. 1.e-7)
THEN
1848 ni(jsea) = sqrt(et(jsea)*et02(jsea)/et1(jsea)**2 - 1)
1850 IF (et(jsea) .GT. 1.e-7)
THEN
1851 mu(jsea) = et1(jsea)**2/
grav * (et(jsea))**(-1.5) * &
1852 (1-ni(jsea)+ni(jsea)**2)
1858 IF ((stex .EQ. 0) .AND. (stey .EQ. 0))
THEN
1859 mode(jsea) = sqrt(2.*log(nb(jsea)))
1861 ELSEIF (sted .EQ. 0)
THEN
1862 mode(jsea) = sqrt(2.*log(ns(jsea))+log(2.*log(ns(jsea))+ &
1863 log(2.*log(ns(jsea)))))
1865 ELSEIF ((wl02x(jsea) .GT. 1.e-7) .AND. (wl02y(jsea) .GT. 1.e-7) &
1866 .AND. (t02p(jsea) .GT. 1.e-7))
THEN
1867 mode(jsea) = sqrt(2.*log(nv(jsea))+2.*log(2.*log(nv(jsea))+ &
1868 2.*log(2.*log(nv(jsea)))))
1873 stmaxe(jsea) = sqrt(et(jsea)) * &
1874 ( mode(jsea)+0.5*mu(jsea)*mode(jsea)**2 + &
1875 0.5772*(1+mu(jsea)*mode(jsea)) / &
1876 (mode(jsea)-(2*nv(jsea)*mode(jsea)+ns(jsea)) / &
1877 (nv(jsea)*mode(jsea)**2+ns(jsea)*mode(jsea)+nb(jsea))) )
1881 stmaxd(jsea) = sqrt(et(jsea)) * &
1882 (
pi*(1+mu(jsea)*mode(jsea))/sqrt(6.) / &
1883 (mode(jsea)-(2*nv(jsea)*mode(jsea)+ns(jsea)) / &
1884 (nv(jsea)*mode(jsea)**2+ns(jsea)*mode(jsea)+nb(jsea))) )
1888 IF (t02p(jsea) .GT. 1.e-7)
THEN
1889 tlphi(jsea) = 0.3*t02p(jsea)
1892 phi(itl,jsea) = phi(itl,jsea) + &
1893 (
xfr**3*ebd(ik+3,jsea)*cos(
xfr**3*
sig(ik)*tlphi(jsea))+ &
1894 xfr**2*ebd(ik+2,jsea)*cos(
xfr**2*
sig(ik)*tlphi(jsea))+ &
1895 xfr*ebd(ik+1,jsea)*cos(
xfr*
sig(ik)*tlphi(jsea)) + &
1896 ebd(ik,jsea)*cos(
sig(ik)*tlphi(jsea)))*
dsii(ik)
1898 tlphi(jsea) = tlphi(jsea) + t02p(jsea)/20.
1900 phi(:,jsea) = phi(:,jsea)/et(jsea)
1903 phist(jsea) = abs(minval(phi(:,jsea),1))
1909 stmaxel(jsea) = sqrt(et(jsea)) * ( mode(jsea)+0.5772 / &
1910 (mode(jsea)-(2*nv(jsea)*mode(jsea)+ns(jsea)) / &
1911 (nv(jsea)*mode(jsea)**2+ns(jsea)*mode(jsea)+nb(jsea))) )
1912 stmaxdl(jsea) = sqrt(et(jsea)) * &
1914 (mode(jsea)-(2*nv(jsea)*mode(jsea)+ns(jsea)) / &
1915 (nv(jsea)*mode(jsea)**2+ns(jsea)*mode(jsea)+nb(jsea))) )
1916 hcmaxe(jsea) = stmaxel(jsea)*(1+phist(jsea))
1917 hcmaxd(jsea) = stmaxdl(jsea)*(1+phist(jsea))
1920 hmaxe(jsea) = stmaxel(jsea)*sqrt(2*(1+phist(jsea)))
1921 hmaxd(jsea) = stmaxdl(jsea)*sqrt(2*(1+phist(jsea)))
1947 mssd(jsea)=0.5*(atan2(2*etxy(jsea),etxx(jsea)-etyy(jsea)))
1948 mssx(jsea) = etxx(jsea)*cos(mssd(jsea))**2 &
1949 +2*etxy(jsea)*sin(mssd(jsea))*cos(mssd(jsea))+etyy(jsea)*sin(mssd(jsea))**2
1950 mssy(jsea) = etyy(jsea)*cos(mssd(jsea))**2 &
1951 -2*etxy(jsea)*sin(mssd(jsea))*cos(mssd(jsea))+etxx(jsea)*sin(mssd(jsea))**2
1956 eband = ab(jsea) / cg(nk,isea)
1957 et(jsea) = et(jsea) +
fte * eband
1958 ewn(jsea) = ewn(jsea) +
ftwl * eband
1959 etf(jsea) = etf(jsea) +
grav *
fttr * eband
1960 etr(jsea) = etr(jsea) +
fttr * eband
1961 et1(jsea) = et1(jsea) + ft1 * eband
1963 et02(jsea)= et02(jsea)+ eband* 0.5 *
sig(nk)**4 *
dth
1964 etx(jsea) = etx(jsea) +
fte * abx(jsea) / cg(nk,isea)
1965 ety(jsea) = ety(jsea) +
fte * aby(jsea) / cg(nk,isea)
1966 sxx(jsea) = sxx(jsea) +
fte * abxx(jsea) / cg(nk,isea)
1967 syy(jsea) = syy(jsea) +
fte * abyy(jsea) / cg(nk,isea)
1968 sxy(jsea) = sxy(jsea) +
fte * abxy(jsea) / cg(nk,isea)
1974 ubs(jsea) = ubs(jsea) +
ftwl * eband/
grav
1993 IF (
mapsta(iy,ix) .GT. 0 )
THEN
1995 IF ( et(jsea) .GE. 0. )
THEN
1997 hs(jsea) = 4. * sqrt( et(jsea) )
2000 hs(jsea) = - 4. * sqrt( -et(jsea) )
2003 IF ( et(jsea) .GT. 1.e-7 )
THEN
2004 qp(jsea) = ( 2. / et(jsea)**2 ) * eet1(jsea)
2005 wlm(jsea) = ewn(jsea) / et(jsea) *
tpi
2006 t0m1(jsea) = etr(jsea) / et(jsea) *
tpi
2007 ths(jsea) =
rade * sqrt( max( 0. , 2. * ( 1. - sqrt( &
2008 max(0.,(etx(jsea)**2+ety(jsea)**2)/et(jsea)**2) ) ) ) )
2009 IF ( ths(jsea) .LT. 0.01*
rade*
dth ) ths(jsea) = 0.
2012 qkk(jsea) = sqrt(0.5*qk2(jsea))/et(jsea)
2015 t0m1(jsea) =
tpi /
sig(nk)
2018 IF ( abs(etx(jsea))+abs(ety(jsea)) .GT. 1.e-7 )
THEN
2019 thm(jsea) = atan2(ety(jsea),etx(jsea))
2023 abr(jsea) = sqrt( 2. * max( 0. , abr(jsea) ) )
2024 IF ( abr(jsea) .GE. 1.e-7 )
THEN
2025 abd(jsea) = atan2(abd(jsea),aba(jsea))
2029 aba(jsea) = abr(jsea)
2030 ubr(jsea) = sqrt( 2. * max( 0. , ubr(jsea) ) )
2031 IF ( ubr(jsea) .GE. 1.e-7 )
THEN
2032 ubd(jsea) = atan2(ubd(jsea),uba(jsea))
2036 uba(jsea) = ubr(jsea)
2038 IF ( et02(jsea) .GT. 1.e-7 .AND. et(jsea) .GT. 0 )
THEN
2039 t02(jsea) =
tpi * sqrt(et(jsea) / et02(jsea) )
2040 t01(jsea) =
tpi * et(jsea) / et1(jsea)
2042 t02(jsea) =
tpi /
sig(nk)
2043 t01(jsea)= t02(jsea)
2059 IF ( hs(jsea).LE.hsmin .AND. hs(jsea).NE.
undef)
THEN
2077 ec(jsea) = ebd(nk,jsea)
2096 IF ( ec(jsea) .LT. ebd(ik,jsea) )
THEN
2097 ec(jsea) = ebd(ik,jsea)
2113 IF ( ikp0(jsea) .NE. nk ) fp0(jsea) =
sig(ikp0(jsea)) *
tpiinv
2132 IF ( ikp0(jsea) .NE. nk )
THEN
2133 IF ( ikp0(jsea) .EQ. 1 )
THEN
2134 el = - ebd(ikp0(jsea), jsea)
2136 el = ebd(ikp0(jsea)-1, jsea) - ebd(ikp0(jsea), jsea)
2139 eh = ebd(ikp0(jsea)+1, jsea) - ebd(ikp0(jsea), jsea)
2141 denom = xl*eh - xh*el
2142 fp0(jsea) = fp0(jsea) * ( 1. + 0.5 * ( xl2*eh - xh2*el ) &
2143 / sign( max(abs(denom),1.e-15) , denom ) )
2173 IF ( ikp0(jsea) .NE. nk )
THEN
2174 etx(jsea) = etx(jsea) + a(ith,ikp0(jsea),jsea)*
ecos(ith)
2175 ety(jsea) = ety(jsea) + a(ith,ikp0(jsea),jsea)*
esin(ith)
2190 IF ( abs(etx(jsea))+abs(ety(jsea)) .GT. 1.e-7 .AND. &
2191 fp0(jsea).NE.
undef ) &
2192 thp0(jsea) = atan2(ety(jsea),etx(jsea))
2206 IF (
mapsta(iy,ix) .LE. 0 )
THEN
2224 IF ( hs(jsea) .EQ.
undef )
THEN
2225 WRITE (
ndst,9051) isea, ix, iy
2226 ELSE IF ( wlm(jsea) .EQ.
undef )
THEN
2227 WRITE (
ndst,9052) isea, ix, iy, hs(jsea)
2228 ELSE IF ( fp0(jsea) .EQ.
undef )
THEN
2229 WRITE (
ndst,9053) isea, ix, iy, hs(jsea), wlm(jsea), &
2230 t0m1(jsea),
rade*thm(jsea), ths(jsea)
2232 WRITE (
ndst,9054) isea, ix, iy, hs(jsea), wlm(jsea), &
2233 t0m1(jsea),
rade*thm(jsea), ths(jsea), fp0(jsea),&
2274 IF (
mapsta(iy,ix).GT.0 )
THEN
2276 pnr(jsea) = max( 0. , real(
icprt(jsea,1)-1) )
2277 IF (
icprt(jsea,1).GE.1 ) pwst(jsea) =
dtprt(6,i)
2280 IF (
mapsta(iy,ix).GT.0 .AND.
icprt(jsea,1).GT.1 )
THEN
2281 i =
icprt(jsea,2) + 1
2283 phs(jsea,0) =
dtprt(1,i)
2284 ptp(jsea,0) =
dtprt(2,i)
2285 plp(jsea,0) =
dtprt(3,i)
2289 pdir(jsea,0) = (270. -
dtprt(4,i)) *
dera
2291 psi(jsea,0) =
dtprt(5,i)
2292 pws(jsea,0) =
dtprt(6,i)
2296 pthp0(jsea,0) = (270. -
dtprt(7,i)) *
dera
2298 psw(jsea,0) =
dtprt(8,i)
2299 ppe(jsea,0) =
dtprt(9,i)
2300 pqp(jsea,0) =
dtprt(10,i)
2301 pgw(jsea,0) =
dtprt(11,i)
2302 ptm1(jsea,0) =
dtprt(12,i)
2303 pt1(jsea,0) =
dtprt(13,i)
2304 pt2(jsea,0) =
dtprt(14,i)
2305 pep(jsea,0) =
dtprt(15,i)
2309 IF ( i .GT.
icprt(jsea,2)+
icprt(jsea,1)-1 )
EXIT
2310 phs(jsea,j) =
dtprt(1,i)
2311 ptp(jsea,j) =
dtprt(2,i)
2312 plp(jsea,j) =
dtprt(3,i)
2316 pdir(jsea,j) = (270. -
dtprt(4,i)) *
dera
2318 psi(jsea,j) =
dtprt(5,i)
2319 pws(jsea,j) =
dtprt(6,i)
2323 pthp0(jsea,j) = (270. -
dtprt(7,i)) *
dera
2325 psw(jsea,j) =
dtprt(8,i)
2326 ppe(jsea,j) =
dtprt(9,i)
2327 pqp(jsea,j) =
dtprt(10,i)
2328 pgw(jsea,j) =
dtprt(11,i)
2329 ptm1(jsea,j) =
dtprt(12,i)
2330 pt1(jsea,j) =
dtprt(13,i)
2331 pt2(jsea,j) =
dtprt(14,i)
2332 pep(jsea,j) =
dtprt(15,i)
2346 IF (floloc( 6, 8))
THEN
2350 IF (floloc( 6, 12))
THEN
2354 IF (floloc( 8, 7).OR.floloc( 8, 8).OR.floloc( 8, 9))
THEN
2361 IF (floloc(2, 17))
CALL calc_wbt(a)
2368 9050
FORMAT (
' TEST W3OUTG : ISEA, IX, IY, HS, L, Tm, THm, THs', &
2370 9051
FORMAT (2x,i8,2i8)
2371 9052
FORMAT (2x,i8,2i8,f6.2)
2372 9053
FORMAT (2x,i8,2i8,f6.2,f7.1,f6.2,2f6.1)
2373 9054
FORMAT (2x,i8,2i8,f6.2,f7.1,f6.2,2f6.1,f6.3,f6.0)
2394 SUBROUTINE w3iogo ( INXOUT, NDSOG, IOTST, IMOD &
2519 USE w3adatmd,
ONLY:
hs,
wlm,
t02,
t0m1,
t01,
fp0,
thm,
ths,
thp0,&
2521 USE w3adatmd,
ONLY:
dtdyn,
fcut,
aba,
abd,
uba,
ubd,
sxx,
syy,
sxy,&
2553 INTEGER,
INTENT(INOUT) :: IOTST
2554 INTEGER,
INTENT(IN) :: NDSOG
2555 INTEGER,
INTENT(IN),
OPTIONAL :: IMOD
2556 CHARACTER,
INTENT(IN) :: INXOUT*(*)
2557 CHARACTER(LEN=15) :: TIMETAG
2559 INTEGER,
INTENT(IN),
OPTIONAL :: NDSOA
2565 INTEGER :: IGRD, IERR, I, J, IX, IY, MOGRP, &
2566 MGRPP, ISEA, MOSWLL, IK, IFI, IFJ &
2568 INTEGER,
ALLOCATABLE :: MAPTMP(:,:)
2570 INTEGER,
SAVE :: IENT = 0
2572 REAL :: AUX1(NSEA), AUX2(NSEA), &
2573 AUX3(NSEA), AUX4(NSEA)
2577 CHARACTER(LEN=30) :: IDTST, TNAME
2578 CHARACTER(LEN=10) :: VERTST
2583 CALL strace (ient,
'W3IOGO')
2588 IF (
PRESENT(imod) )
THEN
2594 CALL w3seto ( igrd, ndse, ndst )
2595 CALL w3setg ( igrd, ndse, ndst )
2596 CALL w3seta ( igrd, ndse, ndst )
2598 CALL w3xeta ( igrd, ndse, ndst )
2600 CALL w3setw ( igrd, ndse, ndst )
2605 IF (inxout.NE.
'READ' .AND. inxout.NE.
'WRITE' )
THEN
2606 WRITE (ndse,900) inxout
2610 IF ( ipass.EQ.1 .AND.
ofiles(1) .EQ. 0)
THEN
2611 WRITE = inxout.EQ.
'WRITE'
2613 IF (
WRITE .AND. inxout.EQ.
'READ' )
THEN
2614 WRITE (ndse,901) inxout
2620 WRITE (ndst,9000) ipass, inxout,
WRITE, ndsog, igrd,
filext
2627 IF ( ipass.EQ.1 .AND.
ofiles(1) .EQ. 0)
THEN
2629 j = len_trim(fnmpre)
2632 WRITE (ndst,9001) fnmpre(:j)//
'out_grd.'//
filext(:i)
2635 OPEN (ndsog,
file=fnmpre(:j)//
'out_grd.'//
filext(:i), &
2636 form =
'UNFORMATTED', convert=
file_endian,err=800,iostat=ierr)
2638 OPEN (ndsoa,
file=fnmpre(:j)//
'out_grd.'//
filext(:i)//
'.txt', &
2639 form =
'FORMATTED',err=800,iostat=ierr)
2642 OPEN (ndsog,
file=fnmpre(:j)//
'out_grd.'//
filext(:i), &
2643 form=
'UNFORMATTED', convert=
file_endian,err=800,iostat=ierr,status=
'OLD')
2653 idstr, verogr,
gname, nogrp, ngrpp, nsea,
nx,
ny, &
2657 'IDSTR, VEROGR, GNAME, NOGRP, NGRPP, NSEA, NX, NY, &
2659 idstr, verogr,
gname, nogrp, ngrpp, nsea,
nx,
ny, &
2663 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
2664 idtst, vertst, tname, mogrp, mgrpp, nsea, nx, ny, &
2667 IF ( idtst .NE. idstr )
THEN
2668 WRITE (ndse,902) idtst, idstr
2671 IF ( vertst .NE. verogr )
THEN
2672 WRITE (ndse,903) vertst, verogr
2675 IF ( nogrp .NE. mogrp .OR. ngrpp .NE. mgrpp )
THEN
2676 WRITE (ndse,904) mogrp, mgrpp, nogrp, ngrpp
2679 IF ( tname .NE. gname )
THEN
2680 WRITE (ndse,905) tname, gname
2682 IF ( noswll .NE. moswll )
THEN
2683 WRITE (ndse,906) moswll, noswll
2690 WRITE (ndst,9002) idstr, verogr, gname, nsea, nx, ny, &
2700 IF ( ipass.GE.1 .AND. ofiles(1) .EQ. 1)
THEN
2701 WRITE = inxout.EQ.
'WRITE'
2703 IF (
WRITE .AND. inxout.EQ.
'READ' )
THEN
2704 WRITE (ndse,901) inxout
2710 IF ( ipass.GE.1 .AND. ofiles(1) .EQ. 1)
THEN
2711 i = len_trim(filext)
2712 j = len_trim(fnmpre)
2715 WRITE(timetag,
"(i8.8,'.'i6.6)")time(1),time(2)
2717 WRITE (ndst,9001) fnmpre(:j)//timetag//
'.out_grd.'//filext(:i)
2720 OPEN (ndsog,
file=fnmpre(:j)//timetag//
'.out_grd.' &
2721 //filext(:i),form=
'UNFORMATTED', convert=file_endian,err=800,iostat=ierr)
2723 OPEN (ndsoa,
file=fnmpre(:j)//timetag//
'.out_grd.' &
2724 //filext(:i)//
'.txt',form=
'FORMATTED',err=800,iostat=ierr)
2727 OPEN (ndsog,
file=fnmpre(:j)//
'out_grd.'//filext(:i), &
2728 form=
'UNFORMATTED', convert=file_endian,err=800,iostat=ierr,status=
'OLD')
2738 idstr, verogr, gname, nogrp, ngrpp, nsea, nx, ny, &
2742 'IDSTR, VEROGR, GNAME, NOGRP, NGRPP, NSEA, NX, NY, &
2744 idstr, verogr, gname, nogrp, ngrpp, nsea, nx, ny, &
2748 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
2749 idtst, vertst, tname, mogrp, mgrpp, nsea, nx, ny, &
2752 IF ( idtst .NE. idstr )
THEN
2753 WRITE (ndse,902) idtst, idstr
2756 IF ( vertst .NE. verogr )
THEN
2757 WRITE (ndse,903) vertst, verogr
2760 IF ( nogrp .NE. mogrp .OR. ngrpp .NE. mgrpp )
THEN
2761 WRITE (ndse,904) mogrp, mgrpp, nogrp, ngrpp
2764 IF ( tname .NE. gname )
THEN
2765 WRITE (ndse,905) tname, gname
2767 IF ( noswll .NE. moswll )
THEN
2768 WRITE (ndse,906) moswll, noswll
2775 WRITE (ndst,9002) idstr, verogr, gname, nsea, nx, ny, &
2784 WRITE (ndsog) time, flogrd
2786 WRITE (ndsoa,*)
'TIME, FLOGRD:', &
2790 READ (ndsog,
END=803,ERR=802,IOSTAT=IERR) TIME, flogrd
2794 WRITE (ndst,9003) time, flogrd
2799 ALLOCATE ( maptmp(ny,nx) )
2801 maptmp = mapsta + 8*mapst2
2803 ((maptmp(iy,ix),ix=1,nx),iy=1,ny)
2805 WRITE (ndsoa,*)
'MAPSTA:', &
2806 ((maptmp(iy,ix),ix=1,nx),iy=1,ny)
2809 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
2810 ((maptmp(iy,ix),ix=1,nx),iy=1,ny)
2811 mapsta = mod(maptmp+2,8) - 2
2812 mapst2 = (maptmp-mapsta) / 8
2814 DEALLOCATE ( maptmp )
2822 IF ( mapsta(mapsf(isea,2),mapsf(isea,1)) .LT. 0 )
THEN
2824 IF ( flogrd( 2, 2) ) wlm(isea) = undef
2825 IF ( flogrd( 2, 3) ) t02(isea) = undef
2826 IF ( flogrd( 2, 4) ) t0m1(isea) = undef
2827 IF ( flogrd( 2, 5) ) t01(isea) = undef
2828 IF ( flogrd( 2, 6) .OR. flogrd( 2,18) ) &
2830 IF ( flogrd( 2, 7) ) thm(isea) = undef
2831 IF ( flogrd( 2, 8) ) ths(isea) = undef
2832 IF ( flogrd( 2, 9) ) thp0(isea) = undef
2834 ustdir(isea) = undef
2835 IF ( flogrd( 2,10) ) hsig(isea) = undef
2836 IF ( flogrd( 2,11) ) stmaxe(isea) = undef
2837 IF ( flogrd( 2,12) ) stmaxd(isea) = undef
2838 IF ( flogrd( 2,13) ) hmaxe(isea) = undef
2839 IF ( flogrd( 2,14) ) hcmaxe(isea) = undef
2840 IF ( flogrd( 2,15) ) hmaxd(isea) = undef
2841 IF ( flogrd( 2,16) ) hcmaxd(isea) = undef
2842 IF ( flogrd( 2,17) ) wbt(isea) = undef
2843 IF ( flogrd( 2,19) ) wnmean(isea) = undef
2845 IF ( flogrd( 3, 1) ) ef(isea,:) = undef
2846 IF ( flogrd( 3, 2) ) th1m(isea,:) = undef
2847 IF ( flogrd( 3, 3) ) sth1m(isea,:) = undef
2848 IF ( flogrd( 3, 4) ) th2m(isea,:) = undef
2849 IF ( flogrd( 3, 5) ) sth2m(isea,:) = undef
2851 IF ( flogrd( 4, 1) ) phs(isea,:) = undef
2852 IF ( flogrd( 4, 2) ) ptp(isea,:) = undef
2853 IF ( flogrd( 4, 3) ) plp(isea,:) = undef
2854 IF ( flogrd( 4, 4) ) pdir(isea,:) = undef
2855 IF ( flogrd( 4, 5) ) psi(isea,:) = undef
2856 IF ( flogrd( 4, 6) ) pws(isea,:) = undef
2857 IF ( flogrd( 4, 7) ) pthp0(isea,:) = undef
2858 IF ( flogrd( 4, 8) ) pqp(isea,:) = undef
2859 IF ( flogrd( 4, 9) ) ppe(isea,:) = undef
2860 IF ( flogrd( 4,10) ) pgw(isea,:) = undef
2861 IF ( flogrd( 4,11) ) psw(isea,:) = undef
2862 IF ( flogrd( 4,12) ) ptm1(isea,:) = undef
2863 IF ( flogrd( 4,13) ) pt1(isea,:) = undef
2864 IF ( flogrd( 4,14) ) pt2(isea,:) = undef
2865 IF ( flogrd( 4,15) ) pep(isea,:) = undef
2866 IF ( flogrd( 4,16) ) pwst(isea ) = undef
2867 IF ( flogrd( 4,17) ) pnr(isea ) = undef
2869 IF ( flogrd( 5, 2) ) charn(isea) = undef
2870 IF ( flogrd( 5, 3) ) cge(isea) = undef
2871 IF ( flogrd( 5, 4) ) phiaw(isea) = undef
2872 IF ( flogrd( 5, 5) )
THEN
2873 tauwix(isea) = undef
2874 tauwiy(isea) = undef
2876 IF ( flogrd( 5, 6) )
THEN
2877 tauwnx(isea) = undef
2878 tauwny(isea) = undef
2880 IF ( flogrd( 5, 7) ) whitecap(isea,1) = undef
2881 IF ( flogrd( 5, 8) ) whitecap(isea,2) = undef
2882 IF ( flogrd( 5, 9) ) whitecap(isea,3) = undef
2883 IF ( flogrd( 5,10) ) whitecap(isea,4) = undef
2885 IF ( flogrd( 6, 1) )
THEN
2890 IF ( flogrd( 6, 2) )
THEN
2894 IF ( flogrd( 6, 3) ) bhd(isea) = undef
2895 IF ( flogrd( 6, 4) ) phioc(isea) = undef
2896 IF ( flogrd( 6, 5) )
THEN
2900 IF ( flogrd( 6, 6) )
THEN
2904 IF ( flogrd( 6, 7) )
THEN
2908 IF ( flogrd( 6, 8) ) us3d(isea,:) = undef
2909 IF ( flogrd( 6, 9) ) p2sms(isea,:) = undef
2910 IF ( flogrd( 6, 10) ) tauice(isea,:) = undef
2911 IF ( flogrd( 6, 11) ) phice(isea) = undef
2912 IF ( flogrd( 6, 12) ) ussp(isea,:) = undef
2913 IF ( flogrd( 6, 13) )
THEN
2914 tauocx(isea) = undef
2915 tauocy(isea) = undef
2918 IF ( flogrd( 7, 1) )
THEN
2922 IF ( flogrd( 7, 2) )
THEN
2926 IF ( flogrd( 7, 3) ) bedforms(isea,:) = undef
2927 IF ( flogrd( 7, 4) ) phibbl(isea) = undef
2928 IF ( flogrd( 7, 5) ) taubbl(isea,:) = undef
2930 IF ( flogrd( 8, 1) )
THEN
2934 IF ( flogrd( 8, 2) )
THEN
2938 IF ( flogrd( 8, 3) ) mssd(isea) = undef
2939 IF ( flogrd( 8, 4) ) mscd(isea) = undef
2940 IF ( flogrd( 8, 5) ) qp(isea) = undef
2941 IF ( flogrd( 8, 6) ) qkk(isea) = undef
2942 IF ( flogrd( 8, 7) ) skew(isea) = undef
2943 IF ( flogrd( 8, 8) ) embia1(isea) = undef
2944 IF ( flogrd( 8, 9) ) embia2(isea) = undef
2946 IF ( flogrd( 9, 1) ) dtdyn(isea) = undef
2947 IF ( flogrd( 9, 2) ) fcut(isea) = undef
2948 IF ( flogrd( 9, 3) ) cflxymax(isea) = undef
2949 IF ( flogrd( 9, 4) ) cflthmax(isea) = undef
2950 IF ( flogrd( 9, 5) ) cflkmax(isea) = undef
2954 IF ( mapsta(mapsf(isea,2),mapsf(isea,1)) .EQ. 2 )
THEN
2956 IF ( flogrd( 5, 4) ) phiaw(isea) = undef
2957 IF ( flogrd( 5, 5) )
THEN
2958 tauwix(isea) = undef
2959 tauwiy(isea) = undef
2961 IF ( flogrd( 5, 6) )
THEN
2962 tauwnx(isea) = undef
2963 tauwny(isea) = undef
2965 IF ( flogrd( 5, 7) ) whitecap(isea,1) = undef
2966 IF ( flogrd( 5, 8) ) whitecap(isea,2) = undef
2967 IF ( flogrd( 5, 9) ) whitecap(isea,3) = undef
2968 IF ( flogrd( 5,10) ) whitecap(isea,4) = undef
2970 IF ( flogrd( 6, 2) )
THEN
2974 IF ( flogrd( 6, 4) ) phioc(isea) = undef
2976 IF ( flogrd( 7, 3) ) bedforms(isea,:) = undef
2977 IF ( flogrd( 7, 4) ) phibbl(isea) = undef
2978 IF ( flogrd( 7, 5) ) taubbl(isea,:) = undef
2985 IF (.NOT.dinit)
CALL w3dimw ( igrd, ndse, ndst, .true. )
2986 IF (.NOT.ainit)
CALL w3dima ( igrd, ndse, ndst, .true. )
2993 IF ( flogrd(ifi,ifj) )
THEN
2996 WRITE (ndst,9010) flogrd(ifi,ifj), idout(ifi,ifj)
3003 IF ( ifi .EQ. 1 .AND. ifj .EQ. 1 )
THEN
3004 WRITE ( ndsog ) dw(1:nsea)
3006 WRITE ( ndsoa,* )
'DW:', dw(1:nsea)
3008 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 2 )
THEN
3009 WRITE ( ndsog ) cx(1:nsea)
3011 WRITE ( ndsoa,* )
'CX:', cx(1:nsea)
3013 WRITE ( ndsog ) cy(1:nsea)
3015 WRITE ( ndsoa,* )
'CY:', cy(1:nsea)
3017 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 3 )
THEN
3021 IF( arctc .AND. (isea .GT. nglo) )
THEN
3022 udarc = ud(isea) - angarc(isea - nglo)*dera
3023 ud(isea) = mod(tpi + udarc, tpi)
3026 IF (ua(isea) .NE.undef)
THEN
3027 aux1(isea) = ua(isea)*cos(ud(isea))
3028 aux2(isea) = ua(isea)*sin(ud(isea))
3034 WRITE ( ndsog ) aux1
3036 WRITE ( ndsoa,* )
'AUX1 (UA*cos(UD)):', aux1
3038 WRITE ( ndsog ) aux2
3040 WRITE ( ndsoa,* )
'AUX2 (UA*sin(UD)):', aux2
3042 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 4 )
THEN
3043 WRITE ( ndsog ) as(1:nsea)
3045 WRITE ( ndsoa,* )
'AS:', as(1:nsea)
3047 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 5 )
THEN
3048 WRITE ( ndsog ) wlv(1:nsea)
3050 WRITE ( ndsoa,* )
'WLV:', wlv(1:nsea)
3052 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 6 )
THEN
3053 WRITE ( ndsog ) ice(1:nsea)
3055 WRITE ( ndsoa,* )
'ICE:', ice(1:nsea)
3057 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 7 )
THEN
3058 WRITE ( ndsog ) berg(1:nsea)
3060 WRITE ( ndsoa,* )
'BERG:', berg(1:nsea)
3062 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 8 )
THEN
3066 IF( arctc .AND. (isea .GT. nglo) )
THEN
3067 udarc = tauadir(isea) - angarc(isea - nglo)*dera
3068 tauadir(isea) = mod(tpi + udarc, tpi)
3071 IF (taua(isea) .NE.undef)
THEN
3072 aux1(isea) = taua(isea)*cos(tauadir(isea))
3073 aux2(isea) = taua(isea)*sin(tauadir(isea))
3079 WRITE ( ndsog ) aux1
3081 WRITE ( ndsoa,* )
'AUX1 (TAUA*cos(TAUADIR)):', aux1
3083 WRITE ( ndsog ) aux2
3085 WRITE ( ndsoa,* )
'AUX2 (TAUA*sin(TAUADIR)):', aux2
3087 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 9 )
THEN
3088 WRITE ( ndsog ) rhoair(1:nsea)
3090 WRITE ( ndsoa,* )
'RHOAIR:', rhoair(1:nsea)
3093 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 10 )
THEN
3094 WRITE ( ndsog ) sed_d50(1:nsea)
3096 WRITE ( ndsoa,* )
'SED_D50:', sed_d50(1:nsea)
3100 ELSE IF (ifi .EQ. 1 .AND. ifj .EQ. 11 )
THEN
3101 WRITE (ndsog ) iceh(1:nsea)
3103 WRITE (ndsoa,* )
'ICEH:', iceh(1:nsea)
3105 ELSE IF (ifi .EQ. 1 .AND. ifj .EQ. 12 )
THEN
3106 WRITE (ndsog ) icef(1:nsea)
3108 WRITE (ndsoa,* )
'ICEF:', icef(1:nsea)
3112 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 13 )
THEN
3113 WRITE ( ndsog ) zeta_setup(1:nsea)
3115 WRITE ( ndsoa,* )
'ZETA_SETUP:', zeta_setup(1:nsea)
3122 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 1 )
THEN
3123 WRITE ( ndsog ) hs(1:nsea)
3125 WRITE ( ndsoa,* )
'HS:', hs(1:nsea)
3127 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 2 )
THEN
3128 WRITE ( ndsog ) wlm(1:nsea)
3130 WRITE ( ndsoa,* )
'WLM:', wlm(1:nsea)
3132 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 3 )
THEN
3133 WRITE ( ndsog ) t02(1:nsea)
3135 WRITE ( ndsoa,* )
'T02:', t02(1:nsea)
3137 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 4 )
THEN
3138 WRITE ( ndsog ) t0m1(1:nsea)
3140 WRITE ( ndsoa,* )
'T0M1:', t0m1(1:nsea)
3142 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 5 )
THEN
3143 WRITE ( ndsog ) t01(1:nsea)
3145 WRITE ( ndsoa,* )
'T01:', t01(1:nsea)
3147 ELSE IF ( (ifi .EQ. 2 .AND. ifj .EQ. 6) .OR. &
3148 (ifi .EQ. 2 .AND. ifj .EQ. 18) )
THEN
3150 WRITE ( ndsog ) fp0(1:nsea)
3152 WRITE ( ndsoa,* )
'FP0:', fp0(1:nsea)
3154 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 7 )
THEN
3155 WRITE ( ndsog ) thm(1:nsea)
3157 WRITE ( ndsoa,* )
'THM:', thm(1:nsea)
3159 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 8 )
THEN
3160 WRITE ( ndsog ) ths(1:nsea)
3162 WRITE ( ndsoa,* )
'THS:', ths(1:nsea)
3164 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 9 )
THEN
3165 WRITE ( ndsog ) thp0(1:nsea)
3167 WRITE ( ndsoa,* )
'THP0:', thp0(1:nsea)
3169 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 10 )
THEN
3170 WRITE ( ndsog ) hsig(1:nsea)
3172 WRITE ( ndsoa,* )
'HSIG:', hsig(1:nsea)
3174 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 11 )
THEN
3175 WRITE ( ndsog ) stmaxe(1:nsea)
3177 WRITE ( ndsoa,* )
'STMAXE:', stmaxe(1:nsea)
3179 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 12 )
THEN
3180 WRITE ( ndsog ) stmaxd(1:nsea)
3182 WRITE ( ndsoa,* )
'STMAXD:', stmaxd(1:nsea)
3184 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 13 )
THEN
3185 WRITE ( ndsog ) hmaxe(1:nsea)
3187 WRITE ( ndsoa,* )
'HMAXE:', hmaxe(1:nsea)
3189 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 14 )
THEN
3190 WRITE ( ndsog ) hcmaxe(1:nsea)
3192 WRITE ( ndsoa,* )
'HCMAXE:', hcmaxe(1:nsea)
3194 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 15 )
THEN
3195 WRITE ( ndsog ) hmaxd(1:nsea)
3197 WRITE ( ndsoa,* )
'HMAXD:', hmaxd(1:nsea)
3199 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 16 )
THEN
3200 WRITE ( ndsog ) hcmaxd(1:nsea)
3202 WRITE ( ndsoa,* )
'HCMAXD:', hcmaxd(1:nsea)
3204 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 17 )
THEN
3205 WRITE ( ndsog ) wbt(1:nsea)
3207 WRITE ( ndsoa,* )
'WBT:', wbt(1:nsea)
3209 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 19 )
THEN
3210 WRITE ( ndsog ) wnmean(1:nsea)
3212 WRITE ( ndsoa,* )
'WNMEAN:', wnmean(1:nsea)
3217 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 1 )
THEN
3218 WRITE ( ndsog ) ef(1:nsea,e3df(2,1):e3df(3,1))
3220 WRITE ( ndsoa,* )
'EF:', ef(1:nsea,e3df(2,1):e3df(3,1))
3222 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 2 )
THEN
3223 WRITE ( ndsog ) th1m(1:nsea,e3df(2,2):e3df(3,2))
3225 WRITE ( ndsoa,* )
'TH1M:', th1m(1:nsea,e3df(2,2):e3df(3,2))
3227 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 3 )
THEN
3228 WRITE ( ndsog ) sth1m(1:nsea,e3df(2,3):e3df(3,3))
3230 WRITE ( ndsoa,* )
'STH1M:', sth1m(1:nsea,e3df(2,3):e3df(3,3))
3232 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 4 )
THEN
3233 WRITE ( ndsog ) th2m(1:nsea,e3df(2,4):e3df(3,4))
3235 WRITE ( ndsoa,* )
'TH2M:', th2m(1:nsea,e3df(2,4):e3df(3,4))
3237 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 5 )
THEN
3238 WRITE ( ndsog ) sth2m(1:nsea,e3df(2,5):e3df(3,5))
3240 WRITE ( ndsoa,* )
'STH2M:', sth2m(1:nsea,e3df(2,5):e3df(3,5))
3242 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 6)
THEN
3243 WRITE ( ndsog ) wn(1:nk,1:nsea)
3245 WRITE ( ndsoa,* )
'WN:', wn(1:nk,1:nsea)
3250 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 1 )
THEN
3251 WRITE ( ndsog ) phs(1:nsea,0:noswll)
3253 WRITE ( ndsoa,* )
'PHS:', phs(1:nsea,0:noswll)
3255 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 2 )
THEN
3256 WRITE ( ndsog ) ptp(1:nsea,0:noswll)
3258 WRITE ( ndsoa,* )
'PTP:', ptp(1:nsea,0:noswll)
3260 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 3 )
THEN
3261 WRITE ( ndsog ) plp(1:nsea,0:noswll)
3263 WRITE ( ndsoa,* )
'PLP:', plp(1:nsea,0:noswll)
3265 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 4 )
THEN
3266 WRITE ( ndsog ) pdir(1:nsea,0:noswll)
3268 WRITE ( ndsoa,* )
'PDIR:', pdir(1:nsea,0:noswll)
3270 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 5 )
THEN
3271 WRITE ( ndsog ) psi(1:nsea,0:noswll)
3273 WRITE ( ndsoa,* )
'PSI:', psi(1:nsea,0:noswll)
3275 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 6 )
THEN
3276 WRITE ( ndsog ) pws(1:nsea,0:noswll)
3278 WRITE ( ndsoa,* )
'PWS:', pws(1:nsea,0:noswll)
3280 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 7 )
THEN
3281 WRITE ( ndsog ) pthp0(1:nsea,0:noswll)
3283 WRITE ( ndsoa,* )
'PTHP0:', pthp0(1:nsea,0:noswll)
3285 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 8 )
THEN
3286 WRITE ( ndsog ) pqp(1:nsea,0:noswll)
3288 WRITE ( ndsoa,* )
'PQP:', pqp(1:nsea,0:noswll)
3290 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 9 )
THEN
3291 WRITE ( ndsog ) ppe(1:nsea,0:noswll)
3293 WRITE ( ndsoa,* )
'PPE:', ppe(1:nsea,0:noswll)
3295 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 10 )
THEN
3296 WRITE ( ndsog ) pgw(1:nsea,0:noswll)
3298 WRITE ( ndsoa,* )
'PGW:', pgw(1:nsea,0:noswll)
3300 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 11 )
THEN
3301 WRITE ( ndsog ) psw(1:nsea,0:noswll)
3303 WRITE ( ndsoa,* )
'PSW:', psw(1:nsea,0:noswll)
3305 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 12 )
THEN
3306 WRITE ( ndsog ) ptm1(1:nsea,0:noswll)
3308 WRITE ( ndsoa,* )
'PTM1:', ptm1(1:nsea,0:noswll)
3310 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 13 )
THEN
3311 WRITE ( ndsog ) pt1(1:nsea,0:noswll)
3313 WRITE ( ndsoa,* )
'PT1:', pt1(1:nsea,0:noswll)
3315 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 14 )
THEN
3316 WRITE ( ndsog ) pt2(1:nsea,0:noswll)
3318 WRITE ( ndsoa,* )
'PT2:', pt2(1:nsea,0:noswll)
3320 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 15 )
THEN
3321 WRITE ( ndsog ) pep(1:nsea,0:noswll)
3323 WRITE ( ndsoa,* )
'PEP:', pep(1:nsea,0:noswll)
3325 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 16 )
THEN
3326 WRITE ( ndsog ) pwst(1:nsea)
3328 WRITE ( ndsoa,* )
'PWST:', pwst(1:nsea)
3330 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 17 )
THEN
3331 WRITE ( ndsog ) pnr(1:nsea)
3333 WRITE ( ndsoa,* )
'PNR:', pnr(1:nsea)
3338 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 1 )
THEN
3342 IF ( mapsta(iy,ix) .EQ. 1 )
THEN
3343 aux1(isea) = ust(isea) * asf(isea) * &
3345 aux2(isea) = ust(isea) * asf(isea) * &
3352 WRITE ( ndsog ) aux1
3354 WRITE ( ndsoa,* )
'AUX1 (UST*ASF*cos(USTDIR)):', aux1
3356 WRITE ( ndsog ) aux2
3358 WRITE ( ndsoa,* )
'AUX2 (UST*ASF*sin(USTDIR)):', aux2
3360 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 2 )
THEN
3361 WRITE ( ndsog ) charn(1:nsea)
3363 WRITE ( ndsoa,* )
'CHARN:', charn(1:nsea)
3365 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 3 )
THEN
3366 WRITE ( ndsog ) cge(1:nsea)
3368 WRITE ( ndsoa,* )
'CGE:', cge(1:nsea)
3370 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 4 )
THEN
3371 WRITE ( ndsog ) phiaw(1:nsea)
3373 WRITE ( ndsoa,* )
'PHIAW:', phiaw(1:nsea)
3375 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 5 )
THEN
3376 WRITE ( ndsog ) tauwix(1:nsea)
3378 WRITE ( ndsoa,* )
'TAUWIX:', tauwix(1:nsea)
3380 WRITE ( ndsog ) tauwiy(1:nsea)
3382 WRITE ( ndsoa,* )
'TAUWIY:', tauwiy(1:nsea)
3384 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 6 )
THEN
3385 WRITE ( ndsog ) tauwnx(1:nsea)
3387 WRITE ( ndsoa,* )
'TAUWNX:', tauwnx(1:nsea)
3389 WRITE ( ndsog ) tauwny(1:nsea)
3391 WRITE ( ndsoa,* )
'TAUWNY:', tauwny(1:nsea)
3393 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 7 )
THEN
3394 WRITE ( ndsog ) whitecap(1:nsea,1)
3396 WRITE ( ndsoa,* )
'WHITECAP(1):', whitecap(1:nsea,1)
3398 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 8 )
THEN
3399 WRITE ( ndsog ) whitecap(1:nsea,2)
3401 WRITE ( ndsoa,* )
'WHITECAP(2):', whitecap(1:nsea,2)
3403 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 9 )
THEN
3404 WRITE ( ndsog ) whitecap(1:nsea,3)
3406 WRITE ( ndsoa,* )
'WHITECAP(3):', whitecap(1:nsea,3)
3408 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 10 )
THEN
3409 WRITE ( ndsog ) whitecap(1:nsea,4)
3411 WRITE ( ndsoa,* )
'WHITECAP(4):', whitecap(1:nsea,4)
3413 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 11 )
THEN
3414 WRITE ( ndsog ) tws(1:nsea)
3416 WRITE ( ndsoa,* )
'TWS:', tws(1:nsea)
3421 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 1 )
THEN
3422 WRITE ( ndsog ) sxx(1:nsea)
3424 WRITE ( ndsoa,* )
'SXX:', sxx(1:nsea)
3426 WRITE ( ndsog ) syy(1:nsea)
3428 WRITE ( ndsoa,* )
'SYY:', syy(1:nsea)
3430 WRITE ( ndsog ) sxy(1:nsea)
3432 WRITE ( ndsoa,* )
'SXY:', sxy(1:nsea)
3434 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 2 )
THEN
3435 WRITE ( ndsog ) tauox(1:nsea)
3437 WRITE ( ndsoa,* )
'TAUOX:', tauox(1:nsea)
3439 WRITE ( ndsog ) tauoy(1:nsea)
3441 WRITE ( ndsoa,* )
'TAUOY:', tauoy(1:nsea)
3443 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 3 )
THEN
3444 WRITE ( ndsog ) bhd(1:nsea)
3446 WRITE ( ndsoa,* )
'BHD:', bhd(1:nsea)
3448 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 4 )
THEN
3449 WRITE ( ndsog ) phioc(1:nsea)
3451 WRITE ( ndsoa,* )
'PHIOC:', phioc(1:nsea)
3453 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 5 )
THEN
3454 WRITE ( ndsog ) tusx(1:nsea)
3456 WRITE ( ndsoa,* )
'TUSX:', tusx(1:nsea)
3458 WRITE ( ndsog ) tusy(1:nsea)
3460 WRITE ( ndsoa,* )
'TUSY:', tusy(1:nsea)
3462 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 6 )
THEN
3463 WRITE ( ndsog ) ussx(1:nsea)
3465 WRITE ( ndsoa,* )
'USSX:', ussx(1:nsea)
3467 WRITE ( ndsog ) ussy(1:nsea)
3469 WRITE ( ndsoa,* )
'USSY:', ussy(1:nsea)
3471 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 7 )
THEN
3472 WRITE ( ndsog ) prms(1:nsea)
3474 WRITE ( ndsoa,* )
'PRMS:', prms(1:nsea)
3476 WRITE ( ndsog ) tpms(1:nsea)
3478 WRITE ( ndsoa,* )
'TPMS:', tpms(1:nsea)
3480 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 8 )
THEN
3481 WRITE ( ndsog ) us3d(1:nsea, us3df(2):us3df(3))
3483 WRITE ( ndsoa,* )
'US3D:', us3d(1:nsea, us3df(2):us3df(3))
3485 WRITE ( ndsog ) us3d(1:nsea,nk+us3df(2):nk+us3df(3))
3487 WRITE ( ndsoa,* )
'US3D+NK:', us3d(1:nsea,nk+us3df(2):nk+us3df(3))
3489 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 9 )
THEN
3490 WRITE ( ndsog ) p2sms(1:nsea,p2msf(2):p2msf(3))
3492 WRITE ( ndsoa,* )
'P2SMS:', p2sms(1:nsea,p2msf(2):p2msf(3))
3494 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 10 )
THEN
3495 WRITE ( ndsog ) tauice(1:nsea,1)
3497 WRITE ( ndsoa,* )
'TAUICE(1):', tauice(1:nsea,1)
3499 WRITE ( ndsog ) tauice(1:nsea,2)
3501 WRITE ( ndsoa,* )
'TAUICE(2):', tauice(1:nsea,2)
3503 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 11 )
THEN
3504 WRITE ( ndsog ) phice(1:nsea)
3506 WRITE ( ndsoa,* )
'PHICE:', phice(1:nsea)
3508 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 12 )
THEN
3509 WRITE ( ndsog ) ussp(1:nsea, 1:usspf(2))
3511 WRITE ( ndsoa,* )
'USSP:', ussp(1:nsea, 1:usspf(2))
3513 WRITE ( ndsog ) ussp(1:nsea,nk+1:nk+usspf(2))
3515 WRITE ( ndsoa,* )
'USSP:', ussp(1:nsea,nk+1:nk+usspf(2))
3517 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 13 )
THEN
3518 WRITE ( ndsog ) tauocx(1:nsea)
3520 WRITE ( ndsoa,* )
'TAUOCX:', tauocx(1:nsea)
3522 WRITE ( ndsog ) tauocy(1:nsea)
3524 WRITE ( ndsoa,* )
'TAUOCY:', tauocy(1:nsea)
3529 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 1 )
THEN
3531 IF ( aba(isea) .NE. undef )
THEN
3532 aux1(isea) = aba(isea)*cos(abd(isea))
3533 aux2(isea) = aba(isea)*sin(abd(isea))
3539 WRITE ( ndsog ) aux1
3541 WRITE ( ndsoa,* )
'AUX1 (ABA*cos(ABD)):', aux1
3543 WRITE ( ndsog ) aux2
3545 WRITE ( ndsoa,* )
'AUX2 (ABA*sin(ABD)):', aux2
3549 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 2 )
THEN
3551 IF ( uba(isea) .NE. undef )
THEN
3552 aux1(isea) = uba(isea)*cos(ubd(isea))
3553 aux2(isea) = uba(isea)*sin(ubd(isea))
3559 WRITE ( ndsog ) aux1
3561 WRITE ( ndsoa,* )
'AUX1 (UBA*cos(UBD)):', aux1
3563 WRITE ( ndsog ) aux2
3565 WRITE ( ndsoa,* )
'AUX2 (UBA*sin(UBD)):', aux2
3569 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 3 )
THEN
3570 WRITE ( ndsog ) bedforms(1:nsea,1)
3572 WRITE ( ndsoa,* )
'BEDFORMS(1):', bedforms(1:nsea,1)
3574 WRITE ( ndsog ) bedforms(1:nsea,2)
3576 WRITE ( ndsoa,* )
'BEDFORMS(2):', bedforms(1:nsea,2)
3578 WRITE ( ndsog ) bedforms(1:nsea,3)
3580 WRITE ( ndsoa,* )
'BEDFORMS(3):', bedforms(1:nsea,3)
3582 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 4 )
THEN
3583 WRITE ( ndsog ) phibbl(1:nsea)
3585 WRITE ( ndsoa,* )
'PHIBBL:', phibbl(1:nsea)
3587 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 5 )
THEN
3588 WRITE ( ndsog ) taubbl(1:nsea,1)
3590 WRITE ( ndsoa,* )
'TAUBBL(1):', taubbl(1:nsea,1)
3592 WRITE ( ndsog ) taubbl(1:nsea,2)
3594 WRITE ( ndsoa,* )
'TAUBBL(2):', taubbl(1:nsea,2)
3599 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 1 )
THEN
3600 WRITE ( ndsog ) mssx(1:nsea)
3602 WRITE ( ndsoa,* )
'MSSX:', mssx(1:nsea)
3604 WRITE ( ndsog ) mssy(1:nsea)
3606 WRITE ( ndsoa,* )
'MSSY:', mssy(1:nsea)
3608 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 2 )
THEN
3609 WRITE ( ndsog ) mscx(1:nsea)
3611 WRITE ( ndsoa,* )
'MSCX:', mscx(1:nsea)
3613 WRITE ( ndsog ) mscy(1:nsea)
3615 WRITE ( ndsoa,* )
'MSCY:', mscy(1:nsea)
3617 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 3 )
THEN
3618 WRITE ( ndsog ) mssd(1:nsea)
3620 WRITE ( ndsoa,* )
'MSSD:', mssd(1:nsea)
3622 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 4 )
THEN
3623 WRITE ( ndsog ) mscd(1:nsea)
3625 WRITE ( ndsoa,* )
'MSCD:', mscd(1:nsea)
3627 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 5 )
THEN
3628 WRITE ( ndsog ) qp(1:nsea)
3630 WRITE ( ndsoa,* )
'QP:', qp(1:nsea)
3632 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 6 )
THEN
3633 WRITE ( ndsog ) qkk(1:nsea)
3635 WRITE ( ndsoa,* )
'QKK:', qkk(1:nsea)
3637 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 7 )
THEN
3638 WRITE ( ndsog ) skew(1:nsea)
3640 WRITE ( ndsoa,* )
'SKW:', skew(1:nsea)
3642 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 8 )
THEN
3643 WRITE ( ndsog ) embia1(1:nsea)
3645 WRITE ( ndsoa,* )
'EMB:', embia1(1:nsea)
3647 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 9 )
THEN
3648 WRITE ( ndsog ) embia2(1:nsea)
3650 WRITE ( ndsoa,* )
'EMC:', embia2(1:nsea)
3655 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 1 )
THEN
3656 WRITE ( ndsog ) dtdyn(1:nsea)
3658 WRITE ( ndsoa,* )
'DTDYN:', dtdyn(1:nsea)
3660 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 2 )
THEN
3661 WRITE ( ndsog ) fcut(1:nsea)
3663 WRITE ( ndsoa,* )
'FCUT:', fcut(1:nsea)
3665 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 3 )
THEN
3666 WRITE ( ndsog ) cflxymax(1:nsea)
3668 WRITE ( ndsoa,* )
'CFLXYMAX:', cflxymax(1:nsea)
3670 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 4 )
THEN
3671 WRITE ( ndsog ) cflthmax(1:nsea)
3673 WRITE ( ndsoa,* )
'CFLTHMAX:', cflthmax(1:nsea)
3675 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 5 )
THEN
3676 WRITE ( ndsog ) cflkmax(1:nsea)
3678 WRITE ( ndsoa,* )
'CFLMAX:', cflkmax(1:nsea)
3683 ELSE IF ( ifi .EQ. 10 )
THEN
3684 WRITE ( ndsog ) usero(1:nsea,ifj)
3686 WRITE ( ndsoa,* )
'USER0:', usero(1:nsea,ifj)
3697 IF ( ifi .EQ. 1 .AND. ifj .EQ. 1 )
THEN
3698 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) DW(1:NSEA)
3699 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 2 )
THEN
3700 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) CX(1:NSEA)
3701 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) CY(1:NSEA)
3702 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 3 )
THEN
3703 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) UA(1:NSEA)
3704 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) UD(1:NSEA)
3705 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 4 )
THEN
3706 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) AS(1:NSEA)
3707 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 5 )
THEN
3708 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) WLV(1:NSEA)
3709 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 6 )
THEN
3710 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ICE(1:NSEA)
3711 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 7 )
THEN
3712 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) BERG(1:NSEA)
3713 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 8 )
THEN
3714 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) TAUA(1:NSEA)
3715 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) TAUADIR(1:NSEA)
3716 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 9 )
THEN
3717 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) RHOAIR(1:NSEA)
3719 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 10 )
THEN
3720 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) SED_D50(1:NSEA)
3723 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 11 )
THEN
3724 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ICEH(1:NSEA)
3725 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 12 )
THEN
3726 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ICEF(1:NSEA)
3729 ELSE IF ( ifi .EQ. 1 .AND. ifj .EQ. 13 )
THEN
3730 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ZETA_SETUP(1:NSEA)
3735 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 1 )
THEN
3736 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) HS(1:NSEA)
3737 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 2 )
THEN
3738 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) WLM(1:NSEA)
3739 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 3 )
THEN
3740 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) T02(1:NSEA)
3741 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 4 )
THEN
3742 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) T0M1(1:NSEA)
3743 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 5 )
THEN
3744 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) T01(1:NSEA)
3745 ELSE IF ( (ifi .EQ. 2 .AND. ifj .EQ. 6) .OR. &
3746 (ifi .EQ. 2 .AND. ifj .EQ. 18) )
THEN
3748 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) FP0(1:NSEA)
3749 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 7 )
THEN
3750 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) THM(1:NSEA)
3751 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 8 )
THEN
3752 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) THS(1:NSEA)
3753 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 9 )
THEN
3754 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3756 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 10 )
THEN
3757 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3759 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 11 )
THEN
3760 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3762 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 12 )
THEN
3763 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3765 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 13 )
THEN
3766 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3768 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 14 )
THEN
3769 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3771 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 15 )
THEN
3772 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3774 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 16 )
THEN
3775 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3777 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 17 )
THEN
3778 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) WBT(1:NSEA)
3779 ELSE IF ( ifi .EQ. 2 .AND. ifj .EQ. 19 )
THEN
3780 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3785 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 1 )
THEN
3786 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3787 ef(1:nsea,e3df(2,1):e3df(3,1))
3788 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 2 )
THEN
3789 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3790 th1m(1:nsea,e3df(2,2):e3df(3,2))
3791 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 3 )
THEN
3792 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3793 sth1m(1:nsea,e3df(2,3):e3df(3,3))
3794 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 4 )
THEN
3795 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3796 th2m(1:nsea,e3df(2,4):e3df(3,4))
3797 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 5 )
THEN
3798 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3799 sth2m(1:nsea,e3df(2,5):e3df(3,5))
3800 ELSE IF ( ifi .EQ. 3 .AND. ifj .EQ. 6)
THEN
3801 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3806 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 1 )
THEN
3807 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3808 phs(1:nsea,0:noswll)
3809 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 2 )
THEN
3810 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3811 ptp(1:nsea,0:noswll)
3812 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 3 )
THEN
3813 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3814 plp(1:nsea,0:noswll)
3815 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 4 )
THEN
3816 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3817 pdir(1:nsea,0:noswll)
3818 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 5 )
THEN
3819 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3820 psi(1:nsea,0:noswll)
3821 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 6 )
THEN
3822 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3823 pws(1:nsea,0:noswll)
3824 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 7 )
THEN
3825 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3826 pthp0(1:nsea,0:noswll)
3827 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 8 )
THEN
3828 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3829 pqp(1:nsea,0:noswll)
3830 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 9 )
THEN
3831 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3832 ppe(1:nsea,0:noswll)
3833 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 10 )
THEN
3834 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3835 pgw(1:nsea,0:noswll)
3836 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 11 )
THEN
3837 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3838 psw(1:nsea,0:noswll)
3839 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 12 )
THEN
3840 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3841 ptm1(1:nsea,0:noswll)
3842 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 13 )
THEN
3843 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3844 pt1(1:nsea,0:noswll)
3845 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 14 )
THEN
3846 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3847 pt2(1:nsea,0:noswll)
3848 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 15 )
THEN
3849 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3850 pep(1:nsea,0:noswll)
3851 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 16)
THEN
3852 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3854 ELSE IF ( ifi .EQ. 4 .AND. ifj .EQ. 17)
THEN
3855 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) PNR(1:NSEA)
3859 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 1 )
THEN
3860 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3862 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3864 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 2 )
THEN
3865 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3867 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 3 )
THEN
3868 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) CGE(1:NSEA)
3869 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 4 )
THEN
3870 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3872 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 5 )
THEN
3873 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3875 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3877 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 6 )
THEN
3878 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3880 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3882 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 7 )
THEN
3883 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3885 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 8 )
THEN
3886 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3888 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 9 )
THEN
3889 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3891 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 10 )
THEN
3892 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3894 ELSE IF ( ifi .EQ. 5 .AND. ifj .EQ. 11 )
THEN
3895 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3900 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 1 )
THEN
3901 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) SXX(1:NSEA)
3902 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) SYY(1:NSEA)
3903 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) SXY(1:NSEA)
3904 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 2 )
THEN
3905 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3907 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3909 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 3 )
THEN
3910 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3912 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 4 )
THEN
3913 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3915 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 5 )
THEN
3916 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3918 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3920 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 6 )
THEN
3921 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3923 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3925 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 7 )
THEN
3926 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3928 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3930 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 8 )
THEN
3931 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3932 us3d(1:nsea,us3df(2):us3df(3))
3933 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3934 us3d(1:nsea,nk+us3df(2):nk+us3df(3))
3935 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 9 )
THEN
3936 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3937 p2sms(1:nsea,p2msf(2):p2msf(3))
3938 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 10 )
THEN
3939 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3941 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3943 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 11 )
THEN
3944 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3946 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 12 )
THEN
3947 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3948 ussp(1:nsea,1:usspf(2))
3949 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3950 ussp(1:nsea,nk+1:nk+usspf(2))
3951 ELSE IF ( ifi .EQ. 6 .AND. ifj .EQ. 13 )
THEN
3952 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3954 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3960 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 1 )
THEN
3961 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ABA(1:NSEA)
3962 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) ABD(1:NSEA)
3963 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 2 )
THEN
3964 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) UBA(1:NSEA)
3965 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) UBD(1:NSEA)
3966 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 3 )
THEN
3967 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3969 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3971 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3973 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 4 )
THEN
3974 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3976 ELSE IF ( ifi .EQ. 7 .AND. ifj .EQ. 5 )
THEN
3977 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3979 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3984 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 1 )
THEN
3985 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3987 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3989 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 2 )
THEN
3990 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3992 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3994 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 3 )
THEN
3995 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
3997 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 4 )
THEN
3998 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4000 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 5 )
THEN
4001 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) QP(1:NSEA)
4002 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 6 )
THEN
4003 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) QKK(1:NSEA)
4004 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 7 )
THEN
4005 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) SKEW(1:NSEA)
4006 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 8 )
THEN
4007 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) EMBIA1(1:NSEA)
4008 ELSE IF ( ifi .EQ. 8 .AND. ifj .EQ. 9 )
THEN
4009 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) EMBIA2(1:NSEA)
4013 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 1 )
THEN
4014 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4016 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 2 )
THEN
4017 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4019 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 3 )
THEN
4020 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4022 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 4 )
THEN
4023 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4025 ELSE IF ( ifi .EQ. 9 .AND. ifj .EQ. 5 )
THEN
4026 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4031 ELSE IF ( ifi .EQ. 10 )
THEN
4032 READ (ndsog,
END=801,ERR=802,IOSTAT=IERR) &
4051 IF (
WRITE )
CALL flush ( ndsog )
4053 IF(ofiles(1) .EQ. 1)
CLOSE(ndsog)
4056 CALL w3seta ( igrd, ndse, ndst )
4064 WRITE (ndse,1000) ierr
4072 WRITE (ndse,1002) ierr
4084 900
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4085 ' ILEGAL INXOUT VALUE: ',a/)
4086 901
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4087 ' MIXED READ/WRITE, LAST REQUEST: ',a/)
4088 902
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4089 ' ILEGAL IDSTR, READ : ',a/ &
4091 903
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4092 ' ILEGAL VEROGR, READ : ',a/ &
4094 904
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4095 ' DIFFERENT NUMBER OF FIELDS, FILE :',i8,i8/ &
4096 ' PROGRAM :',i8,i8/)
4097 905
FORMAT (/
' *** WAVEWATCH III WARNING IN W3IOGO :'/ &
4098 ' ILEGAL GNAME, READ : ',a/ &
4100 906
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO :'/ &
4101 ' ILEGAL NOSWLL, READ : ',i4/ &
4107 1000
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO : '/ &
4108 ' ERROR IN OPENING FILE'/ &
4110 1001
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO : '/ &
4111 ' PREMATURE END OF FILE'/)
4112 1002
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGO : '/ &
4113 ' ERROR IN READING FROM FILE'/ &
4117 9000
FORMAT (
' TEST W3IOGO : IPASS =',i4,
' INXOUT = ',a, &
4118 ' WRITE = ',l1,
' UNIT =',i3/ &
4119 ' IGRD =',i3,
' FEXT = ',a)
4120 9001
FORMAT (
' TEST W3IOGO : OPENING NEW FILE [',a,
']')
4121 9002
FORMAT (
' TEST W3IOGO : TEST PARAMETERS:'/ &
4126 ' NX,NY : ',i9,i12/ &
4128 9003
FORMAT (
' TEST W3IOGO : TIME :',i9.8,i7.6/ &
4129 ' FLAGS :',20l2,1x,20l2/ &
4134 9010
FORMAT (
' TEST W3IOGO : PROC = ',l1,
' FOR ',a)
4135 9020
FORMAT (
' TEST W3IOGO : END OF FILE REACHED')
4250 REAL,
INTENT(IN) :: A(NTH,NK,0:NSEAL)
4251 INTEGER,
INTENT(IN) :: USS_SWITCH
4256 INTEGER :: IK, ITH, ISEA, JSEA
4257 INTEGER :: IKST, IKFI, IB
4259 INTEGER,
SAVE :: IENT = 0
4261 REAL :: FACTOR, FKD,KD
4262 REAL :: ABX(NSEAL), ABY(NSEAL), USSCO
4264 INTEGER :: Spc2Bnd(NK)
4269 CALL strace (ient,
'CALC_U3STOKES')
4286 if (uss_switch==1)
then
4289 ELSEif (uss_switch==2)
then
4295 IF (uss_switch.eq.1)
then
4297 ELSEIF (uss_switch.eq.2)
then
4316 abx(jsea) = abx(jsea) + a(ith,ik,jsea)*
ecos(ith)
4317 aby(jsea) = aby(jsea) + a(ith,ik,jsea)*
esin(ith)
4335 factor =
dden(ik) / cg(ik,isea)
4339 kd = max( 0.001 , wn(ik,isea) * dw(isea) )
4340 IF ( kd .LT. 6. )
THEN
4341 fkd = factor / sinh(kd)**2
4342 ussco=fkd*
sig(ik)*wn(ik,isea)*cosh(2.*kd)
4344 ussco=factor*
sig(ik)*2.*wn(ik,isea)
4353 IF (uss_switch==1)
THEN
4359 ELSEIF (uss_switch==2)
THEN
4363 mindiff=abs(
ussp_wn(1)-wn(ik,isea))
4365 IF (mindiff .gt. abs(
ussp_wn(ib)-wn(ik,isea)))
then
4367 mindiff = abs(
ussp_wn(ib)-wn(ik,isea))
4371 ussp(jsea,spc2bnd(ik)) =
ussp(jsea,spc2bnd(ik)) + abx(jsea)*ussco
4372 ussp(jsea,nk+spc2bnd(ik)) =
ussp(jsea,nk+spc2bnd(ik)) + aby(jsea)*ussco
4487 REAL,
INTENT(IN) :: A (NTH, NK, 0:NSEAL)
4493 INTEGER,
SAVE :: IENT = 0
4496 INTEGER :: FPOPT = 0
4498 INTEGER :: IK, ITH, ISEA, JSEA, IKM, IKL, IKH, IX, IY
4499 REAL :: TDPT, TU10, TUDIR, SINU, COSU, TC, TFORCE
4501 REAL :: FACTOR, ET, HS, ETP, HSP, SIGP, KP, &
4503 REAL :: XL, XH, XL2, XH2, EL, EH, DENOM
4509 CALL strace (ient,
'CALC_WBT')
4520 IF ( mapsta(iy,ix) .LE. 0 ) cycle
4538 tdpt = max(
dw(isea), dmin)
4549 tc = sig(ik) /
wn(ik, isea)
4550 factor = sig(ik) /
cg(ik, isea)
4551 factor = factor * dth
4554 tforce = tc - tu10 * (cosu*ecos(ith)+sinu*esin(ith)) &
4557 IF (tforce .LT. 0.)
THEN
4558 esig(ik) = esig(ik) + a(ith, ik, jsea) * factor
4568 et = sum(esig * dsii)
4569 et = et + esig(nk) * fte / (dth * sig(nk))
4570 hs = 4. * sqrt(max(0., et))
4593 ikm = maxloc(esig, 1)
4595 IF (fpopt .EQ. 0)
THEN
4597 sigp = sum(esig**4. * sig(1:nk) * dsii) / &
4598 max(1e-10, sum(esig**4. * dsii))
4600 ELSE IF (fpopt .EQ. 1)
THEN
4606 ikl = max( 1 , ikm-1 )
4607 ikh = min( nk , ikm+1 )
4608 el = esig(ikl) - esig(ikm)
4609 eh = esig(ikh) - esig(ikm)
4610 denom = xl*eh - xh*el
4611 sigp = sig(ikm) * (1. + 0.5 * ( xl2*eh - xh2*el) &
4612 / sign(max(abs(denom), 1.e-15), denom))
4614 ELSE IF (fpopt .EQ. 2)
THEN
4622 IF (sigp < 1e-6) sigp = sig(nk)
4624 CALL wavnu1 (sigp, tdpt, kp, cgp)
4631 IF ( (sig(ik) >= 0.7 * sigp) .AND. &
4632 (sig(ik) <= 1.3 * sigp) )
THEN
4633 etp = etp + esig(ik) * dsii(ik)
4636 hsp = 4. * sqrt(max(0., etp))
4640 wstp = 0.5 * kp * hsp
4644 twbt = 85.1 * (max(0.0, wstp - 0.055) * (1 + hs/tdpt))**2.33
4645 wbt(jsea) = min(1.0, twbt)
4666 SUBROUTINE secondhh(NKHF,FAC0,FAC1,FAC2,FAC3)
4710 INTEGER,
INTENT(IN) :: NKHF
4711 REAL(KIND=4), dimension(
nth,
nth,nkhf,nkhf),
INTENT(OUT) :: fac0, fac1, fac2, fac3
4712 REAL(KIND=4), parameter :: fratio = 1.1
4715 INTEGER :: M, K1, M1, K2, M2
4717 REAL(KIND=4), parameter :: del1=1.0e-8
4718 REAL(KIND=4), parameter :: zconst = 0.0281349
4722 REAL(KIND=4) :: xk1, xk1sq, xk2, xk2sq, xk3
4723 REAL(KIND=4) :: cosdiff
4724 REAL(KIND=4) :: x12, x13, x32, om1, om2, om3, f1, f2, f3
4725 REAL(KIND=4) :: vm, vp
4726 REAL(KIND=4) :: delom1, delom2
4727 REAL(KIND=4) :: delom321, delom312
4728 REAL(KIND=4) :: c22, s22
4730 REAL(KIND=4), dimension(
nth,
nth,nkhf,nkhf) :: b
4731 REAL(KIND=4), dimension(:),
ALLOCATABLE:: fak, sighf, dfimhf
4744 ALLOCATE(sighf(nkhf))
4745 ALLOCATE(dfimhf(nkhf))
4749 sighf(m) =
xfr*sighf(m-1)
4753 fak(m) = (sighf(m))**2/
grav
4757 dfimhf(1) = co1*sighf(1)
4759 dfimhf(m)=co1*(sighf(m)+sighf(m-1))
4761 dfimhf(nkhf)=co1*sighf(nkhf-1)
4771 cosdiff = cos(
th(k1)-
th(k2))
4772 x12 = xk1*xk2*cosdiff
4773 xk3 = xk1sq + xk2sq +2.0*x12 +del1
4777 om1 = sqrt(
grav*xk1)
4778 om2 = sqrt(
grav*xk2)
4779 om3 = sqrt(
grav*xk3)
4780 f1 = sqrt(xk1/(2.0*om1))
4781 f2 = sqrt(xk2/(2.0*om2))
4782 f3 = sqrt(xk3/(2.0*om3))
4783 vm =
tpi*
vmin_d(xk3,xk1,xk2,x13,x32,x12,om3,om1,om2)
4784 vp =
tpi*
vplus_d(-xk3,xk1,xk2,-x13,-x32,x12,om3,om1,om2)
4785 delom1 = om3-om1-om2+del1
4786 delom2 = om3+om1+om2+del1
4787 fac0(k1,k2,m1,m2) = -f3/(f1*f2)*(vm/(delom1)+ &
4802 cosdiff = cos(
th(k1)-
th(k2))
4803 x12 = xk1*xk2*cosdiff
4804 xk3 = xk1sq + xk2sq - 2.*x12 + del1
4808 om1 = sqrt(
grav*xk1)
4809 om2 = sqrt(
grav*xk2)
4810 om3 = sqrt(
grav*xk3)+del1
4811 f1 = sqrt(xk1/(2.0*om1))
4812 f2 = sqrt(xk2/(2.0*om2))
4813 f3 = sqrt(abs(xk3)/(2.0*om3))
4814 vm =
tpi*
vmin_d(xk1,xk3,xk2,x13,x12,x32,om1,om3,om2)
4815 vp =
tpi*
vmin_d(xk2,-xk3,xk1,-x32,x12,-x13,om2,om3,om1)
4816 delom321 = om3+om2-om1+del1
4817 delom312 = om3+om1-om2+del1
4818 b(k1,k2,m1,m2) = -f3/(f1*f2)*(vm/(delom321)+ &
4831 c22 = fac0(k1,k2,m1,m2)+b(k1,k2,m1,m2)
4832 s22 = b(k1,k2,m1,m2)-fac0(k1,k2,m1,m2)
4833 fac1(k1,k2,m1,m2) = &
4834 & (xk1sq*
ecos(k1)**2 + xk2sq*
ecos(k2)**2)*c22 &
4835 & -fak(m1)*fak(m2)*
ecos(k1)*
ecos(k2)*s22
4836 fac2(k1,k2,m1,m2) = &
4837 & (xk1sq*
esin(k1)**2 + xk2sq*
esin(k2)**2)*c22 &
4838 & -fak(m1)*fak(m2)*
esin(k1)*
esin(k2)*s22
4839 fac3(k1,k2,m1,m2) = &
4842 & -fak(m1)*fak(m2)*
ecos(k1)*
esin(k2)*s22
4843 fac0(k1,k2,m1,m2) = c22
4854 REAL(KIND=4) function
vmin_d(xi,xj,xk,xij,xik,xjk,xoi,xoj,xok)
4883 REAL,
INTENT(IN) :: xi, xj, xk, xij, xik, xjk, xoi, xoj, xok
4884 REAL :: ri, rj, rk, oi, oj, ok, sqijk, sqikj, sqjki
4892 sqijk=sqrt(oi*oj*rk/(ok*ri*rj))
4893 sqikj=sqrt(oi*ok*rj/(oj*ri*rk))
4894 sqjki=sqrt(oj*ok*ri/(oi*rj*rk))
4895 vmin_d=zconst*( (xij-ri*rj)*sqijk + (xik-ri*rk)*sqikj &
4896 & + (xjk+rj*rk)*sqjki )
4902 REAL(kind=4) function
vplus_d(xi,xj,xk,xij,xik,xjk,xoi,xoj,xok)
4936 REAL,
INTENT(IN) :: xi, xj, xk, xij, xik, xjk, xoi, xoj, xok
4937 REAL :: ri, rj, rk, oi, oj, ok, sqijk, sqikj, sqjki
4945 sqijk=sqrt(oi*oj*rk/(ok*ri*rj))
4946 sqikj=sqrt(oi*ok*rj/(oj*ri*rk))
4947 sqjki=sqrt(oj*ok*ri/(oi*rj*rk))
4948 vplus_d=zconst*( (xij+ri*rj)*sqijk + (xik+ri*rk)*sqikj &
4949 & + (xjk+rj*rk)*sqjki )
5023 REAL,
INTENT(IN) :: A(NTH,NK,0:NSEAL)
5026 REAL(KIND=4), dimension(:,:,:,:) ,
ALLOCATABLE:: fac0,fac1,fac2,fac3
5028 INTEGER :: M, K, M1, K1, M2, K2, I, J
5029 INTEGER :: MSTART, JSEA
5031 REAL(KIND=4) :: conx, delta
5032 REAL(KIND=4) :: fh, delf, xk1
5033 REAL(KIND=4) :: xpi, xpj, xpk, xn, xfac, co1
5034 REAL(KIND=4), dimension(:,:),
ALLOCATABLE :: f2
5035 REAL(KIND=4), dimension(0:3,0:2,0:2) :: xmu, xlambda
5036 REAL(KIND=4), dimension(:) ,
ALLOCATABLE:: sighf, dfimhf, fak
5042 ALLOCATE(fac0(nth,nth,nkhf,nkhf))
5043 ALLOCATE(fac1(nth,nth,nkhf,nkhf))
5044 ALLOCATE(fac2(nth,nth,nkhf,nkhf))
5045 ALLOCATE(fac3(nth,nth,nkhf,nkhf))
5047 CALL secondhh(nkhf,fac0,fac1,fac2,fac3)
5049 ALLOCATE(f2(nth,nkhf))
5050 ALLOCATE(sighf(nkhf), dfimhf(nkhf), fak(nkhf))
5066 f2(k,m)=a(k,m,jsea)/ conx
5072 sighf(m) =
xfr*sighf(m-1)
5076 dfimhf(1) = co1*sighf(1)
5078 dfimhf(m)=co1*(sighf(m)+sighf(m-1))
5080 dfimhf(nkhf)=co1*sighf(nkhf-1)
5083 fak(m) = (sighf(m))**2/
grav
5088 fh=(sighf(nk)/sighf(m))**5
5101 delf = dfimhf(m1)*dfimhf(m2)*f2( k1,m1)*f2(k2,m2)
5102 xmu(3,0,0) = xmu(3,0,0)+3.0*fac0(k1,k2,m1,m2)*delf
5103 xmu(1,2,0) = xmu(1,2,0)+fac1(k1,k2,m1,m2)*delf
5104 xmu(1,0,2) = xmu(1,0,2)+fac2(k1,k2,m1,m2)*delf
5105 xmu(1,1,1) = xmu(1,1,1)+fac3(k1,k2,m1,m2)*delf
5114 delf = dfimhf(m1)*f2(k1,m1)
5115 xmu(2,0,0) = xmu(2,0,0) + delf
5116 xmu(0,2,0) = xmu(0,2,0) + xk1*
ecos(k1)**2*delf
5117 xmu(0,0,2) = xmu(0,0,2) + xk1*
esin(k1)**2*delf
5118 xmu(0,1,1) = xmu(0,1,1) + xk1*
ecos(k1)*
esin(k1)*delf
5132 xn = xmu(2,0,0)**xpi*xmu(0,2,0)**xpj*xmu(0,0,2)**xpk
5134 xlambda(i,j,k) = xmu(i,j,k)/xn
5141 IF ( xmu(2,0,0) .GT. 1.e-7 )
THEN
5142 skew(jsea)=xlambda(3,0,0)
5143 delta = ( xlambda(1,2,0) + xlambda(1,0,2) &
5144 - 2.0*xlambda(0,1,1)*xlambda(1,1,1) )/ &
5145 (1.0 - xlambda(0,1,1)**2)
5146 embia1(jsea)=-0.125*delta
5147 embia2(jsea)=-0.125*xlambda(3,0,0)/3.0
5155 DEALLOCATE(fac0,fac1,fac2,fac3)
5156 DEALLOCATE(f2,sighf,dfimhf,fak)