Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28895 Discussions

Error: make: Nothing to be done for 'ibisnetcdf'.

negar
New Contributor I
5,981 Views

Hello,
I'm using a model in my project which I have sent it here. When I am making this model, I write make ibisnetcdf in the terminal but it shows this error to me. ( make: Nothing to be done for 'ibisnetcdf'. ) Could anybody help me with this error?

 

0 Kudos
9 Replies
Arjen_Markus
Honored Contributor I
5,971 Views

This does not need to be an error in the makefile itself. The message simply means that whatever actions are to be taken in the building of the target "ibisnetcdf" have already been taken, so nothing needs to be done anymore.

If you think that is not correct, you might do:

make clean

and then:

make

or

make ibisnetcdf

The command "make clean" is meant (at least for makefiles that follow the ordinary conventions) to remove all object files, executables and other products, so that the next "make" command starts with a clean slate.

mecej4
Honored Contributor III
5,963 Views

The makefile in Negar's model.zip does not have a make target with the name "ibisnetcdf"; that explains the message "nothing to be done...". Available targets are "ibis", "ibisabs", "clean" and "tardist".

negar
New Contributor I
5,953 Views

Actually, I created a blank file named ibisnetcdf, because before making this file I had this error (make: *** No rule to make target 'ibisnetcdf'.  Stop). The manual, which I have sent here, has written that for making and running the model I should write make ibisnetcdf and ibisnetcdf ( I have highlighted this part). On the other hand, when I write make and ./ibis in the terminal the model run. 

0 Kudos
Arjen_Markus
Honored Contributor I
5,938 Views

Well, in an somewhat unexpected way, that does explain the problem ;). make sees a file called "ibisnetcdf", so the same name as the target you gave it to build. There are no rules in the makefile to actually build it, so make concludes that there is nothing to be done.

What you need to do is add a target "ibisnetcdf" in the makefile itself. I saw two different targets in the existing makefile, with stat.o and stat-abs.o as the only difference (unless I overlooked something). The easiest way is to copy those lines and adjust the target name and the name of the output file from one  of the two.

I do not know what should be different in the list of object files, but I guess you should know. (This is all based on the general workflow with make, not on any knowledge of the software you are working with)

0 Kudos
mecej4
Honored Contributor III
5,917 Views

Negar, the IBIS document that you attached to your post contains the instruction "The executable will be named 'ibisnetcdf'." This, however, is inconsistent with the makefile in your model.zip, which names the executable file as "ibis", not "ibisnetcdf".

Your artifice of creating a blank file with the same name as the executable is as bad as the old practice of "shooting oneself in the foot" or hacking off one's limb to "cure" an itch.

This project is simple enough that you can compile and link without using make and a makefile. In the directory containing the source files, remove or move the unneeded file io-absoft.f, and compile using the command:

 

gfortran -ffixed-line-length-0 *.f -lnetcdff -o ibis

 

Then you can run the executable:

 

./ibis

 

I built the program using Gfortran 9.3 under Cygwin-64 inside Windows 10, and the program output was:

 

 ****************************************
 * IBIS: Integrated BIosphere Simulator *
 * Version 2.6b3                        *
 * March 2002                           *
 ****************************************


 length of this simulation (years)   :       10
 year to begin using anomalies       :     1961

 model lon, lat resolution (degrees) :     0.50    0.50
 model domain (nlon x nlat)          : 720 by 360

 number of iterations per day        :       24
 last year run in this sequence      :     1970

RD_PARAM: Error opening parameter file params.can   on unit  9

 

The needed data file params.can was not included in OP's posted file model.zip.

N.B.: As disclosed in the OP's earlier post, this topic is unrelated to the Intel Fortran compiler; she is using Gfortran.

JohnNichols
Valued Contributor III
5,895 Views

N.B.: As disclosed in the OP's earlier post, this topic is unrelated to the Intel Fortran compiler; she is using Gfortran.  It was actually quite interesting to see the problem and the solution

But:

we can apply the simple principle and assist a fellow human --

No Man Is an Island

 

No man is an island,

Entire of itself;

Every man is a piece of the continent, 

A part of the main.

If a clod be washed away by the sea,

Europe is the less,

As well as if a promontory were:

As well as if a manor of thy friend's

Or of thine own were.

Any man's death diminishes me,

Because I am involved in mankind.

And therefore never send to know for whom the bell tolls;

It tolls for thee.

 

0 Kudos
negar
New Contributor I
5,794 Views

 When I run the model (./ibis), I have seen the following  error:

Error in inifile
 No such file or directory                                                      
 Warning in inivar
 NetCDF: Not a valid ID                                                          
 Error in inivar
 NetCDF: Not a valid ID                                                          
 Error in writevar
 NetCDF: Not a valid ID                                                          
 Warning in writevar
 No such file or directory                                                      
 Error in writevar
 NetCDF: Not a valid ID                                                          
 ERROR in wmonthly, temp
Note: The following floating-point exceptions are signalling: IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
STOP 1 

Could anybody help me with this error?

0 Kudos
negar
New Contributor I
5,805 Views

When I run the model (./ibis), I have seen the following  error:

Error in inifile
 No such file or directory                                                      
 Warning in inivar
 NetCDF: Not a valid ID                                                          
 Error in inivar
 NetCDF: Not a valid ID                                                          
 Error in writevar
 NetCDF: Not a valid ID                                                          
 Warning in writevar
 No such file or directory                                                      
 Error in writevar
 NetCDF: Not a valid ID                                                          
 ERROR in wmonthly, temp
Note: The following floating-point exceptions are signalling: IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
STOP 1 

Could anybody help me with this error?

0 Kudos
mecej4
Honored Contributor III
5,799 Views

[Note: For some reason, Negar's post of 11 Nov did not appear until today (13 Nov), and she sent me the same message by private mail. Here is a summary of my reply.]

Before running the program, you have to check if some needed sub-directories exist, as explained in READMEnet.txt. 

After creating these directories, I built (using gFortran) and ran the program.  The output covered problem years 1961 to 1970. Apart from a few warning messages, it appeared to run correctly (as far as I can tell; I do not know anything about the Ibis model).

You can make it easier to diagnose and solve problems (such as directories not being present) by outputting more specific diagnostic messages. For example, you can change line 90 of ies-io.f from 

print *, 'Error in inifile'

to 

print *, 'Error in inifile 1 ',filen

and add a STOP after this print statement since there is no point in continuing after such a major error.

Similarly, you could add information to the dozens of "Error in infile" messages to help identify which one of those is triggered during a run. You could add a sequence number, such as "Error in infile 1" on line 90, "Error in infile 2" on line 105, and so on, or you could add text of your choice to each instance of "Error in infile".

Reply