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 1938 for branches/DEV_R1821_Rivers/NEMO/OPA_SRC/DOM/closea.F90 – NEMO

Ignore:
Timestamp:
2010-06-16T16:34:29+02:00 (14 years ago)
Author:
rfurner
Message:

rnf has been separated from emp and emps. Also temperature and salinity of runoff can be specified, and runoff can be added to a user specified depth

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_R1821_Rivers/NEMO/OPA_SRC/DOM/closea.F90

    r1601 r1938  
    180180      INTEGER                     ::   ji, jj, jc, jn   ! dummy loop indices 
    181181      REAL(wp)                    ::   zze2 
    182       REAL(wp), DIMENSION (jpncs) ::   zemp 
     182      REAL(wp), DIMENSION (jpncs) ::   zfwf  
     183  
     184      REAL(wp), DIMENSION (jpi,jpj)       ::   fwf              !: fresh water flux,for volume: emp-rnf   
     185      REAL(wp), DIMENSION (jpi,jpj)       ::   fwfs             !: fresh water flux, for conc/dilution effect: emps-rnf   
    183186      !!---------------------------------------------------------------------- 
    184187      ! 
     
    216219      !                                                   !--------------------! 
    217220      !                                                   !  update emp, emps  ! 
    218       zemp = 0.e0                                         !--------------------! 
     221      zfwf = 0.e0                                         !--------------------! 
    219222      DO jc = 1, jpncs 
    220223         DO jj = ncsj1(jc), ncsj2(jc) 
    221224            DO ji = ncsi1(jc), ncsi2(jc) 
    222                zemp(jc) = zemp(jc) + e1t(ji,jj) * e2t(ji,jj) * emp(ji,jj) * tmask_i(ji,jj) 
     225               zfwf(jc) = zfwf(jc) + e1t(ji,jj) * e2t(ji,jj) * ( emp(ji,jj)-rnf(ji,jj) ) * tmask_i(ji,jj)  
    223226            END DO   
    224227         END DO  
    225228      END DO 
    226       IF( lk_mpp )   CALL mpp_sum ( zemp(:) , jpncs )       ! mpp: sum over all the global domain 
     229      IF( lk_mpp )   CALL mpp_sum ( zfwf(:) , jpncs )       ! mpp: sum over all the global domain 
    227230 
    228231      IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN      ! Black Sea case for ORCA_R2 configuration 
    229          zze2    = ( zemp(3) + zemp(4) ) / 2. 
    230          zemp(3) = zze2 
    231          zemp(4) = zze2 
     232         zze2    = ( zfwf(3) + zfwf(4) ) / 2. 
     233         zfwf(3) = zze2 
     234         zfwf(4) = zze2 
    232235      ENDIF 
    233236 
     
    236239         IF( ncstt(jc) == 0 ) THEN  
    237240            ! water/evap excess is shared by all open ocean 
    238             emp (:,:) = emp (:,:) + zemp(jc) / surf(jpncs+1) 
    239             emps(:,:) = emps(:,:) + zemp(jc) / surf(jpncs+1) 
     241            emp (:,:) = emp (:,:) + zfwf(jc) / surf(jpncs+1) 
     242            emps(:,:) = emps(:,:) + zfwf(jc) / surf(jpncs+1) 
    240243         ELSEIF( ncstt(jc) == 1 ) THEN  
    241244            ! Excess water in open sea, at outflow location, excess evap shared 
    242             IF ( zemp(jc) <= 0.e0 ) THEN  
     245            IF ( zfwf(jc) <= 0.e0 ) THEN  
    243246                DO jn = 1, ncsnr(jc) 
    244247                  ji = mi0(ncsir(jc,jn)) 
     
    246249                  IF (      ji > 1 .AND. ji < jpi   & 
    247250                      .AND. jj > 1 .AND. jj < jpj ) THEN  
    248                       emp (ji,jj) = emp (ji,jj) + zemp(jc) /   & 
     251                      emp (ji,jj) = emp (ji,jj) + zfwf(jc) /   & 
    249252                         (FLOAT(ncsnr(jc)) * e1t(ji,jj) * e2t(ji,jj)) 
    250                       emps(ji,jj) = emps(ji,jj) + zemp(jc) /   & 
     253                      emps(ji,jj) = emps(ji,jj) + zfwf(jc) /   & 
    251254                          (FLOAT(ncsnr(jc)) * e1t(ji,jj) * e2t(ji,jj)) 
    252255                  END IF  
    253256                END DO  
    254257            ELSE  
    255                 emp (:,:) = emp (:,:) + zemp(jc) / surf(jpncs+1) 
    256                 emps(:,:) = emps(:,:) + zemp(jc) / surf(jpncs+1) 
     258                emp (:,:) = emp (:,:) + zfwf(jc) / surf(jpncs+1) 
     259                emps(:,:) = emps(:,:) + zfwf(jc) / surf(jpncs+1) 
    257260            ENDIF 
    258261         ELSEIF( ncstt(jc) == 2 ) THEN  
     
    263266                  ji = mi0(ncsir(jc,jn)) 
    264267                  jj = mj0(ncsjr(jc,jn)) ! Location of outflow in open ocean 
    265                   emp (ji,jj) = emp (ji,jj) + zemp(jc)   & 
     268                  emp (ji,jj) = emp (ji,jj) + zfwf(jc)   & 
    266269                      / (FLOAT(ncsnr(jc)) *  e1t(ji,jj) * e2t(ji,jj) ) 
    267                   emps(ji,jj) = emps(ji,jj) + zemp(jc)   & 
     270                  emps(ji,jj) = emps(ji,jj) + zfwf(jc)   & 
    268271                      / (FLOAT(ncsnr(jc)) *  e1t(ji,jj) * e2t(ji,jj) ) 
    269272                END DO  
     
    273276         DO jj = ncsj1(jc), ncsj2(jc) 
    274277            DO ji = ncsi1(jc), ncsi2(jc) 
    275                emp (ji,jj) = emp (ji,jj) - zemp(jc) / surf(jc) 
    276                emps(ji,jj) = emps(ji,jj) - zemp(jc) / surf(jc) 
     278               emp (ji,jj) = emp (ji,jj) - zfwf(jc) / surf(jc) 
     279               emps(ji,jj) = emps(ji,jj) - zfwf(jc) / surf(jc) 
    277280            END DO   
    278281         END DO  
     
    280283      END DO  
    281284      ! 
    282       CALL lbc_lnk( emp , 'T', 1. ) 
    283       CALL lbc_lnk( emps, 'T', 1. ) 
     285      fwf(:,:)  = emp(:,:)  - rnf(:,:)   
     286      fwfs(:,:) = emps(:,:) - rnf(:,:)   
     287      CALL lbc_lnk( fwf , 'T', 1. )  
     288      CALL lbc_lnk( fwfs, 'T', 1. )  
    284289      ! 
    285290   END SUBROUTINE sbc_clo 
Note: See TracChangeset for help on using the changeset viewer.