you can also do it by ranges:
truth(15:23) = .truth.
I am not familiar with masks, but I think there is a way to retrieve indeces in a conditional manner depending on the value of the entries in the other array and create a mask based on that...I left my fortran 90 book somewhere else, but I am sure you can find something about it on-line