New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 1596 – NEMO

Changeset 1596


Ignore:
Timestamp:
2009-08-10T12:11:36+02:00 (15 years ago)
Author:
flavoni
Message:

Changes in opa9.card and opa9.driver to have possibility to do interannual runs, see ticket : #524

Location:
branches/libIGCM/ORCA2_LIM/IGCM00/COMP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/libIGCM/ORCA2_LIM/IGCM00/COMP/opa9.card

    r1395 r1596  
    44[UserChoices] 
    55OPA_NDT_DAY=15 
    6 #============================ 
    7 #--v3, v3_1 
    8 OPA_version=v3_1 
    9 #============================ 
     6#============================================================== 
     7#-- Name of directory for COMMON ACCOUNT at idris or CCRT 
     8#-- available directories are:  v3, v3_1 
     9#-- related to NEMO_tag_revision (nemo_v3, nemo_v3_1) 
     10#-- NOTE: if you use your own directory you have to comment it 
     11# OPA_version=v3_1 
     12#============================================================== 
     13 
     14#-- if you run interannual is "y", if not is "n" 
     15Interannual_Run=y 
     16 
     17[Interannual] 
     18#===================================================================== 
     19#-- Surface Boundary Condition original files name ( get by the job ) 
     20#===================================================================== 
     21#-- NOTE: MANDATORY STRUCTURE OF FILE NAMES GET BY THE JOB :  
     22#-- "basename_yyyy.nc"     ( for interannual data ) 
     23#-- "basename.nc"    ( for climatologycal data ) 
     24#-- MANDATORY: NAMES USED IN List_jobsbc VARIABLE MUST BE ONLY THE BASENAME 
     25 
     26List_jobsbc=(radlw_DFS4-ORCA2, radsw_DFS4-ORCA2, q2_DFS4-ORCA2, t2_DFS4-ORCA2, u10_DFS4-ORCA2, v10_DFS4-ORCA2, snow_DFS4-ORCA2, precip_DFS4-ORCA2) 
     27 
     28#========================================================================================== 
     29#-- Surface Boundary Condition files name expected by NEMO ( same as the ones in namelist ) 
     30#========================================================================================== 
     31#-- NOTE: 2 possible cases : 
     32#-- 1) put in List_runsbc file names different from List_jobsbc but identical to the ones in namelist 
     33#-- 2) leave List_runsbc empty so NEMO will read file names specified in List_jobsbc variable above 
     34 
     35List_runsbc=(qlw_core, qsw_core, q2_core, t2_core, u10_core, v10_core, snow_core, precip_core) 
    1036 
    1137[InitialStateFiles] 
     
    2147            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/data_1m_potential_temperature_nomask.nc, .), \ 
    2248            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/data_1m_salinity_nomask.nc, .), \ 
    23             (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/flx.nc, .),\ 
    2449            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/geothermal_heating.nc, .),\ 
    2550            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/runoff_1m_nomask.nc, .),\ 
    2651            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/sss_data.nc, .),\ 
    2752            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/sst_data.nc, .),\ 
    28             (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/taux_1m.nc, .),\ 
    29             (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/tauy_1m.nc, .),\ 
    3053            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/subbasins.nc, .) 
    3154 
     
    5073        (mesh_mask.nc     , ${R_OUT_OCE_O}/${config_UserChoices_JobName}_mesh_mask.nc, NONE),\ 
    5174        (output.abort.nc  , ${R_OUT_OCE_D}/${PREFIX}_output.abort.nc, NONE),\ 
    52         (output.init.nc   , ${R_OUT_OCE_O_I}/${config_UserChoices_JobName}_${PeriodDateBegin}_output.init.nc, NONE),\ 
     75        (output.init.nc   , ${R_OUT_OCE_O_I}/${config_UserChoices_JobName}_${PeriodDateBegin}_output.init.nc, NONE) 
     76 
    5377 
    5478[Post_1M_grid_T] 
  • branches/libIGCM/ORCA2_LIM/IGCM00/COMP/opa9.driver

    r1404 r1596  
    5252    (( DaysSinceJC = $( IGCM_date_DaysSinceJC ${DateBegin} ) + 1 )) 
    5353 
     54    # Definition from opa9.card of List_jobsbc and List_runsbc used to do to interannual and climatological runs  
     55   IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/COMP/opa9.card Interannual List_jobsbc 
     56   IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/COMP/opa9.card Interannual List_runsbc 
     57        set -A ListFormulationJobsbc -- \${opa9_Interannual_Listjobsc${opa9_Interannual_List_jobsbc}[*]} 
     58        set -A ListFormulationRunsbc -- \${opa9_Interannual_Listrunsbc${opa9_Interannual_List_runsbc}[*]} 
     59 
    5460    IGCM_debug_PopStack "OCE_Initialize" 
    5561} 
     
    5864function OCE_Update 
    5965{ 
    60 ###    set -vx 
    6166    IGCM_debug_PushStack "OCE_Update" 
     67 
     68    # Interannual run 
     69    # In this case job need to calculate previous and following year and give, and if every run needs to add "_y" before every year  
     70    if [ X${opa9_UserChoices_Interannual_Run} = Xy ] ; then 
     71 
     72   typeset file fileo 
     73 
     74        eval NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 
     75 
     76   (( i = 0 )) 
     77   while [ $i -lt ${NbFileInter} ] ; do 
     78       eval file=${opa9_Interannual_List_jobsbc[$i]} 
     79       eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
     80       eval jobsbc_file_y=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
     81       eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
     82     # Copy of List_jobsbc in List_runsbc if this last one is empty  
     83            if [ X${opa9_Interannual_List_runsbc[$i]} = X${NULL_STR} ] ; then 
     84         eval fileo=${opa9_Interannual_List_jobsbc[$i]} 
     85               eval runsbc_file_ym1=${file}_y$(( year - 1 )).nc 
     86               eval runsbc_file_y=${file}_y${year}.nc 
     87               eval runsbc_file_yp1=${file}_y$(( year + 1 )).nc 
     88       else 
     89         eval fileo=${opa9_Interannual_List_runsbc[$i]} 
     90               eval runsbc_file_ym1=${fileo}_y$(( year - 1 )).nc 
     91               eval runsbc_file_y=${fileo}_y${year}.nc 
     92               eval runsbc_file_yp1=${fileo}_y$(( year + 1 )).nc 
     93      fi 
     94 
     95       if [ X${Period} = X1 ] ; then 
     96      if [ ${month} -eq 01 ] ; then 
     97          IGCM_sys_Get ${jobsbc_file_ym1} ${runsbc_file_ym1} 
     98      fi 
     99      if [ ! -f ${runsbc_file_y} ] ; then 
     100          IGCM_sys_Get ${jobsbc_file_y} ${runsbc_file_y} 
     101      fi 
     102      if [ ! -f ${runsbc_file_yp1} ] ; then 
     103          IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} 
     104      fi 
     105       else  
     106      if [ ! -f ${runsbc_file_yp1} ] ; then 
     107          IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} 
     108      fi 
     109       fi  
     110 
     111       (( i = i + 1 )) 
     112   done 
     113    # End interannual 
     114    elif [ X${opa9_UserChoices_Interannual_Run} = Xn ] ; then 
     115    # Climatological run 
     116       typeset file fileo 
     117 
     118       eval NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 
     119 
     120        (( i = 0 )) 
     121        while [ $i -lt ${NbFileInter} ] ; do 
     122            eval file=${opa9_Interannual_List_jobsbc[$i]} 
     123            eval jobsbc_file=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}.nc 
     124            eval NbFilerunsbc=${#opa9_Interannual_List_runsbc[*]} 
     125            if [ ${NbFilerunsbc} -eq 0  ] ; then 
     126                eval fileo=${opa9_Interannual_List_jobsbc[$i]} 
     127                eval runsbc_file=${file}.nc 
     128            else 
     129                eval fileo=${opa9_Interannual_List_runsbc[$i]} 
     130                eval runsbc_file=${fileo}.nc 
     131            fi 
     132            IGCM_sys_Get ${jobsbc_file} ${runsbc_file} 
     133            (( i = i + 1 )) 
     134   done 
     135    fi 
     136    # End climatological 
    62137 
    63138    NbFreq=$( echo ${config_OCE_WriteFrequency} | wc -w ) 
Note: See TracChangeset for help on using the changeset viewer.