ClimateTasks.jl
This package is at a very early stage of development. Stay tuned ...
ClimateTasks.MITgcmClimateTasks.StartWorkersClimateTasks.TaskDriverClimateTasks.task1_loopClimateTasks.task1_loop
ClimateTasks.MITgcm — FunctionMITgcm(p::String)Run MITgcm; download it if needed.
ClimateTasks.StartWorkers — MethodStartWorkers(nwrkrs::Int)Start workers if needed.
ClimateTasks.TaskDriver — MethodTaskDriver(indx,fn)Broacast / distribute task (fn; e.g. task1_loop) over indices (indx; e.g. file indices)
Examples:
using ClimateTasks, Distributed, SparseArrays
TaskDriver(1,task1_loop)
StartWorkers(4)
@everywhere using ClimateTasks, SparseArrays
TaskDriver(1:4,task1_loop)Visualize results:
using FortranFiles, Plots
k=1
recl=720*360*4
fil="diags_interp/ETAN/ETAN.0000000732.data"
f = FortranFile(fil,"r",access="direct",recl=recl,convert="big-endian")
tmp=read(f,rec=k,(Float32,(720,360))); close(f)
heatmap(tmp)ClimateTasks.task1_loop — Methodtask1_loop(indx,M)Loop over a subset of model output files (filList[indx]), apply MatrixInterp (M) as a postprocessing step, and write the result to file (one subfolder for each variable)
ClimateTasks.task1_loop — Methodtask1_loop(indx::Int)Interpolate all variables for one record