NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
*First of all, I apologize in advance for the abundance of code I'm pasting here. i'm new to Fortran. I'm running into some issues with a custom piece of software that has to access the NetCDF module. The program was originally built on a Sun Unix server using the Solstudio C Compiler (cc) and Fortran 95 compiler (f95). I have tried to use both these compilers, and the Gnu equivalents (gcc and gfortran's g95) to build NetCDF on my machine and have run into a few problems (and as a result, the program doesn't seem to be able to find or read the NETCDF.mod file). I will try and provide some background here.* * For the Gnu version, I built ZLIB, then MDF5 (--with-zlib --include-fortran --include-cxx) and then NetCDF (--with-mdf5 and --with-zlib). Everything in the make check looks good for each installation. Still, when I try and run my program which includes the following python code:* def legacy_netcdf2ascii(self): #------netcdf2ascii------------------------ #Loop through daily netcdf folders for the season iofs = {'filelist': os.path.join(self.curdir.get(), 'netcdf_filelist.txt'), 'runoutput': os.path.join(self.curdir.get(), 'dataread_runoutput.txt'), 'aout': os.path.join(self.curdir.get(), 'a.out')} for io in iofs: if os.path.isfile(iofs[io]): os.remove(iofs[io]) # call fortran f95n = "f95 -O $F90FLAGS -B$NETCDF_ROOT" \ +"dataread_batch.f95 " \ +"-L /usr/local/lib -l netcdf " \ +"$LINK_F90 " os.system(f95n) //--snip--// * and the dataread_batch.95 code: * PROGRAM AWESOME USE netcdf IMPLICIT NONE //--snip--// *I get these errors:* USE netcdf ^ "dataread_batch.f95", Line = 13, Column = 7: ERROR: "NETCDF" is specified as the module name on a USE statement, but the compiler cannot find it. status = nf90_open(path=TRIM(inpath)//' /'//TRIM(ncfilename),mode=nf90_nowrite,ncid=ncid) ^ "dataread_batch.f95", Line = 86, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_OPEN". ^ "dataread_batch.f95", Line = 86, Column = 30: ERROR: An actual argument keyword is being used when an explicit interface is not known. ^ "dataread_batch.f95", Line = 86, Column = 71: ERROR: An actual argument keyword is being used when an explicit interface is not known. ^ "dataread_batch.f95", Line = 86, Column = 72: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for data object "NF90_NOWRITE". ^ "dataread_batch.f95", Line = 86, Column = 89: ERROR: An actual argument keyword is being used when an explicit interface is not known. if (status /= nf90_noerr) WRITE(6,*)'open error = ', TRIM(nf90_strerror(status)) ^ "dataread_batch.f95", Line = 87, Column = 21: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for data object "NF90_NOERR". ^ "dataread_batch.f95", Line = 87, Column = 65: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_STRERROR". status = nf90_inq_dimid(ncid, "scanR", scanR_ID) ^ "dataread_batch.f95", Line = 90, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_INQ_DIMID". status = nf90_inquire_dimension(ncid, scanR_ID, len = scanR) ^ "dataread_batch.f95", Line = 98, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_INQUIRE_DIMENSION". ^ "dataread_batch.f95", Line = 98, Column = 59: ERROR: An actual argument keyword is being used when an explicit interface is not known. status = nf90_inquire_dimension(ncid, gateR_ID, len = gateR) ^ "dataread_batch.f95", Line = 100, Column = 59: ERROR: An actual argument keyword is being used when an explicit interface is not known. status = nf90_inquire_dimension(ncid, radR_ID, len = radialR) ^ "dataread_batch.f95", Line = 102, Column = 58: ERROR: An actual argument keyword is being used when an explicit interface is not known. status = nf90_inq_varid(ncid, "Reflectivity",reflect_ID) ^ "dataread_batch.f95", Line = 110, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_INQ_VARID". status = nf90_get_att(ncid, nf90_global, "time_coverage_start", baseT) ^ "dataread_batch.f95", Line = 122, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_GET_ATT". ^ "dataread_batch.f95", Line = 122, Column = 35: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for data object "NF90_GLOBAL". status = nf90_get_var(ncid, reflect_Id, ref) ^ "dataread_batch.f95", Line = 126, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_GET_VAR". status = nf90_close(ncid) ^ "dataread_batch.f95", Line = 262, Column = 16: ERROR: IMPLICIT NONE is specified in the local scope, therefore an explicit type must be specified for function "NF90_CLOSE". f90comp: 276 SOURCE LINES f90comp: 18 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI /home/woodcreeper/birdprog/Data/DOX/ascii/2008/20080820 sh: ./a.out: not found Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__ return self.func(*args) File "BIRDS_gui.py", line 344, in output a= self.legacycallback() File "BIRDS_gui.py", line 356, in legacycallback i.legacy_netcdf2ascii(self) File "/home/woodcreeper/birdprog/input_class.py", line 87, in legacy_netcdf2ascii os.chmod(iofs['runoutput'], 0775) OSError: [Errno 2] No such file or directory: '/home/woodcreeper/birdprog/dataread_runoutput.txt' ----- *I have the correct paths pointing to the netcdf.mod file- so that shouldn't be a problem. I'm wondering, though, where I can tell if the netcdf.mod file was compiled correctly by viewing its contents. Here is a bit of it: * ------------------ G95 module created on Thu Apr 28 15:41:30 2011 from netcdf4.f90 If you edit this, you'll get what you deserve. module-version 9 (() () () () () () () () () () () () () () () () () () () () ()) () (('nf90_def_var' 2 3 4) ('nf90_get_att' 5 6 7 8 9 10 11 12 13 14 15 16 17) ('nf90_get_var' 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73) ('nf90_put_att' 74 75 76 77 78 79 80 81 82 83 84 85 86) ('nf90_put_var' 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142)) () () (143 'nf90_64bit_offset' 'netcdf' 1 ((PARAMETER UNKNOWN UNKNOWN UNKNOWN NONE NONE) (INTEGER 4) 0 0 () (CONSTANT (INTEGER 4) 0 '512') () () '' () ()) 144 'nf90_abort' 'netcdf' 1 ((PROCEDURE UNKNOWN MODULE-PROC DECL NONE NONE FUNCTION) (INTEGER 4) 0 0 (145 NONE) () () '' () ()) 146 'nf90_align_chunk' 'netcdf' 1 ((PARAMETER UNKNOWN UNKNOWN UNKNOWN NONE NONE) (INTEGER 4) 0 0 () (CONSTANT (INTEGER 4) 0 '-1') () () '' () ()) 147 'nf90_byte' 'netcdf' 1 ((PARAMETER UNKNOWN UNKNOWN UNKNOWN NONE NONE) (INTEGER 4) 0 0 () (CONSTANT (INTEGER 4) 0 '1') () () '' () ()) 148 'nf90_char' 'netcdf' 1 ((PARAMETER UNKNOWN UNKNOWN UNKNOWN NONE NONE) (INTEGER 4) 0 0 () (CONSTANT (INTEGER 4) 0 '2') () () '' () ()) -------------------------------
netcdfgroup
archives: