Fortran has many intrinsic functions for performing common matrix operations such as multiplication, transposition, etc. The functions provided are well optimized, and should be used in real-world applications.
However, students new to Fortran are encouraged to write their own functions for matrix transpose, multiplication, etc. in order to gain a better understanding of programming. This will help you understand and appreciate the complexity, advantages, and limitations of intrinsic functions and the Fortran language.