Ensemble data assimilation and model error estimation algorithm
This presentation is the property of its rightful owner.
Sponsored Links
1 / 11

Ensemble data assimilation and model error estimation algorithm Developed by PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

Ensemble data assimilation and model error estimation algorithm Developed by Milija Zupanski and Dusanka Zupanski CIRA/CSU. GEOS column model component of the algorithm developed in collaboration with: Arthur Hou and Sara Zhang NASA/GMAO Christian Kummerow CSU/ATM Science Department.

Download Presentation

Ensemble data assimilation and model error estimation algorithm Developed by

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble data assimilation and model error estimation algorithm

Developed by

Milija Zupanski and Dusanka Zupanski

CIRA/CSU

GEOS column model component of the algorithm developed in collaboration with:

Arthur Hou and Sara Zhang NASA/GMAO

Christian Kummerow CSU/ATM Science Department

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

prep_ensda.sh

WARM start: Copy files from previously completed cycle

COLD start: Run randomly-perturbed ensemble forecasts to initialize fcst err cov

cycle_ensda.sh

icycle < N_cycles_max

fcsterr_cov.sh

- Prepare first-guess (background) vector

- Prepare forecast error covariance (from ensembles)

prep_obs.sh

Given ‘OBSTYPE’ and ‘delobs’, select and copy available obs files

assimilation.sh

Iterative minimization of cost function, save current cycle output

post.sh (post-processing)

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

assimilation.sh script

assimilation.sh

iter < ioutmax

forward.sh: Transformation from model space to observation space

Hessian preconditioning (only for iter=1)

Gradient calculation (ensembles)

Cost function calculation (diagnostic)

Minimization (ensemble subspace)

Step-length (line-search)

Control variable update

(transformation from ensemble subspace to model (physical) space)

- Analysis error covariance calculation

- Save current cycle output files

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Organization chart

../ensda/include: Include files (control variable list, first-guess list)

../ensda/makefiles: Makefile_ensda, Makefile_’MODEL’

../ensda/runscripts: Run EnsDA program (runensda, envir.sh)

../ensda/scripts: Scripts used to run the EnsDA program

../ensda/src: Source programs

../’MODEL’/src: Model source programs (general)

../’MODEL’/src_ensda: Model source programs (changes due to EnsDA)

../exec/ensda: Executable directory

../’Obsdir’: Observations directory

../ensda/work: Working (temporary) directory

../hold.’print’/current:General EnsDA output

../hold.’print’/cycle1, cycle2, . . . :Cycle specific EnsDA output

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Options – envir.sh

MODEL: WRF,UW-NMS,PU-NTU

OBS: OBSTYPE, delobs,OBSFLAG

STAT:Mode (max likelihood), Mean (ensemble mean)

DA_TYPE:Filter, Smoother

COVAR:Localized, Non-localized forecast error covariance

N_CYCLES:Number of data assimilation cycles

CYCLE_INTERVAL: Time interval between cycles

ENS_SIZE:Number of ensemble members

START:Cold (from scratch), Warm (from previous cycle)

IOUTMAX:Number of minimization iterations

MINIM_ALG:Minimization algorithm (C-G, L-BFGS)

MPI_RUN:Parallel run (YES, NO)

nCPU_ensfcst:No. of CPUs for ensemble fcst

nCPU_da:No. of CPUs for data assimilation

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Control variables

Optional control variable components:

- initial conditions

- model bias

- empirical parameters

../include/Cntrl_vrbl_list.h

!---------------------------------------

max_num_of_cntrl_vrbls = 5

if(.not.allocated (cvar_list)) then

allocate (cvar_list(1:max_num_of_cntrl_vrbls))

end if

!---------------------------------------

ncv= 1

cvar_list(ncv)%ndim = 3

cvar_list(ncv)%start_index(1) = 1

cvar_list(ncv)%start_index(2) = 1

cvar_list(ncv)%start_index(3) = 1

cvar_list(ncv)%start_index(4) = 1

cvar_list(ncv)%end_index(1) = NNXP(1)

cvar_list(ncv)%end_index(2) = NNYP(1)

cvar_list(ncv)%end_index(3) = NNZP(1)

cvar_list(ncv)%end_index(4) = 1

cvar_list(ncv)%name = 'T '

cvar_list(ncv)%stddev = 1.5

cvar_list(ncv)%description = 'Temperature ‘

!---------------------------------------

../namelists/Cntrl_vrbl_’MODEL’.h

6

p T F F 0

t T F T 1

q T F T 3

u T F F 0

v T F F 0

param1 F T F 0

param2 F T F 0

!-- first line number is the number of control variables defined --!

!-- vrbl name, ic flag, param flag, bias flag, number of biases ----!

!--- recall that vrbl name has 9 characters !!!!!

!--- All inputs have to be separated by at least one blank space !!!

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Observations

# Precip obs

export iobs=02

#---------- specified by user ---------

export OBSTYPE=precip

export OBSFLAG=NOT

let "delobs=1*60" ; export delobs

#----------- end user ------------------

--------------------------

OBSTYPE – algorithm recognizable obs type

delobs– time interval between two successive observation files

OBSFLAG – Specifies if the OBSTYPE obs should be assimilated (YES, NOT)

interface_’MODEL’_’OBSTYPE’.sh

(model produced first-guess file => obs operators compatible first-guess file)

runobs_’OBSTYPE’.sh

(forward-only observation operator: first-guess => innovation vector R-1/2[y-K(x)] )

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Model

convert_vrbls_from_1d.sh

run_’MODEL’.sh

convert_vrbls_to_1d.sh

- Data assimilation is defined using 1-d control variable

- Model is defined using its own 1-d, 2-d, or 3-d, or 4-d variable

- Need ‘convert’ as an interface between the 1-d and model specific variables

../’MODEL’/src: (‘MODEL’_fcst.F)

read namelists: ‘MODEL_DIMENSION’,’LENGTH’,’MODEL_CNSTS’

call: ‘read/write_model_ic’,’read/write_model_bias’ ,’read/write_model_param’

../’MODEL’/src_ensda:

‘MODEL’_get_init_fcst.F –cold start only, get model_dimension file

‘read/write_model_ic.F’,’read/write_model_bias.F’ ,’read/write_model_param.F’

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

Including model bias

DOn=1,N_time !! Main time-loop

.

.

.

if(num_bias.gt.0) then

nerr=N_time/max(1,num_bias)

nbias=0

if((n.ne.N_time).and.(mod(n,nerr).eq.0.or.n.eq.1)) then

nbias=nbias+1

call read_model_bias( . . . ,u_bias,v_bias,t_bias, . . . ,nbias,num_bias)

endif

endif

.

.

.

if(num_bias.gt.0) then

u_phi(:,:,:)=aa*u_phi(:,:,:)+(1.-aa)*u_bias(:,:,:)

v_phi(:,:,:)=aa*v_phi(:,:,:)+(1.-aa)*v_bias(:,:,:)

t_phi(:,:,:)=aa*t_phi(:,:,:)+(1.-aa)*t_bias(:,:,:)

.

u(:,:,:)=u(:,:,:)+u_phi(:,:,:)

v(:,:,:)=v(:,:,:)+v_phi(:,:,:)

t(:,:,:)=t(:,:,:)+t_phi(:,:,:)

endif

.

.

.

END DO !! End main time loop

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Ensemble Data Assimilation (EnsDA) Algorithm

MPI

!--------------------------------------------------------------------

#ifdef MPI_USE

include "mpif.h"

#endif

. . . . . . . . .

!==============start calculation===================

#ifdef MPI_USE

CALL MPI_INIT(IERR)

IF (IERR .NE. MPI_SUCCESS) STOP 'FAILED TO INIT MPI'

CALL MPI_COMM_SIZE(MPI_COMM_WORLD, NPROC, IERR)

CALL MPI_COMM_RANK(MPI_COMM_WORLD, MPIRANK, IERR)

CALL MPI_BARRIER(MPI_COMM_WORLD,IERR)

#else

write(*,*) "This is a NO MPI run"

MPIRANK=0

NPROC=1

#endif

!================================================

!-- read ensemble size (NENS) ……

!== define local dimensions and indexes

allocate(jdisp(0:NPROC-1))

allocate(jlen(0:NPROC-1))

do irank=0,NPROC-1

CALL para_range(1,NENS,NPROC,irank,jsta,jend)

jlen(irank)=jend-jsta+1

jdisp(irank)=jsta-1

end do

CALL para_range(1,NENS,NPROC,MPIRANK,jsta,jend)

#ifdef MPI_USE

CALL MPI_BARRIER(MPI_COMM_WORLD,IERR)

#endif

N_LOC=jlen(MPIRANK)

Dusanka Zupanski, CIRA/CSU

[email protected]


Ensemble data assimilation and model error estimation algorithm developed by

Dusanka Zupanski, CIRA/CSU

[email protected]


  • Login