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 1811 – NEMO

Changeset 1811


Ignore:
Timestamp:
2010-03-19T15:35:07+01:00 (14 years ago)
Author:
flavoni
Message:

change of opa9.driver and opa9.card to do Interannual run with PeriodLength? != 1, see ticket: #654

Location:
trunk/CONFIG/ORCA2_LIM/IGCM00/COMP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CONFIG/ORCA2_LIM/IGCM00/COMP/opa9.card

    r1764 r1811  
    2121 
    2222[Interannual] 
    23 #===================================================================== 
    24 #-- Surface Boundary Condition original files name ( get by the job ) 
    25 #===================================================================== 
     23#================================================================================================== 
     24#-- Surface Boundary Condition original files name ( get by the job ) same as the ones in namelist 
     25#================================================================================================== 
    2626#-- NOTE: MANDATORY STRUCTURE OF FILE NAMES GET BY THE JOB :  
    2727#-- "basename_yyyy.nc"     ( for interannual data ) 
     
    3131# default climatology, bulk_clio:  
    3232List_jobsbc=(flx, taux_1m, tauy_1m) 
    33 # example for interannual, bulk core: 
     33# example for interannual, bulk core, forcing CORE2: 
     34#List_jobsbc=(u_1O_orca2, v_1O_orca2, ncar_rad_1O_orca2, t_10_orca2, q_10_orca2, ncar_precip_orca2) 
     35# example for interannual, bulk core, forcing DRAKKAR: 
    3436#List_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) 
    3537 
    36 #========================================================================================== 
    37 #-- Surface Boundary Condition files name expected by NEMO ( same as the ones in namelist ) 
    38 #========================================================================================== 
    39 #-- NOTE: 2 possible cases : 
    40 #-- 1) put in List_runsbc file names different from List_jobsbc but identical to the ones in namelist 
    41 #-- 2) leave List_runsbc empty so NEMO will read file names specified in List_jobsbc variable above 
    42  
    43 # default climatology, bulk_clio:  
    44 List_runsbc=() 
    45 # example for interannual, bulk core: 
    46 #List_runsbc=(qlw_core, qsw_core, q2_core, t2_core, u10_core, v10_core, snow_core, precip_core) 
    4738 
    4839[InitialStateFiles] 
     
    6253            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/sss_data.nc, .),\ 
    6354            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/sst_data.nc, .),\ 
    64             (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/subbasins.nc, .) 
     55       (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/subbasins.nc, .),\ 
     56            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/chlaseawifs_c1m-99-05_smooth_ORCA_R2.nc, chlorophyll.nc),\ 
     57            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/Tides_K1_drg_ORCA_R2.nc, K1rowdrg.nc),\ 
     58            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/Tides_M2_drg_ORCA_R2.nc, M2rowdrg.nc),\ 
     59            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/tmaskitf_ORCA2_bis.nc, mask_itf.nc),\ 
     60            (${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/kRGB61.txt, .) 
     61 
     62 
    6563 
    6664 
     
    7977List=   (${PREFIX_WF1}_grid_T.nc,         ${R_OUT_OCE_WF1}/${PREFIX}_${WF1}_grid_T.nc,               Post_1Y_grid_T),\ 
    8078        (${PREFIX_WF2}_grid_T.nc,         ${R_OUT_OCE_WF2}/${PREFIX}_${WF2}_grid_T.nc,               Post_1M_grid_T),\ 
    81         (${PREFIX_WF3}_grid_T.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_T.nc,               Post_5D_grid_T),\ 
    82         (${PREFIX_WF3}_grid_U.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_U.nc,               Post_5D_grid_U) ,\ 
    83         (${PREFIX_WF3}_grid_V.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_V.nc,               Post_5D_grid_V),\ 
    84         (${PREFIX_WF3}_grid_W.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_W.nc,               Post_5D_grid_W),\ 
     79        (${PREFIX_WF3}_grid_T.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_T.nc,               Post_1M_grid_T),\ 
     80        (${PREFIX_WF3}_grid_U.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_U.nc,               Post_1M_grid_U) ,\ 
     81        (${PREFIX_WF3}_grid_V.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_V.nc,               Post_1M_grid_V),\ 
     82        (${PREFIX_WF3}_grid_W.nc,         ${R_OUT_OCE_WF3}/${PREFIX}_${WF3}_grid_W.nc,               Post_1M_grid_W),\ 
    8583        (${PREFIX_WF4}_grid_T_0n180w.nc,  ${R_OUT_OCE_WF4}/${PREFIX}_${WF4}_grid_T_0n180w.nc,        NONE ),\ 
    8684        (${PREFIX_WF4}_grid_T_Eq.nc,      ${R_OUT_OCE_WF4}/${PREFIX}_${WF4}_grid_T_Eq.nc,            NONE ),\ 
     
    9189 
    9290 
     91[Post_1Y_grid_T] 
     92Patches = (Patch_20091030_histcom_time_axis) 
     93GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter) 
     94TimeSeriesVars = (sohtc300, sohefldo, soicecov, somxl010, sosaline, sossheig, sosstsst, sowaflcd, sowaflup) 
     95 
    9396[Post_1M_grid_T] 
    9497Patches = (Patch_20091030_histcom_time_axis) 
     
    9699TimeSeriesVars = (sohtc300, sohefldo, soicecov, somxl010, sosaline, sossheig, sosstsst, sowaflcd, sowaflup) 
    97100 
    98 [Post_1Y_grid_T] 
    99 Patches = (Patch_20091030_histcom_time_axis) 
    100 GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter) 
    101 TimeSeriesVars = (sohtc300, sohefldo, soicecov, somxl010, sosaline, sossheig, sosstsst, sowaflcd, sowaflup) 
    102  
    103 [Post_5D_grid_T] 
    104 Patches = (Patch_20091030_histcom_time_axis) 
    105 GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter) 
    106 TimeSeriesVars = (sohtc300, sohefldo, soicecov, somxl010, sosaline, sossheig, sosstsst, sowaflcd, sowaflup) 
    107  
    108 [Post_5D_grid_U] 
     101[Post_1M_grid_U] 
    109102Patches = (Patch_20091030_histcom_time_axis) 
    110103GatherWithInternal = (nav_lon, nav_lat, depthu, time_counter) 
    111104TimeSeriesVars = (sozotaux) 
    112105 
    113 [Post_5D_grid_V] 
     106[Post_1M_grid_V] 
    114107Patches = (Patch_20091030_histcom_time_axis) 
    115108GatherWithInternal = (nav_lon, nav_lat, depthv, time_counter) 
    116109TimeSeriesVars = (sometauy) 
    117110 
    118 [Post_5D_grid_W] 
     111[Post_1M_grid_W] 
    119112Patches = (Patch_20091030_histcom_time_axis) 
    120113GatherWithInternal = (nav_lon, nav_lat, depthw, time_counter) 
  • trunk/CONFIG/ORCA2_LIM/IGCM00/COMP/opa9.driver

    r1764 r1811  
    4949    (( DaysSinceJC = $( IGCM_date_DaysSinceJC ${DateBegin} ) + 1 )) 
    5050 
    51     # Definition from opa9.card of List_jobsbc and List_runsbc used to do to interannual and climatological runs  
     51    # Definition from opa9.card of List_jobsbc used to do to interannual and climatological runs  
    5252   IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/COMP/opa9.card Interannual List_jobsbc 
    53    IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/COMP/opa9.card Interannual List_runsbc 
    5453        set -A ListFormulationJobsbc -- \${opa9_Interannual_Listjobsc${opa9_Interannual_List_jobsbc}[*]} 
    55         set -A ListFormulationRunsbc -- \${opa9_Interannual_Listrunsbc${opa9_Interannual_List_runsbc}[*]} 
    5654 
    5755    ##--Variables used for XMLIO_SERVER configuration file 
     
    7169    if [ X${opa9_UserChoices_Interannual_Run} = Xy ] ; then 
    7270 
    73    typeset file fileo 
    74  
    75         eval NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 
     71   typeset file  
     72 
     73   (( final_year =${InitYear} + ${PeriodLengthInYears} - 1 )) 
     74        NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 
     75 
     76        (( NbFileInter_tot=${#opa9_Interannual_List_jobsbc[*]} * ${PeriodLengthInYears} )) 
    7677 
    7778   (( i = 0 )) 
    78    while [ $i -lt ${NbFileInter} ] ; do 
    79        eval file=${opa9_Interannual_List_jobsbc[$i]} 
    80        eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
    81        eval jobsbc_file_y=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
    82        eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
    83      # Copy of List_jobsbc in List_runsbc if this last one is empty  
    84             if [ X${opa9_Interannual_List_runsbc[0]} = X${NULL_STR} ] ; then 
    85          eval fileo=${opa9_Interannual_List_jobsbc[$i]} 
    86                eval runsbc_file_ym1=${file}_y$(( year - 1 )).nc 
    87                eval runsbc_file_y=${file}_y${year}.nc 
    88                eval runsbc_file_yp1=${file}_y$(( year + 1 )).nc 
    89        else 
    90          eval fileo=${opa9_Interannual_List_runsbc[$i]} 
    91                eval runsbc_file_ym1=${fileo}_y$(( year - 1 )).nc 
    92                eval runsbc_file_y=${fileo}_y${year}.nc 
    93                eval runsbc_file_yp1=${fileo}_y$(( year + 1 )).nc 
    94       fi 
    95  
    96        if [ X${Period} = X1 ] ; then 
    97       if [ ${month} -eq 01 ] ; then 
    98           IGCM_sys_Get ${jobsbc_file_ym1} ${runsbc_file_ym1} 
     79 
     80   while [ ${year} -le ${final_year} ] ; do #copy in ONCE of ALL necessary files for all PeriodLength 
     81        
     82       while [ $i -lt ${NbFileInter} ] ; do 
     83       
     84      eval file=${opa9_Interannual_List_jobsbc[$i]} 
     85      # download (year-1) if it is first year and first month of run 
     86      if [ X${year} = X${InitYear} ] ; then   
     87            if [ X${Period} = X1 ] ; then 
     88                           if [ ${month} -eq 01 ] ; then 
     89                  # if year-1 does not exist create a dummy file (NEMO will use same year) 
     90                  eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
     91                  if  [ ! -f ${jobsbc_file_ym1} ] ; then 
     92                     eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
     93                     eval runsbc_file_ym1=${file}_noy.nc 
     94                  else 
     95                      eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 
     96                      eval runsbc_file_ym1=${file}_y$(( year - 1 )).nc 
     97                  fi 
     98 
     99                              IGCM_sys_Get ${jobsbc_file_ym1} ${runsbc_file_ym1} 
     100                           fi 
     101                    fi 
    99102      fi 
     103       
     104            # download year  
     105      eval jobsbc_file_y=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
     106      eval runsbc_file_y=${file}_y${year}.nc 
     107       
    100108      if [ ! -f ${runsbc_file_y} ] ; then 
    101109          IGCM_sys_Get ${jobsbc_file_y} ${runsbc_file_y} 
    102110      fi 
    103       if [ ! -f ${runsbc_file_yp1} ] ; then 
    104           IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} 
     111       
     112      # download (year+1) if it is last year of run 
     113      if [ X${year} = X${final_year} ] ; then    
     114    
     115          eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
     116          eval runsbc_file_yp1=${file}_y$(( year + 1 )).nc 
     117           
     118          if  [ ! -f ${runsbc_file_yp1} ] ; then 
     119          
     120              # if year+1 does not exist create a dummy file (NEMO will use same year) 
     121         if  [ ! -f ${jobsbc_file_yp1} ] ; then 
     122             eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 
     123                eval runsbc_file_ym1=${file}_noy.nc 
     124         else 
     125             eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 
     126             eval runsbc_file_ym1=${file}_y$(( year + 1 )).nc 
     127         fi 
     128         IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} 
     129          fi 
     130           
    105131      fi 
    106        else  
    107       if [ ! -f ${runsbc_file_yp1} ] ; then 
    108           IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} 
    109       fi 
    110        fi  
    111  
    112        (( i = i + 1 )) 
     132      (( i = i + 1 )) 
     133    
     134       done 
     135    
     136       (( year = year + 1 )) 
     137     
     138       (( i = 0 )) 
    113139   done 
    114140    # End interannual 
    115141    elif [ X${opa9_UserChoices_Interannual_Run} = Xn ] ; then 
    116142    # Climatological run 
    117        typeset file fileo 
     143       typeset file  
    118144 
    119145       eval NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 
     
    123149            eval file=${opa9_Interannual_List_jobsbc[$i]} 
    124150            eval jobsbc_file=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}.nc 
    125             if [ X${opa9_Interannual_List_runsbc[0]} = X${NULL_STR} ] ; then 
    126          eval fileo=${opa9_Interannual_List_jobsbc[$i]} 
    127                eval runsbc_file=${fileo}.nc 
    128        else 
    129          eval fileo=${opa9_Interannual_List_runsbc[$i]} 
    130                eval runsbc_file=${fileo}.nc 
    131       fi 
     151            eval runsbc_file=${file}.nc 
    132152 
    133153            IGCM_sys_Get ${jobsbc_file} ${runsbc_file} 
     
    224244   NEMO_END=$( echo $( awk "BEGIN { printf \"%0${PRECIS}d\",${OPA_NITEND} }" ) )  
    225245 
    226     sed -e "s%${PAT_CEXPER}%       cn_exp=\"${config_UserChoices_JobName}\"%" \ 
     246    sed -e "s%${PAT_CEXPER}%       cn_exp=\"${config_UserChoices_JobName}\"%"  \ 
    227247   -e "s%${PAT_NIT000}%       nn_it000=${OPA_NIT000}%"                    \ 
    228248   -e "s%${PAT_NITEND}%       nn_itend=${OPA_NITEND}%"                    \ 
    229    -e "s%${PAT_RESTAR}%       ln_rstart=${OPA_LRSTAR}%"                 \ 
     249   -e "s%${PAT_RESTAR}%       ln_rstart=${OPA_LRSTAR}%"                   \ 
    230250   -e "s%${PAT_NSTOCK}%       nn_stock=${OPA_NSTOCK}%"                    \ 
    231    -e "s%${PAT_NRSTAR}%       nn_rstctl=${OPA_NRSTDT}%"                    \ 
    232    -e "s%${PAT_NDATE0}%       nn_date0=${PeriodDateBegin}%"                \ 
     251   -e "s%${PAT_NRSTAR}%       nn_rstctl=${OPA_NRSTDT}%"                   \ 
     252   -e "s%${PAT_NDATE0}%       nn_date0=${PeriodDateBegin}%"               \ 
    233253   -e "s%${PAT_NMSH}%         nn_msh=${OPA_NMSH}%"                        \ 
    234    -e "s%${PAT_NLEAPY}%       nn_leapy=${OPA_NLEAPY}%"                 \ 
     254   -e "s%${PAT_NLEAPY}%       nn_leapy=${OPA_NLEAPY}%"                  \ 
    235255   namelist > namelist.tmp 
    236256 
    237257    IGCM_sys_Mv namelist.tmp namelist 
     258 
    238259 
    239260    # update xmlio_server.def 
Note: See TracChangeset for help on using the changeset viewer.