Silverfrost Forums

Welcome to our forums

Using external procedures, subprograms or functions

16 Oct 2017 4:10 #20456

John, No I am asking that first two lines of the explanation for /timing in the HELP had to have almost all the essential information needed

  1. how to apply /timing (trivial) and
  2. where to look for the outcome of /timing.

I do not have time for try and faults to find that myself and have no interest to read two pages how it works because intuitively all is clear without this. Fun though was that after finally reading those two pages i found no answer on my question 2) which made me remembering Landau. 😃

Remember I wrote that I am always losing my keys, wallet, glasses and cellphone? I spent time to really realize this phenomenon. The answer is that all my life I lived on my good short memory. With aging, and with added with years stress i became more scatter-minded. In such cases everyone losing control of hands and the memory becomes more and more professional oriented and stops caring about small unimportant things like what is in your hands. Hands start living their own life 😃

After teaching myself to place these things strictly on one-two places only (i remembered that granddad tried to teach me to keep everything in order but i did not care much) i do not have any problems anymore. Things are that there are almost infinite amount of places to displace your stuff.

Same with new things and bad not-intuitive documentation. There exist infinite amount of possibilities for implementation of /timing so you do not proceed at all if it was not answered exactly. The keyword here is 'exactly'. Documentation has to show exactly how thing were done first laconic standard way, and then verbose way.

16 Oct 2017 6:19 #20457

I haven't used this option recently so I had a quick look at the help file. In the first paragraph it tells me to use /TIMING on the command line. I tried this, ran the program and the output tells me where to find the report.

It has probably taken me longer to write this post.

16 Oct 2017 6:28 #20458

Paul,

You had previous knowledge of that stuff so the amount of potential tries and faults hence is substantially reduced even if you forgotten some things.

I have 200 lines in BAT file, and 300,000 lines of sources total in 1000 subprograms. Trying is not exactly my priority when i have 100 other things in my to do list when my experience says that seemingly small and easy things may suck all your time. Look how much time took original poster just to start 'elementary' thing to compile program. Days. And I am not sure he still finished it right. 😃 How many milliseconds it would take to you?

This is also exactly the same matter why i did not try Plato.

And same like centering axis name on native %pl LOGLOG plots. I have done that in my own graphics programs and know that it is 15 minutes work though initially it took decent amount of time. You also know that it is potentially doable very easily but you have not done that before so isn't this the reason we do not see it's working for almost 6 months?

Like long ago one our professor told us, students, looking at our confused tired faces: 'Yea, you will not believe but what a joy is to me to discuss this subject for the second time'

19 Oct 2017 11:19 #20505

Still having problems with /64. From the command prompt, if I compile with the /64 option and then execute SLINK64 CotMain.obj CotFunction.obj, I get the error message “[SLINK64 v1.8, Copyright (c) Silverfrost Ltd. 2015-2017] ***Command file terminated unexpectedly - use a file command to save the load.”

And the two years was from the other post. 😃

I can do everything from Plato except linking the .obj files. That must be done by SLINK (not SLINK64) in command prompt.

20 Oct 2017 12:38 #20507

'slink64 /help' will give some info on the commands. (why not /? also) I prefer the option 3) approach as it is more convenient for many ( often 100's of ) files.

Here is an example I have taken from a much larger build. the first file 'test.bat' will compile and build program.exe. the second file 'CotMain_load.txt' are the commands for slink64. All file names are arbitrary.

As slink64 does not support LE xxx.lib files, my equivalent CotMain_load.txt can get very long with many LOad commands, using tree names for all .obj files that I would normally place in my libraries. I use .txt as the use of .lnk as a file suffix is not a good approach.

test.bat date /T >ftn95.tce time /T >>ftn95.tce

rem build

del *.obj
del *.mod
del program.exe
 
rem  compile routines

ftn95 CotMain.f90      /64 >>ftn95.tce
ftn95 CotFunction.f90  /64 >>ftn95.tce
 
rem link routines and libraries

slink64 @CotMain_load.txt >> ftn95.tce
 
del *.obj
dir *.exe >> ftn95.tce

notepad ftn95.tce

CotMain_load.txt lo CotMain.obj lo CotFunction.obj map CotMain.map file program.exe

20 Oct 2017 7:04 #20512

kaliuzhkin

SLINK will not link 64 bit object files. You must use SLINK64.

You should be able to link from Plato. Just make sure that you have selected the right 'platform', that is x64 and not Win32 or .NET. If it doesn't work then maybe you are using an old Plato. The latest download is available from the Plato section of this forum.

A simple SLINK64 command line takes the form:

SLINK64 prog.obj sub.obj /file:prog.exe
20 Oct 2017 7:50 #20513

Dan, Sorry, I made typo in my recommendation post above suggesting forgetting colon here /file:YourExeName.EXE.

/* And one more rocked failed to lift due to the typo

Please login to reply.