New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 2350 for branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90 – NEMO

Ignore:
Timestamp:
2010-11-01T17:44:01+01:00 (14 years ago)
Author:
rfurner
Message:

correction to river scheme to restore conservation of heat and salt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r2287 r2350  
    191191      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    192192      REAL(wp) ::   z1_rau0   ! local scalar 
    193       !!---------------------------------------------------------------------- 
     193      REAL(wp) ::   zfact     ! local scalar 
     194      !!---------------------------------------------------------------------- 
     195      ! 
     196      zfact = 0.5e0 
    194197      ! 
    195198      z1_rau0 = 1.e0 / rau0 
     
    204207                  !                          ! apply the runoff input flow 
    205208                  DO jk = 1, nk_rnf(ji,jj) 
    206                      phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - rnf(ji,jj) * z1_rau0 / h_rnf(ji,jj) 
     209                     phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * z1_rau0 / h_rnf(ji,jj) 
    207210                  END DO 
    208211               END DO 
     
    212215               DO ji = 1, jpi 
    213216                  DO jk = 1, nk_rnf(ji,jj) 
    214                      phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - rnf(ji,jj) * z1_rau0 / h_rnf(ji,jj) 
     217                     phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * z1_rau0 / h_rnf(ji,jj) 
    215218                  END DO 
    216219               END DO 
     
    218221         ENDIF 
    219222      ELSE                       !==   runoff put only at the surface   ==! 
    220          phdivn(:,:,1) = phdivn(:,:,1) - rnf(:,:) * z1_rau0 / fse3t(:,:,1) 
     223         IF( lk_vvl ) THEN              ! variable volume case 
     224            h_rnf(:,:) = fse3t(:,:,1)   ! recalculate h_rnf to be depth of top box 
     225         ENDIF 
     226         phdivn(:,:,1) = phdivn(:,:,1) - ( rnf(:,:) + rnf_b(:,:) ) * zfact * z1_rau0 / fse3t(:,:,1) 
    221227      ENDIF 
    222228      ! 
Note: See TracChangeset for help on using the changeset viewer.