| 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 |