Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (823 - 825 of 964)

Ticket Owner Reporter Resolution Summary
#808 arango Fixed VERY IMPORTANT: Corrected parallel bug in regrid.F and bulk_flux.F
Description

Correct couple parallel bugs:

  • regrid.F: In src:ticket:803, I introduced the processing of EAST longitude.s A parallel was 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 bqringing it to my attention.
#809 arango Fixed IMPORTANT: Corrected bug in ana_srflux.h
Description

Finally, I have time to browse the literature, Googling, and write a Matlab script to check a bug in ana_srflx.h as discussed in the Forum Indeed, the 15.0 factor used to compute the zenith is incorrect. We need to have instead:

        zenith=cff1+cff2*COS(Hangle-lonr(i,j)*deg2rad)

In my Matlab script, I compared against a WRF-ROMS coupled solution for the US West Coast at a particular point in the grid:

https://www.myroms.org/trac/swrad.png

Here, the X-axis is the time since initialization and it is in GMT time zone. We need to subtract 8 hours for local Pacific Standard Time (PST) to analyze the results. As you can see, the WRF-ROMS coupled solution values agree well with the red curve that computes zenith with updated above equation. I am now satisfied that I proved to myself that it is a bug.

Many thanks to all that brought this bug to my attention.

#811 arango Done Added the tangent linear and adjoint version of nesting.F
Description

We have been working on the tangent linear and adjoint version of the nesting algorithms for a while. The backward time-stepping logic for the adjoint of nesting grid is very tricky, and it is not entirely correct. We will continue debugging.

Accidentally, I modified other files that are needed for this development in this repository. It needed to go to one of my research repositories. I am restoring those files to the previous version r959 to avoid any confusion and interference with other algorithms. We need further testing to check that other algorithms work well with the changes. I apologize for the inconvenience. Those files are:

ROMS/Modules/mod_nesting.F
ROMS/Drivers/tl_ocean.h
ROMS/Drivers/ad_ocean.h
ROMS/Adjoint/ad_step3d_t.F
ROMS/Adjoint/ad_initial.F
ROMS/Adjoint/ad_u2dbc_im.F
ROMS/Adjoint/ad_v2dbc_im.F
ROMS/Adjoint/ad_main3d.F
ROMS/Tangent/tl_main3d.F
ROMS/Tangent/tl_step3d_t.F
ROMS/Tangent/tl_u2dbc_im.F
ROMS/Tangent/tl_initial.F
ROMS/Tangent/tl_v2dbc_im.F
ROMS/Utility/set_contact.F
ROMS/Utility/checkadj.F
ROMS/Utility/ntimestep.F
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.