Ignore:
Timestamp:
Jul 15, 2020, 10:14:37 PM (4 years ago)
Author:
adurocher
Message:

Use cvl_comp_threshold to control whether to use compression or not

cvl_comp_threshold now defaults to 0 (never compress)

Location:
LMDZ6/branches/Optimisation_LMDZ/libf/phylmd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/conf_phys_m.F90

    r3630 r3765  
    291291    !
    292292    !Config Key  = ok_all_xml
    293     !Config Desc = utiliser les xml pourles définitions des champs pour xios
     293    !Config Desc = utiliser les xml pourles dfinitions des champs pour xios
    294294    !Config Def  = .FALSE.
    295295    !Config Help =
     
    836836    !Config  Desc = Flag de fisrtilp
    837837    !Config  Def  = 0
    838     !Config  Help = Flag  pour la pluie grande-échelle les options suivantes existent :
     838    !Config  Help = Flag  pour la pluie grande-chelle les options suivantes existent :
    839839    !Config         >1 nb iterations pour converger dans le calcul de qsat
    840840    iflag_fisrtilp_qsat_omp = 0
     
    844844    !Config  Desc = Flag de fisrtilp
    845845    !Config  Def  = 0
    846     !Config  Help = Flag  pour la pluie grande-échelle les options suivantes existent :
     846    !Config  Help = Flag  pour la pluie grande-chelle les options suivantes existent :
    847847    !Config         0 pas d effet Bergeron
    848848    !Config         1 effet Bergeron pour T<0
     
    860860    !Config key  = cvl_comp_threshold
    861861    !Config Desc = maximum fraction of convective points enabling compression
    862     !Config Def  = 1.00
     862    !Config Def  = 0.
    863863    !Config Help = fields are compressed when less than a fraction cvl_comp_threshold
    864864    !Config Help = of the points is convective.
    865     cvl_comp_threshold_omp = 1.00
     865    cvl_comp_threshold_omp = 0.
    866866    CALL getin('cvl_comp_threshold', cvl_comp_threshold_omp)
    867867
  • LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/cv3a_driver.f90

    r3764 r3765  
    141141  SUBROUTINE cv3a_driver(len, nd, ndp1, ntra, nloc, k_upper, &
    142142                         iflag_con, iflag_mix, iflag_ice_thermo, iflag_clos, ok_conserv_q, &
    143                          delt, &
     143                         delt, comp_threshold, &
    144144                         t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, &
    145145                         u1, v1, &
     
    181181    REAL, INTENT(IN)                                  :: coefw_cld_cv ! coefficient for updraft velocity in convection
    182182    REAL, INTENT(IN)                                  :: delt ! time step
     183    REAL, INTENT (IN)                                 :: comp_threshold
    183184    REAL, DIMENSION(len, nd), INTENT(IN)             :: t1 ! temperature (sat draught envt)
    184185    REAL, DIMENSION(len, nd), INTENT(IN)             :: q1 ! specific hum (sat draught envt)
     
    406407! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    407408
    408     compress = .false.
     409    ! Compression has 3 possible modes:
     410    ! 1) Compress = true :
     411    compress_mode = COMPRESS_MODE_COMPRESS ! 1.1) Copy convective cells in contiguous array
     412    !compress_mode = COMPRESS_MODE_COPY ! 1.2) Copy all cells and also compute on non-convective cells
     413    ! 2) Compress = false : Don't copy and use original arrays, compute on non-convective cells
     414    ! Never compress when comp_threshold = 0, always compress when comp_threshold = 1
     415    ! comp_threshold = 0 (default) offers best performance when using many CPUs
     416    compress = (comp_threshold == 1) .or. ( get_compress_size(len, (iflag1(:) == 0)) < len*comp_threshold )
     417
    409418    if (compress) then
    410       compress_mode = COMPRESS_MODE_COMPRESS
    411       !compress_mode = COMPRESS_MODE_COPY
    412 
    413419      nloc = get_compress_size(len, (iflag1(:) == 0))
    414420
  • LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/cva_driver.F90

    r3758 r3765  
    127127    call cv3a_driver(len, nd, ndp1, ntra, nloc, k_upper, &
    128128                iflag_con, iflag_mix, iflag_ice_thermo, iflag_clos, ok_conserv_q, &
    129                 delt, &
     129                delt, comp_threshold, &
    130130                t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, &
    131131                u1, v1, &
Note: See TracChangeset for help on using the changeset viewer.