general code architecture and dataflow in arpege/aladin ... · before stating… naming conventions...

32
General code architecture and dataflow in ARPEGE/ALADIN/ALARO/AROME Yann Seity (CNRM/GMAP)

Upload: others

Post on 18-Oct-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

General code architecture and dataflow

in ARPEGE/ALADIN/ALARO/AROME

Yann Seity (CNRM/GMAP)

Page 2: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

SUMMARY

Computations organization

Data flows (1D, 2D, 3D spectral and gridpoint variables)

Page 3: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Before stating…

Naming conventions in ALADIN-ARPEGE :

Setup routine

Classical routine

Module

Nameliste

SUXXX

XXXXX

YOMXXX

NAMXXX

SUEXXX

EXXXXX

YEMXXX

NAMXXX

ARPEGE ALADIN

Page 4: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

General organization

Program MASTER

Control level 0

Control level 1

2

3

4 STEPO

Page 5: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

AROME-ALADIN Code in ARPEGE/IFS

Embedded inside ARP/IFS Specific control keys [LELAM and LRPLANE

(plane geometry)] « E » Rule :

EC

I

8 pts

12 pts

12 pts

Page 6: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 7: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 8: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 9: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

EX : ./AROME.EX -eFCST -c001 -maladin -vmeteo -asli -t60. -fh30

Page 10: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 11: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 12: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 13: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 14: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 15: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 16: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 17: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Time step organisationTime step organisation

E RHSof SI

F

F

T

F

F

T -1

SI and other spectral comp.Spectral space

Standard grid

Origin points Interp.

NL dyn.

E : Physics calculations

Classical ALADIN/ARPEGE time step :

Page 18: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 19: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 20: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 21: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 22: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Gridpoint computations

AROME Case :

CPG_LAG

Page 23: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

NPROMA

Example in AROME or ALADIN with 4 procs

end of NPROMA slicing

( NGPTOT points )

PROC 3

PROC 4

PROC 2

PROC 1 ( 3 blocks )

Page 24: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

The data flow

Spectral arrays Grid points arrays Data flow

Page 25: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Spectral (distributed) arrays

SPA3(NFLSUR,NSPEC2,NS3D)

SPA2(NSPEC2,NS2D)

SPA1(NFLSUR,NS1D)

Number of 1D fields

Number of surface spectral fields

Number of upper air spectral fields

Number of spectral coefficient

(over)-number of vertical levels (NFLEVL)

SPGFL(NFLSUR,NSPEC2,YGFL%NUMSPFLDS)Number of gfl fields with spectral representation

Page 26: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Spectral arrays are split:

(target <= pointers)SPA3(:,:,1) <= SPVOR(:,:) Vorticity

SPA3(:,:,2) <= SPDIV(:,:) Divergence

SPA3(:,:,3) <= SPT(:,:) Temperature

SPA2(:,1) <= SPSP(:) (Ln) surf pressure

SPA2(:,2) <= SPOR(:) Surf geopotential

SPA1(:,1) <= SPUB(:) mean wind (U)

SPA1(:,2) <= SPVB(:) mean wind (V)

… And possibly

SPA3(:,:,k) <= SPGFL(:,:,YQ%MPSP) Specific moisture

SPA3(:,:,l) <= SPGFL(:,:,YL%MPSP) liquid water

SPA3(:,:,m) <= SPGFL(:,:,YI%MPSP) Ice

NH variablesPressure departure

SPA3(:,:,i) <= SPSPD(:,:)

Vertical divergency

SPA3(:,:,j) <= SPSVD(:,:)

Page 27: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX
Page 28: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Grid point arrays

2 data structures :

– GMV : prognostic variables involved in SI u,v,T,ps (pd,vd) -> FIXED

– GFL : other variables such as q, ql, qi, … -> FLEXIBLE

Page 29: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

GMV(T1)(nproma,nflevg,nfields,ngpblks) ->3D variables

GMVS(T1)(nproma,nfields,ngpblks) -> 2D variables

Ex : GMV(:,:,YT0%MT,:)

Access to fields by pointers

YT0,YT9,YT1: pointers to t, t-dt, t+dt quantities

« Fields » pointers, ex: MU,MV, MDIV,MVOR, MT,

MSPD, MSVD

Grid point arrays

Page 30: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

GFL(T1)(nproma,nflevg,nfields,ngpblks)ex gfl(:,:,YQ%MPL,:)

« fields pointers » : YQ, YI, YL, …

« attributes »:

•MP : basic field pointer

•MPL : zonal derivative

•MPM: meridional derivative

•MPSP: basic field spectral space

•LADV (advec or not), LSP (spectral representation or not), LGP (gp or not), NREQIN (required in input or not) , LREQOUT (saved in outpout files or not), NCOUPLING (coupled or not) …

Grid point arrays

Page 31: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Input data flow (setup)

Cnt3 level

ElsacElsirf suspeca

Coupling files

Elswa3GMVCPL

GMVSCPL

GFLCPL

yemgt3b

Elsirf suspeca

Initial file

SPA3

SPA2

SPA1Sugridf Sugridadm

Sugridu Sugridua

SP_xxx

GFL

Surf GP:

Upper air Gp:

yomsp

Page 32: General code architecture and dataflow in ARPEGE/ALADIN ... · Before stating… Naming conventions in ALADIN-ARPEGE : Setup routine Classical routine Module Nameliste SUXXX XXXXX

Data flow (stepo loop)

STEPOt

t+dt

S PA 3

/SP A

2/S P

A1SPA3/SPA2/SPA1/GFL

iopack

etransinvh

scan2h

ecoupl1

etransdirh

espch SPA3/SPA2/SPA1

SPA3/SPA2/SPA1

GMV/GFL

GMVT1/GFLT1

GMVT1/GFLT1

SPA3/SPA2/SPA1

wrmlppadm

SP_xx and SD_xx

History file

SPA3/SPA2/SPA1

Yemgt3b