I print random knowledge
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | private | :: | idx | ||||
| type(string_type), | private, | allocatable | :: | knowledge(:) | |||
| integer(kind=int32), | private | :: | n | ||||
| real(kind=dp), | private | :: | r |
subroutine get_knowledge() !! I print random knowledge type(string_type), allocatable :: knowledge(:) integer(int32) :: n, idx real(dp) :: r allocate (knowledge(11)) knowledge(1) = "The long line! (CS,2023)" knowledge(2) = "Maybe I have the Fortran brain-rot in Dijkstra's words (IP,2025)" knowledge(3) = "Mojo, yes, do I approve it, no. (IP, 2025)" knowledge(4) = "No, rice does not contain gluten (EG, dawn of time)" knowledge(5) = "Yes, potatoes are gluten free (EG, dawn of time)" knowledge(6) = "Stonks (MS, 2019)" knowledge(7) = "Praise the machine god" knowledge(8) = "Maybe I WILL use a more efficient language: Fortran (Jorge, to CS)" knowledge(9) = "No one owns Makefiles!" knowledge(10) = "Why did you choose CMake over any other build system? Jorge: Stockholm Syndrome?" knowledge(11) = "That is exactly what Bjarne Sostrup intended when he created C++ - in response to RS doing an abomination in C++, by CS" n = size(knowledge) call random_number(r) idx = int(r*n) + 1 if (idx > n) idx = n call logger%knowledge(trim(char(knowledge(idx)))) end subroutine get_knowledge