Changeset 8880


Ignore:
Timestamp:
2017-12-01T17:40:23+01:00 (3 years ago)
Author:
davestorkey
Message:

UKMO/dev_r8600_nn_etau_options branch: commit code.

File:
1 edited

Legend:

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

    r8875 r8880  
    784784      IF( nn_mxl  < 0   .OR.  nn_mxl  > 3 )   CALL ctl_stop( 'bad flag: nn_mxl is  0, 1 or 2 ' ) 
    785785      IF( nn_pdl  < 0   .OR.  nn_pdl  > 1 )   CALL ctl_stop( 'bad flag: nn_pdl is  0 or 1    ' ) 
    786       IF( nn_htau < 0   .OR.  nn_htau > 1 )   CALL ctl_stop( 'bad flag: nn_htau is 0, 1 or 2 ' ) 
     786      IF( nn_htau < 0 .OR. nn_htau == 2 .OR. nn_htau > 5 )   CALL ctl_stop( 'bad flag: nn_htau is 0, 1, 3, 4 or 5 ' ) 
    787787      IF( nn_etau == 3 .AND. .NOT. ln_cpl )   CALL ctl_stop( 'nn_etau == 3 : HF taum only known in coupled mode' ) 
    788788 
     
    796796      !                               !* depth of penetration of surface tke 
    797797      IF( nn_etau /= 0 ) THEN       
     798         htau(:,:) = 0._wp 
    798799         SELECT CASE( nn_htau )             ! Choice of the depth of penetration 
    799800         CASE( 0 )                                 ! constant depth penetration (here 10 meters) 
     
    801802         CASE( 1 )                                 ! F(latitude) : 0.5m to 30m poleward of 40 degrees 
    802803            htau(:,:) = MAX(  0.5_wp, MIN( 30._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(:,:) ) ) )   )             
     804         CASE( 3 )                                 ! F(latitude) : 0.5m to 15m poleward of 20 degrees 
     805            htau(:,:) = MAX(  0.5_wp, MIN( 15._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(:,:) ) ) )   ) 
     806         CASE( 4 )                                 ! F(latitude) : 0.5m to 10m/30m poleward of 13/40 degrees north/south 
     807            DO jj = 2, jpjm1 
     808               DO ji = fs_2, fs_jpim1   ! vector opt. 
     809                  IF( gphit(ji,jj) <= 0._wp ) THEN 
     810                     htau(ji,jj) = MAX(  0.5_wp, MIN( 30._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(ji,jj) ) ) )   ) 
     811                  ELSE 
     812                     htau(ji,jj) = MAX(  0.5_wp, MIN( 10._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(ji,jj) ) ) )   ) 
     813                  ENDIF 
     814               END DO 
     815            END DO 
     816         CASE ( 5 )                                ! F(latitude) : 0.5m to 10m poleward of 13 degrees north/south, 
     817            DO jj = 2, jpjm1                       !               10m to 30m between 30/45 degrees south 
     818               DO ji = fs_2, fs_jpim1   ! vector opt. 
     819                  IF( gphit(ji,jj) <= -30._wp ) THEN 
     820                     htau(ji,jj) = MAX(  10._wp, MIN( 30._wp, 55._wp* ABS( SIN( rpi/120._wp * ( gphit(ji,jj) + 23._wp ) ) ) )   ) 
     821                  ELSE 
     822                     htau(ji,jj) = MAX(  0.5_wp, MIN( 10._wp, 45._wp* ABS( SIN( rpi/180._wp * gphit(ji,jj) ) ) )   ) 
     823                  ENDIF 
     824               END DO 
     825            END DO 
    803826         END SELECT 
     827         ! 
    804828      ENDIF 
    805829      !                               !* set vertical eddy coef. to the background value 
Note: See TracChangeset for help on using the changeset viewer.