Как я могу написать функцию to_upper() или to_lower() в F90?

Как написать функцию (Intel) F90, которая преобразует строку в нижний регистр (или, альтернативно, в верхний регистр)? Я хочу передать массив символов в функцию и вернуть ему массив символов, например.

program main
    implicit none

    character*32 :: origStr = "Hello, World!"
    character*32 :: newStr

    newStr = to_lower(origStr)
    write (*,*) newStr

end program main

таким образом, что эта программа выводит hello, world! .

Я начал с подпрограммы to_lower(), найденной в RosettaCode, но не могу понять, как записать ее как функцию.

Заранее спасибо!

PS -- Бонусные баллы, если вы можете сделать это со строкой нефиксированной длины!

10
задан milancurcic 20 June 2012 в 05:03
поделиться