Hi,

I am trying to use the WriteM of the idmrg but it shows an error message.

For example, I used the idmrg.cc file in the sample folder and add an input arg {"WriteM",10} such that the environment tensor of the dmrg can be written on disk when MaxM>10.

However, it prints the follow error message

Wrong number of IndexVals passed to real/cplx (expected 1, got 0)

Abort trap: 6

It seems like the problem is in the localmpo.h file. In the setRHlim and setLHlim function, I saw

```
if(LHlim_ < 1)
{
//Set to null tensor and return
PH_.at(LHlim_) = Tensor();
return;
}
```

and

```
if(RHlim_ > Op_->N())
{
//Set to null tensor and return
PH_.at(RHlim_) = Tensor();
return;
}
```

respectively.

These two line works for finite size DMRG because in the finite size dmrg, there is no PH*[0] and PH*[N+1], where N = Op_->N(). You can set it as a empty tensor. But for the idmrg, there are edge tensor to terminate the finite state machine. If we set it to be empty tensor, we will get the error.

I think one can add a private member like

```
bool Infinite_ = arg.getbool("Infinite",false).
```

The "Infinite" argument should have been defined in the idmrg.cc file.

And change the previous line to something like

```
if(RHlim_ > Op_->N() && !Infinite_)
{
//Set to null tensor and return
PH_.at(RHlim_) = Tensor();
return;
}
```

to avoid the problem.