diff --git a/src/USER-CG-CMM/angle_sdk.cpp b/src/USER-CG-CMM/angle_sdk.cpp
index fef80ea832..0c3d45bbb2 100644
--- a/src/USER-CG-CMM/angle_sdk.cpp
+++ b/src/USER-CG-CMM/angle_sdk.cpp
@@ -343,6 +343,16 @@ void AngleSDK::read_restart(FILE *fp)
   for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
 }
 
+/* ----------------------------------------------------------------------
+   proc 0 writes to data file
+------------------------------------------------------------------------- */
+
+void AngleSDK::write_data(FILE *fp)
+{
+  for (int i = 1; i <= atom->nangletypes; i++)
+    fprintf(fp,"%d %g %g\n",i,k[i],theta0[i]/MY_PI*180.0);
+}
+
 /* ---------------------------------------------------------------------- */
 
 void AngleSDK::ev_tally13(int i, int j, int nlocal, int newton_bond,
diff --git a/src/USER-CG-CMM/angle_sdk.h b/src/USER-CG-CMM/angle_sdk.h
index 8dd7d73705..f4885d5e0d 100644
--- a/src/USER-CG-CMM/angle_sdk.h
+++ b/src/USER-CG-CMM/angle_sdk.h
@@ -36,6 +36,7 @@ class AngleSDK : public Angle {
   double equilibrium_angle(int);
   void write_restart(FILE *);
   void read_restart(FILE *);
+  void write_data(FILE *);
   double single(int, int, int, int);
 
  protected: