Changes between Version 2 and Version 3 of ticket/0846


Ignore:
Timestamp:
2011-07-20T16:18:16+02:00 (9 years ago)
Author:
vichi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0846

    v2 v3  
    99---- 
    1010=== Description === 
    11 Branch to develop a common interface for other biogeochemical models not included in the TOP directory.  
     11Branch to develop a common interface for other biogeochemical models not included in the TOP directory. The idea is to provide an as much as possible seamless interface for more complex biogeochemical models that do not fit into the TOP MY_TRC framework. This will consider the development done by CMCC and MetOffice (Karen Edwards) integrating with the existing TOP interface. 
     12 
     13=== Current state === 
     14Currently, BGC models are resolved within the SMS part (trcsms.F0) and that the transport (trc_trp) and output (trc_wri, trc_dia and trc_rst) is done identically for each model , assuming that all the memory layout is provided by NEMO through the tra and trn arrays and the number of passive tracers jptra.  
     15This is a good solution for models that are developed within NEMO but does not fit well with more complex biogeochemical models that are also used with other OGCMs. This is the case for the BFM, which has a wide growing community of users and therefore has an independent development with a specific coding structure. For models like the BFM (CMCC and INGV) and ERSEM (MetOffice and NERC) the common solution (independently developed) was to add an alternative set of routines for stepping and output 
     16 
     17This is an excerpt from a modified trcstp.F90 for the BFM case 
     18 
     19{{{ 
     20... 
     21#if defined key_bfm 
     22   !--------------------------------------------- 
     23   ! Check the main BFM flag 
     24   !--------------------------------------------- 
     25 
     26         CALL trc_bfm( kt )           ! main call to BFM 
     27 
     28         CALL trc_trp_bfm( kt )       ! transport of BFM tracers 
     29 
     30         CALL trc_dia_bfm( kt )       ! diagnostic output for BFM 
     31 
     32#else 
     33 
     34... 
     35 
     36         tra(:,:,:,:) = 0.e0 
     37         ! 
     38         IF( kt == nit000 .AND. lk_trdmld_trc  )  & 
     39            &                      CALL trd_mld_trc_init        ! trends: Mixed-layer 
     40                                   CALL trc_rst_opn( kt )       ! Open tracer restart file  
     41         IF( lk_iomput ) THEN  ;   CALL trc_wri( kt )           ! output of passive tracers 
     42         ELSE                  ;   CALL trc_dia( kt ) 
     43         ENDIF 
     44                                   CALL trc_sms( kt )           ! tracers: sink and source 
     45                                   CALL trc_trp( kt )           ! transport of passive tracers 
     46         IF( kt == nit000 )     CALL iom_close( numrtr )     ! close input  passive tracers restart file 
     47         IF( lrst_trc )            CALL trc_rst_wri( kt )       ! write tracer restart file 
     48         IF( lk_trdmld_trc  )      CALL trd_mld_trc( kt )       ! trends: Mixed-layer 
     49 
     50}}} 
     51 
     52Actually MetOffice is currently using a hybrid approach mixing the standard SMS approach with a specific key. 
    1253 
    1354=== Strategy === 
    14 The idea is to merge the development done by CMCC and MetOffice (Karen Edwards) to obtain a common interface for complex biogeochemical models. 
     55To accommodate this kind of models it is required to add flexibility to the code, like allowing the possibility to not use the output/restart facilities of NEMO and to have different combinations of transport schemes. 
     56The major issue here is the loop over the number of tracers, which is not possible within the my_trc framework and therefore requires another tracer stepping scheme. It is indeed possible to use trn(tra) with more complex models (Karen is doing this with ERSEM, while NERC/PML is not). However, this is not likely with the BFM as it allows to define the number of variables dynamically and it builds its own structure separately with specific input/output routines.  
     57Another issue is that it is important to keep the sedimentation rates separated from vertical advection as MPDATA schemes are not mass conserving. 
     58I think we can work out a common solution within the framework of my_trc, although I would propose to have an extended my_trc that allows more flexibility. Whether to achieve this through additional logical flags or by means of macros is a matter of discussion. I guess we all agree that it makes no sense to have a different key for each new model, though we also need to realize that we'll have to accommodate two different coupling strategies, one for SMS models and one for "ecosystem" models (which may also incorporate benthic systems like the ones we use now). 
     59 
     60One (very) simple solution is to have only an additional key to accommodate any BGC model that does not use at all the NEMO memory structure and facilities. 
     61This would only involve two changes in the NEMO code, during the initialization step and during the time stepping 
     62 
     63TO BE COMPLETED 
     64 
     65The strategy is open for discussion because it is not urgent matter in the 2011 work plan, but it is important that we find a common way forward that will maximize all development efforts and the research carried on by the community of ecosystem modelling. 
     66 
     67=== Status === 
     68On the dev branch we have now committed the method we currently use and that has to be modified. It is just a placeholder for the status quo at CMCC and very similar to NERC and MetOffice.   
    1569 
    1670---- 
     
    57111---- 
    58112=== IPR issues === 
    59 ||Has the code been wholly (100%) produced by NEMO developers staff working exclusively on NEMO?||!'''YES/ NO !'''|| 
     113||Has the code been wholly (100%) produced by NEMO developers staff working exclusively on NEMO?||!''' NO !'''|| 
    60114 
    61 If No: 
    62  
    63  * Identify the collaboration agreement details 
    64  * Ensure the code routine header is in accordance with the agreement, (Copyright/Redistribution etc).Add further details here if required..........