Changeset 7027


Ignore:
Timestamp:
2016-10-13T18:19:43+02:00 (4 years ago)
Author:
hadcv
Message:

Rewrite case 4 of nn_htau for tinkering.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_nn_etau_revision/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r5446 r7027  
    757757      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    758758      INTEGER ::   ios 
     759      REAL(wp) :: zmin, zmax_h_n, zmax_h_s, zmax_s, zmax_scale 
    759760      !! 
    760761      NAMELIST/namzdf_tke/ rn_ediff, rn_ediss , rn_ebb , rn_emin  ,   & 
     
    829830         CASE( 3 )                                 ! F(latitude) : 0.5m to 15m poleward of 20 degrees 
    830831            htau(:,:) = MAX(  0.5_wp, MIN( 15._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(:,:) ) ) )   ) 
    831          CASE( 4 )                                 ! F(latitude) : 0.5m to 10m/30m poleward of 13/40 degrees north/south 
    832             DO jj = 2, jpjm1 
    833                DO ji = fs_2, fs_jpim1   ! vector opt. 
    834                   IF( gphit(ji,jj) <= 0._wp ) THEN 
    835                      htau(ji,jj) = MAX(  0.5_wp, MIN( 30._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(ji,jj) ) ) )   ) 
    836                   ELSE 
    837                      htau(ji,jj) = MAX(  0.5_wp, MIN( 10._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(ji,jj) ) ) )   ) 
    838                   ENDIF 
    839                END DO 
    840             END DO 
     832         CASE( 4 )                                 ! F(latitude) : single sine curve per hemisphere 
     833            zmax_scale = 1._wp                     ! Amount to scale the maximum value by 
     834            zmin = 0.5_wp                          ! The minimum value 
     835            zmax_h_n = 10._wp * zmax_scale         ! The hard maximum value (cutoff imposed on sine curve) 
     836            zmax_h_s = 30._wp * zmax_scale 
     837            zmax_s = 45._wp * zmax_scale           ! The soft maximum value (peak of sine curve) 
     838 
     839            htau(:,:) =                   MAX( zmin, MIN( zmax_h_n, zmax_s * ABS( SIN( rpi/180._wp * gphit(:,:) ) ) ) ) 
     840            WHERE( gphit < 0._wp ) htau = MAX( zmin, MIN( zmax_h_s, zmax_s * ABS( SIN( rpi/180._wp * gphit      ) ) ) ) 
    841841         CASE ( 5 )                                ! F(latitude) : 0.5m to 10m poleward of 13 degrees north/south, 
    842842            DO jj = 2, jpjm1                       !               10m to 30m between 30/45 degrees south 
Note: See TracChangeset for help on using the changeset viewer.