127 INTEGER :: i, isea, ix, iy
128 INTEGER,
DIMENSION(NSEAL) :: mask
129 REAL(kind=8), dimension(
nseal,1) :: rla_oasis_snd
132 REAL(kind=8), dimension(
nseal) :: tmp
142 mask(i) = mod(
mapsta(iy,ix),2)
149 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_ODRY')
THEN
152 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
158 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_T0M1')
THEN
161 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
167 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__T01')
THEN
170 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
176 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__WNM')
THEN
179 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
185 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OCHA')
THEN
188 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
194 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__OHS')
THEN
197 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
204 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_CDIR')
THEN
207 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
214 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_SDIR')
THEN
217 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
224 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__DIR')
THEN
227 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
233 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__BHD')
THEN
236 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
242 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TWOX')
THEN
245 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
251 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TWOY')
THEN
254 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
260 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TOCX')
THEN
263 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
269 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TOCY')
THEN
272 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
278 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__FOC')
THEN
281 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
287 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TBBX')
THEN
290 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
296 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TBBY')
THEN
299 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
305 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__FBB')
THEN
308 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
314 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3__UBR')
THEN
317 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
323 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_UBRX')
THEN
326 rla_oasis_snd(:,1) = tmp(1:
nseal)
332 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_UBRY')
THEN
335 rla_oasis_snd(:,1) = tmp(1:
nseal)
341 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TAWX')
THEN
344 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
350 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TAWY')
THEN
353 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
359 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TUSX')
THEN
362 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
368 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_TUSY')
THEN
371 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
377 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_USSX')
THEN
380 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
386 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3_USSY')
THEN
389 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
395 IF (
snd_fld(ib_do)%CL_FIELD_NAME ==
'WW3___LM')
THEN
398 rla_oasis_snd(:,1) = dble(tmp(1:
nseal))
470 INTEGER,
INTENT(IN) :: id_lcomm
471 CHARACTER(LEN=3),
INTENT(IN) :: idfld
472 REAL,
INTENT(INOUT) :: fxn(:,:), fyn(:,:), fan(:,:)
478 INTEGER :: ib_do, ib_i, ib_j, il_err
479 INTEGER,
SAVE :: id_oasis_time_wetdryonlyonce = -1
480 REAL(kind=8), dimension(
nseal,1) :: rla_oasis_rcv
481 REAL(kind=8), dimension(
nseal) :: tmp, maskt, masku, maskv
482 REAL,
DIMENSION(1:NSEA) :: snd_buff,rcv_buff
490 rla_oasis_rcv(:,:) = 0.0
508 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OWDH')
THEN
518 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OWDU')
THEN
527 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OWDV')
THEN
545 IF (idfld ==
'LEV')
THEN
547 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3__SSH')
THEN
551 snd_buff(1:
nsea) = 0.0
554 snd_buff(ib_j) = tmp(ib_i)
557 CALL mpi_allreduce(snd_buff(1:
nsea), &
574 IF (idfld ==
'CUR')
THEN
578 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OSSU')
THEN
582 snd_buff(1:
nsea) = 0.0
585 snd_buff(ib_j) = tmp(ib_i)
588 CALL mpi_allreduce(snd_buff(1:
nsea), &
604 IF (
rcv_fld(ib_do)%CL_FIELD_NAME ==
'WW3_OSSV')
THEN
608 snd_buff(1:
nsea) = 0.0
611 snd_buff(ib_j) = tmp(ib_i)
614 CALL mpi_allreduce(snd_buff(1:
nsea), &