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

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

Ignore:
Timestamp:
2016-10-13T11:08:38+02:00 (8 years ago)
Author:
jpaul
Message:

see ticket #1781

Location:
branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN
Files:
5 added
20 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/Doxyfile

    r7001 r7025  
    5252# to the output directory. 
    5353 
    54 PROJECT_LOGO           = ./docsrc/Image/logoSirenNemo.png 
     54PROJECT_LOGO           = ./src/docsrc/Image/logoSirenNemo.png 
    5555 
    5656# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path 
     
    5959# left blank the current directory will be used. 
    6060 
    61 OUTPUT_DIRECTORY       = ../doc 
     61OUTPUT_DIRECTORY       = ./doc 
    6262 
    6363# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- 
     
    754754# Note: If this tag is empty the current directory is searched. 
    755755 
    756 INPUT                  = . ./docsrc 
     756INPUT                  = ./src ./src/docsrc 
    757757 
    758758# This tag can be used to specify the character encoding of the source files 
     
    842842# \image command). 
    843843 
    844 IMAGE_PATH             = ./docsrc/Image 
     844IMAGE_PATH             = ./src/docsrc/Image 
    845845 
    846846# The INPUT_FILTER tag can be used to specify a program that doxygen should 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/README

    r5037 r7025  
    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/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/boundary.f90

    r6393 r7025  
    15291529   !> @author J.Paul  
    15301530   !> @date November, 2013 - Initial Version  
    1531    !  
     1531   !> @date June, 2016 
     1532   !> - Bug fix: take into account that boundaries are compute on T point, 
     1533   !>   but expressed on U,V point 
     1534   !> 
    15321535   !> @param[inout] td_bdy boundary structure  
    15331536   !> @param[in] td_var    variable structure  
     
    15521555      il_max(jp_west )=td_var%t_dim(2)%i_len 
    15531556  
    1554       il_maxindex(jp_north)=td_var%t_dim(2)%i_len-ip_ghost 
     1557      ! index expressed on U,V point, move on T point. 
     1558      il_maxindex(jp_north)=td_var%t_dim(2)%i_len-ip_ghost+1 
    15551559      il_maxindex(jp_south)=td_var%t_dim(2)%i_len-ip_ghost 
    1556       il_maxindex(jp_east )=td_var%t_dim(1)%i_len-ip_ghost 
     1560      il_maxindex(jp_east )=td_var%t_dim(1)%i_len-ip_ghost+1 
    15571561      il_maxindex(jp_west )=td_var%t_dim(1)%i_len-ip_ghost 
    15581562 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/create_bathy.f90

    r6393 r7025  
    2222!> <br/>     
    2323!> \image html  bathy_40.png  
    24 !> \image latex bathy_30.png 
     24!> <center>\image latex bathy_30.png 
     25!> </center> 
    2526!> 
    2627!> @note  
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/create_boundary.F90

    r6393 r7025  
    2626!>  <br/>  
    2727!> \image html  boundary_NEATL36_70.png  
    28 !> \image latex boundary_NEATL36_70.png 
     28!> <center>\image latex boundary_NEATL36_70.png 
     29!> </center> 
    2930!> 
    3031!> @note  
     
    6566!> 
    6667!>    * _vertical grid namelist (namzgr)_:<br/> 
    67 !>       - dn_pp_to_be_computed  : 
    6868!>       - dn_ppsur              : 
    6969!>       - dn_ppa0               : 
     
    161161!>             - cn_north='index1(width),first1:last1|index2,first2:last2' 
    162162!>             \image html  boundary_50.png  
    163 !>             \image latex boundary_50.png 
     163!>             <center>\image latex boundary_50.png 
     164!>             </center> 
    164165!>       - cn_south  : south boundary indices on fine grid 
    165166!>       - cn_east   : east  boundary indices on fine grid 
     
    198199!> @date January, 2016 
    199200!> - same process use for variable extracted or interpolated from input file. 
     201!> 
     202!> @todo 
     203!> - rewitre using meshmask instead of bathymetry and coordinates files. 
    200204!> 
    201205!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    396400 
    397401   !namzgr 
    398    REAL(dp)                                :: dn_pp_to_be_computed = 0._dp 
    399402   REAL(dp)                                :: dn_ppsur   = -3958.951371276829_dp 
    400403   REAL(dp)                                :: dn_ppa0    =   103.953009600000_dp 
     
    457460  
    458461   NAMELIST /namzgr/ & 
    459    &  dn_pp_to_be_computed, & 
    460462   &  dn_ppsur,     & 
    461463   &  dn_ppa0,      & 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/create_coord.f90

    r6393 r7025  
    7676!> 
    7777!>    * _nesting namelist (namnst)_:<br/> 
     78!>       you could define sub domain with coarse grid indices or with coordinates. 
    7879!>       - in_imin0 : i-direction lower left  point indice  
    7980!> of coarse grid subdomain to be used 
     
    8485!>       - in_jmax0 : j-direction upper right point indice 
    8586!> of coarse grid subdomain to be used 
     87!>       - rn_lonmin0 : lower left  longitude of coarse grid subdomain to be used 
     88!>       - rn_lonmax0 : upper right longitude of coarse grid subdomain to be used 
     89!>       - rn_latmin0 : lower left  latitude  of coarse grid subdomain to be used 
     90!>       - rn_latmax0 : upper right latitude  of coarse grid subdomain to be used 
    8691!>       - in_rhoi  : refinement factor in i-direction 
    8792!>       - in_rhoj  : refinement factor in j-direction<br/> 
    8893!> 
    8994!>       \image html  grid_zoom_40.png  
    90 !>       \image latex grid_zoom_40.png 
     95!>       <center> \image latex grid_zoom_40.png  
     96!>       </center> 
    9197!> 
    9298!>    * _output namelist (namout)_: 
     
    102108!> @date September, 2015 
    103109!> - manage useless (dummy) variable, attributes, and dimension 
     110!> @date September, 2016 
     111!> - allow to use coordinate to define subdomain 
    104112!> 
    105113!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    139147   INTEGER(i4)                                          :: il_nvar 
    140148   INTEGER(i4)                                          :: il_ew 
     149   INTEGER(i4)                                          :: il_imin0 
     150   INTEGER(i4)                                          :: il_imax0 
     151   INTEGER(i4)                                          :: il_jmin0 
     152   INTEGER(i4)                                          :: il_jmax0 
     153 
    141154   INTEGER(i4)      , DIMENSION(ip_maxdim)              :: il_rho 
     155   INTEGER(i4)      , DIMENSION(2)                      :: il_index 
    142156   INTEGER(i4)      , DIMENSION(2,2,ip_npoint)          :: il_offset 
    143157 
     
    177191 
    178192   !namnst 
     193   REAL(sp)          :: rn_lonmin0 = -360. 
     194   REAL(sp)          :: rn_lonmax0 = -360. 
     195   REAL(sp)          :: rn_latmin0 = -360. 
     196   REAL(sp)          :: rn_latmax0 = -360. 
    179197   INTEGER(i4)       :: in_imin0 = 0 
    180198   INTEGER(i4)       :: in_imax0 = 0 
     
    207225    
    208226   NAMELIST /namnst/ &  !  nesting namelist 
     227   &  rn_lonmin0, &     !< lower left  coarse grid longitude 
     228   &  rn_lonmax0, &     !< upper right coarse grid longitude 
     229   &  rn_latmin0, &     !< lower left  coarse grid latitude 
     230   &  rn_latmax0, &     !< upper right coarse grid latitude 
    209231   &  in_imin0,   &     !< i-direction lower left  point indice  
    210232   &  in_imax0,   &     !< i-direction upper right point indice 
     
    301323 
    302324   ! check nesting parameters 
    303    IF( in_imin0 < 0 .OR. in_imax0 < 0 .OR. in_jmin0 < 0 .OR. in_jmax0 < 0)THEN 
     325   il_index(:)=0 
     326   IF( rn_lonmin0 >= -180. .AND. rn_lonmin0 <= 360 .AND. & 
     327     & rn_latmin0 >= -90.  .AND. rn_latmin0 <= 90. )THEN 
     328 
     329      il_index(:)=grid_get_closest(tl_coord0, & 
     330         &                         REAL(rn_lonmin0,dp), REAL(rn_latmin0,dp), & 
     331         &                         cd_pos='ll')  
     332      il_imin0=il_index(1) 
     333      il_jmin0=il_index(2) 
     334   ELSE 
     335      il_imin0=in_imin0 
     336      il_jmin0=in_jmin0 
     337   ENDIF 
     338 
     339   il_index(:)=0 
     340   IF( rn_lonmax0 >= -180. .AND. rn_lonmax0 <= 360 .AND. & 
     341     & rn_latmax0 >= -90.  .AND. rn_latmax0 <= 90. )THEN 
     342      il_index(:)=grid_get_closest(tl_coord0, & 
     343         &                         REAL(rn_lonmax0,dp), REAL(rn_latmax0,dp), & 
     344         &                         cd_pos='ur')  
     345      il_imax0=il_index(1) 
     346      il_jmax0=il_index(2) 
     347   ELSE 
     348      il_imax0=in_imax0 
     349      il_jmax0=in_jmax0 
     350   ENDIF 
     351 
     352   ! forced indices for east west cyclic domain 
     353   IF( rn_lonmin0 == rn_lonmax0 .AND. & 
     354     & rn_lonmin0 /= -360. )THEN 
     355      il_imin0=0 
     356      il_imax0=0 
     357   ENDIF 
     358 
     359   IF( il_imin0 < 0 .OR. il_imax0 < 0 .OR. il_jmin0 < 0 .OR. il_jmax0 < 0)THEN 
    304360      CALL logger_fatal("CREATE COORD: invalid points indices."//& 
    305361      &  " check namelist "//TRIM(cl_namelist)) 
     
    318374 
    319375   ! check domain validity 
    320    CALL grid_check_dom(tl_coord0, in_imin0, in_imax0, in_jmin0, in_jmax0 ) 
     376   CALL grid_check_dom(tl_coord0, il_imin0, il_imax0, il_jmin0, il_jmax0 ) 
    321377 
    322378   ! compute domain 
    323379   tl_dom=dom_init( tl_coord0,         & 
    324    &                in_imin0, in_imax0,& 
    325    &                in_jmin0, in_jmax0 ) 
     380   &                il_imin0, il_imax0,& 
     381   &                il_jmin0, il_jmax0 ) 
    326382 
    327383   ! add extra band (if need be) to compute interpolation 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/create_restart.f90

    r6393 r7025  
    6262!> 
    6363!>    * _vertical grid namelist (namzgr)_:<br/> 
    64 !>       - dn_pp_to_be_computed  : 
    65 !>       - dn_ppsur              : 
    66 !>       - dn_ppa0               : 
    67 !>       - dn_ppa1               : 
    68 !>       - dn_ppa2               :  
    69 !>       - dn_ppkth              : 
    70 !>       - dn_ppkth2             : 
    71 !>       - dn_ppacr              : 
    72 !>       - dn_ppacr2             : 
    73 !>       - dn_ppdzmin            : 
    74 !>       - dn_pphmax             : 
     64!>       - dn_ppsur              : coefficient to compute vertical grid 
     65!>       - dn_ppa0               : coefficient to compute vertical grid 
     66!>       - dn_ppa1               : coefficient to compute vertical grid 
     67!>       - dn_ppa2               : double tanh function parameter 
     68!>       - dn_ppkth              : coefficient to compute vertical grid 
     69!>       - dn_ppkth2             : double tanh function parameter 
     70!>       - dn_ppacr              : coefficient to compute vertical grid 
     71!>       - dn_ppacr2             : double tanh function parameter 
     72!>       - dn_ppdzmin            : minimum vertical spacing 
     73!>       - dn_pphmax             : maximum depth 
    7574!>       - in_nlevel             : number of vertical level 
    7675!> 
     76!>     @note If ppa1 and ppa0 and ppsur are undefined 
     77!>           NEMO will compute them from ppdzmin , pphmax, ppkth, ppacr 
     78!> 
    7779!>    * _partial step namelist (namzps)_:<br/> 
    78 !>       - dn_e3zps_min          : 
    79 !>       - dn_e3zps_rat          :  
     80!>       - dn_e3zps_min          : minimum thickness of partial step level (meters) 
     81!>       - dn_e3zps_rat          : minimum thickness ratio of partial step level 
    8082!> 
    8183!>    * _variable namelist (namvar)_:<br/> 
     
    158160!> @date September, 2015 
    159161!> - manage useless (dummy) variable, attributes, and dimension 
     162!> 
     163!> @todo 
     164!> - rewrite using meshmask instead of bathymetry and coordinates files 
    160165!> 
    161166!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    262267 
    263268   !namzgr 
    264    REAL(dp)                                :: dn_pp_to_be_computed = 0._dp 
    265269   REAL(dp)                                :: dn_ppsur   = -3958.951371276829_dp 
    266270   REAL(dp)                                :: dn_ppa0    =   103.953009600000_dp 
     
    316320  
    317321   NAMELIST /namzgr/ & 
    318    &  dn_pp_to_be_computed, & 
    319322   &  dn_ppsur,     & 
    320323   &  dn_ppa0,      & 
     
    402405      ! match variable with file 
    403406      tl_multi=multi_init(cn_varfile) 
    404        
     407  
    405408      READ( il_fileid, NML = namnst ) 
    406409      READ( il_fileid, NML = namout ) 
     
    592595               !- check grid coincidence 
    593596               IF( ll_sameGrid )THEN 
     597                  il_rho(:)=1 
    594598                  CALL grid_check_coincidence( tl_mpp, tl_coord1, & 
    595599                  &                            il_imin1, il_imax1, & 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/1_install.md

    r6393 r7025  
    2020  <b> 
    2121  - @ref index 
    22   - @ref md_docsrc_2_quickstart 
    23   - @ref md_docsrc_3_support_bug 
    24   - @ref md_docsrc_4_codingRules 
    25   - @ref md_docsrc_5_changeLog 
     22  - @ref md_src_docsrc_2_quickstart 
     23  - @ref md_src_docsrc_3_support_bug 
     24  - @ref md_src_docsrc_4_codingRules 
     25  - @ref md_src_docsrc_5_changeLog 
    2626  - @ref todo 
    2727  </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/2_quickstart.md

    r6393 r7025  
    77Actually SIREN creates all the input files you need to run a NEMO regional configuration.<br/> 
    88  
    9 SIREN is composed of a set of 5 Fortran programs : 
     9SIREN is composed of a set of 6 Fortran programs : 
    1010<ul> 
    1111 <li>create_coord.f90 to create regional grid coordinates.</li> 
     
    1616 This break may cause inconsistency between forcing fields  at boundary and regional fields. 
    1717 </li> 
     18 <li>create_meshmask.f90 to create meshmask file(s) which contain(s) all the ocean domain informations.</li> 
    1819 <li>create_restart.f90 to create initial state file from coarse grid restart 
    1920 or standard outputs. 
     
    3536Here after we briefly describe how to use each programs, 
    3637and so how to create your own regional configuration. 
    37 @note A set of GLORYS files (global reanalysis on *ORCA025* 
    38 grid), as well as examples of namelists are available in dods repository.<br/> 
    39 You could create and forced a first release of your own regional configuration, 
    40 with those files.  
     38@note As demonstrator for a first start a set of GLORYS files (global reanalysis on *ORCA025* grid), as well as examples of namelists are available [here](https://cloud.mercator-ocean.fr/public.php?service=files&t=877fb1b6e4f589340fc0df1ea6a53228). 
     39 
    4140<!-- ######################################################################  --> 
    4241# Create coordinates file # {#coord} 
     
    121120example: ORCA05</dd> 
    122121</dl> 
    123 @sa For more information see @ref md_docsrc_6_perio 
     122@sa For more information see @ref md_src_docsrc_6_perio 
    124123</dd> 
    125124</dl> 
     
    150149~~~~~~~~~~~ 
    151150@image html grid_zoom_60.png 
    152 @image latex grid_zoom_40.png 
     151<center>@image latex grid_zoom_40.png 
     152</center> 
    153153<!-- @note ghost cells all around the grid are not shown here. --> 
    154154 
     
    167167~~~~~~~~~~~ 
    168168@image html grid_glob_over_30.png 
    169 @image latex grid_glob_over_20.png 
     169<center>@image latex grid_glob_over_20.png 
     170</center> 
    170171<!-- @note in blue, the east-west overlap band of ORCA grid. --> 
    171172 
     
    184185~~~~~~~~~~~ 
    185186@image html grid_glob_band_30.png 
    186 @image latex grid_glob_band_20.png 
     187<center>@image latex grid_glob_band_20.png 
     188</center> 
    187189 
    188190</ul> 
     
    361363 
    362364<!-- ######################################################################  --> 
     365# Create meshmask (ocean domain informations) # {#meshmask} 
     366 
     367 
     368Depending on the vertical grid you choose to use, NEMO may not see the bathymetry as you defined it just before. To get the ocean domain informations as seen by NEMO, SIREN allows you to create the meshmask file(s) which contain(s) all those informations. 
     369 
     370To create this new meshmask file(s), you have to run : 
     371~~~~~~~~~~~~~~~~~~ 
     372./SIREN/create_meshmask.exe create_meshmask.nam 
     373~~~~~~~~~~~~~~~~~~ 
     374 
     375Here after is an example of namelist for *create_meshmask.exe*.<br/> 
     376In this example, you create one meshmask file named *mesh_mask.nc*.<br/> 
     377It uses coordinates file *coord_fine.nc* to define horizontal grid. 
     378and defines z-coordinate with partial steps. 
     379The minimum depth of the final Bathymetry is 10m.  
     380~~~~~~~~~~~ 
     381&namlog 
     382/ 
     383 
     384&namcfg 
     385   cn_varcfg = "PATH/NEMOGCM/TOOLS/SIREN/cfg/variable.cfg" 
     386/ 
     387 
     388&namin 
     389   cn_bathy = "PATH/bathy_merged.nc" 
     390   cn_coord = "PATH/coord_fine.nc" 
     391   in_perio = 4 
     392/ 
     393 
     394&namhgr 
     395   in_mshhgr = 0 
     396/ 
     397 
     398&namzgr 
     399   ln_zps   = .TRUE. 
     400   in_nlevel= 75 
     401/ 
     402 
     403&namdmin 
     404   dn_hmin=10. 
     405/ 
     406 
     407&namzco 
     408   dn_ppsur   = -3958.951371276829 
     409   dn_ppa0    =   103.953009600000 
     410   dn_ppa1    =     2.415951269000 
     411   dn_ppkth   =    15.351013700000 
     412   dn_ppacr   =     7.000000000000 
     413   dn_ppdzmin = 6. 
     414   dn_pphmax  = 5750. 
     415   ln_dbletanh= .TRUE. 
     416   dn_ppa2    =   100.760928500000 
     417   dn_ppkth2  =    48.029893720000 
     418   dn_ppacr2  =    13.000000000000 
     419/ 
     420 
     421&namzps 
     422   dn_e3zps_min = 25. 
     423   dn_e3zps_rat = 0.2 
     424/ 
     425 
     426&namsco 
     427/ 
     428 
     429&namcla 
     430/ 
     431 
     432&namlbc 
     433/ 
     434 
     435&namwd 
     436/ 
     437 
     438&namgrd 
     439/ 
     440 
     441&namzoom 
     442/ 
     443 
     444&namout 
     445   in_msh = 1 
     446/ 
     447~~~~~~~~~~~ 
     448 
     449Let's get describe this namelist more accurately.<br/> 
     450 
     451As previously, we have the **namlog** and **namcfg** describe above.<br/> 
     452 
     453The **namin** sub-namelist defines the Bathymetry to be used. 
     454Mainly SIREN need Bathymetry to create meshmask. 
     455Here we also read coordinates directly on a file.  
     456@note here again you could add the *in_perio* parameter if need be i.e. if your 
     457Bathymetry was not created by SIREN.<br/> 
     458@note By default SIREN suppress closed sea/lake from the ORCA domain. 
     459 
     460The **namhgr** sub-namelist defines the horizontal grid. 
     461the type of horizontal mesh is choose between :<ul> 
     462<li> in_mshhgr=0 : curvilinear coordinate on the sphere read in coordinate.nc</li> 
     463<li> in_mshhgr=1 : geographical mesh on the sphere with regular grid-spacing</li> 
     464<li> in_mshhgr=2 : f-plane with regular grid-spacing</li> 
     465<li> in_mshhgr=3 : beta-plane with regular grid-spacing</li> 
     466<li> in_mshhgr=4 : Mercator grid with T/U point at the equator</li> 
     467<li> in_mshhgr=5 : beta-plane with regular grid-spacing and rotated domain (GYRE configuration)</li> 
     468</ul> 
     469 
     470The **namzgr** sub-namelist allows to choose the type of vertical grid (z-coordinate full steps, partial steps, sigma or hybrid coordinates) and the number of level. 
     471 
     472The **namdmin** sub-namelist dfines the minimum ocean depth. It could be defines in meter (>0) or in number of level (<0). 
     473 
     474The **namzco** sub-namelist defines respectively parameters to compute z-coordinate vertical grid (**needed for all type of vertical grid**) 
     475<!-- By default, those parameters are defined the same way than in GLORYS (i.e. 75 vertical levels).<br/> --> 
     476 
     477The **namzps** sub-namelist defines extra parameters needed to define z-coordinates partial steps. 
     478 
     479The **namsco** sub-namelist defines extra parameters needed to define sigma or hybrid coordinates (not needed here). 
     480 
     481The **namcla** sub-namelist defines cross land advection for exchanges through some straits only used for ORCA2 (see namgrd). 
     482 
     483The **namlbc** sub-namelist defines lateral boundary conditions at the coast. It is needed to modify the fmask. 
     484 
     485The **namwd** sub-namelist defines the wetting and drying parameters if activated (see namzgr sub-namelist) 
     486 
     487The **namgrd** and **namzoom** sub-namelists define grid configuration. Those namelist only activated local correction. 
     488 
     489Finally, this **namout** sub-namelist defines the number output file(s).<br/> 
     490 
     491@sa For more information about how to create meshmask, see create_meshmask.f90 
     492 
     493<!-- ######################################################################  --> 
    363494# Create initial state # {#restart} 
    364495 
     
    442573Finally, this **namout** sub-namelist defines the output files.<br/> 
    443574Here we ask for output on 81 processors, with *restart_out.nc* as file "basename".<br/> 
    444 So SIREN computes the optimal layout for 81 porcessors 
     575So SIREN computes the optimal layout for 81 processors 
    445576available,<br/> 
    446 and split restart on output files named *restart_out_num.nc*, where *num* is the porc number. 
     577and split restart on output files named *restart_out_num.nc*, where *num* is the proc number. 
    447578 
    448579@note SIREN could also create the other fields you may need for 
     
    592723   <b> 
    593724   - @ref index 
    594    - @ref md_docsrc_1_install 
    595    - @ref md_docsrc_2_quickstart 
    596    - @ref md_docsrc_3_support_bug 
    597    - @ref md_docsrc_4_codingRules 
    598    - @ref md_docsrc_5_changeLog 
     725   - @ref md_src_docsrc_1_install 
     726   - @ref md_src_docsrc_2_quickstart 
     727   - @ref md_src_docsrc_3_support_bug 
     728   - @ref md_src_docsrc_4_codingRules 
     729   - @ref md_src_docsrc_5_changeLog 
    599730   - @ref todo 
    600731   </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/3_support_bug.md

    r6393 r7025  
    2020   <b> 
    2121   - @ref index 
    22    - @ref md_docsrc_1_install 
    23    - @ref md_docsrc_2_quickstart 
    24    - @ref md_docsrc_3_support_bug 
    25    - @ref md_docsrc_4_codingRules 
    26    - @ref md_docsrc_5_changeLog 
     22   - @ref md_src_docsrc_1_install 
     23   - @ref md_src_docsrc_2_quickstart 
     24   - @ref md_src_docsrc_3_support_bug 
     25   - @ref md_src_docsrc_4_codingRules 
     26   - @ref md_src_docsrc_5_changeLog 
    2727   - @ref todo 
    2828   </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/4_codingRules.md

    r6393 r7025  
    1515_GET_COMMAND_ARGUMENT_.<br/> 
    1616There exist no equivalent for those Fortran 03 intrinsec functions in Fortran 
    17 95.<br/> At least none convenient for compilers tested (see @ref md_docsrc_1_install).  
     1795.<br/> At least none convenient for compilers tested (see @ref md_src_docsrc_1_install).  
    1818 
    1919#  Free Form Source {#free} 
     
    9393   <b> 
    9494   - @ref index 
    95    - @ref md_docsrc_1_install 
    96    - @ref md_docsrc_2_quickstart 
    97    - @ref md_docsrc_3_support_bug 
    98    - @ref md_docsrc_5_changeLog 
     95   - @ref md_src_docsrc_1_install 
     96   - @ref md_src_docsrc_2_quickstart 
     97   - @ref md_src_docsrc_3_support_bug 
     98   - @ref md_src_docsrc_5_changeLog 
    9999   - @ref todo 
    100100   </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/5_changeLog.md

    • Property svn:keywords set to Revision Date
    r6393 r7025  
    33@tableofcontents 
    44 
    5 # Release $Revision$ 
    6 Initial release (2016-03-17) 
     5# Release $Date::             $ ($Revision$) 
    76 
     7## New Features 
     8- create_meshmask.F90 program to create meshmask from coordinates and bathymetry files. 
    89## Changes 
    9 ## New Features 
     10- create_coord.F90: allow to define sub domain with coarse grid indices or coordinates. 
     11- grid.F90:grid__get_closest_str: add function to get closest grid point using coarse grid coordinates strucutre. 
     12- iom.F90:iom_open: open cdf4 file as cdf 
    1013## Bug fixes 
     14- boundary.F90:boundary_check: take into account that boundaries are compute on T point, but expressed on U,V point 
     15 
     16# Initial Release 2016-03-17 
    1117 
    1218 <HR> 
    1319   <b> 
    1420   - @ref index 
    15    - @ref md_docsrc_1_install 
    16    - @ref md_docsrc_2_quickstart 
    17    - @ref md_docsrc_3_support_bug 
    18    - @ref md_docsrc_4_codingRules 
     21   - @ref md_src_docsrc_1_install 
     22   - @ref md_src_docsrc_2_quickstart 
     23   - @ref md_src_docsrc_3_support_bug 
     24   - @ref md_src_docsrc_4_codingRules 
    1925   - @ref todo 
    2026   </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/6_perio.md

    r6393 r7025  
    66<dd>ghost cells (solid walls) are imposed at all model boundaries.</dd>  
    77@image html perio0_20.png  
    8 @image latex perio0_20.png 
     8<center>@image latex perio0_20.png  
     9</center> 
    910<dt>cyclic east-west boundary (in_perio=1)</dt> 
    1011<dd>first and last rows are closed, whilst the first column is set to the value of the last-but-one column and the last column to the value of the second one.</dd>   
    1112@image html perio1_20.png  
    12 @image latex perio1_20.png 
     13<center>@image latex perio1_20.png  
     14</center> 
    1315<dt>symmetric boundary condition across the equator. (in_perio=2)</dt> 
    1416<dd>last row, and first and last columns are closed. </dd>  
    1517@image html perio2_20.png  
    16 @image latex perio2_20.png 
     18<center>@image latex perio2_20.png  
     19</center> 
    1720<dt>North fold boundary with a T -point pivot (in_perio=3)</dt> 
    1821<dd>first row, and first and last columns are closed. </dd>  
    1922@image html perio3_20.png  
    20 @image latex perio3_20.png 
     23<center>@image latex perio3_20.png  
     24</center> 
    2125<dt>North fold boundary with a T -point pivot and cyclic east-west boundary (in_perio=4)</dt> 
    2226<dd>first row is closed. The first column is set to the value of the last-but-one column and the last column to the value of the second one. </dd>  
    2327@image html perio4_20.png  
    24 @image latex perio4_20.png 
     28<center>@image latex perio4_20.png  
     29</center> 
    2530<dt>North fold boundary with a F -point pivot (in_perio=5)</dt> 
    2631<dd>first row, and first and last columns are closed. </dd>  
    2732@image html perio5_20.png  
    28 @image latex perio5_20.png 
     33<center>@image latex perio5_20.png  
     34</center> 
    2935<dt>North fold boundary with a F -point pivot and cyclic east-west boundary (in_perio=6)</dt> 
    3036<dd>first row is closed. The first column is set to the value of the last-but-one column and the last column to the value of the second one.</dd>  
    3137@image html perio6_20.png  
    32 @image latex perio6_20.png 
     38<center>@image latex perio6_20.png  
     39</center> 
    3340</dl> 
    3441@sa For more information about NEMO periodicity, see _Model Boundary Condition_ chapter in [NEMO documentation](http://www.nemo-ocean.eu/About-NEMO/Reference-manuals)) 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/docsrc/main.dox

    r6393 r7025  
    22 @mainpage About  
    33 
    4  SIREN is a software to create regional configuration with [NEMO](http://www.nemo-ocean.eu).<br/>  
    5  Actually SIREN create input files needed for a basic NEMO configuration.<br/> 
     4 SIREN is a software to set up regional configuration with [NEMO](http://www.nemo-ocean.eu).<br/>  
     5 Actually SIREN creates the input files you need to run a NEMO regional configuration.<br/> 
     6  
     7 SIREN allows you to create your own regional configuration embedded in a wider one.<br/> 
    68 
    7  SIREN allows you to create your own regional configuration embedded in a wider one.<br/> 
    8  In order to help you, a set of GLORYS files (global reanalysis on ORCA025 grid), as well as examples 
    9  of namelists are available in dods repository. 
     9 To know how to install SIREN see @ref md_src_docsrc_1_install. 
    1010 
    11  @note This software was created, and is maintain by the Configuration Manager Working Group, composed 
    12  of NEMO system team members. 
    13   
    14  To know how to install SIREN see @ref md_docsrc_1_install. 
    15  
    16  You could find a tutorial for a quick start with SIREN in @ref md_docsrc_2_quickstart.<br/> 
     11 You could find a tutorial for a quick start with SIREN in @ref md_src_docsrc_2_quickstart.<br/> 
    1712 For more information about how to use each component of SIREN 
    1813 - see create_coord.f90 to create fine grid coordinate file 
    1914 - see create_bathy.f90 to create fine grid bathymetry 
    2015 - see merge_bathy.f90 to merge fine grid bathymetry 
     16 - see create_meshmask.f90 to create mesh mask grid 
    2117 - see create_restart.f90 to create initial state file, or other fields. 
    2218 - see create_boundary.F90 to create boundary condition 
     
    2420<HR> 
    2521   <b> 
    26    - @ref md_docsrc_1_install 
    27    - @ref md_docsrc_2_quickstart 
    28    - @ref md_docsrc_3_support_bug 
    29    - @ref md_docsrc_4_codingRules 
    30    - @ref md_docsrc_5_changeLog 
     22   - @ref md_src_docsrc_1_install 
     23   - @ref md_src_docsrc_2_quickstart 
     24   - @ref md_src_docsrc_3_support_bug 
     25   - @ref md_src_docsrc_4_codingRules 
     26   - @ref md_src_docsrc_5_changeLog 
    3127   - @ref todo 
    3228   </b> 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/global.f90

    r6393 r7025  
    101101   REAL(dp)                                , PARAMETER :: dp_fill_i4=NF90_FILL_INT    !< INT fill value 
    102102   REAL(dp)                                , PARAMETER :: dp_fill_sp=NF90_FILL_FLOAT  !< real fill value 
    103    REAL(dp)                                , PARAMETER :: dp_fill=NF90_FILL_DOUBLE !< double fill value 
     103   REAL(dp)                                , PARAMETER :: dp_fill=NF90_FILL_DOUBLE    !< double fill value 
    104104 
    105105   INTEGER(i4)                             , PARAMETER :: ip_npoint=4 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/grid.f90

    r6393 r7025  
    218218!> @date February, 2015 
    219219!> - add function grid_fill_small_msk to fill small domain inside bigger one 
    220 !> @February, 2016 
     220!> @date February, 2016 
    221221!> - improve way to check coincidence (bug fix) 
    222222!> - manage grid cases for T,U,V or F point, with even or odd refinment (bug fix) 
     223!> @date April, 2016 
     224!> - add function to get closest grid point using coarse grid coordinates strucutre  
    223225! 
    224226!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    271273   PRIVATE :: grid__get_coarse_index_cc ! - using coarse and fine grid array of lon,lat 
    272274 
     275                                     ! return closest coarse grid point from another point 
     276   PRIVATE :: grid__get_closest_str    ! - using coarse grid coordinates strucutre 
     277   PRIVATE :: grid__get_closest_arr    ! - using coarse grid array of lon,lat 
     278 
    273279                                     ! get offset between fine and coarse grid 
    274280   PRIVATE :: grid__get_fine_offset_ff ! - using coarse and fine grid coordinates files 
     
    333339      MODULE PROCEDURE grid__get_ghost_mpp 
    334340   END INTERFACE  grid_get_ghost 
     341 
     342   INTERFACE  grid_get_closest 
     343      MODULE PROCEDURE grid__get_closest_str 
     344      MODULE PROCEDURE grid__get_closest_arr 
     345   END INTERFACE  grid_get_closest 
    335346 
    336347   INTERFACE  grid_get_coarse_index 
     
    13651376            END SELECT 
    13661377         ELSE 
     1378            il_perio=-1 
    13671379            ! check periodicity 
    13681380            IF(ANY(td_var%d_value(   1     ,:,1,1)/=td_var%d_fill).OR.& 
     
    30203032   !> 
    30213033   !> @author J.Paul 
     3034   !> @date April, 2016 - Initial Version 
     3035   ! 
     3036   !> @param[in] td_coord0 coarse grid coordinate mpp structure 
     3037   !> @param[in] dd_lon1   fine   grid longitude 
     3038   !> @param[in] dd_lat1   fine   grid latitude 
     3039   !> @param[in] cd_pos    relative position of grid point from point  
     3040   !> @param[in] dd_fill   fill value 
     3041   !> @return coarse grid indices of closest point of fine grid point 
     3042   !------------------------------------------------------------------- 
     3043   FUNCTION grid__get_closest_str( td_coord0, dd_lon1, dd_lat1, cd_pos, dd_fill ) & 
     3044   &  RESULT(id_res) 
     3045 
     3046      IMPLICIT NONE 
     3047      ! Argument 
     3048      TYPE(TMPP )     , INTENT(IN) :: td_coord0 
     3049      REAL(dp),         INTENT(IN) :: dd_lon1 
     3050      REAL(dp),         INTENT(IN) :: dd_lat1 
     3051      CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: cd_pos 
     3052      REAL(dp),         INTENT(IN), OPTIONAL :: dd_fill 
     3053 
     3054      ! function 
     3055      INTEGER(i4), DIMENSION(2) :: id_res 
     3056 
     3057      ! local variable 
     3058      CHARACTER(LEN=lc)                        :: cl_point 
     3059      CHARACTER(LEN=lc)                        :: cl_name 
     3060 
     3061      INTEGER(i4)                              :: il_ind 
     3062 
     3063      REAL(dp)   , DIMENSION(:,:), ALLOCATABLE :: dl_lon0 
     3064      REAL(dp)   , DIMENSION(:,:), ALLOCATABLE :: dl_lat0 
     3065 
     3066      TYPE(TVAR)                               :: tl_lon0 
     3067      TYPE(TVAR)                               :: tl_lat0 
     3068      TYPE(TMPP)                               :: tl_coord0 
     3069      !---------------------------------------------------------------- 
     3070 
     3071      id_res(:)=-1 
     3072      cl_point='T' 
     3073 
     3074      ! copy structure 
     3075      tl_coord0=mpp_copy(td_coord0) 
     3076 
     3077      IF( .NOT. ASSOCIATED(tl_coord0%t_proc) )THEN 
     3078 
     3079         CALL logger_error("GRID GET CLOSEST: decompsition of mpp "//& 
     3080         &  "file "//TRIM(tl_coord0%c_name)//" not defined." ) 
     3081 
     3082      ELSE 
     3083 
     3084         ! open mpp files 
     3085         CALL iom_mpp_open(tl_coord0) 
     3086  
     3087         ! read coarse longitue and latitude 
     3088         WRITE(cl_name,*) 'longitude_'//TRIM(cl_point) 
     3089         il_ind=var_get_id(tl_coord0%t_proc(1)%t_var(:), cl_name) 
     3090         IF( il_ind == 0 )THEN 
     3091            CALL logger_warn("GRID GET CLOSEST: no variable "//& 
     3092            &  TRIM(cl_name)//"in file "//TRIM(tl_coord0%c_name)//". & 
     3093            &  try to use longitude.") 
     3094            WRITE(cl_name,*) 'longitude' 
     3095         ENDIF 
     3096         tl_lon0=iom_mpp_read_var(tl_coord0, TRIM(cl_name)) 
     3097  
     3098         WRITE(cl_name,*) 'latitude_'//TRIM(cl_point) 
     3099         il_ind=var_get_id(tl_coord0%t_proc(1)%t_var(:), cl_name) 
     3100         IF( il_ind == 0 )THEN 
     3101            CALL logger_warn("GRID GET CLOSEST: no variable "//& 
     3102            &  TRIM(cl_name)//"in file "//TRIM(tl_coord0%c_name)//". & 
     3103            &  try to use latitude.") 
     3104            WRITE(cl_name,*) 'latitude' 
     3105         ENDIF 
     3106         tl_lat0=iom_mpp_read_var(tl_coord0, TRIM(cl_name)) 
     3107 
     3108         ! close mpp files 
     3109         CALL iom_mpp_close(tl_coord0) 
     3110 
     3111         ALLOCATE(dl_lon0(tl_coord0%t_dim(jp_I)%i_len-tl_coord0%i_ew, & 
     3112            &             tl_coord0%t_dim(jp_J)%i_len) )              
     3113         ALLOCATE(dl_lat0(tl_coord0%t_dim(jp_I)%i_len-tl_coord0%i_ew, & 
     3114            &             tl_coord0%t_dim(jp_J)%i_len) ) 
     3115 
     3116         dl_lon0(:,:)=tl_lon0%d_value(tl_coord0%i_ew+1:,:,1,1) 
     3117         dl_lat0(:,:)=tl_lat0%d_value(tl_coord0%i_ew+1:,:,1,1) 
     3118 
     3119         id_res(:)=grid_get_closest( dl_lon0, dl_lat0, dd_lon1, dd_lat1, cd_pos, dd_fill ) 
     3120 
     3121         DEALLOCATE(dl_lon0, dl_lat0) 
     3122         CALL var_clean(tl_lon0) 
     3123         CALL var_clean(tl_lat0) 
     3124         CALL mpp_clean(tl_coord0) 
     3125 
     3126      ENDIF 
     3127 
     3128   END FUNCTION  grid__get_closest_str 
     3129   !------------------------------------------------------------------- 
     3130   !> @brief This function return grid indices of the closest point 
     3131   !> from point (lon1,lat1)  
     3132   !>  
     3133   !> @details 
     3134   !> 
     3135   !> @note overlap band should have been already removed from coarse grid array  
     3136   !> of longitude and latitude, before running this function 
     3137   !> 
     3138   !> if you add cd_pos argument, you could choice to return closest point at 
     3139   !> - lower left  (ll) of the point 
     3140   !> - lower right (lr) of the point 
     3141   !> - upper left  (ul) of the point 
     3142   !> - upper right (ur) of the point 
     3143   !> - lower       (lo) of the point 
     3144   !> - upper       (up) of the point 
     3145   !> -       left  (le) of the point 
     3146   !> -       right (ri) of the point 
     3147   !> 
     3148   !> @author J.Paul 
    30223149   !> @date November, 2013 - Initial Version 
    30233150   !> @date February, 2015 
     
    30343161   !> @return coarse grid indices of closest point of fine grid point 
    30353162   !------------------------------------------------------------------- 
    3036    FUNCTION grid_get_closest( dd_lon0, dd_lat0, dd_lon1, dd_lat1, cd_pos, dd_fill ) 
     3163   FUNCTION grid__get_closest_arr( dd_lon0, dd_lat0, dd_lon1, dd_lat1, cd_pos, dd_fill ) 
    30373164      IMPLICIT NONE 
    30383165      ! Argument 
     
    30453172 
    30463173      ! function 
    3047       INTEGER(i4), DIMENSION(2) :: grid_get_closest 
     3174      INTEGER(i4), DIMENSION(2) :: grid__get_closest_arr 
    30483175 
    30493176      ! local variable 
     
    32613388         END SELECT 
    32623389      ENDIF 
    3263       grid_get_closest(:)=MINLOC(dl_dist(:,:),dl_dist(:,:)/=NF90_FILL_DOUBLE) 
    3264  
    3265       grid_get_closest(1)=grid_get_closest(1)+il_iinf-1 
    3266       grid_get_closest(2)=grid_get_closest(2)+il_jinf-1 
     3390      grid__get_closest_arr(:)=MINLOC(dl_dist(:,:),dl_dist(:,:)/=NF90_FILL_DOUBLE) 
     3391 
     3392      grid__get_closest_arr(1)=grid__get_closest_arr(1)+il_iinf-1 
     3393      grid__get_closest_arr(2)=grid__get_closest_arr(2)+il_jinf-1 
    32673394 
    32683395      DEALLOCATE( dl_dist ) 
    32693396      DEALLOCATE( dl_lon0 ) 
    32703397 
    3271    END FUNCTION grid_get_closest 
     3398   END FUNCTION grid__get_closest_arr 
    32723399   !------------------------------------------------------------------- 
    32733400   !> @brief This function compute the distance between a point A and grid points.   
     
    46474774 
    46484775      IF( ll_even )THEN 
     4776 
    46494777         ! look for variable value on domain for F point 
    46504778         il_ind=var_get_index(tl_coord0%t_proc(1)%t_var(:), 'longitude_F') 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/iom.f90

    r5617 r7025  
    157157   !> @author J.Paul 
    158158   !> @date November, 2013 - Initial Version 
    159    ! 
     159   !> @date October, 2016 
     160   !> - open cdf4 file as cdf 
     161   !> 
    160162   !> @param[inout] td_file file structure 
    161163   !------------------------------------------------------------------- 
     
    172174      SELECT CASE(TRIM(ADJUSTL(fct_lower(td_file%c_type)))) 
    173175 
    174          CASE('cdf') 
     176         CASE('cdf','cdf4') 
    175177            CALL iom_cdf_open(td_file) 
    176178         CASE('dimg') 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/iom_cdf.f90

    r6393 r7025  
    652652         &  " IOM CDF READ DIM: no id associated to file "//TRIM(td_file%c_name)) 
    653653 
    654       ELSE       
     654      ELSE 
    655655 
    656656         CALL logger_trace( & 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/mpp.f90

    r6393 r7025  
    266266   PRIVATE :: mpp__copy_arr            ! copy array of mpp structure 
    267267   PRIVATE :: mpp__get_use_unit        ! get sub domains to be used (which cover "zoom domain") 
    268    PRIVATE :: mpp__init_mask           ! initialise mpp structure, given file name 
     268   PRIVATE :: mpp__init_mask           ! initialise mpp structure, given mask array 
    269269   PRIVATE :: mpp__init_var            ! initialise mpp structure, given variable strcuture 
    270270   PRIVATE :: mpp__init_file           ! initialise a mpp structure, given file structure  
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/phycst.f90

    r6393 r7025  
    4949   REAL(dp), PARAMETER :: dp_siday = dp_day / ( 1._wp + dp_day / dp_siyea ) 
    5050 
    51    REAL(dp), PARAMETER :: dp_delta=1.e-6 
     51   REAL(dp), PARAMETER :: dp_delta=1.e-5 
    5252   REAL(dp), PARAMETER :: dp_omega= 2._dp * dp_pi / dp_siday 
    5353END MODULE phycst 
  • branches/2016/dev_r6999_CONFIGMAN_1/NEMOGCM/TOOLS/SIREN/src/vgrid.f90

    r6393 r7025  
    1414!>    CALL vgrid_zgr_z(dd_gdepw(:), dd_gdept(:), dd_e3w(:), dd_e3t(:),  
    1515!>                     dd_ppkth, dd_ppkth2, dd_ppacr, dd_ppacr2,  
    16 !>                     dd_ppdzmin, dd_pphmax, dd_pp_to_be_computed,  
     16!>                     dd_ppdzmin, dd_pphmax,  
    1717!>                     dd_ppa0, dd_ppa1, dd_ppa2, dd_ppsur) 
    1818!> @endcode 
     
    2626!>       - dd_ppdzmin            see NEMO documentation 
    2727!>       - dd_pphmax             see NEMO documentation 
    28 !>       - dd_pp_to_be_computed  see NEMO documentation 
    2928!>       - dd_ppa1               see NEMO documentation 
    3029!>       - dd_ppa2               see NEMO documentation 
     
    133132   !> @param[in] dd_ppdzmin 
    134133   !> @param[in] dd_pphmax  
    135    !> @param[in] dd_pp_to_be_computed 
    136134   !> @param[in] dd_ppa1 
    137135   !> @param[in] dd_ppa2  
     
    140138   !------------------------------------------------------------------- 
    141139   SUBROUTINE vgrid_zgr_z( dd_gdepw, dd_gdept, dd_e3w, dd_e3t,          & 
    142    &                       dd_e3w_1d, dd_e3t_1d, & 
     140   &                       dd_e3w_1d, dd_e3t_1d,                        & 
    143141   &                       dd_ppkth, dd_ppkth2, dd_ppacr, dd_ppacr2,    & 
    144    &                       dd_ppdzmin, dd_pphmax, dd_pp_to_be_computed, & 
     142   &                       dd_ppdzmin, dd_pphmax,                       & 
    145143   &                       dd_ppa0, dd_ppa1, dd_ppa2, dd_ppsur ) 
    146144      IMPLICIT NONE 
     
    160158      REAL(dp)              , INTENT(IN   ) :: dd_ppdzmin 
    161159      REAL(dp)              , INTENT(IN   ) :: dd_pphmax 
    162       REAL(dp)              , INTENT(IN   ) :: dd_pp_to_be_computed 
     160      REAL(dp), PARAMETER                   :: dp_pp_to_be_computed = NF90_FILL_DOUBLE 
    163161 
    164162      REAL(dp)              , INTENT(IN   ) :: dd_ppa0 
     
    207205      !  za0, za1, zsur are computed from ppdzmin , pphmax, ppkth, ppacr 
    208206      ! 
    209        IF(  dd_ppa1  == dd_pp_to_be_computed  .AND.  & 
    210          &  dd_ppa0  == dd_pp_to_be_computed  .AND.  & 
    211          &  dd_ppsur == dd_pp_to_be_computed           ) THEN 
     207       IF(  dd_ppa1  == dp_pp_to_be_computed  .AND.  & 
     208         &  dd_ppa0  == dp_pp_to_be_computed  .AND.  & 
     209         &  dd_ppsur == dp_pp_to_be_computed           ) THEN 
    212210         dl_za1 = ( dl_zdzmin - dl_zhmax / REAL((il_jpk-1),dp) ) & 
    213211             &     / ( TANH((1-dl_zkth)/dl_zacr) - dl_zacr/REAL((il_jpk-1),dp) & 
     
    667665 
    668666      !namelist (intialise with GLORYS 75 levels parameters) 
    669       REAL(dp)                                :: dn_pp_to_be_computed = 0._dp 
    670667      REAL(dp)                                :: dn_ppsur     = -3958.951371276829_dp 
    671668      REAL(dp)                                :: dn_ppa0      =   103.9530096000000_dp 
     
    684681      !---------------------------------------------------------------- 
    685682      NAMELIST /namzgr/ & 
    686       &  dn_pp_to_be_computed, & 
    687683      &  dn_ppsur,     & 
    688684      &  dn_ppa0,      & 
     
    788784      &                 dl_e3w_1d, dl_e3t_1d, & 
    789785      &                 dn_ppkth, dn_ppkth2, dn_ppacr, dn_ppacr2,       & 
    790       &                 dn_ppdzmin, dn_pphmax, dn_pp_to_be_computed,    & 
     786      &                 dn_ppdzmin, dn_pphmax, & 
    791787      &                 dn_ppa0, dn_ppa1, dn_ppa2, dn_ppsur ) 
    792788 
Note: See TracChangeset for help on using the changeset viewer.