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 9462 for branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90 – NEMO

Ignore:
Timestamp:
2018-04-06T17:48:30+02:00 (6 years ago)
Author:
jcastill
Message:

Rearrange some lines so that it merges with operational branches

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r8115 r9462  
    335335      ! --------------------------------- 
    336336      ! 
    337       SELECT CASE ( nn_bc_surf ) 
    338       ! 
    339       CASE ( 0 )             ! Dirichlet case 
    340          IF( ln_phioc ) THEN  ! wave induced mixing case with forced/coupled fields 
     337      IF( ln_phioc ) THEN 
     338         SELECT CASE ( nn_bc_surf ) 
     339         ! 
     340         CASE ( 0 )             ! Dirichlet case 
    341341            IF( nn_wmix==jp_janssen ) THEN 
    342342               ! First level 
     
    367367               ! 
    368368            ENDIF 
    369          ELSE                 ! wave induced mixing case with default values 
    370             en(:,:,1) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default)**(2._wp/3._wp) 
    371             en(:,:,1) = MAX(en(:,:,1), rn_emin)  
    372             z_elem_a(:,:,1) = en(:,:,1) 
    373             z_elem_c(:,:,1) = 0._wp 
    374             z_elem_b(:,:,1) = 1._wp 
    375             !  
    376             ! One level below 
    377             en(:,:,2) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default * ((zhsro(:,:)+fsdepw(:,:,2)) & 
    378                 &            / zhsro(:,:) )**(1.5_wp*ra_sf))**(2._wp/3._wp) 
    379             en(:,:,2) = MAX(en(:,:,2), rn_emin ) 
    380             z_elem_a(:,:,2) = 0._wp  
    381             z_elem_c(:,:,2) = 0._wp 
    382             z_elem_b(:,:,2) = 1._wp 
    383             ! 
    384             ! 
    385          ENDIF 
    386       CASE ( 1 )             ! Neumann boundary condition on d(e)/dz 
    387          IF( ln_phioc ) THEN   ! Shear free case: d(e)/dz=Fw with forced/coupled fields 
     369         CASE ( 1 )             ! Neumann boundary condition on d(e)/dz 
    388370            IF( nn_wmix==jp_janssen ) THEN 
    389371               ! Dirichlet conditions at k=1 
     
    416398               ! 
    417399            ENDIF 
    418          ELSE                  ! Shear free case: d(e)/dz=Fw with default values 
    419             ! Dirichlet conditions at k=1 
    420             en(:,:,1)       = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default)**(2._wp/3._wp) 
    421             en(:,:,1)       = MAX(en(:,:,1), rn_emin)       
    422             z_elem_a(:,:,1) = en(:,:,1) 
    423             z_elem_c(:,:,1) = 0._wp 
    424             z_elem_b(:,:,1) = 1._wp 
    425             ! 
    426             ! at k=2, set de/dz=Fw 
    427             !cbr 
    428             z_elem_b(:,:,2) = z_elem_b(:,:,2) +  z_elem_a(:,:,2) ! Remove z_elem_a from z_elem_b 
    429             z_elem_a(:,:,2) = 0._wp 
    430             zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1.-exp(-rtrans_default*fsdept(:,:,1)/zhsro(:,:)) )) 
    431             zflxs(:,:)      = rsbc_tke2 * ustars2(:,:)**1.5_wp * zkar(:,:) & 
    432                  &                      * ((zhsro(:,:)+fsdept(:,:,1))/zhsro(:,:) )**(1.5_wp*ra_sf) 
    433  
    434             en(:,:,2) = en(:,:,2) + zflxs(:,:)/fse3w(:,:,2) 
    435             ! 
    436             ! 
    437          ENDIF 
     400         END SELECT 
     401      ELSE 
     402      SELECT CASE ( nn_bc_surf ) 
     403      ! 
     404      CASE ( 0 )             ! Dirichlet case 
     405      ! First level 
     406      en(:,:,1) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default)**(2._wp/3._wp) 
     407      en(:,:,1) = MAX(en(:,:,1), rn_emin)  
     408      z_elem_a(:,:,1) = en(:,:,1) 
     409      z_elem_c(:,:,1) = 0._wp 
     410      z_elem_b(:,:,1) = 1._wp 
     411      !  
     412      ! One level below 
     413      en(:,:,2) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default * ((zhsro(:,:)+fsdepw(:,:,2)) & 
     414          &            / zhsro(:,:) )**(1.5_wp*ra_sf))**(2._wp/3._wp) 
     415      en(:,:,2) = MAX(en(:,:,2), rn_emin ) 
     416      z_elem_a(:,:,2) = 0._wp  
     417      z_elem_c(:,:,2) = 0._wp 
     418      z_elem_b(:,:,2) = 1._wp 
     419      ! 
     420      ! 
     421      CASE ( 1 )             ! Neumann boundary condition on d(e)/dz 
     422      ! Dirichlet conditions at k=1 
     423      en(:,:,1)       = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1_default)**(2._wp/3._wp) 
     424      en(:,:,1)       = MAX(en(:,:,1), rn_emin)       
     425      z_elem_a(:,:,1) = en(:,:,1) 
     426      z_elem_c(:,:,1) = 0._wp 
     427      z_elem_b(:,:,1) = 1._wp 
     428      ! 
     429      ! at k=2, set de/dz=Fw 
     430      !cbr 
     431      z_elem_b(:,:,2) = z_elem_b(:,:,2) +  z_elem_a(:,:,2) ! Remove z_elem_a from z_elem_b 
     432      z_elem_a(:,:,2) = 0._wp 
     433      zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1.-exp(-rtrans_default*fsdept(:,:,1)/zhsro(:,:)) )) 
     434      zflxs(:,:)      = rsbc_tke2 * ustars2(:,:)**1.5_wp * zkar(:,:) & 
     435           &                      * ((zhsro(:,:)+fsdept(:,:,1))/zhsro(:,:) )**(1.5_wp*ra_sf) 
     436 
     437      en(:,:,2) = en(:,:,2) + zflxs(:,:)/fse3w(:,:,2) 
     438      ! 
     439      ! 
    438440      END SELECT 
     441      ENDIF ! ln_phioc 
    439442 
    440443      ! Bottom boundary condition on tke 
Note: See TracChangeset for help on using the changeset viewer.