106 INTEGER,
INTENT(OUT) :: TheSize
107 LOGICAL :: FLGRDALL(NOGRP,NGRPP)
108 INTEGER IH, I, J, K, IK
118 IF ( flgrdall( 2, 1) )
THEN
121 IF ( flgrdall( 2, 2) )
THEN
124 IF ( flgrdall( 2, 3) )
THEN
127 IF ( flgrdall( 2, 4) )
THEN
130 IF ( flgrdall( 2, 5) )
THEN
133 IF ( flgrdall( 2, 6) )
THEN
136 IF ( flgrdall( 2, 7) )
THEN
139 IF ( flgrdall( 2, 8) )
THEN
142 IF ( flgrdall( 2, 9) )
THEN
145 IF ( flgrdall( 2, 10) )
THEN
148 IF ( flgrdall( 2, 11) )
THEN
151 IF ( flgrdall( 2, 12) )
THEN
154 IF ( flgrdall( 2, 13) )
THEN
157 IF ( flgrdall( 2, 14) )
THEN
160 IF ( flgrdall( 2, 15) )
THEN
163 IF ( flgrdall( 2, 16) )
THEN
166 IF ( flgrdall( 2, 17) )
THEN
169 IF ( flgrdall( 2, 19) )
THEN
172 IF ( flgrdall( 3, 1) )
THEN
177 IF ( flgrdall( 3, 2) )
THEN
182 IF ( flgrdall( 3, 3) )
THEN
187 IF ( flgrdall( 3, 4) )
THEN
192 IF ( flgrdall( 3, 5) )
THEN
197 IF ( flgrdall( 4, 1) )
THEN
200 IF ( flgrdall( 4, 2) )
THEN
203 IF ( flgrdall( 4, 3) )
THEN
206 IF ( flgrdall( 4, 4) )
THEN
209 IF ( flgrdall( 4, 5) )
THEN
212 IF ( flgrdall( 4, 6) )
THEN
215 IF ( flgrdall( 4, 7) )
THEN
218 IF ( flgrdall( 4, 8) )
THEN
221 IF ( flgrdall( 4, 9) )
THEN
224 IF ( flgrdall( 4,10) )
THEN
227 IF ( flgrdall( 4,11) )
THEN
230 IF ( flgrdall( 4,12) )
THEN
233 IF ( flgrdall( 4,13) )
THEN
236 IF ( flgrdall( 4,14) )
THEN
239 IF ( flgrdall( 4,15) )
THEN
242 IF ( flgrdall( 4,16) )
THEN
245 IF ( flgrdall( 4,17) )
THEN
248 IF ( flgrdall( 5, 1) )
THEN
253 IF ( flgrdall( 5, 2) )
THEN
256 IF ( flgrdall( 5, 3) )
THEN
259 IF ( flgrdall( 5, 4) )
THEN
262 IF ( flgrdall( 5, 5) )
THEN
266 IF ( flgrdall( 5, 6) )
THEN
270 IF ( flgrdall( 5, 7) )
THEN
273 IF ( flgrdall( 5, 8) )
THEN
276 IF ( flgrdall( 5, 9) )
THEN
279 IF ( flgrdall( 5,10) )
THEN
282 IF ( flgrdall( 6, 1) )
THEN
287 IF ( flgrdall( 6, 2) )
THEN
291 IF ( flgrdall( 6, 3) )
THEN
294 IF ( flgrdall( 6, 4) )
THEN
297 IF ( flgrdall( 6, 5) )
THEN
301 IF ( flgrdall( 6, 6) )
THEN
305 IF ( flgrdall( 6, 7) )
THEN
309 IF ( flgrdall( 6, 8) )
THEN
314 IF ( flgrdall( 6, 9) )
THEN
319 IF ( flgrdall( 6, 10) )
THEN
323 IF ( flgrdall( 6, 11) )
THEN
326 IF ( flgrdall( 6, 12) )
THEN
331 IF ( flgrdall( 6, 13) )
THEN
335 IF ( flgrdall( 7, 1) )
THEN
339 IF ( flgrdall( 7, 2) )
THEN
343 IF ( flgrdall( 7, 3) )
THEN
348 IF ( flgrdall( 7, 4) )
THEN
351 IF ( flgrdall( 7, 5) )
THEN
355 IF ( flgrdall( 8, 1) )
THEN
359 IF ( flgrdall( 8, 2) )
THEN
363 IF ( flgrdall( 8, 3) )
THEN
366 IF ( flgrdall( 8, 4) )
THEN
369 IF ( flgrdall( 8, 5) )
THEN
372 IF ( flgrdall( 9, 1) )
THEN
375 IF ( flgrdall( 9, 2) )
THEN
378 IF ( flgrdall( 9, 3) )
THEN
381 IF ( flgrdall( 9, 4) )
THEN
384 IF ( flgrdall( 9, 5) )
THEN
388 IF ( flgrdall(10, i) )
THEN
468 INTEGER,
SAVE :: IENT = 0
474 INTEGER,
intent(in) :: NDREAD
475 INTEGER iBlock, iFirst, iEnd, len, i, IB, iProc
476 INTEGER NREC, ISEA, JSEA, ierr
477 INTEGER nbBlock, IBELONG
479 REAL,
allocatable :: ArrSend(:,:)
480 REAL,
allocatable :: DataRead(:,:)
483 INTEGER,
PARAMETER :: LRB = 4
484 INTEGER NBLKRSloc, RSBLKSloc
486 integer IERR_MPI, istat
487 integer IPloc, IPglob, pos
489 integer ListFirst(NAPROC)
491 CALL strace (ient,
'VA_SETUP_IOBPD')
494 lrecl = max( lrb*nspec , &
495 lrb*(6+(25/lrb)+(9/lrb)+(29/lrb)+(3/lrb)) )
496 IF (
iaproc .gt. naproc)
THEN
501 listfirst(iproc) = listfirst(iproc-1) +
listnpa(iproc-1)
504 rsblksloc = max( 5 ,
nsealm/nblkrsloc )
505 IF ( nblkrsloc*rsblksloc .LT.
nsealm ) rsblksloc = rsblksloc + 1
506 nblkrsloc = 1 + (
nsealm-1)/rsblksloc
507 blocksize = int(real(nsea)/real(nblkrsloc))
509 nbblock=nsea / blocksize
510 IF (nbblock * blocksize .lt. nsea)
THEN
514 allocate(dataread(nspec,blocksize))
518 ifirst = 1 + (iblock - 1)*blocksize
519 iend = min(iblock * blocksize, nsea)
529 len=iend + 1 - ifirst
535 isea = (iblock - 1)*blocksize + ib
537 rpos = 1_8 + lrecl*(nrec-1_8)
538 READ (ndread, pos=rpos, iostat=ierr) (dataread(i,ib), i=1,nspec)
546 ipglob =
listiplg(listfirst(iproc) + iploc)
547 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
551 IF (nbmatch .gt. 0)
THEN
552 allocate(arrsend(nspec,nbmatch), stat=istat)
556 ipglob =
listiplg(listfirst(iproc) + iploc)
557 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
558 pos = ipglob - ifirst + 1
560 arrsend(:,idx) = dataread(:,pos)
563 CALL mpi_send(arrsend,nspec*nbmatch,mpi_real, iproc-1, 37, mpi_comm_wave, ierr)
569 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
570 pos = ipglob - ifirst + 1
571 va(:,iploc) = dataread(:,pos)
581 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
585 IF (nbmatch .gt. 0)
THEN
586 allocate(arrsend(nspec,nbmatch), stat=istat)
587 CALL mpi_recv(arrsend,nspec*nbmatch,mpi_real, 0, 37, mpi_comm_wave,
istatus, ierr)
591 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
593 va(:,iploc) = arrsend(:,idx)
676 INTEGER,
SAVE :: IENT = 0
682 INTEGER,
intent(in) :: NDWRITE
683 INTEGER,
PARAMETER :: BlockSize = 100000
684 REAL :: DATAwrite(NSPEC,BlockSize)
685 REAL,
allocatable :: DATArecv(:,:)
686 integer ListFirst(NAPROC)
689 integer iBlock, iFirst, iEnd
690 integer IPglob, IPloc, pos, ISEA, nbBlock, NPAloc
691 integer ierr, istat, JSEA, NREC, iProc
693 INTEGER,
PARAMETER :: LRB = 4
697 REAL(KIND=lrb) writebuff(nspec)
698 REAL,
allocatable :: DATAsend(:,:)
700 CALL strace (ient,
'VA_SETUP_IOBPD')
704 listfirst(iproc)=listfirst(iproc-1) +
listnpa(iproc-1)
707 lrecl = max( lrb*nspec , &
708 lrb*(6+(25/lrb)+(9/lrb)+(29/lrb)+(3/lrb)) )
709 nbblock=nsea / blocksize + 1
711 ifirst= 1 + (iblock - 1)*blocksize
712 iend= min(iblock * blocksize, nsea)
713 len=iend + 1 - ifirst
715 IF (
iaproc .le. naproc)
THEN
717 CALL init_get_isea(isea, jsea)
718 IF ((ifirst .le. isea).and.(isea .le. iend))
THEN
719 idx = isea - ifirst + 1
720 datawrite(:, idx) =
va(:, jsea)
725 IF (iproc .ne.
iaproc)
THEN
729 ipglob =
listiplg(listfirst(iproc) + iploc)
730 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
734 IF (nbmatch .gt. 0)
THEN
735 allocate(datarecv(nspec, nbmatch), stat=istat)
739 ipglob =
listiplg(iploc + listfirst(iproc))
741 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
743 pos = ipglob - ifirst + 1
744 datawrite(:, pos) = datarecv(:, idx)
747 deallocate(datarecv, stat=istat)
752 idx = isea - ifirst + 1
754 rpos = 1_8 + lrecl*(nrec-1_8)
756 writebuff(1:nspec) = datawrite(1:nspec, idx)
757 WRITE(ndwrite, pos=rpos) writebuff
760 IF (
iaproc .le. naproc)
THEN
764 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
768 IF (nbmatch .gt. 0)
THEN
769 allocate(datasend(nspec,nbmatch), stat=istat)
773 IF ((ifirst .le. ipglob).and.(ipglob .le. iend))
THEN
775 datasend(:,idx)=
va(:,iploc)
779 deallocate(datasend, stat=istat)
858 INTEGER,
INTENT(IN) :: IMOD
864 INTEGER :: IH, IT0, IROOT, IT, IERR, I0, &
865 IFROM, IX(4), IY(4), IS(4), &
866 IP(4), I, J, JSEA, ITARG, IB, &
867 JSEA0, JSEAN, NSEAB, IBOFF, &
868 ISEA, ISPROC, K, NRQMAX
870 INTEGER,
SAVE :: IENT
872 LOGICAL :: FLGRDALL(NOGRP,NGRPP)
873 REAL,
allocatable :: ARRexch(:,:), ARRexch_loc(:,:)
874 REAL,
allocatable :: ARRtotal(:,:)
875 INTEGER,
allocatable :: ARRpos(:), ARRpos_loc(:)
876 INTEGER :: eEnt(1), IPROC
877 INTEGER :: TheSize, NSEAL_loc
878 INTEGER,
SAVE :: indexOutput
891 IF ( flout(1) .OR. flout(7) )
THEN
893 IF ( iaproc .LE. naproc )
THEN
894 allocate(arrexch(thesize,
nseal), arrpos(
nseal))
899 IF ( flgrdall( 2, 1) )
THEN
901 arrexch(ih,jsea)=hs(jsea)
903 IF ( flgrdall( 2, 2) )
THEN
905 arrexch(ih,jsea)=wlm(jsea)
907 IF ( flgrdall( 2, 3) )
THEN
909 arrexch(ih,jsea)=t02(jsea)
911 IF ( flgrdall( 2, 4) )
THEN
913 arrexch(ih,jsea)=t0m1(jsea)
915 IF ( flgrdall( 2, 5) )
THEN
917 arrexch(ih,jsea)=t01(jsea)
919 IF ( flgrdall( 2, 6) )
THEN
921 arrexch(ih,jsea)=fp0(jsea)
923 IF ( flgrdall( 2, 7) )
THEN
925 arrexch(ih,jsea)=thm(jsea)
927 IF ( flgrdall( 2, 8) )
THEN
929 arrexch(ih,jsea)=ths(jsea)
931 IF ( flgrdall( 2, 9) )
THEN
933 arrexch(ih,jsea)=thp0(jsea)
935 IF ( flgrdall( 2, 10) )
THEN
937 arrexch(ih,jsea)=hsig(jsea)
939 IF ( flgrdall( 2, 11) )
THEN
941 arrexch(ih,jsea)=stmaxe(jsea)
943 IF ( flgrdall( 2, 12) )
THEN
945 arrexch(ih,jsea)=stmaxd(jsea)
947 IF ( flgrdall( 2, 13) )
THEN
949 arrexch(ih,jsea)=hmaxe(jsea)
951 IF ( flgrdall( 2, 14) )
THEN
953 arrexch(ih,jsea)=hcmaxe(jsea)
955 IF ( flgrdall( 2, 15) )
THEN
957 arrexch(ih,jsea)=hmaxd(jsea)
959 IF ( flgrdall( 2, 16) )
THEN
961 arrexch(ih,jsea)=hcmaxd(jsea)
963 IF ( flgrdall( 2, 17) )
THEN
965 arrexch(ih,jsea)=wbt(jsea)
967 IF ( flgrdall( 2, 19) )
THEN
969 arrexch(ih,jsea)=wnmean(jsea)
971 IF ( flgrdall( 3, 1) )
THEN
972 DO ik=e3df(2,1),e3df(3,1)
974 arrexch(ih,jsea)=ef(jsea,ik)
977 IF ( flgrdall( 3, 2) )
THEN
978 DO ik=e3df(2,2),e3df(3,2)
980 arrexch(ih,jsea)=th1m(jsea,ik)
983 IF ( flgrdall( 3, 3) )
THEN
984 DO ik=e3df(2,3),e3df(3,3)
986 arrexch(ih,jsea)=sth1m(jsea,ik)
989 IF ( flgrdall( 3, 4) )
THEN
990 DO ik=e3df(2,4),e3df(3,4)
992 arrexch(ih,jsea)=th2m(jsea,ik)
995 IF ( flgrdall( 3, 5) )
THEN
996 DO ik=e3df(2,5),e3df(3,5)
998 arrexch(ih,jsea)=sth2m(jsea,ik)
1001 IF ( flgrdall( 4, 1) )
THEN
1004 arrexch(ih,jsea)=phs(jsea,ik)
1007 IF ( flgrdall( 4, 2) )
THEN
1010 arrexch(ih,jsea)=ptp(jsea,ik)
1013 IF ( flgrdall( 4, 3) )
THEN
1016 arrexch(ih,jsea)=plp(jsea,ik)
1019 IF ( flgrdall( 4, 4) )
THEN
1022 arrexch(ih,jsea)=pdir(jsea,ik)
1025 IF ( flgrdall( 4, 5) )
THEN
1028 arrexch(ih,jsea)=psi(jsea,ik)
1031 IF ( flgrdall( 4, 6) )
THEN
1034 arrexch(ih,jsea)=pws(jsea,ik)
1037 IF ( flgrdall( 4, 7) )
THEN
1040 arrexch(ih,jsea)=pthp0(jsea,ik)
1043 IF ( flgrdall( 4, 8) )
THEN
1046 arrexch(ih,jsea)=pqp(jsea,ik)
1049 IF ( flgrdall( 4, 9) )
THEN
1052 arrexch(ih,jsea)=ppe(jsea,ik)
1055 IF ( flgrdall( 4,10) )
THEN
1058 arrexch(ih,jsea)=pgw(jsea,ik)
1061 IF ( flgrdall( 4,11) )
THEN
1064 arrexch(ih,jsea)=psw(jsea,ik)
1067 IF ( flgrdall( 4,12) )
THEN
1070 arrexch(ih,jsea)=ptm1(jsea,ik)
1073 IF ( flgrdall( 4,13) )
THEN
1076 arrexch(ih,jsea)=pt1(jsea,ik)
1079 IF ( flgrdall( 4,14) )
THEN
1082 arrexch(ih,jsea)=pt2(jsea,ik)
1085 IF ( flgrdall( 4,15) )
THEN
1088 arrexch(ih,jsea)=pep(jsea,ik)
1091 IF ( flgrdall( 4,16) )
THEN
1093 arrexch(ih,jsea)=pwst(jsea)
1095 IF ( flgrdall( 4,17) )
THEN
1097 arrexch(ih,jsea)=pnr(jsea)
1099 IF ( flgrdall( 5, 1) )
THEN
1101 arrexch(ih,jsea)=
ust(isea)
1103 arrexch(ih,jsea)=
ustdir(isea)
1105 arrexch(ih,jsea)=
asf(isea)
1107 IF ( flgrdall( 5, 2) )
THEN
1109 arrexch(ih,jsea)=charn(jsea)
1111 IF ( flgrdall( 5, 3) )
THEN
1113 arrexch(ih,jsea)=cge(jsea)
1115 IF ( flgrdall( 5, 4) )
THEN
1117 arrexch(ih,jsea)=phiaw(jsea)
1119 IF ( flgrdall( 5, 5) )
THEN
1121 arrexch(ih,jsea)=tauwix(jsea)
1123 arrexch(ih,jsea)=tauwiy(jsea)
1125 IF ( flgrdall( 5, 6) )
THEN
1127 arrexch(ih,jsea)=tauwnx(jsea)
1129 arrexch(ih,jsea)=tauwny(jsea)
1131 IF ( flgrdall( 5, 7) )
THEN
1133 arrexch(ih,jsea)=whitecap(jsea,1)
1135 IF ( flgrdall( 5, 8) )
THEN
1137 arrexch(ih,jsea)=whitecap(jsea,2)
1139 IF ( flgrdall( 5, 9) )
THEN
1141 arrexch(ih,jsea)=whitecap(jsea,3)
1143 IF ( flgrdall( 5,10) )
THEN
1145 arrexch(ih,jsea)=whitecap(jsea,4)
1147 IF ( flgrdall( 6, 1) )
THEN
1149 arrexch(ih,jsea)=sxx(jsea)
1151 arrexch(ih,jsea)=syy(jsea)
1153 arrexch(ih,jsea)=sxy(jsea)
1155 IF ( flgrdall( 6, 2) )
THEN
1157 arrexch(ih,jsea)=tauox(jsea)
1159 arrexch(ih,jsea)=tauoy(jsea)
1161 IF ( flgrdall( 6, 3) )
THEN
1163 arrexch(ih,jsea)=bhd(jsea)
1165 IF ( flgrdall( 6, 4) )
THEN
1167 arrexch(ih,jsea)=phioc(jsea)
1169 IF ( flgrdall( 6, 5) )
THEN
1171 arrexch(ih,jsea)=tusx(jsea)
1173 arrexch(ih,jsea)=tusy(jsea)
1175 IF ( flgrdall( 6, 6) )
THEN
1177 arrexch(ih,jsea)=ussx(jsea)
1179 arrexch(ih,jsea)=ussy(jsea)
1181 IF ( flgrdall( 6, 7) )
THEN
1183 arrexch(ih,jsea)=prms(jsea)
1185 arrexch(ih,jsea)=tpms(jsea)
1187 IF ( flgrdall( 6, 8) )
THEN
1190 arrexch(ih,jsea)=us3d(jsea,ik)
1193 IF ( flgrdall( 6, 9) )
THEN
1194 DO k=p2msf(2),p2msf(3)
1196 arrexch(ih,jsea)=p2sms(jsea,k)
1199 IF ( flgrdall( 6, 10) )
THEN
1201 arrexch(ih,jsea)=tauice(jsea,1)
1203 arrexch(ih,jsea)=tauice(jsea,2)
1205 IF ( flgrdall( 6, 11) )
THEN
1207 arrexch(ih,jsea)=phice(jsea)
1209 IF ( flgrdall( 6, 12) )
THEN
1212 arrexch(ih,jsea)=ussp(jsea,ik)
1215 IF ( flgrdall( 6, 13) )
THEN
1217 arrexch(ih,jsea)=tauocx(jsea)
1219 arrexch(ih,jsea)=tauocy(jsea)
1221 IF ( flgrdall( 7, 1) )
THEN
1223 arrexch(ih,jsea)=aba(jsea)
1225 arrexch(ih,jsea)=abd(jsea)
1227 IF ( flgrdall( 7, 2) )
THEN
1229 arrexch(ih,jsea)=uba(jsea)
1231 arrexch(ih,jsea)=ubd(jsea)
1233 IF ( flgrdall( 7, 3) )
THEN
1235 arrexch(ih,jsea)=bedforms(jsea,1)
1237 arrexch(ih,jsea)=bedforms(jsea,2)
1239 arrexch(ih,jsea)=bedforms(jsea,3)
1241 IF ( flgrdall( 7, 4) )
THEN
1243 arrexch(ih,jsea)=phibbl(jsea)
1245 IF ( flgrdall( 7, 5) )
THEN
1247 arrexch(ih,jsea)=taubbl(jsea,1)
1249 arrexch(ih,jsea)=taubbl(jsea,2)
1251 IF ( flgrdall( 8, 1) )
THEN
1253 arrexch(ih,jsea)=mssx(jsea)
1255 arrexch(ih,jsea)=mssy(jsea)
1257 IF ( flgrdall( 8, 2) )
THEN
1259 arrexch(ih,jsea)=mscx(jsea)
1261 arrexch(ih,jsea)=mscy(jsea)
1263 IF ( flgrdall( 8, 3) )
THEN
1265 arrexch(ih,jsea)=mssd(jsea)
1267 IF ( flgrdall( 8, 4) )
THEN
1269 arrexch(ih,jsea)=mscd(jsea)
1271 IF ( flgrdall( 8, 5) )
THEN
1273 arrexch(ih,jsea)=qp(jsea)
1275 IF ( flgrdall( 9, 1) )
THEN
1277 arrexch(ih,jsea)=dtdyn(jsea)
1279 IF ( flgrdall( 9, 2) )
THEN
1281 arrexch(ih,jsea)=fcut(jsea)
1283 IF ( flgrdall( 9, 3) )
THEN
1285 arrexch(ih,jsea)=cflxymax(jsea)
1287 IF ( flgrdall( 9, 4) )
THEN
1289 arrexch(ih,jsea)=cflthmax(jsea)
1291 IF ( flgrdall( 9, 5) )
THEN
1293 arrexch(ih,jsea)=cflkmax(jsea)
1296 IF ( flgrdall(10, i) )
THEN
1298 arrexch(ih,jsea)=usero(jsea,i)
1308 IF (iaproc .eq. napfld)
THEN
1309 allocate(arrtotal(thesize, nsea))
1310 IF (iaproc .le. naproc)
THEN
1312 arrtotal(:,arrpos(i)) = arrexch(:,i)
1316 IF ((iaproc .le. naproc).and.(iaproc.ne.napfld))
THEN
1318 CALL mpi_send(eent,1,mpi_integer, napfld-1, 23, mpi_comm_wave, ierr)
1319 CALL mpi_send(arrpos,
nseal,mpi_integer, napfld-1, 29, mpi_comm_wave, ierr)
1320 CALL mpi_send(arrexch,
nseal*thesize,mpi_real, napfld-1, 37, mpi_comm_wave, ierr)
1321 deallocate(arrpos, arrexch)
1323 IF (iaproc .eq. napfld)
THEN
1325 IF (iproc .ne. iaproc)
THEN
1326 CALL mpi_recv(eent,1,mpi_integer, iproc-1, 23, mpi_comm_wave,
istatus, ierr)
1328 allocate(arrpos_loc(nseal_loc), arrexch_loc(thesize, nseal_loc))
1329 CALL mpi_recv(arrpos_loc,nseal_loc,mpi_integer, iproc-1, 29, mpi_comm_wave,
istatus, ierr)
1330 CALL mpi_recv(arrexch_loc,nseal_loc*thesize,mpi_integer, iproc-1, 37, mpi_comm_wave,
istatus, ierr)
1332 arrtotal(:,arrpos_loc(i)) = arrexch_loc(:,i)
1334 deallocate(arrexch_loc, arrpos_loc)
1338 IF ( iaproc .EQ. napfld )
THEN
1339 IF (.not. wadats(imod)%AINIT2)
CALL w3xdma ( imod,
ndse, ndst, flgrdall )
1340 CALL w3xeta ( imod,
ndse, ndst )
1342 IF ( flgrdall( 2, 1) )
THEN
1344 hs(1:nsea) = arrtotal(ih,:)
1346 IF ( flgrdall( 2, 2) )
THEN
1348 wlm(1:nsea) = arrtotal(ih,:)
1350 IF ( flgrdall( 2, 3) )
THEN
1352 t02(1:nsea) = arrtotal(ih,:)
1354 IF ( flgrdall( 2, 4) )
THEN
1356 t0m1(1:nsea) = arrtotal(ih,:)
1358 IF ( flgrdall( 2, 5) )
THEN
1360 t01(1:nsea) = arrtotal(ih,:)
1362 IF ( flgrdall( 2, 6) )
THEN
1364 fp0(1:nsea) = arrtotal(ih,:)
1366 IF ( flgrdall( 2, 7) )
THEN
1368 thm(1:nsea) = arrtotal(ih,:)
1370 IF ( flgrdall( 2, 8) )
THEN
1372 ths(1:nsea) = arrtotal(ih,:)
1374 IF ( flgrdall( 2, 9) )
THEN
1376 thp0(1:nsea) = arrtotal(ih,:)
1378 IF ( flgrdall( 2, 10) )
THEN
1380 hsig(1:nsea) = arrtotal(ih,:)
1382 IF ( flgrdall( 2, 11) )
THEN
1384 stmaxe(1:nsea) = arrtotal(ih,:)
1386 IF ( flgrdall( 2, 12) )
THEN
1388 stmaxd(1:nsea) = arrtotal(ih,:)
1390 IF ( flgrdall( 2, 13) )
THEN
1392 hmaxe(1:nsea) = arrtotal(ih,:)
1394 IF ( flgrdall( 2, 14) )
THEN
1396 hcmaxe(1:nsea) = arrtotal(ih,:)
1398 IF ( flgrdall( 2, 15) )
THEN
1400 hmaxd(1:nsea) = arrtotal(ih,:)
1402 IF ( flgrdall( 2, 16) )
THEN
1404 hcmaxd(1:nsea) = arrtotal(ih,:)
1406 IF ( flgrdall( 2, 17) )
THEN
1408 wbt(1:nsea) = arrtotal(ih,:)
1410 IF ( flgrdall( 2, 19) )
THEN
1412 wnmean(1:nsea) = arrtotal(ih,:)
1414 IF ( flgrdall( 3, 1) )
THEN
1415 DO ik=e3df(2,1),e3df(3,1)
1417 ef(1:nsea,ik) = arrtotal(ih,:)
1420 IF ( flgrdall( 3, 2) )
THEN
1421 DO ik=e3df(2,2),e3df(3,2)
1423 th1m(1:nsea,ik) = arrtotal(ih,:)
1426 IF ( flgrdall( 3, 3) )
THEN
1427 DO ik=e3df(2,3),e3df(3,3)
1429 sth1m(1:nsea,ik) = arrtotal(ih,:)
1432 IF ( flgrdall( 3, 4) )
THEN
1433 DO ik=e3df(2,4),e3df(3,4)
1435 th2m(1:nsea,ik) = arrtotal(ih,:)
1438 IF ( flgrdall( 3, 5) )
THEN
1439 DO ik=e3df(2,5),e3df(3,5)
1441 sth2m(1:nsea,ik) = arrtotal(ih,:)
1444 IF ( flgrdall( 4, 1) )
THEN
1447 phs(1:nsea,k) = arrtotal(ih,:)
1450 IF ( flgrdall( 4, 2) )
THEN
1453 ptp(1:nsea,k) = arrtotal(ih,:)
1456 IF ( flgrdall( 4, 3) )
THEN
1459 plp(1:nsea,k) = arrtotal(ih,:)
1462 IF ( flgrdall( 4, 4) )
THEN
1465 pdir(1:nsea,k) = arrtotal(ih,:)
1468 IF ( flgrdall( 4, 5) )
THEN
1471 psi(1:nsea,k) = arrtotal(ih,:)
1474 IF ( flgrdall( 4, 6) )
THEN
1477 pws(1:nsea,k) = arrtotal(ih,:)
1480 IF ( flgrdall( 4, 7) )
THEN
1483 pthp0(1:nsea,k) = arrtotal(ih,:)
1486 IF ( flgrdall( 4, 8) )
THEN
1489 pqp(1:nsea,k) = arrtotal(ih,:)
1492 IF ( flgrdall( 4, 9) )
THEN
1495 ppe(1:nsea,k) = arrtotal(ih,:)
1498 IF ( flgrdall( 4,10) )
THEN
1501 pgw(1:nsea,k) = arrtotal(ih,:)
1504 IF ( flgrdall( 4,11) )
THEN
1507 psw(1:nsea,k) = arrtotal(ih,:)
1510 IF ( flgrdall( 4,12) )
THEN
1513 ptm1(1:nsea,k) = arrtotal(ih,:)
1516 IF ( flgrdall( 4,13) )
THEN
1519 pt1(1:nsea,k) = arrtotal(ih,:)
1522 IF ( flgrdall( 4,14) )
THEN
1525 pt2(1:nsea,k) = arrtotal(ih,:)
1528 IF ( flgrdall( 4,15) )
THEN
1531 pep(1:nsea,k) = arrtotal(ih,:)
1534 IF ( flgrdall( 4,16) )
THEN
1536 pwst(1:nsea) = arrtotal(ih,:)
1538 IF ( flgrdall( 4,17) )
THEN
1540 pnr(1:nsea) = arrtotal(ih,:)
1542 IF ( flgrdall( 5, 1) )
THEN
1544 ust(1:nsea) = arrtotal(ih,:)
1546 ustdir(1:nsea) = arrtotal(ih,:)
1548 asf(1:nsea) = arrtotal(ih,:)
1550 IF ( flgrdall( 5, 2) )
THEN
1552 charn(1:nsea) = arrtotal(ih,:)
1554 IF ( flgrdall( 5, 3) )
THEN
1556 cge(1:nsea) = arrtotal(ih,:)
1558 IF ( flgrdall( 5, 4) )
THEN
1560 phiaw(1:nsea) = arrtotal(ih,:)
1562 IF ( flgrdall( 5, 5) )
THEN
1564 tauwix(1:nsea) = arrtotal(ih,:)
1566 tauwiy(1:nsea) = arrtotal(ih,:)
1568 IF ( flgrdall( 5, 6) )
THEN
1570 tauwnx(1:nsea) = arrtotal(ih,:)
1572 tauwny(1:nsea) = arrtotal(ih,:)
1574 IF ( flgrdall( 5, 7) )
THEN
1576 whitecap(1:nsea,1) = arrtotal(ih,:)
1578 IF ( flgrdall( 5, 8) )
THEN
1580 whitecap(1:nsea,2) = arrtotal(ih,:)
1582 IF ( flgrdall( 5, 9) )
THEN
1584 whitecap(1:nsea,3) = arrtotal(ih,:)
1586 IF ( flgrdall( 5,10) )
THEN
1588 whitecap(1:nsea,4) = arrtotal(ih,:)
1590 IF ( flgrdall( 6, 1) )
THEN
1592 sxx(1:nsea) = arrtotal(ih,:)
1594 syy(1:nsea) = arrtotal(ih,:)
1596 sxy(1:nsea) = arrtotal(ih,:)
1598 IF ( flgrdall( 6, 2) )
THEN
1600 tauox(1:nsea) = arrtotal(ih,:)
1602 tauoy(1:nsea) = arrtotal(ih,:)
1604 IF ( flgrdall( 6, 3) )
THEN
1606 bhd(1:nsea) = arrtotal(ih,:)
1608 IF ( flgrdall( 6, 4) )
THEN
1610 phioc(1:nsea) = arrtotal(ih,:)
1612 IF ( flgrdall( 6, 5) )
THEN
1614 tusx(1:nsea) = arrtotal(ih,:)
1616 tusy(1:nsea) = arrtotal(ih,:)
1618 IF ( flgrdall( 6, 6) )
THEN
1620 ussx(1:nsea) = arrtotal(ih,:)
1622 ussy(1:nsea) = arrtotal(ih,:)
1624 IF ( flgrdall( 6, 7) )
THEN
1626 prms(1:nsea) = arrtotal(ih,:)
1628 tpms(1:nsea) = arrtotal(ih,:)
1630 IF ( flgrdall( 6, 8) )
THEN
1633 us3d(1:nsea,ik) = arrtotal(ih,:)
1636 IF ( flgrdall( 6, 9) )
THEN
1637 DO k=p2msf(2),p2msf(3)
1639 p2sms(1:nsea,k) = arrtotal(ih,:)
1642 IF ( flgrdall( 6, 10) )
THEN
1644 tauice(1:nsea,1) = arrtotal(ih,:)
1646 tauice(1:nsea,2) = arrtotal(ih,:)
1648 IF ( flgrdall( 6, 11) )
THEN
1650 phice(1:nsea) = arrtotal(ih,:)
1652 IF ( flgrdall( 6, 12) )
THEN
1655 ussp(1:nsea,ik) = arrtotal(ih,:)
1658 IF ( flgrdall( 6, 13) )
THEN
1660 tauocx(1:nsea) = arrtotal(ih,:)
1662 tauocy(1:nsea) = arrtotal(ih,:)
1664 IF ( flgrdall( 7, 1) )
THEN
1666 aba(1:nsea) = arrtotal(ih,:)
1668 abd(1:nsea) = arrtotal(ih,:)
1670 IF ( flgrdall( 7, 2) )
THEN
1672 uba(1:nsea) = arrtotal(ih,:)
1674 ubd(1:nsea) = arrtotal(ih,:)
1676 IF ( flgrdall( 7, 3) )
THEN
1678 bedforms(1:nsea,1) = arrtotal(ih,:)
1680 bedforms(1:nsea,2) = arrtotal(ih,:)
1682 bedforms(1:nsea,3) = arrtotal(ih,:)
1684 IF ( flgrdall( 7, 4) )
THEN
1686 phibbl(1:nsea) = arrtotal(ih,:)
1688 IF ( flgrdall( 7, 5) )
THEN
1690 taubbl(1:nsea,1) = arrtotal(ih,:)
1692 taubbl(1:nsea,2) = arrtotal(ih,:)
1694 IF ( flgrdall( 8, 1) )
THEN
1696 mssx(1:nsea) = arrtotal(ih,:)
1698 mssy(1:nsea) = arrtotal(ih,:)
1700 IF ( flgrdall( 8, 2) )
THEN
1702 mscx(1:nsea) = arrtotal(ih,:)
1704 mscy(1:nsea) = arrtotal(ih,:)
1706 IF ( flgrdall( 8, 3) )
THEN
1708 mssd(1:nsea) = arrtotal(ih,:)
1710 IF ( flgrdall( 8, 4) )
THEN
1712 mscd(1:nsea) = arrtotal(ih,:)
1714 IF ( flgrdall( 8, 5) )
THEN
1716 qp(1:nsea) = arrtotal(ih,:)
1718 IF ( flgrdall( 9, 1) )
THEN
1720 dtdyn(1:nsea) = arrtotal(ih,:)
1722 IF ( flgrdall( 9, 2) )
THEN
1724 fcut(1:nsea) = arrtotal(ih,:)
1726 IF ( flgrdall( 9, 3) )
THEN
1728 cflxymax(1:nsea) = arrtotal(ih,:)
1730 IF ( flgrdall( 9, 4) )
THEN
1732 cflthmax(1:nsea) = arrtotal(ih,:)
1734 IF ( flgrdall( 9, 5) )
THEN
1736 cflkmax(1:nsea) = arrtotal(ih,:)
1739 IF ( flgrdall(10, i) )
THEN
1741 usero(1:nsea,i) = arrtotal(ih,:)
1744 CALL w3seta ( imod,
ndse, ndst )
1747 indexoutput=indexoutput+1