Welcome, Guest
Username: Password: Remember me
Forum header
  • Page:
  • 1
  • 2

TOPIC: forecast length at 06 and 18 start hours?

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #769

Andres,

Have you managed to solve the problem in the end?
Last Edit: 7 years 6 months ago by Martynas Kazlauskas.

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #772

No, I have not solved it, but I found at least one new interesting hint.
When I start model at 06 or 18 hours, then in the script
$HL_DATA/$EXP/MakeCycleInput/Hour/CycleInput/LBC0/Boundaries.job1-q
the variable LL does not get correct value, but is
LL=9
But when I start model at 00 or 12 hours, in the same script, LL is correct.

I do not know where, but someone is changing the LL value without my control.

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #773

Weird.
LL=9 should be overridden for lsmix runs by default, not ordinary ones.
Could you e-mail your both "scripts" folders from your code reference version and work folder (if any) to see if I can reproduce something similar.

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #774

  • Xiaohua Yang
  • Xiaohua Yang's Avatar
  • OFFLINE
  • Administrator
  • Posts: 195
  • Thank you received: 4
Andres Luhamaa wrote:
No, I have not solved it, but I found at least one new interesting hint.
When I start model at 06 or 18 hours, then in the script
$HL_DATA/$EXP/MakeCycleInput/Hour/CycleInput/LBC0/Boundaries.job1-q
the variable LL does not get correct value, but is
LL=9
But when I start model at 00 or 12 hours, in the same script, LL is correct.

I do not know where, but someone is changing the LL value without my control.

Andres and Martynas,

I think this is the case if you submit your run with default HIRLAM script and with a command line statment like
Hirlam start DTG=??? DTGEND=???

by default this would mean, in case of 3DVAR-FGAT, that
LL=48 for every 12h and 09 h for those in between.

These scenarios are equivalent by a command line option of LLMAIN=48.

If you want to run 48h forecast for all 4 cycles, this is achieved in the above by specifying LL=48

The following is excerpt from submission.db which as default describe a LLMAIN=48 scenario with
short cycles at 06 and 18 UTC.

# a sample algorithm (how to vary LL with time of day: long forecast at main hours only)
# note that still LL may be overwritten by a command-line argument

$llmain = $ENV{LLMAIN} || $ENV{LL} || '48';
if ( $ENV{FGAT} eq 'yes' ) {
$llshort = sprintf("%02d", $ENV{FCINT}+int($ENV{FCINT}/2)); ### your scenario?
} else {
$llshort = sprintf("%02d", $ENV{FCINT});
}
if ( $ENV{ANALYSIS} eq '3DVAR' and $ENV{FCINT} < 06 ) {
$llshort = 06;
}
if ( $ENV{LSMIX} eq 'yes' and $RUN > 1 ) {
if ( $ENV{ANALYSIS} eq '4DVAR' && $ENV{$DTG} ne $ENV{$DTGBEG} ) {
$obscut = $ENV{OBSCUT} || '0130';
$LL = sprintf("%02d", int($obscut/100 + 1));
} else {
$LL = $llshort;
}
} else {
if ( $HH % 12 ) { $LL = $llshort; } else { $LL = $llmain; } # edit this line do make long forecast every 6 or 24 hr.
# this forces short cycles every 12 h;
}
}

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #779

Thanks Xiaohua,
I think I have it under control now.
First, I should have mentioned before that I tried to define LL directly in Env_expdesc. Setting
LL=18
did not work correctly and caused the confusion. Seems that hlprog.x got from namrun.dat that it has to perform 18h forecast, but boundaries where created for 9 hours only.
Then, changing LL in Env_expdesc back to original
LL=${LL-48}
and trying to set LL on command line did not have any effect. The command:
Hirlam start DTG=2012052406 LL=18
gave me perfectly working 9 hour forecast, nothing more.
To change that, I commented out a whole region concerning $LL in submission.db and replaced it with
$LL=$ENV{LL};
$llmain=$LL;
$llshort=$LL;

So, now I can give LL either on command line or in Env_expdesc and it seems to work. But, changing the default value of LL in Env_expesc to something else did not work, what I tried was:
LL=${LL-12}
but the forecast was still looking for boundaries for 48 hours, LBCStrategy fails and in the log there is the reason:
perl -S MakeStrategy.pl -s same_cycle -l 48 -i 01 2012052406
so I do not know where it still gets the 48 from.

What are $llmain and $llshort in submission.db anyway?

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #784

  • Xiaohua Yang
  • Xiaohua Yang's Avatar
  • OFFLINE
  • Administrator
  • Posts: 195
  • Thank you received: 4
Andres Luhamaa wrote:


What are $llmain and $llshort in submission.db anyway?

llmain is the forecast length for the main cycles as defined in the submission.db, by default it refers to forecast every 12 h.
llshort is the forecast length for other cycles which are determined purely to be able to maintain data assimilation cycling.

As said, specifying LL=?? on command line when launching HIRLAM shall eliminate differece on forecast length among cycles. e.g., LL=18 on command line will allow you run 18h forecast for all cycles.

The design of llmain is mainly for ECMWF platform and for impact/validation studies, for which one tries to save some CPU by running 6/18 cycles short.

For operational purpose one shall change '12' below in submission.db to either 6 (for 6h cycling) or 3 (for 3 h cycling). You may also change it to 24 to run only one long forecast once a day.

if ( $HH % 12 ) { $LL = $llshort; } else { $LL = $llmain; } #

I think the numerous local fixes about LL that you described may have unknown consequence for your current test using same_cycle BC strategy, the latter normally requires same cycling configuration and same forecast length in your coarse resolution run as well.

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #787

Thanks once more, Xiaohua
I understand it now.

BUT I have to correct You in one thing, providing LL=?? on command line does NOT have any effect for HH=06,18 and command like
Hirlam start DTG=2012052406 LL=18
makes only 09 hours forecast and I explain why.
LL on command line has influence only on $llmain in submission.db and not on $llshort.
In submission.db, line #451
   $llmain = $ENV{LLMAIN} || $ENV{LL} || '48';
This is the ONLY line where $ENV{LL} is used in submission.db!
$LL is set on the line #468
      if ( $HH % 12 ) { $LL = $llshort; } else { $LL = $llmain; }   # edit this\
 line do make long forecast every 6 or 24 hr.
$LL gets its value from $llshort, which in my experiment gets its value on line #453
      $llshort = sprintf("%02d", $ENV{FCINT}+int($ENV{FCINT}/2));
So it ends up that $LL in submission.db depends only on FCINT for 06,18 forecasts. As FCINT is 06 from Env_expdesc, it is clear why forecast length is 09.

What I still do not understand is why setting LL directly in Env_expdesc makes it behave differently than LL on command line, i.e. why it does have effect while command line setting does not?

Re:forecast length at 06 and 18 start hours? 7 years 6 months ago #788

  • Ole Vignes
  • Ole Vignes's Avatar
  • OFFLINE
  • Administrator
  • Posts: 36
  • Thank you received: 10
"What I still do not understand is why setting LL directly in Env_expdesc makes it behave differently than LL on command line, i.e. why it does have effect while command line setting does not?"


I think it is because of the below passage in InitRun.pl. I don't remember why it was done this way anymore.
Maybe because many users specified LL by habit but acutally meant LLMAIN:


# Process info from HL_CLA (the user-supplied variable settings
# on the Hirlam command line, should override everything else)

foreach ( split /\s+/, $ENV{ HL_CLA } ) {
my ($var, $val ) = split /=/;
if ($var eq 'LL') {
$var = 'LLMAIN';
s/^LL=/LLMAIN=/;
}
$hl_cla .= "$_\nexport $var\n" if $var =~ m~^\w+$~;
}
  • Page:
  • 1
  • 2
Time to create page: 0.102 seconds