wake Subroutine

public subroutine wake(znatsurf, p, ph, pi, dtime, te0, qe0, omgb, dtdwn, dqdwn, amdwn, amup, dta, dqa, wgen, sigd_con, Cin, deltatw, deltaqw, sigmaw, awdens, wdens, dth, hw, wape, fip, gfl, dtls, dqls, ktopw, omgbdth, dp_omgb, tu, qu, dtke, dqke, omg, dp_deltomg, spread, cstar, d_deltat_gw, d_deltatw2, d_deltaqw2, d_sigmaw2, d_awdens2, d_wdens2)

Uses

  • proc~~wake~2~~UsesGraph proc~wake~2 wake module~cvthermo_mod_h cvthermo_mod_h proc~wake~2->module~cvthermo_mod_h module~yomcst_mod_h yomcst_mod_h proc~wake~2->module~yomcst_mod_h module~dimphy~3 dimphy proc~wake~2->module~dimphy~3 module~mod_phys_lmdz_para mod_phys_lmdz_para proc~wake~2->module~mod_phys_lmdz_para module~ioipsl_getin_p_mod ioipsl_getin_p_mod proc~wake~2->module~ioipsl_getin_p_mod module~print_control_mod print_control_mod proc~wake~2->module~print_control_mod module~mod_phys_lmdz_transfert_para mod_phys_lmdz_transfert_para module~mod_phys_lmdz_para->module~mod_phys_lmdz_transfert_para module~mod_phys_lmdz_mpi_data mod_phys_lmdz_mpi_data module~mod_phys_lmdz_para->module~mod_phys_lmdz_mpi_data module~mod_phys_lmdz_omp_data mod_phys_lmdz_omp_data module~mod_phys_lmdz_para->module~mod_phys_lmdz_omp_data module~ioipsl_getin_p_mod->module~mod_phys_lmdz_para module~ioipsl_getin_p_mod->module~mod_phys_lmdz_transfert_para ioipsl ioipsl module~ioipsl_getin_p_mod->ioipsl module~strings_mod strings_mod module~ioipsl_getin_p_mod->module~strings_mod module~mod_phys_lmdz_mpi_transfert mod_phys_lmdz_mpi_transfert module~mod_phys_lmdz_transfert_para->module~mod_phys_lmdz_mpi_transfert module~mod_phys_lmdz_omp_transfert mod_phys_lmdz_omp_transfert module~mod_phys_lmdz_transfert_para->module~mod_phys_lmdz_omp_transfert module~lmdz_mpi lmdz_mpi module~mod_phys_lmdz_mpi_data->module~lmdz_mpi module~lmdz_cppkeys_wrapper lmdz_cppkeys_wrapper module~mod_phys_lmdz_mpi_data->module~lmdz_cppkeys_wrapper iso_fortran_env iso_fortran_env module~strings_mod->iso_fortran_env module~lmdz_cppkeys_wrapper->iso_fortran_env netcdf netcdf module~lmdz_cppkeys_wrapper->netcdf

DATA wdensmin/1.e-12/ wdens_ref=8.E-12 CALL getin_p('wdens_ref',wdens_ref) jyg !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! Population dynamics parameters !!!!!!!!!!!!!!!!!!!!!!!!!!!! WRITE(,) 'wdens_ref=', wdens_ref jyg wdens(:) = wdens_ref jyg

DO k = 1, klev DO i = 1, klon ppi(i, k) = pi(i, k) deltatw0(i, k) = deltatw(i, k) deltaqw0(i, k) = deltaqw(i, k) te(i, k) = te0(i, k) qe(i, k) = qe0(i, k) dtls(i, k) = 0. dqls(i, k) = 0. d_deltat_gw(i, k) = 0. d_te(i, k) = 0. d_qe(i, k) = 0. d_deltatw(i, k) = 0. d_deltaqw(i, k) = 0. ! IM 060508 beg d_deltatw2(i, k) = 0. d_deltaqw2(i, k) = 0. ! IM 060508 end END DO END DO DO i = 1, klon sigmaw_in(i) = sigmaw(i) END DO jyg sigmaw(i) = amax1(sigmaw(i), sigmad) sigmaw(i) = amin1(sigmaw(i), 0.99) jyg

wdens(:) = wdens(:) + wgen(:)*dtime
d_wdens2(:) = wgen(:)*dtime

ELSE jyg sigmaw(i) = amax1(sigmad, sigd_con(i)) jyg sigmaw(i) = amin1(sigmaw(i), sigmaw_max) jyg tau_wk(i) = max(rad_wk(i)/(3.cstar(i))((cstar(i)/cstart)1.5 - 1), 100.) (1 - 2sigmaw(i)(1.-f_shear(i))) d_wdens(i) = ( wgen(i)(1.+2.(sigmaw(i)-sigmad)) & - wdens(i)tau_wk_inv_min & - 2.gfl(i)wdens(i)Cstar(i) )dtimesub d_sigmaw(i) = ( (1.-2f_shear(i)sigmaw(i))(gfl(i)Cstar(i)+wgen(i)sigmad/wdens(i)) & + 2.f_shear(i)wgen(i)*sigmaw(i)2/wdens(i) & - sigmaw(i)tau_wk_inv_min )dtimesub d_sig_col(i) = - 2f_shear(i)sigmaw(i)gfl(i)drdt_pos ! nrlmd ! nrlmd print *,'omg(igout,k) ', (k,omg(igout,k),k=1,klev)

! nrlmd detr(i, k) = 0.

        entr(i, k) = detr(i, k) + gfl(i)*cstar(i) + &
          sigmaw(i)*(1.-sigmaw(i))*dp_deltomg(i, k)

jyg

jyg ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd ! nrlmd sigmaw(i) = max(sigmad, sigd_con(i)) jyg print ,'wake, hw0(i), dthmin(i) ', hw0(i), dthmin(i) print ,'wake, 2.sum_dth(i)/(hw0(i)dthmin(i)) ', & 2.sum_dth(i)/(hw0(i)dthmin(i)) print ,'wake, sum_half_dth(i), sum_dth(i) ', & sum_half_dth(i), sum_dth(i) print ,'wake, rej 1' print ,'wake, rej 2' print ,'wake, rej 3' sigmaw(i) = amax1(sigmad, sigd_con(i)) jyg jyg jyg IF (((wape(i)>=wape2(i)) .AND. (wape2(i)<=wapecut)) .OR. (ktopw(i)<=2) .OR. & jyg .NOT. ok_qx_qw(i)) THEN jyg IF (((wape(i)>=wape2(i)) .AND. (wape2(i)<=wapecut)) .OR. (ktopw(i)<=2) .OR. & jyg .NOT. ok_qx_qw(i)) THEN jyg Outside subroutine "Wake" hw, wdens and sigmaw are zero when there are no wakes hw(i) = hwmin !jyg sigmaw(i) = sigmad !jyg sigmaw(i) = 0. !jyg awdens(i) = 0. wdens(i) = 0. IF (ok_qx_qw(i) .AND. k<=kupper(i)) THEN jyg jyg

Arguments

Type IntentOptional Attributes Name
integer, intent(in), DIMENSION (klon) :: znatsurf
real, intent(in), DIMENSION (klon, klev) :: p
real, intent(in), DIMENSION (klon, klev+1) :: ph
real, intent(in), DIMENSION (klon, klev) :: pi
real, intent(in) :: dtime
real, intent(in), DIMENSION (klon, klev) :: te0
real, intent(in), DIMENSION (klon, klev) :: qe0
real, intent(in), DIMENSION (klon, klev) :: omgb
real, intent(in), DIMENSION (klon, klev) :: dtdwn
real, intent(in), DIMENSION (klon, klev) :: dqdwn
real, intent(in), DIMENSION (klon, klev) :: amdwn
real, intent(in), DIMENSION (klon, klev) :: amup
real, intent(in), DIMENSION (klon, klev) :: dta
real, intent(in), DIMENSION (klon, klev) :: dqa
real, intent(in), DIMENSION (klon) :: wgen
real, intent(in), DIMENSION (klon) :: sigd_con
real, intent(in), DIMENSION (klon) :: Cin
real, intent(inout), DIMENSION (klon, klev) :: deltatw
real, intent(inout), DIMENSION (klon, klev) :: deltaqw
real, intent(inout), DIMENSION (klon) :: sigmaw
real, intent(inout), DIMENSION (klon) :: awdens
real, intent(inout), DIMENSION (klon) :: wdens
real, intent(out), DIMENSION (klon, klev) :: dth
real, intent(out), DIMENSION (klon) :: hw
real, intent(out), DIMENSION (klon) :: wape
real, intent(out), DIMENSION (klon) :: fip
real, intent(out), DIMENSION (klon) :: gfl
real, intent(out), DIMENSION (klon, klev) :: dtls
real, intent(out), DIMENSION (klon, klev) :: dqls
integer, intent(out), DIMENSION (klon) :: ktopw
real, intent(out), DIMENSION (klon, klev) :: omgbdth
real, intent(out), DIMENSION (klon, klev) :: dp_omgb
real, intent(out), DIMENSION (klon, klev) :: tu
real, intent(out), DIMENSION (klon, klev) :: qu
real, intent(out), DIMENSION (klon, klev) :: dtke
real, intent(out), DIMENSION (klon, klev) :: dqke
real, intent(out), DIMENSION (klon, klev) :: omg
real, intent(out), DIMENSION (klon, klev) :: dp_deltomg
real, intent(out), DIMENSION (klon, klev) :: spread
real, intent(out), DIMENSION (klon) :: cstar
real, intent(out), DIMENSION (klon, klev) :: d_deltat_gw
real, intent(out), DIMENSION (klon, klev) :: d_deltatw2
real, intent(out), DIMENSION (klon, klev) :: d_deltaqw2
real, intent(out), DIMENSION (klon) :: d_sigmaw2
real, intent(out), DIMENSION (klon) :: d_awdens2
real, intent(out), DIMENSION (klon) :: d_wdens2

Calls

proc~~wake~2~~CallsGraph proc~wake~2 wake interface~getin_p getin_p proc~wake~2->interface~getin_p proc~wake_vec_modulation~2 wake_vec_modulation proc~wake~2->proc~wake_vec_modulation~2 amin1 amin1 proc~wake~2->amin1 amax1 amax1 proc~wake~2->amax1

Contents