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 7193 for branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90 – NEMO

Ignore:
Timestamp:
2016-11-04T15:23:32+01:00 (7 years ago)
Author:
jcastill
Message:

Update latest changes to the INGV branch, fix small bug (read ln_zdfqiao from the namelist)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r7168 r7193  
    5656   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: usd2d, vsd2d 
    5757   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     :: usd3d, vsd3d, wsd3d  
     58   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     :: usd3dt, vsd3dt 
    5859   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: zusd2dt, zvsd2dt 
    5960 
     
    9495            ztransp = 2.0_wp*rpi*swh(ji,jj)**2.0_wp/(16.0_wp*MAX(wmp(ji,jj),0.0000001_wp)) 
    9596            ! Stokes surface speed 
    96             zsp0 = SQRT( sf_sd(jp_usd)%fnow(ji,jj,1)**2 + sf_sd(jp_vsd)%fnow(ji,jj,1)**2) 
     97            zsp0 = SQRT( zusd2dt(ji,jj)**2 + zvsd2dt(ji,jj)**2) 
    9798            ! Wavenumber scale 
    9899            zk = ABS(zsp0)/MAX(ABS(5.97_wp*ztransp),0.0000001_wp) 
     
    101102            END DO 
    102103         END DO 
    103  
     104         ! 
     105         DO jj = 1, jpj 
     106            DO ji = 1, jpi 
     107               usd3dt(ji,jj,jk) = zfac(ji,jj) * zusd2dt(ji,jj) * tmask(ji,jj,jk)  
     108               vsd3dt(ji,jj,jk) = zfac(ji,jj) * zvsd2dt (ji,jj) * tmask(ji,jj,jk)  
     109            END DO  
     110         END DO  
     111      END DO  
     112      ! Into the U and V Grid  
     113      DO jk = 1, jpkm1  
    104114         DO jj = 1, jpjm1 
    105115            DO ji = 1, jpim1 
    106                ! Into the U and V Grid  
    107                zus = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
    108                   &                                + zfac(ji+1,jj) * tmask(ji+1,jj,1) ) 
    109                zvs = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
    110                   &                                + zfac(ji,jj+1) * tmask(ji,jj+1,1) ) 
    111                usd2d(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zusd2dt(ji,jj) * tmask(ji,jj,1) & 
    112                   &                                         + zusd2dt(ji+1,jj) * tmask(ji+1,jj,1) ) 
    113                vsd2d(ji,jj) = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zvsd2dt(ji,jj) * tmask(ji,jj,1) & 
    114                   &                                         + zvsd2dt(ji,jj+1) * tmask(ji,jj+1,1) ) 
    115                usd3d(ji,jj,jk) = usd2d(ji,jj) * zus 
    116                vsd3d(ji,jj,jk) = vsd2d(ji,jj) * zvs 
     116               usd3d(ji,jj,jk) =   0.5 *  umask(ji,jj,jk)  *        & 
     117                               &  (usd3dt(ji,jj,jk) + usd3dt(ji+1,jj,jk)) 
     118               vsd3d(ji,jj,jk) =  0.5 *  vmask(ji,jj,jk)  *           & 
     119                               &  (vsd3dt(ji,jj,jk) + vsd3dt(ji,jj+1,jk)) 
    117120            END DO 
    118121         END DO 
     
    170173      DO jj = 1, jpj 
    171174         DO ji = 1, jpi 
    172             tsd2d(ji,jj) = ((zusd2dt(ji,jj) * tmask(ji,jj,1))**2.0  + & 
    173             &               (zvsd2dt(ji,jj) * tmask(ji,jj,1))**2.0)**0.5 
     175            tsd2d(ji,jj) = SQRT( zusd2dt(ji,jj)**2 + zvsd2dt(ji,jj)**2) 
    174176         END DO 
    175177      END DO 
     
    287289            ALLOCATE( usd2d(jpi,jpj),vsd2d(jpi,jpj) ) 
    288290            ALLOCATE( usd3d(jpi,jpj,jpk),vsd3d(jpi,jpj,jpk),wsd3d(jpi,jpj,jpk) ) 
     291            ALLOCATE( usd3dt(jpi,jpj,jpk),vsd3dt(jpi,jpj,jpk) ) 
    289292            ALLOCATE( swh(jpi,jpj), wmp(jpi,jpj) ) 
    290293            ALLOCATE( zusd2dt(jpi,jpj), zvsd2dt(jpi,jpj) ) 
     
    292295            vsd3d(:,:,:) = 0._wp   ;   vsd2d(:,:) = 0._wp   ;  
    293296            wsd3d(:,:,:) = 0._wp   ; 
     297            usd3dt(:,:,:) = 0._wp  ;   vsd3dt(:,:,:) = 0._wp   ; 
    294298            swh  (:,:)   = 0._wp   ;    wmp (:,:) = 0._wp ; 
    295299            IF ( ln_zdfqiao ) THEN     !==  Vertical mixing enhancement using Qiao,2010  ==! 
Note: See TracChangeset for help on using the changeset viewer.