320 INTEGER,
PARAMETER :: nhmax = 200
332 INTEGER :: ndsi, ndsi2, ndss, ndso, ndse, ndst, ndsl,&
333 ndsen, ierr, j, i, iloop, ipts, npts, &
334 ndtnew, mpi_comm = -99, &
335 flagtide, coupl_comm, ih, n_tot
336 INTEGER :: ndsf(-7:9), nds(15), ntrace(2), ndt(7:9), &
337 time0(2), timen(2), ttime(2), ttt(2), &
338 nh(-7:10), tho(2,-7:10,nhmax), rcld(7:9), &
339 nodata(7:9), odat(40), iprt(6) = 0, &
340 startdate(8), stopdate(8), ihh(-7:10)
348 INTEGER :: clkdt1(8), clkdt2(8), clkdt3(8)
353 REAL :: factor, dttst, xx, yy, &
354 ha(nhmax,-7:10), hd(nhmax,-7:10), &
356 REAL :: clkfin, clkfel
357 REAL,
ALLOCATABLE :: x(:), y(:), xxx(:,:), data0(:,:), &
358 data1(:,:), data2(:,:)
360 DOUBLE PRECISION :: startjulday, stopjulday
362 CHARACTER(LEN=1) :: comstr, flagtfc(-7:10)
363 CHARACTER(LEN=3) :: idstr(-7:10), idtst
364 CHARACTER(LEN=6) :: yesxno
365 CHARACTER(LEN=40) :: pn
367 ALLOCATABLE :: pnames(:)
368 CHARACTER(LEN=13) :: idflds(-7:10)
369 CHARACTER(LEN=20) :: strng
370 CHARACTER(LEN=23) :: dtme21
371 CHARACTER(LEN=30) :: idotyp(8)
372 CHARACTER(LEN=80) :: line
373 CHARACTER(LEN=256) :: tmpline, test
374 CHARACTER(LEN=1024) :: fldin
375 CHARACTER(LEN=1024) :: fldrst=
''
376 CHARACTER(LEN=80) :: linein
377 CHARACTER(LEN=8) :: words(7)=
''
380 CHARACTER(LEN=30) :: ofile
383 LOGICAL :: fllstl, fllsti, fllstr, flflg, flhom, &
384 tflagi, prtfrm, flagsci, flgnml
385 LOGICAL :: flgrd(nogrp,ngrpp), flgd(nogrp), &
386 flgr2(nogrp,ngrpp), flg2(nogrp), &
387 flagstide(4), flh(-7:10), flgdas(3), &
390 LOGICAL :: flhybr = .false.
397 LOGICAL :: first_step = .true.
399 character(len=10) :: jchar
405 DATA idflds /
'ice param. 1 ' ,
'ice param. 2 ' , &
406 'ice param. 3 ' ,
'ice param. 4 ' , &
408 'mud density ' ,
'mud thkness ' , &
410 'water levels ' ,
'currents ' , &
411 'winds ' ,
'ice fields ' , &
412 'momentum ' ,
'air density ' , &
413 'mean param. ' ,
'1D spectra ' , &
414 '2D spectra ' ,
'moving grid ' /
415 DATA idotyp /
'Fields of mean wave parameters' , &
417 'Track point output ' , &
420 'Partitioned wave field data ' , &
421 'Fields for coupling ' , &
422 'Restart files second request '/
423 DATA idstr /
'IC1',
'IC2',
'IC3',
'IC4',
'IC5',
'MDN',
'MTH', &
424 'MVS',
'LEV',
'CUR',
'WND',
'ICE',
'TAU',
'RHO', &
425 'DT0',
'DT1',
'DT2',
'MOV' /
428 flagstide(:) = .false.
435 CALL date_and_time ( values=clkdt1 )
454 CALL w3setw ( 1, 6, 6 )
456 CALL w3seto ( 1, 6, 6 )
460 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 1')
472 IF (oasised.EQ.1)
THEN
479 CALL mpi_init_thread( mpi_thread_funneled, thrlev, ierr_mpi)
483 CALL mpi_init ( ierr_mpi )
490 mpi_comm = mpi_comm_world
498 CALL mpi_comm_size ( mpi_comm, naproc, ierr_mpi )
501 CALL mpi_comm_rank ( mpi_comm, iaproc, ierr_mpi )
510 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 2')
573 ofl = len_trim(ofile)
575 IF ( iaproc .EQ. napout ) &
576 OPEN (333,
file=fnmpre(:j)//ofile(:ofl),err=2008,iostat=ierr)
579 IF ( iaproc .EQ. napout )
WRITE (ndso,900)
581 IF ( iaproc .EQ. naperr )
THEN
587 IF ( iaproc .EQ. napout )
WRITE (ndso,905) &
588 mpi_thread_funneled, thrlev
592 IF(iaproc .EQ. napout)
THEN
593 WRITE(ndso, 906) omp_get_max_threads()
641 WRITE (ndst,9000) (nds(i),i=1,12)
642 WRITE (ndst,9001) (ntrace(i),i=1,2)
685 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 2a')
694 INQUIRE(
file=trim(fnmpre)//
"ww3_shel.nml", exist=flgnml)
697 CALL w3nmlshel (mpi_comm, ndsi, trim(fnmpre)//
'ww3_shel.nml', &
698 nml_domain, nml_input, nml_output_type, &
699 nml_output_date, nml_homog_count, &
700 nml_homog_input, ierr)
705 flagtfc(-7)=trim(nml_input%FORCING%ICE_PARAM1)
706 flagtfc(-6)=trim(nml_input%FORCING%ICE_PARAM2)
707 flagtfc(-5)=trim(nml_input%FORCING%ICE_PARAM3)
708 flagtfc(-4)=trim(nml_input%FORCING%ICE_PARAM4)
709 flagtfc(-3)=trim(nml_input%FORCING%ICE_PARAM5)
710 flagtfc(-2)=trim(nml_input%FORCING%MUD_DENSITY)
711 flagtfc(-1)=trim(nml_input%FORCING%MUD_THICKNESS)
712 flagtfc(0)=trim(nml_input%FORCING%MUD_VISCOSITY)
713 flagtfc(1)=trim(nml_input%FORCING%WATER_LEVELS)
714 flagtfc(2)=trim(nml_input%FORCING%CURRENTS)
715 flagtfc(3)=trim(nml_input%FORCING%WINDS)
716 flagtfc(4)=trim(nml_input%FORCING%ICE_CONC)
717 flagtfc(5)=trim(nml_input%FORCING%ATM_MOMENTUM)
718 flagtfc(6)=trim(nml_input%FORCING%AIR_DENSITY)
719 flagtfc(7)=trim(nml_input%ASSIM%MEAN)
720 flagtfc(8)=trim(nml_input%ASSIM%SPEC1D)
721 flagtfc(9)=trim(nml_input%ASSIM%SPEC2D)
723 IF (trim(nml_input%FORCING%ICE_PARAM1) .EQ.
'H')
THEN
727 IF (trim(nml_input%FORCING%ICE_PARAM2) .EQ.
'H')
THEN
731 IF (trim(nml_input%FORCING%ICE_PARAM3) .EQ.
'H')
THEN
735 IF (trim(nml_input%FORCING%ICE_PARAM4) .EQ.
'H')
THEN
739 IF (trim(nml_input%FORCING%ICE_PARAM5) .EQ.
'H')
THEN
743 IF (trim(nml_input%FORCING%MUD_DENSITY) .EQ.
'H')
THEN
747 IF (trim(nml_input%FORCING%MUD_THICKNESS) .EQ.
'H')
THEN
751 IF (trim(nml_input%FORCING%MUD_VISCOSITY) .EQ.
'H')
THEN
755 IF (trim(nml_input%FORCING%WATER_LEVELS) .EQ.
'H')
THEN
759 IF (trim(nml_input%FORCING%CURRENTS) .EQ.
'H')
THEN
763 IF (trim(nml_input%FORCING%WINDS) .EQ.
'H')
THEN
767 IF (trim(nml_input%FORCING%ICE_CONC) .EQ.
'H')
THEN
771 IF (trim(nml_input%FORCING%ATM_MOMENTUM) .EQ.
'H')
THEN
775 IF (trim(nml_input%FORCING%AIR_DENSITY) .EQ.
'H')
THEN
780 IF ( iaproc .EQ. napout )
WRITE (ndso,920)
782 IF (flagtfc(j).EQ.
'T')
THEN
786 IF (flagtfc(j).EQ.
'F')
THEN
790 IF (flagtfc(j).EQ.
'C')
THEN
803 strng =
'(homogeneous field) '
804 ELSE IF (
flagsc(j) )
THEN
805 strng =
'(coupling field) '
809 IF ( iaproc .EQ. napout )
WRITE (ndso,921) idflds(j), yesxno, strng
829 IF (
inflags1(10) .AND. iaproc.EQ.napout ) &
830 WRITE (ndso,921) idflds(10),
'YES/--',
' '
838 flhom = flh(-7) .OR. flh(-6) .OR. flh(-5) .OR. flh(-4) &
839 .OR. flh(-3) .OR. flh(-2) .OR. flh(-1) .OR. flh(0) &
840 .OR. flh(1) .OR. flh(2) .OR. flh(3) .OR. flh(4) &
841 .OR. flh(5) .OR. flh(6) .OR. flh(10)
843 IF ( iaproc .EQ. napout )
WRITE (ndso,922)
850 WRITE (ndst,9020) flflg,
inflags1, flhom, flh
857 READ(nml_domain%START,*) time0
858 CALL t2d(time0,startdate,ierr)
859 CALL d2j(startdate,startjulday,ierr)
860 READ(nml_domain%STOP,*) timen
861 CALL t2d(timen,stopdate,ierr)
862 CALL d2j(stopdate,stopjulday,ierr)
866 iostyp = nml_domain%IOSTYP
869 IF (iostyp .gt. 1)
THEN
870 WRITE(*,*)
'IOSTYP not supported in domain decomposition mode'
875 CALL w3iogr (
'GRID', ndsf(7) )
884 READ(nml_output_date%FIELD%START, *) odat(1), odat(2)
885 READ(nml_output_date%FIELD%STRIDE, *) odat(3)
886 READ(nml_output_date%FIELD%STOP, *) odat(4), odat(5)
888 READ(nml_output_date%FIELD%OUTFFILE, *)
ofiles(1)
891 READ(nml_output_date%POINT%START, *) odat(6), odat(7)
892 READ(nml_output_date%POINT%STRIDE, *) odat(8)
893 READ(nml_output_date%POINT%STOP, *) odat(9), odat(10)
895 READ(nml_output_date%POINT%OUTFFILE, *)
ofiles(2)
898 READ(nml_output_date%TRACK%START, *) odat(11), odat(12)
899 READ(nml_output_date%TRACK%STRIDE, *) odat(13)
900 READ(nml_output_date%TRACK%STOP, *) odat(14), odat(15)
901 READ(nml_output_date%RESTART%START, *) odat(16), odat(17)
902 READ(nml_output_date%RESTART%STRIDE, *) odat(18)
903 READ(nml_output_date%RESTART%STOP, *) odat(19), odat(20)
904 READ(nml_output_date%RESTART2%START, *) odat(36), odat(37)
905 READ(nml_output_date%RESTART2%STRIDE, *) odat(38)
906 READ(nml_output_date%RESTART2%STOP, *) odat(39), odat(40)
907 READ(nml_output_date%BOUNDARY%START, *) odat(21), odat(22)
908 READ(nml_output_date%BOUNDARY%STRIDE, *) odat(23)
909 READ(nml_output_date%BOUNDARY%STOP, *) odat(24), odat(25)
910 READ(nml_output_date%PARTITION%START, *) odat(26), odat(27)
911 READ(nml_output_date%PARTITION%STRIDE, *) odat(28)
912 READ(nml_output_date%PARTITION%STOP, *) odat(29), odat(30)
913 READ(nml_output_date%COUPLING%START, *) odat(31), odat(32)
914 READ(nml_output_date%COUPLING%STRIDE, *) odat(33)
915 READ(nml_output_date%COUPLING%STOP, *) odat(34), odat(35)
918 odat(3) = max( 0 , odat(3) )
919 odat(8) = max( 0 , odat(8) )
920 odat(13) = max( 0 , odat(13) )
921 odat(18) = max( 0 , odat(18) )
922 odat(23) = max( 0 , odat(23) )
923 odat(28) = max( 0 , odat(28) )
924 odat(33) = max( 0 , odat(33) )
925 odat(38) = max( 0 , odat(38) )
929 IF (odat(33) == 0)
THEN
930 IF ( iaproc .EQ. napout )
THEN
931 WRITE(ndso,1010) odat(33), int(
dtmax)
933 odat(33) = int(
dtmax)
934 ELSE IF (mod(odat(33),int(
dtmax)) .NE. 0)
THEN
948 IF ( odat(5*(j-1)+3) .NE. 0 )
THEN
952 fldout = nml_output_type%FIELD%LIST
954 flgrd, iaproc, napout, ierr )
955 IF ( ierr .NE. 0 )
GOTO 2222
959 ELSE IF ( j .EQ. 2 )
THEN
960 OPEN (ndsl,
file=trim(fnmpre)//trim(nml_output_type%POINT%FILE), &
961 form=
'FORMATTED', status=
'OLD', err=2104, iostat=ierr)
969 IF ( iloop.EQ.2)
THEN
971 IF ( npts.GT.0 )
THEN
972 ALLOCATE ( x(npts), y(npts), pnames(npts) )
975 ALLOCATE ( x(1), y(1), pnames(1) )
981 READ (ndsl,*,err=2004,iostat=ierr) tmpline
983 IF ( ierr.NE.0 .OR. index(tmpline,
"STOPSTRING").NE.0 )
EXIT
985 test = adjustl( tmpline )
986 IF ( test(1:1).EQ.comstr .OR. len_trim(test).EQ.0 )
THEN
991 backspace( ndsl, err=2004, iostat=ierr)
992 READ (ndsl,*,err=2004,iostat=ierr) xx, yy, pn
995 IF ( iloop .EQ. 1 ) cycle
996 IF ( iloop .EQ. 2 )
THEN
1000 IF ( iaproc .EQ. napout )
THEN
1002 IF ( ipts .EQ. 1 )
THEN
1004 factor*xx, factor*yy, pn
1006 WRITE (ndso,2946) ipts, &
1007 factor*xx, factor*yy, pn
1010 IF ( ipts .EQ. 1 )
THEN
1012 factor*xx, factor*yy, pn
1014 WRITE (ndso,2956) ipts, &
1015 factor*xx, factor*yy, pn
1025 ELSE IF ( j .EQ. 3 )
THEN
1026 tflagi = nml_output_type%TRACK%FORMAT
1027 IF ( .NOT. tflagi ) nds(11) = -nds(11)
1028 IF ( iaproc .EQ. napout )
THEN
1029 IF ( .NOT. tflagi )
THEN
1030 WRITE (ndso,3945)
'input',
'UNFORMATTED'
1032 WRITE (ndso,3945)
'input',
'FORMATTED'
1037 ELSE IF ( j .EQ. 6 )
THEN
1038 iprt(1) = nml_output_type%PARTITION%X0
1039 iprt(2) = nml_output_type%PARTITION%XN
1040 iprt(3) = nml_output_type%PARTITION%NX
1041 iprt(4) = nml_output_type%PARTITION%Y0
1042 iprt(5) = nml_output_type%PARTITION%YN
1043 iprt(6) = nml_output_type%PARTITION%NY
1044 prtfrm = nml_output_type%PARTITION%FORMAT
1046 IF ( iaproc .EQ. napout )
THEN
1052 WRITE (ndso,6945) iprt, yesxno
1057 ELSE IF ( j .EQ. 7 )
THEN
1058 fldout = nml_output_type%COUPLING%SENT
1060 flgr2, iaproc, napout, ierr )
1061 IF ( ierr .NE. 0 )
GOTO 2222
1062 fldin = nml_output_type%COUPLING%RECEIVED
1063 cplt0 = nml_output_type%COUPLING%COUPLET0
1071 fldrst = nml_output_type%RESTART%EXTRA
1073 flogrr, iaproc, napout, ierr )
1074 IF ( ierr .NE. 0 )
GOTO 2222
1077 IF ( .NOT.
ALLOCATED(x) .AND. npts.EQ.0 )
ALLOCATE ( x(1), y(1), pnames(1) )
1082 IF ( iaproc .EQ. napout )
WRITE (ndso,951) &
1083 'Homogeneous field data (and moving grid) ...'
1085 nh(-7) = nml_homog_count%N_IC1
1086 nh(-6) = nml_homog_count%N_IC2
1087 nh(-5) = nml_homog_count%N_IC3
1088 nh(-4) = nml_homog_count%N_IC4
1089 nh(-3) = nml_homog_count%N_IC5
1090 nh(-2) = nml_homog_count%N_MDN
1091 nh(-1) = nml_homog_count%N_MTH
1092 nh(0) = nml_homog_count%N_MVS
1093 nh(1) = nml_homog_count%N_LEV
1094 nh(2) = nml_homog_count%N_CUR
1095 nh(3) = nml_homog_count%N_WND
1096 nh(4) = nml_homog_count%N_ICE
1097 nh(5) = nml_homog_count%N_TAU
1098 nh(6) = nml_homog_count%N_RHO
1099 nh(10) = nml_homog_count%N_MOV
1101 n_tot = nml_homog_count%N_TOT
1104 IF ( nh(j) .GT. nhmax )
GOTO 2006
1109 IF ( n_tot .GT. 0 )
THEN
1112 READ(nml_homog_input(ih)%NAME,*) idtst
1148 READ(nml_homog_input(ih)%DATE,*) tho(:,j,ihh(j))
1149 ha(ihh(j),j) = nml_homog_input(ih)%VALUE1
1150 hd(ihh(j),j) = nml_homog_input(ih)%VALUE2
1151 hs(ihh(j),j) = nml_homog_input(ih)%VALUE3
1157 IF ( flh(j) .AND. iaproc.EQ.napout )
THEN
1158 WRITE (ndso,952) nh(j), idflds(j)
1160 IF ( ( j .LE. 1 ) .OR. ( j .EQ. 4 ) .OR. &
1162 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1164 ELSE IF ( ( j .EQ. 2 ) .OR. ( j .EQ. 5 ) .OR. &
1165 ( j .EQ. 10 ) )
THEN
1166 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1168 ELSE IF ( j .EQ. 3 )
THEN
1169 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1170 ha(i,j), hd(i,j), hs(i,j)
1177 IF ( ( flh(-7) .AND. (nh(-7).EQ.0) ) .OR. &
1178 ( flh(-6) .AND. (nh(-6).EQ.0) ) .OR. &
1179 ( flh(-5) .AND. (nh(-5).EQ.0) ) .OR. &
1180 ( flh(-4) .AND. (nh(-4).EQ.0) ) .OR. &
1181 ( flh(-3) .AND. (nh(-3).EQ.0) ) .OR. &
1182 ( flh(-2) .AND. (nh(-2).EQ.0) ) .OR. &
1183 ( flh(-1) .AND. (nh(-1).EQ.0) ) .OR. &
1184 ( flh(0) .AND. (nh(0).EQ.0) ) .OR. &
1185 ( flh(1) .AND. (nh(1).EQ.0) ) .OR. &
1186 ( flh(2) .AND. (nh(2).EQ.0) ) .OR. &
1187 ( flh(3) .AND. (nh(3).EQ.0) ) .OR. &
1188 ( flh(4) .AND. (nh(4).EQ.0) ) .OR. &
1189 ( flh(5) .AND. (nh(5).EQ.0) ) .OR. &
1190 ( flh(6) .AND. (nh(6).EQ.0) ) .OR. &
1191 ( flh(10) .AND. (nh(10).EQ.0) ) )
GOTO 2007
1203 IF (.NOT. flgnml)
THEN
1205 OPEN (ndsi,
file=trim(fnmpre)//
'ww3_shel.inp',status=
'OLD',iostat=ierr)
1208 READ (ndsi,
'(A)') comstr
1209 IF (comstr.EQ.
' ') comstr =
'$'
1210 IF ( iaproc .EQ. napout )
WRITE (ndso,901) comstr
1214 flh(-7:10) = .false.
1216 CALL nextln ( comstr , ndsi , ndsen )
1217 IF ( j .LE. 6 )
THEN
1218 READ (ndsi,*) flagtfc(j), flh(j)
1220 READ (ndsi,*) flagtfc(j)
1224 IF ( iaproc .EQ. napout )
WRITE (ndso,920)
1226 IF (flagtfc(j).EQ.
'T')
THEN
1230 IF (flagtfc(j).EQ.
'F')
THEN
1234 IF (flagtfc(j).EQ.
'C')
THEN
1238 IF ( j .LE. 6 )
THEN
1247 strng =
'(homogeneous field) '
1248 ELSE IF (
flagsc(j) )
THEN
1249 strng =
'(coupling field) '
1253 IF ( iaproc .EQ. napout )
WRITE (ndso,921) idflds(j), yesxno, strng
1259 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 2b')
1274 IF (
inflags1(10) .AND. iaproc.EQ.napout ) &
1275 WRITE (ndso,921) idflds(10),
'YES/--',
' '
1283 flhom = flh(-7) .OR. flh(-6) .OR. flh(-5) .OR. flh(-4) &
1284 .OR. flh(-3) .OR. flh(-2) .OR. flh(-1) .OR. flh(0) &
1285 .OR. flh(1) .OR. flh(2) .OR. flh(3) .OR. flh(4) &
1286 .OR. flh(5) .OR. flh(6) .OR. flh(10)
1288 IF ( iaproc .EQ. napout )
WRITE (ndso,922)
1295 WRITE (ndst,9020) flflg,
inflags1, flhom, flh
1301 CALL nextln ( comstr , ndsi , ndsen )
1303 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 2c')
1305 CALL nextln ( comstr , ndsi , ndsen )
1308 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 2d')
1312 CALL nextln ( comstr , ndsi , ndsen )
1313 READ (ndsi,*) iostyp
1315 IF (iostyp .gt. 1)
THEN
1316 WRITE(*,*)
'IOSTYP not supported in domain decomposition mode'
1320 CALL w3iogr (
'GRID', ndsf(7) )
1336 CALL nextln ( comstr , ndsi , ndsen )
1342 READ (ndsi,
'(A)') linein
1343 READ(linein,*,iostat=ierr) words
1344 READ(words( 1 ), * ) odat(16)
1345 READ(words( 2 ), * ) odat(17)
1346 READ(words( 3 ), * ) odat(18)
1347 READ(words( 4 ), * ) odat(19)
1348 READ(words( 5 ), * ) odat(20)
1349 IF (words(6) .EQ.
'T')
THEN
1350 CALL nextln ( comstr , ndsi , ndsen )
1351 READ (ndsi,*,
END=2001,ERR=2002)(ODAT(I),I=5*(8-1)+1,5*8)
1352 WRITE(*,*)(odat(i),i=5*(8-1)+1,5*8)
1354 IF (words(7) .EQ.
'T')
THEN
1355 CALL nextln ( comstr , ndsi , ndsen )
1356 READ (ndsi,
'(A)',
END=2001,ERR=2002) fldrst
1358 CALL w3flgrdflag ( ndso, ndso, ndse, fldrst, flogr, &
1359 flogrr, iaproc, napout, ierr )
1360 IF ( ierr .NE. 0 )
GOTO 2222
1369 READ (ndsi,
'(A)') linein
1370 READ(linein,*,iostat=ierr) words
1373 READ(words( 1 ), * ) odat(1)
1374 READ(words( 2 ), * ) odat(2)
1375 READ(words( 3 ), * ) odat(3)
1376 READ(words( 4 ), * ) odat(4)
1377 READ(words( 5 ), * ) odat(5)
1379 READ(words( 1 ), * ) odat(6)
1380 READ(words( 2 ), * ) odat(7)
1381 READ(words( 3 ), * ) odat(8)
1382 READ(words( 4 ), * ) odat(9)
1383 READ(words( 5 ), * ) odat(10)
1386 IF (words(6) .NE.
'0' .AND. words(6) .NE.
'1')
THEN
1389 READ(words( 6 ), * ) ofiles(j)
1394 ELSE IF(j .EQ. 7)
THEN
1396 READ (ndsi,
'(A)') linein
1397 READ(linein,*,iostat=ierr) words
1399 READ(words( 1 ), * ) odat(31)
1400 READ(words( 2 ), * ) odat(32)
1401 READ(words( 3 ), * ) odat(33)
1402 READ(words( 4 ), * ) odat(34)
1403 READ(words( 5 ), * ) odat(35)
1405 IF (words(6) .EQ.
'T')
THEN
1413 READ (ndsi,*,
END=2001,ERR=2002)(ODAT(I),I=5*(J-1)+1,5*J)
1417 odat(5*(j-1)+3) = max( 0 , odat(5*(j-1)+3) )
1419 write(jchar,
'(i0)') j
1420 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL NOTTYPE '//trim(jchar))
1424 IF ( odat(5*(j-1)+3) .NE. 0 )
THEN
1427 IF ( j .EQ. 1 )
THEN
1428 CALL w3readflgrd ( ndsi, ndso, 9, ndsen, comstr, flgd, &
1429 flgrd, iaproc, napout, ierr )
1430 IF ( ierr .NE. 0 )
GOTO 2222
1435 ELSE IF ( j .EQ. 2 )
THEN
1437 IF ( iloop .EQ. 1 )
THEN
1439 IF ( iaproc .EQ. 1 )
OPEN &
1440 (ndss,
file=trim(fnmpre)//
'ww3_shel.scratch')
1444 CALL mpi_barrier (mpi_comm,ierr_mpi)
1446 OPEN (ndss,
file=trim(fnmpre)//
'ww3_shel.scratch')
1449 IF ( .NOT.
ALLOCATED(x) )
THEN
1450 IF ( npts.GT.0 )
THEN
1451 ALLOCATE ( x(npts), y(npts), pnames(npts) )
1453 ALLOCATE ( x(1), y(1), pnames(1) )
1461 CALL nextln ( comstr , ndsi , ndsen )
1462 READ (ndsi2,*) xx, yy, pn
1463 IF ( iloop.EQ.1 .AND. iaproc.EQ.1 )
THEN
1465 READ (ndsi,
'(A)') line
1466 WRITE (ndss,
'(A)') line
1468 IF ( index(pn,
"STOPSTRING").NE.0 )
EXIT
1470 IF ( iloop .EQ. 1 ) cycle
1474 IF ( iaproc .EQ. napout )
THEN
1476 IF ( npts .EQ. 1 )
THEN
1478 factor*xx, factor*yy, pn
1480 WRITE (ndso,2946) npts, &
1481 factor*xx, factor*yy, pn
1484 IF ( npts .EQ. 1 )
THEN
1486 factor*xx, factor*yy, pn
1488 WRITE (ndso,2956) npts, &
1489 factor*xx, factor*yy, pn
1495 IF ( iaproc.EQ.1 .AND. iloop.EQ.1 )
CLOSE (ndss)
1498 IF ( npts.EQ.0 .AND. iaproc.EQ.napout ) &
1500 IF ( iaproc .EQ. 1 )
THEN
1502 CALL mpi_barrier ( mpi_comm, ierr_mpi )
1504 CLOSE (ndss,status=
'DELETE')
1508 CALL mpi_barrier ( mpi_comm, ierr_mpi )
1515 ELSE IF ( j .EQ. 3 )
THEN
1516 CALL nextln ( comstr , ndsi , ndsen )
1517 READ (ndsi,*) tflagi
1519 IF ( .NOT. tflagi ) nds(11) = -nds(11)
1520 IF ( iaproc .EQ. napout )
THEN
1521 IF ( .NOT. tflagi )
THEN
1522 WRITE (ndso,3945)
'input',
'UNFORMATTED'
1524 WRITE (ndso,3945)
'input',
'FORMATTED'
1530 ELSE IF ( j .EQ. 6 )
THEN
1532 CALL nextln ( comstr , ndsi , ndsen )
1533 READ (ndsi,*) iprt, prtfrm
1535 IF ( iaproc .EQ. napout )
THEN
1541 WRITE (ndso,6945) iprt, yesxno
1547 ELSE IF ( j .EQ. 7 )
THEN
1548 CALL w3readflgrd ( ndsi, ndso, ndss, ndsen, comstr, flg2, &
1549 flgr2, iaproc, napout, ierr )
1550 IF ( ierr .NE. 0 )
GOTO 2222
1551 CALL nextln ( comstr , ndsi , ndsen )
1552 READ (ndsi,
'(A)',
END=2001,ERR=2002,IOSTAT=IERR) fldin
1561 IF ( .NOT.
ALLOCATED(x) .AND. npts.EQ.0 )
ALLOCATE ( x(1), y(1), pnames(1) )
1566 IF ( iaproc .EQ. napout )
WRITE (ndso,951) &
1567 'Homogeneous field data (and moving grid) ...'
1572 CALL nextln ( comstr , ndsi , ndsen )
1577 IF ( idtst.NE.idstr(-7) .AND. idtst.NE.idstr(-6) .AND. &
1578 idtst.NE.idstr(-5) .AND. idtst.NE.idstr(-4) .AND. &
1579 idtst.NE.idstr(-3) .AND. idtst.NE.idstr(-2) .AND. &
1580 idtst.NE.idstr(-1) .AND. idtst.NE.idstr(0) .AND. &
1581 idtst.NE.idstr(1) .AND. idtst.NE.idstr(2) .AND. &
1582 idtst.NE.idstr(3) .AND. idtst.NE.idstr(4) .AND. &
1583 idtst.NE.idstr(5) .AND. idtst.NE.idstr(6) .AND. &
1584 idtst.NE.idstr(10) .AND. idtst.NE.
'STP' )
GOTO 2005
1587 IF ( idtst .EQ.
'STP' )
THEN
1594 DO j=lbound(idstr,1), 10
1595 IF ( idtst .EQ. idstr(j) )
THEN
1597 IF ( nh(j) .GT. nhmax )
GOTO 2006
1598 IF ( j .LE. 1 )
THEN
1599 READ (ndsi,*) idtst, &
1600 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1602 ELSE IF ( j .EQ. 2 )
THEN
1603 READ (ndsi,*) idtst, &
1604 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1605 ha(nh(j),j), hd(nh(j),j)
1606 ELSE IF ( j .EQ. 3 )
THEN
1607 READ (ndsi,*) idtst, &
1608 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1609 ha(nh(j),j), hd(nh(j),j), hs(nh(j),j)
1610 ELSE IF ( j .EQ. 4 )
THEN
1611 READ (ndsi,*) idtst, &
1612 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1614 ELSE IF ( j .EQ. 5 )
THEN
1615 READ (ndsi,*) idtst, &
1616 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1617 ha(nh(j),j), hd(nh(j),j)
1618 ELSE IF ( j .EQ. 6 )
THEN
1619 READ (ndsi,*) idtst, &
1620 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1622 ELSE IF ( j .EQ. 10 )
THEN
1623 READ (ndsi,*) idtst, &
1624 tho(1,j,nh(j)), tho(2,j,nh(j)), &
1625 ha(nh(j),j), hd(nh(j),j)
1630 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 3')
1634 IF ( flh(j) .AND. iaproc.EQ.napout )
THEN
1635 WRITE (ndso,952) nh(j), idflds(j)
1637 IF ( ( j .LE. 1 ) .OR. ( j .EQ. 4 ) .OR. &
1639 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1641 ELSE IF ( ( j .EQ. 2 ) .OR. ( j .EQ. 5 ) .OR. &
1642 ( j .EQ. 10 ) )
THEN
1643 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1645 ELSE IF ( j .EQ. 3 )
THEN
1646 WRITE (ndso,953) i, tho(1,j,i), tho(2,j,i), &
1647 ha(i,j), hd(i,j), hs(i,j)
1655 IF ( ( flh(-7) .AND. (nh(-7).EQ.0) ) .OR. &
1656 ( flh(-6) .AND. (nh(-6).EQ.0) ) .OR. &
1657 ( flh(-5) .AND. (nh(-5).EQ.0) ) .OR. &
1658 ( flh(-4) .AND. (nh(-4).EQ.0) ) .OR. &
1659 ( flh(-3) .AND. (nh(-3).EQ.0) ) .OR. &
1660 ( flh(-2) .AND. (nh(-2).EQ.0) ) .OR. &
1661 ( flh(-1) .AND. (nh(-1).EQ.0) ) .OR. &
1662 ( flh(0) .AND. (nh(0).EQ.0) ) .OR. &
1663 ( flh(1) .AND. (nh(1).EQ.0) ) .OR. &
1664 ( flh(2) .AND. (nh(2).EQ.0) ) .OR. &
1665 ( flh(3) .AND. (nh(3).EQ.0) ) .OR. &
1666 ( flh(4) .AND. (nh(4).EQ.0) ) .OR. &
1667 ( flh(5) .AND. (nh(5).EQ.0) ) .OR. &
1668 ( flh(6) .AND. (nh(6).EQ.0) ) .OR. &
1669 ( flh(10) .AND. (nh(10).EQ.0) ) )
GOTO 2007
1687 IF ( iaproc .EQ. napout )
WRITE (ndso,950)
1689 IF ( iaproc .EQ. napout )
WRITE (ndso,951) &
1690 'Preparing input files ...'
1694 IF ( inflags1(j) .AND. .NOT. flagsc(j))
THEN
1696 IF ( iaproc .EQ. napout )
WRITE (ndso,954) idflds(j)
1699 CALL w3fldo (
'READ', idstr(j), ndsf(j), ndst, &
1700 ndsen, nx, ny, gtype, &
1701 ierr, fpre=trim(fnmpre), tideflagin=flagtide )
1702 IF ( ierr .NE. 0 )
GOTO 2222
1704 IF (flagtide.GT.0.AND.j.EQ.1) flagstide(1)=.true.
1705 IF (flagtide.GT.0.AND.j.EQ.2) flagstide(2)=.true.
1707 IF ( iaproc .EQ. napout )
WRITE (ndso,955) idflds(j)
1710 IF ( iaproc .EQ. napout )
WRITE (ndso,954) idflds(j)
1715 IF ( inflags1(j) .AND. .NOT. flagsc(j))
THEN
1716 CALL w3fldo (
'READ', idstr(j), ndsf(j), ndst, ndsen, &
1717 rcld(j), ny, nodata(j), &
1718 ierr, fpre=trim(fnmpre) )
1719 IF ( ierr .NE. 0 )
GOTO 2222
1720 IF ( iaproc .EQ. napout )
WRITE (ndso,956) idflds(j),&
1723 IF ( iaproc .EQ. napout )
WRITE (ndso,954) idflds(j)
1729 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 4')
1733 IF ( iaproc .EQ. napout )
WRITE (ndso,930)
1734 CALL stme21 ( time0 , dtme21 )
1735 IF ( iaproc .EQ. napout )
WRITE (ndso,931) dtme21
1737 CALL stme21 ( timen , dtme21 )
1738 IF ( iaproc .EQ. napout )
WRITE (ndso,932) dtme21
1747 dttst = dsec21( time0 , timen )
1748 IF ( dttst .LE. 0. )
GOTO 2003
1753 iostyp = max( 0 , min( 3 , iostyp ) )
1755 IF (iostyp .gt. 1)
THEN
1756 WRITE(*,*)
'IOSTYP not supported in domain decomposition mode'
1757 CALL extcde ( 6666 )
1761 IF ( iaproc .EQ. napout )
THEN
1762 IF ( iostyp .EQ. 0 )
THEN
1763 WRITE (ndso,940)
'No dedicated output process, ' // &
1764 'parallel file system required.'
1765 ELSE IF ( iostyp .EQ. 1 )
THEN
1766 WRITE (ndso,940)
'No dedicated output process, ' // &
1768 ELSE IF ( iostyp .EQ. 2 )
THEN
1769 WRITE (ndso,940)
'Single dedicated output process.'
1770 ELSE IF ( iostyp .EQ. 3 )
THEN
1771 WRITE (ndso,940)
'Multiple dedicated output processes.'
1773 WRITE (ndso,940)
'IOSTYP NOT RECOGNIZED'
1782 IF ( odat(5*(j-1)+3) .NE. 0 )
THEN
1783 IF ( iaproc .EQ. napout )
WRITE (ndso,941) j, idotyp(j)
1784 ttime(1) = odat(5*(j-1)+1)
1785 ttime(2) = odat(5*(j-1)+2)
1786 CALL stme21 ( ttime , dtme21 )
1787 IF ( iaproc .EQ. napout )
WRITE (ndso,942) dtme21
1788 ttime(1) = odat(5*(j-1)+4)
1789 ttime(2) = odat(5*(j-1)+5)
1790 CALL stme21 ( ttime , dtme21 )
1791 IF ( iaproc .EQ. napout )
WRITE (ndso,943) dtme21
1794 dttst = real( odat(5*(j-1)+3) )
1795 CALL tick21 ( ttime , dttst )
1796 CALL stme21 ( ttime , dtme21 )
1797 IF ( ( odat(5*(j-1)+1) .NE. odat(5*(j-1)+4) .OR. &
1798 odat(5*(j-1)+2) .NE. odat(5*(j-1)+5) ) .AND. &
1799 iaproc .EQ. napout )
THEN
1800 IF ( dtme21(9:9) .NE.
'0' )
THEN
1801 WRITE (ndso,1944) dtme21( 9:19)
1802 ELSE IF ( dtme21(10:10) .NE.
'0' )
THEN
1803 WRITE (ndso,2944) dtme21(10:19)
1805 WRITE (ndso,3944) dtme21(12:19)
1813 IF (odat(38) .NE. 0)
THEN
1814 IF ( iaproc .EQ. napout )
WRITE (ndso,941) j, idotyp(j)
1815 ttime(1) = odat(5*(j-1)+1)
1816 ttime(2) = odat(5*(j-1)+2)
1817 CALL stme21 ( ttime , dtme21 )
1818 IF ( iaproc .EQ. napout )
WRITE (ndso,942) dtme21
1819 ttime(1) = odat(5*(j-1)+4)
1820 ttime(2) = odat(5*(j-1)+5)
1821 CALL stme21 ( ttime , dtme21 )
1822 IF ( iaproc .EQ. napout )
WRITE (ndso,943) dtme21
1825 dttst = real( odat(5*(j-1)+3) )
1826 CALL tick21 ( ttime , dttst )
1827 CALL stme21 ( ttime , dtme21 )
1828 IF ( ( odat(5*(j-1)+1) .NE. odat(5*(j-1)+4) .OR. &
1829 odat(5*(j-1)+2) .NE. odat(5*(j-1)+5) ) .AND. &
1830 iaproc .EQ. napout )
THEN
1831 IF ( dtme21(9:9) .NE.
'0' )
THEN
1832 WRITE (ndso,1944) dtme21( 9:19)
1833 ELSE IF ( dtme21(10:10) .NE.
'0' )
THEN
1834 WRITE (ndso,2944) dtme21(10:19)
1836 WRITE (ndso,3944) dtme21(12:19)
1844 WRITE (ndst,9040) odat
1845 WRITE (ndst,9041) flgrd
1846 WRITE (ndst,9042) iprt, prtfrm
1857 dttst = dsec21( time0 , odat(5*(j-1)+4:5*(j-1)+5) )
1858 IF ( dttst .LT. 0 )
THEN
1860 IF ( iaproc .EQ. napout )
WRITE (ndso,8945) trim(idotyp(j))
1863 dttst = dsec21( odat(5*(j-1)+1:5*(j-1)+2), timen )
1864 IF ( dttst .LT. 0 )
THEN
1866 IF ( iaproc .EQ. napout )
WRITE (ndso,8945) trim(idotyp(j))
1873 dttst = dsec21( time0 , odat(5*(j-1)+4:5*(j-1)+5) )
1874 IF ( dttst .LT. 0 )
THEN
1876 IF ( iaproc .EQ. napout )
WRITE (ndso,8945) trim(idotyp(j))
1879 dttst = dsec21( odat(5*(j-1)+1:5*(j-1)+2), timen )
1880 IF ( dttst .LT. 0 )
THEN
1882 IF ( iaproc .EQ. napout )
WRITE (ndso,8945) trim(idotyp(j))
1886 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 5')
1892 IF ( iaproc .EQ. napout )
WRITE (ndso,951)
'Wave model ...'
1895 IF (flagstide(1).OR.flagstide(2))
THEN
1896 CALL vuf_set_parameters
1897 IF (flagstide(1))
CALL w3fldtide1 (
'READ', ndsf(1), ndst, ndsen, nx, ny, idstr(1), ierr )
1898 IF (flagstide(2))
CALL w3fldtide1 (
'READ', ndsf(2), ndst, ndsen, nx, ny, idstr(2), ierr )
1906 flogr(j) = flogr(j) .OR. flg2(j)
1908 flogrr(j,i) = flogrr(j,i) .OR. flgr2(j,i)
1916 CALL w3init ( 1, .false.,
'ww3', nds, ntrace, odat, flgrd, flgr2, flgd, &
1917 flg2, npts, x, y, pnames, iprt, prtfrm, mpi_comm, &
1918 flagstidein=flagstide )
1931 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 5')
1934 IF (flagstide(1))
CALL w3fldtide2 (
'READ', ndsf(1), ndst, ndsen, nx, ny, idstr(1), 1, ierr )
1935 IF (flagstide(2))
CALL w3fldtide2 (
'READ', ndsf(2), ndst, ndsen, nx, ny, idstr(2), 1, ierr )
1936 ALLOCATE(v_arg(170,1),f_arg(170,1),u_arg(170,1))
1939 ALLOCATE ( xxx(nx,ny) )
1944 CALL mpi_barrier ( mpi_comm, ierr_mpi )
1947 IF ( iaproc .EQ. napout )
THEN
1948 CALL date_and_time ( values=clkdt2 )
1954 IF ( iaproc .EQ. 1)
THEN
1960 IF (dtout(7).NE.0)
THEN
1961 CALL cpl_oasis_grid(l_master,mpi_comm)
1962 CALL cpl_oasis_define(ndso, fldin, fldout)
1980 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 6')
1982 IF ( .NOT. flflg )
THEN
1984 IF ( iaproc .EQ. napout )
WRITE (ndso,960)
1985 CALL w3wave ( 1, odat, timen &
1987 , .true., .false., mpi_comm, timen &
1997 IF ( iaproc .EQ. napout )
WRITE (ndso,970)
2002 IF ( flout(7) .AND. cplt0 )
THEN
2005 CALL snd_fields_to_atmos()
2008 CALL snd_fields_to_ocean()
2011 CALL snd_fields_to_ice()
2025 CALL stme21 ( time0 , dtme21 )
2026 IF ( iaproc .EQ. napout )
WRITE (ndso,971) dtme21
2029 WRITE (ndst,9070)
'0-N', time0, ttime, &
2030 idstr(-7), inflags1(-7), ti1, &
2031 idstr(-6), inflags1(-6), ti2, &
2032 idstr(-5), inflags1(-5), ti3, &
2033 idstr(-4), inflags1(-4), ti4, &
2034 idstr(-3), inflags1(-3), ti5, &
2035 idstr(-2), inflags1(-2), tzn, &
2036 idstr(-1), inflags1(-1), ttn, &
2037 idstr(0), inflags1(0), tvn, &
2038 idstr(1), inflags1(1), tln, &
2039 idstr(2), inflags1(2), tc0, tcn, &
2040 idstr(3), inflags1(3), tw0, twn, &
2041 idstr(4), inflags1(4), tin, &
2042 idstr(5), inflags1(5), tu0, tun, &
2043 idstr(6), inflags1(6), tr0, trn, &
2044 idstr(7), inflags1(7), t0n, &
2045 idstr(8), inflags1(8), t1n, &
2046 idstr(9), inflags1(9), t2n, &
2047 idstr(10), inflags1(10), tg0, tgn
2050 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 7')
2054 write(jchar,
'(i0)') j
2055 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL UPDATE '//trim(jchar))
2057 IF ( inflags1(j) )
THEN
2061 IF (.NOT.flagsc(j))
THEN
2064 IF ( ttt(1) .EQ. -1 )
THEN
2067 dttst = dsec21( time0 , ttt )
2071 IF ( dtout(7).NE.0 )
THEN
2073 IF(nint(dsec21(time00,time)) == 0)
THEN
2077 id_oasis_time = nint(dsec21( time00 , tfn(:,j) ))
2078 IF ( mod(nint(dsec21(time00,time)), nint(dtout(7))) .EQ. 0 .AND. &
2079 dsec21(tfn(:,j), timeend) .GT. 0.0 ) dttst=0.
2086 WRITE (ndst,9071) idstr(j), dttst
2091 IF ( dttst .LE. 0. )
THEN
2094 IF ((fllevtide .AND.(j.EQ.1)).OR.(flcurtide.AND.(j.EQ.2)))
THEN
2095 IF ( iaproc .EQ. napout )
WRITE (ndso,974) idflds(j)
2098 IF ( iaproc .EQ. napout )
WRITE (ndso,972) idflds(j)
2104 IF ( j .EQ. -7 )
THEN
2106 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2107 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2108 ttt, xxx, xxx, xxx, ti1, xxx, xxx, icep1, ierr)
2111 coupl_comm = mpi_comm
2114 IF (flagsc(j)) flagsci = .true.
2115 IF (.NOT.flagsci) id_oasis_time = -1
2117 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2118 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2119 ttt, xxx, xxx, xxx, ti1, xxx, xxx, icep1, &
2126 IF ( ierr .LT. 0 ) fllst_all(j) = .true.
2129 ELSE IF ( j .EQ. -6 )
THEN
2131 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2132 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2133 ttt, xxx, xxx, xxx, ti2, xxx, xxx, icep2, ierr)
2135 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2136 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2137 ttt, xxx, xxx, xxx, ti2, xxx, xxx, icep2, &
2140 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2143 ELSE IF ( j .EQ. -5 )
THEN
2145 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2146 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2147 ttt, xxx, xxx, xxx, ti3, xxx, xxx, icep3, ierr)
2149 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2150 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2151 ttt, xxx, xxx, xxx, ti3, xxx, xxx, icep3, &
2154 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2157 ELSE IF ( j .EQ. -4 )
THEN
2159 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2160 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2161 ttt, xxx, xxx, xxx, ti4, xxx, xxx, icep4, ierr)
2163 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2164 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2165 ttt, xxx, xxx, xxx, ti4, xxx, xxx, icep4, &
2168 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2171 ELSE IF ( j .EQ. -3 )
THEN
2173 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2174 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2175 ttt, xxx, xxx, xxx, ti5, xxx, xxx, icep5, ierr)
2178 coupl_comm = mpi_comm
2181 IF (flagsc(j)) flagsci = .true.
2182 IF (.NOT.flagsci) id_oasis_time = -1
2184 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2185 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2186 ttt, xxx, xxx, xxx, ti5, xxx, xxx, icep5, &
2193 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2196 ELSE IF ( j .EQ. -2 )
THEN
2198 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2199 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2200 ttt, xxx, xxx, xxx, tzn, xxx, xxx, mudd, ierr)
2202 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2203 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2204 ttt, xxx, xxx, xxx, tzn, xxx, xxx, mudd, &
2207 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2210 ELSE IF ( j .EQ. -1 )
THEN
2212 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2213 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2214 ttt, xxx, xxx, xxx, ttn, xxx, xxx, mudt, ierr)
2216 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2217 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2218 ttt, xxx, xxx, xxx, ttn, xxx, xxx, mudt, &
2221 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2224 ELSE IF ( j .EQ. 0 )
THEN
2226 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2227 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2228 ttt, xxx, xxx, xxx, tvn, xxx, xxx, mudv, ierr)
2230 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2231 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2232 ttt, xxx, xxx, xxx, tvn, xxx, xxx, mudv, &
2235 IF ( ierr .LT. 0 )fllst_all(j) = .true.
2238 ELSE IF ( j .EQ. 1 )
THEN
2240 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2241 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2242 ttt, xxx, xxx, xxx, tln, xxx, xxx, wlev, ierr)
2245 IF ( fllevtide )
THEN
2247 IF ( tln(1) .EQ. -1 )
THEN
2250 CALL tick21 ( tln, tide_dt )
2255 coupl_comm = mpi_comm
2258 IF (.NOT.flagsc(j)) id_oasis_time = -1
2260 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2261 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2262 ttt, xxx, xxx, xxx, tln, xxx, xxx, wlev, &
2272 IF ( ierr .LT. 0 ) fllstl = .true.
2276 ELSE IF ( j .EQ. 2 )
THEN
2278 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2279 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2280 tc0, cx0, cy0, xxx, tcn, cxn, cyn, xxx, ierr)
2285 ELSE IF( fswnd )
THEN
2286 CALL w3fldg (
'READ', idstr(j), ndsf(j), ndst, &
2287 ndsen, nsea, 1, nsea, 1, time0, timen, tc0, &
2288 cx0, cy0, xxx, tcn, cxn, cyn, xxx, ierr)
2293 IF ( flcurtide )
THEN
2295 IF ( tcn(1) .EQ. -1 )
THEN
2299 CALL tick21 ( tcn, tide_dt )
2303 coupl_comm = mpi_comm
2306 IF (.NOT.flagsc(j)) id_oasis_time = -1
2308 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2309 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2310 tc0, cx0, cy0, xxx, tcn, cxn, cyn, xxx, &
2322 ELSE IF ( j .EQ. 3 )
THEN
2324 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2325 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2326 tw0, wx0, wy0, dt0, twn, wxn, wyn, dtn, ierr)
2331 ELSE IF( fswnd )
THEN
2332 CALL w3fldg (
'READ', idstr(j), ndsf(j), ndst, &
2333 ndsen, nsea, 1, nsea, 1, time0, timen, tw0, &
2334 wx0, wy0, dt0, twn, wxn, wyn, dtn, ierr)
2339 coupl_comm = mpi_comm
2342 IF (.NOT.flagsc(j)) id_oasis_time = -1
2344 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2345 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2346 tw0, wx0, wy0, dt0, twn, wxn, wyn, dtn, &
2355 ELSE IF ( j .EQ. 4 )
THEN
2357 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2358 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2359 ttt, xxx, xxx, xxx, tin, xxx, bergi, icei, ierr)
2362 coupl_comm = mpi_comm
2365 IF (flagsc(j)) flagsci = .true.
2366 IF (.NOT.flagsci) id_oasis_time = -1
2368 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2369 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2370 ttt, xxx, xxx, xxx, tin, xxx, bergi, icei, &
2376 IF ( ierr .LT. 0 ) fllsti = .true.
2381 ELSE IF ( j .EQ. 5 )
THEN
2383 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2384 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2385 tu0, ux0, uy0, xxx, tun, uxn, uyn, xxx, ierr)
2390 ELSE IF( fswnd )
THEN
2391 CALL w3fldg (
'READ', idstr(j), ndsf(j), ndst, &
2392 ndsen, nsea, 1, nsea, 1, time0, timen, tu0, &
2393 ux0, uy0, xxx, tun, uxn, uyn, xxx, ierr)
2398 coupl_comm = mpi_comm
2401 IF (.NOT.flagsc(j)) id_oasis_time = -1
2403 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2404 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2405 tu0, ux0, uy0, xxx, tun, uxn, uyn, xxx, &
2414 ELSE IF ( j .EQ. 6 )
THEN
2416 CALL w3fldh (j, ndst, ndsen, nx, ny, nx, ny, &
2417 time0, timen, nh(j), nhmax, tho, ha, hd, hs,&
2418 tr0, xxx, xxx, rh0, trn, xxx, xxx, rhn, ierr)
2422 ELSE IF( fswnd )
THEN
2423 CALL w3fldg (
'READ', idstr(j), ndsf(j), ndst, &
2424 ndsen, nsea, 1, nsea, 1, time0, timen, tr0, &
2425 xxx, xxx, rh0, trn, xxx, xxx, rhn, ierr)
2430 coupl_comm = mpi_comm
2433 IF (.NOT.flagsc(j)) id_oasis_time = -1
2435 CALL w3fldg (
'READ', idstr(j), ndsf(j), &
2436 ndst, ndsen, nx, ny, nx, ny, time0, timen, &
2437 tr0, xxx, xxx, rh0, trn, xxx, xxx, rhn, &
2443 IF ( ierr .LT. 0 ) fllstr = .true.
2447 ELSE IF ( j .EQ. 7 )
THEN
2448 CALL w3fldd (
'SIZE', idstr(j), ndsf(j), ndst, &
2449 ndsen, time0, t0n, rcld(j), ndt(j), &
2450 ndtnew, data0, ierr )
2451 IF ( ierr .LT. 0 )
THEN
2452 inflags1(j) = .false.
2453 IF (
ALLOCATED(data0) )
DEALLOCATE(data0)
2456 IF (
ALLOCATED(data0) )
DEALLOCATE(data0)
2457 ALLOCATE ( data0(rcld(j),ndt(j)) )
2458 CALL w3fldd (
'READ', idstr(j), ndsf(j), ndst, &
2459 ndsen, time0, t0n, rcld(j), ndt(j), &
2460 ndtnew, data0, ierr )
2464 ELSE IF ( j .EQ. 8 )
THEN
2465 CALL w3fldd (
'SIZE', idstr(j), ndsf(j), ndst, &
2466 ndsen, time0, t1n, rcld(j), ndt(j), &
2467 ndtnew, data1, ierr )
2468 IF ( ierr .LT. 0 )
THEN
2469 inflags1(j) = .false.
2470 IF (
ALLOCATED(data1) )
DEALLOCATE(data1)
2473 IF (
ALLOCATED(data1) )
DEALLOCATE(data1)
2474 ALLOCATE ( data1(rcld(j),ndt(j)) )
2475 CALL w3fldd (
'READ', idstr(j), ndsf(j), ndst, &
2476 ndsen, time0, t1n, rcld(j), ndt(j), &
2477 ndtnew, data1, ierr )
2481 ELSE IF ( j .EQ. 9 )
THEN
2482 CALL w3fldd (
'SIZE', idstr(j), ndsf(j), ndst, &
2483 ndsen, time0, t2n, rcld(j), ndt(j), &
2484 ndtnew, data2, ierr )
2485 IF ( ierr .LT. 0 )
THEN
2486 inflags1(j) = .false.
2487 IF (
ALLOCATED(data2) )
DEALLOCATE(data2)
2490 IF (
ALLOCATED(data2) )
DEALLOCATE(data2)
2491 ALLOCATE ( data2(rcld(j),ndt(j)) )
2492 CALL w3fldd (
'READ', idstr(j), ndsf(j), ndst, &
2493 ndsen, time0, t2n, rcld(j), ndt(j), &
2494 ndtnew, data2, ierr )
2498 ELSE IF ( j .EQ. 10 )
THEN
2499 CALL w3fldm (4, ndst, ndsen, time0, timen, nh(4), &
2500 nhmax, tho, ha, hd, tg0, ga0, gd0, &
2501 tgn, gan, gdn, ierr)
2504 IF ( ierr.GT.0 )
GOTO 2222
2505 IF ( ierr.LT.0 .AND. iaproc.EQ.napout )
WRITE (ndso,973) idflds(j)
2512 IF ( inflags1(j) )
THEN
2514 dttst = dsec21( ttt , ttime )
2515 IF ( dttst.GT.0. .AND. .NOT. &
2516 ( (fllstl .AND. j.EQ.1) .OR. &
2517 (fllst_all(j) .AND. j.EQ.-7) .OR. &
2518 (fllst_all(j) .AND. j.EQ.-6) .OR. &
2519 (fllst_all(j) .AND. j.EQ.-5) .OR. &
2520 (fllst_all(j) .AND. j.EQ.-4) .OR. &
2521 (fllst_all(j) .AND. j.EQ.-3) .OR. &
2522 (fllst_all(j) .AND. j.EQ.-2) .OR. &
2523 (fllst_all(j) .AND. j.EQ.-1) .OR. &
2524 (fllst_all(j) .AND. j.EQ.0 ) .OR. &
2525 (fllsti .AND. j.EQ.4) .OR. &
2526 (fllstr .AND. j.EQ.6) ) )
THEN
2540 first_step = .false.
2543 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 8')
2546 CALL tick21 ( tdn, 1. )
2548 IF ( inflags1(j) )
THEN
2550 dttst = dsec21( ttt , tdn )
2551 IF ( dttst.GT.0. ) tdn = ttt
2556 WRITE (ndst,9072)
'0-N', time0, ttime, &
2557 idstr(-7), inflags1(-7), ti1, &
2558 idstr(-6), inflags1(-6), ti2, &
2559 idstr(-5), inflags1(-5), ti3, &
2560 idstr(-4), inflags1(-4), ti4, &
2561 idstr(-3), inflags1(-3), ti5, &
2562 idstr(-2), inflags1(-2), tzn, &
2563 idstr(-1), inflags1(-1), ttn, &
2564 idstr(0), inflags1(0), tvn, &
2565 idstr(1), inflags1(1), tln, &
2566 idstr(2), inflags1(2), tc0, tcn, &
2567 idstr(3), inflags1(3), tw0, twn, &
2568 idstr(4), inflags1(4), tin, &
2569 idstr(5), inflags1(5), tu0, tun, &
2570 idstr(6), inflags1(6), tr0, trn, &
2571 idstr(7), inflags1(7), t0n, &
2572 idstr(8), inflags1(8), t1n, &
2573 idstr(9), inflags1(9), t2n, tdn, &
2574 idstr(10), inflags1(10), tg0, tgn
2577 IF ( iaproc .EQ. napout )
WRITE (ndso,*)
' '
2583 CALL w3wave ( 1, odat, time0 &
2585 , .true., .false., mpi_comm, timen &
2588 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 9')
2595 IF ( fllstl ) inflags1(1) = .false.
2596 IF ( fllsti ) inflags1(4) = .false.
2597 IF ( fllstr ) inflags1(6) = .false.
2601 IF (fllst_all(j))
THEN
2609 dttst = dsec21( time , tdn )
2610 IF ( dttst .EQ. 0 )
THEN
2611 CALL stme21 ( time0 , dtme21 )
2612 IF ( iaproc .EQ. napout )
WRITE (ndso,975) dtme21
2614 flgdas(1) = dsec21(time,t0n) .EQ. 0.
2615 flgdas(2) = dsec21(time,t1n) .EQ. 0.
2616 flgdas(3) = dsec21(time,t2n) .EQ. 0.
2618 CALL w3wdas ( flgdas, rcld, ndt, data0, data1, data2 )
2622 dttst = dsec21( time , timen )
2624 IF ( dttst .EQ. 0. )
THEN
2625 IF ( iaproc .EQ. napout )
WRITE (ndso,*)
' '
2626 CALL w3wave ( 1, odat, time0 &
2628 , .true., .false., mpi_comm, timen &
2636 call print_memcheck(memunit,
'memcheck_____:'//
' WW3_SHEL SECTION 10')
2638 dttst = dsec21( time0 , timen )
2639 IF ( dttst .GT. 0. )
GOTO 700
2649 IF ( iaproc .EQ. naperr )
WRITE (ndse,1000) ierr
2650 CALL extcde ( 1000 )
2653 IF ( iaproc .EQ. naperr )
WRITE (ndse,1001)
2654 CALL extcde ( 1001 )
2657 IF ( iaproc .EQ. naperr )
WRITE (ndse,1002) ierr
2658 CALL extcde ( 1002 )
2661 IF ( iaproc .EQ. naperr )
WRITE (ndse,1102)
2662 CALL extcde ( 1102 )
2665 IF ( iaproc .EQ. naperr )
WRITE (ndse,1003)
2666 CALL extcde ( 1003 )
2669 IF ( iaproc .EQ. naperr )
WRITE (ndse,1104) ierr
2670 CALL extcde ( 1104 )
2673 IF ( iaproc .EQ. naperr )
WRITE (ndse,1004) ierr
2674 CALL extcde ( 1004 )
2677 IF ( iaproc .EQ. naperr )
WRITE (ndse,1005) idtst
2678 CALL extcde ( 1005 )
2681 IF ( iaproc .EQ. naperr )
WRITE (ndse,1006) idtst, nh(j)
2682 CALL extcde ( 1006 )
2685 IF ( iaproc .EQ. naperr )
WRITE (ndse,1062) idtst
2686 CALL extcde ( 1062 )
2689 IF ( iaproc .EQ. naperr )
WRITE (ndse,1007)
2690 CALL extcde ( 1007 )
2693 IF ( iaproc .EQ. naperr )
WRITE (ndse,1008) ierr
2694 CALL extcde ( 1008 )
2698 IF ( iaproc .EQ. naperr )
WRITE (ndse,1009) odat(33), nint(dtmax)
2699 CALL extcde ( 1009 )
2703 IF ( iaproc .EQ. naperr )
WRITE (ndse,1054)
2704 CALL extcde ( 1054 )
2708 CALL mpi_barrier ( mpi_comm, ierr_mpi )
2711 IF ( iaproc .EQ. napout )
THEN
2712 CALL date_and_time ( values=clkdt3 )
2713 clkfin = max(tdiff( clkdt1,clkdt2 ), 0.)
2714 clkfel = max(tdiff( clkdt1,clkdt3 ), 0.)
2715 WRITE (ndso,997) clkfin
2716 WRITE (ndso,998) clkfel
2717 IF ( ndso .NE. nds(1) )
THEN
2718 WRITE (nds(1),997) clkfin
2719 WRITE (nds(1),998) clkfel
2728 IF (oasised.EQ.1)
THEN
2729 CALL cpl_oasis_finalize
2733 CALL mpi_finalize ( ierr_mpi )
2742 900
FORMAT (/15x,
' *** WAVEWATCH III Program shell *** '/ &
2743 15x,
'==============================================='/)
2744 901
FORMAT (
' Comment character is ''',a,
''''/)
2747 905
FORMAT (
' Hybrid MPI/OMP thread support level:'/ &
2748 ' Requested: ', i2/ &
2749 ' Provided: ', i2/ )
2753 906
FORMAT (
' OMP threading enabled. Number of threads: ', i3 / )
2755 920
FORMAT (/
' Input fields : '/ &
2756 ' --------------------------------------------------')
2757 921
FORMAT (
' ',a,2x,a,2x,a)
2760 930
FORMAT (/
' Time interval : '/ &
2761 ' --------------------------------------------------')
2762 931
FORMAT (
' Starting time : ',a)
2763 932
FORMAT (
' Ending time : ',a/)
2765 940
FORMAT (/
' Output requests : '/ &
2766 ' --------------------------------------------------'/ &
2768 941
FORMAT (/
' Type',i2,
' : ',a/ &
2769 ' -----------------------------------------')
2770 942
FORMAT (
' From : ',a)
2771 943
FORMAT (
' To : ',a)
2772 1944
FORMAT (
' Interval : ', 8x,a11/)
2773 2944
FORMAT (
' Interval : ', 9x,a10/)
2774 3944
FORMAT (
' Interval : ',11x,a8/)
2775 2945
FORMAT (
' Point 1 : ',2f8.2,2x,a)
2776 2955
FORMAT (
' Point 1 : ',2(f8.1,
'E3'),2x,a)
2777 2946
FORMAT (
' ',i6,
' : ',2f8.2,2x,a)
2778 2956
FORMAT (
' ',i6,
' : ',2(f8.1,
'E3'),2x,a)
2779 2947
FORMAT (
' No points defined')
2780 3945
FORMAT (
' The file with ',a,
' data is ',a,
'.')
2781 6945
FORMAT (
' IX first,last,inc :',3i5/ &
2782 ' IY first,last,inc :',3i5/ &
2783 ' Formatted file : ',a)
2784 8945
FORMAT (
' output dates out of run dates : ', a, &
2787 950
FORMAT (/
' Initializations :'/ &
2788 ' --------------------------------------------------')
2791 952
FORMAT (
' ',i6,2x,a)
2792 953
FORMAT (
' ',i6,i11.8,i7.6,3e12.4)
2794 954
FORMAT (
' ',a,
': file not needed')
2795 955
FORMAT (
' ',a,
': file OK')
2796 956
FORMAT (
' ',a,
': file OK, recl =',i3, &
2799 960
FORMAT (/
' Running model without input fields'/ &
2800 ' --------------------------------------------------'/)
2802 970
FORMAT (/
' Running model with input fields'/ &
2803 ' --------------------------------------------------')
2804 971
FORMAT (/
' Updating input at ',a)
2805 972
FORMAT (
' Updating ',a)
2806 973
FORMAT (
' Past last ',a)
2808 974
FORMAT (
' Updating ',a,
'using tidal constituents')
2810 975
FORMAT (/
' Data assimmilation at ',a)
2812 997
FORMAT (/
' Initialization time :',f10.2,
' s')
2813 998
FORMAT (
' Elapsed time :',f10.2,
' s')
2815 999
FORMAT(/
' End of program '/ &
2816 ' ===================================='/ &
2817 ' WAVEWATCH III Program shell '/)
2819 1000
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2820 ' ERROR IN OPENING INPUT FILE'/ &
2823 1001
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2824 ' PREMATURE END OF INPUT FILE'/)
2826 1002
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2827 ' ERROR IN READING FROM INPUT FILE'/ &
2830 1102
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2831 ' LEVEL AND CURRENT ARE MIXING COUPLED AND FORCED'/&
2832 ' IT MUST BE FULLY COUPLED OR DISABLED '/)
2834 1003
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2835 ' ILLEGAL TIME INTERVAL'/)
2837 1104
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2838 ' ERROR IN OPENING POINT FILE'/ &
2841 1004
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2842 ' ERROR IN READING FROM POINT FILE'/ &
2845 1005
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2846 ' ILLEGAL ID STRING HOMOGENEOUS FIELD : ',a/)
2848 1006
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2849 ' TOO MANY HOMOGENEOUS FIELDS : ',a,1x,i4/)
2851 1062
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : ***'/ &
2852 ' HOMOGENEOUS NAME NOT RECOGNIZED : ', a/)
2854 1007
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2855 ' INSUFFICIENT DATA FOR HOMOGENEOUS FIELDS'/)
2857 1008
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2858 ' ERROR IN OPENING OUTPUT FILE'/ &
2862 1009
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2863 ' COUPLING TIME STEP NOT MULTIPLE OF'/ &
2864 ' MODEL TIME STEP: ',i6, i6/)
2868 1010
FORMAT (/
' *** WAVEWATCH III WARNING IN W3SHEL : *** '/ &
2869 ' COUPLING TIME STEP NOT DEFINED, '/ &
2870 ' IT WILL BE OVERRIDEN TO DEFAULT VALUE'/ &
2871 ' FROM ',i6,
' TO ',i6/)
2874 1054
FORMAT (/
' *** WAVEWATCH III ERROR IN W3SHEL : *** '/ &
2875 ' POINT OUTPUT ACTIVATED BUT NO POINTS DEFINED'/)
2879 9000
FORMAT (
' TEST W3SHEL : UNIT NUMBERS :',12i4)
2880 9001
FORMAT (
' TEST W3SHEL : SUBR. TRACING :',2i4)
2884 9020
FORMAT (
' TEST W3SHEL : FLAGS DEF / HOM : ',9l2,2x,9l2)
2888 9040
FORMAT (
' TEST W3SHEL : ODAT : ',i9.8,i7.6,i7,i9.8,i7.6, &
2889 4(/24x,i9.8,i7.6,i7,i9.8,i7.6) )
2890 9041
FORMAT (
' TEST W3SHEL : FLGRD : ',20l2)
2891 9042
FORMAT (
' TEST W3SHEL : IPR, PRFRM : ',6i6,1x,l1)
2895 9070
FORMAT (
' TEST W3SHEL : ',a,3x,2(i10.8,i7.6)/ &
2896 ' ',a,l3,17x,(i10.8,i7.6)/ &
2897 ' ',a,l3,17x,(i10.8,i7.6)/ &
2898 ' ',a,l3,17x,(i10.8,i7.6)/ &
2899 ' ',a,l3,17x,(i10.8,i7.6)/ &
2900 ' ',a,l3,17x,(i10.8,i7.6)/ &
2901 ' ',a,l3,17x,(i10.8,i7.6)/ &
2902 ' ',a,l3,17x,(i10.8,i7.6)/ &
2903 ' ',a,l3,17x,(i10.8,i7.6)/ &
2904 ' ',a,l3,17x,(i10.8,i7.6)/ &
2905 ' ',a,l3,2(i10.8,i7.6)/ &
2906 ' ',a,l3,2(i10.8,i7.6)/ &
2907 ' ',a,l3,17x,(i10.8,i7.6)/ &
2908 ' ',a,l3,2(i10.8,i7.6)/ &
2909 ' ',a,l3,2(i10.8,i7.6)/ &
2910 ' ',a,l3,17x,(i10.8,i7.6)/ &
2911 ' ',a,l3,17x,(i10.8,i7.6)/ &
2912 ' ',a,l3,17x,(i10.8,i7.6)/ &
2913 ' ',a,l3,2(i10.8,i7.6))
2914 9071
FORMAT (
' TEST W3SHEL : ',a,
', DTTST = ',e10.3)
2915 9072
FORMAT (
' TEST W3SHEL : ',a,3x,2(i10.8,i7.6)/ &
2916 ' ',a,l3,17x,(i10.8,i7.6)/ &
2917 ' ',a,l3,17x,(i10.8,i7.6)/ &
2918 ' ',a,l3,17x,(i10.8,i7.6)/ &
2919 ' ',a,l3,17x,(i10.8,i7.6)/ &
2920 ' ',a,l3,17x,(i10.8,i7.6)/ &
2921 ' ',a,l3,17x,(i10.8,i7.6)/ &
2922 ' ',a,l3,17x,(i10.8,i7.6)/ &
2923 ' ',a,l3,17x,(i10.8,i7.6)/ &
2924 ' ',a,l3,17x,(i10.8,i7.6)/ &
2925 ' ',a,l3,2(i10.8,i7.6)/ &
2926 ' ',a,l3,2(i10.8,i7.6)/ &
2927 ' ',a,l3,17x,(i10.8,i7.6)/ &
2928 ' ',a,l3,2(i10.8,i7.6)/ &
2929 ' ',a,l3,2(i10.8,i7.6)/ &
2930 ' ',a,l3,17x,(i10.8,i7.6)/ &
2931 ' ',a,l3,17x,(i10.8,i7.6)/ &
2932 ' ',a,l3,17x,2(i10.8,i7.6)/ &
2933 ' ',a,l3,2(i10.8,i7.6))