830  /* SAS PROGRAM FOR ACROSS-SITE DIALLEL ANALYSIS */
831
832  /* This program will run a full BLUP to predict parental GCA and
833     individual tree breeding values.  The program is set up to handle
834     a dataset with up to 99 parents.  I suspect that many folks might
835     run into memory problems with that many parents, but the code should function.  */
836
837  libname outdir 'D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel';
NOTE: Libref OUTDIR was successfully assigned as follows:
      Engine:        V9
      Physical Name: D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel
838  /* Set Var1 = variable for Analysis */
839  %let var1=VOL12;
840  %let var2=ht12;
841  %let var3=dbh12;
842  run;
843
844  /* The SAS data set for the diallel analysis must contain the following variables:
845     testid, rep, female, male, VOL (or the trait of interest).  The data set may
846     also contain many other variables.  */
847
848  data diallel; set outdir.montdia2005;
849    if test=1 then testid="12.16";
850    if test=2 then testid="12.14";
851    if fill12="X" then delete;
852    tree=tn;
853    *if substr(female,1,2)='CC' or substr(male,1,2)='CC' then delete;
854    if &var1=. then delete;
855
856    keep testid set rep female male VOL12 ht12 dbh12 tree st12 bd12 ba12;
857  run;

NOTE: There were 6326 observations read from the data set OUTDIR.MONTDIA2005.
NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: DATA statement used (Total process time):
      real time           1.62 seconds
      cpu time            0.07 seconds


858
859  /* Calculation of Test means */
860
861  PROC SORT data=diallel; by testid set rep;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.57 seconds
      cpu time            0.09 seconds


862  proc means data=diallel; by testid;
863  var &var1 &var2 &var3;
864  output out=outdir.testmns
865  mean= &var1 &var2 &var3;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set OUTDIR.TESTMNS has 2 observations and 6 variables.
NOTE: PROCEDURE MEANS used (Total process time):
      real time           1.75 seconds
      cpu time            0.12 seconds


866  PROC MEANS noprint data=diallel;
867  var &var1 &var2 &var3;
868  output out=outdir.grandmns mean= &var1 &var2 &var3;
869
870  /* Calculation of covariances */
871  /* This section calculates the Coefficient of Variation for the traits of interest.
872     This will only be necessary for traits where the mean and variance are correlated,
873     which is typical of growth traits like height, dbh, and volume.  The CV is calculated
874     in each rep, and then averaged across reps. */
875

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set OUTDIR.GRANDMNS has 1 observations and 5 variables.
NOTE: PROCEDURE MEANS used (Total process time):
      real time           0.20 seconds
      cpu time            0.06 seconds


876  PROC MEANS noprint data=diallel; by testid set rep;
877  var &var1 &var2 &var3;
878  output out=repmns
879  mean=&var1 &var2 &var3 std=sd&var1 sd&var2 sd&var3;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.REPMNS has 36 observations and 11 variables.
NOTE: PROCEDURE MEANS used (Total process time):
      real time           0.08 seconds
      cpu time            0.07 seconds


880  data cv; set repmns;
881  cv&var1 = 100*sd&var1/&var1;
882  cv&var2 = 100*sd&var2/&var2;
883  cv&var3 = 100*sd&var3/&var3 ;

NOTE: There were 36 observations read from the data set WORK.REPMNS.
NOTE: The data set WORK.CV has 36 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.04 seconds


884  PROC MEANS data=cv;
885  var cv&var1 cv&var2 cv&var3;
886  run;

NOTE: There were 36 observations read from the data set WORK.CV.
NOTE: PROCEDURE MEANS used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds


887
888  /* Set up macro variables for cv */
889  data cv; set cv;
890    call symput('cv1',cv&var1);
891    call symput('cv2',cv&var2);
892    call symput('cv3',cv&var3);

NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      1:1   1:1   1:1
NOTE: There were 36 observations read from the data set WORK.CV.
NOTE: The data set WORK.CV has 36 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.04 seconds


893  proc print data=cv; run;

NOTE: There were 36 observations read from the data set WORK.CV.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.10 seconds
      cpu time            0.02 seconds


894
895  /* Standardization of the growth variables */
896  /* The value for 'std=xx' is the mean CV from the above procedure */
897  PROC STANDARD data=diallel mean=100 std=54.43949 out=diallel; by testid set rep;
898  var &var1;

NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE STANDARD used (Total process time):
      real time           0.10 seconds
      cpu time            0.07 seconds


899  PROC STANDARD data=diallel mean=100 std=12.3408 out=diallel; by testid set rep;
900  var &var2;

NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE STANDARD used (Total process time):
      real time           0.10 seconds
      cpu time            0.07 seconds


901  PROC STANDARD data=diallel mean=100 std=23.6922 out=diallel; by testid set rep;
902  var &var3;run;

NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE STANDARD used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds


903
904  /* ANALYSIS OF DIALLEL DATA */
905
906  /* Generate a list of the male and female parents */
907  PROC SORT data=diallel; by female;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.07 seconds


908  data females; set diallel; by female;
909  if first.female; parent=female; keep parent;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.FEMALES has 39 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.06 seconds


910  PROC SORT data=diallel; by male;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.07 seconds
      cpu time            0.05 seconds


911  data males; set diallel; by male;
912  if first.male; parent=male; keep parent;
913
914  /* Combine the two lists of females and males into one list of parents */

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.MALES has 44 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.08 seconds
      cpu time            0.05 seconds


915  data parents; set females males;

NOTE: There were 39 observations read from the data set WORK.FEMALES.
NOTE: There were 44 observations read from the data set WORK.MALES.
NOTE: The data set WORK.PARENTS has 83 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.12 seconds
      cpu time            0.06 seconds


916  PROC SORT; by parent;

NOTE: There were 83 observations read from the data set WORK.PARENTS.
NOTE: The data set WORK.PARENTS has 83 observations and 1 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.05 seconds


917  data parents; set parents; by parent; if first.parent; run;

NOTE: There were 83 observations read from the data set WORK.PARENTS.
NOTE: The data set WORK.PARENTS has 52 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.04 seconds


918  proc freq data=parents;
919    tables parent / all;
920    output out=numpar n;
921  run;

NOTE: There were 52 observations read from the data set WORK.PARENTS.
NOTE: The data set WORK.NUMPAR has 1 observations and 1 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.25 seconds
      cpu time            0.09 seconds


922  data numpar; set numpar;
923    call symput('numpar',n);
924  run;

NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      923:24
NOTE: There were 1 observations read from the data set WORK.NUMPAR.
NOTE: The data set WORK.NUMPAR has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.04 seconds


925
926  /* Create variables for use in Proc Mixed to designate
927     P1 P2 ... PN  and test*P1 test*P2 ... test*PN
928     in the Random statements */
929  data listpar;
930  length mixpar $400;
931  length mixpxt $1100;
932  mixpar='P1X';
933  mixpxt='testid*P1X';

NOTE: The data set WORK.LISTPAR has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.02 seconds


934  data listpar; set listpar;
935  do i=2 to &numpar;
936   mixpar = compress(mixpar||'P'||i)||'X';
937   mixpxt = compress(mixpxt||'testid*P'||i)||'X';
938  end;
939  output;

NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      936:33   937:40
NOTE: There were 1 observations read from the data set WORK.LISTPAR.
NOTE: The data set WORK.LISTPAR has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.15 seconds
      cpu time            0.09 seconds


940  data listpar; set listpar;
941    mixpar=translate(mixpar,' P','XP');
942    mixpxt=translate(mixpxt,' t','Xt');
943  run;

NOTE: There were 1 observations read from the data set WORK.LISTPAR.
NOTE: The data set WORK.LISTPAR has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds


944  proc print;
945  run;

WARNING: Data too long for column "mixpar"; truncated to 92 characters to fit.
WARNING: Data too long for column "mixpxt"; truncated to 92 characters to fit.
NOTE: There were 1 observations read from the data set WORK.LISTPAR.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds


946  data mixlist; set listpar;
947  call symput('mixpar',mixpar);
948  call symput('mixpxt',mixpxt);
949  run;

NOTE: There were 1 observations read from the data set WORK.LISTPAR.
NOTE: The data set WORK.MIXLIST has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.06 seconds


950
951  /* Create dummy variables for each parent to generate a Design Matrix for parents*/
952  PROC IML;
NOTE: IML Ready
953  use parents;
953!              read all var {parent} into P;
954  nparents=nrow(P);
955  close parents;
956
957  codes99='P1':'P99';
958  codes=codes99[1:nparents];
959  print codes P;
960
961  use diallel;
962  read all var {female male} into FM;
963  /* FM is the list of female and male parents for all observations */
964  n=nrow(FM);
965  /* n = number of observations */
966
967  /* Create parent design matrix D (n rows x nparents columns)
968     There is a 1 in the two colums corresponding to the male and female parents */
969    D=shape(0,N,nparents);
970    do I=1 to N;
971      do J=1 to nparents;
972        if FM[I,1]=P[J,1] | FM[I,2]=P[J,1] then D[I,J]=1;
973      end;
974    end;
975
976  /* Create a SAS data set DUMMY from the design matrix D */
977  create DUMMY from D [colname=codes];
978  append from D /*[colname=codes]*/;
979  quit;
NOTE: Exiting IML.
NOTE: The data set WORK.DUMMY has 6326 observations and 52 variables.
NOTE: 187 workspace compresses.
NOTE: PROCEDURE IML used (Total process time):
      real time           3.79 seconds
      cpu time            2.85 seconds


980
981  /* Merge the dummy variables onto the diallel data set */
982  data diallel;
983  merge diallel DUMMY;
984  run;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: There were 6326 observations read from the data set WORK.DUMMY.
NOTE: The data set WORK.DIALLEL has 6326 observations and 64 variables.
NOTE: DATA statement used (Total process time):
      real time           0.65 seconds
      cpu time            0.09 seconds


985
986  /* Run Proc Mixed on Macro Variable var1 */
987
988  ODS listing close;
989
990  PROC MIXED data=diallel covtest noitprint; class female male rep testid;
991       model &var1=testid rep(testid) / outpm=pm&var1;  /* testid and rep are fixed effects
991! */
992       random &mixpar/type=toep(1) solution vi;
993       /* GCA effects.
994          The option TYPE=TOEP(1) estimates a single variance component across all levels of
994! parent.
995          The option SOLUTION generates the BLUPs which will be output later */
996       random female*male;
997       /* SCA effects */
998       random &mixpxt/type=toep(1);
999       /* GCA x Test (Parent x Test)
1000          The option TYPE=TOEP(1) estimates a single variance component across all levels of
1000! parent */
1001       random female*male*testid;
1002       /* SCA x Test */
1003       ODS output covparms=parms&var1;
1004       /* Write the parameter estimates into a SAS data set */
1005       ODS output solutionR=BLUP&var1;
1006       /* Write the BLUP solutions into a SAS data set */
1007       ODS output invV=vi&var1;
1008       /* Write the inverse(V) matrix into SAS data set for later use in IML to predict
1009          within-family additive genetic value */
1010  run;

NOTE: The data set WORK.VIVOL12 has 6326 observations and 6328 variables.
NOTE: The data set WORK.BLUPVOL12 has 485 observations and 9 variables.
NOTE: The data set WORK.PARMSVOL12 has 5 observations and 5 variables.
NOTE: The data set WORK.PMVOL12 has 6326 observations and 71 variables.
NOTE: PROCEDURE MIXED used (Total process time):
      real time           7:41:38.38
      cpu time            7:39:54.22


1011
1012  ODS listing;
1013
1014  /* Clean the parameter estimate data set */
1015  PROC SORT data=parms&var1; by covparm;

NOTE: There were 5 observations read from the data set WORK.PARMSVOL12.
NOTE: The data set WORK.PARMSVOL12 has 5 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.26 seconds
      cpu time            0.04 seconds


1016  data parms&var1; set parms&var1; by covparm;
1017  Trait="&var1"; /* Para definir uma caracterstica em especfico */
1018  if first.covparm and covparm='Variance' then covparm='GCA';
1019  if last.covparm and covparm='Variance' then covparm='GCA*testid';

NOTE: There were 5 observations read from the data set WORK.PARMSVOL12.
NOTE: The data set WORK.PARMSVOL12 has 5 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.44 seconds
      cpu time            0.03 seconds


1020  PROC PRINT; run;

NOTE: There were 5 observations read from the data set WORK.PARMSVOL12.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.24 seconds
      cpu time            0.04 seconds


1021
1022  data gca gxt sca sxt error; set parms&var1;
1023  if covparm='GCA' then output gca;
1024  if covparm='GCA*testid' then output gxt;
1025  if covparm='female*male' then output sca;
1026  if covparm='female*male*testid' then output sxt;
1027  if covparm='Residual' then output error;

NOTE: There were 5 observations read from the data set WORK.PARMSVOL12.
NOTE: The data set WORK.GCA has 1 observations and 6 variables.
NOTE: The data set WORK.GXT has 1 observations and 6 variables.
NOTE: The data set WORK.SCA has 1 observations and 6 variables.
NOTE: The data set WORK.SXT has 1 observations and 6 variables.
NOTE: The data set WORK.ERROR has 1 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.54 seconds
      cpu time            0.22 seconds


1028  data gca; set gca; vgca=estimate; keep trait vgca;

NOTE: There were 1 observations read from the data set WORK.GCA.
NOTE: The data set WORK.GCA has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.05 seconds


1029  data gxt; set gxt; vgxt=estimate; keep trait vgxt;

NOTE: There were 1 observations read from the data set WORK.GXT.
NOTE: The data set WORK.GXT has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.04 seconds


1030  data sca; set sca; vsca=estimate; keep trait vsca;

NOTE: There were 1 observations read from the data set WORK.SCA.
NOTE: The data set WORK.SCA has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.08 seconds
      cpu time            0.04 seconds


1031  data sxt; set sxt; vsxt=estimate; keep trait vsxt;

NOTE: There were 1 observations read from the data set WORK.SXT.
NOTE: The data set WORK.SXT has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.04 seconds


1032  data error; set error; verror=estimate; keep trait verror;

NOTE: There were 1 observations read from the data set WORK.ERROR.
NOTE: The data set WORK.ERROR has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.04 seconds


1033  data outdir.parms&var1; merge gca gxt sca sxt error;
1034  vphen = 2*vgca + 2*vgxt + vsca + vsxt + verror;
1035  h2=4*vgca/vphen;
1036  rbg=vgca/(vgca+vgxt);
1037  d2=4*vsca/vphen;
1038  rbd=vsca/(vsca+vsxt);
1039  gainpot=2*sqrt(vgca);

NOTE: There were 1 observations read from the data set WORK.GCA.
NOTE: There were 1 observations read from the data set WORK.GXT.
NOTE: There were 1 observations read from the data set WORK.SCA.
NOTE: There were 1 observations read from the data set WORK.SXT.
NOTE: There were 1 observations read from the data set WORK.ERROR.
NOTE: The data set OUTDIR.PARMSVOL12 has 1 observations and 12 variables.
NOTE: DATA statement used (Total process time):
      real time           9.98 seconds
      cpu time            0.10 seconds


1040  proc print; run;

NOTE: There were 1 observations read from the data set OUTDIR.PARMSVOL12.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.01 seconds
      cpu time            0.02 seconds


1041
1042
1043  /* Clean the BLUP data set */
1044  data gca&var1 sca&var1; set blup&var1;
1045  trait="&var1";
1046  if testid='   ';
1047  if female='   ' and male='   ' then output gca&var1; else output sca&var1;

NOTE: There were 485 observations read from the data set WORK.BLUPVOL12.
NOTE: The data set WORK.GCAVOL12 has 52 observations and 10 variables.
NOTE: The data set WORK.SCAVOL12 has 112 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.35 seconds
      cpu time            0.10 seconds


1048  data gca&var1; set gca&var1;
1049  gca=estimate;
1050  keep effect gca trait;

NOTE: There were 52 observations read from the data set WORK.GCAVOL12.
NOTE: The data set WORK.GCAVOL12 has 52 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.04 seconds


1051  data gca&var1; merge gca&var1 parents;

NOTE: There were 52 observations read from the data set WORK.GCAVOL12.
NOTE: There were 52 observations read from the data set WORK.PARENTS.
NOTE: The data set WORK.GCAVOL12 has 52 observations and 4 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.04 seconds


1052  data outdir.gca&var1; set gca&var1;

NOTE: There were 52 observations read from the data set WORK.GCAVOL12.
NOTE: The data set OUTDIR.GCAVOL12 has 52 observations and 4 variables.
NOTE: DATA statement used (Total process time):
      real time           0.12 seconds
      cpu time            0.05 seconds


1053  proc print;

NOTE: There were 52 observations read from the data set OUTDIR.GCAVOL12.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.04 seconds
      cpu time            0.02 seconds


1054  data sca&var1; set sca&var1;
1055  sca=estimate;
1056  keep female male sca trait;

NOTE: There were 112 observations read from the data set WORK.SCAVOL12.
NOTE: The data set WORK.SCAVOL12 has 112 observations and 4 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds


1057  data outdir.sca&var1; set sca&var1;

NOTE: There were 112 observations read from the data set WORK.SCAVOL12.
NOTE: The data set OUTDIR.SCAVOL12 has 112 observations and 4 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.05 seconds


1058  proc print;
1059  run;

NOTE: There were 112 observations read from the data set OUTDIR.SCAVOL12.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds


1060
1061
1062  /* CALCULATION OF INDVIDUAL TREE BVs */
1063
1064  /* Calculate within-family gains as h2w * (y - fixed effects) */
1065
1066  /* Test and Rep Effects -- estimated from Xb in Proc Mixed */
1067  data pm&var1; set pm&var1;
1068  xb&var1=pred;
1069  keep testid set rep female male tree xb&var1;
1070

NOTE: There were 6326 observations read from the data set WORK.PMVOL12.
NOTE: The data set WORK.PMVOL12 has 6326 observations and 7 variables.
NOTE: DATA statement used (Total process time):
      real time           0.38 seconds
      cpu time            0.07 seconds


1071  proc sort data=diallel; by testid set rep female male tree;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 64 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.16 seconds
      cpu time            0.12 seconds


1072  proc sort data=pm&var1; by testid set rep female male tree;

NOTE: There were 6326 observations read from the data set WORK.PMVOL12.
NOTE: The data set WORK.PMVOL12 has 6326 observations and 7 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.39 seconds
      cpu time            0.06 seconds


1073  data diallel; merge diallel pm&var1; by testid set rep female male tree;
1074  ymxb&var1=&var1-xb&var1;
1075
1076  /* Merge GCA values onto the full data set */

NOTE: MERGE statement has more than one data set with repeats of BY values.
NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: There were 6326 observations read from the data set WORK.PMVOL12.
NOTE: The data set WORK.DIALLEL has 6326 observations and 66 variables.
NOTE: DATA statement used (Total process time):
      real time           0.54 seconds
      cpu time            0.14 seconds


1077  data gcafemale&var1; set gca&var1;
1078  female=parent; gcafemale&var1=gca;
1079  keep female gcafemale&var1;

NOTE: There were 52 observations read from the data set WORK.GCAVOL12.
NOTE: The data set WORK.GCAFEMALEVOL12 has 52 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.12 seconds
      cpu time            0.05 seconds


1080  data gcamale&var1; set gca&var1;
1081  male=parent; gcamale&var1=gca;
1082  keep male gcamale&var1;
1083

NOTE: There were 52 observations read from the data set WORK.GCAVOL12.
NOTE: The data set WORK.GCAMALEVOL12 has 52 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.11 seconds
      cpu time            0.04 seconds


1084  proc sort data=diallel; by female;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 66 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.55 seconds
      cpu time            0.13 seconds


1085  proc sort data=gcafemale&var1; by female;

NOTE: There were 52 observations read from the data set WORK.GCAFEMALEVOL12.
NOTE: The data set WORK.GCAFEMALEVOL12 has 52 observations and 2 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.04 seconds


1086  data diallel; merge diallel (in=a) gcafemale&var1; by female; if a;
1087

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: There were 52 observations read from the data set WORK.GCAFEMALEVOL12.
NOTE: The data set WORK.DIALLEL has 6326 observations and 67 variables.
NOTE: DATA statement used (Total process time):
      real time           0.92 seconds
      cpu time            0.08 seconds


1088  proc sort data=diallel; by male;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.DIALLEL has 6326 observations and 67 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           1.18 seconds
      cpu time            0.15 seconds


1089  proc sort data=gcamale&var1; by male;

NOTE: There were 52 observations read from the data set WORK.GCAMALEVOL12.
NOTE: The data set WORK.GCAMALEVOL12 has 52 observations and 2 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.05 seconds


1090  data diallel; merge diallel (in=a) gcamale&var1; by male; if a;
1091  drop &mixpar;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: There were 52 observations read from the data set WORK.GCAMALEVOL12.
NOTE: The data set WORK.DIALLEL has 6326 observations and 16 variables.
NOTE: DATA statement used (Total process time):
      real time           0.20 seconds
      cpu time            0.10 seconds


1092  proc print data=diallel;
1093  var testid rep female male tree
1094      gcafemale&var1 gcamale&var1;
1095  run;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.17 seconds
      cpu time            0.17 seconds


1096
1097  PROC IML;
NOTE: IML Ready
1098    use parms&var1;
1099    read all var {estimate} into parms&var1;
1100    close parms&var1;
1101    use diallel;
1102    read all var {ymxb&var1} into ymxb&var1;
1102!                                             /* the residuals are all y - fixed effects */
1103    close diallel;
1104    use vi&var1;
NOTE: Initial allocation of symbol space exhausted. You may specify SYMSIZE= option on PROC IML
      statement to increase its allocation for more efficiency.
1105    read all into vi&var1;
NOTE: I/O required temporary file to be opened.
1106    close vi&var1;
1107        /* VI is inverse of the observation (y) matrix */
1108    n=nrow(vi&var1);
1108!                    k=ncol(vi&var1);
1108!                                     vi&var1=vi&var1[,3:k];
ERROR: (execution) Unable to allocate sufficient memory. At least 320146240 more bytes required.

 operation : [ at line 1108 column 52
 operands  : VIVOL12, , *LIT1003, K
VIVOL12   6326 rows   6328 cols    (numeric)

*LIT1003      1 row       1 col     (numeric)

         3

K      1 row       1 col     (numeric)

      6328

 statement : ASSIGN at line 1108 column 37
1109    Gw&var1=2*parms&var1[2]*vi&var1*ymxb&var1;
ERROR: (execution) Unable to allocate sufficient memory. At least 320247456 more bytes required.

 operation : * at line 1109 column 26
 operands  : _TEM1002, VIVOL12

_TEM1002      1 row       1 col     (numeric)

  189.2403
VIVOL12   6326 rows   6328 cols    (numeric)

 statement : ASSIGN at line 1109 column 3
1110         /* COV[2] is the first element of the random effect variance component
1111            estimation matrix.  The first random term in the MIXED proc above is
1112            the P1-P12 term, i.e., the parental term.  The variance is the GCA variance,
1113            or 1/4 additive variance. */
1114    create Gw&var1 from Gw&var1 [colname='gw'];
ERROR: Matrix GWVOL12 has not been set to a value.

 statement : CREATE at line 1114 column 3
1115    append from Gw&var1 /*[colname='gw']*/;
ERROR: No data set is currently open for output.

 statement : APPEND at line 1115 column 3
1116  QUIT;
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
      real time           2:09.41
      cpu time            16.25 seconds

1117


1118  data diallel; merge diallel gw&var1;
1119  bv&var1 = gcafemale&var1 + gcamale&var1 + gw;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: There were 6326 observations read from the data set WORK.GWVOL12.
NOTE: The data set WORK.DIALLEL has 6326 observations and 18 variables.
NOTE: DATA statement used (Total process time):
      real time           2.36 seconds
      cpu time            0.07 seconds


1120  data outdir.diallel; set diallel; run;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set OUTDIR.DIALLEL has 6326 observations and 18 variables.
NOTE: DATA statement used (Total process time):
      real time           0.39 seconds
      cpu time            0.07 seconds


1121
1122  proc print;
1123  var testid rep female male tree gcafemale&var1 gcamale&var1 gw bv&var1;
1124  run;

NOTE: There were 6326 observations read from the data set OUTDIR.DIALLEL.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           1.05 seconds
      cpu time            0.22 seconds


1125
1126  ************** Create selections **********************;
1127  ************** Create selections **********************;
1128  ************** Create selections **********************;
1129  data selections; set diallel;
1130    length testid $ 5 set rep 3  female male $ 5 tree 3 vol12 8 st12 bd12 ba12 3
1131       gcafemalevol12 gcamalevol12 gw bvvol12 8;
1132    format testid $5. set rep 1.0  female male $5. tree 1.0 vol12 9.3 st12 bd12 ba12 1.0
1133       gcafemalevol12 gcamalevol12 gw bvvol12 9.3;
1134    keep testid set rep female male tree  vol12 st12 bd12 ba12 gcafemalevol12 gcamalevol12
1134! gw bvvol12;
1135  run;

NOTE: There were 6326 observations read from the data set WORK.DIALLEL.
NOTE: The data set WORK.SELECTIONS has 6326 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.55 seconds
      cpu time            0.06 seconds


1136  proc sort; by testid set rep female male tree; run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS.
NOTE: The data set WORK.SELECTIONS has 6326 observations and 14 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           1.13 seconds
      cpu time            0.10 seconds


1137  data famlist; set outdir.montdia2005;
1138    format testid $5. set rep 1.0 fam 4.0  female male $5. tree 1.0;
1139    length testid $ 5 set rep fam 3;
1140    if test=1 then testid="12.16";
1141    if test=2 then testid="12.14";
1142    tree=tn; plot=_n_;
1143    keep testid set rep tree fam female male plot;
1144  run;

NOTE: There were 6326 observations read from the data set OUTDIR.MONTDIA2005.
NOTE: The data set WORK.FAMLIST has 6326 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           1.04 seconds
      cpu time            0.07 seconds


1145  proc sort; by testid set rep female male tree; run;

NOTE: There were 6326 observations read from the data set WORK.FAMLIST.
NOTE: The data set WORK.FAMLIST has 6326 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.41 seconds
      cpu time            0.08 seconds


1146  data selections2; merge famlist selections; by testid set rep female male tree;
1147    length plot 4 testid $ 5 set rep fam 3  female male $ 5 tree 3 vol12 8 st12 bd12 ba12 3
1148       gcafemalevol12 gcamalevol12 gcafam gw bvgca 8;
1149    format plot 4.0 testid $5. set rep 1.0 fam 4.0  female male $5. tree 1.0 vol12 9.3 st12
1149! bd12 ba12 1.0
1150       gcafemalevol12 gcamalevol12 gcafam gw bvgca 9.3;
1151    gcafam=gcafemalevol12+gcamalevol12;
1152    bvgca=bvvol12;
1153    keep testid set rep fam female male tree plot vol12 st12 bd12 ba12 gcafemalevol12
1153! gcamalevol12 gcafam gw bvgca;
1154  run;

NOTE: MERGE statement has more than one data set with repeats of BY values.
NOTE: There were 6326 observations read from the data set WORK.FAMLIST.
NOTE: There were 6326 observations read from the data set WORK.SELECTIONS.
NOTE: The data set WORK.SELECTIONS2 has 6326 observations and 17 variables.
NOTE: DATA statement used (Total process time):
      real time           0.92 seconds
      cpu time            0.10 seconds


1154!      proc sort; by fam; run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS2.
NOTE: The data set WORK.SELECTIONS2 has 6326 observations and 17 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.41 seconds
      cpu time            0.06 seconds


1155
1156  proc sort data=famlist; by fam; run;

NOTE: There were 6326 observations read from the data set WORK.FAMLIST.
NOTE: The data set WORK.FAMLIST has 6326 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.23 seconds
      cpu time            0.07 seconds


1157  data famlist2; set famlist; by fam; if first.fam; run;

NOTE: There were 6326 observations read from the data set WORK.FAMLIST.
NOTE: The data set WORK.FAMLIST2 has 113 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           0.53 seconds
      cpu time            0.05 seconds


1158  proc sort data=famlist2; by female male; run;

NOTE: There were 113 observations read from the data set WORK.FAMLIST2.
NOTE: The data set WORK.FAMLIST2 has 113 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.04 seconds


1159
1160  proc sort data=scavol12; by female male; run;

NOTE: There were 112 observations read from the data set WORK.SCAVOL12.
NOTE: The data set WORK.SCAVOL12 has 112 observations and 4 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.33 seconds
      cpu time            0.04 seconds


1161  data scavol12b; merge famlist2 scavol12; by female male;format sca 9.3; keep fam male
1161! female trait sca; run;

NOTE: There were 113 observations read from the data set WORK.FAMLIST2.
NOTE: There were 112 observations read from the data set WORK.SCAVOL12.
NOTE: The data set WORK.SCAVOL12B has 113 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.30 seconds
      cpu time            0.06 seconds


1162  proc sort; by fam; run;

NOTE: There were 113 observations read from the data set WORK.SCAVOL12B.
NOTE: The data set WORK.SCAVOL12B has 113 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.18 seconds
      cpu time            0.04 seconds


1163
1164  data selections2; merge selections2 scavol12b; by fam;run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS2.
NOTE: There were 113 observations read from the data set WORK.SCAVOL12B.
NOTE: The data set WORK.SELECTIONS2 has 6326 observations and 19 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.07 seconds


1165  data allparms; set selections2; by fam; if first.fam;
1166    format scafam 9.3;
1167    scafam=gcafam+sca;
1168    keep fam female male gcafemalevol12 gcamalevol12 gcafam sca scafam;
1169  run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS2.
NOTE: The data set WORK.ALLPARMS has 113 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           0.44 seconds
      cpu time            0.06 seconds


1170
1171  *Add family rankings;
1172  proc rank data=allparms descending out=allparms;
1173    var gcafam; ranks famgcarank;
1174    label famgcarank ="Fam GCA Rank";
WARNING: Variable FAMGCARANK not found in data set WORK.ALLPARMS.
1175  run;

NOTE: The data set WORK.ALLPARMS has 113 observations and 9 variables.
NOTE: PROCEDURE RANK used (Total process time):
      real time           0.30 seconds
      cpu time            0.08 seconds


1176  proc rank data=allparms descending out=allparms;
1177    var scafam; ranks famscarank;
1178    label famscarank ="Fam SCA Rank";
WARNING: Variable FAMSCARANK not found in data set WORK.ALLPARMS.
1179  run;

NOTE: The data set WORK.ALLPARMS has 113 observations and 10 variables.
NOTE: PROCEDURE RANK used (Total process time):
      real time           0.16 seconds
      cpu time            0.06 seconds


1180
1181  PROC EXPORT DATA= WORK.ALLPARMS
1182              OUTFILE=
1182! "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_Selections.xls"
1183              DBMS=EXCEL REPLACE;
1184       SHEET="Family Parms";
1185  RUN;

NOTE: New file
      "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_Selections.xls" will be
      created if the export process succeeds.
NOTE: "Family_Parms" was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           23.70 seconds
      cpu time            0.64 seconds


1186
1187  proc sort data=allparms; by fam; run;

NOTE: There were 113 observations read from the data set WORK.ALLPARMS.
NOTE: The data set WORK.ALLPARMS has 113 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.11 seconds
      cpu time            0.04 seconds


1188  proc sort data=selections2; by fam; run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS2.
NOTE: The data set WORK.SELECTIONS2 has 6326 observations and 19 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.07 seconds


1189  data selections3; merge selections2 allparms;  by fam;
1190    format bvsca 9.3;bvsca=bvgca+sca;
1191  run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS2.
NOTE: There were 113 observations read from the data set WORK.ALLPARMS.
NOTE: The data set WORK.SELECTIONS3 has 6326 observations and 23 variables.
NOTE: DATA statement used (Total process time):
      real time           0.19 seconds
      cpu time            0.06 seconds


1192
1193  proc rank data=selections3 descending out=selectionsranked;
1194    by fam;
1195    var gw; ranks wfamrank;
1196    label wfamrank ="Within Fam Rank";
WARNING: Variable WFAMRANK not found in data set WORK.SELECTIONS3.
1197  run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONS3.
NOTE: The data set WORK.SELECTIONSRANKED has 6326 observations and 24 variables.
NOTE: PROCEDURE RANK used (Total process time):
      real time           0.29 seconds
      cpu time            0.14 seconds


1198
1199  *Weed out selections;
1200  /*data selectbad fams; set selectionsranked;if famscarank gt 60 and bvsca>10; run;*/
1201  data selecttrees; set selectionsranked;
1202    maxfam=10;
1203    factor=1; if st12=3 then factor=1.50; if st12=1 then factor=.50;
1204    mingainw=15;
1205    if   (famgcarank le 15 and wfamrank le maxfam*1.0*factor)
1206      or (famgcarank le 30 and wfamrank le maxfam*.67*factor)
1207      or (famgcarank le 45 and wfamrank le maxfam*.50*factor)
1208      or (famgcarank le 65 and wfamrank le maxfam*.25*factor)
1209      or (gw ge mingainw);
1210
1211     drop trait maxfam factor mingainw vol12 plot;
1212     if bvgca < 10 then delete;
1213
1214  run;

NOTE: There were 6326 observations read from the data set WORK.SELECTIONSRANKED.
NOTE: The data set WORK.SELECTTREES has 310 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.14 seconds
      cpu time            0.05 seconds


1215
1216  data outdir.selectrees; set selecttrees;run;

NOTE: There were 310 observations read from the data set WORK.SELECTTREES.
NOTE: The data set OUTDIR.SELECTREES has 310 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.03 seconds


1217  PROC EXPORT DATA= WORK.selecttrees
1218              OUTFILE=
1218! "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_Selections.xls"
1219              DBMS=EXCEL REPLACE;
1220       SHEET="Select Trees";
1221  RUN;

NOTE: "Select_Trees" was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           1.86 seconds
      cpu time            0.34 seconds


1222  /* check select distribution */
1223  proc freq data=selecttrees;
1224  tables set /out=select_setfreq;
1225  tables fam /out=select_famfreq;
1226  run;

NOTE: There were 310 observations read from the data set WORK.SELECTTREES.
NOTE: The data set WORK.SELECT_SETFREQ has 6 observations and 3 variables.
NOTE: The data set WORK.SELECT_FAMFREQ has 54 observations and 3 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.84 seconds
      cpu time            0.10 seconds


1227
1228  proc freq data=selecttrees;
1229    tables female /all;
1230    output out=treecount n;
1231  run;

NOTE: There were 310 observations read from the data set WORK.SELECTTREES.
NOTE: The data set WORK.TREECOUNT has 1 observations and 1 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.27 seconds
      cpu time            0.08 seconds


1232  data treecount; set treecount; call symput('treecount',n);run;

NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      1232:56
NOTE: There were 1 observations read from the data set WORK.TREECOUNT.
NOTE: The data set WORK.TREECOUNT has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.04 seconds


1233
1234  proc freq data=selecttrees;
1235    tables female / out=parentfreq1;
1236    tables male / out=parentfreq2;
1237  run;

NOTE: There were 310 observations read from the data set WORK.SELECTTREES.
NOTE: The data set WORK.PARENTFREQ1 has 29 observations and 3 variables.
NOTE: The data set WORK.PARENTFREQ2 has 29 observations and 3 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.34 seconds
      cpu time            0.10 seconds


1238  proc sort data=famlist2; by fam; run;

NOTE: There were 113 observations read from the data set WORK.FAMLIST2.
NOTE: The data set WORK.FAMLIST2 has 113 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds


1239  data select_famfreq; merge select_famfreq famlist2;
1240    by fam;
1241    keep fam male female count percent;
1242  run;

NOTE: There were 54 observations read from the data set WORK.SELECT_FAMFREQ.
NOTE: There were 113 observations read from the data set WORK.FAMLIST2.
NOTE: The data set WORK.SELECT_FAMFREQ has 113 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.05 seconds


1243
1244  data parentfreq1; set parentfreq1; fam=female; N_female=count;keep fam N_female; run;

NOTE: There were 29 observations read from the data set WORK.PARENTFREQ1.
NOTE: The data set WORK.PARENTFREQ1 has 29 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds


1245  proc sort; by fam; run;

NOTE: There were 29 observations read from the data set WORK.PARENTFREQ1.
NOTE: The data set WORK.PARENTFREQ1 has 29 observations and 2 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.04 seconds


1246  data parentfreq2; set parentfreq2; fam=male; N_male=count;keep fam N_male; run;

NOTE: There were 29 observations read from the data set WORK.PARENTFREQ2.
NOTE: The data set WORK.PARENTFREQ2 has 29 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.05 seconds
      cpu time            0.04 seconds


1247  proc sort; by fam; run;

NOTE: There were 29 observations read from the data set WORK.PARENTFREQ2.
NOTE: The data set WORK.PARENTFREQ2 has 29 observations and 2 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.05 seconds


1248  data select_parentfreq; merge parentfreq1 parentfreq2; by fam;
1249    label fam="Parent";
1250    format Percent 5.1;
1251    Total = max(0,N_female) + max(0,N_male);
1252    Percent=100*total/&treecount;
1253  run;

NOTE: There were 29 observations read from the data set WORK.PARENTFREQ1.
NOTE: There were 29 observations read from the data set WORK.PARENTFREQ2.
NOTE: The data set WORK.SELECT_PARENTFREQ has 43 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.06 seconds


1254  proc print label;
1255    title "Select Trees of B. Quinata Listed by Family";
1256    title2 " ";
1257    var fam N_female N_male total percent;
1258  run;

NOTE: There were 43 observations read from the data set WORK.SELECT_PARENTFREQ.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.03 seconds
      cpu time            0.02 seconds


1259  PROC EXPORT DATA= WORK.select_setfreq
1260              OUTFILE=
1260! "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_SelectFreq.xls"
1261              DBMS=EXCEL REPLACE;
1262       SHEET="SetFreq";
1263  RUN;

NOTE: New file
      "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_SelectFreq.xls" will be
      created if the export process succeeds.
NOTE: "SetFreq" was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.95 seconds
      cpu time            0.31 seconds


1264  PROC EXPORT DATA= WORK.select_parentfreq
1265              OUTFILE=
1265! "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_SelectFreq.xls"
1266              DBMS=EXCEL REPLACE;
1267       SHEET="ParentFreq";
1268  RUN;

NOTE: "ParentFreq" was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.68 seconds
      cpu time            0.27 seconds


1269
1270  PROC EXPORT DATA= WORK.select_famfreq
1271              OUTFILE=
1271! "D:\NewProjects\2005_MontBombaSelections\MontBombaDiallel\MontDia_SelectFreq.xls"
1272              DBMS=EXCEL REPLACE;
1273       SHEET="FamFreq";
1274  RUN;

NOTE: "FamFreq" was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.99 seconds
      cpu time            0.29 seconds


