<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.wiki.mohid.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.180.71.13&amp;*</id>
		<title>MohidWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.wiki.mohid.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.180.71.13&amp;*"/>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Special:Contributions/89.180.71.13"/>
		<updated>2026-04-04T20:14:21Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Mohid_Makefile&amp;diff=633</id>
		<title>Mohid Makefile</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Mohid_Makefile&amp;diff=633"/>
				<updated>2008-02-05T22:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Following the makefile [[Makefile CCCP| cross-platform, cross-compiler project methodology]], we finally developped a sound [[makefile]] project for [[MOHID]].&lt;br /&gt;
&lt;br /&gt;
[[Image:makeDAGtreemed.png|frame|'''MOHID makefile project DAG tree''':Orange ellipsoids are makefiles; orange rectangles are makefile code snippets; Diamond arrows are inclusions; Quiver arrows are recursive makes; Large rectangles are project folders; purple octagons are junction nodes. ''Sketch made using [http://www.yworks.com/en/products_yed_about.htm yED]'']]&lt;br /&gt;
&lt;br /&gt;
== Global environment variables ==&lt;br /&gt;
There is one thing that allow this project to be easily cross-platformed: &lt;br /&gt;
# The use of global environment variables. They are all defined in the respective platform makefile: ''win.mk'', ''nix.mk'', etc... Every new addition of a module, of a fortran file, or of an action must be followed by an update of all the respective platform makefiles (''win.mk'', ''nix.mk'', etc...)&lt;br /&gt;
&lt;br /&gt;
== Platform/Compiler expandible ==&lt;br /&gt;
The project makefile's DAG meta-tree shows currently 4 platforms/compilers available: windows ''win.mk'', linux ''nix.mk'', linux with [http://www.pgroup.com/ Portland Group Fortran] ''nix_pgf.mk'' and macintosh ''mac.mk''. &lt;br /&gt;
*To add a new compiler and/or a new architecture, one needs to change the main ''Makefile'' and create a new ''arch_Fcomp.mk'' file.&lt;br /&gt;
&lt;br /&gt;
== Action expandible ==&lt;br /&gt;
An ''action'' is one given process to apply to the whole project: it could be to ''build'' the project, to ''clean'' the project, to ''install'' the binaries of the project to a safe place, to ''Get'' the files of the project from [[Sos|SourceOffSite]] etc ... The [[makefile]] code for the ''actions'' of the MOHID project is located in the files contained by the ''makefiles'' folder (at the bottom of the image).&lt;br /&gt;
*To add an action, one needs to edit the ''actions.mk'' file and create in the ''makefiles'' folder a new ''myaction.mk'' file.&lt;br /&gt;
&lt;br /&gt;
== Module expandible ==&lt;br /&gt;
The MOHID project has a modular nature. In this makefile project, each module is subject to the same overall actions and each module is contained in a light-blue folder in the image (''MohidWater'', ''Mohid_Base_1'', ''Mohid_Base_2'' and ''...'').&lt;br /&gt;
*To add a new file to an existing module: one must edit the ''Files.mk'' and the ''Dependencies.mk'' within the module's folder.&lt;br /&gt;
*To add a new module: one must create a new folder, name it after the module, copy the module's files, create the corresponding ''Files.mk'' and ''Dependencies.mk'' files. Finally, one must edit the ''Modules.mk'' and ''Dependencies.mk'' from the ''root'' folder.&lt;br /&gt;
&lt;br /&gt;
== User's guide ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
*Build&lt;br /&gt;
 &amp;gt;make nix&lt;br /&gt;
Please edit the ''nix_template.mk'' first and save it as ''nix.mk''&lt;br /&gt;
*Clean&lt;br /&gt;
 &amp;gt;make nix.clean&lt;br /&gt;
*Get from SourceOffSite&lt;br /&gt;
 &amp;gt;make nix.sos&lt;br /&gt;
Please edit the ''../makefiles/Sos_template.mk'' file first and save it as ''../makefiles/Sos.mk''.&lt;br /&gt;
*Install&lt;br /&gt;
 &amp;gt;make nix.install&lt;br /&gt;
This will copy the binaries to a specific location on the harddisk. You can change the location by editing the ''nix.mk'' file.&lt;br /&gt;
&lt;br /&gt;
===Windows ===&lt;br /&gt;
Use GNUmake! Attention: Rename ''gmake.exe'' to ''make.exe''.&lt;br /&gt;
*Build&lt;br /&gt;
 &amp;gt;make win&lt;br /&gt;
*Clean&lt;br /&gt;
 &amp;gt;make win.clean&lt;br /&gt;
*Get from SourceOffSite&lt;br /&gt;
 &amp;gt;make win.sos&lt;br /&gt;
Please edit the ''../makefiles/Sos.mk'' file first.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# The [[Makefile CCCP|makefile]] methodology.&lt;br /&gt;
# The [http://www.gnu.org/software/make/manual/make.html GNU make manual].&lt;br /&gt;
# The graph editor [http://www.yworks.com/en/index.html yED].&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Makefile]]&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Makefile_CCCP&amp;diff=458</id>
		<title>Makefile CCCP</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Makefile_CCCP&amp;diff=458"/>
				<updated>2008-02-05T22:34:27Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section describes a cross-platform, cross-compiler [[makefile]] development methodology. The syntax  to use would be:&lt;br /&gt;
 make ''platform''.''action''&lt;br /&gt;
''(ex: make win, make unix.clean, etc...).''&lt;br /&gt;
&lt;br /&gt;
== The project filetree ==&lt;br /&gt;
The project should split the code into modules, and each module should be assigned a folder from the root folder. Therefore there would only be a two-level folders tree:&lt;br /&gt;
#The root&lt;br /&gt;
#The modules&lt;br /&gt;
&lt;br /&gt;
== The project makefiles distribution ==&lt;br /&gt;
The root folder must contain:&lt;br /&gt;
*The Makefile (''Makefile'')&lt;br /&gt;
*One specific makefile per platform and per compiler (ex: ''win.mk'', ''unix.mk'', etc...)&lt;br /&gt;
*An auxiliary file included in the latter (''aux.mk'')&lt;br /&gt;
&lt;br /&gt;
And each module must contain:&lt;br /&gt;
*The module standard Makefile (''module/Makefile'')&lt;br /&gt;
*The dependencies file included in the latter (''module/Dependencies.mk'')&lt;br /&gt;
*The local environment variables file included in the former (''module/Vars.mk'')&lt;br /&gt;
&lt;br /&gt;
== The makefile's global variables ==&lt;br /&gt;
The idea is to use '''global variables''' to pass arguments to the different modules makefiles. Thus, each specific platform makefile in the root folder defines these global variables. Then, it calls the modules makefiles who will use the global variables in their syntax. If a systematic approach of using global variables is implemented, then it is fairly easy to have a cross-platform makefile project implemented; and easily extended.&lt;br /&gt;
&lt;br /&gt;
==The [[Mohid Makefile]] Project==&lt;br /&gt;
&lt;br /&gt;
== A sample project for Mohid2D ==&lt;br /&gt;
Here we apply the methodology described above.&lt;br /&gt;
&lt;br /&gt;
=== ''Makefile'' ===&lt;br /&gt;
 SHELL = /bin/sh&lt;br /&gt;
 &lt;br /&gt;
 export MAKE = make&lt;br /&gt;
 PLATCLEAN = win.clean nix.clean&lt;br /&gt;
 PLAT = $(PLATCLEAN:.clean=)&lt;br /&gt;
 &lt;br /&gt;
 .PHONY: default $(PLATCLEAN) $(PLAT)&lt;br /&gt;
 &lt;br /&gt;
 default:&lt;br /&gt;
 	@echo Please choose your platform from:&lt;br /&gt;
 	@echo $(PLAT).&lt;br /&gt;
 	@echo Type &amp;quot;make win(.clean)&amp;quot; or &amp;quot;make nix(.clean)&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 $(PLAT):&lt;br /&gt;
 	$(MAKE) -f $@.mk all&lt;br /&gt;
 &lt;br /&gt;
 $(PLATCLEAN) : &lt;br /&gt;
 	$(MAKE) -f $(@:.clean=).mk clean&lt;br /&gt;
&lt;br /&gt;
=== ''win.mk'' ===&lt;br /&gt;
 SHELL = /bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ###### WIN Exported variables #########&lt;br /&gt;
 export DEL = del /Q&lt;br /&gt;
 export O = obj&lt;br /&gt;
 export F = f90&lt;br /&gt;
 export MOD = mod&lt;br /&gt;
 export CC= ifort&lt;br /&gt;
 export CCFLAGS  = -c -fpp -nologo # Debug: -g Profiling: -p&lt;br /&gt;
 export LFLAGS   = -fpp -nologo # Profiling: -p&lt;br /&gt;
 export AR = ar rc&lt;br /&gt;
 export HDF5 = D:/Projectos/Mohid_v4/IntelLibs&lt;br /&gt;
 export LIBS = \&lt;br /&gt;
        ../Library/Library.lib \&lt;br /&gt;
        ../Modulos/Modulos.lib \&lt;br /&gt;
        ../Boxdif_hidrodin/Boxdif_hidrodin.lib \&lt;br /&gt;
        ../Mohid_Base/Mohid_Base.lib \&lt;br /&gt;
        $(HDF5)/hdf5.lib \&lt;br /&gt;
        $(HDF5)/hdf5_hl.lib \&lt;br /&gt;
        $(HDF5)/hdf5c.lib \&lt;br /&gt;
        $(HDF5)/hdf5f90.lib \&lt;br /&gt;
        $(HDF5)/szlib.lib \&lt;br /&gt;
        $(HDF5)/zlib.lib&lt;br /&gt;
 #### End of exported variables ####&lt;br /&gt;
 &lt;br /&gt;
 include aux.mk&lt;br /&gt;
&lt;br /&gt;
=== ''nix.mk'' ===&lt;br /&gt;
 SHELL = /bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ###### NIX Exported variables #########&lt;br /&gt;
 export DEL = rm&lt;br /&gt;
 export O = o&lt;br /&gt;
 export F = f90&lt;br /&gt;
 export MOD = mod&lt;br /&gt;
 export CC= ifort&lt;br /&gt;
 export CCFLAGS  = -c -fpp -nologo # Debug: -g Profiling: -p&lt;br /&gt;
 export LFLAGS   = -fpp -nologo # Profiling: -p&lt;br /&gt;
 export AR = ar rc&lt;br /&gt;
 export HDF5 = /opt/hdf5/hdf5/lib&lt;br /&gt;
 export LIBS = \&lt;br /&gt;
        ../Boxdif_hidrodin/Boxdif_hidrodin.lib \&lt;br /&gt;
        ../Mohid_Base/Mohid_Base.lib \&lt;br /&gt;
        ../Modulos/Modulos.lib \&lt;br /&gt;
        ../Library/Library.lib \&lt;br /&gt;
        $(HDF5)/libhdf5_fortran.a \&lt;br /&gt;
        $(HDF5)/libhdf5.a \&lt;br /&gt;
        $(HDF5)/libhdf5_hl.a&lt;br /&gt;
 #### End of exported variables ####&lt;br /&gt;
 &lt;br /&gt;
 include aux.mk&lt;br /&gt;
&lt;br /&gt;
=== ''aux.mk'' ===&lt;br /&gt;
 MODCLEAN = Modulos.clean Boxdif_hidrodin.clean Library.clean Mohid_Base.clean Mohid2D.clean&lt;br /&gt;
 MODULES = $(MODCLEAN:.clean=.all)&lt;br /&gt;
 &lt;br /&gt;
 .PHONY: all clean $(MODULES) $(MODCLEAN)&lt;br /&gt;
 &lt;br /&gt;
 all: $(MODULES)&lt;br /&gt;
 &lt;br /&gt;
 clean: $(MODCLEAN)&lt;br /&gt;
 &lt;br /&gt;
 $(MODULES):&lt;br /&gt;
 	$(MAKE) -C $(@:.all=) all&lt;br /&gt;
 &lt;br /&gt;
 $(MODCLEAN):&lt;br /&gt;
 	$(MAKE) -C $(@:.clean=) clean&lt;br /&gt;
 &lt;br /&gt;
 #Modules dependencies&lt;br /&gt;
 Mohid2D.all: Mohid_Base Library.all&lt;br /&gt;
 Mohid_Base.all: Boxdif_hidrodin.all&lt;br /&gt;
 Library.all: Modulos.all&lt;br /&gt;
&lt;br /&gt;
=== ''ModuleA/Vars.mk'' ===&lt;br /&gt;
 SHELL = /bin/sh &lt;br /&gt;
 &lt;br /&gt;
 INCS = -I../ -I$(HDF5)&lt;br /&gt;
 SRCS = \&lt;br /&gt;
        ModuleGlobalData.$(F) \&lt;br /&gt;
        ModuleHDF5.$(F) \&lt;br /&gt;
        ModuleTime.$(F) \&lt;br /&gt;
        Module_EnterData.$(F) \&lt;br /&gt;
        ModuleOilSpill.$(F) \&lt;br /&gt;
        ModuleAppPART3D.$(F) \&lt;br /&gt;
        ModuleEuler.$(F) \&lt;br /&gt;
        ModuleOxygenSaturation.$(F)&lt;br /&gt;
 TARGET = Modulos.lib&lt;br /&gt;
 &lt;br /&gt;
=== ''ModuleA/Makefile'' ===&lt;br /&gt;
 include Vars.mk&lt;br /&gt;
 &lt;br /&gt;
 OBJS = $(SRCS:.$(F)=.$(O)) &lt;br /&gt;
 &lt;br /&gt;
 .PHONY: all clean&lt;br /&gt;
 &lt;br /&gt;
 all: $(TARGET)&lt;br /&gt;
 &lt;br /&gt;
 $(TARGET) : $(OBJS)&lt;br /&gt;
 	@$(AR) $@ $^&lt;br /&gt;
 	@echo Finished building $@.&lt;br /&gt;
 &lt;br /&gt;
 clean:&lt;br /&gt;
 	@-$(DEL) *.$(O) *.$(MOD) $(TARGET)&lt;br /&gt;
 	@echo Erased $(TARGET) files.&lt;br /&gt;
  &lt;br /&gt;
 %.$(O) : %.$(F)&lt;br /&gt;
 	@$(CC) $(CCFLAGS) $(INCS) $&amp;lt;&lt;br /&gt;
 	@echo $* .............. [OK]&lt;br /&gt;
 &lt;br /&gt;
 include Dependencies.mk&lt;br /&gt;
&lt;br /&gt;
=== ''ModuleA/Dependencies.mk'' ===&lt;br /&gt;
 #Dependencies&lt;br /&gt;
 ModuleHDF5.$(O) : ModuleGlobalData.$(O)&lt;br /&gt;
 Module_EnterData.$(O) : ModuleTime.$(O)&lt;br /&gt;
 ModuleOilSpill.$(O) : Module_EnterData.$(O)&lt;br /&gt;
 ModuleAppPART3D.$(O) : ModuleOilSpill.$(O)&lt;br /&gt;
 ModuleEuler.$(O) : ../param.cmb&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Makefile]]&lt;br /&gt;
*[[Mohid Makefile]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Makefile]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Makefile_methodology&amp;diff=460</id>
		<title>Makefile methodology</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Makefile_methodology&amp;diff=460"/>
				<updated>2008-02-05T22:33:59Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Makefile CCCP]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Makefile]]&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Makefile_methodologyP&amp;diff=462</id>
		<title>Makefile methodologyP</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Makefile_methodologyP&amp;diff=462"/>
				<updated>2008-02-05T22:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Makefile CCCP]]&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Template&amp;diff=889</id>
		<title>Template</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Template&amp;diff=889"/>
				<updated>2008-02-05T16:22:13Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Template:Anchor]], ''name''&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Blog&amp;diff=70</id>
		<title>Blog</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Blog&amp;diff=70"/>
				<updated>2008-02-05T16:13:19Z</updated>
		
		<summary type="html">&lt;p&gt;89.180.71.13: /* youTube */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Blog]] is a derived word from ''web-log'', which stands as a web-based log. The interest is that it can be easily published, as well as can contain, besides text, multimedia rich content such as images, sound or films. A published [[blog]] typically provides an [[Wiki RSS|rss]] feed, thus enabling broadcasting. An already notorious blogging site is [http://www2.blogger.com Blogger].&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
Here's how to embed an mp3 file in [http://www2.blogger.com blogger].&lt;br /&gt;
&lt;br /&gt;
===Odeo===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;http://odeo.com/flash/audio_player_tiny_gray.swf&amp;quot; quality=&amp;quot;high&amp;quot; width=&amp;quot;145&amp;quot;&lt;br /&gt;
  height=&amp;quot;25&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot;  &lt;br /&gt;
 flashvars=&amp;quot;audio_id=5440573&amp;amp;audio_duration=1337.1&amp;amp;valid_sample_rate=true&amp;amp;external_url=&lt;br /&gt;
 http://downloads.oreilly.com/digitalmedia/2007/01/08/dmi6-dtm-in-japan.mp3&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;odeo&amp;gt;http://downloads.oreilly.com/digitalmedia/2007/01/08/dmi6-dtm-in-japan.mp3&amp;lt;/odeo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
&lt;br /&gt;
===youTube===&lt;br /&gt;
Here's how to embed a youTube video in [http://www2.blogger.com blogger].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;object width=&amp;quot;425&amp;quot; height=&amp;quot;350&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://www.youtube.com/v/&lt;br /&gt;
 MkEbkbTTNss&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;transparent&amp;quot;&amp;gt;&amp;lt;embed src=&amp;quot;http://www.youtube.com/v/&lt;br /&gt;
 MkEbkbTTNss&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; wmode=&amp;quot;transparent&amp;quot; width=&amp;quot;425&amp;quot; height=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;/embed&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's how to embed the same video in this [[wiki]]&lt;br /&gt;
 &amp;amp;lt;youtube&amp;amp;gt;ZZgIJZwQalw&amp;amp;lt;/youtube&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;youtube&amp;gt;ZZgIJZwQalw&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:wiki]]&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>89.180.71.13</name></author>	</entry>

	</feed>