-
Notifications
You must be signed in to change notification settings - Fork 0
Regridding for the new Landice Component
This page will lay out how I am creating my new Ganymed-2_0_UNSTABLE restarts for the new Landice component
--Matt Thompson 06:30, 28 December 2012 (PST)
Larry Takacs sent this email about the new Landice:
All,
`I have just pushed my Ganymed-2_0_UNSTABLE tag to include the new ` `LANDICE component from Bin.` `Please be aware that this component requires new restarts.`
Our current strategy will be to combine regridded restarts from other
sources (MERRA, Ops, etc) with the regridded Landice_internal_rst from
my AMIP experiment:
`/archive/u/ltakacs/GEOS5.0/G10_ICE/restarts`
If you need a quick test, you can use restarts from my cubed-sphere C90
test:
`/discover/nobackup/ltakacs/test_ice`
Atanas, I still have to merge and test the new FMS.
Larry
These restarts are at 00z, but for simplicity's sake, I prefer 21z as that works with Larry's HISTORY.rc from gcm_setup easily.
In the directory:
/archive/u/ltakacs/GEOS5.0/G10_ICE/restarts
Larry has restarts generated from an AMIP run. These restarts are based at 00z. I selected 1990-NOV-28:
$ cd /archive/u/ltakacs/GEOS5.0/G10_ICE/restarts/Y1990/
$ dmget restarts.e19901128_00z.tar
$ cp restarts.e19901128_00z.tar $NOBACKUP/Restarts-G20/FromLarry-c90-00z/
$ cd $NOBACKUP/Restarts-G20/FromLarry-c90-00z/
$ tar xf restarts.e19901128_00z.tar
$ ls
G10_ICE.catch_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.fvcore_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.irrad_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.lake_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.landice_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.moist_import_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.moist_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.pchem_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.saltwater_import_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.saltwater_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.solar_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.surf_import_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.turb_import_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
G10_ICE.turb_internal_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
restarts.e19901128_00z.tar*
$ rename G10_ICE. '' *rst*
$ rename _rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180 _rst *_rst.e19901128_00z.Ganymed-1_0.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
$ ls
catch_internal_rst lake_internal_rst moist_internal_rst saltwater_import_rst surf_import_rst
fvcore_internal_rst landice_internal_rst pchem_internal_rst saltwater_internal_rst turb_import_rst
irrad_internal_rst moist_import_rst restarts.e19901128_00z.tar* solar_internal_rst turb_internal_rst
The next step is to run the model for 21 hours and get a set of restarts from that. This is simple.
We are going to use Joe Stassi's regrid.pl script to do our regridding from MERRA and for regridding our Landice restart. So, we need to get the restart in the correct format.
$ cd $NOBACKUP/Restarts-G20/c90-Full-newlandice
$ cp $NOBACKUP/stockG20U-landice-21hour-c90/restarts/restarts.e19901128_21z.tar .
$ tar xf restarts.e19901128_21z.tar
$ ls
restarts.e19901128_21z.tar
stockG20U-landice-21hour-c90.catch_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.fvcore_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.irrad_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.lake_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.landice_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.moist_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.moist_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.pchem_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.saltwater_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.saltwater_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.solar_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.surf_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.turb_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
stockG20U-landice-21hour-c90.turb_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
$ rename stockG20U-landice-21hour-c90. '' *rst*
$ ls
catch_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
fvcore_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
irrad_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
lake_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
landice_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
moist_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
moist_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
pchem_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
restarts.e19901128_21z.tar
saltwater_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
saltwater_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
solar_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
surf_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
turb_import_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
turb_internal_rst.e19901128_21z.Ganymed-1_0_p2.Ganymed-1_0_M_CF0090x6C_DE0360xPE0180
The next step is to use Joe Stassi's regrid.pl script to create some restarts at 21z on 1990-NOV-28. We'll first run two sets of runs at 144x91 and c48 to get a command to use for automated generation.
$ cd $ESMADIR/Linux/bin
$ ./regrid.pl
Regrid from MERRA restarts (y/n)? [n] y
Enter ymd (yyyymmdd): 19901128
Enter hour (hh): 21
`----------------` `Atmosphere Grids` `----------------`
Lat/Lon Grids Cubed-Sphere Grids
------------- ------------------
b = 2 deg C48 C360 C1000
c = 1 deg C90 C500 C1440
d = 1/2 deg C180 C720 C2880
e = 1/4 deg
`Getting INPUT atmosphere grid resolution from fvcore file ... Done` `INPUT atmosphere grid: D` `Enter OUTPUT atmosphere grid: b`
Ocean Grids
-----------
c = 360x180 (Reynolds)
f = 2880x1440 (OSTIA)
`INPUT ocean grid: c` `Enter OUTPUT ocean grid: [c] `
GCM BCS tags
------------
Fortuna-1_4
Fortuna-1_5
Fortuna-2_0
Fortuna-2_1
Ganymed-1_0
Ganymed-1_0_m1
Ganymed-1_0_m2
Ganymed-1_0_M
Ganymed-1_0_D
`Enter OUTPUT GCM BCS tag: [Ganymed-1_0_M] `
Regrid upperair restarts (y/n)? [y]
Regrid surface restarts (y/n)? [y]
`Enter OUTPUT directory for new restarts: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91` `Enter Experiment ID for OUTPUT restarts [b_d5_merra_jan89] ` `Write rst.lcv restart (y/n)? [y] n` `Append tag/grid label to names of final restarts (y/n)? [n] `
===============
REGRID RESTARTS
===============
ESMABIN: /gpfsm/dswdev/mathomp4/Models/Ganymed-2_0_UNSTABLE/GEOSagcm/Linux/bin
ESMATAG: Ganymed-2_0_UNSTABLE
logfile: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91/b_d5_merra_jan89.19901128_21z.log
`upper-air: yes` `surface: yes`
bkg/satb: no
rst.lcv: no
namelabel: no
`# inputs` `#-------` `. expid: d5_merra_jan89` `. date: 19901128` `. hour: 21` `. atmos grid: 540x361 (D)` `. ocean grid: 360x180 (c)` `. GCM tag: Fortuna-1_4` `. rstdir: /archive/g_proj5/production/GEOSdas-2_1_4/d5_merra_jan89/rs/Y1990/M11`
# intermediate-1 (surface only)
#---------------
. expid: b_d5_merra_jan89-mid1
. date: 19901128
. hour: 21
. atmos grid: 576x361 (d)
. ocean grid: 360x180 (c)
. GCM tag: Fortuna-2_1
. rescale: no
. outdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91
. workdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91/19901128_7086
`# intermediate-2 (surface only)` `#---------------` `. expid: b_d5_merra_jan89-mid2` `. date: 19901128` `. hour: 21` `. atmos grid: 576x361 (d)` `. ocean grid: 360x180 (c)` `. GCM tag: Ganymed-1_0_m1` `. rescale: yes` `. outdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91` `. workdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91/19901128_7086`
# outputs
#--------
. expid: b_d5_merra_jan89
. date: 19901128
. hour: 21
. atmos grid: 144x91 (b)
. ocean grid: 360x180 (c)
. GCM tag: Ganymed-1_0_M
. rescale: no
. outdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91
. workdir: /gpfsm/dnb31/mathomp4/Restarts-G20/144x91/19901128_7086
``
===============
`Continue (y/n)? [y] `
`...`
When this succeeds you'll have a file, b_d5_merra_jan89.19901128_21z.CMD, which details how the regrid.pl ran:
$ cat b_d5_merra_jan89.19901128_21z.CMD
#!/usr/local/bin/csh
#===============================================================================
# The following command was used to create the b_d5_merra_jan89.19901128_21z restarts
#===============================================================================
set ESMABIN = /gpfsm/dswdev/mathomp4/Models/Ganymed-2_0_UNSTABLE/GEOSagcm/Linux/bin
$ESMABIN/regrid.pl -ymd 19901128 -hr 21 -grout b -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/144x91 -nobkg -nolbl -nolcv \
-tagout Ganymed-1_0_M -newid b_d5_merra_jan89 -rs 3 -oceanout c
Note: The above last command is actually on one line, but I've split it for display's sake.
Do a similar run for c48 and get out this command:
$ cat C48_d5_merra_jan89.19901128_21z.CMD
#!/usr/local/bin/csh
#===============================================================================
# The following command was used to create the C48_d5_merra_jan89.19901128_21z restarts
#===============================================================================
set ESMABIN = /gpfsm/dswdev/mathomp4/Models/Ganymed-2_0_UNSTABLE/GEOSagcm/Linux/bin
$ESMABIN/regrid.pl -ymd 19901128 -hr 21 -grout C48 -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/c48 -nobkg -nolbl -nolcv \
-tagout Ganymed-1_0_M -newid C48_d5_merra_jan89 -rs 3 -oceanout c
We now have commands we can use to regrid to other resolutions. Create a simple script to do so:
#!/usr/local/bin/csh
`set ESMABIN = /gpfsm/dswdev/mathomp4/Models/Ganymed-2_0_UNSTABLE/GEOSagcm/Linux/bin`
# 144x91
# ------
`echo y | $ESMABIN/regrid.pl -merra -ymd 19901128 -hr 21 -grout b -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/144x91 \` ` -nobkg -nolbl -nolcv -tagout Ganymed-1_0_M -newid b_d5_merra_jan89 -rs 3 -oceanout c`
# 288x181
# -------
`echo y | $ESMABIN/regrid.pl -merra -ymd 19901128 -hr 21 -grout c -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/288x181 \` ` -nobkg -nolbl -nolcv -tagout Ganymed-1_0_M -newid c_d5_merra_jan89 -rs 3 -oceanout c`
# C48
# ---
`echo y | $ESMABIN/regrid.pl -merra -ymd 19901128 -hr 21 -grout C48 -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/c48 \` ` -nobkg -nolbl -nolcv -tagout Ganymed-1_0_M -newid C48_d5_merra_jan89 -rs 3 -oceanout c`
# C90
# ---
``
echo y | $ESMABIN/regrid.pl -merra -ymd 19901128 -hr 21 -grout C90 -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/c90 \
` -nobkg -nolbl -nolcv -tagout Ganymed-1_0_M -newid C90_d5_merra_jan89 -rs 3 -oceanout c`
with other similar commands for other resolutions.
Now we need to work at getting a good Landice restart. Again we'll use Joe's script.
This time a run leads to a run-line like:
echo y | $ESMABIN/regrid.pl -ymd 19901128 -hr 21 -grout b -outdir /gpfsm/dnb31/mathomp4/Restarts-G20/144x91-newlandice \
-d /gpfsm/dnb31/mathomp4/Restarts-G20/c90-Full-newlandice -tagin Ganymed-1_0_M -oceanin c \
-nobkg -nolbl -nolcv -tagout Ganymed-1_0_M -newid b_newlandice -rs 2 -oceanout c
This line only does surface restarts (-rs 2).
This isn't very automated yet, but I first use this script to rename the restarts as made above:
$ ls
C48_d5_merra_jan89.19901128_21z.CMD C48_d5_merra_jan89.landice_internal_rst.19901128_21z.bin
C48_d5_merra_jan89.19901128_21z.log C48_d5_merra_jan89.moist_internal_rst.19901128_21z.bin
C48_d5_merra_jan89.agcm_import_rst.19901128_21z.bin C48_d5_merra_jan89.pchem_internal_rst.19901128_21z.bin
C48_d5_merra_jan89.catch_internal_rst.19901128_21z.bin C48_d5_merra_jan89.saltwater_internal_rst.19901128_21z.bin
C48_d5_merra_jan89.fvcore_internal_rst.19901128_21z.bin regrid.C48_d5_merra_jan89.19901128_21z.48x288.j
C48_d5_merra_jan89.lake_internal_rst.19901128_21z.bin regrid.o1536224
$ restart_name_clean
Changing C48_d5_merra_jan89.agcm_import_rst.19901128_21z.bin to agcm_import_rst...
Changing C48_d5_merra_jan89.catch_internal_rst.19901128_21z.bin to catch_internal_rst...
Changing C48_d5_merra_jan89.fvcore_internal_rst.19901128_21z.bin to fvcore_internal_rst...
Changing C48_d5_merra_jan89.lake_internal_rst.19901128_21z.bin to lake_internal_rst...
Changing C48_d5_merra_jan89.landice_internal_rst.19901128_21z.bin to landice_internal_rst...
Changing C48_d5_merra_jan89.moist_internal_rst.19901128_21z.bin to moist_internal_rst...
Changing C48_d5_merra_jan89.pchem_internal_rst.19901128_21z.bin to pchem_internal_rst...
Changing C48_d5_merra_jan89.saltwater_internal_rst.19901128_21z.bin to saltwater_internal_rst...
No cap_restart found. Copying from lower directory...
Removing regrid.o*...
Removing agcm_import_rst...
Removing *.CMD
Removing *.log
Removing *.j
$ ls
cap_restart* fvcore_internal_rst landice_internal_rst pchem_internal_rst
catch_internal_rst lake_internal_rst moist_internal_rst saltwater_internal_rst
where cap_restart is just "19901128 210000" and restart_name_clean is:
#!/bin/bash
`if test -n "$(find . -maxdepth 1 -name '*_rst*bin' -print -quit)"` `then` ` for file in *_rst*bin` ` do` ` origfile=$file` ` file=${file%.*.*bin}` ` file=${file#*.}` ` echo "Changing $origfile to $file..."` ` mv $origfile $file` ` done` `fi`
if [ ! -e cap_restart ]
then
echo "No cap_restart found. Copying from lower directory..."
if [ -e ../cap_restart ]
then
cp ../cap_restart .
else
echo "No cap_restart found below. Exiting!"
exit 10
fi
fi
`if [ -e regrid.rc ]` `then` ` echo "Removing regrid.rc..."` ` /bin/rm regrid.rc` `fi`
if [ -e regrid.o* ]
then
echo "Removing regrid.o*..."
/bin/rm regrid.o*
fi
`if [ -e agcm_import_rst ]` `then` ` echo "Removing agcm_import_rst..."` ` /bin/rm agcm_import_rst` `fi`
if [ -e *.CMD ]
then
echo "Removing *.CMD"
/bin/rm *.CMD
fi
`if [ -e *.log ]` `then ` ` echo "Removing *.log"` ` /bin/rm *.log` `fi`
if [ -e *.j ]
then
echo "Removing *.j"
/bin/rm *.j
fi
Do the same thing in the newlandice directories as well.
Well, this is simple, just move, say c48-newlandice/landice_internal_rst to c48.