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 2299 – NEMO

Changeset 2299


Ignore:
Timestamp:
2010-10-20T12:14:24+02:00 (14 years ago)
Author:
cbricaud
Message:

rename variables to be doctor compliant and remove non-used variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r2293 r2299  
    5959   REAL(wp) ::   rn_charn      = 2.e+5_wp     ! Charnock constant for surface breaking waves mixing : 1400. (standard) or 2.e5 (Stacey value) 
    6060   REAL(wp) ::   rn_crban      = 100._wp      ! Craig and Banner constant for surface breaking waves mixing 
    61    REAL(wp) ::   rn_cm_sf      = 0.73_wp      ! Shear free turbulence parameters 
    62    REAL(wp) ::   rn_a_sf       = -2.0_wp      ! Must be negative -2 < rn_a_sf < -1  
    63    REAL(wp) ::   rn_l_sf       =  0.2_wp      ! 0 <rn_l_sf<vkarmn     
    64    REAL(wp) ::   rn_ghmin      = -0.28 
    65    REAL(wp) ::   rn_gh0        = 0.0329 
    66    REAL(wp) ::   rn_ghcri      = 0.03 
    67    REAL(wp) ::   rn_a1         =  0.92_wp 
    68    REAL(wp) ::   rn_a2         =  0.74_wp 
    69    REAL(wp) ::   rn_b1         = 16.60_wp 
    70    REAL(wp) ::   rn_b2         = 10.10_wp          
    71    REAL(wp) ::   rn_e1         =  1.80_wp          
    72    REAL(wp) ::   rn_e2         =  1.33_wp          
    73    REAL(wp) ::   rn_l1         =  0.107_wp 
    74    REAL(wp) ::   rn_l2         =  0.0032_wp 
    75    REAL(wp) ::   rn_l3         =  0.0864_wp 
    76    REAL(wp) ::   rn_l4         =  0.12_wp 
    77    REAL(wp) ::   rn_l5         = 11.9_wp 
    78    REAL(wp) ::   rn_l6         =  0.4_wp 
    79    REAL(wp) ::   rn_l7         =  0.0_wp 
    80    REAL(wp) ::   rn_l8         =  0.48_wp 
    81    REAL(wp) ::   rn_m1         =  0.127_wp 
    82    REAL(wp) ::   rn_m2         =  0.00336_wp 
    83    REAL(wp) ::   rn_m3         =  0.0906_wp 
    84    REAL(wp) ::   rn_m4         =  0.101_wp 
    85    REAL(wp) ::   rn_m5         = 11.2_wp 
    86    REAL(wp) ::   rn_m6         =  0.4_wp 
    87    REAL(wp) ::   rn_m7         =  0.0_wp 
    88    REAL(wp) ::   rn_m8         =  0.318_wp 
    89    REAL(wp) ::   rn_c02 
    90    REAL(wp) ::   rn_c02r 
    91    REAL(wp) ::   rn_c03 
    92    REAL(wp) ::   rn_c04 
    93    REAL(wp) ::   rn_c03_sqrt2_galp 
    94    REAL(wp) ::   rn_sbc_mb 
    95    REAL(wp) ::   rn_sbc_std 
    96    REAL(wp) ::   rn_sbc_tke1 
    97    REAL(wp) ::   rn_sbc_tke2 
    98    REAL(wp) ::   rn_sbc_tke3 
    99    REAL(wp) ::   rn_sbc_psi1 
    100    REAL(wp) ::   rn_sbc_psi2 
    101    REAL(wp) ::   rn_sbc_psi3 
    102    REAL(wp) ::   rn_sbc_zs 
    103    REAL(wp) ::   zfact_tke, zfact_psi 
    104    REAL(wp) ::   rn_c0, rn_c2, rn_c3, rn_f6, rn_cff, rn_c_diff 
    105    REAL(wp) ::   rn_s0, rn_s1, rn_s2, rn_s4, rn_s5, rn_s6 
    106    REAL(wp) ::   rn_d0, rn_d1, rn_d2, rn_d3, rn_d4, rn_d5 
    107    REAL(wp) ::   rn_sc_tke, rn_sc_psi, rn_psi1, rn_psi2, rn_psi3, rn_sc_psi0 
    108    REAL(wp) ::   rn_psi3m, rn_psi3p, zpp, zmm, znn, epslim 
     61 
     62   REAL(wp) ::   rcm_sf        = 0.73_wp        ! Shear free turbulence parameters 
     63   REAL(wp) ::   ra_sf         = -2.0_wp        ! Must be negative -2 < ra_sf < -1  
     64   REAL(wp) ::   rl_sf         =  0.2_wp        ! 0 <rl_sf<vkarmn     
     65   REAL(wp) ::   rghmin        = -0.28 
     66   REAL(wp) ::   rgh0          = 0.0329 
     67   REAL(wp) ::   rghcri        = 0.03 
     68   REAL(wp) ::   ra1           =  0.92_wp 
     69   REAL(wp) ::   ra2           =  0.74_wp 
     70   REAL(wp) ::   rb1           = 16.60_wp 
     71   REAL(wp) ::   rb2           = 10.10_wp          
     72   REAL(wp) ::   re2           =  1.33_wp          
     73   REAL(wp) ::   rl1           =  0.107_wp 
     74   REAL(wp) ::   rl2           =  0.0032_wp 
     75   REAL(wp) ::   rl3           =  0.0864_wp 
     76   REAL(wp) ::   rl4           =  0.12_wp 
     77   REAL(wp) ::   rl5           = 11.9_wp 
     78   REAL(wp) ::   rl6           =  0.4_wp 
     79   REAL(wp) ::   rl7           =  0.0_wp 
     80   REAL(wp) ::   rl8           =  0.48_wp 
     81   REAL(wp) ::   rm1           =  0.127_wp 
     82   REAL(wp) ::   rm2           =  0.00336_wp 
     83   REAL(wp) ::   rm3           =  0.0906_wp 
     84   REAL(wp) ::   rm4           =  0.101_wp 
     85   REAL(wp) ::   rm5           = 11.2_wp 
     86   REAL(wp) ::   rm6           =  0.4_wp 
     87   REAL(wp) ::   rm7           =  0.0_wp 
     88   REAL(wp) ::   rm8           =  0.318_wp 
     89   REAL(wp) ::   rc02 
     90   REAL(wp) ::   rc02r 
     91   REAL(wp) ::   rc03 
     92   REAL(wp) ::   rc04 
     93   REAL(wp) ::   rc03_sqrt2_galp 
     94   REAL(wp) ::   rsbc_mb 
     95   REAL(wp) ::   rsbc_std 
     96   REAL(wp) ::   rsbc_tke1 
     97   REAL(wp) ::   rsbc_tke2 
     98   REAL(wp) ::   rsbc_tke3 
     99   REAL(wp) ::   rsbc_psi1 
     100   REAL(wp) ::   rsbc_psi2 
     101   REAL(wp) ::   rsbc_psi3 
     102   REAL(wp) ::   rsbc_zs 
     103   REAL(wp) ::   rfact_tke, rfact_psi 
     104   REAL(wp) ::   rc0, rc2, rc3, rf6, rcff, rc_diff 
     105   REAL(wp) ::   rs0, rs1, rs2, rs4, rs5, rs6 
     106   REAL(wp) ::   rd0, rd1, rd2, rd3, rd4, rd5 
     107   REAL(wp) ::   rnc_tke, rsc_psi, rpsi1, rpsi2, rpsi3, rsc_psi0 
     108   REAL(wp) ::   rpsi3m, rpsi3p, rpp, rmm, rnn 
    109109 
    110110   !! * Substitutions 
     
    169169          zty2 = 2. * (vtau(ji  ,jj-1)*vmask(ji,jj-1,1) + vtau(ji,jj)*vmask(ji,jj,1)) / & 
    170170            &                  MAX(1., vmask(ji,jj-1,1) +             vmask(ji,jj,1)) 
    171           ustars2(ji,jj) = rn_sbc_tke2 * SQRT( ztx2 * ztx2 + zty2 * zty2 ) * tmask(ji,jj,1) 
     171          ustars2(ji,jj) = rsbc_tke2 * SQRT( ztx2 * ztx2 + zty2 * zty2 ) * tmask(ji,jj,1) 
    172172          ! 
    173173          ! bottom friction  
     
    183183      ! Compute surface roughness length according to Charnock formula: 
    184184      IF (ln_crban) THEN 
    185         zhsro(:,:) = MAX(rn_sbc_zs * ustars2(:,:), hsro) 
     185        zhsro(:,:) = MAX(rsbc_zs * ustars2(:,:), hsro) 
    186186      ELSE 
    187187        zhsro(:,:) = hsro 
     
    200200                  &                            / (  fse3vw_n(ji,jj,jk)               & 
    201201                  &                            *    fse3vw_b(ji,jj,jk) ) 
    202                eps(ji,jj,jk)  = rn_c03 * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / mxln(ji,jj,jk) 
     202               eps(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / mxln(ji,jj,jk) 
    203203            ENDDO 
    204204         ENDDO 
     
    218218                  zup   = mxln(ji,jj,jk) * fsdepw(ji,jj,mbathy(ji,jj)) 
    219219                  zdown = vkarmn * fsdepw(ji,jj,jk) * (-fsdepw(ji,jj,jk)+fsdepw(ji,jj,mbathy(ji,jj))) 
    220                   zwall (ji,jj,jk) = ( 1. + rn_e2 * ( zup / MAX( zdown, rsmall ) )**2. ) * tmask(ji,jj,jk) 
     220                  zwall (ji,jj,jk) = ( 1. + re2 * ( zup / MAX( zdown, rsmall ) )**2. ) * tmask(ji,jj,jk) 
    221221               ENDDO 
    222222            ENDDO 
     
    256256               zdiss = dir*(diss/en(ji,jj,jk))   +(1-dir)*(diss-buoy)/en(ji,jj,jk) ! dissipation term 
    257257               ! 
    258                ! Compute a wall function from 1. to rn_sc_psi*zwall/rn_sc_psi0 
     258               ! Compute a wall function from 1. to rsc_psi*zwall/rsc_psi0 
    259259               ! Note that as long that Dirichlet boundary conditions are NOT set at the first and last levels (GOTM style) 
    260260               ! there is no need to set a boundary condition for zwall_psi at the top and bottom boundaries. 
    261                ! Otherwise, this should be rn_sc_psi/rn_sc_psi0 
     261               ! Otherwise, this should be rsc_psi/rsc_psi0 
    262262               IF (ln_sigpsi) THEN 
    263263                 zsigpsi = MIN(1., zesh2/eps(ji,jj,jk)) ! 0. <= zsigpsi <= 1. 
    264                  zwall_psi(ji,jj,jk) = rn_sc_psi / (zsigpsi * rn_sc_psi + (1.-zsigpsi) * rn_sc_psi0 / MAX(zwall(ji,jj,jk),1.)) 
     264                 zwall_psi(ji,jj,jk) = rsc_psi / (zsigpsi * rsc_psi + (1.-zsigpsi) * rsc_psi0 / MAX(zwall(ji,jj,jk),1.)) 
    265265               ELSE 
    266266                 zwall_psi(ji,jj,jk) = 1. 
     
    268268               ! 
    269269               ! building the matrix 
    270                zcof = zfact_tke * tmask(ji,jj,jk) 
     270               zcof = rfact_tke * tmask(ji,jj,jk) 
    271271               ! 
    272272               ! lower diagonal 
     
    294294        DO jj = 2, jpjm1 
    295295          DO ji = fs_2, fs_jpim1   ! vector opt. 
    296             zwall_psi(ji,jj,1) = rn_sc_psi/rn_sc_psi0 
     296            zwall_psi(ji,jj,1) = rsc_psi/rsc_psi0 
    297297          END DO 
    298298        END DO 
     
    310310      !                      ! balance between the production and the dissipation terms including the wave effect 
    311311      ! 
    312       en(:,:,1) = MAX( rn_sbc_tke1 * ustars2(:,:), rn_emin ) 
     312      en(:,:,1) = MAX( rsbc_tke1 * ustars2(:,:), rn_emin ) 
    313313      z_elem_a(:,:,1) = en(:,:,1) 
    314314      z_elem_c(:,:,1) = 0. 
     
    316316      !  
    317317      ! one level below 
    318       en(:,:,2) = MAX( rn_sbc_tke1 * ustars2(:,:) * ( (zhsro(:,:)+fsdepw(:,:,2))/zhsro(:,:) )**rn_a_sf, rn_emin ) 
     318      en(:,:,2) = MAX( rsbc_tke1 * ustars2(:,:) * ( (zhsro(:,:)+fsdepw(:,:,2))/zhsro(:,:) )**ra_sf, rn_emin ) 
    319319      z_elem_a(:,:,2) = 0. 
    320320      z_elem_c(:,:,2) = 0. 
     
    325325      !                      ! balance between the production and the dissipation terms 
    326326      ! 
    327       en(:,:,1) = MAX( rn_c02r * ustars2(:,:), rn_emin ) 
     327      en(:,:,1) = MAX( rc02r * ustars2(:,:), rn_emin ) 
    328328      z_elem_a(:,:,1) = en(:,:,1)  
    329329      z_elem_c(:,:,1) = 0. 
     
    331331      ! 
    332332      ! one level below 
    333       en(:,:,2) = MAX( rn_c02r * ustars2(:,:), rn_emin ) 
     333      en(:,:,2) = MAX( rc02r * ustars2(:,:), rn_emin ) 
    334334      z_elem_a(:,:,2) = 0. 
    335335      z_elem_c(:,:,2) = 0. 
     
    343343      ! 
    344344      ! Dirichlet conditions at k=1 (Cosmetic) 
    345       en(:,:,1) = MAX( rn_sbc_tke1 * ustars2(:,:), rn_emin ) 
     345      en(:,:,1) = MAX( rsbc_tke1 * ustars2(:,:), rn_emin ) 
    346346      z_elem_a(:,:,1) = en(:,:,1) 
    347347      z_elem_c(:,:,1) = 0. 
     
    350350      z_elem_b(:,:,2) = z_elem_b(:,:,2) +  z_elem_a(:,:,2) ! Remove z_elem_a from z_elem_b 
    351351      z_elem_a(:,:,2) = 0.            
    352       zflxs(:,:) = rn_sbc_tke3 * ustars2(:,:)**1.5 * ((zhsro(:,:)+fsdept(:,:,1))/zhsro(:,:) )**(1.5*rn_a_sf) 
     352      zflxs(:,:) = rsbc_tke3 * ustars2(:,:)**1.5 * ((zhsro(:,:)+fsdept(:,:,1))/zhsro(:,:) )**(1.5*ra_sf) 
    353353      en(:,:,2) = en(:,:,2) + zflxs(:,:)/fse3w(:,:,2) 
    354354      ! 
     
    356356      ! 
    357357      ! Dirichlet conditions at k=1 (Cosmetic) 
    358       en(:,:,1) = MAX( rn_c02r * ustars2(:,:), rn_emin ) 
     358      en(:,:,1) = MAX( rc02r * ustars2(:,:), rn_emin ) 
    359359      z_elem_a(:,:,1) = en(:,:,1) 
    360360      z_elem_c(:,:,1) = 0. 
     
    388388            z_elem_c(ji,jj,ibot  ) = 0. 
    389389            z_elem_b(ji,jj,ibot  ) = 1. 
    390             en(ji,jj,ibot  ) = MAX( rn_c02r * ustarb2(ji,jj), rn_emin ) 
     390            en(ji,jj,ibot  ) = MAX( rc02r * ustarb2(ji,jj), rn_emin ) 
    391391            ! 
    392392            ! Just above last level, Dirichlet condition again 
     
    394394            z_elem_c(ji,jj,ibotm1) = 0. 
    395395            z_elem_b(ji,jj,ibotm1) = 1. 
    396             en(ji,jj,ibotm1) = MAX( rn_c02r * ustarb2(ji,jj), rn_emin )  
     396            en(ji,jj,ibotm1) = MAX( rc02r * ustarb2(ji,jj), rn_emin )  
    397397         END DO 
    398398      END DO 
     
    411411            z_elem_c(ji,jj,ibot) = 0. 
    412412            z_elem_b(ji,jj,ibot) = 1. 
    413             en(ji,jj,ibot) = MAX( rn_c02r * ustarb2(ji,jj), rn_emin ) 
     413            en(ji,jj,ibot) = MAX( rc02r * ustarb2(ji,jj), rn_emin ) 
    414414            ! 
    415415            ! Just above last level: Neumann condition 
     
    482482         DO jj = 2, jpjm1 
    483483            DO ji = fs_2, fs_jpim1   ! vector opt. 
    484                psi(ji,jj,jk)  = SQRT(en(ji,jj,jk)) / (rn_c0 * mxln(ji,jj,jk)) 
     484               psi(ji,jj,jk)  = SQRT(en(ji,jj,jk)) / (rc0 * mxln(ji,jj,jk)) 
    485485            ENDDO 
    486486         ENDDO 
     
    492492         DO jj = 2, jpjm1 
    493493            DO ji = fs_2, fs_jpim1   ! vector opt. 
    494                psi(ji,jj,jk)  = rn_c02 * en(ji,jj,jk) * mxln(ji,jj,jk)**znn  
     494               psi(ji,jj,jk)  = rc02 * en(ji,jj,jk) * mxln(ji,jj,jk)**rnn  
    495495            ENDDO 
    496496         ENDDO 
     
    516516               dir = 0.5 + sign(0.5,rn2(ji,jj,jk)) 
    517517               ! 
    518                rn_psi3 = dir*rn_psi3m+(1-dir)*rn_psi3p 
     518               rpsi3 = dir*rpsi3m+(1-dir)*rpsi3p 
    519519               ! 
    520520               ! shear prod. - stratif. destruction 
    521                prod = rn_psi1 * zratio * shear(ji,jj,jk) 
     521               prod = rpsi1 * zratio * shear(ji,jj,jk) 
    522522               ! 
    523523               ! stratif. destruction 
    524                buoy = rn_psi3 * zratio * (- avt(ji,jj,jk) * rn2(ji,jj,jk)) 
     524               buoy = rpsi3 * zratio * (- avt(ji,jj,jk) * rn2(ji,jj,jk)) 
    525525               ! 
    526526               ! shear prod. - stratif. destruction 
    527                diss = rn_psi2 * zratio * zwall(ji,jj,jk) * eps(ji,jj,jk) 
     527               diss = rpsi2 * zratio * zwall(ji,jj,jk) * eps(ji,jj,jk) 
    528528               ! 
    529529               dir = 0.5 + sign(0.5,prod+buoy)   ! dir =1(=0) if shear(ji,jj,jk)+buoy >0(<0) 
     
    533533               !                                                         
    534534               ! building the matrix 
    535                zcof = zfact_psi * zwall_psi(ji,jj,jk) * tmask(ji,jj,jk) 
     535               zcof = rfact_psi * zwall_psi(ji,jj,jk) * tmask(ji,jj,jk) 
    536536               ! lower diagonal 
    537537               z_elem_a(ji,jj,jk) = zcof * ( avm  (ji,jj,jk  ) + avm  (ji,jj,jk-1) )   & 
     
    563563      !                      ! balance between the production and the dissipation terms including the wave effect 
    564564      ! 
    565       zdep(:,:) = rn_l_sf * zhsro(:,:) 
    566       psi (:,:,1) = rn_c0**zpp * en(:,:,1)**zmm * zdep(:,:)**znn * tmask(:,:,1) 
     565      zdep(:,:) = rl_sf * zhsro(:,:) 
     566      psi (:,:,1) = rc0**rpp * en(:,:,1)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    567567      z_elem_a(:,:,1) = psi(:,:,1) 
    568568      z_elem_c(:,:,1) = 0. 
     
    570570      ! 
    571571      ! one level below 
    572       zdep(:,:) = ( (zhsro(:,:) + fsdepw(:,:,2))**(zmm*rn_a_sf+znn) )  & 
    573         &                       / zhsro(:,:)**(zmm*rn_a_sf) 
    574       psi (:,:,2) = rn_sbc_psi1 * ustars2(:,:)**zmm * zdep(:,:) * tmask(:,:,1) 
     572      zdep(:,:) = ( (zhsro(:,:) + fsdepw(:,:,2))**(rmm*ra_sf+rnn) )  & 
     573        &                       / zhsro(:,:)**(rmm*ra_sf) 
     574      psi (:,:,2) = rsbc_psi1 * ustars2(:,:)**rmm * zdep(:,:) * tmask(:,:,1) 
    575575      z_elem_a(:,:,2) = 0. 
    576576      z_elem_c(:,:,2) = 0. 
     
    582582      ! 
    583583      zdep(:,:) = vkarmn * zhsro(:,:) 
    584       psi (:,:,1) = rn_c0**zpp * en(:,:,1)**zmm * zdep(:,:)**znn * tmask(:,:,1) 
     584      psi (:,:,1) = rc0**rpp * en(:,:,1)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    585585      z_elem_a(:,:,1) = psi(:,:,1) 
    586586      z_elem_c(:,:,1) = 0. 
     
    589589      ! one level below 
    590590      zdep(:,:) = vkarmn * ( zhsro(:,:) + fsdepw(:,:,2) ) 
    591       psi (:,:,2) = rn_c0**zpp * en(:,:,1)**zmm * zdep(:,:)**znn * tmask(:,:,1) 
     591      psi (:,:,2) = rc0**rpp * en(:,:,1)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    592592      z_elem_a(:,:,2) = 0. 
    593593      z_elem_c(:,:,2) = 0. 
     
    600600      IF (ln_crban) THEN     ! Wave induced mixing case 
    601601      ! 
    602       zdep(:,:) = rn_l_sf * zhsro(:,:) 
    603       psi (:,:,1) = rn_c0**zpp * en(:,:,1)**zmm * zdep(:,:)**znn * tmask(:,:,1) 
     602      zdep(:,:) = rl_sf * zhsro(:,:) 
     603      psi (:,:,1) = rc0**rpp * en(:,:,1)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    604604      z_elem_a(:,:,1) = psi(:,:,1) 
    605605      z_elem_c(:,:,1) = 0. 
     
    611611      ! 
    612612      ! Set psi vertical flux at the surface: 
    613       zdep(:,:) = (zhsro(:,:) + fsdept(:,:,1))**(zmm*rn_a_sf+znn-1.) / zhsro(:,:)**(zmm*rn_a_sf) 
    614       zflxs(:,:) = rn_sbc_psi3 * ( zwall_psi(:,:,1)*avm(:,:,1) + zwall_psi(:,:,2)*avm(:,:,2) ) &  
    615                  & * en(:,:,1)**zmm * zdep          
     613      zdep(:,:) = (zhsro(:,:) + fsdept(:,:,1))**(rmm*ra_sf+rnn-1.) / zhsro(:,:)**(rmm*ra_sf) 
     614      zflxs(:,:) = rsbc_psi3 * ( zwall_psi(:,:,1)*avm(:,:,1) + zwall_psi(:,:,2)*avm(:,:,2) ) &  
     615                 & * en(:,:,1)**rmm * zdep          
    616616      psi(:,:,2) = psi(:,:,2) + zflxs(:,:) / fse3w(:,:,2) 
    617617      ! 
     
    619619      ! 
    620620      zdep(:,:) = vkarmn * zhsro(:,:) 
    621       psi (:,:,1) = rn_c0**zpp * en(:,:,1)**zmm * zdep(:,:)**znn * tmask(:,:,1) 
     621      psi (:,:,1) = rc0**rpp * en(:,:,1)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    622622      z_elem_a(:,:,1) = psi(:,:,1) 
    623623      z_elem_c(:,:,1) = 0. 
     
    630630      ! Set psi vertical flux at the surface: 
    631631      zdep(:,:) = zhsro(:,:) + fsdept(:,:,1) 
    632       zflxs(:,:) = rn_sbc_psi2 * ( avm(:,:,1) + avm(:,:,2) ) * en(:,:,1)**zmm * zdep**(znn-1.) 
     632      zflxs(:,:) = rsbc_psi2 * ( avm(:,:,1) + avm(:,:,2) ) * en(:,:,1)**rmm * zdep**(rnn-1.) 
    633633      psi(:,:,2) = psi(:,:,2) + zflxs(:,:) / fse3w(:,:,2) 
    634634      !      
     
    653653            ibotm1 = ibot-1 
    654654            zdep(ji,jj) = vkarmn * rn_hbro 
    655             psi (ji,jj,ibot) = rn_c0**zpp * en(ji,jj,ibot)**zmm * zdep(ji,jj)**znn 
     655            psi (ji,jj,ibot) = rc0**rpp * en(ji,jj,ibot)**rmm * zdep(ji,jj)**rnn 
    656656            z_elem_a(ji,jj,ibot) = 0. 
    657657            z_elem_c(ji,jj,ibot) = 0. 
     
    660660            ! Just above last level, Dirichlet condition again (GOTM like) 
    661661            zdep(ji,jj) = vkarmn * (rn_hbro + fse3t(ji,jj,ibotm1)) 
    662             psi (ji,jj,ibotm1) = rn_c0**zpp * en(ji,jj,ibot  )**zmm * zdep(ji,jj)**znn 
     662            psi (ji,jj,ibotm1) = rc0**rpp * en(ji,jj,ibot  )**rmm * zdep(ji,jj)**rnn 
    663663            z_elem_a(ji,jj,ibotm1) = 0. 
    664664            z_elem_c(ji,jj,ibotm1) = 0. 
     
    679679            ! Bottom level Dirichlet condition: 
    680680            zdep(ji,jj) = vkarmn * rn_hbro 
    681             psi (ji,jj,ibot) = rn_c0**zpp * en(ji,jj,ibot)**zmm * zdep(ji,jj)**znn 
     681            psi (ji,jj,ibot) = rc0**rpp * en(ji,jj,ibot)**rmm * zdep(ji,jj)**rnn 
    682682            ! 
    683683            z_elem_a(ji,jj,ibot) = 0. 
     
    691691            ! Set psi vertical flux at the bottom: 
    692692            zdep(ji,jj) = rn_hbro + 0.5*fse3t(ji,jj,ibotm1) 
    693             zflxb = rn_sbc_psi2 * ( avm(ji,jj,ibot) + avm(ji,jj,ibotm1) ) * & 
    694               & (0.5*(en(ji,jj,ibot)+en(ji,jj,ibotm1)))**zmm * zdep(ji,jj)**(znn-1.) 
     693            zflxb = rsbc_psi2 * ( avm(ji,jj,ibot) + avm(ji,jj,ibotm1) ) * & 
     694              & (0.5*(en(ji,jj,ibot)+en(ji,jj,ibotm1)))**rmm * zdep(ji,jj)**(rnn-1.) 
    695695            psi(ji,jj,ibotm1) = psi(ji,jj,ibotm1) + zflxb / fse3w(ji,jj,ibotm1) 
    696696         END DO 
     
    734734         DO jj = 2, jpjm1 
    735735            DO ji = fs_2, fs_jpim1   ! vector opt. 
    736               eps(ji,jj,jk) = rn_c03 * en(ji,jj,jk) * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / psi(ji,jj,jk) 
     736              eps(ji,jj,jk) = rc03 * en(ji,jj,jk) * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / psi(ji,jj,jk) 
    737737            ENDDO 
    738738         ENDDO 
     
    754754         DO jj = 2, jpjm1 
    755755            DO ji = fs_2, fs_jpim1   ! vector opt. 
    756               eps(ji,jj,jk) = rn_c04 * en(ji,jj,jk) * psi(ji,jj,jk)  
     756              eps(ji,jj,jk) = rc04 * en(ji,jj,jk) * psi(ji,jj,jk)  
    757757            ENDDO 
    758758         ENDDO 
     
    764764         DO jj = 2, jpjm1 
    765765            DO ji = fs_2, fs_jpim1   ! vector opt. 
    766               eps(ji,jj,jk) = rn_c0**(3.+zpp/znn) * en(ji,jj,jk)**(1.5+zmm/znn) * psi(ji,jj,jk)**(-1./znn) 
     766              eps(ji,jj,jk) = rc0**(3.+rpp/rnn) * en(ji,jj,jk)**(1.5+rmm/rnn) * psi(ji,jj,jk)**(-1./rnn) 
    767767            ENDDO 
    768768         ENDDO 
     
    778778               ! limitation 
    779779               eps(ji,jj,jk)  = MAX( eps(ji,jj,jk), rn_epsmin ) 
    780                mxln(ji,jj,jk)  = rn_c03 * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / eps(ji,jj,jk) 
     780               mxln(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / eps(ji,jj,jk) 
    781781               ! Galperin criterium (NOTE : Not required if the proper value of C3 in stable cases is calculated)  
    782782               zrn2 = MAX( rn2(ji,jj,jk), rsmall ) 
     
    801801               ! Gh = -N²l²/q² 
    802802               gh = - rn2(ji,jj,jk) * zcof 
    803 !               gh = MIN(gh, gh-(gh-rn_ghcri)**2./(gh + rn_gh0 - 2.0*rn_ghcri)) 
    804                gh = MIN( gh, rn_gh0   ) 
    805                gh = MAX( gh, rn_ghmin ) 
     803               gh = MIN( gh, rgh0   ) 
     804               gh = MAX( gh, rghmin ) 
    806805               ! Stability functions from Kantha and Clayson (if C2=C3=0 => Galperin) 
    807                sh = rn_a2*( 1.-6.*rn_a1/rn_b1 ) / ( 1.-3.*rn_a2*gh*(6.*rn_a1+rn_b2*( 1.-rn_c3 ) ) ) 
    808                sm = ( rn_b1**(-1./3.) + ( 18*rn_a1*rn_a1 + 9.*rn_a1*rn_a2*(1.-rn_c2) )*sh*gh ) / (1.-9.*rn_a1*rn_a2*gh) 
     806               sh = ra2*( 1.-6.*ra1/rb1 ) / ( 1.-3.*ra2*gh*(6.*ra1+rb2*( 1.-rc3 ) ) ) 
     807               sm = ( rb1**(-1./3.) + ( 18*ra1*ra1 + 9.*ra1*ra2*(1.-rc2) )*sh*gh ) / (1.-9.*ra1*ra2*gh) 
    809808               ! 
    810809               ! Store stability function in avmu and avmv 
    811                avmu(ji,jj,jk) = rn_c_diff * sh * tmask(ji,jj,jk) 
    812                avmv(ji,jj,jk) = rn_c_diff * sm * tmask(ji,jj,jk) 
     810               avmu(ji,jj,jk) = rc_diff * sh * tmask(ji,jj,jk) 
     811               avmv(ji,jj,jk) = rc_diff * sm * tmask(ji,jj,jk) 
    813812            END DO 
    814813         END DO 
     
    824823               ! Gh = -N²l²/q² 
    825824               gh = - rn2(ji,jj,jk) * zcof 
    826 !               gh = MIN(gh, gh-(gh-rn_ghcri)**2./(gh + rn_gh0 - 2.0*rn_ghcri)) 
    827                gh = MIN( gh, rn_gh0   ) 
    828                gh = MAX( gh, rn_ghmin ) 
    829                gh = gh*rn_f6 
     825               gh = MIN( gh, rgh0   ) 
     826               gh = MAX( gh, rghmin ) 
     827               gh = gh*rf6 
    830828               ! Gm =  M²l²/q² Shear number 
    831829               shr = shear(ji,jj,jk)/MAX(avm(ji,jj,jk), rsmall) 
    832830               gm = shr * zcof 
    833831               gm = MAX(gm, 1.e-10) 
    834                gm = gm*rn_f6 
    835                gm = MIN ( (rn_d0 - rn_d1*gh + rn_d3*gh**2.)/(rn_d2-rn_d4*gh) , gm ) 
     832               gm = gm*rf6 
     833               gm = MIN ( (rd0 - rd1*gh + rd3*gh**2.)/(rd2-rd4*gh) , gm ) 
    836834               ! Stability functions from Canuto 
    837                rn_cff = rn_d0 - rn_d1*gh +rn_d2*gm + rn_d3*gh**2. - rn_d4*gh*gm + rn_d5*gm**2. 
    838                sm = (rn_s0 - rn_s1*gh + rn_s2*gm) / rn_cff 
    839                sh = (rn_s4 - rn_s5*gh + rn_s6*gm) / rn_cff 
     835               rcff = rd0 - rd1*gh +rd2*gm + rd3*gh**2. - rd4*gh*gm + rd5*gm**2. 
     836               sm = (rs0 - rs1*gh + rs2*gm) / rcff 
     837               sh = (rs4 - rs5*gh + rs6*gm) / rcff 
    840838               ! 
    841839               ! Store stability function in avmu and avmv 
    842                avmu(ji,jj,jk) = rn_c_diff * sh * tmask(ji,jj,jk) 
    843                avmv(ji,jj,jk) = rn_c_diff * sm * tmask(ji,jj,jk) 
     840               avmu(ji,jj,jk) = rc_diff * sh * tmask(ji,jj,jk) 
     841               avmv(ji,jj,jk) = rc_diff * sm * tmask(ji,jj,jk) 
    844842            END DO 
    845843         END DO 
     
    852850      DO jj = 2, jpjm1 
    853851         DO ji = fs_2, fs_jpim1   ! vector opt. 
    854             avmv(ji,jj,1) = rn_cm_sf / SQRT(2.) 
     852            avmv(ji,jj,1) = rcm_sf / SQRT(2.) 
    855853         END DO 
    856854      END DO 
     
    859857            ibot=mbathy(ji,jj) 
    860858            ibotm1=ibot-1 
    861             avmv(ji,jj,ibot) = rn_c0 / SQRT(2.) 
     859            avmv(ji,jj,ibot) = rc0 / SQRT(2.) 
    862860         END DO 
    863861      END DO 
     
    988986      ! 
    989987      IF(lwp) WRITE(numout,*) 'The choosen closure is k-kl closed to the classical Mellor-Yamada' 
    990       zpp       = 0. 
    991       zmm       = 1. 
    992       znn       = 1. 
    993       rn_sc_tke = 1.96 
    994       rn_sc_psi = 1.96 
    995       rn_psi1 = 0.9 
    996       rn_psi3p = 1. 
    997       rn_psi2  = 0.5 
     988      rpp       = 0. 
     989      rmm       = 1. 
     990      rnn       = 1. 
     991      rsc_tke = 1.96 
     992      rsc_psi = 1.96 
     993      rpsi1 = 0.9 
     994      rpsi3p = 1. 
     995      rpsi2  = 0.5 
    998996      ! 
    999997         SELECT CASE ( nn_stab_func ) 
    1000998         ! 
    1001999         CASE( 0, 1 )               ! G88 or KC stability functions 
    1002             rn_psi3m = 2.53 
     1000            rpsi3m = 2.53 
    10031001         CASE( 2 )                  ! Canuto A stability functions 
    1004             rn_psi3m = 2.38 
     1002            rpsi3m = 2.38 
    10051003         CASE( 3 )                  ! Canuto B stability functions 
    1006             rn_psi3m = 2.38         ! caution : constant not identified  
     1004            rpsi3m = 2.38         ! caution : constant not identified  
    10071005         END SELECT 
    10081006      ! 
     
    10101008      ! 
    10111009      IF(lwp) WRITE(numout,*) 'The choosen closure is k-eps' 
    1012       zpp       = 3. 
    1013       zmm       = 1.5 
    1014       znn       = -1. 
    1015       rn_sc_tke = 1. 
    1016       rn_sc_psi = 1.3  ! Schmidt number for psi 
    1017       rn_psi1 = 1.44 
    1018       rn_psi3p = 1. 
    1019       rn_psi2  = 1.92 
     1010      rpp       = 3. 
     1011      rmm       = 1.5 
     1012      rnn       = -1. 
     1013      rsc_tke = 1. 
     1014      rsc_psi = 1.3  ! Schmidt number for psi 
     1015      rpsi1 = 1.44 
     1016      rpsi3p = 1. 
     1017      rpsi2  = 1.92 
    10201018      ! 
    10211019        SELECT CASE ( nn_stab_func ) 
    10221020        !  
    10231021        CASE( 0, 1 )               ! G88 or KC stability functions 
    1024            rn_psi3m = -0.52 
     1022           rpsi3m = -0.52 
    10251023        CASE( 2 )                  ! Canuto A stability functions 
    1026            rn_psi3m = -0.629  
     1024           rpsi3m = -0.629  
    10271025        CASE( 3 )                  ! Canuto B stability functions 
    1028            rn_psi3m = -0.566 
     1026           rpsi3m = -0.566 
    10291027        END SELECT 
    10301028      ! 
     
    10321030      ! 
    10331031      IF(lwp) WRITE(numout,*) 'The choosen closure is k-omega' 
    1034       zpp       = -1. 
    1035       zmm       = 0.5 
    1036       znn       = -1. 
    1037       rn_sc_tke = 2. 
    1038       rn_sc_psi = 2. 
    1039       rn_psi1 = 0.555 
    1040       rn_psi3p = 1. 
    1041       rn_psi2  = 0.833 
     1032      rpp       = -1. 
     1033      rmm       = 0.5 
     1034      rnn       = -1. 
     1035      rsc_tke = 2. 
     1036      rsc_psi = 2. 
     1037      rpsi1 = 0.555 
     1038      rpsi3p = 1. 
     1039      rpsi2  = 0.833 
    10421040      ! 
    10431041        SELECT CASE ( nn_stab_func ) 
    10441042        ! 
    10451043        CASE( 0, 1 )               ! G88 or KC stability functions 
    1046            rn_psi3m = -0.58 
     1044           rpsi3m = -0.58 
    10471045        CASE( 2 )                  ! Canuto A stability functions 
    1048            rn_psi3m = -0.64 
     1046           rpsi3m = -0.64 
    10491047        CASE( 3 )                  ! Canuto B stability functions 
    1050            rn_psi3m = -0.64        ! caution : constant not identified 
     1048           rpsi3m = -0.64        ! caution : constant not identified 
    10511049        END SELECT 
    10521050      ! 
     
    10541052      ! 
    10551053      IF(lwp) WRITE(numout,*) 'The choosen closure is generic' 
    1056       zpp       = 2. 
    1057       zmm       = 1. 
    1058       znn       = -0.67 
    1059       rn_sc_tke = 0.8 
    1060       rn_sc_psi = 1.07 
    1061       rn_psi1 = 1. 
    1062       rn_psi3p = 1. 
    1063       rn_psi2  = 1.22 
     1054      rpp       = 2. 
     1055      rmm       = 1. 
     1056      rnn       = -0.67 
     1057      rsc_tke = 0.8 
     1058      rsc_psi = 1.07 
     1059      rpsi1 = 1. 
     1060      rpsi3p = 1. 
     1061      rpsi2  = 1.22 
    10641062      ! 
    10651063        SELECT CASE ( nn_stab_func ) 
    10661064        ! 
    10671065        CASE( 0, 1 )               ! G88 or KC stability functions 
    1068            rn_psi3m = 0.1 
     1066           rpsi3m = 0.1 
    10691067        CASE( 2 )                  ! Canuto A stability functions 
    1070            rn_psi3m = 0.05 
     1068           rpsi3m = 0.05 
    10711069        CASE( 3 )                  ! Canuto B stability functions 
    1072            rn_psi3m = 0.05         ! caution : constant not identified 
     1070           rpsi3m = 0.05         ! caution : constant not identified 
    10731071        END SELECT 
    10741072      ! 
     
    10831081      ! 
    10841082      IF(lwp) WRITE(numout,*) 'Stability functions from Galperin' 
    1085       rn_c2 = 0. 
    1086       rn_c3 = 0. 
    1087       rn_c_diff = 1. 
    1088       rn_c0     = 0.5544 
    1089       rn_cm_sf = 0.9884 
    1090       rn_ghmin = -0.28 
    1091       rn_gh0   = 0.0233 
    1092       rn_ghcri = 0.02 
     1083      rc2 = 0. 
     1084      rc3 = 0. 
     1085      rc_diff = 1. 
     1086      rc0     = 0.5544 
     1087      rcm_sf = 0.9884 
     1088      rghmin = -0.28 
     1089      rgh0   = 0.0233 
     1090      rghcri = 0.02 
    10931091      ! 
    10941092      CASE ( 1 )             ! Kantha-Clayson stability functions 
    10951093      ! 
    10961094      IF(lwp) WRITE(numout,*) 'Stability functions from Kantha-Clayson' 
    1097       rn_c2 = 0.7 
    1098       rn_c3 = 0.2 
    1099       rn_c_diff = 1. 
    1100       rn_c0     = 0.5544 
    1101       rn_cm_sf = 0.9884 
    1102       rn_ghmin = -0.28 
    1103       rn_gh0   = 0.0233 
    1104       rn_ghcri = 0.02 
     1095      rc2 = 0.7 
     1096      rc3 = 0.2 
     1097      rc_diff = 1. 
     1098      rc0     = 0.5544 
     1099      rcm_sf = 0.9884 
     1100      rghmin = -0.28 
     1101      rgh0   = 0.0233 
     1102      rghcri = 0.02 
    11051103      ! 
    11061104      CASE ( 2 )             ! Canuto A stability functions 
    11071105      ! 
    11081106      IF(lwp) WRITE(numout,*) 'Stability functions from Canuto A' 
    1109       rn_s0 = 1.5*rn_l1*rn_l5**2. 
    1110       rn_s1 = -rn_l4*(rn_l6+rn_l7) + 2.*rn_l4*rn_l5*(rn_l1-(1./3.)*rn_l2-rn_l3)+1.5*rn_l1*rn_l5*rn_l8 
    1111       rn_s2 = -(3./8.)*rn_l1*(rn_l6**2.-rn_l7**2.) 
    1112       rn_s4 = 2.*rn_l5 
    1113       rn_s5 = 2.*rn_l4 
    1114       rn_s6 = (2./3.)*rn_l5*(3.*rn_l3**2.-rn_l2**2.)-0.5*rn_l5*rn_l1*(3.*rn_l3-rn_l2)+0.75*rn_l1*(rn_l6-rn_l7) 
    1115       rn_d0 = 3*rn_l5**2. 
    1116       rn_d1 = rn_l5*(7.*rn_l4+3.*rn_l8) 
    1117       rn_d2 = rn_l5**2.*(3.*rn_l3**2.-rn_l2**2.)-0.75*(rn_l6**2.-rn_l7**2.) 
    1118       rn_d3 = rn_l4*(4.*rn_l4+3.*rn_l8) 
    1119       rn_d4 = rn_l4*(rn_l2*rn_l6-3.*rn_l3*rn_l7-rn_l5*(rn_l2**2.-rn_l3**2.))+rn_l5*rn_l8*(3.*rn_l3**2.-rn_l2**2.) 
    1120       rn_d5 = 0.25*(rn_l2**2.-3.*rn_l3**2.)*(rn_l6**2.-rn_l7**2.) 
    1121       rn_c0 = 0.5268 
    1122       rn_f6 = 8. / (rn_c0**6.) 
    1123       rn_c_diff = SQRT(2.)/(rn_c0**3.) 
    1124       rn_cm_sf = 0.7310 
    1125       rn_ghmin = -0.28 
    1126       rn_gh0   = 0.0329 
    1127       rn_ghcri = 0.03 
     1107      rs0 = 1.5*rl1*rl5**2. 
     1108      rs1 = -rl4*(rl6+rl7) + 2.*rl4*rl5*(rl1-(1./3.)*rl2-rl3)+1.5*rl1*rl5*rl8 
     1109      rs2 = -(3./8.)*rl1*(rl6**2.-rl7**2.) 
     1110      rs4 = 2.*rl5 
     1111      rs5 = 2.*rl4 
     1112      rs6 = (2./3.)*rl5*(3.*rl3**2.-rl2**2.)-0.5*rl5*rl1*(3.*rl3-rl2)+0.75*rl1*(rl6-rl7) 
     1113      rd0 = 3*rl5**2. 
     1114      rd1 = rl5*(7.*rl4+3.*rl8) 
     1115      rd2 = rl5**2.*(3.*rl3**2.-rl2**2.)-0.75*(rl6**2.-rl7**2.) 
     1116      rd3 = rl4*(4.*rl4+3.*rl8) 
     1117      rd4 = rl4*(rl2*rl6-3.*rl3*rl7-rl5*(rl2**2.-rl3**2.))+rl5*rl8*(3.*rl3**2.-rl2**2.) 
     1118      rd5 = 0.25*(rl2**2.-3.*rl3**2.)*(rl6**2.-rl7**2.) 
     1119      rc0 = 0.5268 
     1120      rf6 = 8. / (rc0**6.) 
     1121      rc_diff = SQRT(2.)/(rc0**3.) 
     1122      rcm_sf = 0.7310 
     1123      rghmin = -0.28 
     1124      rgh0   = 0.0329 
     1125      rghcri = 0.03 
    11281126      ! 
    11291127      CASE ( 3 )             ! Canuto B stability functions 
    11301128      ! 
    11311129      IF(lwp) WRITE(numout,*) 'Stability functions from Canuto B' 
    1132       rn_s0 = 1.5*rn_m1*rn_m5**2. 
    1133       rn_s1 = -rn_m4*(rn_m6+rn_m7) + 2.*rn_m4*rn_m5*(rn_m1-(1./3.)*rn_m2-rn_m3)+1.5*rn_m1*rn_m5*rn_m8 
    1134       rn_s2 = -(3./8.)*rn_m1*(rn_m6**2.-rn_m7**2.) 
    1135       rn_s4 = 2.*rn_m5 
    1136       rn_s5 = 2.*rn_m4 
    1137       rn_s6 = (2./3.)*rn_m5*(3.*rn_m3**2.-rn_m2**2.)-0.5*rn_m5*rn_m1*(3.*rn_m3-rn_m2)+0.75*rn_m1*(rn_m6-rn_m7) 
    1138       rn_d0 = 3*rn_m5**2. 
    1139       rn_d1 = rn_m5*(7.*rn_m4+3.*rn_m8) 
    1140       rn_d2 = rn_m5**2.*(3.*rn_m3**2.-rn_m2**2.)-0.75*(rn_m6**2.-rn_m7**2.) 
    1141       rn_d3 = rn_m4*(4.*rn_m4+3.*rn_m8) 
    1142       rn_d4 = rn_m4*(rn_m2*rn_m6-3.*rn_m3*rn_m7-rn_m5*(rn_m2**2.-rn_m3**2.))+rn_m5*rn_m8*(3.*rn_m3**2.-rn_m2**2.) 
    1143       rn_d5 = 0.25*(rn_m2**2.-3.*rn_m3**2.)*(rn_m6**2.-rn_m7**2.) 
    1144       rn_c0 = 0.5268  !!       rn_c0 = 0.5540 (Warner ...) to verify ! 
    1145       rn_f6 = 8. / (rn_c0**6.) 
    1146       rn_c_diff = SQRT(2.)/(rn_c0**3.) 
    1147       rn_cm_sf = 0.7470 
    1148       rn_ghmin = -0.28 
    1149       rn_gh0   = 0.0444 
    1150       rn_ghcri = 0.0414 
     1130      rs0 = 1.5*rm1*rm5**2. 
     1131      rs1 = -rm4*(rm6+rm7) + 2.*rm4*rm5*(rm1-(1./3.)*rm2-rm3)+1.5*rm1*rm5*rm8 
     1132      rs2 = -(3./8.)*rm1*(rm6**2.-rm7**2.) 
     1133      rs4 = 2.*rm5 
     1134      rs5 = 2.*rm4 
     1135      rs6 = (2./3.)*rm5*(3.*rm3**2.-rm2**2.)-0.5*rm5*rm1*(3.*rm3-rm2)+0.75*rm1*(rm6-rm7) 
     1136      rd0 = 3*rm5**2. 
     1137      rd1 = rm5*(7.*rm4+3.*rm8) 
     1138      rd2 = rm5**2.*(3.*rm3**2.-rm2**2.)-0.75*(rm6**2.-rm7**2.) 
     1139      rd3 = rm4*(4.*rm4+3.*rm8) 
     1140      rd4 = rm4*(rm2*rm6-3.*rm3*rm7-rm5*(rm2**2.-rm3**2.))+rm5*rm8*(3.*rm3**2.-rm2**2.) 
     1141      rd5 = 0.25*(rm2**2.-3.*rm3**2.)*(rm6**2.-rm7**2.) 
     1142      rc0 = 0.5268  !!       rc0 = 0.5540 (Warner ...) to verify ! 
     1143      rf6 = 8. / (rc0**6.) 
     1144      rc_diff = SQRT(2.)/(rc0**3.) 
     1145      rcm_sf = 0.7470 
     1146      rghmin = -0.28 
     1147      rgh0   = 0.0444 
     1148      rghcri = 0.0414 
    11511149      ! 
    11521150      END SELECT 
     
    11571155      ! or equation (17) of Burchard, JPO, 31, 3133-3145, 2001 
    11581156      IF ((ln_sigpsi).AND.(ln_crban)) THEN 
    1159          zcr = SQRT(1.5*rn_sc_tke) * rn_cm_sf /vkarmn 
    1160          rn_sc_psi0 = vkarmn**2/(rn_psi2*rn_cm_sf**2) *              &  
    1161         &             (  znn**2 - 4./3.*zcr*znn*zmm - 1./3.*zcr*znn  & 
    1162         &              + 2./9.*zmm*zcr**2 + 4./9.*zcr**2*zmm**2)                                  
     1157         zcr = SQRT(1.5*rsc_tke) * rcm_sf /vkarmn 
     1158         rsc_psi0 = vkarmn**2/(rpsi2*rcm_sf**2) *              &  
     1159        &             (  rnn**2 - 4./3.*zcr*rnn*rmm - 1./3.*zcr*rnn  & 
     1160        &              + 2./9.*rmm*zcr**2 + 4./9.*zcr**2*rmm**2)                                  
    11631161      ELSE 
    1164          rn_sc_psi0 = rn_sc_psi 
     1162         rsc_psi0 = rsc_psi 
    11651163      ENDIF 
    11661164  
    11671165      ! Shear free turbulence parameters: 
    11681166      ! 
    1169       rn_a_sf  = -4.*znn*SQRT(rn_sc_tke) / ( (1.+4.*zmm)*SQRT(rn_sc_tke) & 
    1170                &                              - SQRT(rn_sc_tke + 24.*rn_sc_psi0*rn_psi2 ) ) 
    1171       rn_l_sf  = rn_c0 * SQRT(rn_c0/rn_cm_sf) * SQRT( ( (1. + 4.*zmm + 8.*zmm**2)*rn_sc_tke       & 
    1172                &                                          + 12. * rn_sc_psi0*rn_psi2 - (1. + 4.*zmm) & 
    1173                &                                          *SQRT(rn_sc_tke*(rn_sc_tke                & 
    1174                &                                                + 24.*rn_sc_psi0*rn_psi2)) )         & 
    1175                &                                          /(12.*znn**2.) & 
     1167      ra_sf  = -4.*rnn*SQRT(rsc_tke) / ( (1.+4.*rmm)*SQRT(rsc_tke) & 
     1168               &                              - SQRT(rsc_tke + 24.*rsc_psi0*rpsi2 ) ) 
     1169      rl_sf  = rc0 * SQRT(rc0/rcm_sf) * SQRT( ( (1. + 4.*rmm + 8.*rmm**2)*rsc_tke       & 
     1170               &                                          + 12. * rsc_psi0*rpsi2 - (1. + 4.*rmm) & 
     1171               &                                          *SQRT(rsc_tke*(rsc_tke                & 
     1172               &                                                + 24.*rsc_psi0*rpsi2)) )         & 
     1173               &                                          /(12.*rnn**2.) & 
    11761174               &                                       ) 
    11771175 
     
    11821180         WRITE(numout,*) 'Limit values' 
    11831181         WRITE(numout,*) '~~~~~~~~~~~~' 
    1184          WRITE(numout,*) 'Parameter  m = ',zmm 
    1185          WRITE(numout,*) 'Parameter  n = ',znn 
    1186          WRITE(numout,*) 'Parameter  p = ',zpp 
    1187          WRITE(numout,*) 'rn_psi1   = ',rn_psi1 
    1188          WRITE(numout,*) 'rn_psi2   = ',rn_psi2 
    1189          WRITE(numout,*) 'rn_psi3m  = ',rn_psi3m 
    1190          WRITE(numout,*) 'rn_psi3p  = ',rn_psi3p 
    1191          WRITE(numout,*) 'rn_sc_tke = ',rn_sc_tke 
    1192          WRITE(numout,*) 'rn_sc_psi = ',rn_sc_psi 
    1193          WRITE(numout,*) 'rn_sc_psi0 = ',rn_sc_psi0 
    1194          WRITE(numout,*) 'rn_c0     = ',rn_c0 
     1182         WRITE(numout,*) 'Parameter  m = ',rmm 
     1183         WRITE(numout,*) 'Parameter  n = ',rnn 
     1184         WRITE(numout,*) 'Parameter  p = ',rpp 
     1185         WRITE(numout,*) 'rpsi1   = ',rpsi1 
     1186         WRITE(numout,*) 'rpsi2   = ',rpsi2 
     1187         WRITE(numout,*) 'rpsi3m  = ',rpsi3m 
     1188         WRITE(numout,*) 'rpsi3p  = ',rpsi3p 
     1189         WRITE(numout,*) 'rsc_tke = ',rsc_tke 
     1190         WRITE(numout,*) 'rsc_psi = ',rsc_psi 
     1191         WRITE(numout,*) 'rsc_psi0 = ',rsc_psi0 
     1192         WRITE(numout,*) 'rc0     = ',rc0 
    11951193         WRITE(numout,*) 
    11961194         WRITE(numout,*) 'Shear free turbulence parameters:' 
    1197          WRITE(numout,*) 'rn_cm_sf  = ',rn_cm_sf 
    1198          WRITE(numout,*) 'rn_a_sf   = ',rn_a_sf 
    1199          WRITE(numout,*) 'rn_l_sf   = ',rn_l_sf 
     1195         WRITE(numout,*) 'rcm_sf  = ',rcm_sf 
     1196         WRITE(numout,*) 'ra_sf   = ',ra_sf 
     1197         WRITE(numout,*) 'rl_sf   = ',rl_sf 
    12001198         WRITE(numout,*) 
    12011199      ENDIF 
    12021200 
    12031201      ! Constants initialization 
    1204       rn_c02r = 1. / rn_c0**2. 
    1205       rn_c02  = rn_c0**2._wp 
    1206       rn_c03  = rn_c0**3._wp 
    1207       rn_c04  = rn_c0**4._wp 
    1208       rn_c03_sqrt2_galp = rn_c03 / SQRT(2._wp) / rn_clim_galp 
    1209       rn_sbc_mb   = 0.5 * (15.8*rn_crban)**(2./3.) ! Surf. bound. cond. from Mellor and Blumberg 
    1210       rn_sbc_std  = 3.75                           ! Surf. bound. cond. standard (prod=diss) 
    1211       rn_sbc_tke1 = (-rn_sc_tke*rn_crban/(rn_cm_sf*rn_a_sf*rn_l_sf))**(2./3.) ! k_eps = 53.  Dirichlet + Wave breaking  
    1212       rn_sbc_tke2 = 0.5 / rau0 
    1213       rn_sbc_tke3 = rdt * rn_crban                                                         ! Neumann + Wave breaking 
    1214       rn_sbc_zs   = rn_charn/grav                                                          ! Charnock formula 
    1215       rn_sbc_psi1 = rn_c0**zpp * rn_sbc_tke1**zmm * rn_l_sf**znn                           ! Dirichlet + Wave breaking 
    1216       rn_sbc_psi2 = -0.5 * rdt * rn_c0**zpp * znn * vkarmn**znn / rn_sc_psi                   ! Neumann + NO Wave breaking  
    1217       rn_sbc_psi3 = -0.5 * rdt * rn_c0**zpp * rn_l_sf**znn / rn_sc_psi  * (znn + zmm*rn_a_sf) ! Neumann + Wave breaking 
    1218       zfact_tke = -0.5 / rn_sc_tke * rdt               ! Cst used for the Diffusion term of tke 
    1219       zfact_psi = -0.5 / rn_sc_psi * rdt               ! Cst used for the Diffusion term of tke 
     1202      rc02r = 1. / rc0**2. 
     1203      rc02  = rc0**2._wp 
     1204      rc03  = rc0**3._wp 
     1205      rc04  = rc0**4._wp 
     1206      rc03_sqrt2_galp = rc03 / SQRT(2._wp) / rn_clim_galp 
     1207      rsbc_mb   = 0.5 * (15.8*rn_crban)**(2./3.) ! Surf. bound. cond. from Mellor and Blumberg 
     1208      rsbc_std  = 3.75                           ! Surf. bound. cond. standard (prod=diss) 
     1209      rsbc_tke1 = (-rsc_tke*rn_crban/(rcm_sf*ra_sf*rl_sf))**(2./3.) ! k_eps = 53.  Dirichlet + Wave breaking  
     1210      rsbc_tke2 = 0.5 / rau0 
     1211      rsbc_tke3 = rdt * rn_crban                                                         ! Neumann + Wave breaking 
     1212      rsbc_zs   = rn_charn/grav                                                          ! Charnock formula 
     1213      rsbc_psi1 = rc0**rpp * rsbc_tke1**rmm * rl_sf**rnn                           ! Dirichlet + Wave breaking 
     1214      rsbc_psi2 = -0.5 * rdt * rc0**rpp * rnn * vkarmn**rnn / rsc_psi                   ! Neumann + NO Wave breaking  
     1215      rsbc_psi3 = -0.5 * rdt * rc0**rpp * rl_sf**rnn / rsc_psi  * (rnn + rmm*ra_sf) ! Neumann + Wave breaking 
     1216      rfact_tke = -0.5 / rsc_tke * rdt               ! Cst used for the Diffusion term of tke 
     1217      rfact_psi = -0.5 / rsc_psi * rdt               ! Cst used for the Diffusion term of tke 
    12201218 
    12211219      ! Wall proximity function 
Note: See TracChangeset for help on using the changeset viewer.