I think to make Salford FTN95 as parallel language 99.9% is already done, let me know if I'm wrong.
First multithreading is already done with winio@. Now to do simple parallel functions it is necessary just to implement thread safe output like print* into separate screen units like it is done right now when you define OUTunit1, OUTunit2
i = winio@('%pv%120.10cw[hscroll,vscroll]&', OUTunit1)
i = winio@('%pv%120.10cw[hscroll,vscroll]&', OUTunit2)
and do a little coding for two-three more winio functions. Suppose you need to parallelize do loop in dual-core CPU.
You arrange the loop
do i=1,N
.............
enddo
into two functions loop1 with
do i=1,N/2
................
enddo
and loop2
i=N/2+1, N
................
enddo
and would call (I take %xx names arbitrary just for demonstration)
i=winio@('%np&',n_processors) ! find amount of processors
i=winio@('%em&',2) !employ just two of them if you have more than 2
i=winio@('%lt&',1,loop1) ! launch first task on first processor
i=winio@('%lt&',2,loop2) ! launch second task in second processor
i=winio@('%we') ! wait end for both tasks execution
<do your other job here>
Both threads will print on screen in separate text windows OUTunit1, OUTunit2. That's all we need. it is exactly how basically simple Mtask language of www.equation.com works.
Very simple and effective