Perform actual point output.
766 INTEGER :: J, I1, I2, IK, ITH, ISPEC, IKM, IKL, &
767 IKH, ITT, IX, IY, ISEA
769 INTEGER,
SAVE :: IENT = 0
771 REAL :: XL, XH, XL2, XH2, DEPTH, SQRTH, UDIR,&
772 UDIRR, UABS, CDIR, SIX, R1, R2, ET, &
773 EWN, ETR, ETX, ETY, EBND, EBX, EBY, &
774 HSIG, WLEN, TMEAN, THMEAN, THSPRD, &
775 EMAX, EL, EH, DENOM, FP, THP, SPP, &
776 FACTOR, CD, USTAR, FHIGH, ZWND, ICE, &
777 USTD, Z0, CHARN, EMEAN, FMEAN, WNMEAN,&
778 ICETHICK, ICECON, ICEF
780 REAL ::TAUA, TAUADIR, RHOAIR
786 REAL :: AMAX, FH1, FH2
789 REAL :: AMAX, ALPHA(NK), FPI
792 REAL :: FMEANS, FMEANWS, TAUWX, TAUWY, AMAX, &
796 REAL :: FMEANWS, TAUWX, TAUWY, AMAX, &
797 TAUWNX, TAUWNY, FMEAN1, WHITECAP(1:4), DLWMEAN
800 REAL :: AMAX, TAUWX, TAUWY, TAUWNX, TAUWNY
803 REAL :: TAUSCX, TAUSCY
809 REAL :: D50, PSIC, BEDFORM(3), TAUBBL(2)
812 REAL :: STAB0, STAB, THARG1, THARG2, COR1, &
816 REAL :: WN(NK), CG(NK), E(NK,NTH), E1(NK), &
817 APM(NK), THBND(NK), SPBND(NK), &
818 A(NTH,NK), WN2(NTH,NK),WN_R(NK), &
819 ALPHA_LIU(NK), CG_ICE(NK), R(NK)
820 REAL :: DIA(NTH,NK), SWI(NK,NTH), SNL(NK,NTH),&
821 SDS(NK,NTH), SBT(NK,NTH), SIS(NK,NTH),&
822 STT(NK,NTH), DIA2(NK,NTH)
823 REAL :: XLN(NTH,NK), XWI(NTH,NK), XNL(NTH,NK),&
824 XTR(NTH,NK), XDS(NTH,NK), XDB(NTH,NK),&
825 XBT(NTH,NK), XBS(NTH,NK), XXX(NTH,NK),&
826 XWL(NTH,NK), XIS(NTH,NK)
829 LOGICAL :: LLWS(NTH,NK)
832 LOGICAL :: LLWS(NTH,NK)
833 REAL :: LAMBDA(NSPEC)
835 CHARACTER :: DTME21*23
840 CALL strace (ient,
'GXEXPO')
862 WRITE (ndst,9000) (flreq(j),j=1,nopts)
863 WRITE (ndst,9001) flsrce
868 CALL stme21 ( time , dtme21 )
869 WRITE (ndso,905) dtme21
878 WRITE (ndst,9002) ptnme(j)
883 depth = max( dmin, dpo(j) )
884 sqrth = sqrt( depth )
885 udir = mod( 270. - wdo(j)*
rade , 360. )
887 uabs = max( 0.001 , wao(j) )
889 taua = max( 0.001 , tauao(j))
890 tauadir = mod( 270. - taudo(j)*
rade , 360. )
891 rhoair = max( 0. , dairo(j))
893 cdir = mod( 270. - cdo(j)*
rade , 360. )
895 icedmax = max( 0., icefo(j))
903 icethick = max(0., iceho(j))
904 icecon = max(0., iceo(j))
907 stab0 = zwind *
grav / 273.
908 stab = stab0 * aso(j) / max(5.,wao(j))**2
909 stab = max( -1. , min( 1. , stab ) )
910 tharg1 = max( 0. , ffng*(stab-ofstab))
911 tharg2 = max( 0. , ffps*(stab-ofstab))
912 cor1 = ccng * tanh(tharg1)
913 cor2 = ccps * tanh(tharg2)
914 asfac = sqrt( (1.+cor1+cor2)/shstab )
918 WRITE (ndst,9010) depth
921 six = sig(ik) * sqrth
923 IF (i1.LE.
n1max)
THEN
925 r1 = six/
dsie - real(i1)
927 wn(ik) = ( r2*
ewn1(i1) + r1*
ewn1(i2) ) / depth
928 cg(ik) = ( r2*
ecg1(i1) + r1*
ecg1(i2) ) * sqrth
930 wn(ik) = sig(ik)*sig(ik)/
grav
931 cg(ik) = 0.5 *
grav / sig(ik)
934 WRITE (ndst,9011) ik,
tpi/sig(ik), wn(ik), cg(ik)
941 sig,wn_r,cg_ice,alpha_liu)
962 ispec = ith + (ik-1)*nth
963 e(ik,ith) = spco(ispec,j)
964 ebnd = ebnd + spco(ispec,j)
965 ebx = ebx + spco(ispec,j)*ecos(ith)
966 eby = eby + spco(ispec,j)*esin(ith)
969 apm(ik)= e1(ik) / (
tpi *
grav**2 / sig(ik)**5 )
970 IF ( e1(ik) .GT. 1.e-5)
THEN
971 thbnd(ik) = mod(630.-
rade*atan2(eby,ebx),360.)
972 spbnd(ik) =
rade * sqrt( max( 0. , 2.*( 1. - &
973 sqrt( max(0.,(ebx**2+eby**2)/ebnd**2) ) ) ) )
978 ebnd = e1(ik) * dsii(ik) *
tpiinv
980 ewn = ewn + ebnd / wn(ik)
981 etr = etr + ebnd / sig(ik)
982 etx = etx + ebx * dsii(ik)
983 ety = ety + eby * dsii(ik)
988 ebnd = e1(nk) *
tpiinv / ( sig(nk) * dth )
990 ewn = ewn + ftwl*ebnd
991 etr = etr + fttr*ebnd
995 hsig = 4. * sqrt( et )
996 IF ( hsig .GT. hsmin )
THEN
997 wlen = ewn / et *
tpi
998 tmean = etr / et *
tpi
999 thmean = mod( 630. -
rade*atan2(ety,etx) , 360. )
1000 thsprd =
rade * sqrt( max( 0. , 2.*( 1. - sqrt( &
1001 max(0.,(etx**2+ety**2)/et**2) ) ) ) )
1021 IF ( e1(ik) .GT. emax )
THEN
1027 ikl = max( 1 , ikm-1 )
1028 ikh = min( nk , ikm+1 )
1029 el = e1(ikl) - e1(ikm)
1030 eh = e1(ikh) - e1(ikm)
1031 denom = xl*eh - xh*el
1033 IF ( hsig .GE. hsmin )
THEN
1034 fp = sig(ikm) * ( 1. + 0.5 * ( xl2*eh - xh2*el ) &
1035 / sign( max(abs(denom),1.e-15) , denom ) )
1047 factor =
tpiinv * cg(ik) / sig(ik)
1049 ispec = ith + (ik-1)*nth
1050 a(ith,ik) = factor * spco(ispec,j)
1051 wn2(ith,ik) = wn(ik)
1088 CALL w3spr1 (a, cg, wn, emean, fmean, wnmean, amax)
1092 fhigh = max( fh1 , fh2 )
1095 CALL w3spr2 (a, cg, wn, depth, fp , uabs, ustar, &
1096 emean, fmean, wnmean, amax, alpha, fp )
1099 CALL w3spr3 (a, cg, wn, emean, fmean, fmeans, &
1100 wnmean, amax, uabs, udirr, ustar, ustd, &
1101 tauwx, tauwy, cd, z0, charn, llws, fmeanws)
1104 CALL w3spr4 (a, cg, wn, emean, fmean, fmean1, &
1105 wnmean, amax, uabs, udirr, &
1107 taua, tauadir, rhoair, &
1109 ustar, ustd, tauwx, tauwy, cd, z0, &
1110 charn, llws, fmeanws, dlwmean )
1113 CALL w3spr6 (a, cg, wn, emean, fmean, wnmean, amax, fp)
1117 CALL w3flx1 ( zwnd, uabs, udirr, &
1118 ustar, ustd, z0, cd )
1121 CALL w3flx2 ( zwnd, depth, fp, uabs, udirr, &
1122 ustar, ustd, z0, cd )
1125 CALL w3flx3 ( zwnd, depth, fp, uabs, udirr, &
1126 ustar, ustd, z0, cd )
1129 CALL w3flx4 ( zwnd, uabs, udirr, ustar, ustd, z0, cd )
1132 CALL w3flx5 ( zwnd, uabs, udirr, taua, tauadir, &
1133 rhoair, ustar, ustd, z0, cd, charn )
1138 CALL w3sin2 (a, cg, wn2, uabs, udirr, cd, z0, &
1140 CALL w3spr2 (a, cg, wn, depth, fpi, uabs, ustar, &
1141 emean, fmean, wnmean, amax, alpha, fp )
1145 aso(j), udirr, z0, cd, tauwx, tauwy, &
1147 ice, xwi, dia, llws, ix, iy )
1148 CALL w3spr3 (a, cg, wn, emean, fmean, fmeans, &
1149 wnmean, amax, uabs, udirr, ustar, ustd, &
1150 tauwx, tauwy, cd, z0, charn, llws, fmeanws)
1154 aso(j), udirr, z0, cd, tauwx, tauwy, &
1155 tauwnx, tauwny, xwi, dia, llws, ix, iy, lambda )
1156 CALL w3spr4 (a, cg, wn, emean, fmean, fmean1, &
1157 wnmean, amax, uabs, udirr, &
1159 taua, tauadir, rhoair, &
1161 ustar, ustd, tauwx, tauwy, cd, z0, &
1162 charn, llws, fmeanws, dlwmean )
1165 CALL w3flx2 ( zwnd, depth, fp, uabs, udirr, &
1166 ustar, ustd, z0, cd )
1169 CALL w3flx3 ( zwnd, depth, fp, uabs, udirr, &
1170 ustar, ustd, z0, cd )
1178 IF ( flsrce(2) )
THEN
1180 CALL w3sln1 ( wn, fhigh, ustar, udirr, xln )
1184 CALL w3sin1 (a, wn2, ustar, udirr, xwi, dia )
1187 CALL w3sin2 (a, cg, wn2, uabs, udirr, cd, z0, &
1192 aso(j), udirr, z0, cd, &
1193 tauwx, tauwy, tauwnx, tauwny, &
1194 ice, xwi, dia, llws, ix, iy )
1198 aso(j), udirr, z0, cd, &
1199 tauwx, tauwy, tauwnx, tauwny, &
1200 xwi, dia, llws, ix, iy, lambda )
1203 CALL w3sin6 (a, cg, wn2, uabs, ustar, udirr, cd, &
1204 dair, tauwx, tauwy, tauwnx, tauwny, xwi, dia )
1207 IF ( flsrce(3) )
THEN
1209 CALL w3snl1 ( a, cg, wnmean*depth, xnl, dia )
1212 CALL w3snl2 ( a, cg, depth, xnl, dia )
1215 CALL w3snl3 ( a, cg, wn, depth, xnl, dia )
1218 CALL w3snl4 ( a, cg, wn, depth, xnl, dia )
1221 IF ( flsrce(4) )
THEN
1223 CALL w3sds1 ( a, wn2, emean, fmean, wnmean, xds, dia )
1226 CALL w3sds2 ( a, cg, wn, fpi, ustar, alpha, xds, dia )
1229 CALL w3sds3 ( a, wn, cg, emean, fmeans, wnmean, &
1230 ustar, ustd, depth, xds, dia, ix, iy )
1233 CALL w3sds4 ( a, wn, cg, &
1234 ustar, ustd, depth,
dair, xds, dia, ix, iy, lambda, whitecap , dlwmean)
1237 CALL w3sds6 ( a, cg, wn, xds, dia )
1242 CALL w3sdb1 ( j, a, depth, emean, fmean, wnmean, cg, &
1247 IF ( flsrce(5) )
THEN
1250 CALL w3sbt1 ( a, cg, wn, depth, xbt, dia )
1254 CALL w3sic1 ( a, depth, cg, ix, iy, xbt, dia )
1257 CALL w3sic2 ( a, depth, icethick, icef ,cg, wn, ix, iy, xbt, dia, wn_r, &
1258 cg_ice, alpha_liu, r )
1261 CALL w3sic3 ( a, depth, cg, wn, ix, iy, xbt, dia )
1264 CALL w3sic4 ( a, depth, cg, ix, iy, xbt, dia )
1267 CALL w3sic5 ( a, depth, cg, wn, ix, iy, xbt, dia )
1275 psic= sed_psic(isea)
1279 CALL w3sbt4 ( a, cg, wn, depth, d50, psic, taubbl, &
1280 bedform, xbt, dia, ix, iy )
1285 CALL w3sbt8 ( a, depth, xbt, dia, ix, iy )
1289 CALL w3sbs1 ( a, cg, wn, depth, cao(j)*cos(cdo(j)), &
1290 cao(j)*sin(cdo(j)), &
1291 tauscx, tauscy, xbs, dia )
1295 IF ( flsrce(6) )
THEN
1298 CALL w3sis2(a, depth, icecon, icethick, icef, icedmax, ix, iy, &
1299 xis, dia, dia2, wn, cg, wn_r, cg_ice, r)
1308 factor =
tpi / cg(ik) * sig(ik)
1310 ispec = ith + (ik-1)*nth
1311 e(ik,ith) = spco(ispec,j)
1312 swi(ik,ith) = ( xwi(ith,ik) + xln(ith,ik) ) * factor
1313 snl(ik,ith) = ( xnl(ith,ik) + xtr(ith,ik) ) * factor
1314 sds(ik,ith) = ( xds(ith,ik) + xdb(ith,ik) ) * factor
1316 sds(ik,ith) = sds(ik,ith) +(xwl(ith,ik) * factor)
1318 sbt(ik,ith) = ( xbt(ith,ik) + xbs(ith,ik) ) * factor
1319 sis(ik,ith) = xis(ith,ik) * factor
1320 stt(ik,ith) = xxx(ith,ik) * factor
1323 stt = stt + swi + snl + sds + sbt + sis
1328 IF ( flsrce(1) )
WRITE (ndsgrd) &
1329 ((e(ik,ith),ith=1,nth),ik=nk,1,-1)
1330 IF ( flsrce(2) )
WRITE (ndsgrd) &
1331 ((swi(ik,ith),ith=1,nth),ik=nk,1,-1)
1332 IF ( flsrce(3) )
WRITE (ndsgrd) &
1333 ((snl(ik,ith),ith=1,nth),ik=nk,1,-1)
1334 IF ( flsrce(4) )
WRITE (ndsgrd) &
1335 ((sds(ik,ith),ith=1,nth),ik=nk,1,-1)
1336 IF ( flsrce(5) )
WRITE (ndsgrd) &
1337 ((sbt(ik,ith),ith=1,nth),ik=nk,1,-1)
1338 IF ( flsrce(6) )
WRITE (ndsgrd) &
1339 ((sis(ik,ith),ith=1,nth),ik=nk,1,-1)
1340 IF ( flsrce(7) )
WRITE (ndsgrd) &
1341 ((stt(ik,ith),ith=1,nth),ik=nk,1,-1)
1344 WRITE (ndspnt,940) ptnme(j), &
1345 fact*ptloc(1,j), fact*ptloc(2,j), dpo(j), wao(j), &
1346 wao(j)*cos(wdo(j)), wao(j)*sin(wdo(j)), aso(j), &
1347 cao(j), cao(j)*cos(cdo(j)), cao(j)*sin(cdo(j)), &
1350 WRITE (ndspnt,941) ptnme(j), &
1351 fact*ptloc(1,j), fact*ptloc(2,j), dpo(j), wao(j), &
1352 wao(j)*cos(wdo(j)), wao(j)*sin(wdo(j)), aso(j), &
1353 cao(j), cao(j)*cos(cdo(j)), cao(j)*sin(cdo(j)), &
1368 940
FORMAT (a10,1x,2f6.1,f7.1,3f7.1,f8.2,3f7.2,f6.2,2x,a)
1370 941
FORMAT (a10,1x,2f8.1,f7.1,3f7.1,f8.2,3f7.2,f6.2,2x,a)
1374 9000
FORMAT (
' TEST GXEXPO : FLAGS :',40l2)
1375 9001
FORMAT (
' TEST GXEXPO : FLSRCE :',6l2)
1376 9002
FORMAT (
' TEST GXEXPO : OUTPUT POINT : ',a)
1377 9010
FORMAT (
' TEST GXEXPO : DEPTH =',f7.1,
' IK, T, K, CG :')
1378 9011
FORMAT (
' ',i3,f8.2,f8.4,f8.2)