id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
808,VERY IMPORTANT: Corrected parallel bug in regrid.F and bulk_flux.F,arango,,"Correct couple parallel bugs:
* '''regrid.F''': In src:ticket:803, I introduced the processing of EAST longitude.s A parallel was [https://www.myroms.org/forum/viewtopic.php?f=19&t=5128 reported] for a specific partition. The problem was in the range of the J- and I-loops. We need to have instead:
{{{
IF (EastLon) THEN
DO j=LBj,UBj
DO i=LBi,UBi
MyXout(i,j)=MODULO(Xout(i,j), 360.0_r8) ! range [0 360]
IF ((MyXout(i,j).eq.0.0_r8).and. &
& (Xout(i,j).gt.0.0_r8)) MyXout(i,j)=360.0_r8
END DO
END DO
ELSE
DO j=LBj,UBj
DO i=LBi,UBi
MyXout(i,j)=Xout(i,j) ! range [-180 180]
END DO
END DO
END IF
}}}
instead of the '''Imin:Imax''' and '''Jmin:Jmax''' ranges. This was only correct for parallel I/O. In serial I/O these ranges are the global values for the domain. We need to use instead '''LBi:UBi''' and '''LBj:UBj'''. Many thanks to Ivica Janekovic for reporting this problem and providing good clues. Also, many thanks to John Warner reminding me about the global values.
* '''bulk_flux.F''': Corrected a parallel bug when activating '''WIND_MINUS_CURRENT'''. We need to have instead:
{{{
#ifdef WIND_MINUS_CURRENT
!
! Modify near-surface (2m or 10m) effective winds by subtracting the
! ocean surface current (J Wilkin). See:
!
! Bye, J.A.T. and J.-O. Wolff, 1999: Atmosphere-ocean momentum exchange
! in general circulation models. J. Phys. Oceanogr. 29, 671-691.
!
DO j=Jstr-1,Jend+1
DO i=Istr-1,MIN(Iend+1,Lm(ng))
Uair(i,j)=Uwind(i,j)- &
& 0.5_r8*(u(i,j,N(ng),nrhs)+u(i+1,j,N(ng),nrhs))
END DO
IF (DOMAIN(ng)%Eastern_Edge(tile)) THEN
Uair(Iend+1,j)=Uwind(Iend+1,j)-u(Iend,j,N(ng),nrhs)
END IF
END DO
DO i=Istr-1,Iend+1
DO j=Jstr-1,MIN(Jend+1,Mm(ng))
Vair(i,j)=Vwind(i,j)- &
& 0.5_r8*(v(i,j,N(ng),nrhs)+v(i,j+1,N(ng),nrhs))
END DO
IF (DOMAIN(ng)%Northern_Edge(tile)) THEN
Vair(i,Jend+1)=Vwind(i,Jend+1)-v(i,Jend,N(ng),nrhs)
END IF
END DO
#else
!
! Load wind components to local arrays.
!
DO j=Jstr-1,Jend+1
DO i=Istr-1,Iend+1
Uair(i,j)=Uwind(i,j)
Vair(i,j)=Vwind(i,j)
END DO
END DO
#endif
}}}
* '''globaldefs.h''': Add logic for runnin '''WET_DRY''' applications in single precision:
{{{
/*
** Single intrinsic Fortran functions.
*/
#ifdef SINGLE_PRECISION
# define DSIGN SIGN
#endif
}}}
since there is not a generic Fortran function to do '''SIGN''' regardless of the floating-point precision. Many thanks to Ivica Janekovic for [https://www.myroms.org/forum/viewtopic.php?f=19&t=5033&p=19795#p19795 bqringing] it to my attention.
",bug,closed,major,Release ROMS/TOMS 3.7,Nonlinear,3.7,Fixed,,