247 |
do k = 1,nr |
do k = 1,nr |
248 |
do j = jmin,jmax |
do j = jmin,jmax |
249 |
do i = imin,imax |
do i = imin,imax |
250 |
|
#ifdef ALLOW_AUTODIFF_OPENAD |
251 |
|
diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) + |
252 |
|
& xx_diffkr(i,j,k,bi,bj) + |
253 |
|
& tmpfld3d(i,j,k,bi,bj) |
254 |
|
#else |
255 |
diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) + |
diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) + |
256 |
& tmpfld3d(i,j,k,bi,bj) |
& tmpfld3d(i,j,k,bi,bj) |
257 |
|
#endif |
258 |
enddo |
enddo |
259 |
enddo |
enddo |
260 |
enddo |
enddo |
277 |
do k = 1,nr |
do k = 1,nr |
278 |
do j = jmin,jmax |
do j = jmin,jmax |
279 |
do i = imin,imax |
do i = imin,imax |
280 |
|
#ifdef ALLOW_AUTODIFF_OPENAD |
281 |
kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) + |
kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) + |
282 |
|
& xx_kapgm(i,j,k,bi,bj) + |
283 |
& tmpfld3d(i,j,k,bi,bj) |
& tmpfld3d(i,j,k,bi,bj) |
284 |
|
#else |
285 |
|
kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) + |
286 |
|
& tmpfld3d(i,j,k,bi,bj) |
287 |
|
#endif |
288 |
enddo |
enddo |
289 |
enddo |
enddo |
290 |
enddo |
enddo |
393 |
enddo |
enddo |
394 |
#endif |
#endif |
395 |
|
|
396 |
#ifdef ALLOW_EDTAUX_CONTROL |
#ifdef ALLOW_EDDYPSI_CONTROL |
397 |
c-- zonal eddy stress : edtaux |
c-- zonal eddy streamfunction : eddyPsiX |
398 |
il=ilnblnk( xx_edtaux_file ) |
il=ilnblnk( xx_edtaux_file ) |
399 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
400 |
& xx_edtaux_file(1:il),'.',optimcycle |
& xx_edtaux_file(1:il),'.',optimcycle |
406 |
do k = 1,nr |
do k = 1,nr |
407 |
do j = jmin,jmax |
do j = jmin,jmax |
408 |
do i = imin,imax |
do i = imin,imax |
409 |
eddyTauX(i,j,k,bi,bj) = eddyTauX(i,j,k,bi,bj) + |
eddyPsiX(i,j,k,bi,bj) = eddyPsiX(i,j,k,bi,bj) + |
410 |
& fCori(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj) |
& tmpfld3d(i,j,k,bi,bj) |
411 |
enddo |
enddo |
412 |
enddo |
enddo |
413 |
enddo |
enddo |
414 |
enddo |
enddo |
415 |
enddo |
enddo |
416 |
#endif |
c-- meridional eddy streamfunction : eddyPsiY |
|
|
|
|
#ifdef ALLOW_EDTAUY_CONTROL |
|
|
c-- meridional eddy stress : edtauy |
|
417 |
il=ilnblnk( xx_edtauy_file ) |
il=ilnblnk( xx_edtauy_file ) |
418 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
419 |
& xx_edtauy_file(1:il),'.',optimcycle |
& xx_edtauy_file(1:il),'.',optimcycle |
425 |
do k = 1,nr |
do k = 1,nr |
426 |
do j = jmin,jmax |
do j = jmin,jmax |
427 |
do i = imin,imax |
do i = imin,imax |
428 |
eddyTauY(i,j,k,bi,bj) = eddyTauY(i,j,k,bi,bj) + |
eddyPsiY(i,j,k,bi,bj) = eddyPsiY(i,j,k,bi,bj) + |
429 |
& fCoriG(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj) |
& tmpfld3d(i,j,k,bi,bj) |
430 |
enddo |
enddo |
431 |
enddo |
enddo |
432 |
enddo |
enddo |
595 |
_EXCH_XY_R8( bottomdragfld, mythid ) |
_EXCH_XY_R8( bottomdragfld, mythid ) |
596 |
#endif |
#endif |
597 |
|
|
598 |
#if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL)) |
#ifdef ALLOW_EDDYPSI_CONTROL |
599 |
CALL EXCH_UV_XYZ_RS(eddyTauX,eddyTauY,.TRUE.,myThid) |
CALL EXCH_UV_XYZ_RS(eddyPsiX,eddyPsiY,.TRUE.,myThid) |
|
#elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL)) |
|
|
STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL' |
|
600 |
#endif |
#endif |
601 |
|
|
602 |
#ifdef ALLOW_UVEL0_CONTROL |
#ifdef ALLOW_UVEL0_CONTROL |