wake_popdyn_3 Subroutine

public subroutine wake_popdyn_3(klon, klev, phys_sub, wk_adv, dtimesub, wgen, wdensmin, sigmaw, asigmaw, wdens, awdens, gfl, agfl, cstar, cin, wape, rad_wk, arad_wk, irad_wk, d_sigmaw, d_asigmaw, d_wdens, d_awdens, d_sig_gen, d_sig_death, d_sig_col, d_sig_spread, d_sig_bnd, d_asig_death, d_asig_aicol, d_asig_iicol, d_asig_spread, d_asig_bnd, d_dens_gen, d_dens_death, d_dens_col, d_dens_bnd, d_adens_death, d_adens_icol, d_adens_acol, d_adens_bnd)

Uses

  • proc~~wake_popdyn_3~~UsesGraph proc~wake_popdyn_3 wake_popdyn_3 module~lmdz_wake_ini lmdz_wake_ini proc~wake_popdyn_3->module~lmdz_wake_ini

state variables tendencies

USE lmdz_wake_ini , ONLY : iflag_wk_pop_dyn, wdensmin tau_wk_inv(i) = max( (3.cstar(i))/(irad_wk(i)((cstar(i)/cstart)1.5 - 1)), 0.) d_sig_bnd(i) = d_sig_bnd(i) + d_sigmaw_targ - d_sigmaw(i) d_sig_bnd_provis(i) = d_sigmaw_targ - d_sigmaw(i) d_sigmaw(i) = max(d_sigmaw(i), sigmad-sigmaw(i)) Bug : factor 2 omitted by mistake (bug found by Lamine Thiam) d_asig_aicol(i) = (agfl(i)iwdens(i) + igfl(i)awdens(i))cstar(i)is_wk(i) d_dens_bnd(i) = d_dens_bnd(i) + d_sigmaw_targ - d_sigmaw(i)

     d_dens_bnd(i) = d_dens_bnd(i) + d_wdens_targ - d_wdens(i)
     d_dens_bnd(i) = d_dens_bnd(i) + d_wdens_targ - d_wdens(i)
     d_irad(i) = (d_sigmaw(i)-d_asigmaw(i)-isigmaw(i)*(d_wdens(i)-awdens(i))/iwdens(i)) / &
                 max(smallestreal,(2.*3.14*iwdens(i)*irad_wk(i)))
     d_arad(i) = (d_asigmaw(i)-asigmaw(i)*d_awdens(i)/awdens(i)) / &
                 max(smallestreal,(2.*3.14*awdens(i)*arad_wk(i)))
     d_irad(i) = d_irad(i)*dtimesub
     d_arad(i) = d_arad(i)*dtimesub
     call iophys_ecrit('d_irad',1,'d_irad','m',d_irad)
     call iophys_ecrit('d_airad',1,'d_arad','m',d_arad)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: klon
integer, intent(in) :: klev
logical, intent(in) :: phys_sub
logical, intent(in), DIMENSION (klon) :: wk_adv
real, intent(in) :: dtimesub
real, intent(in), DIMENSION (klon) :: wgen

B = birth rate of wakes

real, intent(in) :: wdensmin
real, intent(inout), DIMENSION (klon) :: sigmaw

sigma = fractional area of wakes

real, intent(inout), DIMENSION (klon) :: asigmaw

sigma = fractional area of active wakes

real, intent(inout), DIMENSION (klon) :: wdens

D = number of wakes per unit area

real, intent(inout), DIMENSION (klon) :: awdens

A = number of active wakes per unit area

real, intent(out), DIMENSION (klon) :: gfl

Lg = gust front length per unit area

real, intent(out), DIMENSION (klon) :: agfl

LgA = gust front length of active wakes per unit area

real, intent(in), DIMENSION (klon) :: cstar

C* = spreading velocity of wakes

real, intent(in), DIMENSION (klon) :: cin
real, intent(in), DIMENSION (klon) :: wape
real, intent(out), DIMENSION (klon) :: rad_wk

r = mean wake radius

real, intent(out), DIMENSION (klon) :: arad_wk

r_A = wake radius of active wakes

real, intent(out), DIMENSION (klon) :: irad_wk

r_I = wake radius of inactive wakes

real, intent(out), DIMENSION (klon) :: d_sigmaw
real, intent(out), DIMENSION (klon) :: d_asigmaw
real, intent(out), DIMENSION (klon) :: d_wdens
real, intent(out), DIMENSION (klon) :: d_awdens
real, intent(out), DIMENSION (klon) :: d_sig_gen
real, intent(out), DIMENSION (klon) :: d_sig_death
real, intent(out), DIMENSION (klon) :: d_sig_col
real, intent(out), DIMENSION (klon) :: d_sig_spread
real, intent(out), DIMENSION (klon) :: d_sig_bnd
real, intent(out), DIMENSION (klon) :: d_asig_death
real, intent(out), DIMENSION (klon) :: d_asig_aicol
real, intent(out), DIMENSION (klon) :: d_asig_iicol
real, intent(out), DIMENSION (klon) :: d_asig_spread
real, intent(out), DIMENSION (klon) :: d_asig_bnd
real, intent(out), DIMENSION (klon) :: d_dens_gen
real, intent(out), DIMENSION (klon) :: d_dens_death
real, intent(out), DIMENSION (klon) :: d_dens_col
real, intent(out), DIMENSION (klon) :: d_dens_bnd
real, intent(out), DIMENSION (klon) :: d_adens_death

internal variables

real, intent(out), DIMENSION (klon) :: d_adens_icol

internal variables

real, intent(out), DIMENSION (klon) :: d_adens_acol

internal variables

real, intent(out), DIMENSION (klon) :: d_adens_bnd

internal variables


Calls

proc~~wake_popdyn_3~~CallsGraph proc~wake_popdyn_3 wake_popdyn_3 proc~iophys_ecrit iophys_ecrit proc~wake_popdyn_3->proc~iophys_ecrit interface~gather gather proc~iophys_ecrit->interface~gather interface~grid1dto2d_glo grid1dTo2d_glo proc~iophys_ecrit->interface~grid1dto2d_glo proc~iotd_ecrit iotd_ecrit proc~iophys_ecrit->proc~iotd_ecrit proc~gather_l gather_l interface~gather->proc~gather_l proc~gather_i3 gather_i3 interface~gather->proc~gather_i3 proc~gather_r1 gather_r1 interface~gather->proc~gather_r1 proc~gather_l3 gather_l3 interface~gather->proc~gather_l3 proc~gather_r3 gather_r3 interface~gather->proc~gather_r3 proc~gather_r gather_r interface~gather->proc~gather_r proc~gather_r2 gather_r2 interface~gather->proc~gather_r2 proc~gather_l2 gather_l2 interface~gather->proc~gather_l2 proc~gather_i1 gather_i1 interface~gather->proc~gather_i1 proc~gather_i2 gather_i2 interface~gather->proc~gather_i2 proc~gather_l1 gather_l1 interface~gather->proc~gather_l1 proc~gather_i gather_i interface~gather->proc~gather_i proc~grid1dto2d_glo_i grid1dTo2d_glo_i interface~grid1dto2d_glo->proc~grid1dto2d_glo_i proc~grid1dto2d_glo_r3 grid1dTo2d_glo_r3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r3 proc~grid1dto2d_glo_l3 grid1dTo2d_glo_l3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l3 proc~grid1dto2d_glo_l2 grid1dTo2d_glo_l2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l2 proc~grid1dto2d_glo_i3 grid1dTo2d_glo_i3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i3 proc~grid1dto2d_glo_i2 grid1dTo2d_glo_i2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i2 proc~grid1dto2d_glo_l grid1dTo2d_glo_l interface~grid1dto2d_glo->proc~grid1dto2d_glo_l proc~grid1dto2d_glo_i1 grid1dTo2d_glo_i1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i1 proc~grid1dto2d_glo_r2 grid1dTo2d_glo_r2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r2 proc~grid1dto2d_glo_r1 grid1dTo2d_glo_r1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r1 proc~grid1dto2d_glo_l1 grid1dTo2d_glo_l1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l1 proc~grid1dto2d_glo_r grid1dTo2d_glo_r interface~grid1dto2d_glo->proc~grid1dto2d_glo_r nf90_redef nf90_redef proc~iotd_ecrit->nf90_redef nf90_enddef nf90_enddef proc~iotd_ecrit->nf90_enddef nf90_def_var nf90_def_var proc~iotd_ecrit->nf90_def_var nf90_sync nf90_sync proc~iotd_ecrit->nf90_sync nf90_put_var nf90_put_var proc~iotd_ecrit->nf90_put_var nf90_inq_varid nf90_inq_varid proc~iotd_ecrit->nf90_inq_varid interface~gather_omp gather_omp proc~gather_l->interface~gather_omp interface~gather_mpi gather_mpi proc~gather_l->interface~gather_mpi proc~gather_i3->interface~gather_omp proc~gather_i3->interface~gather_mpi proc~gather_r1->interface~gather_omp proc~gather_r1->interface~gather_mpi proc~gather_l3->interface~gather_omp proc~gather_l3->interface~gather_mpi proc~gather_r3->interface~gather_omp proc~gather_r3->interface~gather_mpi proc~gather_r->interface~gather_omp proc~gather_r->interface~gather_mpi proc~gather_r2->interface~gather_omp proc~gather_r2->interface~gather_mpi proc~gather_l2->interface~gather_omp proc~gather_l2->interface~gather_mpi proc~gather_i1->interface~gather_omp proc~gather_i1->interface~gather_mpi proc~gather_i2->interface~gather_omp proc~gather_i2->interface~gather_mpi proc~gather_l1->interface~gather_omp proc~gather_l1->interface~gather_mpi proc~gather_i->interface~gather_omp proc~gather_i->interface~gather_mpi proc~gather_mpi_i3 gather_mpi_i3 interface~gather_mpi->proc~gather_mpi_i3 proc~gather_mpi_r3 gather_mpi_r3 interface~gather_mpi->proc~gather_mpi_r3 proc~gather_mpi_l3 gather_mpi_l3 interface~gather_mpi->proc~gather_mpi_l3 proc~gather_mpi_i gather_mpi_i interface~gather_mpi->proc~gather_mpi_i proc~gather_mpi_i2 gather_mpi_i2 interface~gather_mpi->proc~gather_mpi_i2 proc~gather_mpi_l1 gather_mpi_l1 interface~gather_mpi->proc~gather_mpi_l1 proc~gather_mpi_l gather_mpi_l interface~gather_mpi->proc~gather_mpi_l proc~gather_mpi_l2 gather_mpi_l2 interface~gather_mpi->proc~gather_mpi_l2 proc~gather_mpi_r gather_mpi_r interface~gather_mpi->proc~gather_mpi_r proc~gather_mpi_i1 gather_mpi_i1 interface~gather_mpi->proc~gather_mpi_i1 proc~gather_mpi_r2 gather_mpi_r2 interface~gather_mpi->proc~gather_mpi_r2 proc~gather_mpi_r1 gather_mpi_r1 interface~gather_mpi->proc~gather_mpi_r1 proc~gather_mpi_igen gather_mpi_igen proc~gather_mpi_i3->proc~gather_mpi_igen proc~gather_mpi_rgen gather_mpi_rgen proc~gather_mpi_r3->proc~gather_mpi_rgen proc~gather_mpi_lgen gather_mpi_lgen proc~gather_mpi_l3->proc~gather_mpi_lgen proc~gather_mpi_i->proc~gather_mpi_igen proc~gather_mpi_i2->proc~gather_mpi_igen proc~gather_mpi_l1->proc~gather_mpi_lgen proc~gather_mpi_l->proc~gather_mpi_lgen proc~gather_mpi_l2->proc~gather_mpi_lgen proc~gather_mpi_r->proc~gather_mpi_rgen proc~gather_mpi_i1->proc~gather_mpi_igen proc~gather_mpi_r2->proc~gather_mpi_rgen proc~gather_mpi_r1->proc~gather_mpi_rgen proc~mpi_gatherv MPI_GATHERV proc~gather_mpi_igen->proc~mpi_gatherv proc~gather_mpi_rgen->proc~mpi_gatherv proc~gather_mpi_lgen->proc~mpi_gatherv proc~lmdz_mpi_wrapper_abort lmdz_mpi_wrapper_abort proc~mpi_gatherv->proc~lmdz_mpi_wrapper_abort

Called by

proc~~wake_popdyn_3~~CalledByGraph proc~wake_popdyn_3 wake_popdyn_3 proc~wake wake proc~wake->proc~wake_popdyn_3 proc~wake2 wake2 proc~wake2->proc~wake_popdyn_3 proc~wake3 wake3 proc~wake3->proc~wake_popdyn_3 proc~calwake calwake proc~calwake->proc~wake proc~calwake->proc~wake2 proc~calwake->proc~wake3 proc~calwake~2 calwake proc~calwake~2->proc~wake proc~physiq physiq proc~physiq->proc~calwake proc~physiq~2 physiq proc~physiq~2->proc~calwake~2 proc~old_lmdz1d old_lmdz1d proc~old_lmdz1d->proc~physiq proc~call_physiq call_physiq proc~call_physiq->proc~physiq proc~call_physiq~2 call_physiq proc~call_physiq~2->proc~physiq proc~scm scm proc~scm->proc~physiq program~lmdz1d lmdz1d program~lmdz1d->proc~old_lmdz1d program~lmdz1d->proc~scm proc~calfis calfis proc~calfis->proc~call_physiq proc~leapfrog leapfrog proc~leapfrog->proc~calfis program~gcm~2 gcm program~gcm~2->proc~leapfrog

Contents