def _make_phase_block(phase, number=1, name="", scale_down=1.0):
  """Create a pcr phase block skelleton with placeholder strings for different
  refinement options.

  (for internal use)

  :param phase: a crystal structucture
  :type phase: cctbx.xray_structure
  :param number: the number of the phase
  :type number: integer
  :param name: a title to be used for the phase in the pcr file
  :type name: string
  :param scale_down: factor to divide intensities by (to avoid overflows)
  :type scale_down: float

  :returns: the pcr phase block skelleton as a string
  :rtype: string
  """
  phase.make_scatterer_labels_shelx_compatible_in_place()
  if name =="":
    name = "Phase_{0}".format(number)
  scatt = phase.scatterers()
  symm = phase.crystal_symmetry()
  tmp = """\
!-------------------------------------------------------------------------------
!  Data for PHASE number:  {number}  ==> Current R_Bragg for Pattern#  {number}:
!-------------------------------------------------------------------------------
 {name:s}
!
!Nat Dis Ang Pr1 Pr2 Pr3 Jbt Irf Isy Str Furth       ATZ    Nvk Npr More
{nat:>4d}   0  0  0.0 0.0 0.0   0   0   0   0   0        {atz}    0   0   0
!
{space_group}               <--Space group symbol
!Atom   Typ       X        Y        Z     Biso       Occ     In Fin N_t Spc /Codes
""".format(number=number,
           name=name,
           nat=len(scatt),
           atz=0.0,
           space_group=symm.space_group_info() )
  for atom in scatt:
    tmp += """\
{lbl:s}     {stype:s}      {x:f}  {y:f}  {z:f}  {biso:7.5f}  {occ:7.5f}   0   0   0    0
             ##_ap*_## ##_ap*_## ##_ap*_##     0.00      0.00\n""".format(
                                      lbl=atom.label,
                                      stype=atom.element_symbol(),
                                      x=atom.site[0],
                                      y=atom.site[1],
                                      z=atom.site[2],
                                      biso=atom.b_iso(),
                                      occ=atom.occupancy)
  a, b, c, alpha, beta, gamma = symm.unit_cell().parameters()
  tmp += """\
!-------> Profile Parameters for Pattern #  1
!  Scale        Shape1      Bov      Str1      Str2      Str3   Strain-Model
  {scale:f}       0.10033   0.03837   0.00000   0.00000   0.00000      0
##_scf_##    ##_shp1.{n}_## ##_shp2.{n}_##   0.000    0.000     0.000
!       U         V          W           X          Y        GauSiz   LorSiz Size-Model
   1.706310  -1.179299   0.405540   0.000000   0.000000   0.000000   0.000000    0
 ##_prfu.{n}_## ##_prfv.{n}_##  ##_prfw.{n}_##      0.000      0.000      0.000      0.000
!     a          b         c        alpha      beta       gamma      #Cell Info
   {a:f}  {b:f}  {c:f}  {alpha:f}  {beta:f}   {gamma:f}\n""".format(
                                    scale=0.01/scale_down,
                                    a=a, b=b, c=c,
                                    alpha=alpha, beta=beta, gamma=gamma, n=number)
  # make contraints from symmetry
  def __constraints_from_symm(xtal_system):
    xtal_system = xtal_system.lower()
    if xtal_system == "triclinic":
      return "  ##_lp1.{0}_## ##_lp2.{0}_## ##_lp3.{0}_## ##_lp4.{0}_## ##_lp5.{0}_## ##_lp6.{0}_##".format(number)
    elif xtal_system == "monoclinic":
      return "  ##_lp1.{0}_## ##_lp2.{0}_## ##_lp3.{0}_## ##_lp4.{0}_##     0.00 ##_lp5.{0}_##".format(number)
    elif xtal_system == "orthorhombic":
      return "  ##_lp1.{0}_## ##_lp2.{0}_## ##_lp3.{0}_##     0.00     0.00     0.00".format(number)
    elif xtal_system in ["trigonal", "hexagonal", "tetragonal"]:
      return "  ##_lp1.{0}_## ##_lp1.{0}_## ##_lp2.{0}_##     0.00     0.00     0.00".format(number)
    elif xtal_system == "cubic":
      return "  ##_lp1.{0}_## ##_lp1.{0}_## ##_lp1.{0}_##     0.00     0.00     0.00".format(number)
    else:
      return "     0.00     0.00     0.00     0.00     0.00     0.00"
  tmp += __constraints_from_symm(symm.space_group().crystal_system()) + "\n"
  tmp += """\
!  Pref1    Pref2      Asy1     Asy2     Asy3     Asy4
  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
     0.00     0.00     0.00     0.00     0.00     0.00
"""
  return tmp