Thank you very much for the replies, both answers were really helpful!

I replaced the whole part with the single line suggested by Ch. Baum
and the results are just as desired.

Regards,
M. Weber
Zitat von Nick Cox <njcoxstata@gmail.com>:

A separate issue is that
if fyear == 1971 {
}
else if fyear > 1971 ...
will always be interpreted as
if fyear[1] == 1971 {
}
else if fyear[1] >= 1971 ...
which is presumably not what is wanted. So the code not only can but
also should be rewritten. See also

<>
Untested, but I think you can replace
if fyear==1971{
by id: replace debtlevel_sim=actual_debtlevel
/*start with actual debt-level in 1971*/
}
else if fyear>1971 & (L.debtlevel_sim+debtissue_sim)<=0 { /*in
years following 1971: no negative debt-level*/
by id: replace debtlevel_sim=0
}
else {
by id: replace debtlevel_sim=L.debtlevel_sim+debtissue_sim
with one line: