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 2128 for branches/devukmo2010/NEMO/OPA_SRC/TRA – NEMO

Ignore:
Timestamp:
2010-09-28T14:29:51+02:00 (14 years ago)
Author:
rfurner
Message:

merged branches OBS, ASM, Rivers, BDY & mixed_dynldf ready for vn3.3 merge

Location:
branches/devukmo2010/NEMO/OPA_SRC/TRA
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/devukmo2010/NEMO/OPA_SRC/TRA/tradmp.F90

    r1601 r2128  
    4747   LOGICAL, PUBLIC            ::   lk_tradmp = .TRUE.     !: internal damping flag 
    4848#endif 
     49   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   strdmp   !: damping salinity trend (psu/s) 
     50   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   ttrdmp   !: damping temperature trend (Centigrade/s) 
    4951   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   resto    !: restoring coeff. on T and S (s-1) 
    5052    
     
    9193      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    9294      !! 
     95      REAL(wp) ::   zta, zsa       ! temporary scalars 
    9396      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    9497      !!---------------------------------------------------------------------- 
     
    107110            DO jj = 2, jpjm1 
    108111               DO ji = fs_2, fs_jpim1   ! vector opt. 
    109                   ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
    110                   sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     112                  zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
     113                  zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     114                  ! add the trends to the general tracer trends 
     115                  ta(ji,jj,jk) = ta(ji,jj,jk) + zta 
     116                  sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 
     117                  ! save the salinity trend (used in asmtrj) 
     118                  strdmp(ji,jj,jk) = zsa 
     119                  ttrdmp(ji,jj,jk) = zta 
    111120               END DO 
    112121            END DO 
     
    118127               DO ji = fs_2, fs_jpim1   ! vector opt. 
    119128                  IF( avt(ji,jj,jk) <= 5.e-4 ) THEN 
    120                      ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
    121                      sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     129                     zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
     130                     zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     131                  ELSE 
     132                     zta = 0.e0 
     133                     zsa = 0.e0    
    122134                  ENDIF 
     135                  ! add the trends to the general tracer trends 
     136                  ta(ji,jj,jk) = ta(ji,jj,jk) + zta 
     137                  sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 
     138                  ! save the salinity trend (used in asmtrj) 
     139                  strdmp(ji,jj,jk) = zsa 
     140                  ttrdmp(ji,jj,jk) = zta 
    123141               END DO 
    124142            END DO 
     
    130148               DO ji = fs_2, fs_jpim1   ! vector opt. 
    131149                  IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    132                      ta(ji,jj,jk) = ta(ji,jj,jk) + resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
    133                      sa(ji,jj,jk) = sa(ji,jj,jk) + resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     150                     zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tb(ji,jj,jk) ) 
     151                     zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - sb(ji,jj,jk) ) 
     152                  ELSE 
     153                     zta = 0.e0 
     154                     zsa = 0.e0    
    134155                  ENDIF 
     156                  ! add the trends to the general tracer trends 
     157                  ta(ji,jj,jk) = ta(ji,jj,jk) + zta 
     158                  sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 
     159                  ! save the salinity trend (used in asmtrj) 
     160                  strdmp(ji,jj,jk) = zsa 
     161                  ttrdmp(ji,jj,jk) = zta 
    135162               END DO 
    136163            END DO 
     
    199226         &   CALL ctl_stop( 'no temperature and/or salinity data define key_dtatem and key_dtasal' ) 
    200227 
     228      strdmp(:,:,:) = 0.e0       ! internal damping salinity trend (used in asmtrj) 
     229      ttrdmp(:,:,:) = 0.e0 
    201230      !                          ! Damping coefficients initialization 
    202231      IF( lzoom ) THEN   ;   CALL dtacof_zoom 
  • branches/devukmo2010/NEMO/OPA_SRC/TRA/trasbc.F90

    r1892 r2128  
    2121   USE in_out_manager  ! I/O manager 
    2222   USE prtctl          ! Print control 
     23   USE sbcrnf          ! River runoff   
     24   USE sbcmod          ! ln_rnf   
    2325 
    2426   IMPLICIT NONE 
     
    103105      INTEGER, INTENT(in) ::   kt     ! ocean time-step index 
    104106      !! 
    105       INTEGER  ::   ji, jj                   ! dummy loop indices 
    106       REAL(wp) ::   zta, zsa, zsrau, zse3t   ! temporary scalars 
     107      INTEGER  ::   ji, jj, jk           ! dummy loop indices   
     108      REAL(wp) ::   zta, zsa             ! temporary scalars, adjustment to temperature and salinity   
     109      REAL(wp) ::   zata, zasa           ! temporary scalars, calculations of automatic change to temp & sal due to vvl (done elsewhere)   
     110      REAL(wp) ::   zsrau, zse3t, zdep   ! temporary scalars, 1/density, 1/height of box, 1/height of effected water column   
     111      REAL(wp) ::   zdheat, zdsalt       ! total change of temperature and salinity   
    107112      !!---------------------------------------------------------------------- 
    108113 
     
    125130      IF( .NOT.ln_traqsr )   qsr(:,:) = 0.e0   ! no solar radiation penetration 
    126131 
    127       ! Concentration dillution effect on (t,s) 
     132      ! Concentration dilution effect on (t,s) due to evapouration, precipitation and qns, but not river runoff   
    128133      DO jj = 2, jpj 
    129134         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    132137#endif 
    133138            IF( lk_vvl) THEN 
    134                zta = ro0cpr * qns(ji,jj) * zse3t &                   ! temperature : heat flux 
    135                 &    - emp(ji,jj) * zsrau * tn(ji,jj,1)  * zse3t     ! & cooling/heating effet of EMP flux 
     139               zta =  ro0cpr * qns(ji,jj) * zse3t &                  ! temperature : heat flux  
     140                &    - emp(ji,jj) * zsrau * tn(ji,jj,1) * zse3t      ! & cooling/heating effet of EMP flux  
    136141               zsa = ( emps(ji,jj) - emp(ji,jj) ) & 
    137142                &                 * zsrau * sn(ji,jj,1)  * zse3t     ! concent./dilut. effect due to sea-ice  
    138143                                                                     ! melt/formation and (possibly) SSS restoration 
    139144            ELSE 
    140                zta = ro0cpr * qns(ji,jj) * zse3t     ! temperature : heat flux 
    141                zsa = emps(ji,jj) * zsrau * sn(ji,jj,1)   * zse3t     ! salinity :  concent./dilut. effect 
     145               zta =  ro0cpr * qns(ji,jj) * zse3t                    ! temperature : heat flux  
     146               zsa =  emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t      ! salinity :  concent./dilut. effect  
    142147            ENDIF 
    143148            ta(ji,jj,1) = ta(ji,jj,1) + zta                          ! add the trend to the general tracer trend 
     
    145150         END DO 
    146151      END DO 
     152 
     153      IF ( ln_rnf ) THEN   
     154 
     155      ! Effect on (t,s) due to river runoff (dilution effect automatically applied via vertical tracer advection)  
     156        DO jj=1,jpj   
     157           DO ji=1,jpi   
     158              zdep = 1. / rnf_dep(ji,jj)   
     159              zse3t= 1. / fse3t(ji,jj,1)   
     160 
     161              IF ( rnf(ji,jj) .gt. 0.0 ) THEN 
     162                 ! ammend t and s due to direct tracer flux 
     163                 IF ( rnf_tmp(ji,jj) == -999 )   rnf_tmp(ji,jj)=tn(ji,jj,1)        ! if not specified set runoff temp to be sst 
     164                 DO jk=1, rnf_mod_dep(ji,jj) 
     165                    ta(ji,jj,jk) = ta(ji,jj,jk) + rnf_tmp(ji,jj) * rnf(ji,jj) * zsrau * zdep 
     166                    sa(ji,jj,jk) = sa(ji,jj,jk) + rnf_sal(ji,jj) * rnf(ji,jj) * zsrau * zdep 
     167                 ENDDO 
     168              ELSEIF (rnf(ji,jj) .lt. 0.) THEN   !! for use in baltic when flow is out of domain, want no change in temp and sal 
     169                 ! negate concentration/dilution effect from traadv, as the tracer leaves domain 
     170                 DO jk=1, rnf_mod_dep(ji,jj) 
     171                    ta(ji,jj,jk) = ta(ji,jj,jk) + tn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 
     172                    sa(ji,jj,jk) = sa(ji,jj,jk) + sn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 
     173                 ENDDO 
     174              ENDIF 
     175 
     176           ENDDO   
     177        ENDDO   
     178 
     179      ENDIF   
    147180 
    148181      IF( l_trdtra ) THEN      ! save the sbc trends for diagnostic 
Note: See TracChangeset for help on using the changeset viewer.