Changes between Initial Version and Version 1 of Ticket #947


Ignore:
Timestamp:
07/27/23 04:27:08 (12 months ago)
Author:
arango
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #947

    • Property ResolutionFixed
    • Property Status newclosed
  • Ticket #947 – Description

    initial v1  
    1 Forum post https://mobile.myroms.org/forum/viewtopic.php?p=24462#p24462 by Parker MacCready's student Aurora Leeson identifies what appears to be a bug in the processing of LuvSrc / LwSrc options in the particular combination that a user has a mix of BOTH LwSrc and LuvSrc sources (which is functionality we recently allowed following discussion with John Warner) AND not all the LuvSrc sources are in the u-direction (it is a quirky combination to trigger an error).
     1Parker !MacCready's student Aurora Leeson [https://mobile.myroms.org/forum/viewtopic.php?p=24462#p24462 identifies] in the ROMS Forum what appears to be a bug in the processing of **!LuvSrc** / **!LwSrc** options in the particular combination that a user has a mix of ''BOTH'' **!LwSrc** and **!LuvSrc** sources (functionality we recently allowed following discussion with John Warner) ''AND'' not all the **!LuvSrc** sources are in the u-direction (it is a quirky combination to trigger an error).
    22
    3 At line 1295 in step3d_uv.F
    4  
    5  ELSE
     3In **step3d_uv.F**, we need to have instead:
    64
    7 should be
     5{{{
     6!
     7!-----------------------------------------------------------------------
     8! Apply momentum transport point sources (like river runoff), if any.
     9!-----------------------------------------------------------------------
     10!
     11      IF (LuvSrc(ng)) THEN
     12        DO is=1,Nsrc(ng)
     13          i=SOURCES(ng)%Isrc(is)
     14          j=SOURCES(ng)%Jsrc(is)
     15          IF (((IstrR.le.i).and.(i.le.IendR)).and.                      &
     16     &        ((JstrR.le.j).and.(j.le.JendR))) THEN
     17            IF (INT(SOURCES(ng)%Dsrc(is)).eq.0) THEN
     18              DO k=1,N(ng)
     19                cff1=1.0_r8/(on_u(i,j)*                                 &
     20     &                       0.5_r8*(z_w(i-1,j,k)-z_w(i-1,j,k-1)+       &
     21     &                               z_w(i  ,j,k)-z_w(i  ,j,k-1)))
     22                u(i,j,k,nnew)=SOURCES(ng)%Qsrc(is,k)*cff1
     23              END DO
     24            ELSE IF (INT(SOURCES(ng)%Dsrc(is)).eq.1) THEN
     25              DO k=1,N(ng)
     26                cff1=1.0_r8/(om_v(i,j)*                                 &
     27     &                       0.5_r8*(z_w(i,j-1,k)-z_w(i,j-1,k-1)+       &
     28     &                               z_w(i,j  ,k)-z_w(i,j  ,k-1)))
     29                v(i,j,k,nnew)=SOURCES(ng)%Qsrc(is,k)*cff1
     30              END DO
     31            END IF
     32          END IF
     33        END DO
     34      END IF
     35}}}
     36Notice that when **Dsrc(is) = 2**, no contribution is added to **u** and **v**. That is done as volume vertical influx in **omega.F**.
    837
    9  ELSEIF (INT(SOURCES(ng)%Dsrc(is)).eq.1)
    10 
    11 with, implicitly, the Dsrc==2 is do nothing.
    12 
    13 Presently, Dsrc==2 sources get activated here as uv-sources. This is because logical LuvSrc(ng) is global, and the encompassing
    14 
    15  IF (LuvSrc(ng))
    16 
    17 is true is ANY(LuvSrc), not specifically THIS source.
    18 
     38Propagated change to the **TLM**, **RPM**, and **ADM** versions of **step3d_uv.F**.