Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

How to update SST using OISST data

subin

New member
Hello, I want to do SST update using OISST data. I want to create an intermediate file using "netcdf-to-intermediate.f". The results depend on how I compile, but neither of them is the right time. Is there a problem with the compilation I tried? I would appreciate your response:)

Below are the results by compilation method.
1) ifort netcdf-to-intermediate.f
Code:
netcdf-to-intermediate.f(46): error #5149: Illegal character in statement label field  [p]
  program netCDF2intermediate
--^
netcdf-to-intermediate.f(46): error #5149: Illegal character in statement label field  [r]
  program netCDF2intermediate
---^
netcdf-to-intermediate.f(46): error #5149: Illegal character in statement label field  [o]
  program netCDF2intermediate
----^
netcdf-to-intermediate.f(46): error #5118: First statement in file must not be continued
  program netCDF2intermediate
-----^
netcdf-to-intermediate.f(48): error #5149: Illegal character in statement label field  [i]
  implicit none
--^
netcdf-to-intermediate.f(48): error #5149: Illegal character in statement label field  [m]
  implicit none
---^
netcdf-to-intermediate.f(48): error #5149: Illegal character in statement label field  [p]
  implicit none
----^
netcdf-to-intermediate.f(49): error #5149: Illegal character in statement label field  [c]
  character (len=80)    :: input_file
--^
netcdf-to-intermediate.f(49): error #5149: Illegal character in statement label field  [h]
  character (len=80)    :: input_file
---^
netcdf-to-intermediate.f(49): error #5149: Illegal character in statement label field  [a]
  character (len=80)    :: input_file
----^
netcdf-to-intermediate.f(52): error #5149: Illegal character in statement label field  [c]
  call read_args(input_file)
--^
netcdf-to-intermediate.f(52): error #5149: Illegal character in statement label field  [a]
  call read_args(input_file)
---^
netcdf-to-intermediate.f(52): error #5149: Illegal character in statement label field  [l]
  call read_args(input_file)
----^
netcdf-to-intermediate.f(53): error #5149: Illegal character in statement label field  [p]
  print*,"INPUT FILES ARE: ",trim(input_file)
--^
netcdf-to-intermediate.f(53): error #5149: Illegal character in statement label field  [r]
  print*,"INPUT FILES ARE: ",trim(input_file)
---^
netcdf-to-intermediate.f(53): error #5149: Illegal character in statement label field  [i]
  print*,"INPUT FILES ARE: ",trim(input_file)
----^
netcdf-to-intermediate.f(54): error #5149: Illegal character in statement label field  [p]
  print*," "
--^
netcdf-to-intermediate.f(54): error #5149: Illegal character in statement label field  [r]
  print*," "
---^
netcdf-to-intermediate.f(54): error #5149: Illegal character in statement label field  [i]
  print*," "
----^
netcdf-to-intermediate.f(57): error #5149: Illegal character in statement label field  [c]
  call driver (input_file)
--^
netcdf-to-intermediate.f(57): error #5149: Illegal character in statement label field  [a]
  call driver (input_file)
---^
netcdf-to-intermediate.f(57): error #5149: Illegal character in statement label field  [l]
  call driver (input_file)
----^
netcdf-to-intermediate.f(60): error #5149: Illegal character in statement label field  [e]
  end program netCDF2intermediate
--^
netcdf-to-intermediate.f(60): error #5149: Illegal character in statement label field  [n]
  end program netCDF2intermediate
---^
netcdf-to-intermediate.f(60): error #5149: Illegal character in statement label field  [d]
  end program netCDF2intermediate
----^
netcdf-to-intermediate.f(49): error #5082: Syntax error, found '=' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
  character (len=80)    :: input_file
----------------^
netcdf-to-intermediate.f(53): error #5082: Syntax error, found IDENTIFIER 'T' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
  print*,"INPUT FILES ARE: ",trim(input_file)
------^
netcdf-to-intermediate.f(54): error #5082: Syntax error, found IDENTIFIER 'T' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
  print*," "
------^
netcdf-to-intermediate.f(57): error #5082: Syntax error, found IDENTIFIER 'DRIVER' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
  call driver (input_file)
-------^
netcdf-to-intermediate.f(57): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
  call driver (input_file)
--------------------------^
netcdf-to-intermediate.f(61): catastrophic error: Too many errors, exiting
compilation aborted for netcdf-to-intermediate.f (code 1)

2) ifort -free netcdf-to-intermediate.f -L${NETCDF}/lib -lnetcdff -lnetcdf -lm -I${NETCDF}/include -o netCDF-to-intermediate
Code:
(base) [ttuib_ni@rain make_intermediate]$ ifort -free netcdf-to-intermediate.f -L${NETCDF}/lib -lnetcdff -lnetcdf -lm -I${NETCDF}/include -o netCDF-to-intermediate
(base) [ttuib_ni@rain make_intermediate]$ ls
netCDF-to-intermediate          oisst-avhrr-v02r01.20170121.nc  oisst-avhrr-v02r01.20170124.nc
netcdf-to-intermediate.f        oisst-avhrr-v02r01.20170122.nc
oisst-avhrr-v02r01.20170120.nc  oisst-avhrr-v02r01.20170123.nc
(base) [ttuib_ni@rain make_intermediate]$ ./netCDF-to-intermediate oisst-avhrr-v02r01.20170120.nc
 INPUT FILES ARE: oisst-avhrr-v02r01.20170120.nc
 
 
 DIMS for TIME is           1
 START Time           0
 AND THIS IS : 1978-01-01_00:00:00.0000
 DIMS for SST is        1440         720           1           1
 SST   -999   -999   3116
  Min/Max LAND-SEA :   0.0000000E+00   1.000000  
  Min/Max SST      :   -999.0000       304.3100  
  Sample SST       :    273.5100  
 Creating SST:1978-01-01_00      
 
    --- End of input file ---  
(base) [ttuib_ni@rain make_intermediate]$ ls
netCDF-to-intermediate          oisst-avhrr-v02r01.20170121.nc  oisst-avhrr-v02r01.20170124.nc
netcdf-to-intermediate.f        oisst-avhrr-v02r01.20170122.nc  SST:1978-01-01_00
oisst-avhrr-v02r01.20170120.nc  oisst-avhrr-v02r01.20170123.nc

No errors occur when compiling, but the time of the result file must be correct.

3) I can't think of an exact compilation method.
Code:
(base) [ttuib_ni@rain oisst]$ ls
download.py               oisst-avhrr-v02r01.20170120.nc  oisst-avhrr-v02r01.20170123.nc
netCDF-to-intermediate    oisst-avhrr-v02r01.20170121.nc  oisst-avhrr-v02r01.20170124.nc
netcdf-to-intermediate.f  oisst-avhrr-v02r01.20170122.nc
(base) [ttuib_ni@rain oisst]$ ./netCDF-to-intermediate oisst-avhrr-v02r01.20170120.nc
 INPUT FILES ARE: oisst-avhrr-v02r01.20170120.nc
 
 
 DIMS for TIME is           1
 START Time           0
 AND THIS IS : 2017-01-24_00:00:00.0000
 DIMS for SST is        1440         720           1           1
 SST   -999   -999   3116
  Min/Max LAND-SEA :   0.0000000E+00   1.000000  
  Min/Max SST      :   -999.0000       304.3100  
  Sample SST       :    273.5100  
 Creating SST:2017-01-24_00      
 
    --- End of input file ---  
(base) [ttuib_ni@rain oisst]$ ls
download.py               oisst-avhrr-v02r01.20170120.nc  oisst-avhrr-v02r01.20170123.nc
netCDF-to-intermediate    oisst-avhrr-v02r01.20170121.nc  oisst-avhrr-v02r01.20170124.nc
netcdf-to-intermediate.f  oisst-avhrr-v02r01.20170122.nc  SST:2017-01-24_00
(base) [ttuib_ni@rain oisst]$ ./netCDF-to-intermediate oisst-avhrr-v02r01.20170121.nc
 INPUT FILES ARE: oisst-avhrr-v02r01.20170121.nc
 
 
 DIMS for TIME is           1
 START Time           0
 AND THIS IS : 2017-01-24_00:00:00.0000
 DIMS for SST is        1440         720           1           1
 SST   -999   -999   3135
  Min/Max LAND-SEA :   0.0000000E+00   1.000000  
  Min/Max SST      :   -999.0000       304.5000  
  Sample SST       :    273.7400  
 Creating SST:2017-01-24_00      
 
    --- End of input file ---  
(base) [ttuib_ni@rain oisst]$ ls
download.py               oisst-avhrr-v02r01.20170120.nc  oisst-avhrr-v02r01.20170123.nc
netCDF-to-intermediate    oisst-avhrr-v02r01.20170121.nc  oisst-avhrr-v02r01.20170124.nc
netcdf-to-intermediate.f  oisst-avhrr-v02r01.20170122.nc  SST:2017-01-24_00

The resulting file has a similar time than 2), but it is still time. Both 2017/01/20 and 2017/01/21 files appear as files at the same time.
 
Hi,
That script is quite outdated. I would recommend taking a look at this post. See the post from mgduda on Sep 1, 2021, which includes some newer python scripts for doing a conversion of netcdf to intermediate file format.
 
Thank you for your answer. The reason for the problem is that the type of the time variable was different for each file (double or single float). Therefore, it can be solved by receiving the time value according to the time type of the input file.
 
Top