Example 01 — Read, Convert & Write
Reads a 4D temperature dataset (Celsius), converts to Fahrenheit, and writes the result.
Source Code
program main
use fpl
implicit none
type(nc4d_float_llf_tf_lf) :: tempC
character(len=32) :: input, output
input = "database/temp.mon.nc"
output = "database/temp.mon.farenheit.nc"
tempC%varname = "temp"
tempC%lonname = "longitude"
tempC%latname = "latitude"
tempC%timename = "time"
tempC%levelname = "level"
call readgrid(input, tempC)
! Convert Celsius to Fahrenheit (preserving FillValue)
where(tempC%ncdata .ne. tempC%FillValue)
tempC%ncdata = (tempC%ncdata * 9.0 / 5.0) + 32.0
end where
tempC%varunits = "degF"
call writegrid(output, tempC)
call dealloc(tempC)
end program main
Compile & Run
gfortran -o ex1.out ex1_readwrite.f90 -I/usr/lib64/gfortran/modules/ -lFPL
./ex1.out
Output
