write_mps, write_freemps, write_MPS, write_freeMPS

Write an mps model to a file.

unsigned char write_MPS(lprec *lp, FILE *stream);

unsigned char write_freeMPS(lprec *lp, FILE *stream);

unsigned char write_mps(lprec *lp, char *filename);

unsigned char write_freemps(lprec *lp, char *filename);

Return Value

write_mps, write_freemps, write_MPS, write_freeMPS return TRUE (1) if the operation was successful. A return value of FALSE (0) indicates an error.
Note that row entry mode must be off, else this function also fails. See set_add_rowmode



Pointer to previously created lp model. See return value of make_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI


Pointer to FILE structure.


Filename to write the mps model to.


The write_mps, write_freemps, write_MPS, write_freeMPS functions write the model to filename. write_MPS, write_freeMPS need a file pointer to an already opened file. write_mps, write_freemps accept the name of the file. The latter function will generally be more convenient.

When stream or filename are NULL, then output is written to output set by set_outputstream, set_outputfile. By default this is stdout.

The model in the file will be in mps-format. The write_free* routines write files in free MPS format. The other routines write files in fixed MPS format.


#include <stdio.h>
#include <stdlib.h>
#include "lp_lib.h"
int main(void)
  lprec *lp;

  /* Create a new LP model */
  lp = make_lp(0, 0);
  if(lp == NULL) {
    fprintf(stderr, "Unable to create new LP model\n");

  write_mps(lp, "model.mps");


lp_solve API reference

See Also delete_lp, free_lp, make_lp, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI, read_lp, read_LP, write_lp, write_LP, read_lp, read_LP