wiki:plantravail

1 - Observations (responsable FP)

Bilan sur les obs et recup

MLD

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-mld

Density

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-density et temperature et densité ci-dessous

Chl

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-chlorophyll

Faire une clim: voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/manuals/clim_chla_globcolour.sh.html

regriller

Currents

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-current

clim+conversion cm/s in m/s

nitrate (NO3)

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-nitrate

silicate

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-silicate

Phosphate

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-phosphate

Oxygen

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-oxygen

Iron

Finalement non

DIC

gridded data

GLODAP: http://cdiac.ornl.gov/ftp/oceans/GLODAP_Gridded_Data/ voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-dic

ALK

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-alkalinity

CO2anth

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-co2anth

POC

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#data-in-poc

Calcite

finalement non

Mise sur grille commune

voir http://www.locean-ipsl.upmc.fr/~fplod/cpump/cpump_ws/doc/html/guides/data_content.html#input-data

2 - Config off-line (responsable CE)

Mise en place sur le compte reee030, sur la machine vargas, dans le répertoire $WORKDIR/PIERREK/NEMOGCM_trunk_r2842 de la config ORCA2. La partie OFFLINE a tourné sur 1 an et fonctionne. Il est nécessaire pour le temps de faire tourner le code en parallèle. Un job a été créé par Christian pour concaténer les fichiers sortis en morceaux.

Code : vargas:/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/

config offline : vargas:/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/EXP00

job de run: vargas:/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/EXP00/job_test

#!/usr/bin/ksh
##################
## IBM   IDRIS  ##
##################
### Nom du travail LoadLeveler
#@job_name= TEST
### Fichier de sortie standard du travail
#@output= $(job_name).$(jobid)
### Fichier de sortie d'erreur du travail
#@error=  $(job_name).$(jobid)
### Type de travail
#@job_type= parallel
### Nombre de processus demandes
#@total_tasks=128
### Temps ELAPSED max. pour l'ensemble du job en hh:mm:ss
#@wall_clock_limit= 1:00:00
###Memoire max. demandee par coeur
#@data_limit= 3.0gb
#@ stack_limit = 0.3gb,0.3gb
### pour recevoir un mail en cas de time limit exceeded (ou autre pb.)
#@queue

# Pour avoir l'echo des commandes
set -x

export DIR_CODE=${WORKDIR}/PIERREK/NEMOGCM_trunk_r2842
export DIR_JOB=${DIR_CODE}/CONFIG/ORCA2_OFF_PISCES/EXP00
export DIR_DYN=/u/rech/eee/reee451/IGCM/BC/ORCA2_OFF_PISCES/DYN/v3
export DIR_ANC=/u/rech/eee/reee451/IGCM/BC/ORCA2_OFF_PISCES/ANC
export DIR_INI=/u/rech/eee/reee451/IGCM_OUT/ORCA2_OFF_PISCES/PISCES/MBG/Restart
export DIR_OUT=/u/rech/eee/reee030/PIERREK/SUBDUCTION/TEST
#####export DIR_RUN=${DIR_JOB}/RUN
export DIR_RUN=${TMPDIR}

cd ${DIR_RUN}
cd ${DIR_RUN}

cp ${DIR_JOB}/nemo_mpi.exe opa
cp ${DIR_JOB}/namelist  namelist
cp ${DIR_JOB}/namelist_top  namelist_top
cp ${DIR_JOB}/namelist_pisces  namelist_pisces
cp ${DIR_JOB}/iodef.xml  iodef.xml
cp ${DIR_JOB}/xmlio_server.def xmlio_server.def

mfget ${DIR_DYN}/NEMONEW_mesh_mask.nc mesh_mask.nc
mfget ${DIR_DYN}/NEMONEW_5d_20920101_20921231_grid_T.nc dyna_grid_T.nc
mfget ${DIR_DYN}/NEMONEW_5d_20920101_20921231_grid_U.nc dyna_grid_U.nc
mfget ${DIR_DYN}/NEMONEW_5d_20920101_20921231_grid_V.nc dyna_grid_V.nc
mfget ${DIR_DYN}/NEMONEW_5d_20920101_20921231_grid_W.nc dyna_grid_W.nc


mfget ${DIR_ANC}/dust.orca.nc  .
mfget ${DIR_ANC}/bathy.orca.nc  .
mfget ${DIR_ANC}/river.orca.nc  .
mfget ${DIR_ANC}/ndeposition.orca.nc  .


mfget ${DIR_INI}/PISCES_00011231_restart_trc.nc restart_trc.nc
# Execution d'un programme MPI
./opa

cat ocean.output

mfput *_ptrc_T_00*.nc      ${DIR_OUT}/.
mfput *_ptrc_T_01*.nc      ${DIR_OUT}/.
mfput *_diad_T_00*.nc      ${DIR_OUT}/.
mfput *_diad_T_01*.nc      ${DIR_OUT}/.
mfput *restart_trc_00*.nc  ${DIR_OUT}/.
mfput *restart_trc_01*.nc  ${DIR_OUT}/.
mfput  ocean.output    ${DIR_OUT}/.

outputs : ulam:/u/rech/eee/reee030/PIERREK/SUBDUCTION/TEST

job rebuild:ulam:/u/rech/eee/reee030/PIERREK/SUBDUCTION/TEST/job_rebuild.sh

#!/bin/ksh 

set -x

export dir_bin=$HOME/REBUILD/modipsl/bin/
export dir_data=$HOMEGAYA/PIERREK/SUBDUCTION/TEST

#### To be modified
export cexper=ORCA2P
export freq='1m'
export datetrc='00010101_00011231'
export daterst='00001460'
#### To be modified

cd ${dir_data}

cp ${dir_bin}/rebuild     .
cp ${dir_bin}/flio_rbld   .
chmod 777 rebuild
chmod 777 flio_rbld

./rebuild -o ${cexper}_${freq}_${datetrc}_ptrc_T.nc ${cexper}_${freq}_${datetrc}_ptrc_T_0*.nc
./rebuild -o ${cexper}_${freq}_${datetrc}_diad_T.nc ${cexper}_${freq}_${datetrc}_diad_T_0*.nc
./rebuild -o ${cexper}_${daterst}_restart_trc.nc    ${cexper}_${daterst}_restart_trc_0*.nc

rm  ${cexper}_${freq}_${datetrc}_ptrc_T_0*.nc
rm  ${cexper}_${freq}_${datetrc}_diad_T_0*.nc
rm  ${cexper}_${daterst}_restart_trc_0*.nc

3 - Config on-line (responsable CE)

4 - Diags off-line (responsable PK)

Les fichiers déposés sur la forge ont été récupérés par Pierre pour reprise en main. Les diagnostics de subduction de traceurs à effectuer sur la config sont recensés:

Subh : subduction liée à la variation de la MLD

Subv : subduction liée à l'advection méridionnale (traadv)

Subu : subduction liée à l'advection zonale (traadv)

Subw : subduction liée à l'advection verticale (traadv)

Subveiv : subdcution liée à Gent et MC Williams, partie méridonnale (traadv_eiv)

Subueiv : subduction liée à Gent et Mc Williams, partie zonale (tradv_eiv)

Subweiv : subdcution liée à Gent et Mc Williams, partie verticale (traadv_eiv)

Subdz : subduction liée à la diffusion verticale (trazdf)

Subdisoz : subduction liée à la composante verticale de la diffusion isopycnale (traldf_iso)

Subdisov : subduction liée à la composante méridionnale de la diffusion isopycnale (traldf_iso)

Subdisou : subduction liée à la composante zonale de la diffusion isopycnale (traldf_iso)

Pour les masses d'eau, il n'y a que les 4 premiers termes qui existent.

4 - 1 Modifications du code pour implantation des diagnostics de subdcution:

Pour les masses d'eau: création de la routine diasub.F90, qui calcule les termes Subu, Subv, Subw, Subh. Les diagnostics sont dans la variables tsub (jpi, jpj, 4).

USE diasub a été ajouté à la routine step_oce.F90 La routine diasub.F90 est appelée par la routine step.F90 si la clé CPP key_diasub est activée.

Pierre a écrit

Bonjour,

un point sur l'avancement et les blocages :

- création de la routine diasub.F90 (dans \MY_SRC) : la routine calcule la subduction des masses d'eau (pas encore celle des traceurs).
- modification de step.F90 pour appel de la routine diasub. L'appel se fait entre trc_stp et la partie "Active tracers"
- modification de nemogcm.F90 pour ajout de "USE diasub"

J'ai ajouté une clé CPP key_diasub.

La compilation se fait normalement jusqu'à la compilation des libraires NetCDF qui plante. Christian, peux-tu jeter un oeil et peut-on s'appeler dans la journée pour voir cela?

Bonne semaine à tous

Pierre Karleskind
02 98 05 43 21

PS : ci-dessous la sortie de la compil

Creating ORCA2_OFF_PISCES/WORK = OPA_SRC OFF_SRC TOP_SRC for ORCA2_OFF_PISCES

bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_ldfslp key_traldf_c2d key_traldf_eiv key_top key_offline key_pisces  key_diatrc key_iomput key_diasub
Build command started on Mon Oct  3 09:59:03 2011.
->Parse configuration: start
Config file (bld): /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/TOOLS/COMPILE/bldxag.cfg
Config file (bld): /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/TOOLS/COMPILE/arch_nemo.fcm
Config file (bld): /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/TOOLS/COMPILE/cpp.fcm
->Parse configuration: 3 seconds
->Setup destination: start
Destination: reee030@vargas043:/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD
->Setup destination: 0 second
->Setup build: start
->Setup build: 0 second
->Pre-process: start
->Pre-process: 4 seconds
->Scan dependency: start
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile: updated
WARNING: m_path.done: duplicated targets for building:
       /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/EXTERNAL/XMLF90/src/xpath/m_path.f90
       /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/EXTERNAL/XMLF90/src/xpath/m_path_orig.f90
WARNING: m_path.o: duplicated targets for building:
       /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/EXTERNAL/XMLF90/src/xpath/m_path.f90
       /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/EXTERNAL/XMLF90/src/xpath/m_path_orig.f90
->Scan dependency: 1 second
->Generate Fortran interface: start
->Generate Fortran interface: 0 second
->Make: start
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile:4290: warning: overriding commands for target `m_path.done'
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile:4281: warning: ignoring old commands for target `m_path.done'
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile:4293: warning: overriding commands for target `m_path.o'
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile:4284: warning: ignoring old commands for target `m_path.o'
touch /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/flags/LDFLAGS__ioserver.flags
touch /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/flags/LDFLAGS__ioserver__server.flags
fcm_internal load:F ioserver /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/server.o server.exe
ar: Creating an archive file /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/tmp/lib__fcm__server.a.
mpxlf90_r -o server.exe /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/server.o -L/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/lib -l__fcm__server -L /usr/local/pub/NetCDF/3.6.2/lib -lnetcdf
Fortran wrapper: mpxlf90_r is /usr/bin/mpxlf90_r
mpxlf90_r -I/usr/local/pub/NetCDF/3.6.2/include -o server.exe /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/server.o -L/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/lib -l__fcm__server -L /usr/local/pub/NetCDF/3.6.2/lib -lnetcdf -L/usr/local/pub/NetCDF/3.6.2/lib -lnetcdf_c++ -lnetcdf
touch /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/flags/LDFLAGS__nemo.flags
touch /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/flags/LDFLAGS__nemo__nemo.flags
fcm_internal load:F nemo /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/nemo.o nemo.exe
ar: Creating an archive file /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/tmp/lib__fcm__nemo.a.
mpxlf90_r -o nemo.exe /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/nemo.o -L/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/lib -l__fcm__nemo -L /usr/local/pub/NetCDF/3.6.2/lib -lnetcdf
Fortran wrapper: mpxlf90_r is /usr/bin/mpxlf90_r
mpxlf90_r -I/usr/local/pub/NetCDF/3.6.2/include -o nemo.exe /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/obj/nemo.o -L/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/lib -l__fcm__nemo -L /usr/local/pub/NetCDF/3.6.2/lib -lnetcdf -L/usr/local/pub/NetCDF/3.6.2/lib -lnetcdf_c++ -lnetcdf
ld: 0711-317 ERROR: Undefined symbol: .dia_sub_
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
fcm_internal load failed (2048)
gmake: *** [nemo.exe] Error 1
gmake -f /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/BLD/Makefile -j 1 all failed (2) at /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/EXTERNAL/fcm/bin/../lib/Fcm/Build.pm line 597
->Make: 10 seconds
->TOTAL: 18 seconds
Build failed on Mon Oct  3 09:59:21 2011.
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG
/workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES

Réponse de Christian

Salut Pierre,

J'ai jeté un coup d'oeil sur les routines. C'est pas un pb de libraires NetCDF !!!
Il est là le pb
> ld: 0711-317 ERROR: Undefined symbol: .dia_sub_
Tu fais un call de dia_sub dans step.F90 alors qu'elle n'y est pas définie. Tu dois faire le USE diasub dans step.F90 ou plus proprement dans step_oce.F90
- cp OPA_SRC/step_oce.F90 MY_SRC
- ajout du USE diasub dans step_oce
- suppression du USE dia_sub dans nemogcm.F90

Et ça devrait marcher

Christian

Pour les traceurs : création de routines et modifications de routines existantes.

Pour la subduction des traceurs liée à l'advection : création de trcsub.F90 contenant deux sous-routines trc_sub_adv et trc_sub_adv_eiv calculant respectivement la subduction liée à l'advection seule et à la variation de MLD, et la subduction liée à l'advection + la diffusion Gent et Mc Williams.

Ces sous-routines sont appelées dans trcadv.F90 successivement après intégration aux vitesses de la partie Gent et Mc Williams. Les diagnostics sont intégrés dans la variable trsub(jpi,jpj,11). La numération est la suivante: Subu : 1. Subv : 2. Subw : 3. Subh : 4. Subueiv : 5. Subveiv : 6. Subweiv : 7.

Pour la subdcution liée à la diffusion verticale: modification de la routine trczdf.F90. Ajout du diagnostic à la fin par intégration sur la colonne dans la MLD de la diffusion verticale. Le diag Subdz est sauvegardé dans la variable trsub, avec l'index 8.

Pour la subduction liée à la diffusion horizontale : modification de la routine traldf_iso.F90. Ajout du diagnostic pour les 3 composantes de la diffusion (horizontales et verticales). Les diag sont sauvegardés comme suit dans trsub : Subdisoz : 11. Subdisov : 10. Subdisou : 9.

Commentaire de Christian

Bonjour Pierre,

J'ai codé les sorties des diagnostics de subduction en utilisant la nouvelle interface I/O ( key_iomput ).

Je me suis permis d'apporter quelques modifications sur la structure des routines afin qu'elles soient plus orthogonales :

- j'ai défini des indices fixes pour les diag de subduction ( exp. jpsub_xad = 1, jpsub_yad = 2 etc...)
- j'ai rajouté dans trcsub.F90 2 nouvelles subroutines ( trc_sub_ldf & trc_sub_zdf ) qui calculent les diag de subduction de diffusion latérale et verticale. En fait j'ai supprimé le calcul dans traldf_iso.F90 et dans trczdf.F90
- j'ai enfin codé les sorties dans iom.F90 pour les noms des fichiers et dans trcwri.F90 pour les diag.
   * un fichier *diasub.nc pour les masses d'eau
   * un fichier par traceur ( *dicsub.nc, *alksub.nc, *oxysub.nc, *no3sub.nc,...).

Pour l'instant, je n'ai défini que 4 traceurs dans le fichier iodef.xml ; je n'ai pas eu la patience de le faire pour les 24.

J'ai juste testé la compilation avec et sans la clé key_diasub et c'est OK. Tout est sous CONFIG/ORCA2_OFF_PISCES/MY_SRC, y compris le fichier iodef.xml. 

je n'ai pas vérifié les unités dans le fichier iodef.xml ; il faudra sans doute les corriger

   SUBROUTINE trc_ldf( kt )
      !!----------------------------------------------------------------------
      !!                  ***  ROUTINE tra_ldf  ***
      !! 
      !! ** Purpose :   compute the lateral ocean tracer physics.
      !!
      !!----------------------------------------------------------------------
      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index
      !!
      INTEGER            :: jn
      CHARACTER (len=22) :: charout
      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::   ztrtrd
      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::   ztfu, ztfv, ztfw
      !!----------------------------------------------------------------------

 
     !!! bla , bla, bla
     !!! bla , bla, bla
 

      IF( lk_diasub ) THEN
         ALLOCATE( ztfu(jpi,jpj,jpk,jptra), ztfv(jpi,jpj,jpk,jptra), ztfw(jpi,jpj,jpk,jptra) ) 
         ztfu(:,:,:,:) = 0   ;   ztfv(:,:,:,:) = 0   ;  ztfw(:,:,:,:) = 0.
      ENDIF

      SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend
      CASE ( 0 )   ;   CALL tra_ldf_lap   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level laplacian
      CASE ( 1 )   
         IF( .NOT. lk_diasub ) THEN
            CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )  ! rotated laplacian 
         ELSE
            CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0, ztfu, ztfv, ztfw )  ! rotated laplacian 
            CALL trc_sub_ldf   ( ztfu, ztfv, ztfw )
         ENDIF
      CASE ( 2 )   ;   CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level bilaplacian
      CASE ( 3 )   ;   CALL tra_ldf_bilapg( kt, 'TRC',             trb, tra, jptra            )  ! s-coord. horizontal bilaplacian

     !!! bla , bla, bla
     !!! bla , bla, bla

   END SUBROUTINE trc_ldf

   SUBROUTINE trc_zdf( kt )
      !!----------------------------------------------------------------------
      !!                  ***  ROUTINE trc_zdf  ***
      !!
      !! ** Purpose :   compute the vertical ocean tracer physics.
      !!---------------------------------------------------------------------

      !!! bla , bla, bla
      !!! bla , bla, bla 

      IF( l_trdtra .OR. lk_diasub )   THEN                      ! save the vertical diffusive trends for further diagnostics
         DO jn = 1, jptra
            DO jk = 1, jpkm1
               ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dt(jk) ) - ztrtrd(:,:,jk,jn)
            END DO
            IF( l_trdtra )   THEN                      ! save the vertical diffusive trends for further diagnostics
               CALL trd_tra( kt, 'TRC', jn, jptra_trd_zdf, ztrtrd(:,:,:,jn) )
            ENDIF
         END DO
         IF( lk_diasub ) THEN
            CALL trc_sub_zdf( ztrtrd )
         ENDIF
         DEALLOCATE( ztrtrd )
      ENDIF

     !!! bla , bla, bla
     !!! bla , bla, bla

   END SUBROUTINE trc_zdf

   SUBROUTINE trc_wri( kt )
      !!---------------------------------------------------------------------
      !!                     ***  ROUTINE trc_wri  ***
      !! 
      !! ** Purpose :   output passive tracers fields and dynamical trends
      !!---------------------------------------------------------------------
      INTEGER, INTENT( in ) :: kt
      !!---------------------------------------------------------------------

      !
      CALL iom_setkt  ( kt + nn_dttrc - 1 )       ! set the passive tracer time step
      CALL trc_wri_trc( kt                )       ! outputs for tracer concentration
      CALL trc_wri_sub( kt                )       ! outputs for diag subduction
      CALL iom_setkt  ( kt                )       ! set the model time step
      !
   END SUBROUTINE trc_wri

   SUBROUTINE trc_wri_sub( kt )
      !!----------------------------------------------------------------------
      !!                     ***  ROUTINE trc_wri_sub  ***
      !!
      !! ** Purpose :   output of passive tracer : advection-diffusion  subduction subduction
      !!
      !!----------------------------------------------------------------------
      INTEGER, INTENT( in ) ::   kt          ! ocean time-step
      !!
      CHARACTER(len=8)  :: cltra1
      CHARACTER(len=20)  :: cltra
      INTEGER            ::   jn, jl
      !!----------------------------------------------------------------------

      DO jn = 1, jptra
         IF( ( jn == jpdic ) .OR. ( jn == jptal ) .OR. ( jn == jpoxy ) .OR. ( jn == jpno3 ) ) THEN 
            DO jl = 1, jptrsub
               IF( jl == jpsub_xad ) WRITE (cltra1,'("xad_sub_",8a)')   ! x advection for tracer
               IF( jl == jpsub_yad ) WRITE (cltra1,'("yad_sub_",8a)')   ! y advection for tracer
               IF( jl == jpsub_zad ) WRITE (cltra1,'("zad_sub_",8a)')   ! z advection for tracer
               IF( jl == jpsub_mld ) WRITE (cltra1,'("mld_sub_",8a)')   ! mld for tracer
               IF( jl == jpsub_xlf ) WRITE (cltra1,'("xlf_sub_",8a)')   ! x lateral diffusion for tracer
               IF( jl == jpsub_ylf ) WRITE (cltra1,'("ylf_sub_",8a)')   ! y lateral diffusion for tracer
               IF( jl == jpsub_zlf ) WRITE (cltra1,'("zlf_sub_",8a)')   ! z lateral diffusion for tracer
               IF( jl == jpsub_zdf ) WRITE (cltra1,'("zdf_sub_",8a)')   ! z vertical diffusion for tracer
               IF( jl == jpsub_xei ) WRITE (cltra1,'("xei_sub_",8a)')   ! x gent velocity for tracer
               IF( jl == jpsub_yei ) WRITE (cltra1,'("yei_sub_",8a)')   ! y gent velocity for tracer
               IF( jl == jpsub_zei ) WRITE (cltra1,'("zei_sub_",8a)')   ! z gent velocity for tracer
               ! write the trends
               cltra = TRIM(cltra1)//TRIM(ctrcnm(jn))
               CALL iom_put( cltra, trsub(:,:,jn,jl) )
            END DO
        ENDIF
      END DO
      !
   END SUBROUTINE trc_wri_sub

vargas043 - /workgpfs/rech/eee/reee030/PIERREK/NEMOGCM_trunk_r2842/CONFIG/ORCA2_OFF_PISCES/MY_SRC : more iodef.xml 
<?xml version="1.0"?>
<simulation> 
  
  <context id="nemo">

    <!-- $id$ -->
 
    <!-- 
    bla bla bla

      <!-- trend subduction -->
     <group id="diasub"  grid_ref="grid_T">
       <field id="subrate_xad"      description="X advective term for subduction rate"        unit="m/s" />
       <field id="subrate_yad"      description="Y advective term for subduction rate"        unit="m/s" />
       <field id="subrate_zad"      description="Z advective term for subduction rate"        unit="m/s" />
       <field id="subrate_mld"      description="MLD term for subduction rate"        unit="m/s" />
     </group>

     <group id="dicsub"  grid_ref="grid_T">
       <field id="xad_sub_DIC"      description="X advective term for subduction rate"        unit="m/s" />
       <field id="yad_sub_DIC"      description="Y advective term for subduction rate"        unit="m/s" />
       <field id="zad_sub_DIC"      description="Z advective term for subduction rate"        unit="m/s" />
       <field id="mld_sub_DIC"      description="MLD term for subduction rate"        unit="m/s" />
       <field id="xei_sub_DIC"      description="X gent term for subduction rate"        unit="m/s" />
       <field id="yei_sub_DIC"      description="Y gent term for subduction rate"        unit="m/s" />
       <field id="zei_sub_DIC"      description="Z gent term for subduction rate"        unit="m/s" />
       <field id="xlf_sub_DIC"      description="X lateral diffusion term for subduction rate"        unit="m/s" />
       <field id="ylf_sub_DIC"      description="Y lateral diffusion term for subduction rate"        unit="m/s" />
       <field id="xlf_sub_DIC"      description="Z lateral diffusion term for subduction rate"        unit="m/s" />
       <field id="zdf_sub_DIC"      description="vertical diffusion term for subduction rate"        unit="m/s" />
     </group>

      bla bla bla

5 - Diags on-line (responsable PK)

Présents : Marina Léyy, Laure Resplandy, Laurent Bopp, Françoise Pinsard, Christian Ethé, Pierre Karleskind (téléphone)

Il reste une vingtaine de jours pour la phase 1 de la prestation.

Marina indique avoir réglé les factures et considère donc qu’un rapport intérmédiaire n’est pas nécessaire.

Pierre indique avoir codé les diagnostics dans NEMO et les avoir testés d’abord en OFF-LINE, puis en ON-LINE.

Simulation à effectuer dans la suite de la phase 1 :

A partir d’un restart disponible (voir Christian pour un restart après un spin-up de 1000 ans pour la dynamique), un spin-up de 50 ans avec l’ensemble du modèle, hors diagnostic de subduction, est à réaliser.

1er run : Run climato. Un diagnostic de subduction sera réalisé sur une année de simulation avec des forçages climatologiques. Un restart, dit restart-climato, sera généré à la fin de cette année.

2e run : Run interannuel avec CO2 naturel. A partir du restart-climato, les forçages des années 1958 à 2008 seront répétés 3 fois (150 ans, de 1858 à 2008) avec une pCO2 fixée à la valeur pré-industrielle.

3e run : Run interannuel avec CO2 anthropique. A partir du restart-climato, A partir du restart-climato, les forçages des années 1958 à 2008 seront répétés 3 fois (150 ans, de 1858 à 2008) avec une pCO2 augmentant progressivement pour coller à son évolution observée au cours des 150 dernières années.

Les diagnostics seront les suivants :

  • diagnostics de subduction :
    • DIC
    • ALK
    • OXY
    • TPOC=PHY, PH2, ZOO, ZO2, POC, GOC
    • DOC
    • CaCO3
    • NO3
    • PO4
    • Si
    • FER (Fer dissous)
  • Flux air-mer de CO2
  • Sédimentation à la base de la couche de mélange (ce terme est à coder) : Somme de la sédimentation de POC et de GOC.
  • Diagnostics standards de NEMO

Pour les simulations 2 et 3, de 1858 à 1958, les moyennes annuelles seront conservées, et de 1958 à 2008, les moyennes mensuelles et annuelles seront conservées.

Pour le run climato, des cartes en moyenne annuelle seront établies pour le DIC, le TPOC, le DOC et le CaCO3:

  • l’advection totale,
  • l’advecion de Gent et Mc. Williams
  • la diffusion verticale + la MLD
  • la diffusion isoneutrale
  • la subduction totale

Par ailleurs, on sortira les cartes annuelles de sédimentation à la base de la couche de mélange et du flux air-mer de CO2.

Un script IDL pour la lecture et l’affichage de données issues d’un fichier NetCDF NEMO sera mis à disposition sur la Forge du projet.

  1. Travaux à prévoir dans la phase 2

La réucpération et la mise sur une grille régulière de 1° (WOA) sera effectuée par Françoise. Les données seront issues des sources suivantes :

  • DIC, ALK, OXY : GLODAP
  • DOC : Loisel fait un stage de M2 pour mettre au point un produit. Les résultats seront disponibles en juin
  • pCO2 : Takahashi
  • MLD : Produits de Boyer-Montégut

Les diagnostics de subduction, diagnostics off-line, à partir des données seront codés en IDL. Un début de script est disponible et devra être développé. Les 11 termes de subduction des traceurs devront être codés.

A partir des sorties standards du run interannuel avec CO2 anthropique, un diagnostic de subduction sera effectué et comparé avec le diagnostic on-line de cette même simulation. On établira ainsi le biais lié à l’utilisation de diagnostics de subduction off-line.

On comparera ensuite les diagnostics off-line issus du modèle avec les diagnostics off-line issus des données.

La phase 3 est à adapter en conséquent. La propale d'Altran ouest sera réécrite pour tenir compte de la définition plus précise de la phase 2 et renvoyée à Marina dans le courant de la semaine du 12/12/11.

6 - Test off-line sur la resolution temporelle des champs lus (responsable PK)

7 - Run climato pour le calcul des diagnostics de subduction offline (responsable CE)

La simulation d'une année est la suite du run climato de 50 ans réalisé par PK. Le code est le même à l'exception de qq routines :

  • iom.F90 : rajout de la fréquence de sortie de 15j
  • trcwri.F90 : output des champs ( PHY+PHY2, ZOO+ZOO2, POC+GOC)
  • p4zsink.F90 : output de l'export du carbone et de la calcite sur toute la colonne d'eau

Code : vargas:/workgpfs/rech/fry/rfry154/PIERREK/NEMOGCM_trunk_r2842/

config : CONFIG/ORCA2_LIM_PISCES/EXPCLIM_DIAG_OFF

Restart : ulam:/u/rech/fry/rfry154/PIERREK/SUBDUCTION/TEST/ORCA2_50ANS_00273750_restart*(.nc,_ice.nc,_trc.nc)

Outputs : ulam:/u/rech/fry/rfry154/PIERREK/SUBDUCTION/CLIM_DIAG_OFF

  • fréquences : 1D, 5D, 15D, 1M, 1Y
  • grid_T : T, S, MLD
  • grid_U : U, U*
  • grid_V : V, V*
  • grid_W : W, W*, Kz
  • ptrc_T : DIC, Alkalini, CaCO3, DOC, PHY+PHY2, ZOO+ZOO2, POC+GOC
  • diad_T : Cflx, EXPC, EXPCAL

Pour info, les diag de subduction obtenus avec le run climato fait par Pierre sont disponibles là : ulam:/u/rech/fry/rfry154/PIERREK/SUBDUCTION/CLIM

8 - Run interannuels (responsable CE)

  • NEMO 3.4 / config ORCA2_LIM2_PISCES
  • Forcage CORE nominal year
  • spin-up :
    • restart dynamique : provenant d'un spinup de 1000 ans fait par gurvan & Simona
    • un vieux restart d'Olivier pour PISCES - 2400

+ 50 avec le nouveau code incluant diagnostique

  • 1 cycle CORE de PIND + 2 cycles CORE de PIND et 2 cycles CORE ANTH

EXPPIND :

  • Job started : 18280101
  • Job ended : 20071231
  • Output files are available in

/u/rech/fry/rfry154/IGCM_OUT/ORCA2_LIM2_PISCES/EXPPIND

EXPANTH :

  • Job started : 18880101
  • Job ended : 20071231
  • Output files are available in

/u/rech/fry/rfry154/IGCM_OUT/ORCA2_LIM2_PISCES/EXPANTH

use "/u/rech/fry/rfry154/IGCM_OUT/ORCA2_LIM2_PISCES/EXPPIND/mesh_mask.nc"
use "/u/rech/fry/rfry154/IGCM_OUT/ORCA2_LIM2_PISCES/EXPPIND/MBG/Analysis/TS_YE/EXPPIND_18280101_20071231_1Y_Cflx.nc"
use "/u/rech/fry/rfry154/IGCM_OUT/ORCA2_LIM2_PISCES/EXPANTH/MBG/Analysis/TS_YE/EXPANTH_18880101_20071231_1Y_Cflx.nc"
let flx_pind=cflx[d=2]*86400*365*12*e1t[d=1,l=1]*e2t[d=1,l=1]*tmask[d=1,k=1,l=1]
let flx_anth=cflx[d=3]*86400*365*12*e1t[d=1,l=1]*e2t[d=1,l=1]*tmask[d=1,k=1,l=1]
define axis/T="1-JUL-1828":"1-JUL-2007":1/unit=year tpind
define axis/T="1-JUL-1888":"1-JUL-2007":1/unit=year tanth
let cpind=flx_pind[gt=tpind@asn]
let canth=flx_anth[gt=tanth@asn]
plot/GRATICULE=dash/THICKNESS=2/vlimit=-2:1.5:0.5   cpind[i=@sum,j=@sum]/1e15
plot/GRATICULE=dash/THICKNESS=2/vlimit=-2:1.5:0.5/o canth[i=@sum,j=@sum]/1e15
Last modified 4 years ago Last modified on 05/10/13 16:25:35