Changeset 14536


Ignore:
Timestamp:
2021-02-23T12:22:12+01:00 (8 months ago)
Author:
agn
Message:

zddhdt can only increase zdhdt in zdf_osm_calculate_dhdt. Add limits on divisor zdb_bl & zdb_ml

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/NERC/dev_r11078_OSMOSIS_IMMERSE_Nurser_4.0/src/OCE/ZDF/zdfosm.F90

    r14535 r14536  
    25472547                        ! OSBL is deepening, entrainment > restratification 
    25482548                        IF ( zdb_bl(ji,jj) > 1.0e-15 ) THEN 
    2549                            zgamma_b_nd = MAX( zdbdz_bl_ext(ji,jj), 0._wp ) * zdh(ji,jj) / zdb_ml(ji,jj) 
     2549                           zgamma_b_nd = MAX( zdbdz_bl_ext(ji,jj), 0._wp ) * zdh(ji,jj) /  ( zvel_max + MAX( zdb_bl(ji,jj), 1.0e-15 ) ) 
    25502550                           zpsi = ( 1.0 - 0.5 * zdh(ji,jj) / zhbl(ji,jj) ) * ( zwb0(ji,jj) - MIN( ( zwb_min(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ), 0._wp ) ) * zdh(ji,jj) / zhbl(ji,jj) 
    25512551                           zpsi = zpsi + 1.75 * ( 1.0 - 0.5 * zdh(ji,jj) / zhbl(ji,jj) )*( zdh(ji,jj) / zhbl(ji,jj) + zgamma_b_nd ) * MIN( ( zwb_min(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ), 0._wp ) 
     
    25662566                              ENDIF 
    25672567                              ! Relaxation to dh_ref = zari * hbl 
    2568                               zddhdt = -a_ddh_2 * ( 1.0 - zdh(ji,jj) / ( zari * zhbl(ji,jj) ) ) * zwb_ent(ji,jj) / zdb_bl(ji,jj) 
     2568                              zddhdt = -a_ddh_2 * ( 1.0 - zdh(ji,jj) / ( zari * zhbl(ji,jj) ) ) * zwb_ent(ji,jj) /  ( zvel_max + MAX( zdb_bl(ji,jj), 1.0e-15 ) ) 
    25692569#ifdef key_osm_debug 
    25702570                              IF(narea==nn_narea_db.and.ji==iloc_db.and.jj==jloc_db)THEN 
     
    25762576                           ELSE IF ( j_ddh(ji,jj) == 0 ) THEN 
    25772577                              ! Growing shear layer 
    2578                               zddhdt = -a_ddh * ( 1.0 - 1.6 * zdh(ji,jj) / zhbl(ji,jj) ) * zwb_ent(ji,jj) / zdb_bl(ji,jj) 
     2578                              zddhdt = -a_ddh * ( 1.0 - 1.6 * zdh(ji,jj) / zhbl(ji,jj) ) * zwb_ent(ji,jj) /  ( zvel_max + MAX( zdb_bl(ji,jj), 1.0e-15 ) ) 
    25792579                              zddhdt = EXP( - 4.0 * ABS( ff_t(ji,jj) ) * zhbl(ji,jj) / MAX(zustar(ji,jj), 1.e-8 ) ) * zddhdt 
    25802580                           ELSE 
     
    25822582                           ENDIF ! j_ddh 
    25832583                           zdhdt(ji,jj) = zdhdt(ji,jj) + zalpha_b * ( 1.0 -0.5 * zdh(ji,jj) / zhbl(ji,jj) ) * & 
    2584                                              &  zdb_ml(ji,jj) * zddhdt / ( zvel_max + MAX( zdb_bl(ji,jj), 1.0e-15 ) ) 
     2584                                             &  zdb_ml(ji,jj) * MAX(zddhdt,0._wp) / ( zvel_max + MAX( zdb_bl(ji,jj), 1.0e-15 ) ) 
    25852585                        ELSE    ! zdb_bl >0 
    25862586                           zdhdt(ji,jj) = -( zwb_ent(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ) /  MAX( zvel_max, 1.0e-15) 
Note: See TracChangeset for help on using the changeset viewer.