<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Calling other programs from Visual Fortran in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765560#M19952</link>
    <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Have you ever experience the fact having for example 10 threads, and up to a certain moment everything to work well until a moment where even though the main program sets the events correctly (returns 1), the specific sub-program hasn't manage to restart and reset each event. At the end of the day the main program goes to waitformultiple objects statement and passes it without all the sub-programs to have re-started and reseted their events. I understand that this is a problem of synchronization due to the multiple threads in a single processor. Is there a way the main program to know that definetely all the events have been reseted before to go to waitmultip?&lt;/P&gt;&lt;P&gt;Any ideas&lt;/P&gt;</description>
    <pubDate>Mon, 03 Apr 2006 23:24:43 GMT</pubDate>
    <dc:creator>gsfantos</dc:creator>
    <dc:date>2006-04-03T23:24:43Z</dc:date>
    <item>
      <title>Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765535#M19927</link>
      <description>&lt;DIV&gt;Hi there, &lt;/DIV&gt;
&lt;DIV&gt;I was wondering if you could have two fortran programs, where the second one is being called durring the run of the first one. Can they interchange information at real time? What commands should I use to start another program in the source file?&lt;/DIV&gt;
&lt;DIV&gt;Thanks in advance&lt;/DIV&gt;</description>
      <pubDate>Mon, 13 Feb 2006 19:57:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765535#M19927</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-13T19:57:22Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765536#M19928</link>
      <description>RUNQQ&lt;BR /&gt;SYSTEMQQ&lt;BR /&gt;CreateProcess&lt;BR /&gt;ShellExecute&lt;BR /&gt;ShellExecuteEx&lt;BR /&gt;&lt;BR /&gt;As for communication, see &lt;A href="http://softwareforums.intel.com/ids/board/message?board.id=5&amp;amp;message.id=16895" target="_blank"&gt;this recent thread.&lt;/A&gt; It also contains a sample pair of programs communicating using named pipes.</description>
      <pubDate>Mon, 13 Feb 2006 20:09:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765536#M19928</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-13T20:09:28Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765537#M19929</link>
      <description>&lt;P&gt;Thanks a lot for your very quick answer!!! It's really appreciated.&lt;/P&gt;
&lt;P&gt;The problem is that I am not that good in programming and even though I know about the commands you told me I cannot make them working. I haven't really understand if it is possible and how can I do it, from my main program, to call and run another .exe fortran file which will output some results and I will read them from my main. when i am using the runqq command {&lt;FONT color="#008080"&gt;&lt;STRONG&gt;RUNQQ&lt;/STRONG&gt; (&lt;I&gt;filename&lt;/I&gt;, &lt;I&gt;commandline&lt;/I&gt;)} firstly I don't understand what we put in the commandline.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#008080"&gt;Thanks again for your help&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 13 Feb 2006 21:05:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765537#M19929</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-13T21:05:18Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765538#M19930</link>
      <description>If the program doesn't expect command-line arguments, just supply an empty string ("").</description>
      <pubDate>Mon, 13 Feb 2006 21:26:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765538#M19930</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-13T21:26:59Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765539#M19931</link>
      <description>&lt;DIV&gt;Thanks a lot,&lt;/DIV&gt;
&lt;DIV&gt;I made it working. The problem was that I hadn't understand that even though the exe file you are calling may be even in a different disc, the input file for this program must be in the same folder where the main program is. So I think you helped me a lot.&lt;/DIV&gt;
&lt;DIV&gt;Now my problem is that actually I don't want the main program to wait until the called one to be finished, but I want the main to continue running and the called one to be active and waiting new input data from the main. Is there any function like runqq that doesnot hold the main program , and do you know if there is any function that delays a program for a specific duration, until the called one has produced the results the main needs, and vice versa&lt;/DIV&gt;
&lt;DIV&gt;Thanks again for your valuable help, is really appreciated&lt;/DIV&gt;</description>
      <pubDate>Mon, 13 Feb 2006 21:35:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765539#M19931</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-13T21:35:31Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765540#M19932</link>
      <description>Working directory of the spawned process is the same as the calling process' one (usually, its own directory). You can use CHANGEDIRQQ/CHANGEDRIVEQQ to change the directory to the file's directory.&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="blue"&gt;&lt;I&gt;Now my problem is that actually I don't want the main program to wait until the called one to be finished, but I want the main to continue running and the called one to be active and waiting new input data from the main.&lt;/I&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;How do you exchange data? Through files? But even then, how do you expect to know when the called program have finished so that you can read the data?&lt;BR /&gt;&lt;BR /&gt;You can use (untested):&lt;BR /&gt;&lt;PRE&gt;SYSTEMQQ("start foo.exe")&lt;BR /&gt;CALL SLEEPQQ(nMilliseconds)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;However, if you want fine control, you have to use some much finer inter-process communication than simple "wait for a while, it probably completed". Pipes.zip sample from the thread I referred to above does that, pretty much, but don't quite fit into your statement that you're "not that good in programming" :-).</description>
      <pubDate>Mon, 13 Feb 2006 21:58:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765540#M19932</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-13T21:58:42Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765541#M19933</link>
      <description>&lt;P&gt;Well, the problem is that programming is not my main job, and I am using it just to give "life" to my main job which is maths. The pipes link you sent me it seems very complecated to me. However i was thinking to interchange data through files and using something that good understand if the file is ready to be read to read it, if not wait for another minute and try again. something like this. time consuption is not a problem for now. I am thinking something about the "direct access" reading and the ENDFILE statement, but I haven't about it yet. Worst case scennario I will made them in such a way thateach one must finish first and the continue.&lt;/P&gt;
&lt;P&gt;However, I was also wondering if in the case where I have a program waiting for something, I could allocate the memory that is using to a hard drive and free my ram. Do you have any suggestion for this&lt;/P&gt;
&lt;P&gt;Thanks again for your help&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2006 22:20:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765541#M19933</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-13T22:20:25Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765542#M19934</link>
      <description>Well, the simplest IPC (inter-process communication) I can think of are named event objects. You can regard it as a "system-wide" logical variable, which you can wait for to become "signalled" (.true.). Here's a sample pair of programs.&lt;BR /&gt;&lt;BR /&gt;Sorry, can't get much simpler than that :-).&lt;BR /&gt;&lt;BR /&gt;As for memory management, don't even try it  the system will optimize memory resources better than you can do it.</description>
      <pubDate>Mon, 13 Feb 2006 23:07:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765542#M19934</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-13T23:07:33Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765543#M19935</link>
      <description>&lt;P&gt;That's great. Thanks a lot , very much appreciated.&lt;/P&gt;
&lt;P&gt;Let me have a good look to the files and see how can I attached them to my problem&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 13 Feb 2006 23:43:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765543#M19935</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-13T23:43:59Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765544#M19936</link>
      <description>&lt;P&gt;That works perfect. Thanks a lot.&lt;/P&gt;
&lt;P&gt;Sorry for being a problem to you, but if you want now to add more "events2" programs you just have to go and create non-signaled events as for event2 but with different names hEvent3.....= (i.e. CreateEvent(NULL, TRUE, FALSE, "My3....."C)) and then work as before individually for each hEvent2....? Also inside the EVENTS3.... you have to specify hEvent= OpenEvent(EVENT_ALL_ACCESS, FALSE, "My3......."C) and the rest are same?&lt;/P&gt;
&lt;P&gt;I did and I think is working, but your experience should tell me if I have any mistake ........&lt;/P&gt;
&lt;P&gt;Thanks again for your valuable help&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Feb 2006 01:41:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765544#M19936</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-14T01:41:28Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765545#M19937</link>
      <description>Yes, that approach should be fine.&lt;BR /&gt;&lt;BR /&gt;Side note: in case you wondered, I inserted small SLEEPQQ's in the sample to ensure that the code won't "roll over", i.e. that the other process will wake up from its WaitForSingleObject and "this" proces will enter its own WaitForSingleObject. If both codes were in two threads the same one process, it is guaranteed that SetEvent will "wake up" other waiting threads &lt;B&gt;immediately&lt;/B&gt; (i.e. yield control to other threads). That is not the case with different proceses, so some small waiting to ensure proper synchronization is called for. 100 ms I used is probably an overkill; maybe even zero would do, as it merely instructs the multi-tasker to switch execution to other threads/processes.</description>
      <pubDate>Tue, 14 Feb 2006 16:29:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765545#M19937</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-14T16:29:17Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765546#M19938</link>
      <description>&lt;P&gt;The SYSTEMQQ is fine, I understand about it.&lt;/P&gt;
&lt;P&gt;I did what I said in my last post for more than one separate events. The problem is that when I am asking its individual code to print the hevent number , just to see what is transferred, only for the firsteventthe number is the same with the created by the main program event number, however for the others the hevent number is a number not from the ones that are created, but another one that is also the same exactly for both of them (in case of three sub-events). Do you have any clue why this happens?&lt;/P&gt;
&lt;P&gt;The other thing is that I must always pass the control to each one after the previous has finished, or can I pass the control to all sub-events at the same time and wait until again all of them have finished. I tried also this but I didn't manage to get it right. It's not amy main concern, but just to know if I could have them working in parallel&lt;/P&gt;
&lt;P&gt;Thanks again,your help is much appreciated&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2006 17:27:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765546#M19938</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-14T17:27:33Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765547#M19939</link>
      <description>Re event handle values: that's normal, and that's just the concept of &lt;B&gt;handle&lt;/B&gt;. When you access (open/create) any object (event, file, process, printer, etc.), Windows gives you your own local handle, which is meaningful only in "your" process. Compare: you may OPEN the same file in same or different programs simultaneously, but uner unit numbers 11 and 42  however, both still refer to the same file.&lt;BR /&gt;
&lt;BR /&gt;
Apart from WaitForSingleObject, there's also WaitForMultipleObjects. There, you can wait for an array of event handles, and tell it whether to wait for all or just for any:&lt;BR /&gt;
&lt;PRE&gt;&lt;BR /&gt;
integer(HANDLE):: hEvent(3)&lt;BR /&gt;
hEvent(1) = CreateEvent(...)&lt;BR /&gt;
hEvent(2) = CreateEvent(...)&lt;BR /&gt;
hEvent(3) = CreateEvent(...)&lt;BR /&gt;
...&lt;BR /&gt;
!TRUE means that you wait until &lt;B&gt;all&lt;/B&gt; become signalled&lt;BR /&gt;
iRet = WaitForMultipleObjects(3, LOC(hEvent), TRUE, INFINITE)&lt;/PRE&gt;&lt;BR /&gt;
If 3rd argument is TRUE (wait for all), and all events become signalled, the function will return, and iRet will be WAIT_OBJECT_0 (=0). If it's FALSE, iRet will be index-minus-one of hEvent that became signalled (e.g. 1 means hEvent(2)). If the timeout expired, the return value will be WAIT_TIMEOUT (=258); of course, it can't happen with INFINITE.&lt;P&gt;Message Edited by JugoslavDujic on &lt;SPAN class="date_text"&gt;02-14-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:15 AM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2006 18:08:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765547#M19939</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-14T18:08:51Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765548#M19940</link>
      <description>&lt;DIV&gt;The waitformultipleobjects works fine for the main program. The problem is that for each individual program once they give the control to the main, they wait the systemqq predefined time and then they go off course to their waitforsingleobject. Since now the main hasn't reset the hevent values because is waiting all the sub-programs to finish, the sub-programs one by one as they finish pass their waitforsingleobject and continue.&lt;/DIV&gt;
&lt;DIV&gt;So I suppose there must be a way for the sub-programs not to overflow like this. What am I not doing right or what am I missing?&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Feb 2006 18:34:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765548#M19940</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-14T18:34:50Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765549#M19941</link>
      <description>Sorry, but I don't follow what &lt;B&gt;exactly&lt;/B&gt; you're trying to achieve. Of course, the "sub-programs" don't have to call WaitForSingleObject if they don't have to wait. &lt;BR /&gt;&lt;BR /&gt;Reading between lines, I assume you want some kind of "central waiting" scheme. Note that you may use two hEvents for communicating between the main program and the sub-program, one for each "speaking" direction. Also, you may use "multiple-wait" scheme in the following manner:&lt;BR /&gt;&lt;PRE&gt;&lt;BR /&gt;!In main program:&lt;BR /&gt;integer(HANDLE): hEventListen(3), hEventTalk(3)&lt;BR /&gt;...&lt;BR /&gt;do while (.true.)&lt;BR /&gt;  iRet = WaitForMultipleObjects(3, LOC(hEventListen), &lt;B&gt;FALSE&lt;/B&gt;, INFINITE)&lt;BR /&gt;  select case(iRet)&lt;BR /&gt;  case(0)&lt;BR /&gt;      !1st program has finished something:&lt;BR /&gt;      READ(...) some results&lt;BR /&gt;      !Now, "say" to program 1 that it may proceed. It should&lt;BR /&gt;      !ResetEvent(hEventListen(1)) in turn, to enable waiting.&lt;BR /&gt;      SetEvent(hEventTalk(1))&lt;BR /&gt;  case(1)&lt;BR /&gt;      ...&lt;BR /&gt;  end select&lt;BR /&gt;end do&lt;/PRE&gt;I admit I didn't foresee in the start it would get complicated like this :-). &lt;BR /&gt;&lt;BR /&gt;At this point, you might consider &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/mutex_objects.asp" target="_blank"&gt;using (named) mutex objects&lt;/A&gt; instead of events. They're fairly similar, except that they "know" who is their current owner, i.e. WaitFor... will not halt if that same thread/program &lt;I&gt;owns&lt;/I&gt; the mutex. A mutex can be "released" (ownership granted to others) by ReleaseMutex, and will become owned after a WaitFor.. it returns. Note, however, that it can become "&lt;I&gt;abandoned&lt;/I&gt;" if a thread/process dies while it still owns it  don't forget to CloseHandle of it (actually, you should always CloseHandle for every created/opened object).&lt;BR /&gt;&lt;BR /&gt;I'm not saying this is necessarily a way to go, but it may become slightly simpler  sync issues can get complicated, and may even require a &lt;A href="http://en.wikipedia.org/wiki/Gantt_chart" target="_blank"&gt;Gantt chart&lt;/A&gt; to be gotten right.</description>
      <pubDate>Tue, 14 Feb 2006 19:30:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765549#M19941</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-02-14T19:30:15Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765550#M19942</link>
      <description>&lt;DIV&gt;Thanks a lot for everything. I managed to do it before reading your last post. However I will have a closer look to the mutex scheme.&lt;/DIV&gt;
&lt;DIV&gt;Basically after each subprogram was settingeach hevent (made it signalled) I placed a waitfor multipleobject command, in order to wait until all the sub-programs had finished. After this command I placed a sleepqq(1000) so when all the hevent were signalled, each sub-program was waiting 1000 before to go to waitsingleobject, and at the same time the main was reseting the hevents (I assume that the 1000 predefined will be enough for the main to loop over and reset the hevents). After the 1000 for each sub-program, the hevents were not off course signalled and therefore all the sub-programs now were waiting the main to signal all their hevents.&lt;/DIV&gt;
&lt;DIV&gt;In that way I manage not to have an overflow for the subprograms.&lt;/DIV&gt;
&lt;DIV&gt;Thanks again for everything, without you it seemed to me now something impossible to be done by me. Thanks a lot&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Feb 2006 19:49:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765550#M19942</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-02-14T19:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765551#M19943</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Hi there again,&lt;/P&gt;&lt;P&gt;do you know if there is a limit on how many parallel programs I can run in win32? I went up to 64 but I cannot make it more than that. Even though I have specified: iret=WaitForMultipleObjects(MRVE,LOC(hEvent),TRUE,INFINITE)&lt;/P&gt;&lt;P&gt;they don't wait and they start run. That happens when mrve is more than 64.&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;</description>
      <pubDate>Sat, 25 Mar 2006 01:41:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765551#M19943</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-03-25T01:41:04Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765552#M19944</link>
      <description>A quick Googling confirms that that's the case – WFMO has a limit of 64 wait handles. I didn't seek for workarounds though.</description>
      <pubDate>Sat, 25 Mar 2006 01:55:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765552#M19944</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-03-25T01:55:42Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765553#M19945</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Thanks a lot for the very quick reply. I am trying to find a way to overcome this-if there is any way to do it. I checked that CreateEvent creates more than 64. only the WFMO waits up to 64.&lt;/P&gt;&lt;P&gt;If I won't find anything, I am thinking of calling the sub-programs from interface programs between my current subprograms and main. Will see....&lt;/P&gt;&lt;P&gt;Thanks again&lt;/P&gt;</description>
      <pubDate>Sat, 25 Mar 2006 02:42:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765553#M19945</guid>
      <dc:creator>gsfantos</dc:creator>
      <dc:date>2006-03-25T02:42:00Z</dc:date>
    </item>
    <item>
      <title>Re: Calling other programs from Visual Fortran</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765554#M19946</link>
      <description>Yep, the problem seems to be only with WFMO -- the docs indeed mention MAXIMUM_WAIT_OBJECTS.&lt;BR /&gt;&lt;BR /&gt;A quick idea off the top of my head: when you get close to the limit (e.g. 60 objects), spawn another thread (CreateThread) and in its ThreadFunc wait for the rest (the ThreadFunc must be a STDCALL integer function with exactly one argument). In the main thread, wait for first 60 processes &lt;B&gt;and&lt;/B&gt; the thread handle. In this way, you "simultaneously" wait in two different places.</description>
      <pubDate>Sat, 25 Mar 2006 03:23:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Calling-other-programs-from-Visual-Fortran/m-p/765554#M19946</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2006-03-25T03:23:35Z</dc:date>
    </item>
  </channel>
</rss>

