From ef231c0befb1f0997eb84355a8ce6287dcd56422 Mon Sep 17 00:00:00 2001 From: POLCHER Jan <jan.polcher@lmd.jussieu.fr> Date: Wed, 12 Jun 2019 13:59:46 +0200 Subject: [PATCH] first sample script proposed. --- DocumentationInterface | 250 +++++++++++++++++++ savefile.py => DomainDecompTests/savefile.py | 0 RoutingPreProc.py | 1 - SampleScripts/BuildHTUs.pbs | 23 ++ TestConfigs/run.def.05_CS | 2 +- run.def | 27 ++ 6 files changed, 301 insertions(+), 2 deletions(-) create mode 100644 DocumentationInterface rename savefile.py => DomainDecompTests/savefile.py (100%) create mode 100644 SampleScripts/BuildHTUs.pbs create mode 100644 run.def diff --git a/DocumentationInterface b/DocumentationInterface new file mode 100644 index 0000000..e15fe47 --- /dev/null +++ b/DocumentationInterface @@ -0,0 +1,250 @@ +initatmgrid(polygons_in,centre_in,area_in,contfrac_in,neighbours_in,[nbpt,nbseg]) + +Wrapper for ``initatmgrid``. + +Parameters +---------- +polygons_in : input rank-3 array('f') with bounds (nbpt,2 * nbseg + 1,2) +centre_in : input rank-2 array('f') with bounds (nbpt,2) +area_in : input rank-1 array('f') with bounds (nbpt) +contfrac_in : input rank-1 array('f') with bounds (nbpt) +neighbours_in : input rank-2 array('i') with bounds (nbpt,2 * nbseg) + +Other Parameters +---------------- +nbpt : input int, optional + Default: shape(polygons_in,0) +nbseg : input int, optional + Default: (shape(polygons_in,1)-1)/(2) +==================================================================== +nbi,nbj,area_bx,trip_bx,basin_bx,topoind_bx,fac_bx,hierarchy_bx,lon_bx,lat_bx,lshead_bx,nwbas = gethydrogrid(nbxmax_in,sub_pts,sub_index,sub_area,max_basins,min_topoind,lon_rel,lat_rel,trip,basins,topoindex,fac,hierarchy,[nbpt,nbvmax_in]) + +Wrapper for ``gethydrogrid``. + +Parameters +---------- +nbxmax_in : input int +sub_pts : input rank-1 array('i') with bounds (nbpt) +sub_index : input rank-3 array('i') with bounds (nbpt,nbvmax_in,2) +sub_area : input rank-2 array('f') with bounds (nbpt,nbvmax_in) +max_basins : in/output rank-0 array(float,'f') +min_topoind : input float +lon_rel : input rank-2 array('f') with bounds (nbpt,nbvmax_in) +lat_rel : input rank-2 array('f') with bounds (nbpt,nbvmax_in) +trip : in/output rank-2 array('f') with bounds (nbpt,nbvmax_in) +basins : in/output rank-2 array('f') with bounds (nbpt,nbvmax_in) +topoindex : in/output rank-2 array('f') with bounds (nbpt,nbvmax_in) +fac : in/output rank-2 array('f') with bounds (nbpt,nbvmax_in) +hierarchy : in/output rank-2 array('f') with bounds (nbpt,nbvmax_in) + +Other Parameters +---------------- +nbpt : input int, optional + Default: len(sub_pts) +nbvmax_in : input int, optional + Default: shape(sub_index,1) + +Returns +------- +nbi : rank-1 array('i') with bounds (nbpt) +nbj : rank-1 array('i') with bounds (nbpt) +area_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +trip_bx : rank-3 array('i') with bounds (nbpt,nbxmax_in,nbxmax_in) +basin_bx : rank-3 array('i') with bounds (nbpt,nbxmax_in,nbxmax_in) +topoind_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +fac_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +hierarchy_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lon_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lat_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lshead_bx : rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +nwbas : int +==================================================================== +nb_basin,basin_inbxid,basin_outlet,basin_outtp,basin_sz,basin_bxout,basin_bbout,basin_pts,basin_lshead,coast_pts = findbasins(nbvmax_in,nbi,nbj,trip_bx,basin_bx,fac_bx,hierarchy_bx,topoind_bx,lshead_bx,lontmp,lattmp,[nbpt,nbxmax_in]) + +Wrapper for ``findbasins``. + +Parameters +---------- +nbvmax_in : input int +nbi : input rank-1 array('i') with bounds (nbpt) +nbj : input rank-1 array('i') with bounds (nbpt) +trip_bx : in/output rank-3 array('i') with bounds (nbpt,nbxmax_in,nbxmax_in) +basin_bx : in/output rank-3 array('i') with bounds (nbpt,nbxmax_in,nbxmax_in) +fac_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +hierarchy_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +topoind_bx : in/output rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lshead_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lontmp : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +lattmp : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) + +Other Parameters +---------------- +nbpt : input int, optional + Default: len(nbi) +nbxmax_in : input int, optional + Default: shape(trip_bx,1) + +Returns +------- +nb_basin : rank-1 array('i') with bounds (nbpt) +basin_inbxid : rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_outlet : rank-3 array('f') with bounds (nbpt,nbvmax_in,2) +basin_outtp : rank-2 array('f') with bounds (nbpt,nbvmax_in) +basin_sz : rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_bxout : rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_bbout : rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_pts : rank-4 array('i') with bounds (nbpt,nbvmax_in,nbvmax_in,2) +basin_lshead : rank-2 array('f') with bounds (nbpt,nbvmax_in) +coast_pts : rank-2 array('i') with bounds (nbpt,nbvmax_in) +==================================================================== +basin_count,basin_notrun,basin_area,basin_hierarchy,basin_fac,basin_topoind,basin_id,basin_coor,basin_type,basin_flowdir,basin_lshead,outflow_grid,outflow_basin,nbcoastal,coastal_basin = globalize(area_bx,trip_bx,hierarchy_bx,fac_bx,topoind_bx,min_topoind,nb_basin,basin_inbxid,basin_outlet,basin_outtp,basin_sz,basin_pts,basin_bxout,basin_bbout,lshead,coast_pts,nwbas,[nbpt,nbvmax_in,nbxmax_in]) + +Wrapper for ``globalize``. + +Parameters +---------- +area_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +trip_bx : input rank-3 array('i') with bounds (nbpt,nbxmax_in,nbxmax_in) +hierarchy_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +fac_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +topoind_bx : input rank-3 array('f') with bounds (nbpt,nbxmax_in,nbxmax_in) +min_topoind : input float +nb_basin : input rank-1 array('i') with bounds (nbpt) +basin_inbxid : input rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_outlet : input rank-3 array('f') with bounds (nbpt,nbvmax_in,2) +basin_outtp : input rank-2 array('f') with bounds (nbpt,nbvmax_in) +basin_sz : input rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_pts : input rank-4 array('i') with bounds (nbpt,nbvmax_in,nbvmax_in,2) +basin_bxout : input rank-2 array('i') with bounds (nbpt,nbvmax_in) +basin_bbout : input rank-2 array('i') with bounds (nbpt,nbvmax_in) +lshead : input rank-2 array('f') with bounds (nbpt,nbvmax_in) +coast_pts : input rank-2 array('i') with bounds (nbpt,nbvmax_in) +nwbas : input int + +Other Parameters +---------------- +nbpt : input int, optional + Default: shape(area_bx,0) +nbvmax_in : input int, optional + Default: shape(basin_inbxid,1) +nbxmax_in : input int, optional + Default: shape(area_bx,1) + +Returns +------- +basin_count : rank-1 array('i') with bounds (nbpt) +basin_notrun : rank-1 array('i') with bounds (nbpt) +basin_area : rank-2 array('f') with bounds (nbpt,nwbas) +basin_hierarchy : rank-2 array('f') with bounds (nbpt,nwbas) +basin_fac : rank-2 array('f') with bounds (nbpt,nwbas) +basin_topoind : rank-2 array('f') with bounds (nbpt,nwbas) +basin_id : rank-2 array('i') with bounds (nbpt,nwbas) +basin_coor : rank-3 array('f') with bounds (nbpt,nwbas,2) +basin_type : rank-2 array('f') with bounds (nbpt,nwbas) +basin_flowdir : rank-2 array('i') with bounds (nbpt,nwbas) +basin_lshead : rank-2 array('f') with bounds (nbpt,nwbas) +outflow_grid : rank-2 array('i') with bounds (nbpt,nwbas) +outflow_basin : rank-2 array('i') with bounds (nbpt,nwbas) +nbcoastal : rank-1 array('i') with bounds (nbpt) +coastal_basin : rank-2 array('i') with bounds (nbpt,nwbas) +==================================================================== +inflow_number,inflow_grid,inflow_basin = linkup(nbxmax_in,basin_count,basin_area,basin_id,basin_flowdir,basin_lshead,basin_hierarchy,basin_fac,outflow_grid,outflow_basin,nbcoastal,coastal_basin,invented_basins,[nbpt,nwbas]) + +Wrapper for ``linkup``. + +Parameters +---------- +nbxmax_in : input int +basin_count : input rank-1 array('i') with bounds (nbpt) +basin_area : input rank-2 array('f') with bounds (nbpt,nwbas) +basin_id : input rank-2 array('i') with bounds (nbpt,nwbas) +basin_flowdir : input rank-2 array('i') with bounds (nbpt,nwbas) +basin_lshead : input rank-2 array('f') with bounds (nbpt,nwbas) +basin_hierarchy : in/output rank-2 array('f') with bounds (nbpt,nwbas) +basin_fac : input rank-2 array('f') with bounds (nbpt,nwbas) +outflow_grid : in/output rank-2 array('i') with bounds (nbpt,nwbas) +outflow_basin : in/output rank-2 array('i') with bounds (nbpt,nwbas) +nbcoastal : in/output rank-1 array('i') with bounds (nbpt) +coastal_basin : in/output rank-2 array('i') with bounds (nbpt,nwbas) +invented_basins : input float + +Other Parameters +---------------- +nbpt : input int, optional + Default: len(basin_count) +nwbas : input int, optional + Default: shape(basin_area,1) + +Returns +------- +inflow_number : rank-2 array('i') with bounds (nbpt,8 * nbxmax_in) +inflow_grid : rank-3 array('i') with bounds (nbpt,8 * nbxmax_in,8 * nbxmax_in) +inflow_basin : rank-3 array('i') with bounds (nbpt,8 * nbxmax_in,8 * nbxmax_in) +==================================================================== +fetch_basin = fetch(basin_count,basin_area,basin_id,basin_hierarchy,basin_fac,outflow_grid,outflow_basin,[nbpt,nwbas]) + +Wrapper for ``fetch``. + +Parameters +---------- +basin_count : input rank-1 array('i') with bounds (nbpt) +basin_area : in/output rank-2 array('f') with bounds (nbpt,nwbas) +basin_id : input rank-2 array('i') with bounds (nbpt,nwbas) +basin_hierarchy : input rank-2 array('f') with bounds (nbpt,nwbas) +basin_fac : input rank-2 array('f') with bounds (nbpt,nwbas) +outflow_grid : in/output rank-2 array('i') with bounds (nbpt,nwbas) +outflow_basin : input rank-2 array('i') with bounds (nbpt,nwbas) + +Other Parameters +---------------- +nbpt : input int, optional + Default: len(basin_count) +nwbas : input int, optional + Default: shape(basin_area,1) + +Returns +------- +fetch_basin : rank-2 array('f') with bounds (nbpt,nwbas) +==================================================================== +routing_area,topo_resid,route_togrid,route_tobasin,route_nbintobas,global_basinid,route_outlet,route_type,origin_nbintobas = truncate(nbasmax,basin_count,basin_notrun,basin_area,basin_topoind,fetch_basin,basin_id,basin_coor,basin_type,basin_flowdir,outflow_grid,outflow_basin,inflow_number,inflow_grid,inflow_basin,[nbpt,nbxmax_in,nwbas]) + +Wrapper for ``truncate``. + +Parameters +---------- +nbasmax : input int +basin_count : in/output rank-1 array('i') with bounds (nbpt) +basin_notrun : in/output rank-1 array('i') with bounds (nbpt) +basin_area : in/output rank-2 array('f') with bounds (nbpt,nwbas) +basin_topoind : in/output rank-2 array('f') with bounds (nbpt,nwbas) +fetch_basin : in/output rank-2 array('f') with bounds (nbpt,nwbas) +basin_id : in/output rank-2 array('i') with bounds (nbpt,nwbas) +basin_coor : in/output rank-3 array('f') with bounds (nbpt,nwbas,2) +basin_type : in/output rank-2 array('f') with bounds (nbpt,nwbas) +basin_flowdir : in/output rank-2 array('i') with bounds (nbpt,nwbas) +outflow_grid : in/output rank-2 array('i') with bounds (nbpt,nwbas) +outflow_basin : in/output rank-2 array('i') with bounds (nbpt,nwbas) +inflow_number : in/output rank-2 array('i') with bounds (nbpt,8 * nbxmax_in) +inflow_grid : in/output rank-3 array('i') with bounds (nbpt,8 * nbxmax_in,8 * nbxmax_in) +inflow_basin : in/output rank-3 array('i') with bounds (nbpt,8 * nbxmax_in,8 * nbxmax_in) + +Other Parameters +---------------- +nbpt : input int, optional + Default: len(basin_count) +nbxmax_in : input int, optional + Default: (shape(inflow_number,1))/(8) +nwbas : input int, optional + Default: shape(basin_area,1) + +Returns +------- +routing_area : rank-2 array('f') with bounds (nbpt,nbasmax) +topo_resid : rank-2 array('f') with bounds (nbpt,nbasmax) +route_togrid : rank-2 array('i') with bounds (nbpt,nbasmax) +route_tobasin : rank-2 array('i') with bounds (nbpt,nbasmax) +route_nbintobas : rank-1 array('i') with bounds (nbpt) +global_basinid : rank-2 array('i') with bounds (nbpt,nbasmax) +route_outlet : rank-3 array('f') with bounds (nbpt,nbasmax,2) +route_type : rank-2 array('f') with bounds (nbpt,nbasmax) +origin_nbintobas : rank-1 array('i') with bounds (nbpt) diff --git a/savefile.py b/DomainDecompTests/savefile.py similarity index 100% rename from savefile.py rename to DomainDecompTests/savefile.py diff --git a/RoutingPreProc.py b/RoutingPreProc.py index 049d2ff..5b79489 100644 --- a/RoutingPreProc.py +++ b/RoutingPreProc.py @@ -29,7 +29,6 @@ import RPPtools as RPP import HydroGrid as HG import diagplots as DP import Interface as IF -import savefile # # Logging in MPI : https://groups.google.com/forum/#!topic/mpi4py/SaNzc8bdj6U # diff --git a/SampleScripts/BuildHTUs.pbs b/SampleScripts/BuildHTUs.pbs new file mode 100644 index 0000000..87481b2 --- /dev/null +++ b/SampleScripts/BuildHTUs.pbs @@ -0,0 +1,23 @@ +#!/bin/bash +# +#PBS -N BuildHTUs +# +#PBS -j oe +#PBS -l nodes=1:ppn=42 +#PBS -l walltime=48:00:00 +#PBS -l mem=120gb +#PBS -l vmem=120gb +# +cd ${PBS_O_WORKDIR}/.. + +cp ./TestConfigs/run.def.05_CS run.def +# +# Set the right Python 3 Anaconda environment +# +source ./Environment +# +# Run the Python code to generate the HTUs and write them into a netCDF file. +# +mpirun -n 42 python RoutingPreProc.py +# +ls -l diff --git a/TestConfigs/run.def.05_CS b/TestConfigs/run.def.05_CS index 2492360..da6ccc4 100644 --- a/TestConfigs/run.def.05_CS +++ b/TestConfigs/run.def.05_CS @@ -18,7 +18,7 @@ nbasmax = 35 # # Output # -GraphFile = test_graph.nc +GraphFile = EM_WFDEI_test_graph.nc # # Diagnostics # You need to provide an interval in longitude and Latitude. diff --git a/run.def b/run.def new file mode 100644 index 0000000..da6ccc4 --- /dev/null +++ b/run.def @@ -0,0 +1,27 @@ +[OverAll] +# +# +EarthRadius = 6370000. +# +ModelGridFile = /bdd/MEDI/workspaces/polcher/NewRouting/EM_WFDEI_CRU_2000.nc +##WEST_EAST = -9.75, 5.25 +##SOUTH_NORTH = 36.1, 44.2 +HydroFile = /bdd/MEDI/workspaces/polcher/NewRouting/routing_MED.nc +# +# FORTRAN interface parameters +# +Documentation = true +# +# Configuration for the graph to be generated +# +nbasmax = 35 +# +# Output +# +GraphFile = EM_WFDEI_test_graph.nc +# +# Diagnostics +# You need to provide an interval in longitude and Latitude. +# +DiagLon = 39.9, 39.9 +DiagLat = 40.0, 40.0 -- GitLab