Prev: proble in common
Next: GNU f90 read() run time error
From: Richard Maine on 14 May 2010 15:45 A Watcher <stocksami(a)earthlink.net> wrote: > glen herrmannsfeldt wrote: > > > > Now, if you have a class that goes through features in an > > appropriate order, such that you learn the easier to use ones > > first, then maybe it isn't a problem. But if you pick up a > > Fortran 2003 reference manual and start reading, you will get > > confused faster than from a Fortran 77 reference manual. > > > That's what I was getting at. If you are learning it on your own F90/95 > can be bewildering. I certainly don't suggest sticking to F77, though. > Just use it to get started. I would not use it to get started either. Yes, I agree you want to start on a subset of the language. I don't think that f77 is a good subset to start with though. There are many things in it that will just be distracting nuisances that will make things harder - not easier. As I mentioned before, fixed source form will hit you right from the start with your very first attempt at coding, no matter how simple. You shouldn't need to learn about fixed source form at all until much later, if ever. There are many others, including what will seem arcane limitations. Keep in mind that if you are talking about learning from an f77 reference manual, it will most likely cover the standard - not common extensions. You'll have to remember to type everything in upper case and to keep your variable names to no more than 7 characters. You'll not be able to take advantage of implicit none. You'll have to learn how to terminate DO statements with corresponding statement labels. You'll have to learn that character strings cannot have length 0, which forces you into special-case workarounds. You can't use list-directed reads with internal files, which forces you into other awkward workarounds. You'll have to learn the arcane points of sequence association to pass arrays as arguments. (Maybe it seems "obvious" to those that have known it for 30 years, but my observation is that it sure isn't obvious to people new to the language; they tend to think that a dummy array declared as, for example, 3x3 ought to be the top left slice of an actual array declared as 10x10). Dynamic array allocation will be a huge complication; and yes, that comes up pretty quickly in trying to learn to do much useful in the language. You'll have to deal with the debugging problems caused by getting arguments wrong in ways that module procedures would catch at compilation time. In fact, external procedures in general are one of those things that a new user shouldn't even be introduced to in my opinion. A new user should use internal or module procedures, with external ones later as an advanced topic. But externals are all f77 has for user-written procedures. A complete reference manul is a poor way to get introduced to a language unless youp are already an experienced programmer. You can certainly come up with poor ways to learn f90/f95/f2003. That doesn't mean that f77 is the answer. One can come up with equally poor ways to learn f77. -- Richard Maine | Good judgment comes from experience; email: last name at domain . net | experience comes from bad judgment. domain: summertriangle | -- Mark Twain
From: Jim Xia on 14 May 2010 17:09 > Indeed my reaction is exactly the opposite of Watcher's (though this > begins to not surprise me). I find the f77 syntax complicated and > confusing. On the whole, I'd find things much better if the f77 syntax > were disallowed, but alas, that is not practical for compatibility > reasons. > > If you think, for example, that > > real x > > declares a local real variable named x, then you don't understand the > f77 syntax, which would not be surprising. Many people get it wrong. > I've seen experts on the committee propose text for the standard that > gets it wrong. Ah, the attribute declaration statements. These are the most hated features in Fortran for me. I'm still seeing code like this in claimed F95 programs INTEGER x REAL y DOUBLE PRECISION z COMPLEX w .... many lines of declarations PARAMETER (x = 10, y = 1.0) Yes, you don't know what they're until you read the whole program. I certainly hope new people don't learn to write code like that anymore. Cheers, Jim
From: Ron Shepard on 14 May 2010 17:40 In article <hsjubj$5hp$2(a)news.eternal-september.org>, A Watcher <stocksami(a)earthlink.net> wrote: > glen herrmannsfeldt wrote: > ? > > > > Now, if you have a class that goes through features in an > > appropriate order, such that you learn the easier to use ones > > first, then maybe it isn't a problem. But if you pick up a > > Fortran 2003 reference manual and start reading, you will get > > confused faster than from a Fortran 77 reference manual. > > > > That's what I was getting at. If you are learning it on your own F90/95 > can be bewildering. I certainly don't suggest sticking to F77, though. > Just use it to get started. There are many tutorials and textbooks available for f95 that make learning the language much easier. There are some online that are free and pretty good, at least good enough to make learning the language better than "bewildering". I'm not aware of any that address the new f2003 features, but I'd expect those to be available soon as compilers begin to support those new features. $.02 -Ron Shepard
From: A Watcher on 14 May 2010 19:21 Ron Shepard wrote: > In article <hsjubj$5hp$2(a)news.eternal-september.org>, > A Watcher <stocksami(a)earthlink.net> wrote: > >> glen herrmannsfeldt wrote: >> ? >>> Now, if you have a class that goes through features in an >>> appropriate order, such that you learn the easier to use ones >>> first, then maybe it isn't a problem. But if you pick up a >>> Fortran 2003 reference manual and start reading, you will get >>> confused faster than from a Fortran 77 reference manual. >>> >> That's what I was getting at. If you are learning it on your own F90/95 >> can be bewildering. I certainly don't suggest sticking to F77, though. >> Just use it to get started. > > There are many tutorials and textbooks available for f95 that make > learning the language much easier. There are some online that are > free and pretty good, at least good enough to make learning the > language better than "bewildering". I'm not aware of any that > address the new f2003 features, but I'd expect those to be available > soon as compilers begin to support those new features. > > $.02 -Ron Shepard A well written book aimed at beginners, or at least people who are new to fortran, would be good. Ideally it should teach the core ideas and not try to cover everything at once. The learning curve can be steep if you try to learn it all at once.
From: steve on 14 May 2010 21:00
On May 14, 2:09 pm, Jim Xia <jim...(a)hotmail.com> wrote: > > Indeed my reaction is exactly the opposite of Watcher's (though this > > begins to not surprise me). I find the f77 syntax complicated and > > confusing. On the whole, I'd find things much better if the f77 syntax > > were disallowed, but alas, that is not practical for compatibility > > reasons. > > > If you think, for example, that > > > real x > > > declares a local real variable named x, then you don't understand the > > f77 syntax, which would not be surprising. Many people get it wrong. > > I've seen experts on the committee propose text for the standard that > > gets it wrong. > > Ah, the attribute declaration statements. These are the most hated > features in Fortran for me. I'm still seeing code like this in > claimed F95 programs > > INTEGER x > REAL y > DOUBLE PRECISION z > COMPLEX w > ... many lines of declarations > PARAMETER (x = 10, y = 1.0) > Maybe it is claimed to be a F95 program because, well, it is standard conforming code. -- steve |