Ignore:
Timestamp:
Mar 30, 2015, 11:08:45 AM (9 years ago)
Author:
jyg
Message:

1/ Introduction of two variables in the ".def" files: (i) cvl_sig2feed is
the top of the convective feeding layer in sigma coordinates (D=0.97);
(ii) cvl_comp_threshold is the threshold fraction of convective points
below which compression occurs (D=1.).
2/ Corrections of various bugs revealed by the changes in compression:

  • correct bugs in cv3a_uncompress.F90 for 3 fields used for convective

scavenging.

  • add a reset to zero of "sig" and "w0" for non-convective points

(cva_driver.F90).

  • in cv3_routines.F90, correct bounds of a few loops in cv3_undilute2,

correct the reset of the no-convection counter in cv3_yield.

  • in phys_output_write_mod.F90, correct output of wdtrainA and wdtrainM.

3/ Improve declarations in various subroutines.

Modified files:

conema3.h
cv3param.h
cv3p1_closure.F90
conf_phys_m.F90
cv3a_compress.F90
phys_output_write_mod.F90
cv3_routines.F90
concvl.F90
cva_driver.F90
cv3a_uncompress.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cv3p1_closure.F90

    r2224 r2253  
    2929
    3030  ! input:
    31   INTEGER ncum, nd, nloc
    32   INTEGER icb(nloc), inb(nloc)
    33   REAL pbase(nloc), plcl(nloc)
    34   REAL p(nloc, nd), ph(nloc, nd+1)
    35   REAL tv(nloc, nd), tvp(nloc, nd), buoy(nloc, nd)
    36   REAL supmax(nloc, nd)
    37   LOGICAL ok_inhib ! enable convection inhibition by dryness
    38   REAL ale(nloc), alp(nloc)
    39   REAL omega(nloc,nd)
     31  INTEGER, INTENT (IN)                               :: ncum, nd, nloc
     32  INTEGER, DIMENSION (nloc), INTENT (IN)             :: icb, inb
     33  REAL, DIMENSION (nloc), INTENT (IN)                :: pbase, plcl
     34  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: p
     35  REAL, DIMENSION (nloc, nd+1), INTENT (IN)          :: ph
     36  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: tv, tvp, buoy
     37  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: supmax
     38  LOGICAL, INTENT (IN)                               :: ok_inhib ! enable convection inhibition by dryness
     39  REAL, DIMENSION (nloc), INTENT (IN)                :: ale, alp
     40  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: omega
    4041
    4142  ! input/output:
    42   REAL sig(nloc, nd), w0(nloc, nd), ptop2(nloc)
     43  REAL, DIMENSION (nloc, nd), INTENT (INOUT)         :: sig, w0
     44  REAL, DIMENSION (nloc), INTENT (INOUT)             :: ptop2
    4345
    4446  ! output:
    45   REAL cape(nloc), cin(nloc)
    46   REAL m(nloc, nd)
    47   REAL plim1(nloc), plim2(nloc)
    48   REAL asupmax(nloc, nd), supmax0(nloc)
    49   REAL asupmaxmin(nloc)
    50   REAL cbmf(nloc), plfc(nloc)
    51   REAL wbeff(nloc)
    52   INTEGER iflag(nloc)
     47  REAL, DIMENSION (nloc), INTENT (OUT)               :: cape, cin
     48  REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: m
     49  REAL, DIMENSION (nloc), INTENT (OUT)               :: plim1, plim2
     50  REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: asupmax
     51  REAL, DIMENSION (nloc), INTENT (OUT)               :: supmax0
     52  REAL, DIMENSION (nloc), INTENT (OUT)               :: asupmaxmin
     53  REAL, DIMENSION (nloc), INTENT (OUT)               :: cbmf, plfc
     54  REAL, DIMENSION (nloc), INTENT (OUT)               :: wbeff
     55  INTEGER, DIMENSION (nloc), INTENT (OUT)            :: iflag
    5356
    5457  ! local variables:
     
    9194
    9295
    93 
    9496  DO il = 1, ncum
    9597    alp2(il) = max(alp(il), 1.E-5)
     
    498500  IF (prt_level>=20) PRINT *, 'cv3p1_param apres cbmflim'
    499501
    500   ! c 1.5 Compute cloud base mass flux given by Alp closure (Cbmf1), maximum
    501   ! c     allowed mass flux (Cbmfmax) and final target mass flux (Cbmf)
    502   ! c     Cbmf is set to zero if Cbmflim (the mass flux of elementary cloud)
    503   ! is
    504   ! --    exceedingly small.
     502  ! 1.5 Compute cloud base mass flux given by Alp closure (Cbmf1), maximum
     503  !     allowed mass flux (Cbmfmax) and final target mass flux (Cbmf)
     504  !     Cbmf is set to zero if Cbmflim (the mass flux of elementary cloud)
     505  !     is exceedingly small.
    505506
    506507  DO il = 1, ncum
Note: See TracChangeset for help on using the changeset viewer.