Changeset 7261


Ignore:
Timestamp:
2016-11-18T09:34:22+01:00 (4 years ago)
Author:
cbricaud
Message:

phaze the rest of NEMOGCM directory ( all except NEMO directory) of the CRS branch with nemo_v3_6_STABLE branch at rev 7213 (09-09-2016) (merge -r 5519:7213 )

Location:
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM
Files:
1 added
7 deleted
78 edited
28 copied

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/AMM12/EXP00/namelist_cfg

    r5602 r7261  
    200200/ 
    201201!----------------------------------------------------------------------- 
    202 &namobc        !   open boundaries parameters                           ("key_obc") 
    203 !----------------------------------------------------------------------- 
    204 / 
    205 !----------------------------------------------------------------------- 
    206202&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    207203!----------------------------------------------------------------------- 
     
    369365/ 
    370366!----------------------------------------------------------------------- 
     367&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     368!----------------------------------------------------------------------- 
     369/ 
     370!----------------------------------------------------------------------- 
    371371&namsol        !   elliptic solver / island / free surface 
    372372!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/C1D_PAPA/EXP00/namelist_cfg

    r5602 r7261  
    141141&namtra_qsr    !   penetrative solar radiation 
    142142!----------------------------------------------------------------------- 
     143!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     144!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
     145   sn_chl      ='chlorophyll_PAPASTATION', -1    , 'CHLA'    ,   .true.     , .true. , 'yearly'  , ''       , ''       , '' 
    143146/ 
    144147!----------------------------------------------------------------------- 
     
    173176!----------------------------------------------------------------------- 
    174177&namcla        !   cross land advection 
    175 !----------------------------------------------------------------------- 
    176 / 
    177 !----------------------------------------------------------------------- 
    178 &namobc        !   open boundaries parameters                           ("key_obc") 
    179178!----------------------------------------------------------------------- 
    180179/ 
     
    304303/ 
    305304!----------------------------------------------------------------------- 
     305&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     306!----------------------------------------------------------------------- 
     307/ 
     308!----------------------------------------------------------------------- 
    306309&namsol        !   elliptic solver / island / free surface 
    307310!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/GYRE/EXP00/namelist_cfg

    r5602 r7261  
    160160/ 
    161161!----------------------------------------------------------------------- 
    162 &namobc        !   open boundaries parameters                           ("key_obc") 
    163 !----------------------------------------------------------------------- 
    164 / 
    165 !----------------------------------------------------------------------- 
    166162&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    167163!----------------------------------------------------------------------- 
     
    304300/ 
    305301!----------------------------------------------------------------------- 
     302&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     303!----------------------------------------------------------------------- 
     304/ 
     305!----------------------------------------------------------------------- 
    306306&namsol        !   elliptic solver / island / free surface 
    307307!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/GYRE_BFM/EXP00/namelist_cfg

    r5602 r7261  
    165165/ 
    166166!----------------------------------------------------------------------- 
    167 &namobc        !   open boundaries parameters                           ("key_obc") 
    168 !----------------------------------------------------------------------- 
    169 / 
    170 !----------------------------------------------------------------------- 
    171167&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    172168!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/GYRE_XIOS/cpp_GYRE_XIOS.fcm

    r4373 r7261  
    1  bld::tool::fppkeys key_dynspg_flt key_ldfslp key_zdftke key_iomput key_mpp_mpi 
     1 bld::tool::fppkeys key_dynspg_flt key_ldfslp key_zdftke key_iomput key_mpp_mpi key_xios2 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist_cfg

    r5602 r7261  
    66!----------------------------------------------------------------------- 
    77   cn_exp      = "Agulhas" !  experience name  
    8    nn_itend    =     480   !  last  time step 
     8   nn_itend    =   10950   !  last  time step 
    99   nn_stock    =   10950   !  frequency of creation of a restart file (modulo referenced to 1) 
    1010   nn_write    =   10950   !  frequency of write in the output file   (modulo referenced to nn_it000) 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/iodef.xml

    r5602 r7261  
    153153  </context> 
    154154   
     155 <context id="1_nemo" time_origin="1950-01-01 00:00:00" > 
     156     
     157    <!-- $id$ --> 
     158     
     159    <!--  
     160============================================================================================================ 
     161=                                  definition of all existing variables                                    = 
     162=                                            DO NOT CHANGE                                                 = 
     163============================================================================================================ 
     164    --> 
     165    <field_definition src="./field_def.xml"/> 
     166    <!--  
     167============================================================================================================ 
     168=                                           output files definition                                        = 
     169=                                            Define your own files                                         = 
     170=                                         put the variables you want...                                    = 
     171============================================================================================================ 
     172    --> 
     173     
     174    <file_definition type="multiple_file" name="@expname@_@freq@_@startdate@_@enddate@" sync_freq="10d" min_digits="4"> 
     175     
     176      <file_group id="1ts" output_freq="1ts"  output_level="10" enabled=".TRUE."/> <!-- 1 time step files --> 
     177      <file_group id="1h" output_freq="1h"  output_level="10" enabled=".TRUE."/> <!-- 1h files --> 
     178      <file_group id="2h" output_freq="2h"  output_level="10" enabled=".TRUE."/> <!-- 2h files --> 
     179      <file_group id="3h" output_freq="3h"  output_level="10" enabled=".TRUE."/> <!-- 3h files -->      
     180      <file_group id="4h" output_freq="4h"  output_level="10" enabled=".TRUE."/> <!-- 4h files --> 
     181      <file_group id="6h" output_freq="6h"  output_level="10" enabled=".TRUE."/> <!-- 6h files -->      
     182      <file_group id="1d" output_freq="1d"  output_level="10" enabled=".TRUE."/> <!-- 1d files --> 
     183      <file_group id="3d" output_freq="3d"  output_level="10" enabled=".TRUE."/> <!-- 3d files -->     
     184 
     185      <file_group id="5d" output_freq="5d"  output_level="10" enabled=".TRUE." >  <!-- 5d files -->   
     186  
     187   <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 
     188     <field field_ref="sst"          name="tos"      long_name="sea_surface_temperature"                       /> 
     189     <field field_ref="sss"          name="sos"      long_name="sea_surface_salinity"                          /> 
     190     <field field_ref="ssh"          name="zos"      long_name="sea_surface_height_above_geoid"                /> 
     191     <field field_ref="toce"         name="thetao"   long_name="sea_water_potential_temperature"               /> 
     192     <field field_ref="soce"         name="so"       long_name="sea_water_salinity"                            /> 
     193     <field field_ref="sst2"         name="tossq"    long_name="square_of_sea_surface_temperature"             /> 
     194     <field field_ref="ssh2"         name="zossq"    long_name="square_of_sea_surface_height_above_geoid"      /> 
     195     <field field_ref="mldkz5"       /> 
     196     <field field_ref="mldr10_1"     /> 
     197     <field field_ref="empmr"        name="wfo"      long_name="water_flux_into_sea_water"                     /> 
     198     <field field_ref="qsr"          name="rsntds"   long_name="surface_net_downward_shortwave_flux"           /> 
     199     <field field_ref="qt"           name="tohfls"   long_name="surface_net_downward_total_heat_flux"          /> 
     200     <field field_ref="saltflx"      name="sosflxdo"  /> 
     201     <field field_ref="taum"         name="taum" /> 
     202     <field field_ref="wspd"         name="sowindsp"  /> 
     203          <field field_ref="precip"       name="soprecip" /> 
     204   </file> 
     205 
     206   <file id="file3" name_suffix="_grid_U" description="ocean U grid variables" > 
     207     <field field_ref="ssu"          name="uos"     long_name="sea_surface_x_velocity"    /> 
     208     <field field_ref="uoce"         name="uo"      long_name="sea_water_x_velocity"      /> 
     209     <field field_ref="utau"         name="tauuo"   long_name="surface_downward_x_stress" /> 
     210          <!-- variables available with MLE 
     211          <field field_ref="psiu_mle"     name="psiu_mle"  long_name="MLE_streamfunction_along_i-axis" /> 
     212     --> 
     213   </file> 
     214    
     215   <file id="file4" name_suffix="_grid_V" description="ocean V grid variables" > 
     216     <field field_ref="ssv"          name="vos"     long_name="sea_surface_y_velocity"    /> 
     217     <field field_ref="voce"         name="vo"      long_name="sea_water_y_velocity"      /> 
     218     <field field_ref="vtau"         name="tauvo"   long_name="surface_downward_y_stress" /> 
     219          <!-- variables available with MLE 
     220          <field field_ref="psiv_mle"     name="psiv_mle"  long_name="MLE_streamfunction_along_j-axis" /> 
     221     --> 
     222   </file> 
     223    
     224   <file id="file5" name_suffix="_grid_W" description="ocean W grid variables" > 
     225     <field field_ref="woce"         name="wo"      long_name="ocean vertical velocity"         /> 
     226     <field field_ref="avt"          name="difvho"  long_name="ocean_vertical_heat_diffusivity" /> 
     227   </file> 
     228<!-- 
     229   <file id="file6" name_suffix="_icemod" description="ice variables" > 
     230     <field field_ref="ice_pres"                     /> 
     231     <field field_ref="snowthic_cea" name="snd"     long_name="surface_snow_thickness"   /> 
     232     <field field_ref="icethic_cea"  name="sit"     long_name="sea_ice_thickness"        /> 
     233     <field field_ref="iceprod_cea"  name="sip"     long_name="sea_ice_thickness"        /> 
     234     <field field_ref="ist_ipa"      /> 
     235     <field field_ref="uice_ipa"     /> 
     236     <field field_ref="vice_ipa"     /> 
     237     <field field_ref="utau_ice"     /> 
     238     <field field_ref="vtau_ice"     /> 
     239     <field field_ref="qsr_io_cea"   /> 
     240     <field field_ref="qns_io_cea"   /> 
     241     <field field_ref="snowpre"      /> 
     242   </file> 
     243 
     244   <file id="file8" name_suffix="_Tides" description="tidal harmonics" > 
     245     <field field_ref="M2x"          name="M2x"      long_name="M2 Elevation harmonic real part"                       /> 
     246     <field field_ref="M2y"          name="M2y"      long_name="M2 Elevation harmonic imaginary part"                  /> 
     247     <field field_ref="M2x_u"        name="M2x_u"    long_name="M2 current barotrope along i-axis harmonic real part "       /> 
     248     <field field_ref="M2y_u"        name="M2y_u"    long_name="M2 current barotrope along i-axis harmonic imaginary part "  /> 
     249     <field field_ref="M2x_v"        name="M2x_v"    long_name="M2 current barotrope along j-axis harmonic real part "       /> 
     250     <field field_ref="M2y_v"        name="M2y_v"    long_name="M2 current barotrope along j-axis harmonic imaginary part "  /> 
     251   </file> 
     252   --> 
     253      </file_group> 
     254 
     255 
     256      <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files --> 
     257 
     258 
     259      <file_group id="2m" output_freq="2mo" output_level="10" enabled=".TRUE."/> <!-- real 2m files --> 
     260      <file_group id="3m" output_freq="3mo" output_level="10" enabled=".TRUE."/> <!-- real 3m files --> 
     261      <file_group id="4m" output_freq="4mo" output_level="10" enabled=".TRUE."/> <!-- real 4m files --> 
     262      <file_group id="6m" output_freq="6mo" output_level="10" enabled=".TRUE."/> <!-- real 6m files --> 
     263 
     264      <file_group id="1y"  output_freq="1y" output_level="10" enabled=".TRUE."/> <!-- real yearly files --> 
     265      <file_group id="2y"  output_freq="2y" output_level="10" enabled=".TRUE."/> <!-- real 2y files --> 
     266      <file_group id="5y"  output_freq="5y" output_level="10" enabled=".TRUE."/> <!-- real 5y files --> 
     267      <file_group id="10y" output_freq="10y" output_level="10" enabled=".TRUE."/> <!-- real 10y files --> 
     268 
     269   </file_definition> 
     270     
     271    <!--  
     272============================================================================================================ 
     273= grid definition = = DO NOT CHANGE = 
     274============================================================================================================ 
     275    --> 
     276     
     277   <axis_definition>   
     278      <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 
     279      <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 
     280      <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 
     281      <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 
     282      <axis id="nfloat" long_name="Float number"      unit="-"  /> 
     283      <axis id="icbcla" long_name="Iceberg class"     unit="-"  /> 
     284   </axis_definition>  
     285     
     286   <domain_definition src="./domain_def.xml"/> 
     287    
     288   <grid_definition>     
     289     <grid id="grid_T_2D" domain_ref="grid_T"/> 
     290     <grid id="grid_T_3D" domain_ref="grid_T" axis_ref="deptht"/> 
     291     <grid id="grid_U_2D" domain_ref="grid_U"/> 
     292     <grid id="grid_U_3D" domain_ref="grid_U" axis_ref="depthu"/> 
     293     <grid id="grid_V_2D" domain_ref="grid_V"/> 
     294     <grid id="grid_V_3D" domain_ref="grid_V" axis_ref="depthv"/> 
     295     <grid id="grid_W_2D" domain_ref="grid_W"/> 
     296     <grid id="grid_W_3D" domain_ref="grid_W" axis_ref="depthw"/> 
     297    </grid_definition>    
     298  </context> 
    155299 
    156300  <context id="xios"> 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist_cfg

    r4990 r7261  
    165165/ 
    166166!----------------------------------------------------------------------- 
     167&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     168!----------------------------------------------------------------------- 
     169/ 
     170!----------------------------------------------------------------------- 
    167171&namsol        !   elliptic solver / island / free surface 
    168172!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/iodef.xml

    r5602 r7261  
    6161   <file id="file2" name_suffix="_SBC" description="surface fluxes variables" > <!-- time step automaticaly defined based on nn_fsbc --> 
    6262     <field field_ref="empmr"        name="wfo"      /> 
     63          <field field_ref="emp_oce"      name="emp_oce"  long_name="Evap minus Precip over ocean"              /> 
     64          <field field_ref="emp_ice"      name="emp_ice"  long_name="Evap minus Precip over ice"                /> 
    6365     <field field_ref="qsr_oce"      name="qsr_oce"  /> 
    6466     <field field_ref="qns_oce"      name="qns_oce"  /> 
     
    8688     <field field_ref="u_masstr"     name="vozomatr" /> 
    8789     <field field_ref="u_heattr"     name="sozohetr" /> 
    88       <field field_ref="u_salttr"     name="sozosatr" /> 
     90     <field field_ref="u_salttr"     name="sozosatr" /> 
    8991   </file> 
    9092    
     
    9799     <field field_ref="v_masstr"     name="vomematr" /> 
    98100     <field field_ref="v_heattr"     name="somehetr" /> 
    99       <field field_ref="v_salttr"     name="somesatr" /> 
     101     <field field_ref="v_salttr"     name="somesatr" /> 
    100102   </file> 
    101103    
     
    114116          <field field_ref="iceconc"         name="siconc" /> 
    115117 
    116           <field field_ref="vfxbog"          name="vfxbog" /> 
    117           <field field_ref="vfxdyn"          name="vfxdyn" /> 
    118           <field field_ref="vfxopw"          name="vfxopw" /> 
    119           <field field_ref="vfxsni"          name="vfxsni" /> 
    120           <field field_ref="vfxsum"          name="vfxsum" /> 
    121           <field field_ref="vfxbom"          name="vfxbom" /> 
    122           <field field_ref="vfxres"          name="vfxres" /> 
    123118          <field field_ref="vfxice"          name="vfxice" /> 
    124119          <field field_ref="vfxsnw"          name="vfxsnw" /> 
    125120          <field field_ref="vfxsub"          name="vfxsub" /> 
     121          <field field_ref="vfxsub_err"      name="vfxsub_err" /> 
    126122          <field field_ref="vfxspr"          name="vfxspr" /> 
    127123 
     
    132128          <field field_ref="destrp"          name="destrp" /> 
    133129 
    134           <field field_ref="sfxbri"          name="sfxbri" /> 
    135           <field field_ref="sfxdyn"          name="sfxdyn" /> 
    136           <field field_ref="sfxres"          name="sfxres" /> 
    137           <field field_ref="sfxbog"          name="sfxbog" /> 
    138           <field field_ref="sfxbom"          name="sfxbom" /> 
    139           <field field_ref="sfxsum"          name="sfxsum" /> 
    140           <field field_ref="sfxsni"          name="sfxsni" /> 
    141           <field field_ref="sfxopw"          name="sfxopw" /> 
    142130          <field field_ref="sfx"             name="sfx"    /> 
    143131 
    144           <field field_ref="hfxsum"          name="hfxsum"     /> 
    145           <field field_ref="hfxbom"          name="hfxbom"     /> 
    146           <field field_ref="hfxbog"          name="hfxbog"     /> 
    147           <field field_ref="hfxdif"          name="hfxdif"     /> 
    148           <field field_ref="hfxopw"          name="hfxopw"     /> 
    149132          <field field_ref="hfxout"          name="hfxout"     /> 
    150133          <field field_ref="hfxin"           name="hfxin"      /> 
    151           <field field_ref="hfxsnw"          name="hfxsnw"     /> 
    152           <field field_ref="hfxerr"          name="hfxerr"     /> 
    153           <field field_ref="hfxerr_rem"      name="hfxerr_rem" /> 
    154  
    155      <!-- ice-ocean heat flux from mass exchange --> 
    156           <field field_ref="hfxdyn"          name="hfxdyn" /> 
    157           <field field_ref="hfxres"          name="hfxres" /> 
    158           <field field_ref="hfxthd"          name="hfxthd" /> 
    159      <!-- ice-atm. heat flux from mass exchange --> 
    160           <field field_ref="hfxsub"          name="hfxsub" /> 
    161           <field field_ref="hfxspr"          name="hfxspr" /> 
     134 
    162135 
    163136     <!-- diags --> 
    164           <field field_ref="hfxdhc"          name="hfxdhc" /> 
    165           <field field_ref="hfxtur"          name="hfxtur" /> 
    166  
    167137          <field field_ref="isst"            name="sst"    /> 
    168138          <field field_ref="isss"            name="sss"    /> 
     
    207177          <field field_ref="bgsaline"     name="bgsaline"   /> 
    208178          <field field_ref="bgheatco"     name="bgheatco"   /> 
     179          <field field_ref="bgheatfx"     name="bgheatfx"   /> 
    209180          <field field_ref="bgsaltco"     name="bgsaltco"   /> 
    210181          <field field_ref="bgvolssh"     name="bgvolssh"   />  
     
    212183          <field field_ref="bgfrcvol"     name="bgfrcvol"   /> 
    213184          <field field_ref="bgfrctem"     name="bgfrctem"   /> 
     185          <field field_ref="bgfrchfx"     name="bgfrchfx"   /> 
    214186          <field field_ref="bgfrcsal"     name="bgfrcsal"   /> 
    215187 
    216           <field field_ref="ibgvoltot"    name="ibgvoltot"  /> 
    217           <field field_ref="sbgvoltot"    name="sbgvoltot"  /> 
    218           <field field_ref="ibgarea"      name="ibgarea"    /> 
    219           <field field_ref="ibgsaline"    name="ibgsaline"  /> 
    220           <field field_ref="ibgtemper"    name="ibgtemper"  /> 
    221           <field field_ref="ibgheatco"    name="ibgheatco"  /> 
    222           <field field_ref="sbgheatco"    name="sbgheatco"  /> 
    223           <field field_ref="ibgsaltco"    name="ibgsaltco"  /> 
    224  
    225           <field field_ref="ibgvfx"       name="ibgvfx"     /> 
    226           <field field_ref="ibgvfxbog"    name="ibgvfxbog"  /> 
    227           <field field_ref="ibgvfxopw"    name="ibgvfxopw"  /> 
    228           <field field_ref="ibgvfxsni"    name="ibgvfxsni"  /> 
    229           <field field_ref="ibgvfxdyn"    name="ibgvfxdyn"  /> 
    230           <field field_ref="ibgvfxbom"    name="ibgvfxbom"  /> 
    231           <field field_ref="ibgvfxsum"    name="ibgvfxsum"  /> 
    232           <field field_ref="ibgvfxres"    name="ibgvfxres"  /> 
    233           <field field_ref="ibgvfxspr"    name="ibgvfxspr"  /> 
    234           <field field_ref="ibgvfxsnw"    name="ibgvfxsnw"  /> 
    235           <field field_ref="ibgvfxsub"    name="ibgvfxsub"  /> 
    236  
    237           <field field_ref="ibgsfx"       name="ibgsfx"     /> 
    238           <field field_ref="ibgsfxbri"    name="ibgsfxbri"  /> 
    239           <field field_ref="ibgsfxdyn"    name="ibgsfxdyn"  /> 
    240           <field field_ref="ibgsfxres"    name="ibgsfxres"  /> 
    241           <field field_ref="ibgsfxbog"    name="ibgsfxbog"  /> 
    242           <field field_ref="ibgsfxopw"    name="ibgsfxopw"  /> 
    243           <field field_ref="ibgsfxsni"    name="ibgsfxsni"  /> 
    244           <field field_ref="ibgsfxbom"    name="ibgsfxbom"  /> 
    245           <field field_ref="ibgsfxsum"    name="ibgsfxsum"  /> 
    246  
    247           <field field_ref="ibghfxdhc"    name="ibghfxdhc"  /> 
    248           <field field_ref="ibghfxspr"    name="ibghfxspr"  /> 
    249  
    250           <field field_ref="ibghfxres"    name="ibghfxres"  /> 
    251           <field field_ref="ibghfxsub"    name="ibghfxsub"  /> 
    252           <field field_ref="ibghfxdyn"    name="ibghfxdyn"  /> 
    253           <field field_ref="ibghfxthd"    name="ibghfxthd"  /> 
    254           <field field_ref="ibghfxsum"    name="ibghfxsum"  /> 
    255           <field field_ref="ibghfxbom"    name="ibghfxbom"  /> 
    256           <field field_ref="ibghfxbog"    name="ibghfxbog"  /> 
    257           <field field_ref="ibghfxdif"    name="ibghfxdif"  /> 
    258           <field field_ref="ibghfxopw"    name="ibghfxopw"  /> 
    259           <field field_ref="ibghfxout"    name="ibghfxout"  /> 
    260           <field field_ref="ibghfxin"     name="ibghfxin"   /> 
    261           <field field_ref="ibghfxsnw"    name="ibghfxsnw"  /> 
    262  
    263           <field field_ref="ibgfrcvol"    name="ibgfrcvol"  /> 
    264           <field field_ref="ibgfrcsfx"    name="ibgfrcsfx"  /> 
    265           <field field_ref="ibgvolgrm"    name="ibgvolgrm"  /> 
     188     <field field_ref="ibgvol_tot"   name="ibgvol_tot"  /> 
     189     <field field_ref="sbgvol_tot"   name="sbgvol_tot"  /> 
     190     <field field_ref="ibgarea_tot"  name="ibgarea_tot" /> 
     191     <field field_ref="ibgsalt_tot"  name="ibgsalt_tot" /> 
     192     <field field_ref="ibgheat_tot"  name="ibgheat_tot" /> 
     193     <field field_ref="sbgheat_tot"  name="sbgheat_tot" /> 
     194      
     195     <field field_ref="ibgvolume"    name="ibgvolume"   /> 
     196     <field field_ref="ibgsaltco"    name="ibgsaltco"   /> 
     197     <field field_ref="ibgheatco"    name="ibgheatco"   /> 
     198          <field field_ref="ibgheatfx"    name="ibgheatfx"   /> 
     199      
     200     <field field_ref="ibgfrcvoltop" name="ibgfrcvoltop" /> 
     201     <field field_ref="ibgfrcvolbot" name="ibgfrcvolbot" /> 
     202     <field field_ref="ibgfrctemtop" name="ibgfrctemtop" /> 
     203     <field field_ref="ibgfrctembot" name="ibgfrctembot" /> 
     204     <field field_ref="ibgfrcsal"    name="ibgfrcsal"    /> 
     205          <field field_ref="ibgfrchfxtop" name="ibgfrchfxtop" /> 
     206          <field field_ref="ibgfrchfxbot" name="ibgfrchfxbot" /> 
    266207 
    267208        </file> 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/namelist_cfg

    r4995 r7261  
    168168/ 
    169169!----------------------------------------------------------------------- 
     170&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     171!----------------------------------------------------------------------- 
     172/ 
     173!----------------------------------------------------------------------- 
    170174&namsol        !   elliptic solver / island / free surface 
    171175!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/1_namelist_cfg

    r5602 r7261  
    55!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf,  
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    7 !!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     7!!              4 - lateral boundary (namlbc, namcla, namagrif, nambdy, nambdy_tide) 
    88!!              5 - bottom  boundary (nambfr, nambbc, nambbl) 
    99!!              6 - Tracer           (nameos, namtra_adv, namtra_ldf, namtra_dmp) 
     
    303303!!   namlbc        lateral momentum boundary condition 
    304304!!   namcla        cross land advection 
    305 !!   namobc        open boundaries parameters                           ("key_obc") 
    306305!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif")  
    307306!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
     
    319318!----------------------------------------------------------------------- 
    320319   nn_cla      =    0      !  advection between 2 ocean pts separates by land 
    321 / 
    322 !----------------------------------------------------------------------- 
    323 &namobc        !   open boundaries parameters                           ("key_obc") 
    324 !----------------------------------------------------------------------- 
    325    ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    326    ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    327    ln_obc_fla  = .false.   !  Flather open boundary condition  
    328    nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    329                            !  = 1 the obc data are read in 'obc.dta' files 
    330    cn_obcdta   = 'annual'  !  set to annual if obc datafile hold 1 year of data 
    331                            !  set to monthly if obc datafile hold 1 month of data 
    332    rn_dpein    =    1.     !  damping time scale for inflow at east  open boundary 
    333    rn_dpwin    =    1.     !     -           -         -       west    -      - 
    334    rn_dpnin    =    1.     !     -           -         -       north   -      - 
    335    rn_dpsin    =    1.     !     -           -         -       south   -      - 
    336    rn_dpeob    = 3000.     !  time relaxation (days) for the east  open boundary 
    337    rn_dpwob    =   15.     !     -           -         -     west    -      - 
    338    rn_dpnob    = 3000.     !     -           -         -     north   -      - 
    339    rn_dpsob    =   15.     !     -           -         -     south   -      - 
    340    rn_volemp   =    1.     !  = 0 the total volume change with the surface flux (E-P-R) 
    341                            !  = 1 the total volume remains constant 
    342320/ 
    343321!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/namelist_cfg

    r5602 r7261  
    136136/ 
    137137!----------------------------------------------------------------------- 
    138 &namobc        !   open boundaries parameters                           ("key_obc") 
    139 !----------------------------------------------------------------------- 
    140 / 
    141 !----------------------------------------------------------------------- 
    142138&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    143139!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_cfg

    r4370 r7261  
    165165/ 
    166166!----------------------------------------------------------------------- 
     167&namzdf_tmx_new !  new tidal mixing parameterization                    ("key_zdftmx_new") 
     168!----------------------------------------------------------------------- 
     169/ 
     170!----------------------------------------------------------------------- 
    167171&namsol        !   elliptic solver / island / free surface 
    168172!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/SHARED/field_def.xml

    r6787 r7261  
    2323      <field_group id="grid_T" grid_ref="grid_T_2D" > 
    2424         <field id="e3t"          long_name="T-cell thickness"   standard_name="cell_thickness"   unit="m"   grid_ref="grid_T_3D"/> 
     25         <field id="e3t_0"        long_name="Initial T-cell thickness"   standard_name="ref_cell_thickness"   unit="m"   grid_ref="grid_T_3D"/> 
    2526 
    2627         <field id="toce"         long_name="temperature"         standard_name="sea_water_potential_temperature"   unit="degC"     grid_ref="grid_T_3D"/> 
     
    6970         <field id="alpha"        long_name="thermal expansion"                                                         unit="degC-1" grid_ref="grid_T_3D" /> 
    7071         <field id="beta"         long_name="haline contraction"                                                        unit="1e3"    grid_ref="grid_T_3D" /> 
    71          <field id="bn2"          long_name="squared Brunt-Vaisala frequency"                                           unit="s-1"    grid_ref="grid_T_3D" /> 
    7272         <field id="rhop"         long_name="potential density (sigma0)"        standard_name="sea_water_sigma_theta"   unit="kg/m3"  grid_ref="grid_T_3D" /> 
    7373 
     
    186186      <field_group id="SBC" grid_ref="grid_T_2D" > <!-- time step automaticaly defined based on nn_fsbc --> 
    187187         <field id="empmr"        long_name="Net Upward Water Flux"                standard_name="water_flux_out_of_sea_ice_and_sea_water"                              unit="kg/m2/s"   /> 
     188         <field id="empbmr"       long_name="Net Upward Water Flux at pre. tstep"  standard_name="water_flux_out_of_sea_ice_and_sea_water"                              unit="kg/m2/s"   /> 
     189         <field id="emp_oce"      long_name="Evap minus Precip over ocean"         standard_name="evap_minus_precip_over_sea_water"                                     unit="kg/m2/s"   /> 
     190         <field id="emp_ice"      long_name="Evap minus Precip over ice"           standard_name="evap_minus_precip_over_sea_ice"                                       unit="kg/m2/s"   /> 
    188191         <field id="saltflx"      long_name="Downward salt flux"                                                                                                        unit="1e-3/m2/s" /> 
    189192         <field id="fmmflx"       long_name="Water flux due to freezing/melting"                                                                                        unit="kg/m2/s"   /> 
     
    235238         <field id="hflx_rain_cea" long_name="heat flux due to rainfall"                                standard_name="temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water"        unit="W/m2"     /> 
    236239         <field id="hflx_evap_cea" long_name="heat flux due to evaporation"                             standard_name="temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water"   unit="W/m2"     /> 
    237          <field id="hflx_snow_cea" long_name="heat flux due to snow falling over ice-free ocean"        standard_name="heat_flux_into_sea_water_due_to_snow_thermodynamics"                           unit="W/m2"     /> 
     240         <field id="hflx_snow_cea" long_name="heat flux due to snow falling"                            standard_name="heat_flux_onto_ocean_and_ice_due_to_snow_thermodynamics"                       unit="W/m2"     /> 
     241         <field id="hflx_snow_ai_cea" long_name="heat flux due to snow falling over ice"                standard_name="heat_flux_onto_ice_due_to_snow_thermodynamics"                                 unit="W/m2"     /> 
     242         <field id="hflx_snow_ao_cea" long_name="heat flux due to snow falling over ice-free ocean"     standard_name="heat_flux_onto_sea_water_due_to_snow_thermodynamics"                           unit="W/m2"     /> 
    238243         <field id="hflx_ice_cea"  long_name="heat flux due to ice thermodynamics"                      standard_name="heat_flux_into_sea_water_due_to_sea_ice_thermodynamics"                        unit="W/m2"     /> 
    239244         <field id="hflx_rnf_cea"  long_name="heat flux due to runoffs"                                 standard_name="temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water"          unit="W/m2"     /> 
     
    273278         <field id="emp_x_sst"    long_name="Concentration/Dilution term on SST"                                                                                              unit="kg*degC/m2/s" /> 
    274279         <field id="emp_x_sss"    long_name="Concentration/Dilution term on SSS"                                                                                              unit="kg*1e-3/m2/s" />         
     280         <field id="rnf_x_sst"    long_name="Runoff term on SST"                                                                                                              unit="kg*degC/m2/s" /> 
     281         <field id="rnf_x_sss"    long_name="Runoff term on SSS"                                                                                                              unit="kg*1e-3/m2/s" /> 
    275282        
    276283         <field id="iceconc"      long_name="ice concentration"                                            standard_name="sea_ice_area_fraction"                              unit="%"            /> 
     
    287294         <field id="micesalt"     long_name="Mean ice salinity"                                                                                                               unit="1e-3"         /> 
    288295         <field id="miceage"      long_name="Mean ice age"                                                                                                                    unit="years"        /> 
     296         <field id="alb_ice"      long_name="Mean albedo over sea ice"                                                                                                        unit=""             /> 
     297         <field id="albedo"       long_name="Mean albedo over sea ice and ocean"                                                                                              unit=""             /> 
    289298 
    290299         <field id="iceage_cat"   long_name="Ice age for categories"                                       unit="days"   axis_ref="ncatice" /> 
     
    324333         <field id="sfxsni"       long_name="salt flux from snow-ice formation"                            unit="1e-3*kg/m2/day" /> 
    325334         <field id="sfxopw"       long_name="salt flux from open water ice formation"                      unit="1e-3*kg/m2/day" /> 
     335         <field id="sfxsub"       long_name="salt flux from sublimation"                                   unit="1e-3*kg/m2/day" /> 
    326336         <field id="sfx"          long_name="salt flux total"                                              unit="1e-3*kg/m2/day" /> 
    327337 
     
    336346         <field id="vfxsnw"       long_name="snw melt/growth"                                              unit="m/day"   /> 
    337347         <field id="vfxsub"       long_name="snw sublimation"                                              unit="m/day"   /> 
     348         <field id="vfxsub_err"   long_name="excess of snw sublimation sent to ocean"                      unit="m/day"   /> 
    338349         <field id="vfxspr"       long_name="snw precipitation on ice"                                     unit="m/day"   /> 
     350         <field id="vfxthin"      long_name="daily thermo ice prod. for thin ice(<20cm) + open water"      unit="m/day"   /> 
    339351 
    340352         <field id="afxtot"       long_name="area tendency (total)"                                        unit="day-1"   /> 
     
    378390      <field_group id="grid_U"   grid_ref="grid_U_2D"> 
    379391         <field id="e3u"          long_name="U-cell thickness"                                       standard_name="cell_thickness"              unit="m"          grid_ref="grid_U_3D" /> 
     392         <field id="e3u_0"        long_name="Initial U-cell thickness"                               standard_name="ref_cell_thickness"          unit="m"          grid_ref="grid_U_3D"/> 
    380393         <field id="utau"         long_name="Wind Stress along i-axis"                               standard_name="surface_downward_x_stress"   unit="N/m2"                            /> 
    381394         <field id="uoce"         long_name="ocean current along i-axis"                             standard_name="sea_water_x_velocity"        unit="m/s"        grid_ref="grid_U_3D" /> 
     
    417430      <field_group id="grid_V"   grid_ref="grid_V_2D"> 
    418431         <field id="e3v"          long_name="V-cell thickness"                                       standard_name="cell_thickness"              unit="m"          grid_ref="grid_V_3D" /> 
     432         <field id="e3v_0"        long_name="Initial V-cell thickness"                               standard_name="ref_cell_thickness"          unit="m"          grid_ref="grid_V_3D"/> 
    419433         <field id="vtau"         long_name="Wind Stress along j-axis"                               standard_name="surface_downward_y_stress"   unit="N/m2"                            /> 
    420434         <field id="voce"         long_name="ocean current along j-axis"                             standard_name="sea_water_y_velocity"        unit="m/s"        grid_ref="grid_V_3D" /> 
     
    462476        <field id="woce_eiv"     long_name="EIV ocean vertical velocity"   standard_name="bolus_upward_sea_water_velocity"   unit="m/s" /> 
    463477 
    464         <!-- woce_eiv: available with key_trabbl_adv --> 
    465478        <field id="avt"          long_name="vertical eddy diffusivity"   standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
     479        <field id="logavt"       long_name="logarithm of vertical eddy diffusivity"   standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
    466480        <field id="avm"          long_name="vertical eddy viscosity"     standard_name="ocean_vertical_momentum_diffusivity"   unit="m2/s" /> 
    467481 
     
    478492        <!-- avs: available with key_zdfddm --> 
    479493        <field id="avs"          long_name="salt vertical eddy diffusivity"   standard_name="ocean_vertical_salt_diffusivity"   unit="m2/s" /> 
     494        <field id="logavs"       long_name="logarithm of salt vertical eddy diffusivity"   standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
    480495 
    481496        <!-- avt_evd and avm_evd: available with ln_zdfevd --> 
     
    485500        <!-- avt_tide: available with key_zdftmx --> 
    486501        <field id="av_tide"      long_name="tidal vertical diffusivity"   standard_name="ocean_vertical_tracer_diffusivity_due_to_tides"   unit="m2/s" /> 
     502 
     503       <!-- variables available with key_zdftmx_new --> 
     504        <field id="av_ratio"     long_name="S over T diffusivity ratio"            standard_name="salinity_over_temperature_diffusivity_ratio"                     unit="1"    /> 
     505        <field id="av_wave"      long_name="wave-induced vertical diffusivity"     standard_name="ocean_vertical_tracer_diffusivity_due_to_internal_waves"         unit="m2/s" /> 
     506        <field id="bn2"          long_name="squared Brunt-Vaisala frequency"       standard_name="squared_brunt_vaisala_frequency"                                 unit="s-1"  /> 
     507        <field id="bflx_tmx"     long_name="wave-induced buoyancy flux"            standard_name="buoyancy_flux_due_to_internal_waves"                             unit="W/kg" /> 
     508        <field id="pcmap_tmx"    long_name="power consumed by wave-driven mixing"  standard_name="vertically_integrated_power_consumption_by_wave_driven_mixing"   unit="W/m2"      grid_ref="grid_W_2D" /> 
     509        <field id="emix_tmx"     long_name="power density available for mixing"    standard_name="power_available_for_mixing_from_breaking_internal_waves"         unit="W/kg" /> 
    487510 
    488511        <!-- variables available with key_diaar5 -->    
     
    510533       <field id="bgtemper"     long_name="drift in global mean temperature wrt timestep 1"                 standard_name="change_over_time_in_sea_water_potential_temperature"   unit="degC"     /> 
    511534       <field id="bgsaline"     long_name="drift in global mean salinity wrt timestep 1"                    standard_name="change_over_time_in_sea_water_practical_salinity"      unit="1e-3"     /> 
    512        <field id="bgheatco"     long_name="drift in global mean heat content wrt timestep 1"                                                                                      unit="10^9J"    /> 
    513        <field id="bgsaltco"     long_name="drift in global mean salt content wrt timestep 1"                                                                                      unit="1e-3*m3"  /> 
     535       <field id="bgheatco"     long_name="drift in global mean heat content wrt timestep 1"                                                                                      unit="1.e20J"   /> 
     536       <field id="bgheatfx"     long_name="drift in global mean heat flux    wrt timestep 1"                                                                                      unit="W/m2"     /> 
     537       <field id="bgsaltco"     long_name="drift in global mean salt content wrt timestep 1"                                                                                      unit="1e-3*km3" /> 
    514538       <field id="bgvolssh"     long_name="drift in global mean ssh volume wrt timestep 1"                                                                                        unit="km3"      /> 
    515539         <field id="bgvole3t"     long_name="drift in global mean volume variation (e3t) wrt timestep 1"                                                                            unit="km3"      /> 
    516        <field id="bgvoltot"     long_name="drift in global mean volume wrt timestep 1"                                                                                            unit="km3"      /> 
    517          <!-- NOTE: No matching iom_put call --> 
    518        <field id="bgsshtot"     long_name="drift in global mean ssh wrt timestep 1"                         standard_name="global_average_sea_level_change"                       unit="m"        /> 
    519        <field id="bgfrcvol"     long_name="drift in global mean volume from forcing wrt timestep 1"                                                                               unit="km3"      /> 
    520        <field id="bgfrctem"     long_name="drift in global mean heat content from forcing wrt timestep 1"                                                                         unit="10^9J"    /> 
    521        <field id="bgfrcsal"     long_name="drift in global mean salt content from forcing wrt timestep 1"                                                                         unit="1e-3*km3" /> 
    522        <field id="bgmistem"     long_name="global mean temperature error due to free surface"                                                                                     unit="degC"     /> 
    523        <field id="bgmissal"     long_name="global mean salinity error due to free surface"                                                                                        unit="1e-3"     /> 
     540       <field id="bgfrcvol"     long_name="global mean volume from forcing"                                                                                                       unit="km3"      /> 
     541       <field id="bgfrctem"     long_name="global mean heat content from forcing"                                                                                                 unit="1.e20J"   /> 
     542         <field id="bgfrchfx"     long_name="global mean heat flux from forcing"                                                                                                    unit="W/m2"     /> 
     543       <field id="bgfrcsal"     long_name="global mean salt content from forcing"                                                                                                 unit="1e-3*km3" /> 
     544       <field id="bgmistem"     long_name="global mean temperature error due to free surface (no vvl)"                                                                            unit="degC"     /> 
     545       <field id="bgmissal"     long_name="global mean salinity error due to free surface (no vvl)"                                                                               unit="1e-3"     /> 
    524546      </field_group> 
    525547 
     
    528550      <field_group id="SBC_scalar"  domain_ref="1point" > 
    529551         <!-- available with ln_limdiaout --> 
    530          <field id="ibgvoltot"    long_name="global mean ice volume"                                 unit="km3"        /> 
    531          <field id="sbgvoltot"    long_name="global mean snow volume"                                unit="km3"        /> 
    532          <field id="ibgarea"      long_name="global mean ice area"                                   unit="km2"        /> 
    533          <field id="ibgsaline"    long_name="global mean ice salinity"                               unit="1e-3"       /> 
    534          <field id="ibgtemper"    long_name="global mean ice temperature"                            unit="degC"       /> 
    535          <field id="ibgheatco"    long_name="global mean ice heat content"                           unit="10^20J"     /> 
    536          <field id="sbgheatco"    long_name="global mean snow heat content"                          unit="10^20J"     /> 
    537          <field id="ibgsaltco"    long_name="global mean ice salt content"                           unit="1e-3*km3"   /> 
    538  
    539          <field id="ibgvfx"       long_name="global mean volume flux (emp)"                          unit="m/day"      /> 
    540          <field id="ibgvfxbog"    long_name="global mean volume flux (bottom growth)"                unit="m/day"      /> 
    541          <field id="ibgvfxopw"    long_name="global mean volume flux (open water growth)"            unit="m/day"      /> 
    542          <field id="ibgvfxsni"    long_name="global mean volume flux (snow-ice growth)"              unit="m/day"      /> 
    543          <field id="ibgvfxdyn"    long_name="global mean volume flux (dynamic growth)"               unit="m/day"      /> 
    544          <field id="ibgvfxbom"    long_name="global mean volume flux (bottom melt)"                  unit="m/day"      /> 
    545          <field id="ibgvfxsum"    long_name="global mean volume flux (surface melt)"                 unit="m/day"      /> 
    546          <field id="ibgvfxres"    long_name="global mean volume flux (resultant)"                    unit="m/day"      /> 
    547          <field id="ibgvfxspr"    long_name="global mean volume flux (snow precip)"                  unit="m/day"      /> 
    548          <field id="ibgvfxsnw"    long_name="global mean volume flux (snow melt)"                    unit="m/day"      /> 
    549          <field id="ibgvfxsub"    long_name="global mean volume flux (snow sublimation)"             unit="m/day"      /> 
    550  
    551          <field id="ibgsfx"       long_name="global mean salt flux (total)"                          unit="1e-3*m/day" /> 
    552          <field id="ibgsfxbri"    long_name="global mean salt flux (brines)"                         unit="1e-3*m/day" /> 
    553          <field id="ibgsfxdyn"    long_name="global mean salt flux (dynamic)"                        unit="1e-3*m/day" /> 
    554          <field id="ibgsfxres"    long_name="global mean salt flux (resultant)"                      unit="1e-3*m/day" /> 
    555          <field id="ibgsfxbog"    long_name="global mean salt flux (thermo)"                         unit="1e-3*m/day" /> 
    556          <field id="ibgsfxopw"    long_name="global mean salt flux (thermo)"                         unit="1e-3*m/day" /> 
    557          <field id="ibgsfxsni"    long_name="global mean salt flux (thermo)"                         unit="1e-3*m/day" /> 
    558          <field id="ibgsfxbom"    long_name="global mean salt flux (thermo)"                         unit="1e-3*m/day" /> 
    559          <field id="ibgsfxsum"    long_name="global mean salt flux (thermo)"                         unit="1e-3*m/day" /> 
    560  
    561          <field id="ibghfxdhc"    long_name="Heat content variation in snow and ice"                 unit="W"          /> 
    562          <field id="ibghfxspr"    long_name="Heat content of snow precip"                            unit="W"          /> 
    563  
    564          <field id="ibghfxthd"    long_name="heat fluxes from ice-ocean exchange during thermo"      unit="W"          /> 
    565          <field id="ibghfxsum"    long_name="heat fluxes causing surface ice melt"                   unit="W"          /> 
    566          <field id="ibghfxbom"    long_name="heat fluxes causing bottom ice melt"                    unit="W"          /> 
    567          <field id="ibghfxbog"    long_name="heat fluxes causing bottom ice growth"                  unit="W"          /> 
    568          <field id="ibghfxdif"    long_name="heat fluxes causing ice temperature change"             unit="W"          /> 
    569          <field id="ibghfxopw"    long_name="heat fluxes causing open water ice formation"           unit="W"          /> 
    570          <field id="ibghfxdyn"    long_name="heat fluxes from ice-ocean exchange during dynamic"     unit="W"          /> 
    571          <field id="ibghfxres"    long_name="heat fluxes from ice-ocean exchange during resultant"   unit="W"          /> 
    572          <field id="ibghfxsub"    long_name="heat fluxes from sublimation"                           unit="W"          /> 
    573          <field id="ibghfxsnw"    long_name="heat fluxes from snow-ocean exchange"                   unit="W"          /> 
    574          <field id="ibghfxout"    long_name="non solar heat fluxes received by the ocean"            unit="W"          /> 
    575          <field id="ibghfxin"     long_name="total heat fluxes at the ice surface"                   unit="W"          /> 
    576  
    577          <field id="ibgfrcvol"    long_name="global mean forcing volume (emp)"                       unit="km3"        /> 
    578          <field id="ibgfrcsfx"    long_name="global mean forcing salt   (sfx)"                       unit="1e-3*km3"   /> 
    579          <field id="ibgvolgrm"    long_name="global mean ice growth+melt volume"                     unit="km3"        /> 
     552         <field id="ibgfrcvoltop"    long_name="global mean ice/snow forcing at interface ice/snow-atm (volume equivalent ocean volume)"   unit="km3"       /> 
     553         <field id="ibgfrcvolbot"    long_name="global mean ice/snow forcing at interface ice/snow-ocean (volume equivalent ocean volume)" unit="km3"       /> 
     554         <field id="ibgfrctemtop"    long_name="global mean heat on top of ice/snw/ocean-atm "                                             unit="1e20J"     /> 
     555         <field id="ibgfrctembot"    long_name="global mean heat below ice (on top of ocean) "                                             unit="1e20J"     /> 
     556         <field id="ibgfrcsal"       long_name="global mean ice/snow forcing (salt equivalent ocean volume)"                               unit="pss*km3"   /> 
     557         <field id="ibgfrchfxtop"    long_name="global mean heat flux on top of ice/snw/ocean-atm "                                        unit="W/m2"      /> 
     558         <field id="ibgfrchfxbot"    long_name="global mean heat flux below ice (on top of ocean) "                                        unit="W/m2"      /> 
     559  
     560         <field id="ibgvolume"    long_name="drift in ice/snow volume (equivalent ocean volume)"            unit="km3"        /> 
     561         <field id="ibgsaltco"    long_name="drift in ice salt content (equivalent ocean volume)"           unit="pss*km3"    /> 
     562         <field id="ibgheatco"    long_name="drift in ice/snow heat content"                                unit="1e20J"      /> 
     563         <field id="ibgheatfx"    long_name="drift in ice/snow heat flux"                                   unit="W/m2"       /> 
     564 
     565         <field id="ibgvol_tot"    long_name="global mean ice volume"                                       unit="km3"        /> 
     566         <field id="sbgvol_tot"    long_name="global mean snow volume"                                      unit="km3"        /> 
     567         <field id="ibgarea_tot"   long_name="global mean ice area"                                         unit="km2"        /> 
     568         <field id="ibgsalt_tot"   long_name="global mean ice salt content"                                 unit="1e-3*km3"   /> 
     569         <field id="ibgheat_tot"   long_name="global mean ice heat content"                                 unit="1e20J"      /> 
     570         <field id="sbgheat_tot"   long_name="global mean snow heat content"                                unit="1e20J"      /> 
    580571      </field_group> 
    581572   
     
    882873       <field id="Totlig"      long_name="Total ligand concentation"               unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    883874       <field id="Biron"       long_name="Bioavailable iron"                       unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    884        <field id="Sdenit"      long_name="Nitrate reduction in the sediments"      unit="mol/m2/s"                        /> 
     875       <field id="Sdenit"      long_name="Nitrate reduction in the sediments"      unit="molN/m2/s"                       /> 
     876       <field id="SedCal"      long_name="Calcite burial in the sediments"         unit="molC/m2/s"                       /> 
     877       <field id="SedSi"       long_name="Silicon burial in the sediments"         unit="molSi/m2/s"                      /> 
     878       <field id="SedC"        long_name="Organic C burial in the sediments"       unit="molC/m2/s"                       /> 
    885879       <field id="Ironice"     long_name="Iron input/uptake due to sea ice"        unit="mol/m2/s"                        /> 
    886880       <field id="HYDR"        long_name="Iron input from hydrothemal vents"       unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r5602 r7261  
    2121   cn_icerst_outdir = "."          !  directory in which to write output ice restarts 
    2222   ln_limdyn     = .true.          !  ice dynamics (T) or thermodynamics only (F) 
    23    rn_amax       = 0.999           !  maximum tolerated ice concentration  
     23   rn_amax_n     = 0.999           !  maximum tolerated ice concentration NH 
     24   rn_amax_s     = 0.999           !  maximum tolerated ice concentration SH 
    2425   ln_limdiahsb  = .false.         !  check the heat and salt budgets (T) or not (F) 
    2526   ln_limdiaout  = .true.          !  output the heat and salt budgets (T) or not (F) 
     
    8586   rn_hnewice  = 0.1               !  thickness for new ice formation in open water (m) 
    8687   ln_frazil   = .false.           !  use frazil ice collection thickness as a function of wind (T) or not (F) 
    87    rn_maxfrazb = 0.0               !  maximum fraction of frazil ice collecting at the ice base 
     88   rn_maxfrazb = 1.0               !  maximum fraction of frazil ice collecting at the ice base 
    8889   rn_vfrazb   = 0.417             !  thresold drift speed for frazil ice collecting at the ice bottom (m/s) 
    8990   rn_Cfrazb   = 5.0               !  squeezing coefficient for frazil ice collecting at the ice bottom 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref

    r5602 r7261  
    6666   qdfelim    =  7.E-6    ! Optimal quota of diatoms 
    6767   caco3r     =  0.3      ! mean rain ratio 
     68   oxymin    =  1.E-6     ! Half-saturation constant for anoxia 
    6869/ 
    6970!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     
    162163   xsiremlab =  0.03      ! fast remineralization rate of Si 
    163164   xsilab    =  0.5       ! Fraction of labile biogenic silica 
    164    oxymin    =  1.E-6     ! Half-saturation constant for anoxia 
    165165/ 
    166166!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/SHARED/namelist_ref

    r5602 r7261  
    55!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf, 
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    7 !!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     7!!              4 - lateral boundary (namlbc, namcla, namagrif, nambdy, nambdy_tide) 
    88!!              5 - bottom  boundary (nambfr, nambbc, nambbl) 
    99!!              6 - Tracer           (nameos, namtra_adv, namtra_ldf, namtra_dmp) 
    1010!!              7 - dynamics         (namdyn_adv, namdyn_vor, namdyn_hpg, namdyn_spg, namdyn_ldf) 
    11 !!              8 - Verical physics  (namzdf, namzdf_ric, namzdf_tke, namzdf_kpp, namzdf_ddm, namzdf_tmx) 
     11!!              8 - Verical physics  (namzdf, namzdf_ric, namzdf_tke, namzdf_kpp, namzdf_ddm, namzdf_tmx, namzdf_tmx_new) 
    1212!!              9 - diagnostics      (namnc4, namtrd, namspr, namflo, namhsb, namsto) 
    1313!!             10 - miscellaneous    (namsol, nammpp, namctl) 
     
    408408   ln_qsr_2bd  = .false.   !  2 bands              light penetration 
    409409   ln_qsr_bio  = .false.   !  bio-model light penetration 
    410    nn_chldta   =      1    !  RGB : Chl data (=1) or cst value (=0) 
     410   nn_chldta   =      1    !  RGB : 2D Chl data (=1), 3D Chl data (=2) or cst value (=0) 
    411411   rn_abs      =   0.58    !  RGB & 2 bands: fraction of light (rn_si1) 
    412412   rn_si0      =   0.35    !  RGB & 2 bands: shortess depth of extinction 
     
    500500&namsbc_alb    !   albedo parameters 
    501501!----------------------------------------------------------------------- 
    502    rn_cloud    =    0.06   !  cloud correction to snow and ice albedo 
    503    rn_albice   =    0.53   !  albedo of melting ice in the arctic and antarctic 
    504    rn_alphd    =    0.80   !  coefficients for linear interpolation used to 
    505    rn_alphc    =    0.65   !  compute albedo between two extremes values 
    506    rn_alphdi   =    0.72   !  (Pyane, 1972) 
     502   nn_ice_alb  =    0   !  parameterization of ice/snow albedo 
     503                        !     0: Shine & Henderson-Sellers (JGR 1985) 
     504                        !     1: "home made" based on Brandt et al. (J. Climate 2005) 
     505                        !                         and Grenfell & Perovich (JGR 2004) 
     506   rn_albice   =  0.53  !  albedo of bare puddled ice (values from 0.49 to 0.58) 
     507                        !     0.53 (default) => if nn_ice_alb=0 
     508                        !     0.50 (default) => if nn_ice_alb=1 
    507509/ 
    508510!----------------------------------------------------------------------- 
     
    546548!!   namlbc        lateral momentum boundary condition 
    547549!!   namcla        cross land advection 
    548 !!   namobc        open boundaries parameters                           ("key_obc") 
    549550!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif") 
    550551!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
     
    563564!----------------------------------------------------------------------- 
    564565   nn_cla      =    0      !  advection between 2 ocean pts separates by land 
    565 / 
    566 !----------------------------------------------------------------------- 
    567 &namobc        !   open boundaries parameters                           ("key_obc") 
    568 !----------------------------------------------------------------------- 
    569    ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    570    ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    571    ln_obc_fla  = .false.   !  Flather open boundary condition 
    572    nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    573                            !  = 1 the obc data are read in 'obc.dta' files 
    574    cn_obcdta   = 'annual'  !  set to annual if obc datafile hold 1 year of data 
    575                            !  set to monthly if obc datafile hold 1 month of data 
    576    rn_dpein    =    1.     !  damping time scale for inflow at east  open boundary 
    577    rn_dpwin    =    1.     !     -           -         -       west    -      - 
    578    rn_dpnin    =    1.     !     -           -         -       north   -      - 
    579    rn_dpsin    =    1.     !     -           -         -       south   -      - 
    580    rn_dpeob    = 3000.     !  time relaxation (days) for the east  open boundary 
    581    rn_dpwob    =   15.     !     -           -         -     west    -      - 
    582    rn_dpnob    = 3000.     !     -           -         -     north   -      - 
    583    rn_dpsob    =   15.     !     -           -         -     south   -      - 
    584    rn_volemp   =    1.     !  = 0 the total volume change with the surface flux (E-P-R) 
    585                            !  = 1 the total volume remains constant 
    586566/ 
    587567!----------------------------------------------------------------------- 
     
    898878!!             Tracers & Dynamics vertical physics namelists 
    899879!!====================================================================== 
    900 !!    namzdf        vertical physics 
    901 !!    namzdf_ric    richardson number dependent vertical mixing         ("key_zdfric") 
    902 !!    namzdf_tke    TKE dependent vertical mixing                       ("key_zdftke") 
    903 !!    namzdf_kpp    KPP dependent vertical mixing                       ("key_zdfkpp") 
    904 !!    namzdf_ddm    double diffusive mixing parameterization            ("key_zdfddm") 
    905 !!    namzdf_tmx    tidal mixing parameterization                       ("key_zdftmx") 
     880!!    namzdf            vertical physics 
     881!!    namzdf_ric        richardson number dependent vertical mixing     ("key_zdfric") 
     882!!    namzdf_tke        TKE dependent vertical mixing                   ("key_zdftke") 
     883!!    namzdf_kpp        KPP dependent vertical mixing                   ("key_zdfkpp") 
     884!!    namzdf_ddm        double diffusive mixing parameterization        ("key_zdfddm") 
     885!!    namzdf_tmx        tidal mixing parameterization                   ("key_zdftmx") 
     886!!    namzdf_tmx_new    new tidal mixing parameterization               ("key_zdftmx_new") 
    906887!!====================================================================== 
    907888! 
     
    1010991   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency 
    1011992/ 
    1012  
     993!----------------------------------------------------------------------- 
     994&namzdf_tmx_new    !   new tidal mixing parameterization                ("key_zdftmx_new") 
     995!----------------------------------------------------------------------- 
     996   nn_zpyc     = 1         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2) 
     997   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency 
     998   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F) 
     999/ 
    10131000!!====================================================================== 
    10141001!!                  ***  Miscellaneous namelists  *** 
     
    11961183   ln_s3d     = .false.    ! Logical switch for S profile observations 
    11971184   ln_ena     = .false.    ! Logical switch for ENACT insitu data set 
    1198    !                       !     ln_cor                  Logical switch for Coriolis insitu data set 
     1185   ln_cor     = .false.    ! Logical switch for Coriolis insitu data set 
    11991186   ln_profb   = .false.    ! Logical switch for feedback insitu data set 
    12001187   ln_sla     = .false.    ! Logical switch for SLA observations 
    1201  
    12021188   ln_sladt   = .false.    ! Logical switch for AVISO SLA data 
    1203  
    12041189   ln_slafb   = .false.    ! Logical switch for feedback SLA data 
    1205                            !     ln_ssh                  Logical switch for SSH observations 
    1206  
    1207    ln_sst     = .false.     ! Logical switch for SST observations 
    1208    ln_reysst  = .false.     !     ln_reysst               Logical switch for Reynolds observations 
    1209    ln_ghrsst  = .false.    !     ln_ghrsst               Logical switch for GHRSST observations 
    1210  
     1190   ln_ssh     = .false.    ! Logical switch for SSH observations 
     1191   ln_sst     = .false.    ! Logical switch for SST observations 
     1192   ln_reysst  = .false.    ! Logical switch for Reynolds observations 
     1193   ln_ghrsst  = .false.    ! Logical switch for GHRSST observations 
    12111194   ln_sstfb   = .false.    ! Logical switch for feedback SST data 
    1212                            !     ln_sss                  Logical switch for SSS observations 
     1195   ln_sss     = .false.    ! Logical switch for SSS observations 
    12131196   ln_seaice  = .false.    ! Logical switch for Sea Ice observations 
    1214                            !     ln_vel3d                Logical switch for velocity observations 
    1215                            !     ln_velavcur             Logical switch for velocity daily av. cur. 
    1216                            !     ln_velhrcur             Logical switch for velocity high freq. cur. 
    1217                            !     ln_velavadcp            Logical switch for velocity daily av. ADCP 
    1218                            !     ln_velhradcp            Logical switch for velocity high freq. ADCP 
    1219                            !     ln_velfb                Logical switch for feedback velocity data 
    1220                            !     ln_grid_global          Global distribtion of observations 
    1221                            !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table 
    1222                            !     grid_search_file        Grid search lookup file header 
    1223                            !     enactfiles              ENACT input observation file names 
    1224                            !     coriofiles              Coriolis input observation file name 
    1225    !                       ! profbfiles: Profile feedback input observation file name 
    1226    profbfiles = 'profiles_01.nc' 
    1227                            !     ln_profb_enatim         Enact feedback input time setting switch 
    1228                            !     slafilesact             Active SLA input observation file name 
    1229                            !     slafilespas             Passive SLA input observation file name 
    1230    !                       ! slafbfiles: Feedback SLA input observation file name 
    1231    slafbfiles = 'sla_01.nc' 
    1232                            !     sstfiles                GHRSST input observation file name 
    1233    !                       ! sstfbfiles: Feedback SST input observation file name 
    1234    sstfbfiles = 'sst_01.nc' 
    1235                            !     seaicefiles             Sea Ice input observation file names 
    1236    seaicefiles = 'seaice_01.nc' 
    1237                            !     velavcurfiles           Vel. cur. daily av. input file name 
    1238                            !     velhvcurfiles           Vel. cur. high freq. input file name 
    1239                            !     velavadcpfiles          Vel. ADCP daily av. input file name 
    1240                            !     velhvadcpfiles          Vel. ADCP high freq. input file name 
    1241                            !     velfbfiles              Vel. feedback input observation file name 
    1242                            !     dobsini                 Initial date in window YYYYMMDD.HHMMSS 
    1243                            !     dobsend                 Final date in window YYYYMMDD.HHMMSS 
    1244                            !     n1dint                  Type of vertical interpolation method 
    1245                            !     n2dint                  Type of horizontal interpolation method 
    1246                            !     ln_nea                  Rejection of observations near land switch 
    1247    nmsshc     = 0          ! MSSH correction scheme 
    1248                            !     mdtcorr                 MDT  correction 
    1249                            !     mdtcutoff               MDT cutoff for computed correction 
     1197   ln_vel3d   = .false.    ! Logical switch for velocity observations 
     1198   ln_velavcur= .false     ! Logical switch for velocity daily av. cur. 
     1199   ln_velhrcur= .false     ! Logical switch for velocity high freq. cur. 
     1200   ln_velavadcp = .false.  ! Logical switch for velocity daily av. ADCP 
     1201   ln_velhradcp = .false.  ! Logical switch for velocity high freq. ADCP 
     1202   ln_velfb   = .false.    ! Logical switch for feedback velocity data 
     1203   ln_grid_global = .false. ! Global distribtion of observations 
     1204   ln_grid_search_lookup = .false. !  Logical switch for obs grid search w/lookup table 
     1205   grid_search_file = 'grid_search'  !  Grid search lookup file header 
     1206! All of the *files* variables below are arrays. Use namelist_cfg to add more files 
     1207   enactfiles = 'enact.nc' !  ENACT input observation file names (specify full array in namelist_cfg) 
     1208   coriofiles = 'corio.nc' !  Coriolis input observation file name 
     1209   profbfiles = 'profiles_01.nc' ! Profile feedback input observation file name 
     1210   ln_profb_enatim = .false !        Enact feedback input time setting switch 
     1211   slafilesact = 'sla_act.nc' !  Active SLA input observation file names 
     1212   slafilespas = 'sla_pass.nc' ! Passive SLA input observation file names 
     1213   slafbfiles = 'sla_01.nc' ! slafbfiles: Feedback SLA input observation file names 
     1214   sstfiles = 'ghrsst.nc'   ! GHRSST input observation file names 
     1215   sstfbfiles = 'sst_01.nc' ! Feedback SST input observation file names 
     1216   seaicefiles = 'seaice_01.nc' ! Sea Ice input observation file names 
     1217   velavcurfiles = 'velavcurfile.nc'  ! Vel. cur. daily av. input file name 
     1218   velhrcurfiles = 'velhrcurfile.nc'  ! Vel. cur. high freq. input file name 
     1219   velavadcpfiles = 'velavadcpfile.nc' ! Vel. ADCP daily av. input file name 
     1220   velhradcpfiles = 'velhradcpfile.nc' ! Vel. ADCP high freq. input file name 
     1221   velfbfiles = 'velfbfile.nc' ! Vel. feedback input observation file name 
     1222   dobsini = 20000101.000000  !  Initial date in window YYYYMMDD.HHMMSS 
     1223   dobsend = 20010101.000000  !  Final date in window YYYYMMDD.HHMMSS 
     1224   n1dint = 0  !               Type of vertical interpolation method 
     1225   n2dint = 0  !               Type of horizontal interpolation method 
     1226   ln_nea = .false.   !        Rejection of observations near land switch 
     1227   nmsshc     = 0     !        MSSH correction scheme 
     1228   mdtcorr = 1.61     !        MDT  correction 
     1229   mdtcutoff = 65.0   !        MDT cutoff for computed correction 
    12501230   ln_altbias = .false.    ! Logical switch for alt bias 
    12511231   ln_ignmis  = .true.     ! Logical switch for ignoring missing files 
    1252                            !     endailyavtypes   ENACT daily average types 
     1232   endailyavtypes = 820    ! ENACT daily average types - array (use namelist_cfg to set more values) 
    12531233   ln_grid_global = .true. 
    12541234   ln_grid_search_lookup = .false. 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref

    r5602 r7261  
    6262   rn_ahtrc_0       =  2000.    !  horizontal eddy diffusivity for tracers [m2/s] 
    6363   rn_ahtrb_0       =     0.    !     background eddy diffusivity for ldf_iso [m2/s] 
     64   rn_fact_lap      =     1.    !     enhanced zonal eddy diffusivity 
    6465/ 
    6566!----------------------------------------------------------------------- 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/CONFIG/cfg.txt

    r5602 r7261  
    66GYRE_BFM OPA_SRC TOP_SRC 
    77AMM12 OPA_SRC 
     8ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
    89ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
     10ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 
    911GYRE OPA_SRC 
    10 ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 
    1112ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 
    12 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/SETTE/all_functions.sh

    r4316 r7261  
    286286        echo "################" >> ${SETTE_DIR}/output.sette 
    287287 
     288        inxml=$1 
    288289        VAR_NAME=$( grep "^.*<.*file_definition.*type.*=" ${EXE_DIR}/$1 | sed -e "s% *\!.*%%" ) 
    289290        if [ ${#VAR_NAME} -eq 0 ] 
    290291        then 
     292# This may have failed because the job is using XIOS_2.0 conventions and the file descriptions have moved to file_def.xml 
     293# Check again in case this is the case 
     294          VAR_NAME=$( grep "^.*<.*file_definition.*type.*=" ${EXE_DIR}/file_def.xml | sed -e "s% *\!.*%%" ) 
     295          inxml="file_def.xml" 
     296          if [ ${#VAR_NAME} -eq 0 ] 
     297          then 
    291298                echo "doing \"set_xio_file_type $@\". " 
    292299                echo "xml_tag: file_definition with variable: type is empty" 
    293                 echo "confirm that an appropriate file_definition is in \"${EXE_DIR}/$1\" " 
     300                echo "confirm that an appropriate file_definition is in \"${EXE_DIR}/$1\" or file_def.xml" 
    294301                echo "exit" 
    295302                echo "error in executing script : set_xio_file_type $@" >> ${SETTE_DIR}/output.sette 
    296303                echo "....." >> ${SETTE_DIR}/output.sette 
    297304                exit 1 
     305          fi 
    298306        fi 
    299307        if [ $2 == "one_file" ]  
    300308        then 
    301            sed -e "s:multiple_file:one_file:" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 
     309           sed -e "s:multiple_file:one_file:" ${EXE_DIR}/$inxml > ${EXE_DIR}/$inxml.tmp 
    302310        else 
    303            sed -e "s:one_file:multiple_file:" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 
    304         fi 
    305         mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 
     311           sed -e "s:one_file:multiple_file:" ${EXE_DIR}/$inxml > ${EXE_DIR}/$inxml.tmp 
     312        fi 
     313        mv ${EXE_DIR}/$inxml.tmp ${EXE_DIR}/$inxml 
    306314 
    307315        echo "finished script : set_xio_file_type $@" >> ${SETTE_DIR}/output.sette 
     
    336344        if [ ${#VAR_NAME} -eq 0 ] 
    337345        then 
     346# This may have failed because the iodef file is using XIOS_2.0 syntax where "boolean" has reduced to "bool" 
     347# Check again in case this is the case 
     348          VAR_NAME=$( grep "^.*<.*variable id.*=.*using_server.*=.*bool" ${EXE_DIR}/$1 | sed -e "s% *\!.*%%" ) 
     349           if [ ${#VAR_NAME} -eq 0 ] 
     350           then 
    338351                echo "doing \"set_xio_using_server $@\". " 
    339                 echo "xml_tag: "variable id=using_server" with variable: boolean is empty" 
     352                echo "xml_tag: "variable id=using_server" with either variable: boolean or bool is empty" 
    340353                echo "confirm that an appropriate variable id is in \"${EXE_DIR}/$1\" " 
    341354                echo "exit" 
     
    343356                echo "....." >> ${SETTE_DIR}/output.sette 
    344357                exit 1 
     358           fi 
    345359        fi 
    346360        if [ $2 == "false" ] 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/SETTE/prepare_exe_dir.sh

    r4773 r7261  
    7070export EXE_DIR=${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} 
    7171 
    72 cp -r ${CONFIG_DIR}/${NEW_CONF}/EXP00/* ${EXE_DIR}/. 
    73 cp -r ${SETTE_DIR}/iodef_sette.xml ${EXE_DIR}/iodef.xml 
     72cp -rL ${CONFIG_DIR}/${NEW_CONF}/EXP00/* ${EXE_DIR}/. 
     73if [ ! -f ${EXE_DIR}/file_def.xml ]; then cp -r ${SETTE_DIR}/iodef_sette.xml ${EXE_DIR}/iodef.xml; fi 
    7474cd ${EXE_DIR} 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/SETTE/prepare_job.sh

    r5602 r7261  
    186186  #  if [ ${MPI_FLAG} == "no" ] ; then 
    187187      case ${COMPILER} in  
    188          X64_MOBILIS) 
     188         X64_MOBILIS*) 
    189189                                NB_REM=$( echo $NB_PROC $NXIO_PROC | awk '{print ( $1 + $2 ) % 16}') 
    190190               if [ ${NB_REM} == 0 ] ; then 
     
    280280                                fi 
    281281                                ;; 
    282                         ifort_MERCATOR_CLUSTER) 
     282                        openmpi_NAVITI_MERCATOR) 
    283283                                echo NB_PROCS ${NB_PROC} 
    284284                                echo NB_NODES ${NB_NODES} 
     
    289289                                   NB_PROC_NODE=${NB_PROC} 
    290290                                else 
    291                                    if [ ${NB_PROC} -le 8 ] ; then 
     291                                   if [ ${NB_PROC} -le 16 ] ; then 
    292292                                      NB_NODES=1 
    293293                                      QUEUE=mono 
    294294                                      NB_PROC_NODE=${NB_PROC} 
    295295                                   else 
    296                                       NB_NODES=$( echo $NB_PROC | awk '{print $1 - $1 % 8}'  | awk '{print $1 / 8 }') 
     296                                      NB_NODES=$( echo $NB_PROC | awk '{print $1 - $1 % 16}'  | awk '{print $1 / 16 }') 
    297297                                      QUEUE=multi 
    298                                       NB_PROC_NODE=8 
     298                                      NB_PROC_NODE=16 
    299299                                  fi 
    300300                                fi 
     
    324324 
    325325        case ${COMPILER} in 
    326               ifort_MERCATOR_CLUSTER) 
    327                     #cat run_sette_test.job | sed -e"s:QUEUE:${QUEUE}:" > run_sette_test1.job  
    328                     #cat run_sette_test.job | sed -e"s/NPROC_NODE/${NB_PROC_NODE}/" > run_sette_test1.job  
    329                                                  #-e"s/NPROC_NODE/${NB_PROC_NODE}/" > run_sette_test1.job 
     326              openmpi_NAVITI_MERCATOR) 
    330327                    cat run_sette_test.job | sed -e"s/NPROC_NODE/${NB_PROC_NODE}/" \ 
    331328                                                 -e"s:QUEUE:${QUEUE}:" > run_sette_test1.job 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/SETTE/sette.sh

    r5602 r7261  
    123123# Directory to run the tests 
    124124SETTE_DIR=$(cd $(dirname "$0"); pwd) 
    125 MAIN_DIR=${SETTE_DIR%/SETTE} 
     125MAIN_DIR=$(dirname $SETTE_DIR) 
    126126CONFIG_DIR=${MAIN_DIR}/CONFIG 
    127127TOOLS_DIR=${MAIN_DIR}/TOOLS 
     
    140140# SAS             :11 & 12 
    141141# ISOMIP          :13 & 14 
    142 # ORCA2_LIM_OBS:   15 
    143 # ORCA2_AGRIF_LIM :16 
    144 for config in  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
     142# ORCA2_LIM_OBS   :15 
     143# ORCA2_AGRIF_LIM :16 & 17  
     144#                  18 & 19  
     145for config in  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
    145146 
    146147do 
     
    12371238    set_namelist namelist_cfg jpnj 2 
    12381239    set_namelist namelist_cfg jpnij 2 
     1240# 
    12391241    set_namelist 1_namelist_cfg nn_it000 1 
    12401242    set_namelist 1_namelist_cfg nn_itend 150 
    12411243    set_namelist 1_namelist_cfg ln_ctl .false. 
    12421244    set_namelist 1_namelist_cfg ln_clobber .true. 
     1245 
    12431246    if [ ${USING_MPMD} == "yes" ] ; then 
    12441247       set_xio_using_server iodef.xml true 
     
    12521255fi 
    12531256 
     1257# test code corruption with AGRIF 
     1258# Compile and run with or without AGRIF ORCA2_LIM 
     1259if [ ${config} -eq 17 ] ;  then 
     1260    # First run same as 16 but without zoom 
     1261    export TEST_NAME="SHORT_NOZOOM" 
     1262    cd ${CONFIG_DIR} 
     1263    . ./makenemo -m ${CMP_NAM} -n ORCA2AGUL_2_2 -r ORCA2_LIM -j 8 add_key "key_mpp_rep key_agrif" del_key "key_zdftmx" del_key ${DEL_KEYS} 
     1264    cd ${SETTE_DIR} 
     1265    . ./param.cfg 
     1266    . ./all_functions.sh 
     1267    . ./prepare_exe_dir.sh 
     1268    JOB_FILE=${EXE_DIR}/run_job.sh 
     1269    NPROC=4 
     1270    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 
     1271    cd ${EXE_DIR} 
     1272    set_namelist namelist_cfg nn_it000 1 
     1273    set_namelist namelist_cfg nn_itend 75 
     1274    set_namelist namelist_cfg ln_ctl .false. 
     1275    set_namelist namelist_cfg ln_clobber .true. 
     1276    set_namelist namelist_cfg nn_fwb 0 
     1277    set_namelist namelist_cfg jpni 2 
     1278    set_namelist namelist_cfg jpnj 2 
     1279    set_namelist namelist_cfg jpnij 4 
     1280#  
     1281#   Set the number of fine grids to zero:     
     1282    sed -i "1s/.*/0/" ${EXE_DIR}/AGRIF_FixedGrids.in 
     1283 
     1284    if [ ${USING_MPMD} == "yes" ] ; then 
     1285       set_xio_using_server iodef.xml true 
     1286    else 
     1287       set_xio_using_server iodef.xml false 
     1288    fi 
     1289    cd ${SETTE_DIR} 
     1290    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1291    cd ${SETTE_DIR} 
     1292    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} 
     1293 
     1294    export TEST_NAME="SHORT_NOAGRIF" 
     1295    cd ${CONFIG_DIR} 
     1296    . ./makenemo -m ${CMP_NAM} -n ORCA2AGUL_2_2_NAG -r ORCA2_LIM -j 8 add_key "key_mpp_rep" del_key "key_zdftmx" del_key ${DEL_KEYS} 
     1297    cd ${SETTE_DIR} 
     1298    . ./param.cfg 
     1299    . ./all_functions.sh 
     1300    . ./prepare_exe_dir.sh 
     1301    JOB_FILE=${EXE_DIR}/run_job.sh 
     1302    NPROC=4 
     1303    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 
     1304    cd ${EXE_DIR} 
     1305    set_namelist namelist_cfg nn_it000 1 
     1306    set_namelist namelist_cfg nn_itend 75 
     1307    set_namelist namelist_cfg ln_ctl .false. 
     1308    set_namelist namelist_cfg ln_clobber .true. 
     1309    set_namelist namelist_cfg nn_fwb 0 
     1310    set_namelist namelist_cfg jpni 2 
     1311    set_namelist namelist_cfg jpnj 2 
     1312    set_namelist namelist_cfg jpnij 4 
     1313# 
     1314    if [ ${USING_MPMD} == "yes" ] ; then 
     1315       set_xio_using_server iodef.xml true 
     1316    else 
     1317       set_xio_using_server iodef.xml false 
     1318    fi 
     1319    cd ${SETTE_DIR} 
     1320    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1321    cd ${SETTE_DIR} 
     1322    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} 
     1323 
     1324fi 
     1325 
     1326## Restartability tests for ORCA2_LIM_AGRIF  
     1327if [ ${config} -eq 18 ] ;  then 
     1328    export TEST_NAME="LONG" 
     1329    cd ${CONFIG_DIR} 
     1330    . ./makenemo -m ${CMP_NAM} -n ORCA2AGUL_LONG -r ORCA2_LIM -j 8 add_key "key_mpp_rep key_agrif" del_key "key_zdftmx" del_key ${DEL_KEYS} 
     1331    cd ${SETTE_DIR} 
     1332    . ./param.cfg 
     1333    . ./all_functions.sh 
     1334    . ./prepare_exe_dir.sh 
     1335    JOB_FILE=${EXE_DIR}/run_job.sh 
     1336    NPROC=4 
     1337    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 
     1338    cd ${EXE_DIR} 
     1339    set_namelist namelist_cfg cn_exp \"O2LP_LONG\" 
     1340    set_namelist namelist_cfg nn_it000 1 
     1341    set_namelist namelist_cfg nn_itend 150 
     1342    set_namelist namelist_cfg nn_stock 75 
     1343    set_namelist namelist_cfg ln_clobber .true. 
     1344    set_namelist namelist_cfg nn_fwb 0 
     1345    set_namelist namelist_cfg jpni 2 
     1346    set_namelist namelist_cfg jpnj 2 
     1347    set_namelist namelist_cfg jpnij 4 
     1348    set_namelist namelist_cfg nn_solv 2 
     1349# 
     1350    set_namelist 1_namelist_cfg cn_exp \"O2LP_LONG\" 
     1351    set_namelist 1_namelist_cfg nn_it000 1 
     1352    set_namelist 1_namelist_cfg nn_itend 300 
     1353    set_namelist 1_namelist_cfg nn_stock 150 
     1354    set_namelist 1_namelist_cfg ln_ctl .false. 
     1355    set_namelist 1_namelist_cfg ln_clobber .true. 
     1356# 
     1357    if [ ${USING_MPMD} == "yes" ] ; then 
     1358       set_xio_using_server iodef.xml true 
     1359    else 
     1360       set_xio_using_server iodef.xml false 
     1361    fi 
     1362    cd ${SETTE_DIR} 
     1363    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1364     
     1365    cd ${SETTE_DIR} 
     1366    export TEST_NAME="SHORT" 
     1367    . ./prepare_exe_dir.sh 
     1368    cd ${EXE_DIR} 
     1369    set_namelist namelist_cfg cn_exp \"O2LP_SHORT\" 
     1370    set_namelist namelist_cfg nn_it000 76 
     1371    set_namelist namelist_cfg nn_itend 150 
     1372    set_namelist namelist_cfg nn_stock 75 
     1373    set_namelist namelist_cfg ln_rstart .true. 
     1374    set_namelist namelist_cfg nn_rstctl 2 
     1375    set_namelist namelist_cfg ln_clobber .true. 
     1376    set_namelist namelist_cfg nn_fwb 0 
     1377    set_namelist namelist_cfg jpni 2 
     1378    set_namelist namelist_cfg jpnj 2 
     1379 
     1380    set_namelist namelist_cfg jpnij 4 
     1381    set_namelist namelist_cfg nn_solv 2 
     1382    set_namelist 1_namelist_cfg cn_exp \"O2LP_SHORT\" 
     1383    set_namelist 1_namelist_cfg nn_it000 151 
     1384    set_namelist 1_namelist_cfg nn_itend 300 
     1385    set_namelist 1_namelist_cfg nn_stock 150 
     1386    set_namelist 1_namelist_cfg ln_rstart .true. 
     1387    set_namelist 1_namelist_cfg nn_rstctl 2 
     1388    set_namelist 1_namelist_cfg ln_clobber .true. 
     1389    set_namelist namelist_cfg cn_ocerst_in \"O2LP_LONG_00000075_restart\" 
     1390    set_namelist namelist_ice_cfg cn_icerst_in \"O2LP_LONG_00000075_restart_ice\" 
     1391 
     1392    set_namelist 1_namelist_cfg cn_ocerst_in \"O2LP_LONG_00000150_restart\" 
     1393 
     1394    for (( i=1; i<=$NPROC; i++)) ; do 
     1395        L_NPROC=$(( $i - 1 )) 
     1396        L_NPROC=`printf "%04d\n" ${L_NPROC}` 
     1397        ln -sf ../LONG/O2LP_LONG_00000075_restart_${L_NPROC}.nc . 
     1398        ln -sf ../LONG/O2LP_LONG_00000075_restart_ice_${L_NPROC}.nc . 
     1399        ln -sf ../LONG/1_O2LP_LONG_00000150_restart_${L_NPROC}.nc . 
     1400    done 
     1401    if [ ${USING_MPMD} == "yes" ] ; then 
     1402       set_xio_using_server iodef.xml true 
     1403    else 
     1404       set_xio_using_server iodef.xml false 
     1405    fi 
     1406    cd ${SETTE_DIR} 
     1407    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1408    cd ${SETTE_DIR} 
     1409    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} 
     1410fi 
     1411 
     1412## Reproducibility tests for ORCA2_LIM_AGRIF 
     1413if [ ${config} -eq 19 ] ;  then 
     1414    export TEST_NAME="REPRO_4_4" 
     1415    cd ${CONFIG_DIR} 
     1416    . ./makenemo -m ${CMP_NAM} -n ORCA2AGUL_16 -r ORCA2_LIM -j 8 add_key "key_mpp_rep key_agrif" del_key "key_zdftmx" del_key ${DEL_KEYS} 
     1417    cd ${SETTE_DIR} 
     1418    . ./param.cfg 
     1419    . ./all_functions.sh 
     1420    . ./prepare_exe_dir.sh 
     1421    JOB_FILE=${EXE_DIR}/run_job.sh 
     1422    NPROC=16 
     1423    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 
     1424    cd ${EXE_DIR} 
     1425    set_namelist namelist_cfg nn_it000 1 
     1426    set_namelist namelist_cfg nn_itend 75 
     1427    set_namelist namelist_cfg ln_ctl .false. 
     1428    set_namelist namelist_cfg ln_clobber .true. 
     1429    set_namelist namelist_cfg nn_fwb 0 
     1430    set_namelist namelist_cfg jpni 4 
     1431    set_namelist namelist_cfg jpnj 4 
     1432    set_namelist namelist_cfg jpnij 16 
     1433    set_namelist namelist_cfg nn_solv 2 
     1434# 
     1435    set_namelist 1_namelist_cfg nn_it000 1 
     1436    set_namelist 1_namelist_cfg nn_itend 150 
     1437    set_namelist 1_namelist_cfg ln_ctl .false. 
     1438    set_namelist 1_namelist_cfg ln_clobber .true. 
     1439 
     1440    if [ ${USING_MPMD} == "yes" ] ; then 
     1441       set_xio_using_server iodef.xml true 
     1442    else 
     1443       set_xio_using_server iodef.xml false 
     1444    fi 
     1445    cd ${SETTE_DIR} 
     1446    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1447    cd ${SETTE_DIR} 
     1448    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} 
     1449 
     1450    cd ${SETTE_DIR} 
     1451    export TEST_NAME="REPRO_2_8" 
     1452    . ./prepare_exe_dir.sh 
     1453    JOB_FILE=${EXE_DIR}/run_job.sh 
     1454    NPROC=16 
     1455    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 
     1456    cd ${EXE_DIR} 
     1457    set_namelist namelist_cfg nn_it000 1 
     1458    set_namelist namelist_cfg nn_itend 75 
     1459    set_namelist namelist_cfg ln_ctl .false. 
     1460    set_namelist namelist_cfg ln_clobber .true. 
     1461    set_namelist namelist_cfg nn_fwb 0 
     1462    set_namelist namelist_cfg jpni 2 
     1463    set_namelist namelist_cfg jpnj 8 
     1464    set_namelist namelist_cfg jpnij 16 
     1465    set_namelist namelist_cfg nn_solv 2 
     1466# 
     1467    set_namelist 1_namelist_cfg nn_it000 1 
     1468    set_namelist 1_namelist_cfg nn_itend 150 
     1469    set_namelist 1_namelist_cfg ln_ctl .false. 
     1470    set_namelist 1_namelist_cfg ln_clobber .true. 
     1471 
     1472    if [ ${USING_MPMD} == "yes" ] ; then 
     1473       set_xio_using_server iodef.xml true 
     1474    else 
     1475       set_xio_using_server iodef.xml false 
     1476    fi 
     1477    cd ${SETTE_DIR} 
     1478    . ./prepare_job.sh input_ORCA2_LIM_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} 
     1479    cd ${SETTE_DIR} 
     1480    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG} 
     1481fi 
     1482 
    12541483done 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/SETTE/sette_rpt

    r4991 r7261  
    440440  endif 
    441441 
     442 
     443  if ( -d ./WORCA2AGUL_LONG ) then 
     444    set dorv = `ls -1rtd ./WORCA2AGUL_LONG/{$mach}/* | tail -1l ` 
     445    set dorv = $dorv:t 
     446    set f1o = ./WORCA2AGUL_LONG/{$mach}/{$dorv}/LONG/ocean.output 
     447    set f1s = ./WORCA2AGUL_LONG/{$mach}/{$dorv}/LONG/solver.stat 
     448    set f2o = ./WORCA2AGUL_LONG/{$mach}/{$dorv}/SHORT/ocean.output 
     449    set f2s = ./WORCA2AGUL_LONG/{$mach}/{$dorv}/SHORT/solver.stat 
     450   
     451    set nl = `wc -l $f2s` 
     452    tail -$nl[1] $f1s > f1.tmp$$ 
     453    cmp -s f1.tmp$$ $f2s 
     454    if ( $status == 0 ) then 
     455      echo "ORCA2_LIM_AGRIF restartability  passed" 
     456    else 
     457      echo "ORCA2_LIM_AGRIF restartability  FAILED" 
     458      if ( $pass == 1 ) then 
     459        echo "<return> to view solver.stat differences" 
     460        set y = $< 
     461        sdiff f1.tmp$$ $f2s 
     462        echo "<return> to view ocean.output differences" 
     463        set y = $< 
     464        sdiff $f1o $f2o | grep "|" 
     465        echo "<return> to continue" 
     466        set y = $< 
     467      endif 
     468    endif 
     469    rm f1.tmp$$ 
     470  endif 
     471 
     472  if ( -d ./WORCA2AGUL_16 ) then 
     473    set dorv = `ls -1rtd ./WORCA2AGUL_16/{$mach}/* | tail -1l ` 
     474    set dorv = $dorv:t 
     475    set f1o = ./WORCA2AGUL_16/{$mach}/{$dorv}/REPRO_2_8/ocean.output 
     476    set f1s = ./WORCA2AGUL_16/{$mach}/{$dorv}/REPRO_2_8/solver.stat 
     477    set f2o = ./WORCA2AGUL_16/{$mach}/{$dorv}/REPRO_4_4/ocean.output 
     478    set f2s = ./WORCA2AGUL_16/{$mach}/{$dorv}/REPRO_4_4/solver.stat 
     479   
     480    cmp -s $f1s $f2s 
     481    if ( $status == 0 ) then 
     482      echo "ORCA2_LIM_AGRIF reproducibility passed" 
     483    else 
     484      echo "ORCA2_LIM_AGRIF reproducibility FAILED" 
     485      if ( $pass == 1 ) then 
     486        echo "<return> to view solver.stat differences" 
     487        set y = $< 
     488        sdiff $f1s $f2s 
     489        echo "<return> to view ocean.output differences" 
     490        set y = $< 
     491        sdiff $f1o $f2o | grep "|" 
     492        echo "<return> to continue" 
     493        set y = $< 
     494      endif 
     495    endif 
     496  endif 
     497 
     498  if ( -d ./WORCA2AGUL_2_2_NAG ) then 
     499    set dorv = `ls -1rtd ./WORCA2AGUL_2_2_NAG/{$mach}/* | tail -1l ` 
     500    set dorv = $dorv:t 
     501    set f1o = ./WORCA2AGUL_2_2_NAG/{$mach}/{$dorv}/SHORT_NOAGRIF/ocean.output 
     502    set f1s = ./WORCA2AGUL_2_2_NAG/{$mach}/{$dorv}/SHORT_NOAGRIF/solver.stat 
     503    set dorv = `ls -1rtd ./WORCA2AGUL_2_2/{$mach}/* | tail -1l ` 
     504    set dorv = $dorv:t 
     505    set f2o = ./WORCA2AGUL_2_2/{$mach}/{$dorv}/SHORT_NOZOOM/ocean.output 
     506    set f2s = ./WORCA2AGUL_2_2/{$mach}/{$dorv}/SHORT_NOZOOM/solver.stat 
     507   
     508    cmp -s $f1s $f2s 
     509    if ( $status == 0 ) then 
     510      echo "ORCA2_LIM_AGRIF code corruption test passed" 
     511    else 
     512      echo "ORCA2_LIM_AGRIF code corruption test FAILED" 
     513      if ( $pass == 1 ) then 
     514        echo "<return> to view solver.stat differences" 
     515        set y = $< 
     516        sdiff $f1s $f2s 
     517        echo "<return> to view ocean.output differences" 
     518        set y = $< 
     519        sdiff $f1o $f2o | grep "|" 
     520        echo "<return> to continue" 
     521        set y = $< 
     522      endif 
     523    endif 
     524  endif 
     525 
    442526  echo "<return> for second (more detailed) pass (y/n)" 
    443527  set y = $< 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/Fmake_config.sh

    r3715 r7261  
    6565[ -f ${2}/EXP00/iodef.xml ] &&  \cp -R  ${2}/EXP00/iodef.xml ${1}/EXP00/. 
    6666[ -f ${2}/EXP00/field_def.xml ] &&  \cp -R  ${2}/EXP00/field_def.xml ${1}/EXP00/. 
     67[ -f ${2}/EXP00/file_def.xml ] &&  \cp -R  ${2}/EXP00/file_def.xml ${1}/EXP00/. 
    6768[ -f ${2}/EXP00/domain_def.xml ] &&  \cp -R  ${2}/EXP00/domain_def.xml ${1}/EXP00/. 
    6869[ -f ${2}/EXP00/xmlio_server.def ] &&  \cp -R  ${2}/EXP00/xmlio_server.def ${1}/EXP00/. 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/Fprep_agrif.sh

    r3294 r7261  
    5757#- AGRIF conv 
    5858if [ "$AGRIFUSE" == 1 ]; then 
     59#-MPI for AGRIF 
     60if [ ! -f ${MAIN_DIR}/EXTERNAL/AGRIF/nemo_mpi.h ];then 
     61   echo '#if defined key_mpp_mpi' > ${MAIN_DIR}/EXTERNAL/AGRIF/nemo_mpi.h 
     62   echo '#define AGRIF_MPI'      >> ${MAIN_DIR}/EXTERNAL/AGRIF/nemo_mpi.h 
     63   echo '#endif'                 >> ${MAIN_DIR}/EXTERNAL/AGRIF/nemo_mpi.h 
     64fi 
    5965 
    6066#- CONV 
    61 #fcm build ${TOOLS_DIR}/conv.cfg || exit 1 
    62 gmake -C ${MAIN_DIR}/EXTERNAL/AGRIF/LIB 
     67fcm build ${COMPIL_DIR}/conv.cfg || exit 1 
     68#C_COMPILER=${CC-cc} 
     69#gmake CC=${C_COMPILER} -C ${MAIN_DIR}/EXTERNAL/AGRIF/LIB 
    6370 
    6471#- AGRIF sources 
     
    6774[ ! -d $2/$1/OPAFILES/AGRIF_MODELFILES ] && mkdir  $2/$1/OPAFILES/AGRIF_MODELFILES 
    6875cp -f -r ${MAIN_DIR}/EXTERNAL/AGRIF/agrif_opa.in  $2/$1/OPAFILES/ 
    69 cp -f -r ${MAIN_DIR}/EXTERNAL/AGRIF/conv  $2/$1/OPAFILES/ 
     76#cp -f -r ${MAIN_DIR}/EXTERNAL/AGRIF/conv  $2/$1/OPAFILES/ 
     77cp -f -r $2/$1/AGRIFLIB/bin/conv  $2/$1/OPAFILES/ 
    7078 
    7179fi 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/bld.cfg

    r4990 r7261  
    4141bld::tool::fppflags::nemo      %FPPFLAGS -I$CONFIG_DIR/$NEW_CONF/OPAFILES/inc 
    4242bld::tool::fppflags::ioipsl    %FPPFLAGS 
    43 bld::tool::fppflags::agrif     %FPPFLAGS 
     43bld::tool::fppflags::agrif     %FPPFLAGS -include ${MAIN_DIR}/EXTERNAL/AGRIF/nemo_mpi.h 
    4444 
    4545# Ignore the following dependencies 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/bld_preproagr.cfg

    r4990 r7261  
    5252bld::excl_dep       use::ioipsl 
    5353bld::excl_dep       use::xios 
     54bld::excl_dep        use::agrif_grids 
    5455bld::excl_dep       use::agrif_types 
    5556bld::excl_dep       use::agrif_util 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/conv.cfg

    r3294 r7261  
    88# Build information 
    99# ------------------------------------------------------------------------------ 
    10 inc $COMPIL_DIR/arch.fcm 
     10inc $COMPIL_DIR/arch_nemo.fcm 
    1111 
     12bld::tool::cc        %CC 
     13bld::tool::cflags    %CFLAGS 
    1214bld::tool::make      %MK 
    1315 
     
    1921dir::root            $NEMO_TDIR/$NEW_CONF/AGRIFLIB 
    2022 
    21 bld::tool::cflags::convsrc  -O0   
    22 bld::tool::ld::convsrc   cc 
    23 bld::tool::ldflags::convsrc -O  ../obj/fortran.o ../obj/fortran.o  
    24 bld::pp 1 
     23#bld::tool::cflags::convsrc  -O0   
     24#bld::tool::ld::convsrc   cc 
     25#bld::tool::ldflags::convsrc -O  ../obj/fortran.o ../obj/fortran.o  
     26#bld::pp 1 
    2527 
    2628 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/COMPILE/tools.txt

    r2281 r7261  
    1 REBUILD  
     1SIREN  
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/DMP_TOOLS/src/zoom.F90

    r4739 r7261  
    2929      NAMELIST/nam_zoom_dmp/lzoom_n,lzoom_e,lzoom_w,lzoom_s 
    3030      !!---------------------------------------------------------------------- 
    31       ! 
    32       IF( nn_timing == 1 )  CALL timing_start( 'dtacof_zoom') 
    33       ! 
    3431       
    3532      ! Read namelist 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/MISCELLANEOUS/icb_pp.py

    r4990 r7261  
    5555if procnum < 1: 
    5656   print('Need some files to collate! procnum = ',procnum) 
    57    sys.exit() 
     57   sys.exit(11) 
    5858 
    5959icu = [] 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/MPP_PREP/src/mpp_optimiz_zoom_nc.f90

    r2143 r7261  
    258258                 ijlb=ijdom(jni2,jnj2) 
    259259              ENDIF 
     260 
     261              ! Check wet points over the entire domain to preserve the MPI communication stencil 
    260262              isurf=0 
    261               DO jj=1+jprecj,ippdj(jni2,jnj2)-jprecj 
    262                  DO  ji=1+jpreci,ippdi(jni2,jnj2)-jpreci 
     263              DO jj=1,ippdj(jni2,jnj2) 
     264                 DO  ji=1,ippdi(jni2,jnj2) 
    263265                    IF(zmask(ji+iilb-1,jj+ijlb-1).EQ.1.) isurf=isurf+1 
    264266                 END DO 
    265267              END DO 
     268 
    266269              IF(isurf.EQ.0) THEN 
    267270                 ivide=ivide+1 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/MPP_PREP/src/mppopt_showproc_nc.f90

    r2143 r7261  
    289289                 ijlb=ijdom(jni2,jnj2) 
    290290              ENDIF 
     291 
     292              ! Check wet points over the entire domain to preserve the MPI communication stencil 
    291293              isurf=0 
    292  
    293               DO jj=1+jprecj,ippdj(jni2,jnj2)-jprecj 
    294                  DO  ji=1+jpreci,ippdi(jni2,jnj2)-jpreci 
     294              DO jj=1,ippdj(jni2,jnj2) 
     295                 DO  ji=1,ippdi(jni2,jnj2) 
    295296                    IF(zmask(ji+iilb-1,jj+ijlb-1).EQ.1.) isurf=isurf+1 
    296297                 END DO 
    297298              END DO 
     299 
    298300              IF(isurf.EQ.0) THEN 
    299301                 ivide=ivide+1 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/NESTING/agulhas

    r2455 r7261  
    1717    removeclosedseas = true 
    1818    type_bathy_interp = 0  
     19    rn_hmin = -3  
    1920/    
    2021 
     
    3940    pa1  = 245.58132232490 
    4041    N  = 31 
     42    ldbletanh   = .FALSE. 
     43    pa2         = 0.0 
     44    ppkth2      = 0.0 
     45    ppacr2      = 0.0 
    4146/     
    4247     
     
    4550    parent_bathy_meter = 'bathy_meter.nc' 
    4651    parent_batmet_name = 'Bathymetry' 
    47     e3zps_min = 25. 
    48     e3zps_rat = 0.2 
     52    e3zps_min = 20. 
     53    e3zps_rat = 0.1 
    4954/ 
    5055 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/NESTING/src/agrif_connect_topo.f90

    r2143 r7261  
    105105    IMPLICIT NONE 
    106106    ! 
    107     REAL*8 :: za1,za0,zsur,zacr,zkth,zmin,zmax 
     107    REAL*8 :: za2,za1,za0,zsur,zacr,zkth,zacr2,zkth2,zmin,zmax 
    108108    TYPE(Coordinates) :: Grid 
    109109    INTEGER :: i,j 
     
    134134       za0  = pa0 
    135135       za1  = pa1 
     136       za2  = pa2 
    136137       ! 
    137138    ELSE 
     
    147148 
    148149    zacr = ppacr 
    149     zkth = ppkth  
    150  
     150    zkth = ppkth 
     151    zacr2 = ppacr2 
     152    zkth2 = ppkth2    
    151153    ! 
    152154    ALLOCATE(gdepw(N),gdept(N),e3w(N),e3t(N)) 
    153155    ! 
    154     DO i = 1,N 
    155        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
    156        gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
    157        e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
    158        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
    159     END DO 
     156    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     157       za1 = pphmax / FLOAT(N-1)  
     158       DO i = 1, N 
     159          gdepw(i) = ( i - 1   ) * za1 
     160          gdept(i) = ( i - 0.5 ) * za1 
     161          e3w  (i) =  za1 
     162          e3t  (i) =  za1 
     163       END DO 
     164    ELSE                            ! Madec & Imbard 1996 function 
     165       IF( .NOT. ldbletanh ) THEN 
     166          DO i = 1,N 
     167             !  
     168             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     169             gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
     170             e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
     171             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     172             ! 
     173          END DO 
     174       ELSE 
     175          DO i = 1,N 
     176             ! Double tanh function 
     177             gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     178                &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     179             gdept(i) = ( zsur + za0*(i+0.5) + za1 * zacr * LOG ( COSH( ((i+0.5)-zkth ) / zacr  ) )    & 
     180                &                            + za2 * zacr2* LOG ( COSH( ((i+0.5)-zkth2) / zacr2 ) )  ) 
     181             e3w  (i) =          za0         + za1        * TANH(       (i-zkth ) / zacr  )            & 
     182                &                            + za2        * TANH(       (i-zkth2) / zacr2 ) 
     183             e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     184                &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     185            END DO 
     186       ENDIF 
     187    ENDIF 
    160188    ! 
    161189    gdepw(1) = 0.0 
    162190    zmax = gdepw(N) + e3t(N) 
    163     zmin = gdepw(4) 
     191    IF( rn_hmin < 0. ) THEN  ;   i = - INT( rn_hmin )                                  ! from a nb of level 
     192    ELSE                     ;   i = MINLOC( gdepw, mask = gdepw > rn_hmin, dim = 1 )  ! from a depth 
     193    ENDIF 
     194    zmin = gdepw(i+1) 
    164195    ! 
    165196    IF ( .NOT. ASSOCIATED(Grid%bathy_level)) & 
     
    227258    IMPLICIT NONE 
    228259    ! 
    229     REAL*8 :: za1,za0,zsur,zacr,zkth,zmin,zmax 
     260    REAL*8 :: za2,za1,za0,zsur,zacr,zkth,zacr2,zkth2,zmin,zmax 
    230261    TYPE(Coordinates) :: Grid 
    231262    INTEGER :: i,j 
     
    257288       za0  = pa0 
    258289       za1  = pa1 
     290       za2  = pa2 
    259291       ! 
    260292    ELSE 
     
    264296       WRITE(*,*) 'please check values of variables' 
    265297       WRITE(*,*) 'in namelist vertical_grid section' 
    266        WRITE(*,*) ' ' 
    267        STOP       
     298       WRITE(*,*) ' '  
     299       STOP      
    268300       !        
    269301    ENDIF 
    270     ! 
     302 
    271303    zacr = ppacr 
    272     zkth = ppkth  
    273  
     304    zkth = ppkth 
     305    zacr2 = ppacr2 
     306    zkth2 = ppkth2    
    274307    ! 
    275308    ALLOCATE(gdepw(N),gdept(N),e3w(N),e3t(N)) 
    276309    ! 
    277     DO i = 1,N 
    278        !  
    279        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
    280        gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
    281        e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
    282        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
    283     END DO 
     310    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     311       za1 = pphmax / FLOAT(N-1)  
     312       DO i = 1, N 
     313          gdepw(i) = ( i - 1   ) * za1 
     314          gdept(i) = ( i - 0.5 ) * za1 
     315          e3w  (i) =  za1 
     316          e3t  (i) =  za1 
     317       END DO 
     318    ELSE                            ! Madec & Imbard 1996 function 
     319       IF( .NOT. ldbletanh ) THEN 
     320          DO i = 1,N 
     321             !  
     322             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     323             gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
     324             e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
     325             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     326             ! 
     327          END DO 
     328       ELSE 
     329          DO i = 1,N 
     330             ! Double tanh function 
     331             gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     332                &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     333             gdept(i) = ( zsur + za0*(i+0.5) + za1 * zacr * LOG ( COSH( ((i+0.5)-zkth ) / zacr  ) )    & 
     334                &                            + za2 * zacr2* LOG ( COSH( ((i+0.5)-zkth2) / zacr2 ) )  ) 
     335             e3w  (i) =          za0         + za1        * TANH(       (i-zkth ) / zacr  )            & 
     336                &                            + za2        * TANH(       (i-zkth2) / zacr2 ) 
     337             e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     338                &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     339         END DO 
     340       ENDIF 
     341    ENDIF 
    284342    ! 
    285343    gdepw(1) = 0.0   
     
    684742  ! for consistency with fine grid bathymetry         * 
    685743  !                        * 
    686   ! if a given coarse grid point is masked and one of the      * 
    687   ! child grid points contained in this coarse cell is not masked * 
    688   ! the corresponding coarse grid point is unmasked with gdepw(4) * 
    689   ! value                        * 
     744  ! if a given coarse grid point is masked and one of the     * 
     745  ! child grid points contained in this coarse cell is not masked * 
     746  ! the corresponding coarse grid point is unmasked with rn_hmin * 
     747  ! value                            * 
    690748  !                        * 
    691749  ! - input :                    * 
     
    704762    ! 
    705763    INTEGER :: ideb,jdeb,ifin,jfin 
    706     REAL*8 :: za1,za0,zsur,zacr,zkth,zmin 
     764    REAL*8 :: za2,za1,za0,zsur,zacr,zkth,zacr2,zkth2,zmin 
    707765    INTEGER :: i,j 
    708766    INTEGER :: k1 
     
    727785       za0  = pa0 
    728786       za1  = pa1 
     787       za2  = pa2 
    729788       ! 
    730789    ELSE 
     
    740799 
    741800    zacr = ppacr 
    742     zkth = ppkth  
    743  
     801    zkth = ppkth 
     802    zacr2 = ppacr2 
     803    zkth2 = ppkth2    
    744804    ! 
    745805    ALLOCATE(gdepw(N),gdept(N),e3w(N),e3t(N)) 
    746806    ! 
    747     DO i = 1,N 
    748        !  
    749        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
    750        gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
    751        e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
    752        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
    753     END DO 
    754     ! 
    755     zmin = gdepw(4) 
     807    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     808       za1 = pphmax / FLOAT(N-1)  
     809       DO i = 1, N 
     810          gdepw(i) = ( i - 1   ) * za1 
     811          gdept(i) = ( i - 0.5 ) * za1 
     812          e3w  (i) =  za1 
     813          e3t  (i) =  za1 
     814       END DO 
     815    ELSE                            ! Madec & Imbard 1996 function 
     816       IF( .NOT. ldbletanh ) THEN 
     817          DO i = 1,N 
     818             !  
     819             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     820             gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
     821             e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
     822             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     823             ! 
     824          END DO 
     825       ELSE 
     826          DO i = 1,N 
     827             ! Double tanh function 
     828             gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     829                &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     830             gdept(i) = ( zsur + za0*(i+0.5) + za1 * zacr * LOG ( COSH( ((i+0.5)-zkth ) / zacr  ) )    & 
     831                &                            + za2 * zacr2* LOG ( COSH( ((i+0.5)-zkth2) / zacr2 ) )  ) 
     832             e3w  (i) =          za0         + za1        * TANH(       (i-zkth ) / zacr  )            & 
     833                &                            + za2        * TANH(       (i-zkth2) / zacr2 ) 
     834             e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     835                &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     836          END DO 
     837       ENDIF 
     838    ENDIF 
     839    ! 
     840    IF( rn_hmin < 0. ) THEN  ;   i = - INT( rn_hmin )                                  ! from a nb of level 
     841    ELSE                     ;   i = MINLOC( gdepw, mask = gdepw > rn_hmin, dim = 1 )  ! from a depth 
     842    ENDIF 
     843    zmin = gdepw(i+1) 
    756844    !       
    757845    diff = 0 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/NESTING/src/agrif_partial_steps.f90

    r2143 r7261  
    3636    !        
    3737    TYPE(Coordinates) :: Grid                      
    38     REAL*8 :: za1,za0,zsur,zacr,zkth,zdepth,zdepwp,zmin,zmax,zdiff,ze3tp,ze3wp 
     38    REAL*8 :: za2,za1,za0,zsur,zacr,zkth,zacr2,zkth2,zdepth,zdepwp,zmin,zmax,zdiff,ze3tp,ze3wp 
    3939    INTEGER :: i,j,jk,jj,ji,jpj,jpi,ik,ii,ipt,jpt 
    4040    INTEGER, DIMENSION(1) :: k 
     
    7676       za0  = pa0 
    7777       za1  = pa1 
     78       za2  = pa2 
    7879       ! 
    7980    ELSE 
     
    8889    ENDIF 
    8990 
    90     zacr = ppacr 
    91     zkth = ppkth        
    92     ! 
    93     DO i = 1,N 
    94        !  
    95        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
    96        gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
    97        e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
    98        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
    99        ! 
    100     END DO 
    101     ! 
    102  
     91    zacr  = ppacr 
     92    zkth  = ppkth      
     93    zacr2 = ppacr2 
     94    zkth2 = ppkth2   
     95    ! 
     96    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     97         za1 = pphmax / FLOAT(N-1)  
     98         DO i = 1, N 
     99            gdepw(i) = ( i - 1   ) * za1 
     100            gdept(i) = ( i - 0.5 ) * za1 
     101            e3w  (i) =  za1 
     102            e3t  (i) =  za1 
     103         END DO 
     104    ELSE                            ! Madec & Imbard 1996 function 
     105       IF( .NOT. ldbletanh ) THEN 
     106          DO i = 1,N 
     107             !  
     108             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     109             gdept(i) = (zsur+za0*(i+0.5)+za1*zacr*LOG(COSH(((i+0.5)-zkth)/zacr))) 
     110             e3w(i)   = (za0 + za1 * TANH((i-zkth)/zacr)) 
     111             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     112             ! 
     113          END DO 
     114       ELSE 
     115            DO i = 1,N 
     116               ! Double tanh function 
     117               gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     118                  &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     119               gdept(i) = ( zsur + za0*(i+0.5) + za1 * zacr * LOG ( COSH( ((i+0.5)-zkth ) / zacr  ) )    & 
     120                  &                            + za2 * zacr2* LOG ( COSH( ((i+0.5)-zkth2) / zacr2 ) )  ) 
     121               e3w  (i) =          za0         + za1        * TANH(       (i-zkth ) / zacr  )            & 
     122                  &                            + za2        * TANH(       (i-zkth2) / zacr2 ) 
     123               e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     124                  &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     125            END DO 
     126       ENDIF 
     127    ENDIF 
    103128    gdepw(1) = 0.0   
    104129    ! 
     
    106131    ! 
    107132    zmax = gdepw(N) + e3t(N) 
    108     zmin = gdepw(4) 
     133    IF( rn_hmin < 0. ) THEN  ;   i = - INT( rn_hmin )                                  ! from a nb of level 
     134    ELSE                     ;   i = MINLOC( gdepw, mask = gdepw > rn_hmin, dim = 1 )  ! from a depth 
     135    ENDIF 
     136    zmin = gdepw(i+1) 
    109137    ! 
    110138    ! Initialize bathy_level to the maximum ocean level available 
     
    235263    INTEGER :: i,j,ji,ij,ii,jj,jpt,ipt 
    236264    REAL,DIMENSION(N) :: gdepw,e3t 
    237     REAL :: za0,za1,zsur,zacr,zkth,zmin,zmax,zdepth 
     265    REAL :: za0,za1,za2,zsur,zacr,zacr2,zkth,zkth2,zmin,zmax,zdepth 
    238266    INTEGER :: kbathy,jk,diff 
    239267    INTEGER :: bornex,borney,bornex2,borney2 
    240     !        
     268    ! 
    241269    IF ( ( pa0 == 0 .OR. pa1 == 0 .OR. psur == 0 ) & 
    242270         .AND. ppdzmin.NE.0 .AND. pphmax.NE.0 ) THEN  
    243271       !     
     272       WRITE(*,*) 'psur,pa0,pa1 computed' 
    244273       za1=( ppdzmin - pphmax / (N-1) )          & 
    245274            / ( TANH((1-ppkth)/ppacr) - ppacr/(N-1) & 
     
    253282         pa0.NE.0 .AND. pa1.NE.0 ) THEN 
    254283       !        
     284       WRITE(*,*) 'psur,pa0,pa1 given by namelist' 
    255285       zsur = psur 
    256286       za0  = pa0 
    257287       za1  = pa1 
     288       za2  = pa2 
    258289       ! 
    259290    ELSE 
     
    263294       WRITE(*,*) 'please check values of variables' 
    264295       WRITE(*,*) 'in namelist vertical_grid section' 
    265        WRITE(*,*) ' '       
    266        !        
    267     ENDIF 
    268     !        
    269     zacr = ppacr 
    270     zkth = ppkth        
    271     ! 
    272     DO i = 1,N 
    273        !  
    274        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr))) 
    275        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr))        
    276     END DO 
    277     ! 
     296       WRITE(*,*) ' '   
     297       STOP     
     298       !        
     299    ENDIF 
     300 
     301    zacr  = ppacr 
     302    zkth  = ppkth      
     303    zacr2 = ppacr2 
     304    zkth2 = ppkth2   
     305    ! 
     306    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     307         za1 = pphmax / FLOAT(N-1)  
     308         DO i = 1, N 
     309            gdepw(i) = ( i - 1   ) * za1 
     310            e3t  (i) =  za1 
     311         END DO 
     312    ELSE                            ! Madec & Imbard 1996 function 
     313       IF( .NOT. ldbletanh ) THEN 
     314          DO i = 1,N 
     315             !  
     316             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     317             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     318             ! 
     319          END DO 
     320       ELSE 
     321            DO i = 1,N 
     322               ! Double tanh function 
     323               gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     324                  &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     325               e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     326                  &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     327            END DO 
     328       ENDIF 
     329    ENDIF 
    278330    gdepw(1) = 0.0 
    279     ! 
    280331    ! 
    281332    diff = 0       
     
    344395    ! 
    345396    zmax = gdepw(N) + e3t(N) 
    346     zmin = gdepw(4)  
     397    IF( rn_hmin < 0. ) THEN  ;   i = - INT( rn_hmin )                                  ! from a nb of level 
     398    ELSE                     ;   i = MINLOC( gdepw, mask = gdepw > rn_hmin, dim = 1 )  ! from a depth 
     399    ENDIF 
     400    zmin = gdepw(i+1) 
    347401    ! 
    348402    ! check that interpolated value stays at the same level          
     
    646700    REAL*8, DIMENSION(:,:,:) :: fse3u,fse3t,fse3v 
    647701    !                                   
    648     REAL*8 :: za1,za0,zsur,zacr,zkth,zdepth,zdepwp,zmin,zmax,zdiff,ze3tp,ze3wp 
     702    REAL*8 :: za2,za1,za0,zsur,zacr,zkth,zacr2,zkth2,zdepth,zdepwp,zmin,zmax,zdiff,ze3tp,ze3wp 
    649703    INTEGER :: i,j,jk,jj,ji,jpj,jpi,ik,ii,ipt,jpt,jpk 
    650704    INTEGER, DIMENSION(1) :: k 
     
    660714    ALLOCATE(gdepw(jpk),e3t(jpk)) 
    661715    ALLOCATE(gdepw_ps(jpi,jpj,jpk))                   
    662     !        
     716    !   
    663717    IF ( ( pa0 == 0 .OR. pa1 == 0 .OR. psur == 0 ) & 
    664718         .AND. ppdzmin.NE.0 .AND. pphmax.NE.0 ) THEN  
     
    668722            / ( TANH((1-ppkth)/ppacr) - ppacr/(jpk-1) & 
    669723            *  (  LOG( COSH( (jpk - ppkth) / ppacr) )      & 
    670             - LOG( COSH( ( 1  - ppkth) / ppacr) )  )  )  
    671        ! 
     724            - LOG( COSH( ( 1  - ppkth) / ppacr) )  )  ) 
     725 
    672726       za0  = ppdzmin - za1 * TANH( (1-ppkth) / ppacr ) 
    673727       zsur = - za0 - za1 * ppacr * LOG( COSH( (1-ppkth) / ppacr )  ) 
     
    676730         pa0.NE.0 .AND. pa1.NE.0 ) THEN 
    677731       !        
     732       WRITE(*,*) 'psur,pa0,pa1 given by namelist' 
    678733       zsur = psur 
    679734       za0  = pa0 
    680        za1  = pa1    
    681        !        
    682     ENDIF 
    683  
    684     zacr = ppacr 
    685     zkth = ppkth        
     735       za1  = pa1 
     736       za2  = pa2 
     737       ! 
     738    ELSE 
     739       !        
     740       WRITE(*,*) 'ERROR ***** bad vertical grid parameters ...'  
     741       WRITE(*,*) ' ' 
     742       WRITE(*,*) 'please check values of variables' 
     743       WRITE(*,*) 'in namelist vertical_grid section' 
     744       WRITE(*,*) ' '   
     745       STOP     
     746       !        
     747    ENDIF 
     748 
     749    zacr  = ppacr 
     750    zkth  = ppkth      
     751    zacr2 = ppacr2 
     752    zkth2 = ppkth2   
     753    ! 
     754    IF( ppkth == 0. ) THEN            !  uniform vertical grid  
     755         za1 = pphmax / FLOAT(jpk-1)  
     756         DO i = 1, jpk 
     757            gdepw(i) = ( i - 1   ) * za1 
     758            e3t  (i) =  za1 
     759         END DO 
     760    ELSE                            ! Madec & Imbard 1996 function 
     761       IF( .NOT. ldbletanh ) THEN 
     762          DO i = 1,jpk 
     763             !  
     764             gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
     765             e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
     766             ! 
     767          END DO 
     768       ELSE 
     769            DO i = 1,jpk 
     770               ! Double tanh function 
     771               gdepw(i) = ( zsur + za0*i  + za1 * zacr * LOG ( COSH( (i-zkth ) / zacr  ) )               & 
     772                  &                       + za2 * zacr2* LOG ( COSH( (i-zkth2) / zacr2 ) )  ) 
     773               e3t  (i) =          za0         + za1        * TANH(       ((i+0.5)-zkth ) / zacr  )      & 
     774                  &                            + za2        * TANH(       ((i+0.5)-zkth2) / zacr2 ) 
     775            END DO 
     776       ENDIF 
     777    ENDIF          
    686778    !          
    687779    !                 
    688780    DO i = 1,jpk 
    689        !  
    690        gdepw(i) = (zsur+za0*i+za1*zacr*LOG(COSH((i-zkth)/zacr)))  
    691        e3t(i)   = (za0 + za1 * TANH(((i+0.5)-zkth)/zacr)) 
    692781       !        
    693782       fse3t(:,:,i) = e3t(i) 
     
    700789    ! 
    701790    zmax = gdepw(jpk) + e3t(jpk) 
    702     zmin = gdepw(4) 
     791    IF( rn_hmin < 0. ) THEN  ;   i = - INT( rn_hmin )                                  ! from a nb of level 
     792    ELSE                     ;   i = MINLOC( gdepw, mask = gdepw > rn_hmin, dim = 1 )  ! from a depth 
     793    ENDIF 
     794    zmin = gdepw(i+1) 
    703795    ! 
    704796    DO jj = 1, jpj 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/NESTING/src/agrif_types.f90

    r2455 r7261  
    5151  INTEGER jpizoom,jpjzoom,nb_connection_pts 
    5252  !       
    53   REAL*8 ppacr,ppdzmin,pphmax,ppkth,smoothing_factor,e3zps_min,e3zps_rat 
    54   REAL*8 psur,pa0,pa1,adatrj 
     53  REAL*8 rn_hmin 
     54  REAL*8 ppkth2, ppacr2, ppkth,ppacr,ppdzmin,pphmax,smoothing_factor,e3zps_min,e3zps_rat 
     55  REAL*8 psur,pa0,pa1,pa2,adatrj 
    5556  !        
     57  LOGICAL ldbletanh 
    5658  LOGICAL partial_steps,smoothing,bathy_update 
    5759  LOGICAL new_topo,removeclosedseas,dimg,iom_activated 
     
    7072  !       
    7173  NAMELIST /bathymetry/new_topo,elevation_database,elevation_name,smoothing,smoothing_factor, & 
    72        nb_connection_pts,removeclosedseas,type_bathy_interp       
     74       nb_connection_pts,removeclosedseas,type_bathy_interp,rn_hmin       
    7375  !       
    7476  NAMELIST /nesting/imin,imax,jmin,jmax,rho,rhot,bathy_update,updated_parent_file       
    7577  ! 
    76   NAMELIST /vertical_grid/ppkth,ppacr,ppdzmin,pphmax,psur,pa0,pa1,N 
     78  NAMELIST /vertical_grid/ppkth,ppacr,ppdzmin,pphmax,psur,pa0,pa1,N,ldbletanh,pa2,ppkth2,ppacr2 
    7779  !  
    7880  NAMELIST /partial_cells/partial_steps,parent_bathy_meter,parent_batmet_name,e3zps_min,e3zps_rat       
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/REBUILD_NEMO/src/rebuild_nemo.f90

    r3025 r7261  
    200200      WRITE(numerr,*) 'Attribute DOMAIN_number_total is : ', ndomain_file 
    201201      WRITE(numerr,*) 'Number of files specified in namelist is: ', ndomain 
    202       STOP 
     202      STOP 9 
    203203   ENDIF 
    204204   
     
    268268      WRITE(numerr,*) 'Attribute DOMAIN_local_sizes is : ', local_sizes 
    269269      WRITE(numerr,*) 'Dimensions to be rebuilt are of size : ', outdimlens(rebuild_dims(1)), outdimlens(rebuild_dims(2))  
    270       STOP 
     270      STOP 9 
    271271   ENDIF 
    272272 
     
    384384            SELECT CASE( xtype ) 
    385385               CASE( NF90_BYTE ) 
     386                  globaldata_0d_i1 = 0 
    386387                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_0d_i1 ) ) 
    387388               CASE( NF90_SHORT ) 
     389                  globaldata_0d_i2 = 0 
    388390                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_0d_i2 ) ) 
    389391               CASE( NF90_INT ) 
     392                  globaldata_0d_i4 = 0 
    390393                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_0d_i4 ) ) 
    391394               CASE( NF90_FLOAT ) 
     395                  globaldata_0d_sp = 0. 
    392396                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_0d_sp ) ) 
    393397               CASE( NF90_DOUBLE ) 
     398                  globaldata_0d_dp = 0. 
    394399                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_0d_dp ) ) 
    395400               CASE DEFAULT 
    396401                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    397                   STOP 
     402                  STOP 9 
    398403            END SELECT 
    399404 
     
    403408               CASE( NF90_BYTE ) 
    404409                  ALLOCATE(globaldata_1d_i1(indimlens(dimids(1)))) 
     410                  globaldata_1d_i1(:) = 0 
    405411                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_1d_i1 ) ) 
    406412               CASE( NF90_SHORT ) 
    407413                  ALLOCATE(globaldata_1d_i2(indimlens(dimids(1)))) 
     414                  globaldata_1d_i2(:) = 0 
    408415                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_1d_i2 ) ) 
    409416               CASE( NF90_INT ) 
    410417                  ALLOCATE(globaldata_1d_i4(indimlens(dimids(1)))) 
     418                  globaldata_1d_i4(:) = 0 
    411419                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_1d_i4 ) ) 
    412420               CASE( NF90_FLOAT ) 
    413421                  ALLOCATE(globaldata_1d_sp(indimlens(dimids(1)))) 
     422                  globaldata_1d_sp(:) = 0. 
    414423                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_1d_sp ) ) 
    415424               CASE( NF90_DOUBLE ) 
    416425                  ALLOCATE(globaldata_1d_dp(indimlens(dimids(1)))) 
     426                  globaldata_1d_dp(:) = 0. 
    417427                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_1d_dp ) ) 
    418428               CASE DEFAULT 
    419429                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    420                   STOP 
     430                  STOP 9 
    421431            END SELECT 
    422432 
     
    426436               CASE( NF90_BYTE ) 
    427437                  ALLOCATE(globaldata_2d_i1(indimlens(dimids(1)),indimlens(dimids(2)))) 
     438                  globaldata_2d_i1(:,:) = 0 
    428439                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_2d_i1 ) ) 
    429440               CASE( NF90_SHORT ) 
    430441                  ALLOCATE(globaldata_2d_i2(indimlens(dimids(1)),indimlens(dimids(2)))) 
     442                  globaldata_2d_i2(:,:) = 0 
    431443                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_2d_i2 ) ) 
    432444               CASE( NF90_INT ) 
    433445                  ALLOCATE(globaldata_2d_i4(indimlens(dimids(1)),indimlens(dimids(2)))) 
     446                  globaldata_2d_i4(:,:) = 0 
    434447                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_2d_i4 ) ) 
    435448               CASE( NF90_FLOAT ) 
    436449                  ALLOCATE(globaldata_2d_sp(indimlens(dimids(1)),indimlens(dimids(2)))) 
     450                  globaldata_2d_sp(:,:) = 0. 
    437451                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_2d_sp ) ) 
    438452               CASE( NF90_DOUBLE ) 
    439453                  ALLOCATE(globaldata_2d_dp(indimlens(dimids(1)),indimlens(dimids(2)))) 
     454                  globaldata_2d_dp(:,:) = 0. 
    440455                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_2d_dp ) ) 
    441456               CASE DEFAULT 
    442457                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    443                   STOP 
     458                  STOP 9 
    444459            END SELECT 
    445460 
     
    450465                  ALLOCATE(globaldata_3d_i1(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    451466                     &                      indimlens(dimids(3)))) 
     467                  globaldata_3d_i1(:,:,:) = 0 
    452468                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_3d_i1 ) ) 
    453469               CASE( NF90_SHORT ) 
    454470                  ALLOCATE(globaldata_3d_i2(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    455471                     &                      indimlens(dimids(3)))) 
     472                  globaldata_3d_i2(:,:,:) = 0 
    456473                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_3d_i2 ) ) 
    457474               CASE( NF90_INT ) 
    458475                  ALLOCATE(globaldata_3d_i4(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    459476                     &                      indimlens(dimids(3)))) 
     477                  globaldata_3d_i4(:,:,:) = 0 
    460478                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_3d_i4 ) ) 
    461479               CASE( NF90_FLOAT ) 
    462480                  ALLOCATE(globaldata_3d_sp(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    463481                     &                      indimlens(dimids(3)))) 
     482                  globaldata_3d_sp(:,:,:) = 0. 
    464483                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_3d_sp ) ) 
    465484               CASE( NF90_DOUBLE ) 
    466485                  ALLOCATE(globaldata_3d_dp(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    467486                     &                      indimlens(dimids(3)))) 
     487                  globaldata_3d_dp(:,:,:) = 0. 
    468488                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_3d_dp ) ) 
    469489               CASE DEFAULT 
    470490                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    471                   STOP 
     491                  STOP 9 
    472492            END SELECT 
    473493 
     
    478498                  ALLOCATE(globaldata_4d_i1(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    479499                     &                      indimlens(dimids(3)),ntchunk)) 
     500                  globaldata_4d_i1(:,:,:,:) = 0 
    480501                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_4d_i1, start=(/1,1,1,nt/) ) ) 
    481502               CASE( NF90_SHORT ) 
    482503                  ALLOCATE(globaldata_4d_i2(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    483504                     &                      indimlens(dimids(3)),ntchunk)) 
     505                  globaldata_4d_i2(:,:,:,:) = 0 
    484506                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_4d_i2, start=(/1,1,1,nt/) ) ) 
    485507               CASE( NF90_INT ) 
    486508                  ALLOCATE(globaldata_4d_i4(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    487509                     &                      indimlens(dimids(3)),ntchunk)) 
     510                  globaldata_4d_i4(:,:,:,:) = 0 
    488511                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_4d_i4, start=(/1,1,1,nt/) ) ) 
    489512               CASE( NF90_FLOAT ) 
    490513                  ALLOCATE(globaldata_4d_sp(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    491514                     &                      indimlens(dimids(3)),ntchunk)) 
     515                  globaldata_4d_sp(:,:,:,:) = 0. 
    492516                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_4d_sp, start=(/1,1,1,nt/) ) ) 
    493517               CASE( NF90_DOUBLE ) 
    494518                  ALLOCATE(globaldata_4d_dp(indimlens(dimids(1)),indimlens(dimids(2)),       & 
    495519                     &                      indimlens(dimids(3)),ntchunk)) 
     520                  globaldata_4d_dp(:,:,:,:) = 0. 
    496521                  CALL check_nf90( nf90_get_var( ncid, jv, globaldata_4d_dp, start=(/1,1,1,nt/) ) ) 
    497522               CASE DEFAULT 
    498523                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    499                   STOP 
     524                  STOP 9 
    500525            END SELECT 
    501526 
     
    517542               CASE( NF90_BYTE ) 
    518543                  ALLOCATE(globaldata_1d_i1(outdimlens(dimids(1)))) 
     544                  globaldata_1d_i1(:) = 0 
    519545               CASE( NF90_SHORT ) 
    520546                  ALLOCATE(globaldata_1d_i2(outdimlens(dimids(1)))) 
     547                  globaldata_1d_i2(:) = 0 
    521548               CASE( NF90_INT ) 
    522549                  ALLOCATE(globaldata_1d_i4(outdimlens(dimids(1)))) 
     550                  globaldata_1d_i4(:) = 0 
    523551               CASE( NF90_FLOAT ) 
    524552                  ALLOCATE(globaldata_1d_sp(outdimlens(dimids(1)))) 
     553                  globaldata_1d_sp(:) = 0. 
    525554               CASE( NF90_DOUBLE ) 
    526555                  ALLOCATE(globaldata_1d_dp(outdimlens(dimids(1)))) 
     556                  globaldata_1d_dp(:) = 0. 
    527557               CASE DEFAULT 
    528558                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    529                   STOP 
     559                  STOP 9 
    530560            END SELECT 
    531561 
     
    535565               CASE( NF90_BYTE ) 
    536566                  ALLOCATE(globaldata_2d_i1(outdimlens(dimids(1)),outdimlens(dimids(2)))) 
     567                  globaldata_2d_i1(:,:) = 0 
    537568               CASE( NF90_SHORT ) 
    538569                  ALLOCATE(globaldata_2d_i2(outdimlens(dimids(1)),outdimlens(dimids(2)))) 
     570                  globaldata_2d_i2(:,:) = 0 
    539571               CASE( NF90_INT ) 
    540572                  ALLOCATE(globaldata_2d_i4(outdimlens(dimids(1)),outdimlens(dimids(2)))) 
     573                  globaldata_2d_i4(:,:) = 0 
    541574               CASE( NF90_FLOAT ) 
    542575                  ALLOCATE(globaldata_2d_sp(outdimlens(dimids(1)),outdimlens(dimids(2)))) 
     576                  globaldata_2d_sp(:,:) = 0. 
    543577               CASE( NF90_DOUBLE ) 
    544578                  ALLOCATE(globaldata_2d_dp(outdimlens(dimids(1)),outdimlens(dimids(2)))) 
     579                  globaldata_2d_dp(:,:) = 0. 
    545580               CASE DEFAULT 
    546581                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    547                   STOP 
     582                  STOP 9 
    548583            END SELECT 
    549584 
     
    554589                  ALLOCATE(globaldata_3d_i1(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    555590                     &                      outdimlens(dimids(3)))) 
     591                  globaldata_3d_i1(:,:,:) = 0 
    556592               CASE( NF90_SHORT ) 
    557593                  ALLOCATE(globaldata_3d_i2(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    558594                     &                      outdimlens(dimids(3)))) 
     595                  globaldata_3d_i2(:,:,:) = 0 
    559596               CASE( NF90_INT ) 
    560597                  ALLOCATE(globaldata_3d_i4(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    561598                     &                      outdimlens(dimids(3)))) 
     599                  globaldata_3d_i4(:,:,:) = 0 
    562600               CASE( NF90_FLOAT ) 
    563601                  ALLOCATE(globaldata_3d_sp(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    564602                     &                      outdimlens(dimids(3)))) 
     603                  globaldata_3d_sp(:,:,:) = 0. 
    565604               CASE( NF90_DOUBLE ) 
    566605                  ALLOCATE(globaldata_3d_dp(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    567606                     &                      outdimlens(dimids(3)))) 
     607                  globaldata_3d_dp(:,:,:) = 0. 
    568608               CASE DEFAULT 
    569609                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    570                   STOP 
     610                  STOP 9 
    571611            END SELECT 
    572612 
     
    577617                  ALLOCATE(globaldata_4d_i1(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    578618                     &                      outdimlens(dimids(3)),ntchunk)) 
     619                   globaldata_4d_i1(:,:,:,:) = 0 
    579620               CASE( NF90_SHORT ) 
    580621                  ALLOCATE(globaldata_4d_i2(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    581622                     &                      outdimlens(dimids(3)),ntchunk)) 
     623                  globaldata_4d_i2(:,:,:,:) = 0 
    582624               CASE( NF90_INT ) 
    583625                  ALLOCATE(globaldata_4d_i4(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    584626                     &                      outdimlens(dimids(3)),ntchunk)) 
     627                  globaldata_4d_i4(:,:,:,:) = 0 
    585628               CASE( NF90_FLOAT ) 
    586629                  ALLOCATE(globaldata_4d_sp(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    587630                     &                      outdimlens(dimids(3)),ntchunk)) 
     631                  globaldata_4d_sp(:,:,:,:) = 0. 
    588632               CASE( NF90_DOUBLE ) 
    589633                  ALLOCATE(globaldata_4d_dp(outdimlens(dimids(1)),outdimlens(dimids(2)),     & 
    590634                     &                      outdimlens(dimids(3)),ntchunk)) 
     635                  globaldata_4d_dp(:,:,:,:) = 0. 
    591636               CASE DEFAULT 
    592637                  WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    593                   STOP 
     638                  STOP 9 
    594639            END SELECT 
    595640         ELSE 
    596641            WRITE(numerr,*) 'ERROR! : A netcdf variable has more than 4 dimensions which is not taken into account' 
    597             STOP 
     642            STOP 9 
    598643         ENDIF 
    599644 
     
    9671012            IF( nthreads == 1 .AND. istop /= nf90_noerr )  THEN 
    9681013               WRITE(numerr,*) '*** NEMO rebuild failed! ***' 
    969                STOP 
     1014               STOP 9 
    9701015            ENDIF 
    9711016         
     
    9761021         IF( istop /= nf90_noerr )  THEN 
    9771022            WRITE(numerr,*) '*** NEMO rebuild failed! ***' 
    978             STOP 
     1023            STOP 9 
    9791024         ENDIF 
    9801025 
     
    10501095            CASE DEFAULT    
    10511096               WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    1052                STOP 
     1097               STOP 9 
    10531098         END SELECT      
    10541099                       
     
    10731118            CASE DEFAULT    
    10741119               WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    1075                STOP 
     1120               STOP 9 
    10761121         END SELECT      
    10771122     
     
    10961141            CASE DEFAULT    
    10971142               WRITE(numerr,*) 'Unknown nf90 type: ', xtype 
    1098                STOP 
     1143               STOP 9 
    10991144         END SELECT      
    11001145     
     
    11461191            WRITE(numerr,*) "*** NEMO rebuild failed ***" 
    11471192            WRITE(numerr,*) 
    1148             STOP 
     1193            STOP 9 
    11491194         ENDIF 
    11501195      ENDIF 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/README

    r5602 r7261  
    1 This is a first release of SIREN. 
    21 
    3 To create SIREN documentation, go to ./src and run doxygen  
     2To create SIREN documentation, run doxygen in TOOLS/SIREN directory 
    43(http://www.stack.nl/~dimitri/doxygen/index.html version 1.8.3.1 or upper) 
    54then 
    6    open ../doc/index.html  
     5   open ./TOOLS/SIREN/doc/html/index.html in your web browser  
    76or  
    8    run ../doc/latex/gmake and open refman.pdf  
    9  
    10  
    11 templates of namelists could be find in templates directory. 
    12 read documentation for more information. 
    13  
    14  1- program to create coordinate file : 
    15  
    16    ./create_coord create_coord.nam 
    17  
    18  
    19  Variables are extracted from the input coordinates coarse grid and 
    20  interpolated to create fine coordinates files. 
    21  
    22  2- program to create bathymetry file: 
    23  
    24  ./create_bathy create_bathy.nam 
    25  
    26  Bathymetry could be extracted from fine grid Bathymetry file, or 
    27  interpolated from coarse grid Bathymetry file. 
    28  
    29  3- program to merge bathymetry file at boundaries : 
    30  
    31  ./merge_bathy merge_bathy.nam 
    32  
    33  Coarse grid Bathymetry is interpolated on fine grid. 
    34  Then fine Bathymetry and refined coarse bathymetry are merged at 
    35  boundaries. 
    36  
    37  4- program to create restart file : 
    38  
    39  ./create_restart create_restart.nam 
    40  
    41  Variables are read from restart file, or standard output. 
    42  Then theses variables are interpolated on fine grid. 
    43  Finally table are split over new decomposition. 
    44  
    45  5- program to create boundary files (OBC) : 
    46  
    47  ./create_boundary create_boundary.nam 
    48  
    49  Variables are read from standard output. 
    50  Then theses variables are interpolated on fine grid boundaries. 
     7   run ./TOOLS/SIREN/doc/latex/gmake and open ./TOOLS/SIREN/doc/latex/refman.pdf  
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/cfg/variable.cfg

    r5602 r7261  
    1 # name       | units          | axis | point | standard name                | long name          | interpolation 
    2 X            | 1              | X    |   | projection_x_coordinate          |                    |                       
    3 Y            | 1              | Y    |   | projection_y_coordinate          |                    |                       
    4 Z            | 1              | Z    |   | projection_z_coordinate          |                    |                       
    5 T            | 1              | T    |   | projection_t_coordinate          |                    |                       
    6 nav_lon      | degrees_east   | XY   | T | longitude                        | Longitude          | cubic                       
    7 nav_lat      | degrees_north  | XY   | T | latitude                         | Latitude           | cubic          
    8 nav_lev      | model_levels   | Z    | T |                                  | Model levels       | cubic         
    9 deptht       | m              | Z    | T | depth                            | Vertical T levels  | 
    10 time_counter |                | T    |   | time                             | Time axis          |  
    11 Bathymetry   | m              | XY   | T | bathymetry                       | Bathymetry         | cubic          
    12 votemper     | degree_Celsius | XYZT | T | sea_water_potential_temperature  | Temperature        | cubic          
    13 vozocrtx     | m s-1          | XYZT | U |                                  | Zonal velocity     | cubic          
    14 vomecrty     | m s-1          | XYZT | V |                                  | Meridional velocity| cubic          
    15 vosaline     | PSU            | XYZT | T | sea_water_salinity               | Salinity           | cubic          
    16 sossheig     | m              | XYT  | T | sea_surface_height               | Sea Surface Height | cubic          
    17 glamt        | degrees_east   | XY   | T |                                  | Longitude_T        | cubic 
    18 glamu        | degrees_east   | XY   | U |                                  | Longitude_U        | cubic             
    19 glamv        | degrees_east   | XY   | V |                                  | Longitude_V        | cubic           
    20 glamf        | degrees_east   | XY   | F |                                  | Longitude_F        | cubic          
    21 gphit        | degrees_north  | XY   | T |                                  | Latitude_T         | cubic          
    22 gphiu        | degrees_north  | XY   | U |                                  | Latitude_U         | cubic         
    23 gphiv        | degrees_north  | XY   | V |                                  | Latitude_V         | cubic         
    24 gphif        | degrees_north  | XY   | F |                                  | Latitude_F         | cubic         
    25 e1t          | m              | XY   | T |                                  |                    | cubic/rhoi     
    26 e1u          | m              | XY   | U |                                  |                    | cubic/rhoi      
    27 e1v          | m              | XY   | V |                                  |                    | cubic/rhoi       
    28 e1f          | m              | XY   | F |                                  |                    | cubic/rhoi     
    29 e2t          | m              | XY   | T |                                  |                    | cubic/rhoj       
    30 e2u          | m              | XY   | U |                                  |                    | cubic/rhoj       
    31 e2v          | m              | XY   | V |                                  |                    | cubic/rhoj      
    32 e2f          | m              | XY   | F |                                  |                    | cubic/rhoj       
    33 tmask        |                | XYZ  | T |                                  |                    | nearest        
    34 umask        |                | XYZ  | U |                                  |                    | nearest        
    35 vmask        |                | XYZ  | V |                                  |                    | nearest        
    36 fmask        |                | XYZ  | F |                                  |                    | nearest        
    37 weight       |                | XY   | T |                                  |                    |                
    38 kt           |                |      |   |                                  |                    |                
    39 ndastp       |                |      |   |                                  |                    |                
    40 adatrj       |                |      |   |                                  |                    |                
    41 kt           |                |      |   |                                  |                    |                
    42 rdt          |                |      |   |                                  |                    |                
    43 rdttra1      |                |      |   |                                  |                    |                
    44 utau_b       |                | XYT  | U |surface_downward_eastward_stress  |                    |                
    45 vtau_b       |                | XYT  | V |surface_downward_northward_stress |                    |                
    46 qns_b        |                | XYT  | T |                                  |                    |                
    47 emp_b        |                | XYT  | T |                                  |                    |                
    48 sfx_b        |                | XYT  | T |                                  |                    |                
    49 en           |                | XYZT | T |                                  |                    |                
    50 avt          |                | XYZT | T |                                  |                    |                
    51 avm          |                | XYZT | T |                                  |                    |                
    52 avmu         |                | XYZT | T |                                  |                    |                
    53 avmv         |                | XYZT | T |                                  |                    |                
    54 dissl        |                | XYZT | T |                                  |                    |                
    55 sbc_hc_b     |                | XYT  | T |                                  |                    |                
    56 sbc_sc_b     |                | XYT  | T |                                  |                    |                
    57 gcx          |                | XYT  | T |                                  |                    |                
    58 gcxb         |                | XYT  | T |                                  |                    |                
    59 ub           |                | XYZT | U |                                  |                    |                
    60 vb           |                | XYZT | V |                                  |                    |                
    61 tb           |                | XYZT | T |                                  |                    |                
    62 sb           |                | XYZT | T |                                  |                    |                
    63 rotb         |                | XYZT | T |                                  |                    |                
    64 hdivb        |                | XYZT | T |                                  |                    |                
    65 sshb         |                | XYT  | T |                                  |                    |                
    66 un           |                | XYZT | U |                                  |                    |                
    67 vn           |                | XYZT | V |                                  |                    |                
    68 tn           |                | XYZT | T |                                  |                    |                
    69 sn           |                | XYZT | T |                                  |                    |                
    70 rotn         |                | XYZT | T |                                  |                    |                
    71 hdivn        |                | XYZT | T |                                  |                    |                
    72 sshn         |                | XYT  | T |                                  |                    |                
    73 rhop         |                | XYZT | T |                                  |                    |                
     1# name       | units          | axis | pt| interpolation   | long name                             | standard name                                   
     2X            | unitless       | X    |   |                 |                                       | projection_x_coordinate                
     3Y            | unitless       | Y    |   |                 |                                       | projection_y_coordinate                
     4Z            | unitless       | Z    |   |                 |                                       | projection_z_coordinate                
     5T            | unitless       | T    |   |                 |                                       | projection_t_coordinate                
     6nav_lon      | degrees_east   | XY   | T | cubic           | Longitude                             | longitude                                    
     7nav_lat      | degrees_north  | XY   | T | cubic           | Latitude                              | latitude                          
     8nav_lev      | model_levels   | Z    | T | cubic           | Model levels                          |                                   
     9deptht       | m              | Z    | T |                 | Vertical T levels                     | depth                             
     10time_counter |                | T    |   |                 | Time axis                             | time                              
     11Bathymetry   | m              | XY   | T | cubic           | Bathymetry                            | bathymetry                        
     12votemper     | degree_Celsius | XYZT | T | cubic           | Temperature                           | sea_water_potential_temperature   
     13vozocrtx     | m s-1          | XYZT | U | cubic           | Zonal velocity                        |                                   
     14vomecrty     | m s-1          | XYZT | V | cubic           | Meridional velocity                   |                                   
     15vosaline     | PSU            | XYZT | T | cubic           | Salinity                              | sea_water_salinity                
     16sossheig     | m              | XYT  | T | cubic           | Sea Surface Height                    | sea_surface_height                
     17sotemper     | m              | XYT  | T | cubic           |                                       |                                   
     18sossheig     | m              | XYT  | T | cubic           |                                       |                                   
     19glamt        | degrees_east   | XY   | T | cubic           | Longitude_T                           |                                   
     20glamu        | degrees_east   | XY   | U | cubic           | Longitude_U                           |                                    
     21glamv        | degrees_east   | XY   | V | cubic           | Longitude_V                           |                                   
     22glamf        | degrees_east   | XY   | F | cubic           | Longitude_F                           |                                   
     23gphit        | degrees_north  | XY   | T | cubic           | Latitude_T                            |                                   
     24gphiu        | degrees_north  | XY   | U | cubic           | Latitude_U                            |                                   
     25gphiv        | degrees_north  | XY   | V | cubic           | Latitude_V                            |                                   
     26gphif        | degrees_north  | XY   | F | cubic           | Latitude_F                            |                                   
     27e1t          | m              | XY   | T | cubic/rhoi      |                                       |                                   
     28e1u          | m              | XY   | U | cubic/rhoi      |                                       |                                   
     29e1v          | m              | XY   | V | cubic/rhoi      |                                       |                                   
     30e1f          | m              | XY   | F | cubic/rhoi      |                                       |                                   
     31e2t          | m              | XY   | T | cubic/rhoj      |                                       |                                   
     32e2u          | m              | XY   | U | cubic/rhoj      |                                       |                                   
     33e2v          | m              | XY   | V | cubic/rhoj      |                                       |                                   
     34e2f          | m              | XY   | F | cubic/rhoj      |                                       |                                   
     35tmask        |                | XYZ  | T | nearest         |                                       |                                   
     36umask        |                | XYZ  | U | nearest         |                                       |                                   
     37vmask        |                | XYZ  | V | nearest         |                                       |                                   
     38fmask        |                | XYZ  | F | nearest         |                                       |                                   
     39weight       |                | XY   | T |                 |                                       |                                   
     40kt           |                |      |   |                 |                                       |                                   
     41ndastp       |                |      |   |                 |                                       |                                   
     42adatrj       |                |      |   |                 |                                       |                                   
     43kt           |                |      |   |                 |                                       |                                   
     44rdt          |                |      |   |                 |                                       |                                   
     45rdttra1      |                |      |   |                 |                                       |                                   
     46utau_b       |                | XY   | U |                 |                                       |surface_downward_eastward_stress   
     47vtau_b       |                | XY   | V |                 |                                       |surface_downward_northward_stress  
     48qns_b        |                | XY   | T |                 |                                       |                                   
     49emp_b        |                | XY   | T |                 |                                       |                                   
     50sfx_b        |                | XY   | T |                 |                                       |                                   
     51en           |                | XYZ  | T |                 |                                       |                                   
     52avt          |                | XYZ  | T |                 | vertical eddy diffusivity             |                                   
     53avm          |                | XYZ  | T |                 | vertical eddy viscosity               |                                   
     54avmu         |                | XYZ  | T |                 |                                       |                                   
     55avmv         |                | XYZ  | T |                 |                                       |                                   
     56dissl        |                | XYZ  | T |                 |                                       |                                   
     57sbc_hc_b     |                | XY   | T |                 |                                       |                                   
     58sbc_sc_b     |                | XY   | T |                 |                                       |                                   
     59gcx          |                | XY   | T |                 |                                       |                                   
     60gcxb         |                | XY   | T |                 |                                       |                                   
     61ub           |                | XYZ  | U |                 |                                       |                                   
     62vb           |                | XYZ  | V |                 |                                       |                                   
     63tb           |                | XYZ  | T |                 |                                       |                                   
     64sb           |                | XYZ  | T |                 |                                       |                                   
     65rotb         |                | XYZ  | T |                 |                                       |                                   
     66hdivb        |                | XYZ  | T |                 |                                       |                                   
     67sshb         |                | XY   | T |                 |                                       |                                   
     68un           |                | XYZ  | U |                 |                                       |                                   
     69vn           |                | XYZ  | V |                 |                                       |                                   
     70tn           |                | XYZ  | T |                 |                                       |                                   
     71sn           |                | XYZ  | T |                 |                                       |                                   
     72rotn         |                | XYZ  | T |                 |                                       |                                   
     73hdivn        |                | XYZ  | T |                 |                                       |                                   
     74sshn         |                | XYT  | T |                 |                                       |                                   
     75rhop         |                | XYZ  | T |                 |                                       |                                   
     76dic          |                | XYZT | T |                 | Dissolved Inorganic Carbon            | mole_concentration_of_dissolved_inorganic_caron_in_sea_water 
     77alkalini     |                | XYZT | T |                 | Total Alkalinity                      | sea_water_alkalinity_expressed_as_mole_equivalent 
     78o2           |                | XYZT | T |                 | Dissolved Oxygen                      | mole_concentration_of_dissolved_molecular_oxygen_in_sea_water 
     79caco3        |                | XYZT | T |                 | Calcite                               |                                   
     80po4          |                | XYZT | T |                 | Phosphate                             | mole_concentration_of_phosphate_in_sea_water 
     81poc          |                | XYZT | T |                 | Small Particulate Organic Carbon      |                                   
     82si           |                | XYZT | T |                 | Dissolved Silicate                    | mole_concentration_of_silicate_in_sea_water 
     83phy          |                | XYZT | T |                 | Nanophytoplankton                     |                                   
     84zoo          |                | XYZT | T |                 | Microzooplankton                      | mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water 
     85doc          |                | XYZT | T |                 | Dissolved Organic Carbon              |                                   
     86phy2         |                | XYZT | T |                 | Diatoms                               |                                   
     87zoo2         |                | XYZT | T |                 | Mesozooplankton                       | mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water 
     88gsi          |                | XYZT | T |                 | Sinking biogenic Silica               |                                   
     89fer          |                | XYZT | T |                 | Dissolved Iron                        | mole_concentration_of_dissolved_iron_in_sea_water 
     90bfe          |                | XYZT | T |                 | Iron in the big particles             |                                   
     91goc          |                | XYZT | T |                 | Big Particulate Organic Carbon        |                                   
     92sfe          |                | XYZT | T |                 | Iron in the small particles           |                                   
     93dfe          |                | XYZT | T |                 | Iron content of the Diatoms           |                                   
     94dsi          |                | XYZT | T |                 | Silicon content of the Diatoms        |                                   
     95nfe          |                | XYZT | T |                 | Iron content of the Nanophytoplankton |                                   
     96nchl         |                | XYZT | T |                 | Chlorophyll of the Nanophytoplankton  |                                   
     97dchl         |                | XYZT | T |                 | Chlorophyll of the Diatoms            |                                   
     98no3          |                | XYZT | T |                 | Nitrate                               | mole_concentration_of_nitrate_in_sea_water 
     99nh4          |                | XYZT | T |                 | Ammonium                              | mole_concentration_of_ammonium_in_sea_water 
     100ppd          |                | XYZT | T |                 |                                       |                                   
     101ppn          |                | XYZT | T |                 |                                       |                                   
     102ph           |                | XYZT | T |                 |                                       |                                   
     103cflx         |                | XYZT | T |                 |                                       |                                   
     104oflx         |                | XYZT | T |                 |                                       |                                   
     105kg           |                | XYZT | T |                 |                                       |                                   
     106dpco2        |                | XYZT | T |                 |                                       |                                   
     107heup         |                | XYZT | T |                 |                                       |                                   
     108kz           |                | XYZT | T |                 |                                       |                                   
     109irondep      |                | XYZT | T |                 |                                       |                                   
     110kt_ice       |                |      |   |                 |                                       |                                   
     111hicif        |                |      |   |                 |                                       |                                   
     112hsnif        |                |      |   |                 |                                       |                                   
     113frld         |                |      |   |                 |                                       |                                   
     114sist         |                |      |   |                 |                                       |                                   
     115tbif1        |                |      |   |                 |                                       |                                   
     116tbif2        |                |      |   |                 |                                       |                                   
     117tbif3        |                |      |   |                 |                                       |                                   
     118ui_ice       |                |      |   |                 |                                       |                                   
     119vi_ice       |                |      |   |                 |                                       |                                   
     120qstoif       |                |      |   |                 |                                       |                                   
     121fsbbq        |                |      |   |                 |                                       |                                   
     122stress1_i    |                |      |   |                 |                                       |                                   
     123stress2_i    |                |      |   |                 |                                       |                                   
     124stress12_i   |                |      |   |                 |                                       |                                   
     125sxice        |                |      |   |                 |                                       |                                   
     126syice        |                |      |   |                 |                                       |                                   
     127sxxice       |                |      |   |                 |                                       |                                   
     128syyice       |                |      |   |                 |                                       |                                   
     129sxyice       |                |      |   |                 |                                       |                                   
     130sxsn         |                |      |   |                 |                                       |                                   
     131sysn         |                |      |   |                 |                                       |                                   
     132sxxsn        |                |      |   |                 |                                       |                                   
     133syysn        |                |      |   |                 |                                       |                                   
     134sxysn        |                |      |   |                 |                                       |                                   
     135sxa          |                |      |   |                 |                                       |                                   
     136sya          |                |      |   |                 |                                       |                                   
     137sxxa         |                |      |   |                 |                                       |                                   
     138syya         |                |      |   |                 |                                       |                                   
     139sxya         |                |      |   |                 |                                       |                                   
     140sxc0         |                |      |   |                 |                                       |                                   
     141syc0         |                |      |   |                 |                                       |                                   
     142sxxc0        |                |      |   |                 |                                       |                                   
     143syyc0        |                |      |   |                 |                                       |                                   
     144sxyc0        |                |      |   |                 |                                       |                                   
     145sxc1         |                |      |   |                 |                                       |                                   
     146syc1         |                |      |   |                 |                                       |                                   
     147sxxc1        |                |      |   |                 |                                       |                                   
     148syyc1        |                |      |   |                 |                                       |                                   
     149sxyc1        |                |      |   |                 |                                       |                                   
     150sxc2         |                |      |   |                 |                                       |                                   
     151syc2         |                |      |   |                 |                                       |                                   
     152sxxc2        |                |      |   |                 |                                       |                                   
     153syyc2        |                |      |   |                 |                                       |                                   
     154sxyc2        |                |      |   |                 |                                       |                                   
     155sxst         |                |      |   |                 |                                       |                                   
     156syst         |                |      |   |                 |                                       |                                   
     157sxxst        |                |      |   |                 |                                       |                                   
     158syyst        |                |      |   |                 |                                       |                                   
     159sxyst        |                |      |   |                 |                                       |                                   
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/attribute.f90

    r5602 r7261  
    8181! REVISION HISTORY: 
    8282!> @date November, 2013 - Initial Version 
    83 !> @date November, 2014 - Fix memory leaks bug 
     83!> @date November, 2014  
     84!> - Fix memory leaks bug 
     85!> @date September, 2015 
     86!> - manage useless (dummy) attributes 
    8487! 
    8588!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    97100   PUBLIC :: TATT       !< attribute structure 
    98101 
     102   PRIVATE :: cm_dumatt !< dummy attribute array 
     103 
    99104   ! function and subroutine 
    100105   PUBLIC :: att_init       !< initialize attribute structure 
     
    104109   PUBLIC :: att_get_index  !< get attribute index, in an array of attribute structure 
    105110   PUBLIC :: att_get_id     !< get attribute id, read from file 
     111   PUBLIC :: att_get_dummy  !< fill dummy attribute array 
     112   PUBLIC :: att_is_dummy   !< check if attribute is defined as dummy attribute 
    106113 
    107114   PRIVATE :: att__clean_unit ! clean attribute strcuture 
     
    130137      INTEGER(i4)       :: i_type = 0        !< attribute type 
    131138      INTEGER(i4)       :: i_len  = 0        !< number of value store in attribute 
    132       CHARACTER(LEN=lc) :: c_value = "none"  !< attribute value if type CHAR 
     139      CHARACTER(LEN=lc) :: c_value = 'none'  !< attribute value if type CHAR 
    133140      REAL(dp), DIMENSION(:), POINTER :: d_value => NULL() !< attribute value if type SHORT,INT,FLOAT or DOUBLE 
    134141   END TYPE TATT 
    135142 
     143   CHARACTER(LEN=lc), DIMENSION(ip_maxdum), SAVE :: cm_dumatt !< dummy attribute 
     144 
    136145   INTERFACE att_init 
    137       MODULE PROCEDURE att__init_c 
     146      MODULE PROCEDURE att__init_c     
    138147      MODULE PROCEDURE att__init_dp 
    139148      MODULE PROCEDURE att__init_dp_0d 
     
    181190   !> @date November, 2013 - Initial Version 
    182191   !> @date November, 2014 
    183    !>    - use function instead of overload assignment operator  
     192   !> - use function instead of overload assignment operator  
    184193   !> (to avoid memory leak)  
    185194   ! 
     
    234243 
    235244      ! local variable 
    236       REAL(dp), DIMENSION(:), ALLOCATABLE :: dl_value 
     245      REAL(dp)         , DIMENSION(:), ALLOCATABLE :: dl_value 
    237246      !---------------------------------------------------------------- 
    238247 
     
    300309   !> @author J.Paul 
    301310   !> @date November, 2013 - Initial Version 
    302    !> @date September, 2014 - bug fix with use of id read from attribute structure 
    303    ! 
     311   !> @date September, 2014  
     312   !> - bug fix with use of id read from attribute structure 
     313   !> 
    304314   !> @param[in] td_att    array of attribute structure 
    305315   !> @param[in] cd_name   attribute name 
     
    355365 
    356366      att__init_c%c_name=TRIM(ADJUSTL(cd_name)) 
    357  
    358367      att__init_c%i_type=NF90_CHAR 
     368 
    359369      att__init_c%c_value=TRIM(ADJUSTL(cd_value)) 
    360370      att__init_c%i_len=LEN( TRIM(ADJUSTL(cd_value)) ) 
     
    368378   !> 
    369379   !> @author J.Paul 
    370    !> @dtae November, 2013 - Initial Version 
     380   !> @date November, 2013 - Initial Version 
    371381   ! 
    372382   !> @param[in] cd_name   attribute name 
     
    10681078   !> @author J.Paul 
    10691079   !> @date November, 2013 - Initial Version 
    1070    !> @date September, 2014 - take into account type of attribute. 
     1080   !> @date September, 2014  
     1081   !> - take into account type of attribute. 
    10711082   ! 
    10721083   !> @param[in] td_att attribute structure 
     
    11141125 
    11151126            CASE(NF90_CHAR) 
     1127 
    11161128               cl_value=td_att%c_value 
    11171129 
     
    12471259 
    12481260   END SUBROUTINE att__clean_arr 
     1261   !------------------------------------------------------------------- 
     1262   !> @brief This subroutine fill dummy attribute array 
     1263   ! 
     1264   !> @author J.Paul 
     1265   !> @date September, 2015 - Initial Version 
     1266   !> @date Marsh, 2016 
     1267   !> - close file (bugfix) 
     1268   ! 
     1269   !> @param[in] cd_dummy dummy configuration file 
     1270   !------------------------------------------------------------------- 
     1271   SUBROUTINE att_get_dummy( cd_dummy ) 
     1272      IMPLICIT NONE 
     1273      ! Argument 
     1274      CHARACTER(LEN=*), INTENT(IN) :: cd_dummy 
     1275 
     1276      ! local variable 
     1277      INTEGER(i4)   :: il_fileid 
     1278      INTEGER(i4)   :: il_status 
     1279 
     1280      LOGICAL       :: ll_exist 
     1281 
     1282      ! loop indices 
     1283      ! namelist 
     1284      CHARACTER(LEN=lc), DIMENSION(ip_maxdum) :: cn_dumvar 
     1285      CHARACTER(LEN=lc), DIMENSION(ip_maxdum) :: cn_dumdim 
     1286      CHARACTER(LEN=lc), DIMENSION(ip_maxdum) :: cn_dumatt 
     1287 
     1288      !---------------------------------------------------------------- 
     1289      NAMELIST /namdum/ &   !< dummy namelist 
     1290      &  cn_dumvar, &       !< variable  name 
     1291      &  cn_dumdim, &       !< dimension name 
     1292      &  cn_dumatt          !< attribute name 
     1293      !---------------------------------------------------------------- 
     1294 
     1295      ! init 
     1296      cm_dumatt(:)='' 
     1297 
     1298      ! read namelist 
     1299      INQUIRE(FILE=TRIM(cd_dummy), EXIST=ll_exist) 
     1300      IF( ll_exist )THEN 
     1301     
     1302         il_fileid=fct_getunit() 
     1303    
     1304         OPEN( il_fileid, FILE=TRIM(cd_dummy), & 
     1305         &                FORM='FORMATTED',       & 
     1306         &                ACCESS='SEQUENTIAL',    & 
     1307         &                STATUS='OLD',           & 
     1308         &                ACTION='READ',          & 
     1309         &                IOSTAT=il_status) 
     1310         CALL fct_err(il_status) 
     1311         IF( il_status /= 0 )THEN 
     1312            CALL logger_fatal("DIM GET DUMMY: opening "//TRIM(cd_dummy)) 
     1313         ENDIF 
     1314    
     1315         READ( il_fileid, NML = namdum ) 
     1316         cm_dumatt(:)=cn_dumatt(:) 
     1317 
     1318         CLOSE( il_fileid ) 
     1319 
     1320      ENDIF 
     1321    
     1322   END SUBROUTINE att_get_dummy 
     1323   !------------------------------------------------------------------- 
     1324   !> @brief This function check if attribute is defined as dummy attribute 
     1325   !> in configuraton file 
     1326   !> 
     1327   !> @author J.Paul 
     1328   !> @date September, 2015 - Initial Version 
     1329   ! 
     1330   !> @param[in] td_att attribute structure 
     1331   !> @return true if attribute is dummy attribute 
     1332   !------------------------------------------------------------------- 
     1333   FUNCTION att_is_dummy(td_att) 
     1334      IMPLICIT NONE 
     1335 
     1336      ! Argument       
     1337      TYPE(TATT), INTENT(IN) :: td_att 
     1338       
     1339      ! function 
     1340      LOGICAL :: att_is_dummy 
     1341       
     1342      ! loop indices 
     1343      INTEGER(i4) :: ji 
     1344      !---------------------------------------------------------------- 
     1345 
     1346      att_is_dummy=.FALSE. 
     1347      DO ji=1,ip_maxdum 
     1348         IF( fct_lower(td_att%c_name) == fct_lower(cm_dumatt(ji)) )THEN 
     1349            att_is_dummy=.TRUE. 
     1350            EXIT 
     1351         ENDIF 
     1352      ENDDO 
     1353 
     1354   END FUNCTION att_is_dummy 
    12491355END MODULE att 
    12501356 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/boundary.f90

    r5602 r7261  
    2626!>       - ld_west  is logical to force used of north boundary [optional] 
    2727!>       - cd_north is string character description of north boundary [optional] 
    28 !>       - cd_south is string character description of north boundary [optional] 
    29 !>       - cd_east  is string character description of north boundary [optional] 
    30 !>       - cd_west  is string character description of north boundary [optional] 
     28!>       - cd_south is string character description of south boundary [optional] 
     29!>       - cd_east  is string character description of east boundary [optional] 
     30!>       - cd_west  is string character description of west boundary [optional] 
    3131!>       - ld_oneseg is logical to force to use only one segment for each boundary [optional] 
    3232!> 
     
    3636!>    to know if boundary is use:<br/> 
    3737!>    - tl_bdy\%l_use 
     38!> 
     39!>    to know if boundary come from namelist (cn_north,..):<br/> 
     40!>    - tl_bdy\%l_nam 
    3841!> 
    3942!>    to get the number of segment in boundary:<br/> 
     
    105108! REVISION HISTORY: 
    106109!> @date November, 2013 - Initial Version 
    107 !> @date September, 2014 - add boundary description 
    108 !> @date November, 2014 - Fix memory leaks bug 
     110!> @date September, 2014  
     111!> - add boundary description 
     112!> @date November, 2014  
     113!> - Fix memory leaks bug 
     114!> @date February, 2015  
     115!> - Do not change indices read from namelist 
     116!> - Change string character format of boundary read from namelist,  
     117!>  see boundary__get_info 
    109118!>  
    110119!> @todo add schematic to boundary structure description 
     
    157166   PRIVATE :: seg__init       ! initialise segment structure 
    158167   PRIVATE :: seg__clean      ! clean segment structure 
    159    PRIVATE :: seg__clean_unit ! clean segment structure 
     168   PRIVATE :: seg__clean_unit ! clean one segment structure 
    160169   PRIVATE :: seg__clean_arr  ! clean array of segment structure 
    161170   PRIVATE :: seg__copy       ! copy segment structure in another 
     
    173182      CHARACTER(LEN=lc) :: c_card = ''          !< boundary cardinal 
    174183      LOGICAL           :: l_use  = .FALSE.     !< boundary use or not  
     184      LOGICAL           :: l_nam  = .FALSE.     !< boundary get from namelist 
    175185      INTEGER(i4)       :: i_nseg = 0           !< number of segment in boundary 
    176186      TYPE(TSEG), DIMENSION(:), POINTER :: t_seg => NULL() !<  array of segment structure 
    177187   END TYPE TBDY 
    178188 
     189   ! module variable 
    179190   INTEGER(i4), PARAMETER :: im_width=10 
    180191 
     
    223234   !> @date November, 2013 - Initial Version 
    224235   !> @date November, 2014 
    225    !>    - use function instead of overload assignment operator  
     236   !> - use function instead of overload assignment operator  
    226237   !> (to avoid memory leak) 
    227238   ! 
     
    260271   !> @date November, 2013 - Initial Version 
    261272   !> @date November, 2014 
    262    !>    - use function instead of overload assignment operator  
     273   !> - use function instead of overload assignment operator  
    263274   !> (to avoid memory leak) 
    264275   ! 
     
    353364   END SUBROUTINE boundary__clean_arr 
    354365   !-------------------------------------------------------------------  
    355    !> @brief This function put cardinal name inside file name. 
     366   !> @brief This function put cardinal name and date inside file name. 
    356367   !  
    357368   !> @details  
    358    !  
     369   !>    Examples : 
     370   !>       cd_file="boundary.nc" 
     371   !>       cd_card="west"  
     372   !>       id_seg =2 
     373   !>       cd_date=y2015m07d16 
     374   !>  
     375   !>       function return "boundary_west_2_y2015m07d16.nc" 
     376   !>  
     377   !>       cd_file="boundary.nc" 
     378   !>       cd_card="west"  
     379   !>  
     380   !>       function return "boundary_west.nc" 
     381   !>  
    359382   !> @author J.Paul  
    360383   !> @date November, 2013 - Initial Version  
     
    385408      CHARACTER(LEN=lc) :: cl_date 
    386409      CHARACTER(LEN=lc) :: cl_name 
     410 
     411      INTEGER(i4)       :: il_ind 
     412      INTEGER(i4)       :: il_indend 
     413 
    387414      ! loop indices  
    388415      !----------------------------------------------------------------  
     
    400427         cl_suffix=fct_split(TRIM(cl_basename),2,'.') 
    401428          
     429         ! add segment number 
    402430         IF( PRESENT(id_seg) )THEN 
    403             cl_segnum="_"//TRIM(fct_str(id_seg))//"_" 
     431            cl_segnum="_"//TRIM(fct_str(id_seg)) 
    404432         ELSE 
    405433            cl_segnum="" 
    406434         ENDIF 
    407435 
     436         ! add date 
    408437         IF( PRESENT(cd_date) )THEN 
    409             cl_date=TRIM(ADJUSTL(cd_date)) 
     438            cl_date="_"//TRIM(ADJUSTL(cd_date)) 
    410439         ELSE 
    411440            cl_date="" 
    412441         ENDIF 
    413442 
    414          cl_name=TRIM(cl_base)//"_"//TRIM(cd_card)//TRIM(cl_segnum)//& 
    415          &        TRIM(cl_date)//"."//TRIM(cl_suffix) 
     443         ! special case for obcdta 
     444         il_ind=INDEX(cl_base,'_obcdta_') 
     445         IF( il_ind/=0 )THEN 
     446            il_ind=il_ind-1+8 
     447            il_indend=LEN_TRIM(cl_base) 
     448 
     449            cl_name=TRIM(cl_base(1:il_ind))//TRIM(cd_card)//& 
     450               &     TRIM(cl_segnum)//"_"//TRIM(cl_base(il_ind+1:il_indend))//& 
     451               &     TRIM(cl_date)//"."//TRIM(cl_suffix) 
     452         ELSE 
     453            cl_name=TRIM(cl_base)//"_"//TRIM(cd_card)//TRIM(cl_segnum)//& 
     454               &     TRIM(cl_date)//"."//TRIM(cl_suffix) 
     455         ENDIF 
    416456 
    417457         boundary_set_filename=TRIM(cl_dirname)//"/"//TRIM(cl_name) 
     
    442482   !> ex : cn_north='index1,first1,last1(width)|index2,first2,last2' 
    443483   !> 
    444    !> @note boundaries are compute on T point. change will be done to get data 
    445    !> on other point when need be.  
     484   !> @warn Boundaries are compute on T point, but expressed on U,V point. 
     485   !> change will be done to get data on other point when need be.  
    446486   !> 
    447487   !> @author J.Paul  
     
    581621 
    582622               ! get namelist information 
    583                tl_tmp=boundary__get_info(cl_card(jk)) 
     623               tl_tmp=boundary__get_info(cl_card(jk),jk) 
     624 
     625               ! get segments indices 
    584626               DO ji=1,tl_tmp%i_nseg 
    585627                  CALL boundary__add_seg(tl_bdy(jk),tl_tmp%t_seg(ji)) 
    586628               ENDDO 
     629               ! indices from namelist or not 
     630               tl_bdy(jk)%l_nam=tl_tmp%l_nam 
     631 
    587632               CALL boundary_clean(tl_tmp) 
    588633 
     
    642687   !> @return boundary structure 
    643688   !-------------------------------------------------------------------  
    644    FUNCTION boundary__init( cd_card, ld_use, td_seg )  
     689   FUNCTION boundary__init( cd_card, ld_use, ld_nam, td_seg )  
    645690      IMPLICIT NONE  
    646691      ! Argument 
    647692      CHARACTER(LEN=*), INTENT(IN) :: cd_card 
    648693      LOGICAL         , INTENT(IN), OPTIONAL :: ld_use  
     694      LOGICAL         , INTENT(IN), OPTIONAL :: ld_nam  
    649695      TYPE(TSEG)      , INTENT(IN), OPTIONAL :: td_seg 
    650696 
     
    664710            boundary__init%l_use=.TRUE. 
    665711            IF( PRESENT(ld_use) ) boundary__init%l_use=ld_use 
     712 
     713            boundary__init%l_nam=.FALSE. 
     714            IF( PRESENT(ld_nam) ) boundary__init%l_nam=ld_nam 
    666715 
    667716            IF( PRESENT(td_seg) )THEN 
     
    778827   !> orthogonal index, first and last indices, of each segment.  
    779828   !> And also the width of all segments of this boundary. 
    780    !>   cn_north='index1,first1,last1(width)|index2,first2,last2' 
     829   !>   cn_north='index1,first1:last1(width)|index2,first2:last2' 
    781830   !>  
    782831   !> @author J.Paul  
    783832   !> @date November, 2013 - Initial Version  
     833   !> @date february, 2015  
     834   !> - do not change indices read from namelist 
     835   !> - change format cn_north 
    784836   !  
    785837   !> @param[in] cd_card   boundary description 
     838   !> @param[in] id_jcard  boundary index 
    786839   !> @return boundary structure 
    787840   !-------------------------------------------------------------------  
    788    FUNCTION boundary__get_info(cd_card)  
     841   FUNCTION boundary__get_info(cd_card, id_jcard)  
    789842      IMPLICIT NONE  
    790843      ! Argument  
    791844      CHARACTER(LEN=lc), INTENT(IN) :: cd_card 
     845      INTEGER(i4)      , INTENT(IN) :: id_jcard 
    792846 
    793847      ! function  
     
    802856      CHARACTER(LEN=lc) :: cl_index 
    803857      CHARACTER(LEN=lc) :: cl_width 
     858      CHARACTER(LEN=lc) :: cl_tmp 
    804859      CHARACTER(LEN=lc) :: cl_first 
    805860      CHARACTER(LEN=lc) :: cl_last  
     
    818873      ! width should be the same for all segment of one boundary 
    819874      IF( TRIM(cl_seg)   /= '' )THEN 
     875 
     876         ! initialise boundary 
     877         ! temporaty boundary, so it doesn't matter which caridnal is used 
     878         boundary__get_info=boundary__init('north',ld_nam=.TRUE.) 
     879 
    820880         il_ind1=SCAN(fct_lower(cl_seg),'(') 
    821881         IF( il_ind1 /=0 )THEN 
     
    831891            ENDIF 
    832892         ENDIF 
     893 
    833894      ENDIF  
    834895 
     
    839900         il_ind1=SCAN(fct_lower(cl_index),'(') 
    840901         IF( il_ind1 /=0 )THEN 
    841             il_ind2=SCAN(fct_lower(cl_index),'(') 
     902            il_ind2=SCAN(fct_lower(cl_index),')') 
    842903            IF( il_ind2 /=0 )THEN 
    843904               cl_index=TRIM(cl_index(:il_ind1-1))//TRIM(cl_index(il_ind2+1:)) 
     
    848909         ENDIF 
    849910       
    850          cl_first=fct_split(cl_seg,2,',') 
     911          
     912         cl_tmp=fct_split(cl_seg,2,',') 
     913 
     914 
     915         cl_first=fct_split(cl_tmp,1,':') 
    851916         ! remove potential width information 
    852917         il_ind1=SCAN(fct_lower(cl_first),'(') 
    853918         IF( il_ind1 /=0 )THEN 
    854             il_ind2=SCAN(fct_lower(cl_first),'(') 
     919            il_ind2=SCAN(fct_lower(cl_first),')') 
    855920            IF( il_ind2 /=0 )THEN 
    856921               cl_first=TRIM(cl_first(:il_ind1-1))//TRIM(cl_first(il_ind2+1:)) 
     
    861926         ENDIF          
    862927          
    863          cl_last =fct_split(cl_seg,3,',') 
     928         cl_last =fct_split(cl_tmp,2,':') 
    864929         ! remove potential width information 
    865930         il_ind1=SCAN(fct_lower(cl_last),'(') 
    866931         IF( il_ind1 /=0 )THEN 
    867             il_ind2=SCAN(fct_lower(cl_last),'(') 
     932            il_ind2=SCAN(fct_lower(cl_last),')') 
    868933            IF( il_ind2 /=0 )THEN 
    869934               cl_last=TRIM(cl_last(:il_ind1-1))//TRIM(cl_last(il_ind2+1:)) 
     
    879944         IF( TRIM(cl_first) /= '' ) READ(cl_first,*) tl_seg%i_first 
    880945         IF( TRIM(cl_last)  /= '' ) READ(cl_last ,*) tl_seg%i_last 
     946 
     947         ! index expressed on U,V point, move on T point. 
     948         SELECT CASE(id_jcard) 
     949            CASE(jp_north, jp_east) 
     950               tl_seg%i_index=tl_seg%i_index+1 
     951         END SELECT 
    881952 
    882953         IF( (tl_seg%i_first == 0 .AND.  tl_seg%i_last == 0) .OR. & 
     
    9431014 
    9441015      DO jk=1,ip_ncard 
    945          IF( .NOT. td_bdy(jk)%l_use .OR. td_bdy(jk)%i_nseg > 1 )THEN 
     1016         IF( .NOT. td_bdy(jk)%l_use .OR. td_bdy(jk)%l_nam )THEN 
    9461017            ! nothing to be done 
    9471018         ELSE 
     
    14801551      il_max(jp_east )=td_var%t_dim(2)%i_len 
    14811552      il_max(jp_west )=td_var%t_dim(2)%i_len 
    1482        
     1553  
    14831554      il_maxindex(jp_north)=td_var%t_dim(2)%i_len-ip_ghost 
    14841555      il_maxindex(jp_south)=td_var%t_dim(2)%i_len-ip_ghost 
     
    15151586         ENDIF 
    15161587      ENDDO 
    1517        
     1588  
    15181589      CALL boundary_check_corner(td_bdy, td_var) 
    15191590 
     
    16501721   !> @date November, 2013 - Initial Version 
    16511722   !> @date November, 2014 
    1652    !>    - use function instead of overload assignment operator  
     1723   !> - use function instead of overload assignment operator  
    16531724   !> (to avoid memory leak) 
    16541725   ! 
     
    16871758   !> @date November, 2013 - Initial Version 
    16881759   !> @date November, 2014 
    1689    !>    - use function instead of overload assignment operator  
     1760   !> - use function instead of overload assignment operator  
    16901761   !> (to avoid memory leak) 
    16911762   ! 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/create_bathy.f90

    r5602 r7261  
    88!> @file 
    99!> @brief  
    10 !> This program create fine grid bathymetry file. 
     10!> This program creates fine grid bathymetry file. 
    1111!> 
    1212!> @details 
     
    2020!>    ./SIREN/bin/create_bathy create_bathy.nam 
    2121!> @endcode 
    22 !>     
    23 !>    create_bathy.nam comprise 7 namelists:<br/> 
     22!> <br/>     
     23!> \image html  bathy_40.png  
     24!> \image latex bathy_30.png 
     25!> 
     26!> @note  
     27!>    you could find a template of the namelist in templates directory. 
     28!> 
     29!>    create_bathy.nam contains 7 namelists:<br/> 
    2430!>       - logger namelist (namlog) 
    2531!>       - config namelist (namcfg) 
     
    3036!>       - output namelist (namout) 
    3137!>     
    32 !>    @note  
    33 !>       All namelists have to be in file create_bathy.nam, however variables of 
    34 !>       those namelists are all optional. 
    35 !> 
    3638!>    * _logger namelist (namlog)_:<br/> 
    3739!>       - cn_logfile   : log filename 
    3840!>       - cn_verbosity : verbosity ('trace','debug','info', 
    39 !> 'warning','error','fatal') 
     41!> 'warning','error','fatal','none') 
    4042!>       - in_maxerror  : maximum number of error allowed 
    4143!> 
     
    4345!>       - cn_varcfg : variable configuration file  
    4446!> (see ./SIREN/cfg/variable.cfg) 
     47!>       - cn_dumcfg : useless (dummy) configuration file, for useless  
     48!> dimension or variable (see ./SIREN/cfg/dummy.cfg). 
    4549!> 
    4650!>    * _coarse grid namelist (namcrs)_:<br/> 
     
    5256!>       - cn_coord1 : coordinate file 
    5357!>       - in_perio1 : periodicity index 
    54 !>       - ln_fillclosed : fill closed sea or not 
     58!>       - ln_fillclosed : fill closed sea or not (default is .TRUE.) 
    5559!> 
    5660!>    * _variable namelist (namvar)_:<br/> 
    57 !>       - cn_varinfo : list of variable and extra information about request(s)  
    58 !>       to be used.<br/> 
    59 !>          each elements of *cn_varinfo* is a string character.<br/> 
    60 !>          it is composed of the variable name follow by ':',  
    61 !>          then request(s) to be used on this variable.<br/>  
    62 !>          request could be: 
    63 !>             - interpolation method 
    64 !>             - extrapolation method 
    65 !>             - filter method 
    66 !>             - > minimum value 
    67 !>             - < maximum value 
    68 !> 
    69 !>                requests must be separated by ';'.<br/> 
    70 !>                order of requests does not matter.<br/> 
    71 !> 
    72 !>          informations about available method could be find in @ref interp, 
    73 !>          @ref extrap and @ref filter modules.<br/> 
    74 !>          Example: 'Bathymetry: 2*hamming(2,3); > 0' 
    75 !>          @note  
    76 !>             If you do not specify a method which is required,  
    77 !>             default one is apply. 
    78 !>          @warning  
    79 !>             variable name must be __Bathymetry__ here. 
    8061!>       - cn_varfile : list of variable, and corresponding file.<br/>  
    8162!>          *cn_varfile* is the path and filename of the file where find 
     
    9071!>                - ',' for line 
    9172!>                - '/' for row 
    92 !>                - '\' for level<br/> 
    9373!>                Example:<br/> 
    9474!>                   3,2,3/1,4,5  =>  @f$ \left( \begin{array}{ccc} 
     
    10080!>             - 'Bathymetry:5000,5000,5000/5000,3000,5000/5000,5000,5000' 
    10181!> 
    102 !>          \image html  bathy_40.png  
    103 !>          \image latex bathy_30.png 
     82!>       - cn_varinfo : list of variable and extra information about request(s)  
     83!>       to be used.<br/> 
     84!>          each elements of *cn_varinfo* is a string character 
     85!>          (separated by ',').<br/> 
     86!>          it is composed of the variable name follow by ':',  
     87!>          then request(s) to be used on this variable.<br/>  
     88!>          request could be: 
     89!>             - int = interpolation method 
     90!>             - ext = extrapolation method 
     91!>             - flt = filter method 
     92!>             - min = minimum value 
     93!>             - max = maximum value 
     94!>             - unt = new units 
     95!>             - unf = unit scale factor (linked to new units) 
     96!> 
     97!>                requests must be separated by ';'.<br/> 
     98!>                order of requests does not matter.<br/> 
     99!> 
     100!>          informations about available method could be find in @ref interp, 
     101!>          @ref extrap and @ref filter modules.<br/> 
     102!>          Example: 'Bathymetry: flt=2*hamming(2,3); min=0' 
     103!>          @note  
     104!>             If you do not specify a method which is required,  
     105!>             default one is apply. 
     106!>          @warning  
     107!>             variable name must be __Bathymetry__ here. 
    104108!> 
    105109!>    * _nesting namelist (namnst)_:<br/> 
     
    119123!> - add header for user 
    120124!> - Bug fix, compute offset depending of grid point 
     125!> @date June, 2015 
     126!> - extrapolate all land points. 
     127!> - allow to change unit. 
     128!> @date September, 2015 
     129!> - manage useless (dummy) variable, attributes, and dimension 
     130!> @date January,2016 
     131!> - add create_bathy_check_depth as in create_boundary 
     132!> - add create_bathy_check_time  as in create_boundary 
     133!> @date February, 2016 
     134!> - do not closed sea for east-west cyclic domain 
    121135! 
     136!> @todo 
     137!> - check tl_multi is not empty 
     138!> 
    122139!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    123140!---------------------------------------------------------------------- 
     
    154171   INTEGER(i4)                                        :: il_status 
    155172   INTEGER(i4)                                        :: il_fileid 
    156    INTEGER(i4)                                        :: il_varid 
    157173   INTEGER(i4)                                        :: il_attid 
    158174   INTEGER(i4)                                        :: il_imin0 
     
    166182 
    167183   LOGICAL                                            :: ll_exist 
     184   LOGICAL                                            :: ll_fillclosed 
    168185 
    169186   TYPE(TMPP)                                         :: tl_coord0 
     
    195212   ! namelist variable 
    196213   ! namlog 
    197    CHARACTER(LEN=lc) :: cn_logfile = 'create_bathy.log'  
    198    CHARACTER(LEN=lc) :: cn_verbosity = 'warning'  
    199    INTEGER(i4)       :: in_maxerror = 5 
     214   CHARACTER(LEN=lc)                       :: cn_logfile = 'create_bathy.log'  
     215   CHARACTER(LEN=lc)                       :: cn_verbosity = 'warning'  
     216   INTEGER(i4)                             :: in_maxerror = 5 
    200217 
    201218   ! namcfg 
    202    CHARACTER(LEN=lc) :: cn_varcfg = 'variable.cfg'  
     219   CHARACTER(LEN=lc)                       :: cn_varcfg = './cfg/variable.cfg'  
     220   CHARACTER(LEN=lc)                       :: cn_dumcfg = './cfg/dummy.cfg'  
    203221 
    204222   ! namcrs 
    205    CHARACTER(LEN=lc) :: cn_coord0 = ''  
    206    INTEGER(i4)       :: in_perio0 = -1 
     223   CHARACTER(LEN=lc)                       :: cn_coord0 = ''  
     224   INTEGER(i4)                             :: in_perio0 = -1 
    207225 
    208226   ! namfin 
    209    CHARACTER(LEN=lc) :: cn_coord1 = '' 
    210    INTEGER(i4)       :: in_perio1 = -1 
    211    LOGICAL           :: ln_fillclosed = .TRUE. 
     227   CHARACTER(LEN=lc)                       :: cn_coord1 = '' 
     228   INTEGER(i4)                             :: in_perio1 = -1 
     229   LOGICAL                                 :: ln_fillclosed = .TRUE. 
    212230 
    213231   ! namvar 
     232   CHARACTER(LEN=lc), DIMENSION(ip_maxvar) :: cn_varfile = '' 
    214233   CHARACTER(LEN=lc), DIMENSION(ip_maxvar) :: cn_varinfo = '' 
    215    CHARACTER(LEN=lc), DIMENSION(ip_maxvar) :: cn_varfile = '' 
    216234 
    217235   ! namnst 
    218    INTEGER(i4)       :: in_rhoi  = 1 
    219    INTEGER(i4)       :: in_rhoj  = 1 
     236   INTEGER(i4)                             :: in_rhoi  = 1 
     237   INTEGER(i4)                             :: in_rhoj  = 1 
    220238 
    221239   ! namout 
    222    CHARACTER(LEN=lc) :: cn_fileout = 'bathy_fine.nc'  
     240   CHARACTER(LEN=lc)                       :: cn_fileout = 'bathy_fine.nc'  
    223241   !------------------------------------------------------------------- 
    224242 
     
    229247 
    230248   NAMELIST /namcfg/ &   !< configuration namelist 
    231    &  cn_varcfg          !< variable configuration file 
     249   &  cn_varcfg, &       !< variable configuration file 
     250   &  cn_dumcfg          !< dummy configuration file 
    232251 
    233252   NAMELIST /namcrs/ &   !< coarse grid namelist 
     
    241260  
    242261   NAMELIST /namvar/ &   !< variable namelist 
    243    &  cn_varinfo, &      !< list of variable and interpolation method to be used. (ex: 'votemper:linear','vosaline:cubic' ) 
    244    &  cn_varfile         !< list of variable file 
     262   &  cn_varfile, &      !< list of variable file 
     263   &  cn_varinfo         !< list of variable and interpolation method to be used. (ex: 'votemper:linear','vosaline:cubic' ) 
    245264    
    246265   NAMELIST /namnst/ &   !< nesting namelist 
     
    289308      CALL var_def_extra(TRIM(cn_varcfg)) 
    290309 
     310      ! get dummy variable 
     311      CALL var_get_dummy(TRIM(cn_dumcfg)) 
     312      ! get dummy dimension 
     313      CALL dim_get_dummy(TRIM(cn_dumcfg)) 
     314      ! get dummy attribute 
     315      CALL att_get_dummy(TRIM(cn_dumcfg)) 
     316 
    291317      READ( il_fileid, NML = namcrs ) 
    292318      READ( il_fileid, NML = namfin ) 
     
    296322      ! match variable with file 
    297323      tl_multi=multi_init(cn_varfile) 
    298        
     324  
    299325      READ( il_fileid, NML = namnst ) 
    300326      READ( il_fileid, NML = namout ) 
     
    309335 
    310336      PRINT *,"ERROR in create_bathy: can't find "//TRIM(cl_namelist) 
     337      STOP 
    311338 
    312339   ENDIF 
     
    330357      &     "check namelist") 
    331358   ENDIF 
     359 
     360   ! do not closed sea for east-west cyclic domain 
     361   ll_fillclosed=ln_fillclosed 
     362   IF( tl_coord1%i_perio == 1 ) ll_fillclosed=.FALSE. 
    332363 
    333364   ! check 
     
    404435 
    405436            ! get or check depth value 
    406             IF( tl_multi%t_mpp(ji)%t_proc(1)%i_depthid /= 0 )THEN 
    407                il_varid=tl_multi%t_mpp(ji)%t_proc(1)%i_depthid 
    408                IF( ASSOCIATED(tl_depth%d_value) )THEN 
    409                   tl_tmp=iom_mpp_read_var(tl_mpp,il_varid) 
    410                   IF( ANY( tl_depth%d_value(:,:,:,:) /= & 
    411                   &        tl_tmp%d_value(:,:,:,:) ) )THEN 
    412                      CALL logger_fatal("CREATE BATHY: depth value from "//& 
    413                      &  TRIM(tl_multi%t_mpp(ji)%c_name)//" not conform "//& 
    414                      &  " to those from former file(s).") 
    415                   ENDIF 
    416                   CALL var_clean(tl_tmp) 
    417                ELSE 
    418                   tl_depth=iom_mpp_read_var(tl_mpp,il_varid) 
    419                ENDIF 
    420             ENDIF 
     437            CALL create_bathy_check_depth( tl_mpp, tl_depth ) 
    421438 
    422439            ! get or check time value 
    423             IF( tl_multi%t_mpp(ji)%t_proc(1)%i_timeid /= 0 )THEN 
    424                il_varid=tl_multi%t_mpp(ji)%t_proc(1)%i_timeid 
    425                IF( ASSOCIATED(tl_time%d_value) )THEN 
    426                   tl_tmp=iom_mpp_read_var(tl_mpp,il_varid) 
    427                   IF( ANY( tl_time%d_value(:,:,:,:) /= & 
    428                   &        tl_tmp%d_value(:,:,:,:) ) )THEN 
    429                      CALL logger_fatal("CREATE BATHY: time value from "//& 
    430                      &  TRIM(tl_multi%t_mpp(ji)%c_name)//" not conform "//& 
    431                      &  " to those from former file(s).") 
    432                   ENDIF 
    433                   CALL var_clean(tl_tmp) 
    434                ELSE 
    435                   tl_time=iom_mpp_read_var(tl_mpp,il_varid) 
    436                ENDIF 
    437             ENDIF 
     440            CALL create_bathy_check_time( tl_mpp, tl_time ) 
    438441 
    439442            ! close mpp file 
    440443            CALL iom_mpp_close(tl_mpp) 
    441444 
    442             IF( ANY( tl_mpp%t_dim(1:2)%i_len /= & 
    443             &        tl_coord0%t_dim(1:2)%i_len) )THEN 
     445            IF( ANY(tl_mpp%t_dim(1:2)%i_len /= tl_coord0%t_dim(1:2)%i_len).OR.& 
     446            &   ALL(il_rho(:)==1) )THEN 
    444447               !- extract bathymetry from fine grid bathymetry  
    445448               DO jj=1,tl_multi%t_mpp(ji)%t_proc(1)%i_nvar 
     
    482485   ENDIF 
    483486 
     487   ! use additional request 
    484488   DO jk=1,tl_multi%i_nvar 
     489 
     490         ! change unit and apply factor 
     491         CALL var_chg_unit(tl_var(jk)) 
     492 
    485493         ! forced min and max value 
    486494         CALL var_limit_value(tl_var(jk)) 
    487495 
    488496         ! fill closed sea 
    489          IF( ln_fillclosed )THEN 
     497         IF( ll_fillclosed )THEN 
    490498            ALLOCATE( il_mask(tl_var(jk)%t_dim(1)%i_len, & 
    491499            &                 tl_var(jk)%t_dim(2)%i_len) ) 
     
    508516         &   dl_minbat <= 0._dp  )THEN 
    509517            CALL logger_debug("CREATE BATHY: min value "//TRIM(fct_str(dl_minbat))) 
    510             CALL logger_error("CREATE BATHY: Bathymetry has value <= 0") 
     518            CALL logger_fatal("CREATE BATHY: Bathymetry has value <= 0") 
    511519         ENDIF 
    512520 
     
    557565 
    558566   ! add other variables 
    559    DO jk=1,tl_multi%i_nvar 
     567   DO jk=tl_multi%i_nvar,1,-1 
    560568      CALL file_add_var(tl_fileout, tl_var(jk)) 
    561569      CALL var_clean(tl_var(jk)) 
     
    623631   !> 
    624632   !> @author J.Paul 
    625    !> - November, 2013- Initial Version 
     633   !> @date November, 2013 - Initial Version 
    626634   !> 
    627635   !> @param[in] td_var    variable structure  
     
    759767   !>  
    760768   !> @author J.Paul 
    761    !> - November, 2013- Initial Version 
     769   !> @date November, 2013 - Initial Version 
    762770   !> 
    763771   !> @param[in] td_var    variable structure  
     
    878886   !>  
    879887   !> @author J.Paul 
    880    !> - November, 2013- Initial Version 
     888   !> @date November, 2013 - Initial Version 
    881889   !> 
    882890   !> @param[in] td_var    variable structure 
     
    897905      IMPLICIT NONE 
    898906      ! Argument 
    899       TYPE(TVAR) , INTENT(IN) :: td_var   
    900       TYPE(TMPP) , INTENT(IN) :: td_mpp  
    901       INTEGER(i4), INTENT(IN) :: id_imin 
    902       INTEGER(i4), INTENT(IN) :: id_imax 
    903       INTEGER(i4), INTENT(IN) :: id_jmin 
    904       INTEGER(i4), INTENT(IN) :: id_jmax 
     907      TYPE(TVAR)                 , INTENT(IN) :: td_var   
     908      TYPE(TMPP)                 , INTENT(IN) :: td_mpp  
     909      INTEGER(i4)                , INTENT(IN) :: id_imin 
     910      INTEGER(i4)                , INTENT(IN) :: id_imax 
     911      INTEGER(i4)                , INTENT(IN) :: id_jmin 
     912      INTEGER(i4)                , INTENT(IN) :: id_jmax 
    905913      INTEGER(i4), DIMENSION(:,:), INTENT(IN) :: id_offset 
    906914      INTEGER(i4), DIMENSION(:)  , INTENT(IN) :: id_rho 
     
    955963      CALL dom_del_extra( tl_var, tl_dom, il_rho(:) ) 
    956964 
     965      CALL dom_clean_extra( tl_dom ) 
     966 
    957967      !- add ghost cell 
    958968      CALL grid_add_ghost(tl_var,tl_dom%i_ghost(:,:)) 
     
    989999   !>  
    9901000   !> @author J.Paul 
    991    !> - November, 2013- Initial Version 
     1001   !> @date November, 2013 - Initial Version 
    9921002   !> 
    9931003   !> @param[inout] td_var variable structure  
     
    10731083 
    10741084      ! extrapolate variable 
    1075       CALL extrap_fill_value( td_var, id_offset=id_offset(:,:), & 
    1076       &                               id_rho=id_rho(:),         & 
    1077       &                               id_iext=il_iext, id_jext=il_jext ) 
     1085      CALL extrap_fill_value( td_var ) 
    10781086 
    10791087      ! interpolate Bathymetry 
     
    10931101 
    10941102   END SUBROUTINE create_bathy_interp 
     1103   !------------------------------------------------------------------- 
     1104   !> @brief 
     1105   !> This subroutine get depth variable value in an open mpp structure 
     1106   !> and check if agree with already input depth variable. 
     1107   !>  
     1108   !> @details  
     1109   !> 
     1110   !> @author J.Paul 
     1111   !> @date January, 2016 - Initial Version 
     1112   !> 
     1113   !> @param[in] td_mpp       mpp structure 
     1114   !> @param[inout] td_depth  depth variable structure  
     1115   !------------------------------------------------------------------- 
     1116   SUBROUTINE create_bathy_check_depth( td_mpp, td_depth ) 
     1117 
     1118      IMPLICIT NONE 
     1119 
     1120      ! Argument 
     1121      TYPE(TMPP) , INTENT(IN   ) :: td_mpp 
     1122      TYPE(TVAR) , INTENT(INOUT) :: td_depth 
     1123 
     1124      ! local variable 
     1125      INTEGER(i4) :: il_varid 
     1126      TYPE(TVAR)  :: tl_depth 
     1127      ! loop indices 
     1128      !---------------------------------------------------------------- 
     1129 
     1130      ! get or check depth value 
     1131      IF( td_mpp%t_proc(1)%i_depthid /= 0 )THEN 
     1132 
     1133         il_varid=td_mpp%t_proc(1)%i_depthid 
     1134         IF( ASSOCIATED(td_depth%d_value) )THEN 
     1135 
     1136            tl_depth=iom_mpp_read_var(td_mpp, il_varid) 
     1137 
     1138            IF( ANY( td_depth%d_value(:,:,:,:) /= & 
     1139            &        tl_depth%d_value(:,:,:,:) ) )THEN 
     1140 
     1141               CALL logger_warn("CREATE BATHY: depth value from "//& 
     1142               &  TRIM(td_mpp%c_name)//" not conform "//& 
     1143               &  " to those from former file(s).") 
     1144 
     1145            ENDIF 
     1146            CALL var_clean(tl_depth) 
     1147 
     1148         ELSE 
     1149            td_depth=iom_mpp_read_var(td_mpp,il_varid) 
     1150         ENDIF 
     1151 
     1152      ENDIF 
     1153       
     1154   END SUBROUTINE create_bathy_check_depth 
     1155   !------------------------------------------------------------------- 
     1156   !> @brief 
     1157   !> This subroutine get date and time in an open mpp structure 
     1158   !> and check if agree with date and time already read. 
     1159   !>  
     1160   !> @details  
     1161   !> 
     1162   !> @author J.Paul 
     1163   !> @date January, 2016 - Initial Version 
     1164   !> 
     1165   !> @param[in] td_mpp      mpp structure 
     1166   !> @param[inout] td_time  time variable structure  
     1167   !------------------------------------------------------------------- 
     1168   SUBROUTINE create_bathy_check_time( td_mpp, td_time ) 
     1169 
     1170      IMPLICIT NONE 
     1171 
     1172      ! Argument 
     1173      TYPE(TMPP), INTENT(IN   ) :: td_mpp 
     1174      TYPE(TVAR), INTENT(INOUT) :: td_time 
     1175 
     1176      ! local variable 
     1177      INTEGER(i4) :: il_varid 
     1178      TYPE(TVAR)  :: tl_time 
     1179 
     1180      TYPE(TDATE) :: tl_date1 
     1181      TYPE(TDATE) :: tl_date2 
     1182      ! loop indices 
     1183      !---------------------------------------------------------------- 
     1184 
     1185      ! get or check depth value 
     1186      IF( td_mpp%t_proc(1)%i_timeid /= 0 )THEN 
     1187 
     1188         il_varid=td_mpp%t_proc(1)%i_timeid 
     1189         IF( ASSOCIATED(td_time%d_value) )THEN 
     1190 
     1191            tl_time=iom_mpp_read_var(td_mpp, il_varid) 
     1192 
     1193            tl_date1=var_to_date(td_time) 
     1194            tl_date2=var_to_date(tl_time) 
     1195            IF( tl_date1 - tl_date2 /= 0 )THEN 
     1196 
     1197               CALL logger_warn("CREATE BATHY: date from "//& 
     1198               &  TRIM(td_mpp%c_name)//" not conform "//& 
     1199               &  " to those from former file(s).") 
     1200 
     1201            ENDIF 
     1202            CALL var_clean(tl_time) 
     1203 
     1204         ELSE 
     1205            td_time=iom_mpp_read_var(td_mpp,il_varid) 
     1206         ENDIF 
     1207 
     1208      ENDIF 
     1209       
     1210   END SUBROUTINE create_bathy_check_time 
    10951211END PROGRAM create_bathy 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/create_coord.f90

    r5602 r7261  
    99!> @file 
    1010!> @brief  
    11 !> This program create fine grid coordinate file. 
     11!> This program creates fine grid coordinate file. 
    1212!> 
    1313!> @details 
     
    2424!> @endcode 
    2525!>     
    26 !>    create_coord.nam comprise 6 namelists:<br/> 
     26!> @note  
     27!>    you could find a template of the namelist in templates directory. 
     28!> 
     29!>    create_coord.nam contains 6 namelists:<br/> 
    2730!>       - logger namelist (namlog) 
    2831!>       - config namelist (namcfg) 
     
    3235!>       - output namelist (namout) 
    3336!>     
    34 !>    @note  
    35 !>       All namelists have to be in file create_coord.nam,  
    36 !>       however variables of those namelists are all optional. 
    37 !> 
    3837!>    * _logger namelist (namlog)_:<br/> 
    3938!>       - cn_logfile   : log filename 
    4039!>       - cn_verbosity : verbosity ('trace','debug','info', 
    41 !> 'warning','error','fatal') 
     40!> 'warning','error','fatal','none') 
    4241!>       - in_maxerror  : maximum number of error allowed 
    4342!> 
     
    4544!>       - cn_varcfg : variable configuration file  
    4645!> (see ./SIREN/cfg/variable.cfg) 
     46!>       - cn_dumcfg : useless (dummy) configuration file, for useless  
     47!> dimension or variable (see ./SIREN/cfg/dummy.cfg). 
    4748!> 
    4849!>    * _coarse grid namelist (namcrs)_:<br/> 
     
    5455!>       - cn_varinfo : list of variable and extra information about request(s) 
    5556!> to be used.<br/> 
    56 !>          each elements of *cn_varinfo* is a string character.<br/> 
     57!>          each elements of *cn_varinfo* is a string character  
     58!>          (separated by ',').<br/> 
    5759!>          it is composed of the variable name follow by ':',  
    5860!>          then request(s) to be used on this variable.<br/>  
    5961!>          request could be: 
    60 !>             - interpolation method 
    61 !>             - extrapolation method 
    62 !>             - filter method 
     62!>             - int = interpolation method 
     63!>             - ext = extrapolation method 
    6364!>  
    6465!>                requests must be separated by ';' .<br/> 
     
    6869!>          @ref extrap and @ref filter modules.<br/> 
    6970!> 
    70 !>          Example: 'votemper: linear; hann(2,3); dist_weight',  
    71 !>          'vosaline: cubic'<br/> 
     71!>          Example: 'glamt: int=linear; ext=dist_weight',  
     72!>          'e1t: int=cubic/rhoi'<br/> 
    7273!>          @note  
    7374!>             If you do not specify a method which is required,  
     
    9091!> 
    9192!>    * _output namelist (namout)_: 
    92 !>       - cn_fileout : output coordinate file 
     93!>       - cn_fileout : output coordinate file name 
    9394!> 
    9495!> @author J.Paul 
     
    99100!> - compute offset considering grid point 
    100101!> - add global attributes in output file 
     102!> @date September, 2015 
     103!> - manage useless (dummy) variable, attributes, and dimension 
    101104!> 
    102105!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    152155   TYPE(TFILE)                                          :: tl_fileout 
    153156 
    154    ! check  
    155 !   INTEGER(i4)                                          :: il_imin0 
    156 !   INTEGER(i4)                                          :: il_imax0 
    157 !   INTEGER(i4)                                          :: il_jmin0 
    158 !   INTEGER(i4)                                          :: il_jmax0 
    159 !   INTEGER(i4)      , DIMENSION(2,2)                    :: il_ind2 
    160 !   TYPE(TMPP)                                           :: tl_mppout 
    161  
    162157   ! loop indices 
    163158   INTEGER(i4) :: ji 
     
    165160 
    166161   ! namelist variable 
     162   ! namlog 
    167163   CHARACTER(LEN=lc) :: cn_logfile = 'create_coord.log'  
    168164   CHARACTER(LEN=lc) :: cn_verbosity = 'warning'  
    169165   INTEGER(i4)       :: in_maxerror = 5 
    170166 
     167   ! namcfg 
     168   CHARACTER(LEN=lc) :: cn_varcfg = './cfg/variable.cfg'  
     169   CHARACTER(LEN=lc) :: cn_dumcfg = './cfg/dummy.cfg' 
     170 
     171   ! namcrs 
    171172   CHARACTER(LEN=lc) :: cn_coord0 = ''  
    172173   INTEGER(i4)       :: in_perio0 = -1 
    173174 
    174    CHARACTER(LEN=lc) :: cn_varcfg = '../cfg/variable.cfg'  
    175  
     175   ! namvar 
    176176   CHARACTER(LEN=lc), DIMENSION(ip_maxvar) :: cn_varinfo = '' 
    177177 
     178   !namnst 
    178179   INTEGER(i4)       :: in_imin0 = 0 
    179180   INTEGER(i4)       :: in_imax0 = 0 
     
    183184   INTEGER(i4)       :: in_rhoj  = 1 
    184185 
     186   !namout 
    185187   CHARACTER(LEN=lc) :: cn_fileout= 'coord_fine.nc' 
    186188   !------------------------------------------------------------------- 
     
    192194 
    193195   NAMELIST /namcfg/ &  !  config namelist 
    194    &  cn_varcfg         !< variable configuration file 
     196   &  cn_varcfg, &       !< variable configuration file 
     197   &  cn_dumcfg          !< dummy configuration file 
    195198 
    196199   NAMELIST /namcrs/ &  !  coarse grid namelist 
     
    252255      CALL var_def_extra(TRIM(cn_varcfg)) 
    253256 
     257      ! get dummy variable 
     258      CALL var_get_dummy(TRIM(cn_dumcfg)) 
     259      ! get dummy dimension 
     260      CALL dim_get_dummy(TRIM(cn_dumcfg)) 
     261      ! get dummy attribute 
     262      CALL att_get_dummy(TRIM(cn_dumcfg)) 
     263 
    254264      READ( il_fileid, NML = namcrs ) 
    255265      READ( il_fileid, NML = namvar ) 
     
    305315 
    306316      il_offset(:,:,:)=create_coord_get_offset(il_rho(:)) 
    307  
    308317   ENDIF 
    309318 
     
    348357      CALL dom_del_extra( tl_var(ji), tl_dom, il_rho(:), .true. ) 
    349358 
    350       ! do not add ghost cell.  
    351       ! ghost cell already replace by value for coordinates  
    352       ! CALL grid_add_ghost(tl_var(ji),tl_dom%i_ghost(:,:)) 
    353  
    354359      ! filter 
    355360      CALL filter_fill_value(tl_var(ji))       
    356361 
    357362   ENDDO 
     363 
     364   ! clean 
     365   CALL dom_clean_extra( tl_dom ) 
    358366 
    359367   ! close mpp files 
     
    375383 
    376384   ! add variables 
    377    DO ji=1,il_nvar 
     385   DO ji=il_nvar,1,-1 
    378386      CALL file_add_var(tl_fileout, tl_var(ji)) 
     387      CALL var_clean(tl_var(ji)) 
    379388   ENDDO 
    380  
    381    ! recompute some attribute 
    382389 
    383390   ! add some attribute 
     
    392399   CALL file_add_att(tl_fileout, tl_att)    
    393400 
    394    tl_att=att_init("src_i_indices",(/in_imin0,in_imax0/)) 
     401   tl_att=att_init("src_i_indices",(/tl_dom%i_imin,tl_dom%i_imax/)) 
    395402   CALL file_add_att(tl_fileout, tl_att)    
    396    tl_att=att_init("src_j_indices",(/in_jmin0,in_jmax0/)) 
     403   tl_att=att_init("src_j_indices",(/tl_dom%i_jmin,tl_dom%i_jmax/)) 
    397404   CALL file_add_att(tl_fileout, tl_att) 
    398405   IF( .NOT. ALL(il_rho(:)==1) )THEN 
     
    440447 
    441448   CALL file_clean(tl_fileout) 
    442  
    443 !   ! check domain 
    444 !   tl_coord0=mpp_init( file_init(TRIM(cn_coord0)), id_perio=in_perio0) 
    445 !   tl_mppout=mpp_init( file_init(TRIM(cn_fileout)) ) 
    446 !   CALL grid_get_info(tl_coord0) 
    447 !   CALL iom_mpp_open(tl_mppout) 
    448 ! 
    449 !   il_ind2(:,:)=grid_get_coarse_index( tl_coord0, tl_mppout, & 
    450 !   &                                   id_rho=il_rho(:) ) 
    451 ! 
    452 !   il_imin0=il_ind2(1,1) ; il_imax0=il_ind2(1,2) 
    453 !   il_jmin0=il_ind2(2,1) ; il_jmax0=il_ind2(2,2) 
    454 ! 
    455 !   IF( il_imin0 /= in_imin0 .OR. & 
    456 !   &   il_imax0 /= in_imax0 .OR. & 
    457 !   &   il_jmin0 /= in_jmin0 .OR. & 
    458 !   &   il_jmax0 /= in_jmax0 )THEN 
    459 !      CALL logger_debug("CREATE COORD: output indices ("//& 
    460 !      &                 TRIM(fct_str(il_imin0))//","//& 
    461 !      &                 TRIM(fct_str(il_imax0))//") ("//& 
    462 !      &                 TRIM(fct_str(il_jmin0))//","//& 
    463 !      &                 TRIM(fct_str(il_jmax0))//")" )  
    464 !      CALL logger_debug("CREATE COORD: input indices ("//& 
    465 !      &                 TRIM(fct_str(in_imin0))//","//& 
    466 !      &                 TRIM(fct_str(in_imax0))//") ("//& 
    467 !      &                 TRIM(fct_str(in_jmin0))//","//& 
    468 !      &                 TRIM(fct_str(in_jmax0))//")" )  
    469 !      CALL logger_fatal("CREATE COORD: output domain not confrom "//& 
    470 !      &                 "with input indices") 
    471 !   ENDIF 
    472 ! 
    473 !   CALL iom_mpp_close(tl_coord0) 
    474 !   CALL iom_mpp_close(tl_mppout) 
    475449 
    476450   ! close log file 
     
    539513   !> @param[in] id_iext   number of points to be extrapolated in i-direction 
    540514   !> @param[in] id_jext   number of points to be extrapolated in j-direction 
     515   !> 
     516   !> @todo check if mask is really needed 
    541517   !------------------------------------------------------------------- 
    542518   SUBROUTINE create_coord_interp( td_var,          & 
     
    626602 
    627603         ! extrapolate variable 
    628          CALL extrap_fill_value( td_var, id_iext=il_iext, id_jext=il_jext ) 
     604         CALL extrap_fill_value( td_var ) 
    629605 
    630606         ! interpolate variable 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/create_restart.f90

    r5602 r7261  
    99!> @file 
    1010!> @brief  
    11 !> This program create restart file. 
     11!> This program creates restart file. 
    1212!> 
    1313!> @details 
    1414!> @section sec1 method 
    1515!> Variables could be extracted from fine grid file, interpolated from coarse 
    16 !> grid file or restart file, or manually written.<br/>  
    17 !> Then they are split over new decomposition.  
     16!> grid file or restart file. Variables could also be manually written.<br/>  
     17!> Then they are split over new layout.  
    1818!> @note  
    1919!>    method could be different for each variable. 
     
    2525!> @endcode 
    2626!>     
    27 !>    create_restart.nam comprise 9 namelists:<br/> 
     27!> @note  
     28!>    you could find a template of the namelist in templates directory. 
     29!> 
     30!>    create_restart.nam contains 9 namelists:<br/> 
    2831!>       - logger namelist (namlog) 
    2932!>       - config namelist (namcfg)