hycom run error: xcspmd: patch.input has an empty row

81 views
Skip to first unread message

yanod...@gmail.com

unread,
May 24, 2018, 2:05:20 PM5/24/18
to HYCOM.org Forum
Dear Alan,

 echo "-$n -$m 0.75" | /hycom/ALL/topo/src/partit
when m>9, the resultant patch.input has an empty row for iipe (.i.e. iipe(:, j)=0).  So the HYCOM run stops with an error : patch.input has an empty row. Since the North pole is moved to the land in the model, there are no water pionts, and only land points near j=jdm.  It should be that too many land points near j=jdm leads to an empty row for iipe. Could you please tell me how to solve this problem?  Addtionally, how to set up n and m make the calculation more efficient?

e.g. for m=10, patch.input is as follows, where iipe(:,10)=0

npes   npe   mpe   idm   jdm  ibig  jbig  nreg  minsea  maxsea  avesea
    96    12    10  4500  3200   375   320     2    1031  120000   83617

ispt(  1) =      0     0     0     0     0  1954  2251  2626
              3001  3376  3751  4126
iipe(  1) =      0     0     0     0     0   297   375   375
               375   375   375    91
ispt(  2) =      1   376   751  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  2) =    375   375   375   375   375   375   375   375
               375   375   375   375
ispt(  3) =      1   376   751  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  3) =    375   375   375   375   375   375   375   375
               375   375   375   375
ispt(  4) =      1   376   751  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  4) =    375   375   375   375   375   375   375   375
               375   375   375   375
ispt(  5) =    113   376   751  1126  1501  1886  2251  2626
              3001  3376  3751  4126
iipe(  5) =    263   375   375   375   354   365   375   375
               375   375   375   336
ispt(  6) =    155   376   751  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  6) =    221   375   375   375   375   375   375   375
               375   375   375   174
ispt(  7) =      1   376   751  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  7) =    375   375   375   375   375   375   375   375
               375   375   375   375
ispt(  8) =     23   376   785  1126  1501  1876  2251  2626
              3001  3376  3751  4126
iipe(  8) =    353   288   341   375   375   375   375   375
               375   375   375   180
ispt(  9) =      0     0     0     0     0  1898  2522  2955
              3001  3376     0     0
iipe(  9) =      0     0     0     0     0   181    93    46
               375   375     0     0
ispt( 10) =      0     0     0     0     0     0     0     0
                 0     0     0     0
iipe( 10) =      0     0     0     0     0     0     0     0
                 0     0     0     0
jspt(  1) =      1   321   641   961  1281  1601  1921  2241
              2561  2881
jjpe(  1) =    320   320   320   320   320   320   320   320
               320   320

Thanks a lot 
Yan

alan.wa...@hycom.org

unread,
May 24, 2018, 4:08:55 PM5/24/18
to HYCOM.org Forum
This is a bug in the partit program, it is throwing away too many empty tiles.  Every row needs at least one tile because the 1st tile in each row does array I/O.  This has not come up before, because all those land-only rows make your domain bigger for no gain in information.  So one fix would be to recreate your domain with a smaller jdm.

If you want to keep the current domain, a work around is to edit the partition file to add a tile in the last row.

The attached tar bundle includes an example of doing this, and also shows how we normally now setup tiles (using the Ssq script).  On modern computers, equal sized square tiles seem to be best and the "s8" versions are typically 5% faster than the standard tiles.

Alan.
empty_row_partit.tar.gz

yanod...@gmail.com

unread,
May 25, 2018, 6:47:04 AM5/25/18
to HYCOM.org Forum
Thank for Alan. Your attached tar bundle mentioned partit_resize and partit_test. However,  I could not find the codes of partit_resize.f and partit_test.f in the /hycom/ALL/topo/src. Could you please send them to me here? Addtionally, a small tile may be added to the empty row of iipe(:, j). How to decide this small tile? This small tile may be any number (e.g. 1, 2, 30,90, ...)?  When m is larger, there are more empty rows. A small tile is added to each empty row, right? 

在 2018年5月25日星期五 UTC+8上午4:08:55,alan.wa...@hycom.org写道:

alan.wa...@hycom.org

unread,
May 29, 2018, 1:40:34 PM5/29/18
to HYCOM.org Forum
The attached tar bundle is the latest ALL/topo/src.  I renamed .com to .csh and you will need to undo this for ALL/Make_all.com to work.

Add one tile, of width (iipe) 12 to each empty row.  It is simplest to have it start (1spt) from 1, but it can in principle be anywhere in the row:


COAPS 179> diff depth_BFGc0.04_99.100 depth_BFGc0.04_99.099
2c2
<    100    11    12  1240  1380   113   115     0       0   12995   10331
---
>     99    11    12  1240  1380   113   115     0       0   12995   10331
48c48
< ispt( 12) =      1     0     0     0     0     0     0     0
---
> ispt( 12) =      0     0     0     0     0     0     0     0
50c50
< iipe( 12) =     12     0     0     0     0     0     0     0
---
> iipe( 12) =      0     0     0     0     0     0     0     0

Alan.
ALL_topo.tar.gz

yanod...@gmail.com

unread,
May 31, 2018, 4:46:05 AM5/31/18
to HYCOM.org Forum
Thank for Alan very much. When using S8 version, is it necessary to edit the model expt???.com script?  Is it ok if the S8 version file is only renamed? e.g. rename "depth_BFGc0.04_99.099s8" as "depth_BFGc0.04_99.099". I do not know what the script does, because I have no  expt???.com script, Could you please send me here? 
Many thanks
Yan

在 2018年5月30日星期三 UTC+8上午1:40:34,alan.wa...@hycom.org写道:
Reply all
Reply to author
Forward
0 new messages