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 12372 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traatf.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T13:37:21+01:00 (4 years ago)
Author:
acc
Message:

Branch 2019/dev_r11943_MERGE_2019. A few changes to align the option 1 branch with the trunk@12371. These include a fix for #2317 (changes for LFRA freshwater correction) which was done at changeset 12279 on the trunk. These affect dynatf.F90, traatf.F90 and isfdynatf.F90 and pass SETTE but change results in all tests that use freshwater input (expected). All other changes on the trunk are present (where applicable) up to and including changeset 12367 (Solve #2380)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traatf.F90

    r12353 r12372  
    252252      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
    253253      REAL(wp) ::   zfact, zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d    ! local scalar 
    254       REAL(wp) ::   zfact2, ze3t_b, ze3t_n, ze3t_a, ze3t_f, ze3t_d   !   -      - 
     254      REAL(wp) ::   zfact2, ze3t_b, ze3t_n, ze3t_a, ze3t_f, ze3t_d, zscale  !   -      - 
    255255      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrd_atf 
    256256      !!---------------------------------------------------------------------- 
     
    295295            ztc_f  = ztc_n  + atfp * ztc_d 
    296296            ! 
     297            ! Add asselin correction on scale factors: 
     298            zscale = tmask(ji,jj,jk) * e3t(ji,jj,jk,Kmm) / ( ht(ji,jj) + 1._wp - ssmask(ji,jj) )  
     299            ze3t_f = ze3t_f - zfact2 * zscale * ( emp_b(ji,jj) - emp(ji,jj) )  
     300            IF ( ll_rnf ) ze3t_f = ze3t_f + zfact2 * zscale * (    rnf_b(ji,jj) -    rnf(ji,jj) )  
     301            IF ( ll_isf ) THEN 
     302               IF ( ln_isfcav_mlt ) ze3t_f = ze3t_f - zfact2 * zscale * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) 
     303               IF ( ln_isfpar_mlt ) ze3t_f = ze3t_f - zfact2 * zscale * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) 
     304            ENDIF 
     305            ! 
    297306            IF( jk == mikt(ji,jj) ) THEN           ! first level  
    298                ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj)    - emp(ji,jj) ) 
    299307               ztc_f  = ztc_f  - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 
    300308            ENDIF 
    301             IF( ln_rnf_depth ) THEN 
    302                ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 
    303                IF( jk <= nk_rnf(ji,jj)  ) THEN 
    304                   ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj)   )  ) & 
    305               &                            * ( e3t(ji,jj,jk,Kmm) / h_rnf(ji,jj) )  
    306                ENDIF 
    307             ELSE 
    308                IF( jk == 1 ) THEN           ! first level  
    309                   ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj)    - rnf(ji,jj)   ) )  
    310                ENDIF 
    311             ENDIF 
    312             ! 
    313309            ! 
    314310            ! solar penetration (temperature only) 
     
    331327                     ztc_f  = ztc_f  - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 
    332328                        &                     * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) 
    333                      ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )           & 
    334                         &                     * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) 
    335329                  END IF 
    336330                  ! level partially include in Losch_2008 ice shelf boundary layer  
     
    338332                     ztc_f  = ztc_f  - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) )  & 
    339333                            &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 
    340                      ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )            & 
    341                         &                     * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 
    342334                  END IF 
    343335               END IF 
     
    349341                     ztc_f  = ztc_f  - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) )  & 
    350342                            &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) 
    351                      ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )            & 
    352                         &                     * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) 
    353343                  END IF 
    354344                  ! level partially include in Losch_2008 ice shelf boundary layer  
     
    356346                     ztc_f  = ztc_f  - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) )  & 
    357347                            &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 
    358                      ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )            & 
    359                         &                     * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 
    360348                  END IF 
    361349               END IF 
     
    367355                  IF ( ln_rstart .AND. kt == nit000+1 ) THEN 
    368356                     ztc_f  = ztc_f  + zfact1 * risfcpl_tsc(ji,jj,jk,jn) * r1_e1e2t(ji,jj) 
     357                     ! Shouldn't volume increment be spread according thanks to zscale  ? 
    369358                     ze3t_f = ze3t_f - zfact1 * risfcpl_vol(ji,jj,jk   ) * r1_e1e2t(ji,jj) 
    370359                  END IF 
Note: See TracChangeset for help on using the changeset viewer.