Skip to content

Commit 323b97c

Browse files
fdisanteFabio Di Sante
authored and
Fabio Di Sante
committed
proenvhalo ported to GPU
1 parent 29fa765 commit 323b97c

File tree

4 files changed

+81
-36
lines changed

4 files changed

+81
-36
lines changed

src/ecwam/proenvhalo.F90

+47-15
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
!
99

1010
SUBROUTINE PROENVHALO (NINF, NSUP, &
11-
& WVPRPT, &
12-
& WVENVI, &
11+
& WAVNUM, CGROUP, OMOSNH2KD, &
12+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR, &
1313
& WAVNUM_EXT, CGROUP_EXT, OMOSNH2KD_EXT, &
1414
& DELLAM1_EXT, COSPHM1_EXT, &
1515
& DEPTH_EXT, U_EXT, V_EXT )
@@ -44,10 +44,6 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
4444

4545
INTEGER(KIND=JWIM), INTENT(IN) :: NINF, NSUP ! HALO EXTEND NINF to NSUP+1
4646

47-
TYPE(FREQUENCY), INTENT(IN) :: WVPRPT
48-
49-
TYPE(ENVIRONMENT), INTENT(IN) :: WVENVI
50-
5147
REAL(KIND=JWRB), DIMENSION(NINF:NSUP+1, NFRE_RED), INTENT(OUT) :: WAVNUM_EXT ! WAVE NUMBER
5248
REAL(KIND=JWRB), DIMENSION(NINF:NSUP+1, NFRE_RED), INTENT(OUT) :: CGROUP_EXT ! GROUP VELOCITY
5349
REAL(KIND=JWRB), DIMENSION(NINF:NSUP+1, NFRE_RED), INTENT(OUT) :: OMOSNH2KD_EXT ! OMEGA / SINH(2KD)
@@ -57,6 +53,8 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
5753
REAL(KIND=JWRB), DIMENSION(NINF:NSUP+1), INTENT(OUT) :: U_EXT ! U-COMPONENT OF SURFACE CURRENT
5854
REAL(KIND=JWRB), DIMENSION(NINF:NSUP+1), INTENT(OUT) :: V_EXT ! V-COMPONENT OF SURFACE CURRENT
5955

56+
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NFRE, NCHNK), INTENT(IN) :: WAVNUM, CGROUP, OMOSNH2KD
57+
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NCHNK), INTENT(IN) :: DEPTH, DELLAM1, COSPHM1, UCUR, VCUR
6058

6159
INTEGER(KIND=JWIM) :: IJ, M
6260
INTEGER(KIND=JWIM) :: ICHNK, KIJS, KIJL, IJSB, IJLB
@@ -66,51 +64,85 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
6664
! ----------------------------------------------------------------------
6765

6866
IF (LHOOK) CALL DR_HOOK('PROENVHALO',0,ZHOOK_HANDLE)
67+
!$acc data present(WAVNUM,CGROUP,OMOSNH2KD,DELLAM1,COSPHM1,DEPTH, UCUR,VCUR,&
68+
!$acc WAVNUM_EXT,CGROUP_EXT,OMOSNH2KD_EXT,DELLAM1_EXT,COSPHM1_EXT,DEPTH_EXT,U_EXT,V_EXT)
6969

7070
!!! mapping chuncks to block ONLY for actual grid points !!!!
71+
#ifndef _OPENACC
7172
!$OMP PARALLEL DO SCHEDULE(STATIC) PRIVATE(ICHNK, KIJS, IJSB, KIJL, IJLB, M)
73+
#endif /*_OPENACC*/
74+
!$acc kernels loop private(ICHNK, KIJS, IJSB, KIJL, IJLB)
7275
DO ICHNK = 1, NCHNK
7376
KIJS = 1
7477
IJSB = IJFROMCHNK(KIJS, ICHNK)
7578
KIJL = KIJL4CHNK(ICHNK)
7679
IJLB = IJFROMCHNK(KIJL, ICHNK)
7780

78-
WAVNUM_EXT(IJSB:IJLB, 1:NFRE_RED) = WVPRPT%WAVNUM(KIJS:KIJL, 1:NFRE_RED,ICHNK)
79-
CGROUP_EXT(IJSB:IJLB, 1:NFRE_RED) = WVPRPT%CGROUP(KIJS:KIJL, 1:NFRE_RED,ICHNK)
80-
OMOSNH2KD_EXT(IJSB:IJLB, 1:NFRE_RED) = WVPRPT%OMOSNH2KD(KIJS:KIJL, 1:NFRE_RED,ICHNK)
81-
82-
DELLAM1_EXT(IJSB:IJLB) = WVENVI%DELLAM1(KIJS:KIJL,ICHNK)
83-
COSPHM1_EXT(IJSB:IJLB) = WVENVI%COSPHM1(KIJS:KIJL,ICHNK)
84-
DEPTH_EXT(IJSB:IJLB) = WVENVI%DEPTH(KIJS:KIJL,ICHNK)
85-
U_EXT(IJSB:IJLB) = WVENVI%UCUR(KIJS:KIJL,ICHNK)
86-
V_EXT(IJSB:IJLB) = WVENVI%VCUR(KIJS:KIJL,ICHNK)
81+
!$acc loop
82+
DO M = 1, NFRE_RED
83+
WAVNUM_EXT(IJSB:IJLB, M) = WAVNUM(KIJS:KIJL, M,ICHNK)
84+
CGROUP_EXT(IJSB:IJLB, M) = CGROUP(KIJS:KIJL, M,ICHNK)
85+
OMOSNH2KD_EXT(IJSB:IJLB, M) = OMOSNH2KD(KIJS:KIJL, M,ICHNK)
86+
ENDDO
87+
88+
DELLAM1_EXT(IJSB:IJLB) = DELLAM1(KIJS:KIJL,ICHNK)
89+
COSPHM1_EXT(IJSB:IJLB) = COSPHM1(KIJS:KIJL,ICHNK)
90+
DEPTH_EXT(IJSB:IJLB) = DEPTH(KIJS:KIJL,ICHNK)
91+
U_EXT(IJSB:IJLB) = UCUR(KIJS:KIJL,ICHNK)
92+
V_EXT(IJSB:IJLB) = VCUR(KIJS:KIJL,ICHNK)
8793
ENDDO
94+
!$acc end kernels
95+
#ifndef _OPENACC
8896
!$OMP END PARALLEL DO
97+
#endif /*_OPENACC*/
8998

99+
!$acc enter data copyin(WVPRPT_LAND)
100+
!$acc enter data copyin(WVPRPT_LAND%WAVNUM,WVPRPT_LAND%CGROUP,WVPRPT_LAND%OMOSNH2KD)
101+
!$acc data present(WVPRPT_LAND) copyin(BATHYMAX)
90102
!! should be combined into one single data exchange, when we start using this option.... !!!
91103
CALL MPEXCHNG(WAVNUM_EXT, NFRE_RED, 1, 1)
104+
!$acc kernels
92105
WAVNUM_EXT(NSUP+1,1:NFRE_RED) = WVPRPT_LAND%WAVNUM(1:NFRE_RED)
106+
!$acc end kernels
93107

94108
CALL MPEXCHNG(CGROUP_EXT, NFRE_RED, 1, 1)
109+
!$acc kernels
95110
CGROUP_EXT(NSUP+1,1:NFRE_RED) = WVPRPT_LAND%CGROUP(1:NFRE_RED)
111+
!$acc end kernels
96112

97113
CALL MPEXCHNG(OMOSNH2KD_EXT, NFRE_RED, 1, 1)
114+
!$acc kernels
98115
OMOSNH2KD_EXT(NSUP+1,1:NFRE_RED) = WVPRPT_LAND%OMOSNH2KD(1:NFRE_RED)
116+
!$acc end kernels
99117

100118
CALL MPEXCHNG(DELLAM1_EXT, 1, 1, 1)
119+
!$acc kernels
101120
DELLAM1_EXT(NSUP+1) = 0.0_JWRB
121+
!$acc end kernels
102122

103123
CALL MPEXCHNG(COSPHM1_EXT, 1, 1, 1)
124+
!$acc kernels
104125
COSPHM1_EXT(NSUP+1) = 0.0_JWRB
126+
!$acc end kernels
105127

106128
CALL MPEXCHNG(DEPTH_EXT, 1, 1, 1)
129+
!$acc kernels
107130
DEPTH_EXT(NSUP+1) = BATHYMAX
131+
!$acc end kernels
108132

109133
CALL MPEXCHNG(U_EXT, 1, 1, 1)
134+
!$acc kernels
110135
U_EXT(NSUP+1) = 0.0_JWRB
136+
!$acc end kernels
111137

112138
CALL MPEXCHNG(V_EXT, 1, 1, 1)
139+
!$acc kernels
113140
V_EXT(NSUP+1) = 0.0_JWRB
141+
!$acc end kernels
142+
!$acc end data
143+
!$acc exit data delete(WVPRPT_LAND%WAVNUM,WVPRPT_LAND%CGROUP,WVPRPT_LAND%OMOSNH2KD)
144+
!$acc exit data delete(WVPRPT_LAND)
145+
!$acc end data
114146

115147
IF (LHOOK) CALL DR_HOOK('PROENVHALO',1,ZHOOK_HANDLE)
116148

src/ecwam/propag_wam.F90

+15-13
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
! nor does it submit to any jurisdiction.
88
!
99

10-
SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
10+
SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
11+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR)
1112

1213
! ----------------------------------------------------------------------
1314

@@ -67,9 +68,9 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
6768
#include "propdot.intfb.h"
6869

6970
TYPE(WVGRIDGLO), INTENT(IN) :: BLK2GLO
70-
TYPE(ENVIRONMENT), INTENT(IN) :: WVENVI
71-
TYPE(FREQUENCY), INTENT(IN) :: WVPRPT
7271
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NANG, NFRE, NCHNK), INTENT(INOUT) :: FL1
72+
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NFRE, NCHNK), INTENT(IN) :: WAVNUM, CGROUP, OMOSNH2KD
73+
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NCHNK), INTENT(IN) :: DEPTH, DELLAM1, COSPHM1, UCUR, VCUR
7374

7475

7576
INTEGER(KIND=JWIM) :: IJ, K, M, J, II
@@ -97,7 +98,8 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
9798
IF (LHOOK) CALL DR_HOOK('PROPAG_WAM',0,ZHOOK_HANDLE)
9899

99100

100-
!$acc data PRESENT(FL1) CREATE(FL1_EXT,FL3_EXT)
101+
!$acc data present(FL1, WAVNUM, CGROUP, OMOSNH2KD, DEPTH, DELLAM1,COSPHM1,UCUR,VCUR) CREATE(FL1_EXT,FL3_EXT) &
102+
!$acc & create(WAVNUM_EXT,CGROUP_EXT,OMOSNH2KD_EXT,DELLAM1_EXT,COSPHM1_EXT,DEPTH_EXT,UCUR_EXT,VCUR_EXT)
101103
IF (NIBLO > 1) THEN
102104

103105
IJSG = IJFROMCHNK(1,1)
@@ -170,8 +172,8 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
170172

171173
! NEED HALO VALUES
172174
CALL PROENVHALO (NINF, NSUP, &
173-
& WVPRPT, &
174-
& WVENVI, &
175+
& WAVNUM, CGROUP, OMOSNH2KD, &
176+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR, &
175177
& WAVNUM_EXT, CGROUP_EXT, OMOSNH2KD_EXT, &
176178
& DELLAM1_EXT, COSPHM1_EXT, &
177179
& DEPTH_EXT, UCUR_EXT, VCUR_EXT )
@@ -204,8 +206,8 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
204206
IF (LUPDTWGHT) THEN
205207
! NEED HALO VALUES
206208
CALL PROENVHALO (NINF, NSUP, &
207-
& WVPRPT, &
208-
& WVENVI, &
209+
& WAVNUM, CGROUP, OMOSNH2KD, &
210+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR, &
209211
& WAVNUM_EXT, CGROUP_EXT, OMOSNH2KD_EXT, &
210212
& DELLAM1_EXT, COSPHM1_EXT, &
211213
& DEPTH_EXT, UCUR_EXT, VCUR_EXT )
@@ -286,8 +288,8 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
286288

287289
! NEED HALO VALUES
288290
CALL PROENVHALO (NINF, NSUP, &
289-
& WVPRPT, &
290-
& WVENVI, &
291+
& WAVNUM, CGROUP, OMOSNH2KD, &
292+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR, &
291293
& WAVNUM_EXT, CGROUP_EXT, OMOSNH2KD_EXT, &
292294
& DELLAM1_EXT, COSPHM1_EXT, &
293295
& DEPTH_EXT, UCUR_EXT, VCUR_EXT )
@@ -311,8 +313,8 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
311313

312314
! NEED HALO VALUES
313315
CALL PROENVHALO (NINF, NSUP, &
314-
& WVPRPT, &
315-
& WVENVI, &
316+
& WAVNUM, CGROUP, OMOSNH2KD, &
317+
& DEPTH, DELLAM1, COSPHM1, UCUR, VCUR, &
316318
& WAVNUM_EXT, CGROUP_EXT, OMOSNH2KD_EXT, &
317319
& DELLAM1_EXT, COSPHM1_EXT, &
318320
& DEPTH_EXT, UCUR_EXT, VCUR_EXT )
@@ -380,7 +382,7 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WVENVI, WVPRPT, FL1)
380382
ENDIF ! end propagation
381383

382384
ENDIF ! more than one grid point
383-
!$ACC END DATA
385+
!$acc end data
384386

385387
L1STCALL=.FALSE.
386388
LLCHKCFL=.FALSE.

src/ecwam/wamintgr.F90

+3-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ SUBROUTINE WAMINTGR (CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
105105

106106
IF (CDATE == CDTPRA) THEN
107107
TIME0=-WAM_USER_CLOCK()
108-
CALL PROPAG_WAM(BLK2GLO, WVENVI, WVPRPT, FL1)
108+
CALL PROPAG_WAM(BLK2GLO, WVPRPT%WAVNUM, WVPRPT%CGROUP, WVPRPT%OMOSNH2KD, FL1,&
109+
& WVENVI%DEPTH, WVENVI%DELLAM1, WVENVI%COSPHM1, WVENVI%UCUR, WVENVI%VCUR)
110+
! CALL PROPAG_WAM(BLK2GLO, WVENVI, WVPRPT, FL1)
109111
TIME1(1) = TIME1(1) + (TIME0+WAM_USER_CLOCK())*1.E-06
110112
CDATE = CDTPRO
111113
ENDIF

src/ecwam/wamintgr_loki_gpu.F90

+16-7
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,18 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
9494
INTEGER(KIND=JWIM), POINTER, CONTIGUOUS :: MIJ_DPTR(:,:) => NULL()
9595
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: WAVNUM_DPTR(:,:,:) => NULL()
9696
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: CGROUP_DPTR(:,:,:) => NULL()
97+
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: OMOSNH2KD_DPTR(:,:,:) => NULL()
9798
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: CIWA_DPTR(:,:,:) => NULL()
9899
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: CINV_DPTR(:,:,:) => NULL()
99100
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: XK2CG_DPTR(:,:,:) => NULL()
100101
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: STOKFAC_DPTR(:,:,:) => NULL()
101102
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: EMAXDPT_DPTR(:,:) => NULL()
102103
INTEGER(KIND=JWIM), POINTER, CONTIGUOUS :: INDEP_DPTR(:,:) => NULL()
103104
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: DEPTH_DPTR(:,:) => NULL()
105+
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: DELLAM1_DPTR(:,:) => NULL()
106+
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: COSPHM1_DPTR(:,:) => NULL()
107+
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: UCUR_DPTR(:,:) => NULL()
108+
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: VCUR_DPTR(:,:) => NULL()
104109
INTEGER(KIND=JWIM), POINTER, CONTIGUOUS :: IOBND_DPTR(:,:) => NULL()
105110
INTEGER(KIND=JWIM), POINTER, CONTIGUOUS :: IODP_DPTR(:,:) => NULL()
106111
REAL(KIND=JWRB), POINTER, CONTIGUOUS :: CICOVER_DPTR(:,:) => NULL()
@@ -156,17 +161,21 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
156161

157162
CALL SRC_CONTRIBS%INIT(FL1=FL1)
158163
CALL SRC_CONTRIBS%UPDATE_DEVICE(FL1=FL1_DPTR)
159-
!$acc data present(FL1_DPTR)
164+
CALL WVPRPT_FIELD%INIT(WAVNUM=WVPRPT%WAVNUM, CGROUP=WVPRPT%CGROUP, OMOSNH2KD=WVPRPT%OMOSNH2KD)
165+
CALL WVPRPT_FIELD%UPDATE_DEVICE(WAVNUM=WAVNUM_DPTR, CGROUP=CGROUP_DPTR, OMOSNH2KD=OMOSNH2KD_DPTR)
166+
CALL WVENVI_FIELD%INIT(DEPTH=WVENVI%DEPTH, DELLAM1=WVENVI%DELLAM1, COSPHM1=WVENVI%COSPHM1, UCUR=WVENVI%UCUR, VCUR=WVENVI%VCUR)
167+
CALL WVENVI_FIELD%UPDATE_DEVICE(DEPTH=DEPTH_DPTR, DELLAM1=DELLAM1_DPTR, COSPHM1=COSPHM1_DPTR, UCUR=UCUR_DPTR, VCUR=VCUR_DPTR)
168+
!$acc data present(FL1_DPTR, WAVNUM_DPTR, CGROUP_DPTR, OMOSNH2KD_DPTR, DEPTH_DPTR, DELLAM1_DPTR, COSPHM1_DPTR, UCUR_DPTR, VCUR_DPTR)
160169

161170
IF (CDATE == CDTPRA) THEN
162171
TIME0=-WAM_USER_CLOCK()
163-
CALL PROPAG_WAM(BLK2GLO, WVENVI, WVPRPT, FL1_DPTR)
172+
CALL PROPAG_WAM(BLK2GLO, WAVNUM_DPTR, CGROUP_DPTR, OMOSNH2KD_DPTR, FL1_DPTR,&
173+
& DEPTH_DPTR, DELLAM1_DPTR, COSPHM1_DPTR, UCUR_DPTR, VCUR_DPTR)
164174
TIME1(1) = TIME1(1) + (TIME0+WAM_USER_CLOCK())*1.E-06
165175
CDATE = CDTPRO
166176
ENDIF
167177
!$acc end data
168178

169-
170179
!* RETRIEVING NEW FORCING FIELDS IF NEEDED.
171180
! ----------------------------------------
172181
CALL NEWWIND(CDTIMP, CDATEWH, LLNEWFILE, &
@@ -180,9 +189,9 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
180189
IF (LLSOURCE) THEN
181190

182191
TIME2=-WAM_USER_CLOCK()
183-
CALL WVPRPT_FIELD%INIT(WAVNUM=WVPRPT%WAVNUM, CGROUP=WVPRPT%CGROUP, CIWA=WVPRPT%CIWA, CINV=WVPRPT%CINV, XK2CG=WVPRPT%XK2CG, &
192+
CALL WVPRPT_FIELD%INIT(CIWA=WVPRPT%CIWA, CINV=WVPRPT%CINV, XK2CG=WVPRPT%XK2CG, &
184193
& STOKFAC=WVPRPT%STOKFAC)
185-
CALL WVENVI_FIELD%INIT(EMAXDPT=WVENVI%EMAXDPT, INDEP=WVENVI%INDEP, DEPTH=WVENVI%DEPTH, IOBND=WVENVI%IOBND, IODP=WVENVI%IODP)
194+
CALL WVENVI_FIELD%INIT(EMAXDPT=WVENVI%EMAXDPT, INDEP=WVENVI%INDEP, IOBND=WVENVI%IOBND, IODP=WVENVI%IODP)
186195
CALL FF_NOW_FIELD%INIT(AIRD=FF_NOW%AIRD, WDWAVE=FF_NOW%WDWAVE, CICOVER=FF_NOW%CICOVER, WSWAVE=FF_NOW%WSWAVE, &
187196
& WSTAR=FF_NOW%WSTAR, UFRIC=FF_NOW%UFRIC, TAUW=FF_NOW%TAUW, TAUWDIR=FF_NOW%TAUWDIR, &
188197
& Z0M=FF_NOW%Z0M, Z0B=FF_NOW%Z0B, CHRNCK=FF_NOW%CHRNCK, CITHICK=FF_NOW%CITHICK)
@@ -198,9 +207,9 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
198207

199208
!$loki update_device
200209

201-
CALL WVPRPT_FIELD%UPDATE_DEVICE(WAVNUM=WAVNUM_DPTR, CGROUP=CGROUP_DPTR, CIWA=CIWA_DPTR, CINV=CINV_DPTR, XK2CG=XK2CG_DPTR, &
210+
CALL WVPRPT_FIELD%UPDATE_DEVICE(CIWA=CIWA_DPTR, CINV=CINV_DPTR, XK2CG=XK2CG_DPTR, &
202211
& STOKFAC=STOKFAC_DPTR)
203-
CALL WVENVI_FIELD%UPDATE_DEVICE(EMAXDPT=EMAXDPT_DPTR, INDEP=INDEP_DPTR, DEPTH=DEPTH_DPTR, IOBND=IOBND_DPTR, IODP=IODP_DPTR)
212+
CALL WVENVI_FIELD%UPDATE_DEVICE(EMAXDPT=EMAXDPT_DPTR, INDEP=INDEP_DPTR, IOBND=IOBND_DPTR, IODP=IODP_DPTR)
204213
CALL FF_NOW_FIELD%UPDATE_DEVICE(AIRD=AIRD_DPTR, WDWAVE=WDWAVE_DPTR, CICOVER=CICOVER_DPTR, WSWAVE=WSWAVE_DPTR, &
205214
& WSTAR=WSTAR_DPTR, UFRIC=UFRIC_DPTR, TAUW=TAUW_DPTR, TAUWDIR=TAUWDIR_DPTR, Z0M=Z0M_DPTR, Z0B=Z0B_DPTR, &
206215
& CHRNCK=CHRNCK_DPTR, CITHICK=CITHICK_DPTR)

0 commit comments

Comments
 (0)