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 1554 for trunk/NEMO/OPA_SRC/SBC – NEMO

Ignore:
Timestamp:
2009-07-29T12:30:10+02:00 (15 years ago)
Author:
ctlod
Message:

add the possibility to bound the sea surface salinity damping term erp(:,:), see ticket: #499

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/sbcssr.F90

    r1524 r1554  
    3535   INTEGER ::   nn_sstr, nn_sssr   ! SST/SSS restoring indicator 
    3636   REAL(wp) ::  dqdt   , deds      ! restoring factor on SST and SSS 
     37   LOGICAL ::   ln_sssr_bnd        ! flag to bound erp term  
     38   REAL(wp) ::  rn_sssr_bnd        ! ABS(Max./Min.) value of erp term [mm/day] 
    3739 
    3840   REAL(wp) , ALLOCATABLE, DIMENSION(:) ::   buffer   ! Temporary buffer for exchange 
     
    7072      REAL(wp) ::   zqrp     ! local scalar for heat flux damping 
    7173      REAL(wp) ::   zsrp     ! local scalar for unit conversion of deds factor 
     74      REAL(wp) ::   zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 
    7275      INTEGER  ::   ierror   ! return error code 
    7376      !! 
    7477      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    7578      TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read 
    76       NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, dqdt, deds, sn_sst, sn_sss 
     79      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, dqdt, deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd 
    7780      !!---------------------------------------------------------------------- 
    7881      ! 
     
    103106            WRITE(numout,*) '          dQ/dT (restoring magnitude on SST)     dqdt    = ', dqdt, ' W/m2/K' 
    104107            WRITE(numout,*) '          dE/dS (restoring magnitude on SST)     deds    = ', deds, ' mm/day' 
     108            WRITE(numout,*) '          flag to bound erp term             ln_sssr_bnd = ', ln_sssr_bnd 
     109            WRITE(numout,*) '          ABS(Max./Min.) erp threshold       rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 
    105110         ENDIF 
    106111 
     
    172177            ELSEIF( nn_sssr == 2 ) THEN               !* Salinity damping term (volume flux, emp and emps) 
    173178               zsrp = deds / rday                                     ! from [mm/day] to [kg/m2/s] 
     179               zerp_bnd = rn_sssr_bnd / rday                          !       -              -     
    174180!CDIR COLLAPSE 
    175181               DO jj = 1, jpj 
     
    178184                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj) )   & 
    179185                        &        / ( sss_m(ji,jj) + 1.e-20   ) 
     186                     IF( ln_sssr_bnd )   zerp = SIGN( 1., zerp ) * MIN( zerp_bnd, ABS(zerp) ) 
    180187                     emp (ji,jj) = emp (ji,jj) + zerp 
    181188                     emps(ji,jj) = emps(ji,jj) + zerp 
Note: See TracChangeset for help on using the changeset viewer.