Changeset 5613 for LMDZ6/branches


Ignore:
Timestamp:
Apr 14, 2025, 6:16:16 PM (3 months ago)
Author:
aborella
Message:

Added barriers and bypass overflows

Location:
LMDZ6/branches/contrails
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails/DefLists/file_def_histday_lmdz.xml

    r5573 r5613  
    504504            <!-- VARS 3D -->
    505505            <field_group operation="average" grid_ref="grid_out_presnivs">
    506                 <field field_ref="flightdist" level="1" />
    507                 <field field_ref="cfseri" level="1"  />
    508                 <field field_ref="qissr" level="1"   />
    509                 <field field_ref="qcld" level="1"    />
    510                 <field field_ref="subfra" level="1"  />
    511                 <field field_ref="issrfra" level="1" />
    512                 <field field_ref="dqvcmix" level="1" />
    513                 <field field_ref="dqimix" level="1"  />
    514                 <field field_ref="dcfmix" level="1"  />
    515506                <field field_ref="CO2" level="5" /> <!-- Added PC -->
    516507                <field field_ref="dCO2_vdf" level="5" />
  • LMDZ6/branches/contrails/DefLists/file_def_histhf_lmdz.xml

    r5573 r5613  
    479479                    <!-- VARS 3D -->
    480480                    <field_group operation="average" grid_ref="grid_out_presnivs">
    481                         <field field_ref="flightdist" level="1" operation="instant" />
    482481                        <field field_ref="CO2" level="10" /> <!-- Added PC -->
    483482                        <field field_ref="tke" level="10" />
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_aviation.f90

    r5609 r5613  
    174174      pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
    175175      pdf_x = qcritcont(i) / qsatl(i) * 100.
    176       pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    177       pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    178       pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    179       pdf_fra_above_qcritcont = EXP( - pdf_y ) * clrfra(i)
    180       pdf_q_above_qcritcont = ( pdf_e3 * clrfra(i) &
    181           + pdf_loc * pdf_fra_above_qcritcont ) * qsatl(i) / 100.
     176      pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     177      IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     178        pdf_fra_above_qcritcont = 0.
     179        pdf_q_above_qcritcont = 0.
     180      ELSEIF ( pdf_y .LT. -10. ) THEN
     181        pdf_fra_above_qcritcont = 1.
     182        pdf_q_above_qcritcont = qclr(i) / clrfra(i)
     183      ELSE
     184        pdf_y = EXP( pdf_y )
     185        pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     186        pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     187        pdf_fra_above_qcritcont = EXP( - pdf_y ) * clrfra(i)
     188        pdf_q_above_qcritcont = ( pdf_e3 * clrfra(i) &
     189                              + pdf_loc * pdf_fra_above_qcritcont ) * qsatl(i) / 100.
     190      ENDIF
    182191   
    183192      pdf_x = qsat(i) / qsatl(i) * 100.
    184       pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    185       pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    186       pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    187       pdf_fra_above_qsat = EXP( - pdf_y ) * clrfra(i)
    188       pdf_q_above_qsat = ( pdf_e3 * clrfra(i) &
    189           + pdf_loc * pdf_fra_above_qsat ) * qsatl(i) / 100.
     193      pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     194      IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     195        pdf_fra_above_qsat = 0.
     196        pdf_q_above_qsat = 0.
     197      ELSEIF ( pdf_y .LT. -10. ) THEN
     198        pdf_fra_above_qsat = 1.
     199        pdf_q_above_qsat = qclr(i) / clrfra(i)
     200      ELSE
     201        pdf_y = EXP( pdf_y )
     202        pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     203        pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     204        pdf_fra_above_qsat = EXP( - pdf_y ) * clrfra(i)
     205        pdf_q_above_qsat = ( pdf_e3 * clrfra(i) &
     206                         + pdf_loc * pdf_fra_above_qsat ) * qsatl(i) / 100.
     207      ENDIF
    190208   
    191209      potcontfraNP(i) = MAX(0., pdf_fra_above_qcritcont - pdf_fra_above_qsat)
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp_condensation.f90

    r5609 r5613  
    239239!
    240240! for deposition / sublimation
    241 REAL :: pres_sat, kappa_depsub, tau_depsub
     241REAL :: pres_sat, kappa_depsub, tauinv_depsub
    242242REAL :: air_thermal_conduct, water_vapor_diff
    243243REAL :: N_ice
     
    264264REAL :: pdf_fra_above_nuc, pdf_q_above_nuc
    265265REAL :: pdf_fra_above_lim, pdf_q_above_lim
    266 REAL :: pdf_fra_below_lim, pdf_q_below_lim
     266REAL :: pdf_fra_below_lim
    267267REAL :: mixed_fraction
    268268!
     
    545545              !--If the cloud is initially supersaturated
    546546              !--Exact explicit integration (qvc exact, qice explicit)
    547               tau_depsub = 1. / ( depo_coef_cirrus * qiceincld**(1./3.) * kappa_depsub )
     547              tauinv_depsub = depo_coef_cirrus * qiceincld**(1./3.) * kappa_depsub
    548548            ELSE
    549549              !--If the cloud is initially subsaturated
    550550              !--Exact explicit integration (qvc exact, qice explicit)
    551551              !--Same but depo_coef_cirrus = 1
    552               tau_depsub = 1. / ( qiceincld**(1./3.) * kappa_depsub )
     552              tauinv_depsub = qiceincld**(1./3.) * kappa_depsub
    553553            ENDIF ! qvapincld .GT. qsat
    554             qvapincld_new = qsat(i) + ( qvapincld - qsat(i) ) * EXP( - dtime / tau_depsub )
     554            qvapincld_new = qsat(i) + ( qvapincld - qsat(i) ) * EXP( - dtime * tauinv_depsub )
    555555            !--If all the ice is sublimated
    556556            IF ( qvapincld_new .GE. ( qvapincld + qiceincld ) ) qvapincld_new = 0.
     
    641641        !--New PDF
    642642        rhl_clr = qclr(i) / clrfra(i) / qsatl(i) * 100.
    643         rhl_clr = MAX(0., MIN(1000., rhl_clr))
     643        rhl_clr = MAX(0., MIN(150., rhl_clr))
    644644
    645645        !--Calculation of the properties of the PDF
     
    662662        pdf_e3 = k0_pdf_lscp + kappa_pdf_lscp * MAX( temp_nowater - temp(i), 0. )
    663663        pdf_alpha(i) = EXP( rhl_clr / 100. ) * pdf_e3
     664        pdf_alpha(i) = MIN(10., pdf_alpha(i)) !--Avoid overflows
    664665       
    665666        !IF ( ok_warm_cloud ) THEN
     
    671672
    672673        pdf_gamma(i) = GAMMA(1. + 1. / pdf_alpha(i))
    673         pdf_scale(i) = MAX(eps, pdf_std / SQRT( &
     674        !--Barrier to avoid overflows
     675        pdf_scale(i) = MAX(0.01, pdf_std / SQRT( &
    674676                                    GAMMA(1. + 2. / pdf_alpha(i)) - pdf_gamma(i)**2 ))
    675677        pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
     
    680682
    681683        pdf_x = gamma_cond(i) * qsat(i) / qsatl(i) * 100.
    682         pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    683         pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    684         pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    685         pdf_fra_above_nuc = EXP( - pdf_y )
    686         pdf_q_above_nuc = ( pdf_e3 + pdf_loc * pdf_fra_above_nuc ) * qsatl(i) / 100.
     684        pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     685        IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     686          pdf_fra_above_nuc = 0.
     687          pdf_q_above_nuc = 0.
     688        ELSEIF ( pdf_y .LT. -10. ) THEN
     689          pdf_fra_above_nuc = 1.
     690          pdf_q_above_nuc = qclr(i) / clrfra(i)
     691        ELSE
     692          pdf_y = EXP( pdf_y )
     693          pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     694          pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     695          pdf_fra_above_nuc = EXP( - pdf_y )
     696          pdf_q_above_nuc = ( pdf_e3 + pdf_loc * pdf_fra_above_nuc ) * qsatl(i) / 100.
     697        ENDIF
    687698
    688699        IF ( pdf_fra_above_nuc .GT. eps ) THEN
     
    701712            qvapincld = gamma_cond(i) * qsat(i)
    702713            qiceincld = dqt_con / dcf_con(i) - gamma_cond(i) * qsat(i)
    703             tau_depsub = 1. / ( depo_coef_cirrus * qiceincld**(1./3.) * kappa_depsub )
    704             qvapincld_new = qsat(i) + ( qvapincld - qsat(i) ) * EXP( - dtime / 2. / tau_depsub )
     714            tauinv_depsub = depo_coef_cirrus * qiceincld**(1./3.) * kappa_depsub
     715            qvapincld_new = qsat(i) + ( qvapincld - qsat(i) ) &
     716                          * EXP( - dtime / 2. * tauinv_depsub )
    705717          ELSE
    706718            !--We keep the saturation adjustment hypothesis, and the vapor in the
     
    720732          qclr(i)    = qclr(i) - dqt_con
    721733
    722         ENDIF ! ok_warm_cloud, cf_cond .GT. eps
    723       ENDIF ! ( 1. - cldfra(i) ) .GT. eps
     734        ENDIF ! pdf_fra_above_nuc .GT. eps
     735      ELSE
     736        !--Default value for the clear sky distribution: homogeneous distribution
     737        pdf_alpha(i) = 1.
     738        pdf_gamma(i) = 1.
     739        pdf_scale(i) = 0.01
     740      ENDIF ! clrfra(i) .GT. eps
    724741
    725742
     
    826843        IF ( ok_unadjusted_clouds .AND. .NOT. ok_warm_cloud ) THEN
    827844          qiceinmix = ( qcld(i) - qvc(i) ) / cldfra(i) / ( 1. + clrfra_mix / cldfra_mix )
    828           tau_depsub = 1. / ( qiceinmix**(1./3.) * kappa_depsub )
    829           qvapinmix_lim = qsat(i) - qiceinmix / ( 1. - EXP( - dtime / tau_depsub ) )
     845          tauinv_depsub = qiceinmix**(1./3.) * kappa_depsub
     846          qvapinmix_lim = qsat(i) - qiceinmix / ( 1. - EXP( - dtime * tauinv_depsub ) )
    830847          qvapinclr_lim = qvapinmix_lim * ( 1. + cldfra_mix / clrfra_mix ) &
    831848                        - qvc(i) / cldfra(i) * cldfra_mix / clrfra_mix
    832849        ELSE
    833           !--NB. if tau_depsub = 0, we get the same result as above
     850          !--NB. if tau_depsub = 0 (ie tauinv_depsub = inf), we get the same result as above
    834851          qvapinclr_lim = qsat(i) * ( 1. + cldfra_mix / clrfra_mix ) &
    835852                        - qcld(i) / cldfra(i) * cldfra_mix / clrfra_mix
     
    851868          pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
    852869          pdf_x = qvapinclr_lim / qsatl(i) * 100.
    853           pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    854           pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    855           pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    856           pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
    857           pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
    858                           + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     870          pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     871          IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     872            pdf_fra_above_lim = 0.
     873            pdf_q_above_lim = 0.
     874          ELSEIF ( pdf_y .LT. -10. ) THEN
     875            pdf_fra_above_lim = 1.
     876            pdf_q_above_lim = qclr(i) / clrfra(i)
     877          ELSE
     878            pdf_y = EXP( pdf_y )
     879            pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     880            pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     881            pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
     882            pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
     883                              + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     884          ENDIF
    859885
    860886          pdf_fra_below_lim = clrfra(i) - pdf_fra_above_lim
    861           pdf_q_below_lim = qclr(i) - pdf_q_above_lim
    862887
    863888          !--sigma_mix is the ratio of the surroundings of the clouds where mixing
     
    10001025          pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
    10011026          pdf_x = qvapinclr_lim / qsatl(i) * 100.
    1002           pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    1003           pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    1004           pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    1005           pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
    1006           pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
    1007                           + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     1027          pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     1028          IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     1029            pdf_fra_above_lim = 0.
     1030            pdf_q_above_lim = 0.
     1031          ELSEIF ( pdf_y .LT. -10. ) THEN
     1032            pdf_fra_above_lim = 1.
     1033            pdf_q_above_lim = qclr(i) / clrfra(i)
     1034          ELSE
     1035            pdf_y = EXP( pdf_y )
     1036            pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     1037            pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     1038            pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
     1039            pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
     1040                              + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     1041          ENDIF
    10081042
    10091043          pdf_fra_below_lim = clrfra(i) - pdf_fra_above_lim
     
    10861120          qiceincld = qice_sedim(i) / cldfra_above(i)
    10871121          IF ( ok_unadjusted_clouds .AND. .NOT. ok_warm_cloud ) THEN
    1088             tau_depsub = 1. / ( qiceincld**(1./3.) * kappa_depsub )
    1089             qvapinclr_lim = qsat(i) - qiceincld / ( 1. - EXP( - dtime / tau_depsub ) )
     1122            tauinv_depsub = qiceincld**(1./3.) * kappa_depsub
     1123            qvapinclr_lim = qsat(i) - qiceincld / ( 1. - EXP( - dtime * tauinv_depsub ) )
    10901124          ELSE
    10911125            qvapinclr_lim = qsat(i) - qiceincld
     
    10951129          pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
    10961130          pdf_x = qvapinclr_lim / qsatl(i) * 100.
    1097           pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    1098           pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    1099           pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    1100           pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
    1101           pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
    1102                           + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     1131          pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     1132          IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     1133            pdf_fra_above_lim = 0.
     1134            pdf_q_above_lim = 0.
     1135          ELSEIF ( pdf_y .LT. -10. ) THEN
     1136            pdf_fra_above_lim = 1.
     1137            pdf_q_above_lim = qclr(i) / clrfra(i)
     1138          ELSE
     1139            pdf_y = EXP( pdf_y )
     1140            pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     1141            pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     1142            pdf_fra_above_lim = EXP( - pdf_y ) * clrfra(i)
     1143            pdf_q_above_lim = ( pdf_e3 * clrfra(i) &
     1144                              + pdf_loc * pdf_fra_above_lim ) * qsatl(i) / 100.
     1145          ENDIF
    11031146
    11041147          IF ( pdf_fra_above_lim .GT. eps ) THEN
     
    11401183        pdf_loc = rhl_clr - pdf_scale(i) * pdf_gamma(i)
    11411184        pdf_x = qsat(i) / qsatl(i) * 100.
    1142         pdf_y = ( MAX( pdf_x - pdf_loc, 0. ) / pdf_scale(i) ) ** pdf_alpha(i)
    1143         pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
    1144         pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
    1145         issrfra(i) = EXP( - pdf_y ) * clrfra(i)
    1146         qissr(i) = ( pdf_e3 * clrfra(i) + pdf_loc * issrfra(i) ) * qsatl(i) / 100.
     1185        pdf_y = LOG( MAX( pdf_x - pdf_loc, eps ) / pdf_scale(i) ) * pdf_alpha(i)
     1186        IF ( pdf_y .GT. 10. ) THEN !--Avoid overflows
     1187          issrfra(i) = 0.
     1188          qissr(i) = 0.
     1189        ELSEIF ( pdf_y .LT. -10. ) THEN
     1190          issrfra(i) = 1.
     1191          qissr(i) = qclr(i) / clrfra(i)
     1192        ELSE
     1193          pdf_y = EXP( pdf_y )
     1194          pdf_e3 = GAMMAINC ( 1. + 1. / pdf_alpha(i) , pdf_y )
     1195          pdf_e3 = pdf_scale(i) * ( 1. - pdf_e3 ) * pdf_gamma(i)
     1196          issrfra(i) = EXP( - pdf_y ) * clrfra(i)
     1197          qissr(i) = ( pdf_e3 * clrfra(i) + pdf_loc * issrfra(i) ) * qsatl(i) / 100.
     1198        ENDIF
    11471199      ELSE
    11481200        issrfra(i) = 0.
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp_precip.f90

    r5609 r5613  
    697697
    698698      iwcg = MAX( zrho(i) * zoliqi(i) / zneb(i) * 1000., eps ) ! iwc in g/m3
    699       tempc = zt(i) - RTT ! celcius temp
    700       ! so-called 'empirical parameterization' in Stubenrauch et al. 2019
    701       IF ( tempc .GE. -60. ) THEN
    702         icevelo = EXP( 1.9714 + 0.00216078 * tempc &
    703                 - ( 0.0000414122 * tempc**2 + 0.00538922 * tempc + 0.0516344 ) * LOG(iwcg) )
    704       ELSE
    705         icevelo = 65. * iwcg**0.2 * ( 15000. / pplay(i) )**0.15
    706       ENDIF
    707       icevelo = fallice_sedim * icevelo / 100.0 ! from cm/s to m/s
     699      !tempc = zt(i) - RTT ! celcius temp
     700      !! so-called 'empirical parameterization' in Stubenrauch et al. 2019
     701      !IF ( tempc .GE. -60. ) THEN
     702      !  icevelo = EXP( 1.9714 + 0.00216078 * tempc &
     703      !          - ( 0.0000414122 * tempc**2 + 0.00538922 * tempc + 0.0516344 ) * LOG(iwcg) )
     704      !ELSE
     705      !  icevelo = 65. * iwcg**0.2 * ( 15000. / pplay(i) )**0.15
     706      !ENDIF
     707      !icevelo = fallice_sedim * icevelo / 100.0 ! from cm/s to m/s
     708
     709      icevelo = fallice_sedim * 1.645 * ( iwcg / 1000. )**0.16
    708710
    709711      qice_sedim = zoliqi(i) * MIN(1., icevelo * dtime / zdz(i))
    710712      !--We remove the ice that was sedimentated in the gridbox (it cannot sedimentate two
    711713      !--times in the same timestep)
    712       !qice_sedim = MAX(0., qice_sedim - dqised(i) * dtime)
     714      qice_sedim = MAX(0., qice_sedim - dqised(i) * dtime)
    713715      !--Add tendencies
    714716      zoliqi(i) = zoliqi(i) - qice_sedim
     
    19641966      rho = pplay(i) / temp(i) / RD
    19651967      iwcg = MAX( rho * qice(i) / cldfra(i) * 1000., eps ) ! iwc in g/m3
    1966       tempc = temp(i) - RTT ! celcius temp
    1967       ! so-called 'empirical parameterization' in Stubenrauch et al. 2019
    1968       IF ( tempc .GE. -60. ) THEN
    1969         icevelo = EXP( 1.9714 + 0.00216078 * tempc &
    1970                 - ( 0.0000414122 * tempc**2 + 0.00538922 * tempc + 0.0516344 ) * LOG(iwcg) )
    1971       ELSE
    1972         icevelo = 65. * iwcg**0.2 * ( 15000. / pplay(i) )**0.15
    1973       ENDIF
    1974       icevelo = fallice_sedim * icevelo / 100.0 ! from cm/s to m/s
     1968      !tempc = temp(i) - RTT ! celcius temp
     1969      !! so-called 'empirical parameterization' in Stubenrauch et al. 2019
     1970      !IF ( tempc .GE. -60. ) THEN
     1971      !  icevelo = EXP( 1.9714 + 0.00216078 * tempc &
     1972      !          - ( 0.0000414122 * tempc**2 + 0.00538922 * tempc + 0.0516344 ) * LOG(iwcg) )
     1973      !ELSE
     1974      !  icevelo = 65. * iwcg**0.2 * ( 15000. / pplay(i) )**0.15
     1975      !ENDIF
     1976      !icevelo = fallice_sedim * icevelo / 100.0 ! from cm/s to m/s
     1977
     1978      icevelo = fallice_sedim * 1.645 * ( iwcg / 1000. )**0.16
    19751979
    19761980      dz = ( paprsdn(i) - paprsup(i) ) / RG / rho
    19771981      qice_sedim = qice(i) * MIN(1., icevelo * dtime / dz)
     1982      !--We remove the ice that was sedimentated in the gridbox (it cannot sedimentate two
     1983      !--times in the same timestep)
     1984      qice_sedim = MAX(0., qice_sedim - dqised(i) * dtime)
    19781985      !--Add tendencies
    19791986      qice(i) = qice(i) - qice_sedim
Note: See TracChangeset for help on using the changeset viewer.