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 7256 for branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90 – NEMO

Ignore:
Timestamp:
2016-11-18T08:18:45+01:00 (8 years ago)
Author:
cbricaud
Message:

phaze NEMO routines in CRS branch with nemo_v3_6_STABLE branch at rev 7213 (09-09-2016) (merge -r 5519:7213 )

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r6772 r7256  
    2828   USE sbc_oce         ! surface boundary condition: ocean 
    2929   USE sbcrnf          ! river runoffs 
     30   USE sbcisf          ! ice shelf melting/freezing 
    3031   USE zdf_oce         ! ocean vertical mixing 
    3132   USE domvvl          ! variable volume 
     
    4647   USE timing          ! Timing 
    4748#if defined key_agrif 
    48    USE agrif_opa_update 
    4949   USE agrif_opa_interp 
    5050#endif 
     
    112112      ! Update after tracer on domain lateral boundaries 
    113113      !  
     114#if defined key_agrif 
     115      CALL Agrif_tra                     ! AGRIF zoom boundaries 
     116#endif 
     117      ! 
    114118      CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1._wp )      ! local domain boundaries  (T-point, unchanged sign) 
    115119      CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1._wp ) 
     
    117121#if defined key_bdy  
    118122      IF( lk_bdy )   CALL bdy_tra( kt )  ! BDY open boundaries 
    119 #endif 
    120 #if defined key_agrif 
    121       CALL Agrif_tra                     ! AGRIF zoom boundaries 
    122123#endif 
    123124  
     
    150151         ELSE                 ;   CALL tra_nxt_fix( kt, nit000,         'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
    151152         ENDIF 
    152       ENDIF  
    153       ! 
    154 #if defined key_agrif 
    155       ! Update tracer at AGRIF zoom boundaries 
    156       IF( .NOT.Agrif_Root() )    CALL Agrif_Update_Tra( kt )      ! children only 
    157 #endif       
    158       ! 
    159       ! trends computation 
     153      ENDIF      
     154      ! 
     155     ! trends computation 
    160156      IF( l_trdtra ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt      
    161157         DO jk = 1, jpkm1 
     
    281277 
    282278      !!      
    283       LOGICAL  ::   ll_tra_hpg, ll_traqsr, ll_rnf   ! local logical 
     279      LOGICAL  ::   ll_tra_hpg, ll_traqsr, ll_rnf, ll_isf   ! local logical 
    284280      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
    285281      REAL(wp) ::   zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d    ! local scalar 
     
    297293         ll_traqsr  = ln_traqsr        ! active  tracers case  and  solar penetration 
    298294         ll_rnf     = ln_rnf           ! active  tracers case  and  river runoffs 
     295         IF (nn_isf .GE. 1) THEN  
     296            ll_isf = .TRUE.            ! active  tracers case  and  ice shelf melting/freezing 
     297         ELSE 
     298            ll_isf = .FALSE. 
     299         END IF 
    299300      ELSE                           
    300301         ll_tra_hpg = .FALSE.          ! passive tracers case or NO semi-implicit hpg 
    301302         ll_traqsr  = .FALSE.          ! active  tracers case and NO solar penetration 
    302303         ll_rnf     = .FALSE.          ! passive tracers or NO river runoffs 
     304         ll_isf     = .FALSE.          ! passive tracers or NO ice shelf melting/freezing 
    303305      ENDIF 
    304306      ! 
     
    323325                  ztc_f  = ztc_n  + atfp * ztc_d 
    324326                  ! 
    325                   IF( jk == 1 ) THEN           ! first level  
    326                      ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) + rnf(ji,jj) - rnf_b(ji,jj) ) 
     327                  IF( jk == mikt(ji,jj) ) THEN           ! first level  
     328                     ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj)    - emp(ji,jj)   )  & 
     329                            &                   - (rnf_b(ji,jj)    - rnf(ji,jj)   )  & 
     330                            &                   + (fwfisf_b(ji,jj) - fwfisf(ji,jj))  ) 
    327331                     ztc_f  = ztc_f  - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 
    328332                  ENDIF 
    329333 
    330                   IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr )   &     ! solar penetration (temperature only) 
     334                  ! solar penetration (temperature only) 
     335                  IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr )                            &  
    331336                     &     ztc_f  = ztc_f  - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) )  
    332337 
    333                   IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) )   &            ! river runoffs 
     338                  ! river runoff 
     339                  IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) )                                          & 
    334340                     &     ztc_f  = ztc_f  - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) &  
    335341                     &                              * fse3t_n(ji,jj,jk) / h_rnf(ji,jj) 
     342 
     343                  ! ice shelf 
     344                  IF( ll_isf ) THEN 
     345                     ! level fully include in the Losch_2008 ice shelf boundary layer 
     346                     IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) )                          & 
     347                        ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
     348                               &                 * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 
     349                     ! level partially include in Losch_2008 ice shelf boundary layer  
     350                     IF ( jk == misfkb(ji,jj) )                                                   & 
     351                        ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
     352                               &                 * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 
     353                  END IF 
    336354 
    337355                  ze3t_f = 1.e0 / ze3t_f 
Note: See TracChangeset for help on using the changeset viewer.