APPENDIX I
Source code in our exposure estimation system that is used to save comment fields to a catalog entry.

SAVECOMM:                                                                     
   * Create a master list that contains sub-lists of all the comment fields   
     for Plant/Task/Monomer/Calyr observations;                               
                                                                              
   mstrlist = makelist();                                                     
                                                                              
   do i=1 to dim(comments);                                                   
      tmpl{i} = makelist();                                                   
      call notify(comments{i}, '_get_value_', tmpl{i});                       
      valid = listlen(tmpl{i});                                               
      if valid > 0 then rc = insertl(mstrlist, tmpl{i}, 1, comments{i});      
   end;                                                                       
                                                                              
   *****************************************************************
   * Check to see if any lists have been inserted into the master  *           
   * list. If so, then save the master list to a catalog entry.    *           
   *****************************************************************; 
   valid = listlen(mstrlist);                                                 
   if valid > 0 then                                                          
      do;                                                                     
         if commval = '' then                                                 
            commval = 'C' || left(put(ranuni(0)*10000000,7.));                
                                                                              
         outslist = 'library.' || tsk_dsn || '.' || commval || '.slist';      
         desc = 'PLT:' || plantnum || ' TASK:' || tasknum || ' MON:';         
         desc = desc || put(monnum,mon_fmt.) || ' CALYR1:' || calyr1;         
         rc = savelist('catalog', outslist, mstrlist, 0, desc);               
      end;                                                                    
                                                                              
   do i=1 to dim(tmpl);                                                       
      rc = dellist(tmpl{i});                                                  
   end;                                                                       
                                                                              
   rc = dellist(mstrlist);