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 7421 for branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/LDF – NEMO

Ignore:
Timestamp:
2016-12-01T18:10:41+01:00 (8 years ago)
Author:
flavoni
Message:

#1811 merge dev_CNRS_MERATOR_2016 with dev_merge_2016 branch

Location:
branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/LDF
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/LDF/ldfc1d_c2d.F90

    r6140 r7421  
    5959      REAL(wp) ::   zw    , zdep2   !   -      - 
    6060      !!---------------------------------------------------------------------- 
     61 
     62      IF(lwp) THEN 
     63         WRITE(numout,*) 
     64         WRITE(numout,*) '   ldf_c1d : set a given profile to eddy diffusivity/viscosity coefficients' 
     65         WRITE(numout,*) '   ~~~~~~~' 
     66      ENDIF 
    6167 
    6268      ! initialization of the profile 
     
    130136      ! 
    131137      IF(lwp) THEN 
    132          WRITE(numout,*) 'ldf_c2d :     aht = rn_aht0 *  max(e1,e2)/e_equator     (  laplacian) ' 
    133          WRITE(numout,*) '~~~~~~~       or  = rn_bht0 * [max(e1,e2)/e_equator]**3 (bilaplacian)' 
     138         WRITE(numout,*) 
     139         WRITE(numout,*) '   ldf_c2d :     aht = rn_aht0 *  max(e1,e2)/e_equator     (  laplacian) ' 
     140         WRITE(numout,*) '   ~~~~~~~       or  = rn_bht0 * [max(e1,e2)/e_equator]**3 (bilaplacian)' 
    134141         WRITE(numout,*) 
    135142      ENDIF 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90

    r7403 r7421  
    298298      ! 
    299299      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    300       REAL(wp) ::   zaht, zaht_min, z1_f20       ! local scalar 
    301       !!---------------------------------------------------------------------- 
    302       ! 
    303       IF( nn_aei_ijk_t == 21 ) THEN       ! eddy induced velocity coefficients 
     300      REAL(wp) ::   zaht, zahf, zaht_min, z1_f20       ! local scalar 
     301      !!---------------------------------------------------------------------- 
     302      ! 
     303      IF( ln_ldfeiv .AND. nn_aei_ijk_t == 21 ) THEN       ! eddy induced velocity coefficients 
    304304         !                                ! =F(growth rate of baroclinic instability) 
    305305         !                                ! max value rn_aeiv_0 ; decreased to 0 within 20N-20S 
    306306         CALL ldf_eiv( kt, rn_aeiv_0, aeiu, aeiv ) 
    307          IF(lwp .AND. kt<=nit000+20 )   WRITE(numout,*) ' kt , ldf_eiv appel', kt 
    308307      ENDIF 
    309308      ! 
     
    314313         !                                             !   max value rn_aht_0 (rn_aeiv_0 if nn_aei_ijk_t=21) 
    315314         !                                             !   increase to rn_aht_0 within 20N-20S 
    316          IF( nn_aei_ijk_t /= 21 ) THEN 
    317             CALL ldf_eiv( kt, rn_aht_0, ahtu, ahtv ) 
    318             IF(lwp .AND. kt<=nit000+20 )   WRITE(numout,*) ' kt , ldf_eiv appel  2', kt 
    319          ELSE 
     315         IF( ln_ldfeiv .AND. nn_aei_ijk_t == 21 ) THEN   ! use the already computed aei. 
    320316            ahtu(:,:,1) = aeiu(:,:,1) 
    321317            ahtv(:,:,1) = aeiv(:,:,1) 
    322             IF(lwp .AND. kt<=nit000+20 )   WRITE(numout,*) ' kt , ahtu=aeiu', kt 
     318         ELSE                                            ! compute aht.  
     319            CALL ldf_eiv( kt, rn_aht_0, ahtu, ahtv ) 
    323320         ENDIF 
    324321         ! 
     
    327324         DO jj = 1, jpj 
    328325            DO ji = 1, jpi 
    329                zaht = ( 1._wp -  MIN( 1._wp , ABS( ff(ji,jj) * z1_f20 ) ) ) * ( rn_aht_0 - zaht_min ) 
     326               !!gm CAUTION : here we assume lat/lon grid in 20deg N/S band (like all ORCA cfg) 
     327               !!     ==>>>   The Coriolis value is identical for t- & u_points, and for v- and f-points 
     328               zaht = ( 1._wp -  MIN( 1._wp , ABS( ff_t(ji,jj) * z1_f20 ) ) ) * ( rn_aht_0 - zaht_min ) 
     329               zahf = ( 1._wp -  MIN( 1._wp , ABS( ff_f(ji,jj) * z1_f20 ) ) ) * ( rn_aht_0 - zaht_min ) 
    330330               ahtu(ji,jj,1) = (  MAX( zaht_min, ahtu(ji,jj,1) ) + zaht  ) * umask(ji,jj,1)     ! min value zaht_min 
    331                ahtv(ji,jj,1) = (  MAX( zaht_min, ahtv(ji,jj,1) ) + zaht  ) * vmask(ji,jj,1)     ! increase within 20S-20N 
     331               ahtv(ji,jj,1) = (  MAX( zaht_min, ahtv(ji,jj,1) ) + zahf  ) * vmask(ji,jj,1)     ! increase within 20S-20N 
    332332            END DO 
    333333         END DO 
     
    555555      END DO 
    556556 
    557 !!gm      IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN   ! ORCA R2 
    558 !!gm         DO jj = 2, jpjm1 
    559 !!gm            DO ji = fs_2, fs_jpim1   ! vector opt. 
    560 !!gm               ! Take the minimum between aeiw and 1000 m2/s over shelves (depth shallower than 650 m) 
    561 !!gm               IF( mbkt(ji,jj) <= 20 )   zaeiw(ji,jj) = MIN( zaeiw(ji,jj), 1000. ) 
    562 !!gm            END DO 
    563 !!gm         END DO 
    564 !!gm      ENDIF 
    565  
    566557      !                                         !==  Bound on eiv coeff.  ==! 
    567558      z1_f20 = 1._wp / (  2._wp * omega * sin( rad * 20._wp )  ) 
    568559      DO jj = 2, jpjm1 
    569560         DO ji = fs_2, fs_jpim1   ! vector opt. 
    570             zzaei = MIN( 1._wp, ABS( ff(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj)       ! tropical decrease 
     561            zzaei = MIN( 1._wp, ABS( ff_t(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj)       ! tropical decrease 
    571562            zaeiw(ji,jj) = MIN( zzaei , paei0 )                                  ! Max value = paei0 
    572563         END DO 
Note: See TracChangeset for help on using the changeset viewer.