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

Changeset 9366


Ignore:
Timestamp:
2018-02-28T16:29:13+01:00 (6 years ago)
Author:
andmirek
Message:

#2050 first version. Compiled OK in moci test suite

Location:
branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC
Files:
61 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r6498 r9366  
    5050   PUBLIC   ssh_asm_inc    !: Apply the SSH increment 
    5151   PUBLIC   seaice_asm_inc !: Apply the seaice increment 
     52   PRIVATE  asm_namelist 
    5253 
    5354#if defined key_asminc 
     
    142143      ln_temnofreeze = .FALSE. 
    143144 
    144       REWIND( numnam_ref )              ! Namelist nam_asminc in reference namelist : Assimilation increment 
    145       READ  ( numnam_ref, nam_asminc, IOSTAT = ios, ERR = 901) 
    146 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_asminc in reference namelist', lwp ) 
    147  
    148       REWIND( numnam_cfg )              ! Namelist nam_asminc in configuration namelist : Assimilation increment 
    149       READ  ( numnam_cfg, nam_asminc, IOSTAT = ios, ERR = 902 ) 
    150 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_asminc in configuration namelist', lwp ) 
     145      IF(lwm) THEN 
     146         REWIND( numnam_ref )              ! Namelist nam_asminc in reference namelist : Assimilation increment 
     147         READ  ( numnam_ref, nam_asminc, IOSTAT = ios, ERR = 901) 
     148901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_asminc in reference namelist', lwm ) 
     149         REWIND( numnam_cfg )              ! Namelist nam_asminc in configuration namelist : Assimilation increment 
     150         READ  ( numnam_cfg, nam_asminc, IOSTAT = ios, ERR = 902 ) 
     151902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_asminc in configuration namelist', lwm ) 
     152      ENDIF 
     153 
    151154      IF(lwm) WRITE ( numond, nam_asminc ) 
     155 
     156      CALL asm_namelist() 
    152157 
    153158      ! Control print 
     
    11461151 
    11471152   END SUBROUTINE seaice_asm_inc 
    1148     
     1153 
     1154   SUBROUTINE asm_namelist() 
     1155     !!--------------------------------------------------------------------- 
     1156     !!                   ***  ROUTINE asm_namelist  *** 
     1157     !!                      
     1158     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1159     !! 
     1160     !! ** Method  :   use lib_mpp 
     1161     !!---------------------------------------------------------------------- 
     1162#if defined key_mpp_mpi 
     1163      CALL mpp_bcast(ln_bkgwri) 
     1164      CALL mpp_bcast(ln_trainc) 
     1165      CALL mpp_bcast(ln_dyninc) 
     1166      CALL mpp_bcast(ln_sshinc) 
     1167      CALL mpp_bcast(ln_asmdin) 
     1168      CALL mpp_bcast(ln_asmiau) 
     1169      CALL mpp_bcast(nitbkg) 
     1170      CALL mpp_bcast(nitdin) 
     1171      CALL mpp_bcast(nitiaustr) 
     1172      CALL mpp_bcast(nitiaufin) 
     1173      CALL mpp_bcast(niaufn) 
     1174      CALL mpp_bcast(ln_salfix) 
     1175      CALL mpp_bcast(salfixmin) 
     1176      CALL mpp_bcast(nn_divdmp) 
     1177#endif 
     1178   END SUBROUTINE asm_namelist    
    11491179   !!====================================================================== 
    11501180END MODULE asminc 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r8243 r9366  
    4343   PUBLIC   bdy_dta          ! routine called by step.F90 and dynspg_ts.F90 
    4444   PUBLIC   bdy_dta_init     ! routine called by nemogcm.F90 
     45   PRIVATE  dta_namelist 
    4546 
    4647   INTEGER, ALLOCATABLE, DIMENSION(:)   ::   nb_bdy_fld        ! Number of fields to update for each boundary set. 
     
    524525      ! Read namelists 
    525526      ! -------------- 
    526       REWIND(numnam_ref) 
    527       REWIND(numnam_cfg) 
     527      IF(lwm) THEN 
     528         REWIND(numnam_ref) 
     529         REWIND(numnam_cfg) 
     530      ENDIF 
    528531      jfld = 0  
    529532      DO ib_bdy = 1, nb_bdy          
    530533         IF( nn_dta(ib_bdy) .eq. 1 ) THEN 
    531             READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
    532 901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 
    533  
    534             READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
    535 902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) 
     534            IF(lwm) THEN 
     535               READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
     536901            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwm ) 
     537               READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
     538902            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwm ) 
     539            ENDIF 
     540 
    536541            IF(lwm) WRITE ( numond, nambdy_dta ) 
     542 
     543            CALL dta_namelist(cn_dir, bn_tem, bn_sal, bn_u3d, bn_v3d, bn_ssh, bn_u2d, bn_v2d, ln_full_vel) 
     544 
     545#if defined key_lim2 
     546            CALL lim_namelist(bn_frld, bn_hicif, bn_hsnif) 
     547#elif defined key_lim3 
     548            CALL lim_namelist(bn_a_i, bn_ht_i, bn_ht_s) 
     549#endif 
    537550 
    538551            cn_dir_array(ib_bdy) = cn_dir 
     
    899912 
    900913      END SUBROUTINE bdy_dta_init 
     914 
     915   SUBROUTINE dta_namelist(cd_dir, bd_tem, bd_sal, bd_u3d, bd_v3d, bd_ssh, & 
     916            &              bd_u2d, bd_v2d, ln_full_vel) 
     917     !!--------------------------------------------------------------------- 
     918     !!                   ***  ROUTINE dta_namelist  *** 
     919     !!                      
     920     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     921     !! 
     922     !! ** Method  :   use lib_mpp 
     923     !!---------------------------------------------------------------------- 
     924      CHARACTER(len=100) ::   cd_dir 
     925      TYPE(FLD_N)        ::   bd_tem, bd_sal, bd_u3d, bd_v3d   !  
     926      TYPE(FLD_N)        ::   bd_ssh, bd_u2d, bd_v2d 
     927#if defined key_mpp_mpi 
     928      CALL mpp_bcast(cd_dir, 100) 
     929      CALL fld_n_bcast(bd_tem) 
     930      CALL fld_n_bcast(bd_sal) 
     931      CALL fld_n_bcast(bd_u3d) 
     932      CALL fld_n_bcast(bd_v3d) 
     933      CALL fld_n_bcast(bd_ssh) 
     934      CALL fld_n_bcast(bd_u2d) 
     935      CALL fld_n_bcast(bd_v2d) 
     936      CALL mpp_bcast(ln_bdy_sio) 
     937      CALL mpp_bcast(ln_full_vel) 
     938#endif 
     939   END SUBROUTINE dta_namelist 
     940 
     941   SUBROUTINE lim_namelist(bd_1, bd_2, bd_3) 
     942     !!--------------------------------------------------------------------- 
     943     !!                   ***  ROUTINE lim_namelist  *** 
     944     !!                      
     945     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     946     !! 
     947     !! ** Method  :   use lib_mpp 
     948     !!---------------------------------------------------------------------- 
     949      TYPE(FLD_N) ::   bd_1, bd_2, bd_3 
     950#if defined key_mpp_mpi 
     951      CALL fld_n_bcast(bd_1) 
     952      CALL fld_n_bcast(bd_2) 
     953      CALL fld_n_bcast(bd_3) 
     954#endif 
     955   END SUBROUTINE lim_namelist 
    901956 
    902957#else 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90

    r6487 r9366  
    3737 
    3838   PUBLIC   bdy_init   ! routine called in nemo_init 
     39   PRIVATE  bdy_namelist, index_namelist 
    3940 
    4041   INTEGER, PARAMETER          :: jp_nseg = 100 
     
    123124      ! Read namelist parameters 
    124125      ! ------------------------ 
    125  
    126       REWIND( numnam_ref )              ! Namelist nambdy in reference namelist :Unstructured open boundaries   
    127       READ  ( numnam_ref, nambdy, IOSTAT = ios, ERR = 901) 
    128 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in reference namelist', lwp ) 
    129  
    130       REWIND( numnam_cfg )              ! Namelist nambdy in configuration namelist :Unstructured open boundaries 
    131       READ  ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 902 ) 
    132 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwp ) 
     126      IF(lwm) THEN 
     127         REWIND( numnam_ref )              ! Namelist nambdy in reference namelist :Unstructured open boundaries   
     128         READ  ( numnam_ref, nambdy, IOSTAT = ios, ERR = 901) 
     129901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in reference namelist', lwm ) 
     130         REWIND( numnam_cfg )              ! Namelist nambdy in configuration namelist :Unstructured open boundaries 
     131         READ  ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 902 ) 
     132902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwm ) 
     133      ENDIF 
     134 
    133135      IF(lwm) WRITE ( numond, nambdy ) 
     136      
     137      CALL bdy_namelist() 
    134138 
    135139      ! ----------------------------------------- 
     
    390394      ! Work out global dimensions of boundary data 
    391395      ! --------------------------------------------- 
    392       REWIND( numnam_cfg )      
     396      IF(lwm) THEN 
     397         REWIND( numnam_cfg )      
     398      ENDIF 
    393399 
    394400      !!---------------------------------------------------------------------- 
     
    418424 
    419425!!          REWIND( numnam_cfg )              ! Namelist nambdy_index in configuration namelist : Open boundaries indexes 
    420             READ  ( numnam_cfg, nambdy_index, IOSTAT = ios, ERR = 904 ) 
    421 904         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_index in configuration namelist', lwp ) 
     426            IF(lwm) THEN 
     427               READ  ( numnam_cfg, nambdy_index, IOSTAT = ios, ERR = 904 ) 
     428904            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_index in configuration namelist', lwm ) 
     429            ENDIF 
    422430            IF(lwm) WRITE ( numond, nambdy_index ) 
     431  
     432            CALL index_namelist() 
    423433 
    424434            SELECT CASE ( TRIM(ctypebdy) ) 
     
    17621772   END SUBROUTINE bdy_ctl_corn 
    17631773 
     1774   SUBROUTINE bdy_namelist() 
     1775     !!--------------------------------------------------------------------- 
     1776     !!                   ***  ROUTINE bdy_namelist  *** 
     1777     !!                      
     1778     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1779     !! 
     1780     !! ** Method  :   use lib_mpp 
     1781     !!---------------------------------------------------------------------- 
     1782#if defined key_mpp_mpi 
     1783      CALL mpp_bcast(nb_bdy) 
     1784      CALL mpp_bcast(ln_coords_file) 
     1785      CALL mpp_bcast(cn_coords_file, 80) 
     1786      CALL mpp_bcast(ln_mask_file) 
     1787      CALL mpp_bcast(cn_mask_file, 80) 
     1788      CALL mpp_bcast(cn_dyn2d, 20) 
     1789      CALL mpp_bcast(nn_dyn2d_dta) 
     1790      CALL mpp_bcast(cn_dyn3d, 20) 
     1791      CALL mpp_bcast(nn_dyn3d_dta) 
     1792      CALL mpp_bcast(cn_tra, 20) 
     1793      CALL mpp_bcast(nn_tra_dta) 
     1794      CALL mpp_bcast(ln_tra_dmp) 
     1795      CALL mpp_bcast(ln_dyn3d_dmp) 
     1796      CALL mpp_bcast(rn_time_dmp) 
     1797      CALL mpp_bcast(rn_time_dmp_out) 
     1798      CALL mpp_bcast(cn_ice_lim, 20) 
     1799      CALL mpp_bcast(nn_ice_lim_dta) 
     1800      CALL mpp_bcast(rn_ice_tem) 
     1801      CALL mpp_bcast(rn_ice_sal) 
     1802      CALL mpp_bcast(rn_ice_age) 
     1803      CALL mpp_bcast(ln_vol) 
     1804      CALL mpp_bcast(nn_volctl) 
     1805      CALL mpp_bcast(nn_rimwidth) 
     1806#endif 
     1807   END SUBROUTINE bdy_namelist 
     1808 
     1809   SUBROUTINE index_namelist() 
     1810     !!--------------------------------------------------------------------- 
     1811     !!                   ***  ROUTINE index_namelist  *** 
     1812     !!                      
     1813     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1814     !! 
     1815     !! ** Method  :   use lib_mpp 
     1816     !!---------------------------------------------------------------------- 
     1817#if defined key_mpp_mpi 
     1818      CALL mpp_bcast(ctypebdy, 1) 
     1819      CALL mpp_bcast(nbdyind) 
     1820      CALL mpp_bcast(nbdybeg) 
     1821      CALL mpp_bcast(nbdyend) 
     1822#endif 
     1823   END SUBROUTINE index_namelist 
     1824 
    17641825#else 
    17651826   !!--------------------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90

    r6487 r9366  
    4141   PUBLIC   bdytide_update   ! routine called in bdy_dta 
    4242   PUBLIC   bdy_dta_tides    ! routine called in dyn_spg_ts 
     43   PRIVATE  tide_namelist 
    4344 
    4445   TYPE, PUBLIC ::   TIDES_DATA     !: Storage for external tidal harmonics data 
     
    101102      ENDIF 
    102103 
    103       REWIND(numnam_cfg) 
     104      IF(lwm) REWIND(numnam_cfg) 
    104105 
    105106      DO ib_bdy = 1, nb_bdy 
     
    114115 
    115116            ! Don't REWIND here - may need to read more than one of these namelists.  
    116             READ  ( numnam_ref, nambdy_tide, IOSTAT = ios, ERR = 901) 
    117 901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in reference namelist', lwp ) 
    118             READ  ( numnam_cfg, nambdy_tide, IOSTAT = ios, ERR = 902 ) 
    119 902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in configuration namelist', lwp ) 
     117            IF(lwm) THEN 
     118               READ  ( numnam_ref, nambdy_tide, IOSTAT = ios, ERR = 901) 
     119901            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in reference namelist', lwm ) 
     120               READ  ( numnam_cfg, nambdy_tide, IOSTAT = ios, ERR = 902 ) 
     121902            IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in configuration namelist', lwm ) 
     122            ENDIF 
     123 
    120124            IF(lwm) WRITE ( numond, nambdy_tide ) 
     125 
     126            CALL tide_namelist(filtide) 
     127 
    121128            !                                               ! Parameter control and print 
    122129            IF(lwp) WRITE(numout,*) '  ' 
     
    605612 
    606613  END SUBROUTINE tide_init_velocities 
     614 
     615  SUBROUTINE tide_namelist(cd_filtide) 
     616     !!--------------------------------------------------------------------- 
     617     !!                   ***  ROUTINE tide_namelist  *** 
     618     !!                      
     619     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     620     !! 
     621     !! ** Method  :   use lib_mpp 
     622     !!---------------------------------------------------------------------- 
     623     CHARACTER(len=80)                         ::   cd_filtide 
     624#if defined key_mpp_mpi 
     625      CALL mpp_bcast(cd_filtide, 80) 
     626      CALL mpp_bcast(ln_bdytide_2ddta) 
     627      CALL mpp_bcast(ln_bdytide_conj 
     628#endif 
     629  END SUBROUTINE tide_namelist 
     630 
    607631#else 
    608632   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90

    r6486 r9366  
    2525 
    2626   PUBLIC  crs_init 
     27   PRIVATE crs_namelist 
    2728 
    2829   !! * Substitutions 
     
    8586     !--------------------------------------------------------- 
    8687     ! 
    87  
    88       REWIND( numnam_ref )              ! Namelist namrun in reference namelist : Parameters of the run 
    89       READ  ( numnam_ref, namcrs, IOSTAT = ios, ERR = 901) 
    90 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcrs in reference namelist', lwp ) 
    91  
    92       REWIND( numnam_cfg )              ! Namelist namrun in configuration namelist : Parameters of the run 
    93       READ  ( numnam_cfg, namcrs, IOSTAT = ios, ERR = 902 ) 
    94 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcrs in configuration namelist', lwp ) 
     88      IF(lwm) THEN 
     89         REWIND( numnam_ref )              ! Namelist namrun in reference namelist : Parameters of the run 
     90         READ  ( numnam_ref, namcrs, IOSTAT = ios, ERR = 901) 
     91901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcrs in reference namelist', lwm ) 
     92         REWIND( numnam_cfg )              ! Namelist namrun in configuration namelist : Parameters of the run 
     93         READ  ( numnam_cfg, namcrs, IOSTAT = ios, ERR = 902 ) 
     94902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcrs in configuration namelist', lwm ) 
     95      ENDIF 
    9596      IF(lwm) WRITE ( numond, namcrs ) 
     97 
     98     CALL crs_namelist() 
    9699 
    97100     IF(lwp) THEN 
     
    254257 
    255258   END SUBROUTINE crs_init 
    256      
     259 
     260   SUBROUTINE crs_namelist() 
     261     !!--------------------------------------------------------------------- 
     262     !!                   ***  ROUTINE crs_namelist  *** 
     263     !!                      
     264     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     265     !! 
     266     !! ** Method  :   use lib_mpp 
     267     !!---------------------------------------------------------------------- 
     268#if defined key_mpp_mpi 
     269      CALL mpp_bcast(nn_factx) 
     270      CALL mpp_bcast(nn_facty) 
     271      CALL mpp_bcast(nn_binref) 
     272      CALL mpp_bcast(nn_msh_crs) 
     273      CALL mpp_bcast(nn_crs_kz) 
     274      CALL mpp_bcast(ln_crs_wn) 
     275#endif 
     276   END SUBROUTINE crs_namelist     
    257277   !!====================================================================== 
    258278 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90

    r6486 r9366  
    5959  PRIVATE  transport 
    6060  PRIVATE  dia_dct_wri 
     61  PRIVATE  dct_namelist 
    6162 
    6263#include "domzgr_substitute.h90" 
     
    144145     IF( nn_timing == 1 )   CALL timing_start('dia_dct_init') 
    145146 
    146      REWIND( numnam_ref )              ! Namelist namdct in reference namelist : Diagnostic: transport through sections 
    147      READ  ( numnam_ref, namdct, IOSTAT = ios, ERR = 901) 
    148 901  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdct in reference namelist', lwp ) 
    149  
    150      REWIND( numnam_cfg )              ! Namelist namdct in configuration namelist : Diagnostic: transport through sections 
    151      READ  ( numnam_cfg, namdct, IOSTAT = ios, ERR = 902 ) 
    152 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdct in configuration namelist', lwp ) 
     147     IF(lwm) THEN 
     148        REWIND( numnam_ref )              ! Namelist namdct in reference namelist : Diagnostic: transport through sections 
     149        READ  ( numnam_ref, namdct, IOSTAT = ios, ERR = 901) 
     150901     IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdct in reference namelist', lwm ) 
     151        REWIND( numnam_cfg )              ! Namelist namdct in configuration namelist : Diagnostic: transport through sections 
     152        READ  ( numnam_cfg, namdct, IOSTAT = ios, ERR = 902 ) 
     153902     IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdct in configuration namelist', lwm ) 
     154     ENDIF 
     155 
    153156     IF(lwm) WRITE ( numond, namdct ) 
     157 
     158     CALL dct_namelist() 
    154159 
    155160     IF( lwp ) THEN 
     
    12921297  END FUNCTION interp 
    12931298 
     1299  SUBROUTINE dct_namelist() 
     1300     !!--------------------------------------------------------------------- 
     1301     !!                   ***  ROUTINE dct_namelist  *** 
     1302     !!                      
     1303     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1304     !! 
     1305     !! ** Method  :   use lib_mpp 
     1306     !!---------------------------------------------------------------------- 
     1307#if defined key_mpp_mpi 
     1308      CALL mpp_bcast(nn_dct) 
     1309      CALL mpp_bcast(nn_dctwri) 
     1310      CALL mpp_bcast(nn_secdebug) 
     1311#endif 
     1312  END SUBROUTINE dct_namelist 
     1313 
    12941314#else 
    12951315   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90

    r6487 r9366  
    2929   IMPLICIT NONE 
    3030   PRIVATE 
     31   PRIVATE harm_namelist 
    3132 
    3233   LOGICAL, PUBLIC, PARAMETER :: lk_diaharm  = .TRUE. 
     
    8889      CALL tide_init_Wave 
    8990      ! 
    90       REWIND( numnam_ref )              ! Namelist nam_diaharm in reference namelist : Tidal harmonic analysis 
    91       READ  ( numnam_ref, nam_diaharm, IOSTAT = ios, ERR = 901) 
    92 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diaharm in reference namelist', lwp ) 
    93  
    94       REWIND( numnam_cfg )              ! Namelist nam_diaharm in configuration namelist : Tidal harmonic analysis 
    95       READ  ( numnam_cfg, nam_diaharm, IOSTAT = ios, ERR = 902 ) 
    96 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diaharm in configuration namelist', lwp ) 
     91      IF(lwm) THEN 
     92         REWIND( numnam_ref )              ! Namelist nam_diaharm in reference namelist : Tidal harmonic analysis 
     93         READ  ( numnam_ref, nam_diaharm, IOSTAT = ios, ERR = 901) 
     94901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diaharm in reference namelist', lwm ) 
     95         REWIND( numnam_cfg )              ! Namelist nam_diaharm in configuration namelist : Tidal harmonic analysis 
     96         READ  ( numnam_cfg, nam_diaharm, IOSTAT = ios, ERR = 902 ) 
     97902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diaharm in configuration namelist', lwm ) 
     98      ENDIF 
     99 
    97100      IF(lwm) WRITE ( numond, nam_diaharm ) 
    98101      ! 
     102      CALL harm_namelist() 
     103 
    99104      IF(lwp) THEN 
    100105         WRITE(numout,*) 'First time step used for analysis:  nit000_han= ', nit000_han 
     
    550555   END SUBROUTINE SUR_DETERMINE 
    551556 
     557   SUBROUTINE harm_namelist() 
     558     !!--------------------------------------------------------------------- 
     559     !!                   ***  ROUTINE harm_namelist  *** 
     560     !!                      
     561     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     562     !! 
     563     !! ** Method  :   use lib_mpp 
     564     !!---------------------------------------------------------------------- 
     565     INTEGER :: il 
     566#if defined key_mpp_mpi 
     567      CALL mpp_bcast(nit000_han) 
     568      CALL mpp_bcast(nitend_han) 
     569      CALL mpp_bcast(nstep_han) 
     570      DO il = 1,jpmax_harmo 
     571         CALL mpp_bcast(tname(il), 4) 
     572      ENDDO 
     573#endif 
     574   END SUBROUTINE harm_namelist 
    552575#else 
    553576   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r8243 r9366  
    4141   PUBLIC   dia_hsb_init   ! routine called by nemogcm.F90 
    4242   PUBLIC   dia_hsb_rst    ! routine called by step.F90 
     43   PRIVATE  hsb_namelist 
    4344 
    4445   LOGICAL, PUBLIC ::   ln_diahsb   !: check the heat and salt budgets 
     
    353354         WRITE(numout,*) '~~~~~~~~ ' 
    354355      ENDIF 
    355  
    356       REWIND( numnam_ref )              ! Namelist namhsb in reference namelist 
    357       READ  ( numnam_ref, namhsb, IOSTAT = ios, ERR = 901) 
    358 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namhsb in reference namelist', lwp ) 
    359  
    360       REWIND( numnam_cfg )              ! Namelist namhsb in configuration namelist 
    361       READ  ( numnam_cfg, namhsb, IOSTAT = ios, ERR = 902 ) 
    362 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namhsb in configuration namelist', lwp ) 
     356      IF(lwm) THEN 
     357         REWIND( numnam_ref )              ! Namelist namhsb in reference namelist 
     358         READ  ( numnam_ref, namhsb, IOSTAT = ios, ERR = 901) 
     359901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namhsb in reference namelist', lwm ) 
     360         REWIND( numnam_cfg )              ! Namelist namhsb in configuration namelist 
     361         READ  ( numnam_cfg, namhsb, IOSTAT = ios, ERR = 902 ) 
     362902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namhsb in configuration namelist', lwm ) 
     363      ENDIF 
     364 
    363365      IF(lwm) WRITE ( numond, namhsb ) 
    364366 
     367      CALL hsb_namelist() 
    365368      ! 
    366369      IF(lwp) THEN                   ! Control print 
     
    410413   END SUBROUTINE dia_hsb_init 
    411414 
     415   SUBROUTINE hsb_namelist() 
     416     !!--------------------------------------------------------------------- 
     417     !!                   ***  ROUTINE hsb_namelist  *** 
     418     !!                      
     419     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     420     !! 
     421     !! ** Method  :   use lib_mpp 
     422     !!---------------------------------------------------------------------- 
     423#if defined key_mpp_mpi 
     424      CALL mpp_bcast(ln_diahsb) 
     425#endif 
     426   END SUBROUTINE hsb_namelist 
    412427   !!====================================================================== 
    413428END MODULE diahsb 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90

    r7923 r9366  
    4141   PUBLIC   dia_ptr        ! call in step module 
    4242   PUBLIC   dia_ptr_ohst_components        ! called from tra_ldf/tra_adv routines 
     43   PRIVATE  ptr_namelist 
    4344 
    4445   !                                  !!** namelist  namptr  ** 
     
    428429      NAMELIST/namptr/ ln_diaptr, ln_subbas 
    429430      !!---------------------------------------------------------------------- 
    430  
    431       REWIND( numnam_ref )              ! Namelist namptr in reference namelist : Poleward transport 
    432       READ  ( numnam_ref, namptr, IOSTAT = ios, ERR = 901) 
    433 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in reference namelist', lwp ) 
    434  
    435       REWIND( numnam_cfg )              ! Namelist namptr in configuration namelist : Poleward transport 
    436       READ  ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 ) 
    437 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist', lwp ) 
     431      IF(lwm) THEN 
     432         REWIND( numnam_ref )              ! Namelist namptr in reference namelist : Poleward transport 
     433         READ  ( numnam_ref, namptr, IOSTAT = ios, ERR = 901) 
     434901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in reference namelist', lwm ) 
     435         REWIND( numnam_cfg )              ! Namelist namptr in configuration namelist : Poleward transport 
     436         READ  ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 ) 
     437902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist', lwm ) 
     438      ENDIF 
     439 
    438440      IF(lwm) WRITE ( numond, namptr ) 
     441 
     442      CALL ptr_namelist() 
    439443 
    440444      IF(lwp) THEN                     ! Control print 
     
    758762   END FUNCTION ptr_sjk 
    759763 
    760  
     764   SUBROUTINE ptr_namelist() 
     765     !!--------------------------------------------------------------------- 
     766     !!                   ***  ROUTINE ptr_namelist  *** 
     767     !!                      
     768     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     769     !! 
     770     !! ** Method  :   use lib_mpp 
     771     !!---------------------------------------------------------------------- 
     772#if defined key_mpp_mpi 
     773      CALL mpp_bcast(ln_diaptr) 
     774      CALL mpp_bcast(ln_subbas) 
     775#endif 
     776   END SUBROUTINE ptr_namelist 
    761777   !!====================================================================== 
    762778END MODULE diaptr 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r8269 r9366  
    4444 
    4545   PUBLIC   dom_init   ! called by opa.F90 
     46   PRIVATE  run_namelist, dom_namelist, cla_namelist 
     47#if defined key_netcdf4 
     48   PRIVATE  nc4_namelist 
     49#endif 
    4650 
    4751   !! * Substitutions 
     
    156160      ln_xios_read = .false.            ! set in case ln_xios_read is not in namelist 
    157161      nn_wxios = 0 
    158       REWIND( numnam_ref )              ! Namelist namrun in reference namelist : Parameters of the run 
    159       READ  ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 
    160 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwp ) 
    161  
    162       REWIND( numnam_cfg )              ! Namelist namrun in configuration namelist : Parameters of the run 
    163       READ  ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 
    164 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp ) 
     162      IF(lwm) THEN 
     163         REWIND( numnam_ref )              ! Namelist namrun in reference namelist : Parameters of the run 
     164         READ  ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 
     165901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwm ) 
     166         REWIND( numnam_cfg )              ! Namelist namrun in configuration namelist : Parameters of the run 
     167         READ  ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 
     168902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwm ) 
     169      ENDIF 
     170 
    165171      IF(lwm) WRITE ( numond, namrun ) 
    166172      ! 
     173      CALL run_namelist() 
     174 
    167175      IF(lwp) THEN                  ! control print 
    168176         WRITE(numout,*) 
     
    248256      ENDIF 
    249257#endif 
    250  
    251       REWIND( numnam_ref )              ! Namelist namdom in reference namelist : space & time domain (bathymetry, mesh, timestep) 
    252       READ  ( numnam_ref, namdom, IOSTAT = ios, ERR = 903) 
    253 903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in reference namelist', lwp ) 
     258      IF(lwm) THEN 
     259         REWIND( numnam_ref )              ! Namelist namdom in reference namelist : space & time domain (bathymetry, mesh, timestep) 
     260         READ  ( numnam_ref, namdom, IOSTAT = ios, ERR = 903) 
     261903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in reference namelist', lwm ) 
     262         REWIND( numnam_cfg )              ! Namelist namdom in configuration namelist : space & time domain (bathymetry, mesh, timestep) 
     263         READ  ( numnam_cfg, namdom, IOSTAT = ios, ERR = 904 ) 
     264904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwm ) 
     265      ENDIF 
     266 
     267      IF(lwm) WRITE ( numond, namdom ) 
    254268   
    255       ! 
    256       REWIND( numnam_cfg )              ! Namelist namdom in configuration namelist : space & time domain (bathymetry, mesh, timestep) 
    257       READ  ( numnam_cfg, namdom, IOSTAT = ios, ERR = 904 ) 
    258 904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
    259       IF(lwm) WRITE ( numond, namdom ) 
     269      CALL dom_namelist() 
    260270 
    261271      IF(lwp) THEN 
     
    314324      wxioso = nn_wxios 
    315325 
    316       REWIND( numnam_ref )              ! Namelist namcla in reference namelist : Cross land advection 
    317       READ  ( numnam_ref, namcla, IOSTAT = ios, ERR = 905) 
    318 905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp ) 
    319  
    320       REWIND( numnam_cfg )              ! Namelist namcla in configuration namelist : Cross land advection 
    321       READ  ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 ) 
    322 906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp ) 
     326      IF(lwm) THEN 
     327         REWIND( numnam_ref )              ! Namelist namcla in reference namelist : Cross land advection 
     328         READ  ( numnam_ref, namcla, IOSTAT = ios, ERR = 905) 
     329905      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwm ) 
     330         REWIND( numnam_cfg )              ! Namelist namcla in configuration namelist : Cross land advection 
     331         READ  ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 ) 
     332906      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwm ) 
     333      ENDIF 
    323334      IF(lwm) WRITE( numond, namcla ) 
     335 
     336      CALL cla_namelist() 
    324337 
    325338      IF(lwp) THEN 
     
    338351#if defined key_netcdf4 
    339352      !                             ! NetCDF 4 case   ("key_netcdf4" defined) 
    340       REWIND( numnam_ref )              ! Namelist namnc4 in reference namelist : NETCDF 
    341       READ  ( numnam_ref, namnc4, IOSTAT = ios, ERR = 907) 
    342 907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namnc4 in reference namelist', lwp ) 
    343  
    344       REWIND( numnam_cfg )              ! Namelist namnc4 in configuration namelist : NETCDF 
    345       READ  ( numnam_cfg, namnc4, IOSTAT = ios, ERR = 908 ) 
    346 908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namnc4 in configuration namelist', lwp ) 
     353      IF(lwm) THEN 
     354         REWIND( numnam_ref )              ! Namelist namnc4 in reference namelist : NETCDF 
     355         READ  ( numnam_ref, namnc4, IOSTAT = ios, ERR = 907) 
     356907      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namnc4 in reference namelist', lwm ) 
     357         REWIND( numnam_cfg )              ! Namelist namnc4 in configuration namelist : NETCDF 
     358         READ  ( numnam_cfg, namnc4, IOSTAT = ios, ERR = 908 ) 
     359908      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namnc4 in configuration namelist', lwm ) 
     360      ENDIF 
     361 
    347362      IF(lwm) WRITE( numond, namnc4 ) 
     363 
     364      CALL nc4_namelist() 
    348365 
    349366      IF(lwp) THEN                        ! control print 
     
    479496   END SUBROUTINE dom_stiff 
    480497 
    481  
    482  
     498   SUBROUTINE run_namelist() 
     499     !!--------------------------------------------------------------------- 
     500     !!                   ***  ROUTINE run_namelist  *** 
     501     !!                      
     502     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     503     !! 
     504     !! ** Method  :   use lib_mpp 
     505     !!---------------------------------------------------------------------- 
     506#if defined key_mpp_mpi 
     507      CALL mpp_bcast(cn_ocerst_indir, lc) 
     508      CALL mpp_bcast(cn_ocerst_outdir, lc) 
     509      CALL mpp_bcast(nn_stocklist, 10) 
     510      CALL mpp_bcast(ln_rst_list) 
     511      CALL mpp_bcast(nn_no) 
     512      CALL mpp_bcast(cn_exp, lc) 
     513      CALL mpp_bcast(cn_ocerst_in, lc) 
     514      CALL mpp_bcast(cn_ocerst_out, lc) 
     515      CALL mpp_bcast(ln_rstart) 
     516      CALL mpp_bcast(ln_rstdate) 
     517      CALL mpp_bcast(nn_rstctl) 
     518      CALL mpp_bcast(nn_it000) 
     519      CALL mpp_bcast(nn_itend) 
     520      CALL mpp_bcast(nn_date0) 
     521      CALL mpp_bcast(nn_leapy) 
     522      CALL mpp_bcast(nn_istate) 
     523      CALL mpp_bcast(nn_stock) 
     524      CALL mpp_bcast(nn_write) 
     525      CALL mpp_bcast(ln_dimgnnn) 
     526      CALL mpp_bcast(ln_mskland) 
     527      CALL mpp_bcast(ln_cfmeta) 
     528      CALL mpp_bcast(ln_clobber) 
     529      CALL mpp_bcast(nn_chunksz) 
     530      CALL mpp_bcast(nn_euler) 
     531      CALL mpp_bcast(ln_xios_read) 
     532      CALL mpp_bcast(nn_wxios) 
     533#endif 
     534   END SUBROUTINE run_namelist 
     535 
     536   SUBROUTINE dom_namelist() 
     537     !!--------------------------------------------------------------------- 
     538     !!                   ***  ROUTINE dom_namelist  *** 
     539     !!                      
     540     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     541     !! 
     542     !! ** Method  :   use lib_mpp 
     543     !!---------------------------------------------------------------------- 
     544#if defined key_mpp_mpi 
     545      CALL mpp_bcast(nn_bathy) 
     546      CALL mpp_bcast(rn_bathy) 
     547      CALL mpp_bcast(rn_e3zps_min) 
     548      CALL mpp_bcast(rn_e3zps_rat) 
     549      CALL mpp_bcast(nn_msh) 
     550      CALL mpp_bcast(rn_hmin) 
     551      CALL mpp_bcast(nn_acc) 
     552      CALL mpp_bcast(rn_atfp) 
     553      CALL mpp_bcast(rn_rdt) 
     554      CALL mpp_bcast(rn_rdtmin) 
     555      CALL mpp_bcast(rn_rdtmax) 
     556      CALL mpp_bcast(rn_rdth) 
     557      CALL mpp_bcast(nn_closea) 
     558      CALL mpp_bcast(ln_crs) 
     559      CALL mpp_bcast(jphgr_msh) 
     560      CALL mpp_bcast(ppglam0) 
     561      CALL mpp_bcast(ppgphi0) 
     562      CALL mpp_bcast(ppe1_deg) 
     563      CALL mpp_bcast(ppe2_deg) 
     564      CALL mpp_bcast(ppe1_m) 
     565      CALL mpp_bcast(ppe2_m) 
     566      CALL mpp_bcast(ppsur) 
     567      CALL mpp_bcast(ppa0) 
     568      CALL mpp_bcast(ppa1) 
     569      CALL mpp_bcast(ppkth) 
     570      CALL mpp_bcast(ppacr) 
     571      CALL mpp_bcast(ppdzmin) 
     572      CALL mpp_bcast(pphmax) 
     573      CALL mpp_bcast(ldbletanh) 
     574      CALL mpp_bcast(ppa2) 
     575      CALL mpp_bcast(ppkth2) 
     576      CALL mpp_bcast(ppacr2) 
     577#endif 
     578   END SUBROUTINE dom_namelist 
     579 
     580   SUBROUTINE cla_namelist() 
     581     !!--------------------------------------------------------------------- 
     582     !!                   ***  ROUTINE cla_namelist  *** 
     583     !!                      
     584     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     585     !! 
     586     !! ** Method  :   use lib_mpp 
     587     !!---------------------------------------------------------------------- 
     588#if defined key_mpp_mpi 
     589      CALL mpp_bcast(nn_cla) 
     590#endif 
     591   END SUBROUTINE cla_namelist 
     592 
     593#if defined key_netcdf4 
     594   SUBROUTINE nc4_namelist() 
     595     !!--------------------------------------------------------------------- 
     596     !!                   ***  ROUTINE nc4_namelist  *** 
     597     !!                      
     598     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     599     !! 
     600     !! ** Method  :   use lib_mpp 
     601     !!---------------------------------------------------------------------- 
     602#if defined key_mpp_mpi 
     603      CALL mpp_bcast(nn_nchunks_i) 
     604      CALL mpp_bcast(nn_nchunks_j) 
     605      CALL mpp_bcast(nn_nchunks_k) 
     606      CALL mpp_bcast(ln_nc4zip) 
     607#endif 
     608   END SUBROUTINE nc4_namelist 
     609#endif 
    483610   !!====================================================================== 
    484611END MODULE domain 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90

    r6491 r9366  
    3737   PUBLIC   dom_msk         ! routine called by inidom.F90 
    3838   PUBLIC   dom_msk_alloc   ! routine called by nemogcm.F90 
     39   PRIVATE  msk_namelist 
    3940 
    4041   !                            !!* Namelist namlbc : lateral boundary condition * 
     
    147148      CALL wrk_alloc( jpi, jpj, zwf  ) 
    148149      ! 
    149       REWIND( numnam_ref )              ! Namelist namlbc in reference namelist : Lateral momentum boundary condition 
    150       READ  ( numnam_ref, namlbc, IOSTAT = ios, ERR = 901 ) 
    151 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlbc in reference namelist', lwp ) 
    152  
    153       REWIND( numnam_cfg )              ! Namelist namlbc in configuration namelist : Lateral momentum boundary condition 
    154       READ  ( numnam_cfg, namlbc, IOSTAT = ios, ERR = 902 ) 
    155 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlbc in configuration namelist', lwp ) 
     150      IF(lwm) THEN 
     151         REWIND( numnam_ref )              ! Namelist namlbc in reference namelist : Lateral momentum boundary condition 
     152         READ  ( numnam_ref, namlbc, IOSTAT = ios, ERR = 901 ) 
     153901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlbc in reference namelist', lwm ) 
     154         REWIND( numnam_cfg )              ! Namelist namlbc in configuration namelist : Lateral momentum boundary condition 
     155         READ  ( numnam_cfg, namlbc, IOSTAT = ios, ERR = 902 ) 
     156902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlbc in configuration namelist', lwm ) 
     157      ENDIF 
     158 
    156159      IF(lwm) WRITE ( numond, namlbc ) 
    157        
     160      
     161      CALL msk_namelist()  
     162 
    158163      IF(lwp) THEN                  ! control print 
    159164         WRITE(numout,*) 
     
    717722   END SUBROUTINE dom_msk_nsa 
    718723#endif 
    719     
     724 
     725   SUBROUTINE msk_namelist() 
     726     !!--------------------------------------------------------------------- 
     727     !!                   ***  ROUTINE msk_namelist  *** 
     728     !!                      
     729     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     730     !! 
     731     !! ** Method  :   use lib_mpp 
     732     !!---------------------------------------------------------------------- 
     733#if defined key_mpp_mpi 
     734      CALL mpp_bcast(rn_shlat) 
     735      CALL mpp_bcast( ln_vorlat) 
     736#endif 
     737   END SUBROUTINE msk_namelist    
     738 
    720739   !!====================================================================== 
    721740END MODULE dommsk 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r8243 r9366  
    4444   PUBLIC  dom_vvl_interpol   ! called by dynnxt.F90 
    4545   PRIVATE dom_vvl_orca_fix   ! called by dom_vvl_interpol 
     46   PRIVATE dom_namelist 
    4647 
    4748   !!* Namelist nam_vvl 
     
    948949                      & rn_lf_cutoff               , rn_zdef_max , ln_vvl_dbg                ! not yet implemented: ln_vvl_kepe 
    949950      !!----------------------------------------------------------------------  
    950  
    951       REWIND( numnam_ref )              ! Namelist nam_vvl in reference namelist :  
    952       READ  ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 
    953 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist', lwp ) 
    954  
    955       REWIND( numnam_cfg )              ! Namelist nam_vvl in configuration namelist : Parameters of the run 
    956       READ  ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 
    957 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist', lwp ) 
     951      IF(lwm) THEN 
     952         REWIND( numnam_ref )              ! Namelist nam_vvl in reference namelist :  
     953         READ  ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 
     954901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist', lwm ) 
     955         REWIND( numnam_cfg )              ! Namelist nam_vvl in configuration namelist : Parameters of the run 
     956         READ  ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 
     957902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist', lwm ) 
     958      ENDIF 
    958959      IF(lwm) WRITE ( numond, nam_vvl ) 
     960 
     961      CALL dom_namelist() 
    959962 
    960963      IF(lwp) THEN                    ! Namelist print 
     
    14071410   END SUBROUTINE dom_vvl_orca_fix 
    14081411 
     1412   SUBROUTINE dom_namelist() 
     1413     !!--------------------------------------------------------------------- 
     1414     !!                   ***  ROUTINE dom_namelist  *** 
     1415     !!                      
     1416     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1417     !! 
     1418     !! ** Method  :   use lib_mpp 
     1419     !!---------------------------------------------------------------------- 
     1420#if defined key_mpp_mpi 
     1421      CALL mpp_bcast(ln_vvl_zstar) 
     1422      CALL mpp_bcast(ln_vvl_ztilde) 
     1423      CALL mpp_bcast(ln_vvl_layer) 
     1424      CALL mpp_bcast(ln_vvl_ztilde_as_zstar) 
     1425      CALL mpp_bcast(ln_vvl_zstar_at_eqtor) 
     1426      CALL mpp_bcast(rn_ahe3) 
     1427      CALL mpp_bcast(rn_rst_e3t) 
     1428      CALL mpp_bcast(rn_lf_cutoff) 
     1429      CALL mpp_bcast(rn_zdef_max) 
     1430      CALL mpp_bcast(ln_vvl_dbg) 
     1431#endif 
     1432   END SUBROUTINE dom_namelist 
    14091433   !!====================================================================== 
    14101434END MODULE domvvl 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r6487 r9366  
    4949 
    5050   PUBLIC   dom_zgr        ! called by dom_init.F90 
     51   PRIVATE  zgr_namelist 
    5152 
    5253   !                              !!* Namelist namzgr_sco * 
     
    107108      IF( nn_timing == 1 )   CALL timing_start('dom_zgr') 
    108109      ! 
    109       REWIND( numnam_ref )              ! Namelist namzgr in reference namelist : Vertical coordinate 
    110       READ  ( numnam_ref, namzgr, IOSTAT = ios, ERR = 901 ) 
     110      IF(lwm) THEN 
     111         REWIND( numnam_ref )              ! Namelist namzgr in reference namelist : Vertical coordinate 
     112         READ  ( numnam_ref, namzgr, IOSTAT = ios, ERR = 901 ) 
     113      ENDIF 
    111114901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in reference namelist', lwp ) 
    112  
    113       REWIND( numnam_cfg )              ! Namelist namzgr in configuration namelist : Vertical coordinate 
    114       READ  ( numnam_cfg, namzgr, IOSTAT = ios, ERR = 902 ) 
     115      IF(lwp) THEN 
     116         REWIND( numnam_cfg )              ! Namelist namzgr in configuration namelist : Vertical coordinate 
     117         READ  ( numnam_cfg, namzgr, IOSTAT = ios, ERR = 902 ) 
     118      ENDIF 
    115119902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in configuration namelist', lwp ) 
    116120      IF(lwm) WRITE ( numond, namzgr ) 
     
    18221826      CALL wrk_alloc( jpi, jpj, zenv, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 
    18231827      ! 
    1824       REWIND( numnam_ref )              ! Namelist namzgr_sco in reference namelist : Sigma-stretching parameters 
    1825       READ  ( numnam_ref, namzgr_sco, IOSTAT = ios, ERR = 901) 
    1826 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in reference namelist', lwp ) 
    1827  
    1828       REWIND( numnam_cfg )              ! Namelist namzgr_sco in configuration namelist : Sigma-stretching parameters 
    1829       READ  ( numnam_cfg, namzgr_sco, IOSTAT = ios, ERR = 902 ) 
    1830 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in configuration namelist', lwp ) 
     1828      IF(lwm) THEN 
     1829         REWIND( numnam_ref )              ! Namelist namzgr_sco in reference namelist : Sigma-stretching parameters 
     1830         READ  ( numnam_ref, namzgr_sco, IOSTAT = ios, ERR = 901) 
     1831901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in reference namelist', lwm ) 
     1832         REWIND( numnam_cfg )              ! Namelist namzgr_sco in configuration namelist : Sigma-stretching parameters 
     1833         READ  ( numnam_cfg, namzgr_sco, IOSTAT = ios, ERR = 902 ) 
     1834902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr_sco in configuration namelist', lwm ) 
     1835      ENDIF 
    18311836      IF(lwm) WRITE ( numond, namzgr_sco ) 
     1837  
     1838      CALL sco_namelist() 
    18321839 
    18331840      IF(lwp) THEN                           ! control print 
     
    26542661   END FUNCTION fgamma 
    26552662 
     2663   SUBROUTINE zgr_namelist() 
     2664     !!--------------------------------------------------------------------- 
     2665     !!                   ***  ROUTINE zgr_namelist  *** 
     2666     !!                      
     2667     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     2668     !! 
     2669     !! ** Method  :   use lib_mpp 
     2670     !!---------------------------------------------------------------------- 
     2671#if defined key_mpp_mpi 
     2672      CALL mpp_bcast(ln_zco) 
     2673      CALL mpp_bcast(ln_zps) 
     2674      CALL mpp_bcast(ln_sco) 
     2675      CALL mpp_bcast(ln_isfcav) 
     2676#endif 
     2677   END SUBROUTINE zgr_namelist 
     2678 
     2679  SUBROUTINE sco_namelist() 
     2680     !!--------------------------------------------------------------------- 
     2681     !!                   ***  ROUTINE sco_namelist  *** 
     2682     !!                      
     2683     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     2684     !! 
     2685     !! ** Method  :   use lib_mpp 
     2686     !!---------------------------------------------------------------------- 
     2687#if defined key_mpp_mpi 
     2688      CALL mpp_bcast(ln_s_sh94) 
     2689      CALL mpp_bcast(ln_s_sf12) 
     2690      CALL mpp_bcast(ln_sigcrit) 
     2691      CALL mpp_bcast(rn_sbot_min) 
     2692      CALL mpp_bcast(rn_sbot_max) 
     2693      CALL mpp_bcast(rn_hc) 
     2694      CALL mpp_bcast(rn_rmax) 
     2695      CALL mpp_bcast(rn_theta) 
     2696      CALL mpp_bcast(rn_thetb) 
     2697      CALL mpp_bcast(rn_bb) 
     2698      CALL mpp_bcast(rn_alpha) 
     2699      CALL mpp_bcast(rn_efold) 
     2700      CALL mpp_bcast(rn_zs) 
     2701      CALL mpp_bcast(rn_zb_a) 
     2702      CALL mpp_bcast(rn_zb_b) 
     2703#endif 
     2704   END SUBROUTINE sco_namelist 
    26562705   !!====================================================================== 
    26572706END MODULE domzgr 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90

    r8243 r9366  
    3030   PUBLIC   dta_tsd_init   ! called by opa.F90 
    3131   PUBLIC   dta_tsd        ! called by istate.F90 and tradmp.90 
     32   PRIVATE  tsd_namelist 
    3233 
    3334   LOGICAL , PUBLIC ::   ln_tsd_init      !: T & S data flag 
     
    7374      ! 
    7475      ln_tsd_sio = .FALSE. 
    75       REWIND( numnam_ref )              ! Namelist namtsd in reference namelist :  
    76       READ  ( numnam_ref, namtsd, IOSTAT = ios, ERR = 901) 
    77 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in reference namelist', lwp ) 
    78  
    79       REWIND( numnam_cfg )              ! Namelist namtsd in configuration namelist : Parameters of the run 
    80       READ  ( numnam_cfg, namtsd, IOSTAT = ios, ERR = 902 ) 
    81 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in configuration namelist', lwp ) 
     76      IF(lwm) THEN 
     77         REWIND( numnam_ref )              ! Namelist namtsd in reference namelist :  
     78         READ  ( numnam_ref, namtsd, IOSTAT = ios, ERR = 901) 
     79901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in reference namelist', lwm ) 
     80         REWIND( numnam_cfg )              ! Namelist namtsd in configuration namelist : Parameters of the run 
     81         READ  ( numnam_cfg, namtsd, IOSTAT = ios, ERR = 902 ) 
     82902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in configuration namelist', lwm ) 
     83      ENDIF 
    8284      IF(lwm) WRITE ( numond, namtsd ) 
     85 
     86      call tsd_namelist(cn_dir, sn_tem, sn_sal) 
    8387 
    8488      IF( PRESENT( ld_tradmp ) )   ln_tsd_tradmp = .TRUE.     ! forces the initialization when tradmp is used 
     
    315319   END SUBROUTINE dta_tsd 
    316320 
     321   SUBROUTINE tsd_namelist(cd_dir, sd_tem, sd_sal) 
     322     !!--------------------------------------------------------------------- 
     323     !!                   ***  ROUTINE tsd_namelist  *** 
     324     !!                      
     325     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     326     !! 
     327     !! ** Method  :   use lib_mpp 
     328     !!---------------------------------------------------------------------- 
     329     CHARACTER(len=100)           ::   cd_dir          ! Root directory for location of ssr files 
     330     TYPE(FLD_N)                  ::   sd_tem, sd_sal 
     331#if defined key_mpp_mpi 
     332      CALL mpp_bcast(ln_tsd_init) 
     333      CALL mpp_bcast(ln_tsd_tradmp) 
     334      CALL mpp_bcast(cd_dir, 100) 
     335      CALL fld_n_bcast(sd_tem) 
     336      CALL fld_n_bcast(sd_sal) 
     337      CALL mpp_bcast(ln_tsd_sio) 
     338#endif 
     339   END SUBROUTINE tsd_namelist 
     340 
    317341   !!====================================================================== 
    318342END MODULE dtatsd 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv.F90

    r6486 r9366  
    2828   PUBLIC dyn_adv       ! routine called by step module 
    2929   PUBLIC dyn_adv_init  ! routine called by opa  module 
     30   PRIVATE adv_namelist 
    3031  
    3132   !                                    !* namdyn_adv namelist * 
     
    101102      !!---------------------------------------------------------------------- 
    102103      ! 
    103       REWIND( numnam_ref )              ! Namelist namdyn_adv in reference namelist : Momentum advection scheme 
    104       READ  ( numnam_ref, namdyn_adv, IOSTAT = ios, ERR = 901) 
    105 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_adv in reference namelist', lwp ) 
     104      IF(lwm) THEN 
     105         REWIND( numnam_ref )              ! Namelist namdyn_adv in reference namelist : Momentum advection scheme 
     106         READ  ( numnam_ref, namdyn_adv, IOSTAT = ios, ERR = 901) 
     107901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_adv in reference namelist', lwm ) 
     108         REWIND( numnam_cfg )              ! Namelist namdyn_adv in configuration namelist : Momentum advection scheme 
     109         READ  ( numnam_cfg, namdyn_adv, IOSTAT = ios, ERR = 902 ) 
     110902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_adv in configuration namelist', lwm ) 
     111      ENDIF 
    106112 
    107       REWIND( numnam_cfg )              ! Namelist namdyn_adv in configuration namelist : Momentum advection scheme 
    108       READ  ( numnam_cfg, namdyn_adv, IOSTAT = ios, ERR = 902 ) 
    109 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_adv in configuration namelist', lwp ) 
    110113      IF(lwm) WRITE ( numond, namdyn_adv ) 
     114 
     115      CALL adv_namelist() 
    111116 
    112117      IF(lwp) THEN                    ! Namelist print 
     
    156161   END SUBROUTINE dyn_adv_init 
    157162 
     163   SUBROUTINE adv_namelist() 
     164     !!--------------------------------------------------------------------- 
     165     !!                   ***  ROUTINE adv_namelist  *** 
     166     !!                      
     167     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     168     !! 
     169     !! ** Method  :   use lib_mpp 
     170     !!---------------------------------------------------------------------- 
     171#if defined key_mpp_mpi 
     172      CALL mpp_bcast(ln_dynadv_vec) 
     173      CALL mpp_bcast(nn_dynkeg) 
     174      CALL mpp_bcast(ln_dynadv_cen2) 
     175      CALL mpp_bcast(ln_dynadv_ubs) 
     176      CALL mpp_bcast(ln_dynzad_zts) 
     177#endif 
     178   END SUBROUTINE adv_namelist 
    158179  !!====================================================================== 
    159180END MODULE dynadv 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r6486 r9366  
    5050   PUBLIC   dyn_hpg        ! routine called by step module 
    5151   PUBLIC   dyn_hpg_init   ! routine called by opa module 
     52   PRIVATE  hpg_namelist 
    5253 
    5354   !                                    !!* Namelist namdyn_hpg : hydrostatic pressure gradient 
     
    135136      !!---------------------------------------------------------------------- 
    136137      ! 
    137       REWIND( numnam_ref )              ! Namelist namdyn_hpg in reference namelist : Hydrostatic pressure gradient 
    138       READ  ( numnam_ref, namdyn_hpg, IOSTAT = ios, ERR = 901) 
    139 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_hpg in reference namelist', lwp ) 
    140  
    141       REWIND( numnam_cfg )              ! Namelist namdyn_hpg in configuration namelist : Hydrostatic pressure gradient 
    142       READ  ( numnam_cfg, namdyn_hpg, IOSTAT = ios, ERR = 902 ) 
    143 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_hpg in configuration namelist', lwp ) 
     138      IF(lwm) THEN 
     139         REWIND( numnam_ref )              ! Namelist namdyn_hpg in reference namelist : Hydrostatic pressure gradient 
     140         READ  ( numnam_ref, namdyn_hpg, IOSTAT = ios, ERR = 901) 
     141901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_hpg in reference namelist', lwm ) 
     142         REWIND( numnam_cfg )              ! Namelist namdyn_hpg in configuration namelist : Hydrostatic pressure gradient 
     143         READ  ( numnam_cfg, namdyn_hpg, IOSTAT = ios, ERR = 902 ) 
     144902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_hpg in configuration namelist', lwm ) 
     145      ENDIF 
     146 
    144147      IF(lwm) WRITE ( numond, namdyn_hpg ) 
    145148      ! 
     149      CALL hpg_namelist() 
     150 
    146151      IF(lwp) THEN                   ! Control print 
    147152         WRITE(numout,*) 
     
    14201425   END FUNCTION integ_spline 
    14211426 
     1427   SUBROUTINE hpg_namelist() 
     1428     !!--------------------------------------------------------------------- 
     1429     !!                   ***  ROUTINE hpg_namelist  *** 
     1430     !!                      
     1431     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1432     !! 
     1433     !! ** Method  :   use lib_mpp 
     1434     !!---------------------------------------------------------------------- 
     1435#if defined key_mpp_mpi 
     1436      CALL mpp_bcast(ln_hpg_zco) 
     1437      CALL mpp_bcast(ln_hpg_zps) 
     1438      CALL mpp_bcast(ln_hpg_sco) 
     1439      CALL mpp_bcast(ln_hpg_djc) 
     1440      CALL mpp_bcast(ln_hpg_prj) 
     1441      CALL mpp_bcast(ln_hpg_isf) 
     1442      CALL mpp_bcast(ln_dynhpg_imp) 
     1443#endif 
     1444   END SUBROUTINE hpg_namelist 
     1445 
    14221446   !!====================================================================== 
    14231447END MODULE dynhpg 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynnept.F90

    r6486 r9366  
    4040   !! dyn_nept_div_cur_init   is called only by dyn_nept_init, within this module 
    4141   !! dyn_nept_vel            is called only by dyn_nept_cor,  within this module 
     42   PRIVATE nept_namelist 
    4243 
    4344   !! * Shared module variables 
     
    118119      ! Define the (simplified) Neptune parameters 
    119120      ! ========================================== 
    120  
    121       REWIND( numnam_ref )              ! Namelist namdyn_nept in reference namelist : Simplified Neptune 
    122       READ  ( numnam_ref, namdyn_nept, IOSTAT = ios, ERR = 901) 
    123 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_nept in reference namelist', lwp ) 
    124  
    125       REWIND( numnam_cfg )              ! Namelist namdyn_nept in reference namelist : Simplified Neptune 
    126       READ  ( numnam_cfg, namdyn_nept, IOSTAT = ios, ERR = 902 ) 
    127 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_nept in configuration namelist', lwp ) 
     121      IF(lwm) THEN 
     122         REWIND( numnam_ref )              ! Namelist namdyn_nept in reference namelist : Simplified Neptune 
     123         READ  ( numnam_ref, namdyn_nept, IOSTAT = ios, ERR = 901) 
     124901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_nept in reference namelist', lwm ) 
     125         REWIND( numnam_cfg )              ! Namelist namdyn_nept in reference namelist : Simplified Neptune 
     126         READ  ( numnam_cfg, namdyn_nept, IOSTAT = ios, ERR = 902 ) 
     127902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_nept in configuration namelist', lwm ) 
     128      ENDIF 
     129 
    128130      IF(lwm) WRITE ( numond, namdyn_nept ) 
     131 
     132      CALL nept_namelist() 
    129133 
    130134      IF(lwp) THEN                      ! Control print 
     
    595599   END SUBROUTINE dyn_nept_smooth_vel 
    596600 
     601   SUBROUTINE nept_namelist() 
     602     !!--------------------------------------------------------------------- 
     603     !!                   ***  ROUTINE nept_namelist  *** 
     604     !!                      
     605     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     606     !! 
     607     !! ** Method  :   use lib_mpp 
     608     !!---------------------------------------------------------------------- 
     609#if defined key_mpp_mpi 
     610      CALL mpp_bcast(ln_neptsimp) 
     611      CALL mpp_bcast(ln_smooth_neptvel) 
     612      CALL mpp_bcast(rn_tslse) 
     613      CALL mpp_bcast(rn_tslsp) 
     614      CALL mpp_bcast(ln_neptramp) 
     615      CALL mpp_bcast(rn_htrmin) 
     616      CALL mpp_bcast(rn_htrmax) 
     617#endif 
     618   END SUBROUTINE nept_namelist 
    597619END MODULE dynnept 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r8243 r9366  
    5858   PUBLIC dyn_spg_ts_init   !    "      "     "    " 
    5959   PUBLIC ts_rst            !    "      "     "    " 
     60   PRIVATE ts_namelist    
    6061 
    6162   INTEGER, SAVE :: icycle  ! Number of barotropic sub-steps for each internal step nn_baro <= 2.5 nn_baro 
     
    10811082      !!---------------------------------------------------------------------- 
    10821083      ! 
    1083       REWIND( numnam_ref )              ! Namelist namsplit in reference namelist : time splitting parameters 
    1084       READ  ( numnam_ref, namsplit, IOSTAT = ios, ERR = 901) 
    1085 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsplit in reference namelist', lwp ) 
    1086  
    1087       REWIND( numnam_cfg )              ! Namelist namsplit in configuration namelist : time splitting parameters 
    1088       READ  ( numnam_cfg, namsplit, IOSTAT = ios, ERR = 902 ) 
    1089 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsplit in configuration namelist', lwp ) 
     1084      IF(lwm) THEN 
     1085         REWIND( numnam_ref )              ! Namelist namsplit in reference namelist : time splitting parameters 
     1086         READ  ( numnam_ref, namsplit, IOSTAT = ios, ERR = 901) 
     1087901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsplit in reference namelist', lwm ) 
     1088         REWIND( numnam_cfg )              ! Namelist namsplit in configuration namelist : time splitting parameters 
     1089         READ  ( numnam_cfg, namsplit, IOSTAT = ios, ERR = 902 ) 
     1090902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsplit in configuration namelist', lwm ) 
     1091      ENDIF 
     1092 
    10901093      IF(lwm) WRITE ( numond, namsplit ) 
     1094 
     1095      CALL ts_namelist() 
     1096 
    10911097      ! 
    10921098      !         ! Max courant number for ext. grav. waves 
     
    11721178      ! 
    11731179   END SUBROUTINE dyn_spg_ts_init 
     1180 
     1181      SUBROUTINE ts_namelist() 
     1182     !!--------------------------------------------------------------------- 
     1183     !!                   ***  ROUTINE ts_namelist  *** 
     1184     !!                      
     1185     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1186     !! 
     1187     !! ** Method  :   use lib_mpp 
     1188     !!---------------------------------------------------------------------- 
     1189#if defined key_mpp_mpi 
     1190      CALL mpp_bcast(ln_bt_fw) 
     1191      CALL mpp_bcast(ln_bt_av) 
     1192      CALL mpp_bcast(ln_bt_nn_auto) 
     1193      CALL mpp_bcast(nn_baro) 
     1194      CALL mpp_bcast(rn_bt_cmax) 
     1195      CALL mpp_bcast(nn_bt_flt) 
     1196#endif 
     1197   END SUBROUTINE ts_namelist 
    11741198 
    11751199#else 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r6486 r9366  
    4545   PUBLIC   dyn_vor        ! routine called by step.F90 
    4646   PUBLIC   dyn_vor_init   ! routine called by opa.F90 
     47   PRIVATE  vor_namelist 
    4748 
    4849   !                                   !!* Namelist namdyn_vor: vorticity term 
     
    722723      NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een, ln_dynvor_een_old 
    723724      !!---------------------------------------------------------------------- 
    724  
    725       REWIND( numnam_ref )              ! Namelist namdyn_vor in reference namelist : Vorticity scheme options 
    726       READ  ( numnam_ref, namdyn_vor, IOSTAT = ios, ERR = 901) 
    727 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_vor in reference namelist', lwp ) 
    728  
    729       REWIND( numnam_cfg )              ! Namelist namdyn_vor in configuration namelist : Vorticity scheme options 
    730       READ  ( numnam_cfg, namdyn_vor, IOSTAT = ios, ERR = 902 ) 
    731 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_vor in configuration namelist', lwp ) 
     725      IF(lwm) THEN 
     726         REWIND( numnam_ref )              ! Namelist namdyn_vor in reference namelist : Vorticity scheme options 
     727         READ  ( numnam_ref, namdyn_vor, IOSTAT = ios, ERR = 901) 
     728901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_vor in reference namelist', lwm ) 
     729         REWIND( numnam_cfg )              ! Namelist namdyn_vor in configuration namelist : Vorticity scheme options 
     730         READ  ( numnam_cfg, namdyn_vor, IOSTAT = ios, ERR = 902 ) 
     731902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_vor in configuration namelist', lwm ) 
     732      ENDIF 
    732733      IF(lwm) WRITE ( numond, namdyn_vor ) 
     734 
     735      CALL vor_namelist() 
    733736 
    734737      IF(lwp) THEN                    ! Namelist print 
     
    801804   END SUBROUTINE dyn_vor_init 
    802805 
     806   SUBROUTINE vor_namelist() 
     807     !!--------------------------------------------------------------------- 
     808     !!                   ***  ROUTINE vor_namelist  *** 
     809     !!                      
     810     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     811     !! 
     812     !! ** Method  :   use lib_mpp 
     813     !!---------------------------------------------------------------------- 
     814#if defined key_mpp_mpi 
     815      CALL mpp_bcast(ln_dynvor_ens) 
     816      CALL mpp_bcast(ln_dynvor_ene) 
     817      CALL mpp_bcast(ln_dynvor_mix) 
     818      CALL mpp_bcast(ln_dynvor_een) 
     819      CALL mpp_bcast(ln_dynvor_een_old) 
     820#endif 
     821   END SUBROUTINE vor_namelist 
    803822   !!============================================================================== 
    804823END MODULE dynvor 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90

    r6823 r9366  
    3434 
    3535   PUBLIC   icb_init  ! routine called in nemogcm.F90 module 
     36   PRIVATE  icb_namelist 
    3637 
    3738   CHARACTER(len=100)                                 ::   cn_dir = './'   !: Root directory for location of icb files 
     
    362363 
    363364#if !defined key_agrif 
    364       REWIND( numnam_ref )              ! Namelist namberg in reference namelist : Iceberg parameters 
    365       READ  ( numnam_ref, namberg, IOSTAT = ios, ERR = 901) 
    366 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namberg in reference namelist', lwp ) 
    367       REWIND( numnam_cfg )              ! Namelist namberg in configuration namelist : Iceberg parameters 
    368       READ  ( numnam_cfg, namberg, IOSTAT = ios, ERR = 902 ) 
    369 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namberg in configuration namelist', lwp ) 
     365      IF(lwm) THEN 
     366         REWIND( numnam_ref )              ! Namelist namberg in reference namelist : Iceberg parameters 
     367         READ  ( numnam_ref, namberg, IOSTAT = ios, ERR = 901) 
     368901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namberg in reference namelist', lwm ) 
     369         REWIND( numnam_cfg )              ! Namelist namberg in configuration namelist : Iceberg parameters 
     370         READ  ( numnam_cfg, namberg, IOSTAT = ios, ERR = 902 ) 
     371902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namberg in configuration namelist', lwm ) 
     372      ENDIF 
     373 
    370374      IF(lwm) WRITE ( numond, namberg ) 
     375 
     376      CALL icb_namelist() 
     377 
    371378#else 
    372379      IF(lwp) THEN 
     
    451458   END SUBROUTINE icb_nam 
    452459 
     460   SUBROUTINE icb_namelist() 
     461     !!--------------------------------------------------------------------- 
     462     !!                   ***  ROUTINE icb_namelist  *** 
     463     !!                      
     464     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     465     !! 
     466     !! ** Method  :   use lib_mpp 
     467     !!---------------------------------------------------------------------- 
     468#if defined key_mpp_mpi 
     469      CALL mpp_bcast(ln_icebergs) 
     470      CALL mpp_bcast(ln_bergdia) 
     471      CALL mpp_bcast(nn_sample_rate) 
     472      CALL mpp_bcast(rn_initial_mass, nclasses) 
     473      CALL mpp_bcast(rn_distribution, nclasses) 
     474      CALL mpp_bcast(rn_mass_scaling, nclasses) 
     475      CALL mpp_bcast(rn_initial_thickness, nclasses) 
     476      CALL mpp_bcast(nn_verbose_write) 
     477      CALL mpp_bcast(rn_rho_bergs) 
     478      CALL mpp_bcast(rn_LoW_ratio) 
     479      CALL mpp_bcast(nn_verbose_level) 
     480      CALL mpp_bcast(ln_operator_splitting) 
     481      CALL mpp_bcast(rn_bits_erosion_fraction) 
     482      CALL mpp_bcast(rn_sicn_shift) 
     483      CALL mpp_bcast(ln_passive_mode) 
     484      CALL mpp_bcast(ln_time_average_weight) 
     485      CALL mpp_bcast(nn_test_icebergs) 
     486      CALL mpp_bcast(rn_test_box, 4) 
     487      CALL mpp_bcast(rn_speed_limit) 
     488      CALL mpp_bcast(cn_dir, 100) 
     489      CALL fld_n_bcast(sn_icb) 
     490#endif 
     491   END SUBROUTINE icb_namelist 
     492 
    453493   !!====================================================================== 
    454494END MODULE icbini 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90

    r6486 r9366  
    2929 
    3030   PUBLIC   ldf_dyn_init   ! called by opa.F90 
     31   PRIVATE  dyn_namelist 
    3132 
    3233  INTERFACE ldf_zpf 
     
    7374 
    7475   !!---------------------------------------------------------------------- 
    75  
    76       REWIND( numnam_ref )              ! Namelist namdyn_ldf in reference namelist : Lateral physics 
    77       READ  ( numnam_ref, namdyn_ldf, IOSTAT = ios, ERR = 901) 
    78 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_ldf in reference namelist', lwp ) 
    79  
    80       REWIND( numnam_cfg )              ! Namelist namdyn_ldf in configuration namelist : Lateral physics 
    81       READ  ( numnam_cfg, namdyn_ldf, IOSTAT = ios, ERR = 902 ) 
    82 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_ldf in configuration namelist', lwp ) 
     76      IF(lwm) THEN 
     77         REWIND( numnam_ref )              ! Namelist namdyn_ldf in reference namelist : Lateral physics 
     78         READ  ( numnam_ref, namdyn_ldf, IOSTAT = ios, ERR = 901) 
     79901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_ldf in reference namelist', lwm ) 
     80 
     81         REWIND( numnam_cfg )              ! Namelist namdyn_ldf in configuration namelist : Lateral physics 
     82         READ  ( numnam_cfg, namdyn_ldf, IOSTAT = ios, ERR = 902 ) 
     83902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn_ldf in configuration namelist', lwm ) 
     84      ENDIF 
     85 
    8386      IF(lwm) WRITE ( numond, namdyn_ldf ) 
     87 
     88      CALL dyn_namelist() 
    8489 
    8590      IF(lwp) THEN                      ! Parameter print 
     
    295300   END SUBROUTINE ldf_zpf_3d 
    296301 
     302   SUBROUTINE dyn_namelist() 
     303     !!--------------------------------------------------------------------- 
     304     !!                   ***  ROUTINE dyn_namelist  *** 
     305     !!                      
     306     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     307     !! 
     308     !! ** Method  :   use lib_mpp 
     309     !!---------------------------------------------------------------------- 
     310#if defined key_mpp_mpi 
     311      CALL mpp_bcast(ln_dynldf_lap) 
     312      CALL mpp_bcast(ln_dynldf_bilap) 
     313      CALL mpp_bcast(ln_dynldf_level) 
     314      CALL mpp_bcast(ln_dynldf_hor) 
     315      CALL mpp_bcast(ln_dynldf_iso) 
     316      CALL mpp_bcast(rn_ahm_0_lap) 
     317      CALL mpp_bcast(rn_ahmb_0) 
     318      CALL mpp_bcast(rn_ahm_0_blp) 
     319      CALL mpp_bcast(rn_cmsmag_1) 
     320      CALL mpp_bcast(rn_cmsmag_2) 
     321      CALL mpp_bcast(rn_cmsh) 
     322      CALL mpp_bcast(rn_ahm_m_lap) 
     323      CALL mpp_bcast(rn_ahm_m_blp) 
     324#endif 
     325   END SUBROUTINE dyn_namelist 
    297326   !!====================================================================== 
    298327END MODULE ldfdyn 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90

    r6486 r9366  
    2929 
    3030   PUBLIC   ldf_tra_init   ! called by opa.F90 
     31   PRIVATE  tra_namelist 
    3132 
    3233   !! * Substitutions 
     
    7778      ! ============================================= 
    7879     
    79  
    80       REWIND( numnam_ref )              ! Namelist namtra_ldf in reference namelist : Lateral physics on tracers 
    81       READ  ( numnam_ref, namtra_ldf, IOSTAT = ios, ERR = 901) 
    82 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ldf in reference namelist', lwp ) 
    83  
    84       REWIND( numnam_cfg )              ! Namelist namtra_ldf in configuration namelist : Lateral physics on tracers 
    85       READ  ( numnam_cfg, namtra_ldf, IOSTAT = ios, ERR = 902 ) 
    86 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ldf in configuration namelist', lwp ) 
     80      IF(lwm) THEN 
     81         REWIND( numnam_ref )              ! Namelist namtra_ldf in reference namelist : Lateral physics on tracers 
     82         READ  ( numnam_ref, namtra_ldf, IOSTAT = ios, ERR = 901) 
     83901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ldf in reference namelist', lwm ) 
     84         REWIND( numnam_cfg )              ! Namelist namtra_ldf in configuration namelist : Lateral physics on tracers 
     85         READ  ( numnam_cfg, namtra_ldf, IOSTAT = ios, ERR = 902 ) 
     86902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ldf in configuration namelist', lwm ) 
     87      ENDIF 
    8788      IF(lwm) WRITE ( numond, namtra_ldf ) 
     89 
     90      CALL tra_namelist() 
    8891 
    8992      IF(lwp) THEN                      ! control print 
     
    179182   END SUBROUTINE ldf_tra_init 
    180183 
     184   SUBROUTINE tra_namelist() 
     185     !!--------------------------------------------------------------------- 
     186     !!                   ***  ROUTINE tra_namelist  *** 
     187     !!                      
     188     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     189     !! 
     190     !! ** Method  :   use lib_mpp 
     191     !!---------------------------------------------------------------------- 
     192#if defined key_mpp_mpi 
     193      CALL mpp_bcast(ln_traldf_lap) 
     194      CALL mpp_bcast(ln_traldf_bilap) 
     195      CALL mpp_bcast(ln_traldf_level) 
     196      CALL mpp_bcast(ln_traldf_hor) 
     197      CALL mpp_bcast(ln_traldf_iso) 
     198      CALL mpp_bcast(ln_traldf_grif) 
     199      CALL mpp_bcast(ln_traldf_gdia) 
     200      CALL mpp_bcast(ln_triad_iso) 
     201      CALL mpp_bcast(ln_botmix_grif) 
     202      CALL mpp_bcast(rn_aht_0) 
     203      CALL mpp_bcast(rn_ahtb_0) 
     204      CALL mpp_bcast(rn_aeiv_0) 
     205      CALL mpp_bcast(rn_slpmax) 
     206      CALL mpp_bcast(rn_chsmag) 
     207      CALL mpp_bcast(rn_smsh) 
     208      CALL mpp_bcast(rn_aht_m) 
     209#endif 
     210   END SUBROUTINE tra_namelist 
     211 
    181212#if defined key_traldf_c3d 
    182213#   include "ldftra_c3d.h90" 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r6486 r9366  
    15981598 
    15991599    END SUBROUTINE fin_date 
    1600      
    16011600END MODULE diaobs 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90

    r6498 r9366  
    2828   PUBLIC   albedo_ice   ! routine called sbcice_lim.F90 
    2929   PUBLIC   albedo_oce   ! routine called by ??? 
     30   PRIVATE  albedo_namelist 
    3031 
    3132   INTEGER  ::   albd_init = 0      !: control flag for initialization 
     
    253254      albd_init = 1                     ! indicate that the initialization has been done 
    254255      ! 
    255       REWIND( numnam_ref )              ! Namelist namsbc_alb in reference namelist : Albedo parameters 
    256       READ  ( numnam_ref, namsbc_alb, IOSTAT = ios, ERR = 901) 
    257 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in reference namelist', lwp ) 
    258  
    259       REWIND( numnam_cfg )              ! Namelist namsbc_alb in configuration namelist : Albedo parameters 
    260       READ  ( numnam_cfg, namsbc_alb, IOSTAT = ios, ERR = 902 ) 
    261 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in configuration namelist', lwp ) 
     256      IF(lwm) THEN 
     257         REWIND( numnam_ref )              ! Namelist namsbc_alb in reference namelist : Albedo parameters 
     258         READ  ( numnam_ref, namsbc_alb, IOSTAT = ios, ERR = 901) 
     259901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in reference namelist', lwm ) 
     260         REWIND( numnam_cfg )              ! Namelist namsbc_alb in configuration namelist : Albedo parameters 
     261         READ  ( numnam_cfg, namsbc_alb, IOSTAT = ios, ERR = 902 ) 
     262902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in configuration namelist', lwm ) 
     263      ENDIF 
    262264      IF(lwm) WRITE ( numond, namsbc_alb ) 
    263265      ! 
     266      CALL albedo_namelist() 
     267 
    264268      IF(lwp) THEN                      ! Control print 
    265269         WRITE(numout,*) 
     
    273277   END SUBROUTINE albedo_init 
    274278 
     279   SUBROUTINE albedo_namelist() 
     280     !!--------------------------------------------------------------------- 
     281     !!                   ***  ROUTINE albedo_namelist  *** 
     282     !!                      
     283     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     284     !! 
     285     !! ** Method  :   use lib_mpp 
     286     !!---------------------------------------------------------------------- 
     287#if defined key_mpp_mpi 
     288      CALL mpp_bcast(nn_ice_alb) 
     289      CALL mpp_bcast( rn_albice) 
     290#endif 
     291   END SUBROUTINE albedo_namelist 
     292 
    275293   !!====================================================================== 
    276294END MODULE albedo 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r8243 r9366  
    2626   USE ioipsl, ONLY :   ymds2ju, ju2ymds   ! for calendar 
    2727   USE sbc_oce 
     28   USE lib_mpp 
    2829    
    2930   IMPLICIT NONE 
     
    3334   PUBLIC   fld_read, fld_fill   ! called by sbc... modules 
    3435   PUBLIC   fld_clopn 
     36   PUBLIC   fld_n_bcast 
    3537 
    3638   TYPE, PUBLIC ::   FLD_N      !: Namelist field informations 
     
    14981500   END SUBROUTINE fld_interp 
    14991501 
     1502  SUBROUTINE fld_n_bcast(svar) 
     1503     !!--------------------------------------------------------------------- 
     1504     !!                   ***  ROUTINE fld_n_bcast  *** 
     1505     !!                      
     1506     !! ** Purpose :   Broadcast FLD_N type read from namelist by procesor lwp 
     1507     !! 
     1508     !! ** Method  :   use lib_mpp 
     1509     !!---------------------------------------------------------------------- 
     1510     TYPE(FLD_N), INTENT (INOUT) :: svar 
     1511#if defined key_mpp_mpi 
     1512     call mpp_bcast(svar%clname, 256) 
     1513     call mpp_bcast(svar%nfreqh) 
     1514     call mpp_bcast(svar%clvar, 34) 
     1515     call mpp_bcast(svar%ln_tint) 
     1516     call mpp_bcast(svar%ln_clim) 
     1517     call mpp_bcast(svar%cltype, 8) 
     1518     call mpp_bcast(svar%wname, 256) 
     1519     call mpp_bcast(svar%vcomp, 34) 
     1520     call mpp_bcast(svar%lname, 34) 
     1521#endif 
     1522   END SUBROUTINE fld_n_bcast 
    15001523 
    15011524   FUNCTION ksec_week( cdday ) 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcana.F90

    r6486 r9366  
    2626   PUBLIC   sbc_ana    ! routine called in sbcmod module 
    2727   PUBLIC   sbc_gyre   ! routine called in sbcmod module 
     28   PRIVATE  ana_namelist 
    2829 
    2930   !                       !!* Namelist namsbc_ana * 
     
    7475      IF( kt == nit000 ) THEN 
    7576         ! 
    76          REWIND( numnam_ref )              ! Namelist namsbc_ana in reference namelist : Analytical surface fluxes 
    77          READ  ( numnam_ref, namsbc_ana, IOSTAT = ios, ERR = 901) 
    78 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ana in reference namelist', lwp ) 
    79  
    80          REWIND( numnam_cfg )              ! Namelist namsbc_ana in configuration namelist : Analytical surface fluxes 
    81          READ  ( numnam_cfg, namsbc_ana, IOSTAT = ios, ERR = 902 ) 
    82 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ana in configuration namelist', lwp ) 
     77         IF(lwm) THEN 
     78            REWIND( numnam_ref )              ! Namelist namsbc_ana in reference namelist : Analytical surface fluxes 
     79            READ  ( numnam_ref, namsbc_ana, IOSTAT = ios, ERR = 901) 
     80901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ana in reference namelist', lwm ) 
     81            REWIND( numnam_cfg )              ! Namelist namsbc_ana in configuration namelist : Analytical surface fluxes 
     82            READ  ( numnam_cfg, namsbc_ana, IOSTAT = ios, ERR = 902 ) 
     83902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ana in configuration namelist', lwm ) 
     84         ENDIF 
     85 
    8386         IF(lwm) WRITE ( numond, namsbc_ana ) 
     87 
     88         CALL ana_namelist() 
    8489         ! 
    8590         IF(lwp) WRITE(numout,*)' ' 
     
    329334   END SUBROUTINE sbc_gyre 
    330335 
     336   SUBROUTINE ana_namelist() 
     337     !!--------------------------------------------------------------------- 
     338     !!                   ***  ROUTINE ana_namelist  *** 
     339     !!                      
     340     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     341     !! 
     342     !! ** Method  :   use lib_mpp 
     343     !!---------------------------------------------------------------------- 
     344#if defined key_mpp_mpi 
     345      CALL mpp_bcast(nn_tau000) 
     346      CALL mpp_bcast(rn_utau0) 
     347      CALL mpp_bcast(rn_vtau0) 
     348      CALL mpp_bcast(rn_qns0) 
     349      CALL mpp_bcast(rn_qsr0) 
     350      CALL mpp_bcast(rn_emp0) 
     351#endif 
     352   END SUBROUTINE ana_namelist 
     353 
    331354   !!====================================================================== 
    332355END MODULE sbcana 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90

    r8243 r9366  
    2525 
    2626   PUBLIC   sbc_apr    ! routine called in sbcmod 
     27   PRIVATE  sio_namelist 
    2728    
    2829   !                                !!* namsbc_apr namelist (Atmospheric PRessure) * 
     
    8081         !                                      ! -------------------- ! 
    8182         ln_apr_sio = .FALSE. 
    82          REWIND( numnam_ref )              ! Namelist namsbc_apr in reference namelist : File for atmospheric pressure forcing 
    83          READ  ( numnam_ref, namsbc_apr, IOSTAT = ios, ERR = 901) 
    84 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_apr in reference namelist', lwp ) 
     83         IF(lwm) THEN 
     84            REWIND( numnam_ref )              ! Namelist namsbc_apr in reference namelist : File for atmospheric pressure forcing 
     85            READ  ( numnam_ref, namsbc_apr, IOSTAT = ios, ERR = 901) 
     86901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_apr in reference namelist', lwm ) 
     87            REWIND( numnam_cfg )              ! Namelist namsbc_apr in configuration namelist : File for atmospheric pressure forcing 
     88            READ  ( numnam_cfg, namsbc_apr, IOSTAT = ios, ERR = 902 ) 
     89902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_apr in configuration namelist', lwm ) 
     90         ENDIF 
    8591 
    86          REWIND( numnam_cfg )              ! Namelist namsbc_apr in configuration namelist : File for atmospheric pressure forcing 
    87          READ  ( numnam_cfg, namsbc_apr, IOSTAT = ios, ERR = 902 ) 
    88 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_apr in configuration namelist', lwp ) 
    8992         IF(lwm) WRITE ( numond, namsbc_apr ) 
     93 
     94         CALL sio_namelist(cn_dir, sn_apr) 
    9095         ! 
    9196         ALLOCATE( sf_apr(1), STAT=ierror )           !* allocate and fill sf_sst (forcing structure) with sn_sst 
     
    168173      ! 
    169174   END SUBROUTINE sbc_apr 
     175 
     176   SUBROUTINE sio_namelist(cd_dir, sd_apr) 
     177     !!--------------------------------------------------------------------- 
     178     !!                   ***  ROUTINE sio_namelist  *** 
     179     !!                      
     180     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     181     !! 
     182     !! ** Method  :   use lib_mpp 
     183     !!---------------------------------------------------------------------- 
     184      CHARACTER(len=100) ::  cd_dir   ! Root directory for location of ssr files 
     185      TYPE(FLD_N)        ::  sd_apr   ! informations about the fields to be read 
     186 
     187#if defined key_mpp_mpi 
     188      CALL mpp_bcast(cd_dir, 100) 
     189      CALL fld_n_bcast(sd_apr) 
     190      CALL mpp_bcast(ln_ref_apr) 
     191      CALL mpp_bcast(rn_pref) 
     192      CALL mpp_bcast(ln_apr_obc) 
     193#endif 
     194   END SUBROUTINE sio_namelist 
    170195       
    171196   !!====================================================================== 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r8243 r9366  
    5252   PUBLIC blk_ice_clio_flx    ! routine called by sbcice_lim.F90  
    5353#endif 
     54   PRIVATE clio_namelist 
    5455 
    5556   INTEGER , PARAMETER ::   jpfld   = 7           ! maximum number of files to read  
     
    145146         !                                      ! ====================== ! 
    146147         ln_clio_sio = .FALSE. 
    147          REWIND( numnam_ref )              ! Namelist namsbc_clio in reference namelist : CLIO files 
    148          READ  ( numnam_ref, namsbc_clio, IOSTAT = ios, ERR = 901) 
    149 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_clio in reference namelist', lwp ) 
    150  
    151          REWIND( numnam_cfg )              ! Namelist namsbc_clio in configuration namelist : CLIO files 
    152          READ  ( numnam_cfg, namsbc_clio, IOSTAT = ios, ERR = 902 ) 
    153 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_clio in configuration namelist', lwp ) 
     148         IF(lwm) THEN 
     149            REWIND( numnam_ref )              ! Namelist namsbc_clio in reference namelist : CLIO files 
     150            READ  ( numnam_ref, namsbc_clio, IOSTAT = ios, ERR = 901) 
     151901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_clio in reference namelist', lwm ) 
     152            REWIND( numnam_cfg )              ! Namelist namsbc_clio in configuration namelist : CLIO files 
     153            READ  ( numnam_cfg, namsbc_clio, IOSTAT = ios, ERR = 902 ) 
     154902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_clio in configuration namelist', lwm ) 
     155         ENDIF 
    154156         IF(lwm) WRITE ( numond, namsbc_clio ) 
     157 
     158         CALL clio_namelist(cn_dir, sn_utau, sn_vtau, sn_wndm, sn_tair, sn_humi, & 
     159         &                  sn_ccov, sn_prec) 
    155160 
    156161         ! store namelist information in an array 
     
    10721077   END SUBROUTINE flx_blk_declin 
    10731078 
     1079   SUBROUTINE clio_namelist(cd_dir, sd_utau, sd_vtau, sd_wndm, sd_tair, sd_humi, & 
     1080         &                  sd_ccov, sd_prec) 
     1081     !!--------------------------------------------------------------------- 
     1082     !!                   ***  ROUTINE clio_namelist  *** 
     1083     !!                      
     1084     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1085     !! 
     1086     !! ** Method  :   use lib_mpp 
     1087     !!---------------------------------------------------------------------- 
     1088      CHARACTER(len=100) ::  cd_dir                            ! Root directory for location of CLIO files 
     1089      TYPE(FLD_N) ::   sd_utau, sd_vtau, sd_wndm, sd_tair      ! informations about the fields to be read 
     1090      TYPE(FLD_N) ::   sd_humi, sd_ccov, sd_prec               !  
     1091#if defined key_mpp_mpi 
     1092      CALL mpp_bcast(cd_dir, 100) 
     1093      CALL fld_n_bcast(sd_utau) 
     1094      CALL fld_n_bcast(sd_vtau) 
     1095      CALL fld_n_bcast(sd_wndm) 
     1096      CALL fld_n_bcast(sd_humi) 
     1097      CALL fld_n_bcast(sd_ccov) 
     1098      CALL fld_n_bcast(sd_tair) 
     1099      CALL fld_n_bcast(sd_prec) 
     1100      CALL mpp_bcast(ln_clio_sio) 
     1101#endif 
     1102   END SUBROUTINE clio_namelist 
     1103 
    10741104   !!====================================================================== 
    10751105END MODULE sbcblk_clio 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r8243 r9366  
    6161#endif 
    6262   PUBLIC   turb_core_2z         ! routine calles in sbcblk_mfs module 
     63   PRIVATE  core_namelist 
    6364 
    6465   INTEGER , PARAMETER ::   jpfld   = 9           ! maximum number of files to read 
     
    160161         ! 
    161162         ln_core_sio = .FALSE. 
    162          REWIND( numnam_ref )              ! Namelist namsbc_core in reference namelist : CORE bulk parameters 
    163          READ  ( numnam_ref, namsbc_core, IOSTAT = ios, ERR = 901) 
    164 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_core in reference namelist', lwp ) 
    165          ! 
    166          REWIND( numnam_cfg )              ! Namelist namsbc_core in configuration namelist : CORE bulk parameters 
    167          READ  ( numnam_cfg, namsbc_core, IOSTAT = ios, ERR = 902 ) 
    168 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_core in configuration namelist', lwp ) 
     163         IF(lwm) THEN 
     164            REWIND( numnam_ref )              ! Namelist namsbc_core in reference namelist : CORE bulk parameters 
     165            READ  ( numnam_ref, namsbc_core, IOSTAT = ios, ERR = 901) 
     166901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_core in reference namelist', lwm ) 
     167            REWIND( numnam_cfg )              ! Namelist namsbc_core in configuration namelist : CORE bulk parameters 
     168            READ  ( numnam_cfg, namsbc_core, IOSTAT = ios, ERR = 902 ) 
     169902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_core in configuration namelist', lwm ) 
     170         ENDIF 
    169171 
    170172         IF(lwm) WRITE( numond, namsbc_core ) 
    171173         !                                         ! check: do we plan to use ln_dm2dc with non-daily forcing? 
     174         CALL core_namelist(cn_dir, sn_wndi, sn_wndj, sn_humi, sn_qsr, sn_qlw, & 
     175         &                  sn_tair, sn_prec, sn_snow, sn_tdif) 
     176         ! 
    172177         IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   & 
    173178            &   CALL ctl_stop( 'sbc_blk_core: ln_dm2dc can be activated only with daily short-wave forcing' ) 
     
    836841   END SUBROUTINE turb_core_2z 
    837842 
     843   SUBROUTINE core_namelist(cd_dir, sd_wndi, sd_wndj, sd_humi, sd_qsr, sd_qlw, & 
     844         &                  sd_tair, sd_prec, sd_snow, sd_tdif) 
     845     !!--------------------------------------------------------------------- 
     846     !!                   ***  ROUTINE core_namelist  *** 
     847     !!                      
     848     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     849     !! 
     850     !! ** Method  :   use lib_mpp 
     851     !!---------------------------------------------------------------------- 
     852     CHARACTER(len=100), INTENT(INOUT)  :: cd_dir   !   Root directory for location of core files 
     853     TYPE(FLD_N), INTENT(INOUT)         :: sd_wndi, sd_wndj, sd_humi, sd_qsr       ! informations about the fields to be read 
     854     TYPE(FLD_N), INTENT(INOUT)         :: sd_qlw , sd_tair, sd_prec, sd_snow      !  
     855     TYPE(FLD_N), INTENT(INOUT)         :: sd_tdif 
     856#if defined key_mpp_mpi 
     857      CALL mpp_bcast(cd_dir, 100) 
     858      CALL mpp_bcast(ln_taudif) 
     859      CALL mpp_bcast(rn_pfac) 
     860      CALL mpp_bcast(rn_efac) 
     861      CALL mpp_bcast(rn_vfac) 
     862      CALL fld_n_bcast(sd_wndi) 
     863      CALL fld_n_bcast(sd_wndj) 
     864      CALL fld_n_bcast(sd_humi) 
     865      CALL fld_n_bcast(sd_qsr) 
     866      CALL fld_n_bcast(sd_qlw) 
     867      CALL fld_n_bcast(sd_tair) 
     868      CALL fld_n_bcast(sd_prec) 
     869      CALL fld_n_bcast(sd_snow) 
     870      CALL fld_n_bcast(sd_tdif) 
     871      CALL mpp_bcast(rn_zqt) 
     872      CALL mpp_bcast(rn_zu) 
     873      CALL mpp_bcast(ln_core_sio) 
     874#endif 
     875   END SUBROUTINE core_namelist 
    838876 
    839877   FUNCTION cd_neutral_10m( zw10 ) 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90

    r8243 r9366  
    3030 
    3131   PUBLIC   sbc_blk_mfs       ! routine called in sbcmod module 
     32   PRIVATE  mfs_namelist 
    3233       
    3334   INTEGER , PARAMETER ::   jpfld   = 7         ! maximum number of files to read  
     
    135136 
    136137         IF( ierror /= 0 )   CALL ctl_warn('sbc_blk_mfs: failed to allocate arrays') 
    137  
    138          REWIND( numnam_ref )              ! Namelist namsbc_msf in reference namelist : MFS files 
    139          READ  ( numnam_ref, namsbc_mfs, IOSTAT = ios, ERR = 901) 
    140 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in reference namelist', lwp ) 
    141  
    142          REWIND( numnam_cfg )              ! Namelist namsbc_msf in configuration namelist : MFS files 
    143          READ  ( numnam_cfg, namsbc_mfs, IOSTAT = ios, ERR = 902 ) 
    144 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in configuration namelist', lwp ) 
     138         IF(lwm) THEN 
     139            REWIND( numnam_ref )              ! Namelist namsbc_msf in reference namelist : MFS files 
     140            READ  ( numnam_ref, namsbc_mfs, IOSTAT = ios, ERR = 901) 
     141901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in reference namelist', lwm ) 
     142            REWIND( numnam_cfg )              ! Namelist namsbc_msf in configuration namelist : MFS files 
     143            READ  ( numnam_cfg, namsbc_mfs, IOSTAT = ios, ERR = 902 ) 
     144902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in configuration namelist', lwm ) 
     145         ENDIF 
    145146         IF(lwm) WRITE ( numond, namsbc_mfs ) 
     147         ! 
     148         CALL mfs_namelist(cn_dir, sn_wndi, sn_wndj, sn_clc, sn_msl, & 
     149         &                  sn_tair , sn_rhm , sn_prec, ln_msf_sio) 
    146150         ! 
    147151         ! store namelist information in an array 
     
    646650   END SUBROUTINE qshort 
    647651 
    648  
     652   SUBROUTINE mfs_namelist(cd_dir, sd_wndi, sd_wndj, sd_clc, sd_msl, & 
     653         &                  sd_tair , sd_rhm , sd_prec, ld_msf_sio) 
     654     !!--------------------------------------------------------------------- 
     655     !!                   ***  ROUTINE mfs_namelist  *** 
     656     !!                      
     657     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     658     !! 
     659     !! ** Method  :   use lib_mpp 
     660     !!---------------------------------------------------------------------- 
     661      CHARACTER(len=100), INTENT(INOUT) :: cd_dir                           ! Root directory for location of Atmospheric forcing files 
     662      TYPE(FLD_N), INTENT(INOUT)        :: sd_wndi, sd_wndj, sd_clc, sd_msl       ! informations about the fields to be read 
     663      TYPE(FLD_N), INTENT(INOUT)        :: sd_tair, sd_rhm, sd_prec 
     664      LOGICAL, INTENT(INOUT)            :: ld_msf_sio 
     665 
     666#if defined key_mpp_mpi 
     667      CALL mpp_bcast(cd_dir, 100) 
     668      CALL fld_n_bcast(sd_wndi) 
     669      CALL fld_n_bcast(sd_wndj) 
     670      CALL fld_n_bcast(sd_clc) 
     671      CALL fld_n_bcast(sd_msl) 
     672      CALL fld_n_bcast(sd_tair) 
     673      CALL fld_n_bcast(sd_rhm) 
     674      CALL fld_n_bcast(sd_prec) 
     675      CALL mpp_bcast(ld_msf_sio) 
     676#endif 
     677   END SUBROUTINE mfs_namelist 
    649678   !!====================================================================== 
    650679 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7923 r9366  
    6262   PUBLIC   sbc_cpl_ice_flx    ! routine called by sbc_ice_lim(_2).F90 
    6363   PUBLIC   sbc_cpl_alloc      ! routine called in sbcice_cice.F90 
     64   PRIVATE  cpl_namelist 
    6465 
    6566   INTEGER, PARAMETER ::   jpr_otx1   =  1            ! 3 atmosphere-ocean stress components on grid 1 
     
    259260      !      Namelist informations       ! 
    260261      ! ================================ ! 
    261  
    262       REWIND( numnam_ref )              ! Namelist namsbc_cpl in reference namelist : Variables for OASIS coupling 
    263       READ  ( numnam_ref, namsbc_cpl, IOSTAT = ios, ERR = 901) 
    264 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cpl in reference namelist', lwp ) 
    265  
    266       REWIND( numnam_cfg )              ! Namelist namsbc_cpl in configuration namelist : Variables for OASIS coupling 
    267       READ  ( numnam_cfg, namsbc_cpl, IOSTAT = ios, ERR = 902 ) 
    268 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cpl in configuration namelist', lwp ) 
     262      IF(lwm) THEN 
     263         REWIND( numnam_ref )              ! Namelist namsbc_cpl in reference namelist : Variables for OASIS coupling 
     264         READ  ( numnam_ref, namsbc_cpl, IOSTAT = ios, ERR = 901) 
     265901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cpl in reference namelist', lwm ) 
     266         REWIND( numnam_cfg )              ! Namelist namsbc_cpl in configuration namelist : Variables for OASIS coupling 
     267         READ  ( numnam_cfg, namsbc_cpl, IOSTAT = ios, ERR = 902 ) 
     268902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cpl in configuration namelist', lwm ) 
     269      ENDIF 
    269270      IF(lwm) WRITE ( numond, namsbc_cpl ) 
     271 
     272      CALL cpl_namelist() 
    270273 
    271274      IF(lwp) THEN                        ! control print 
     
    25362539      ! 
    25372540   END SUBROUTINE sbc_cpl_snd 
    2538     
     2541 
     2542   SUBROUTINE cpl_namelist() 
     2543     !!--------------------------------------------------------------------- 
     2544     !!                   ***  ROUTINE cpl_namelist  *** 
     2545     !!                      
     2546     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     2547     !! 
     2548     !! ** Method  :   use lib_mpp 
     2549     !!---------------------------------------------------------------------- 
     2550#if defined key_mpp_mpi 
     2551      CALL fld_c_bcast(sn_snd_temp) 
     2552      CALL fld_c_bcast(sn_snd_alb) 
     2553      CALL fld_c_bcast(sn_snd_thick) 
     2554      CALL fld_c_bcast(sn_snd_crt) 
     2555      CALL fld_c_bcast(sn_snd_co2) 
     2556      CALL fld_c_bcast(sn_snd_cond) 
     2557      CALL fld_c_bcast(sn_snd_mpnd) 
     2558      CALL fld_c_bcast(sn_snd_sstfrz) 
     2559      CALL fld_c_bcast(sn_snd_thick1) 
     2560      CALL fld_c_bcast(sn_rcv_w10m) 
     2561      CALL fld_c_bcast(sn_rcv_taumod) 
     2562      CALL fld_c_bcast(sn_rcv_tau) 
     2563      CALL fld_c_bcast(sn_rcv_dqnsdt) 
     2564      CALL fld_c_bcast(sn_rcv_qsr) 
     2565      CALL fld_c_bcast(sn_rcv_qns) 
     2566      CALL fld_c_bcast(sn_rcv_emp) 
     2567      CALL fld_c_bcast(sn_rcv_rnf) 
     2568      CALL fld_c_bcast(sn_rcv_cal) 
     2569      CALL fld_c_bcast(sn_rcv_iceflx) 
     2570      CALL fld_c_bcast(sn_rcv_co2) 
     2571      CALL fld_c_bcast(sn_rcv_grnm) 
     2572      CALL fld_c_bcast(sn_rcv_antm) 
     2573      CALL fld_c_bcast(sn_rcv_ts_ice) 
     2574      CALL mpp_bcast(nn_cplmodel) 
     2575      CALL mpp_bcast(ln_usecplmask) 
     2576      CALL mpp_bcast(ln_coupled_iceshelf_fluxes) 
     2577      CALL mpp_bcast(ln_iceshelf_init_atmos) 
     2578      CALL mpp_bcast(rn_greenland_calving_fraction) 
     2579      CALL mpp_bcast(rn_antarctica_calving_fraction) 
     2580      CALL mpp_bcast(rn_iceshelf_fluxes_tolerance) 
     2581      CALL fld_c_bcast(sn_snd_bio_co2) 
     2582      CALL fld_c_bcast(sn_snd_bio_dms) 
     2583      CALL fld_c_bcast(sn_rcv_atm_pco2) 
     2584      CALL fld_c_bcast(sn_rcv_atm_dust) 
     2585#endif 
     2586   END SUBROUTINE cpl_namelist    
     2587 
     2588   SUBROUTINE fld_c_bcast(sd_name) 
     2589     !!--------------------------------------------------------------------- 
     2590     !!                   ***  ROUTINE fld_c_bcast  *** 
     2591     !!                      
     2592     !! ** Purpose :   Broadcast FLD_C type to all processors  
     2593     !! 
     2594     !! ** Method  :   use lib_mpp 
     2595     !!---------------------------------------------------------------------- 
     2596     TYPE(FLD_C), INTENT(INOUT) :: sd_name 
     2597#if defined key_mpp_mpi 
     2598     CALL mpp_bcast(sd_name%cldes, 32) 
     2599     CALL mpp_bcast(sd_name%clcat, 32) 
     2600     CALL mpp_bcast(sd_name%clvref, 32) 
     2601     CALL mpp_bcast(sd_name%clvor, 32) 
     2602     CALL mpp_bcast(sd_name%clvgrd, 32) 
     2603#endif 
     2604   END SUBROUTINE fld_c_bcast 
    25392605   !!====================================================================== 
    25402606END MODULE sbccpl 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90

    r8243 r9366  
    2727 
    2828   PUBLIC sbc_flx       ! routine called by step.F90 
     29   PRIVATE flx_namelist 
    2930 
    3031   INTEGER , PARAMETER ::   jpfld   = 5   ! maximum number of files to read  
     
    9394         ! set file information 
    9495         ln_lfx_sio = .FALSE. 
    95          REWIND( numnam_ref )              ! Namelist namsbc_flx in reference namelist : Files for fluxes 
    96          READ  ( numnam_ref, namsbc_flx, IOSTAT = ios, ERR = 901) 
    97 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_flx in reference namelist', lwp ) 
    98  
    99          REWIND( numnam_cfg )              ! Namelist namsbc_flx in configuration namelist : Files for fluxes 
    100          READ  ( numnam_cfg, namsbc_flx, IOSTAT = ios, ERR = 902 ) 
    101 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_flx in configuration namelist', lwp ) 
     96         IF(lwm) THEN 
     97            REWIND( numnam_ref )              ! Namelist namsbc_flx in reference namelist : Files for fluxes 
     98            READ  ( numnam_ref, namsbc_flx, IOSTAT = ios, ERR = 901) 
     99901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_flx in reference namelist', lwm ) 
     100            REWIND( numnam_cfg )              ! Namelist namsbc_flx in configuration namelist : Files for fluxes 
     101            READ  ( numnam_cfg, namsbc_flx, IOSTAT = ios, ERR = 902 ) 
     102902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_flx in configuration namelist', lwm ) 
     103         ENDIF 
    102104         IF(lwm) WRITE ( numond, namsbc_flx )  
    103105         ! 
     106         CALL flx_namelist(cn_dir, sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp) 
    104107         !                                         ! check: do we plan to use ln_dm2dc with non-daily forcing? 
    105108         IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   & 
     
    180183   END SUBROUTINE sbc_flx 
    181184 
     185   SUBROUTINE flx_namelist(cd_dir, sd_utau, sd_vtau, sd_qtot, sd_qsr, sd_emp) 
     186     !!--------------------------------------------------------------------- 
     187     !!                   ***  ROUTINE flx_namelist  *** 
     188     !!                      
     189     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     190     !! 
     191     !! ** Method  :   use lib_mpp 
     192     !!---------------------------------------------------------------------- 
     193      CHARACTER(len=100), INTENT(INOUT) :: cd_dir                                     ! Root directory for location of flx files 
     194      TYPE(FLD_N), INTENT(INOUT)        :: sd_utau, sd_vtau, sd_qtot, sd_qsr, sd_emp  ! informations about the fields to be read 
     195#if defined key_mpp_mpi 
     196      CALL mpp_bcast(cd_dir, 100) 
     197      CALL fld_n_bcast(sd_utau) 
     198      CALL fld_n_bcast(sd_vtau) 
     199      CALL fld_n_bcast(sd_qtot) 
     200      CALL fld_n_bcast(sd_qsr) 
     201      CALL fld_n_bcast(sd_emp) 
     202      CALL mpp_bcast(ln_lfx_sio) 
     203#endif 
     204   END SUBROUTINE flx_namelist 
     205 
    182206   !!====================================================================== 
    183207END MODULE sbcflx 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r8243 r9366  
    8181   PUBLIC cice_sbc_final  ! routine called by sbc_final 
    8282   PUBLIC sbc_ice_cice    ! routine called by sbc 
     83   PRIVATE cice_namelist 
    8384 
    8485   INTEGER             ::   ji_off 
     
    865866         sn_bot4 = FLD_N( 'botmeltn4_1m' ,    -1.    ,  'botmeltn4' ,  .true.    , .true.  ,  ' yearly'  , ''       , ''         ,  ''    ) 
    866867         sn_bot5 = FLD_N( 'botmeltn5_1m' ,    -1.    ,  'botmeltn5' ,  .true.    , .true.  ,  ' yearly'  , ''       , ''         ,  ''    ) 
    867  
    868          REWIND( numnam_ref )              ! Namelist namsbc_cice in reference namelist :  
    869          READ  ( numnam_ref, namsbc_cice, IOSTAT = ios, ERR = 901) 
    870 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cice in reference namelist', lwp ) 
    871  
    872          REWIND( numnam_cfg )              ! Namelist namsbc_cice in configuration namelist : Parameters of the run 
    873          READ  ( numnam_cfg, namsbc_cice, IOSTAT = ios, ERR = 902 ) 
    874 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cice in configuration namelist', lwp ) 
     868         IF(lwm) THEN 
     869            REWIND( numnam_ref )              ! Namelist namsbc_cice in reference namelist :  
     870            READ  ( numnam_ref, namsbc_cice, IOSTAT = ios, ERR = 901) 
     871901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cice in reference namelist', lwm ) 
     872            REWIND( numnam_cfg )              ! Namelist namsbc_cice in configuration namelist : Parameters of the run 
     873            READ  ( numnam_cfg, namsbc_cice, IOSTAT = ios, ERR = 902 ) 
     874902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_cice in configuration namelist', lwm ) 
     875         ENDIF 
     876 
    875877         IF(lwm) WRITE ( numond, namsbc_cice ) 
     878  
     879         CALL cice_namelist(cn_dir, sn_snow, sn_rain, sn_sblm, sn_top1, sn_top2, & 
     880         &                  sn_top3, sn_top4, sn_top5, sn_bot1, sn_bot2, sn_bot3, & 
     881         &                  sn_bot4, sn_bot5) 
    876882 
    877883         ! store namelist information in an array 
     
    11491155   END SUBROUTINE cice2nemo 
    11501156 
     1157   SUBROUTINE cice_namelist(cd_dir, sd_snow, sd_rain, sd_sblm, sd_top1, sd_top2, & 
     1158         &                  sd_top3, sd_top4, sd_top5, sd_bot1, sd_bot2,sd_bot3, & 
     1159         &                  sd_bot4, sd_bot5) 
     1160     !!--------------------------------------------------------------------- 
     1161     !!                   ***  ROUTINE cice_namelist  *** 
     1162     !!                      
     1163     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1164     !! 
     1165     !! ** Method  :   use lib_mpp 
     1166     !!---------------------------------------------------------------------- 
     1167      CHARACTER(len=100) ::  cd_dir                            !   Root directory for location of CICE forcing files 
     1168      TYPE(FLD_N) ::   sd_snow, sd_rain, sd_sblm               ! informations about the fields to be read 
     1169      TYPE(FLD_N) ::   sd_top1, sd_top2, sd_top3, sd_top4, sd_top5 
     1170      TYPE(FLD_N) ::   sd_bot1, sd_bot2, sd_bot3, sd_bot4, sd_bot5 
     1171#if defined key_mpp_mpi 
     1172      CALL mpp_bcast(cd_dir, 100) 
     1173      CALL fld_n_bcast(sd_snow) 
     1174      CALL fld_n_bcast(sd_rain) 
     1175      CALL fld_n_bcast(sd_sblm) 
     1176      CALL fld_n_bcast(sd_top1) 
     1177      CALL fld_n_bcast(sd_top2) 
     1178      CALL fld_n_bcast(sd_top3) 
     1179      CALL fld_n_bcast(sd_top4) 
     1180      CALL fld_n_bcast(sd_top5) 
     1181      CALL fld_n_bcast(sd_bot1) 
     1182      CALL fld_n_bcast(sd_bot2) 
     1183      CALL fld_n_bcast(sd_bot3) 
     1184      CALL fld_n_bcast(sd_bot4) 
     1185      CALL fld_n_bcast(sd_bot5) 
     1186#endif 
     1187   END SUBROUTINE cice_namelist 
     1188 
    11511189#else 
    11521190   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_if.F90

    r8243 r9366  
    3030   PRIVATE 
    3131   PUBLIC   sbc_ice_if      ! routine called in sbcmod 
     32   PRIVATE  if_namelist 
    3233 
    3334   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_ice   ! structure of input ice-cover (file informations, fields read) 
     
    7475         !                                      ! ====================== ! 
    7576         ! set file information 
    76          REWIND( numnam_ref )              ! Namelist namsbc_iif in reference namelist : Ice if file 
    77          READ  ( numnam_ref, namsbc_iif, IOSTAT = ios, ERR = 901) 
    78 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iif in reference namelist', lwp ) 
     77         IF(lwm) THEN 
     78            REWIND( numnam_ref )              ! Namelist namsbc_iif in reference namelist : Ice if file 
     79            READ  ( numnam_ref, namsbc_iif, IOSTAT = ios, ERR = 901) 
     80901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iif in reference namelist', lwm ) 
     81            REWIND( numnam_cfg )              ! Namelist Namelist namsbc_iif in configuration namelist : Ice if file 
     82            READ  ( numnam_cfg, namsbc_iif, IOSTAT = ios, ERR = 902 ) 
     83902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iif in configuration namelist', lwm ) 
     84         ENDIF 
    7985 
    80          REWIND( numnam_cfg )              ! Namelist Namelist namsbc_iif in configuration namelist : Ice if file 
    81          READ  ( numnam_cfg, namsbc_iif, IOSTAT = ios, ERR = 902 ) 
    82 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iif in configuration namelist', lwp ) 
    8386         IF(lwm) WRITE ( numond, namsbc_iif ) 
     87 
     88         CALL if_namelist(cn_dir, sn_ice) 
    8489 
    8590         ALLOCATE( sf_ice(1), STAT=ierror ) 
     
    147152   END SUBROUTINE sbc_ice_if 
    148153 
     154   SUBROUTINE if_namelist(cd_dir, sd_ice) 
     155     !!--------------------------------------------------------------------- 
     156     !!                   ***  ROUTINE if_namelist  *** 
     157     !!                      
     158     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     159     !! 
     160     !! ** Method  :   use lib_mpp 
     161     !!---------------------------------------------------------------------- 
     162      CHARACTER(len=100), INTENT(INOUT)  ::   cd_dir    ! Root directory for location of ice-if files 
     163      TYPE(FLD_N),        INTENT(INOUT)  ::   sd_ice    ! informations about the fields to be read 
     164 
     165#if defined key_mpp_mpi 
     166      CALL mpp_bcast(cd_dir, 100) 
     167      CALL fld_n_bcast(sd_ice) 
     168#endif 
     169   END SUBROUTINE if_namelist 
    149170   !!====================================================================== 
    150171END MODULE sbcice_if 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r8243 r9366  
    3333 
    3434   PUBLIC   sbc_isf, sbc_isf_div, sbc_isf_alloc  ! routine called in sbcmod and divcur 
     35   PRIVATE  isf_namelist 
    3536 
    3637   ! public in order to be able to output then  
     
    105106         !                                      ! ====================== ! 
    106107         ln_isf_sio = .FALSE. 
    107          REWIND( numnam_ref )              ! Namelist namsbc_rnf in reference namelist : Runoffs  
    108          READ  ( numnam_ref, namsbc_isf, IOSTAT = ios, ERR = 901) 
    109 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_isf in reference namelist', lwp ) 
    110  
    111          REWIND( numnam_cfg )              ! Namelist namsbc_rnf in configuration namelist : Runoffs 
    112          READ  ( numnam_cfg, namsbc_isf, IOSTAT = ios, ERR = 902 ) 
    113 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_isf in configuration namelist', lwp ) 
     108         IF(lwm) THEN 
     109            REWIND( numnam_ref )              ! Namelist namsbc_rnf in reference namelist : Runoffs  
     110            READ  ( numnam_ref, namsbc_isf, IOSTAT = ios, ERR = 901) 
     111901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_isf in reference namelist', lwm ) 
     112            REWIND( numnam_cfg )              ! Namelist namsbc_rnf in configuration namelist : Runoffs 
     113            READ  ( numnam_cfg, namsbc_isf, IOSTAT = ios, ERR = 902 ) 
     114902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_isf in configuration namelist', lwm ) 
     115         ENDIF 
     116 
    114117         IF(lwm) WRITE ( numond, namsbc_isf ) 
    115118 
     119         CALL isf_namelist(ln_isf_sio) 
    116120 
    117121         IF ( lwp ) WRITE(numout,*) 
     
    944948      ! 
    945949   END SUBROUTINE sbc_isf_div 
    946                          
     950 
     951   SUBROUTINE isf_namelist(ld_isf_sio) 
     952     !!--------------------------------------------------------------------- 
     953     !!                   ***  ROUTINE isf_namelist  *** 
     954     !!                      
     955     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     956     !! 
     957     !! ** Method  :   use lib_mpp 
     958     !!---------------------------------------------------------------------- 
     959     LOGICAL :: ld_isf_sio 
     960#if defined key_mpp_mpi 
     961       CALL mpp_bcast(nn_isfblk) 
     962       CALL mpp_bcast(rn_hisf_tbl) 
     963       CALL mpp_bcast(ln_divisf) 
     964       CALL mpp_bcast(ln_conserve) 
     965       CALL mpp_bcast(rn_gammat0) 
     966       CALL mpp_bcast(rn_gammas0) 
     967       CALL mpp_bcast(nn_gammablk) 
     968       CALL fld_n_bcast(sn_fwfisf) 
     969       CALL fld_n_bcast(sn_qisf) 
     970       CALL fld_n_bcast(sn_rnfisf) 
     971       CALL fld_n_bcast(sn_depmax_isf) 
     972       CALL fld_n_bcast(sn_depmin_isf) 
     973       CALL fld_n_bcast(sn_Leff_isf) 
     974       CALL mpp_bcast(ld_isf_sio) 
     975#endif 
     976   END SUBROUTINE isf_namelist 
     977 
    947978   FUNCTION tinsitu( ptem, psal, ppress ) RESULT( pti ) 
    948979      !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r8243 r9366  
    6262   PUBLIC   sbc        ! routine called by step.F90 
    6363   PUBLIC   sbc_init   ! routine called by opa.F90 
     64   PRIVATE  sbc_namelist 
    6465    
    6566   INTEGER ::   nsbc   ! type of surface boundary condition (deduced from namsbc informations) 
     
    102103         WRITE(numout,*) '~~~~~~~~ ' 
    103104      ENDIF 
    104  
    105       REWIND( numnam_ref )              ! Namelist namsbc in reference namelist : Surface boundary 
    106       READ  ( numnam_ref, namsbc, IOSTAT = ios, ERR = 901) 
    107 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in reference namelist', lwp ) 
    108  
    109       REWIND( numnam_cfg )              ! Namelist namsbc in configuration namelist : Parameters of the run 
    110       READ  ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 ) 
    111 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwp ) 
     105      IF(lwm) THEN 
     106         REWIND( numnam_ref )              ! Namelist namsbc in reference namelist : Surface boundary 
     107         READ  ( numnam_ref, namsbc, IOSTAT = ios, ERR = 901) 
     108901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in reference namelist', lwm ) 
     109         REWIND( numnam_cfg )              ! Namelist namsbc in configuration namelist : Parameters of the run 
     110         READ  ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 ) 
     111902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwm ) 
     112      ENDIF 
    112113      IF(lwm) WRITE ( numond, namsbc ) 
    113114 
     115      CALL sbc_namelist() 
    114116      !                          ! overwrite namelist parameter using CPP key information 
    115117      IF( Agrif_Root() ) THEN                ! AGRIF zoom 
     
    508510   END SUBROUTINE sbc_final 
    509511 
     512   SUBROUTINE sbc_namelist() 
     513     !!--------------------------------------------------------------------- 
     514     !!                   ***  ROUTINE sbc_namelist  *** 
     515     !!                      
     516     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     517     !! 
     518     !! ** Method  :   use lib_mpp 
     519     !!---------------------------------------------------------------------- 
     520#if defined key_mpp_mpi 
     521      CALL mpp_bcast(nn_fsbc) 
     522      CALL mpp_bcast(ln_ana) 
     523      CALL mpp_bcast(ln_flx) 
     524      CALL mpp_bcast(ln_blk_clio) 
     525      CALL mpp_bcast(ln_blk_core) 
     526      CALL mpp_bcast(ln_mixcpl) 
     527      CALL mpp_bcast(ln_blk_mfs) 
     528      CALL mpp_bcast(ln_apr_dyn) 
     529      CALL mpp_bcast(nn_ice) 
     530      CALL mpp_bcast(nn_ice_embd) 
     531      CALL mpp_bcast(ln_dm2dc) 
     532      CALL mpp_bcast(ln_rnf) 
     533      CALL mpp_bcast(ln_ssr) 
     534      CALL mpp_bcast(nn_isf) 
     535      CALL mpp_bcast(nn_fwb) 
     536      CALL mpp_bcast(ln_cdgw) 
     537      CALL mpp_bcast(ln_wave) 
     538      CALL mpp_bcast(ln_sdw) 
     539      CALL mpp_bcast(nn_lsm) 
     540      CALL mpp_bcast(nn_limflx) 
     541      CALL mpp_bcast(nn_components) 
     542      CALL mpp_bcast(ln_cpl) 
     543#endif 
     544   END SUBROUTINE sbc_namelist 
     545 
    510546   !!====================================================================== 
    511547END MODULE sbcmod 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r8243 r9366  
    3636   PUBLIC   sbc_rnf_alloc ! routine call in sbcmod module 
    3737   PUBLIC   sbc_rnf_init  ! (PUBLIC for TAM) 
     38   PRIVATE  rnf_namelist 
    3839   !                                                     !!* namsbc_rnf namelist * 
    3940   CHARACTER(len=100)         ::   cn_dir          !: Root directory for location of rnf files 
     
    283284      ! 
    284285      ln_rnf_sio = .FALSE. 
    285       REWIND( numnam_ref )              ! Namelist namsbc_rnf in reference namelist : Runoffs  
    286       READ  ( numnam_ref, namsbc_rnf, IOSTAT = ios, ERR = 901) 
    287 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_rnf in reference namelist', lwp ) 
    288  
    289       REWIND( numnam_cfg )              ! Namelist namsbc_rnf in configuration namelist : Runoffs 
    290       READ  ( numnam_cfg, namsbc_rnf, IOSTAT = ios, ERR = 902 ) 
    291 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_rnf in configuration namelist', lwp ) 
     286      IF(lwm) THEN 
     287         REWIND( numnam_ref )              ! Namelist namsbc_rnf in reference namelist : Runoffs  
     288         READ  ( numnam_ref, namsbc_rnf, IOSTAT = ios, ERR = 901) 
     289901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_rnf in reference namelist', lwm ) 
     290         REWIND( numnam_cfg )              ! Namelist namsbc_rnf in configuration namelist : Runoffs 
     291         READ  ( numnam_cfg, namsbc_rnf, IOSTAT = ios, ERR = 902 ) 
     292902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_rnf in configuration namelist', lwm ) 
     293      ENDIF 
    292294      IF(lwm) WRITE ( numond, namsbc_rnf ) 
    293295      ! 
     296      CALL rnf_namelist() 
    294297      !                                         ! Control print 
    295298      IF(lwp) THEN 
     
    541544   END SUBROUTINE rnf_mouth 
    542545 
     546   SUBROUTINE rnf_namelist() 
     547     !!--------------------------------------------------------------------- 
     548     !!                   ***  ROUTINE rnf_namelist  *** 
     549     !!                      
     550     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     551     !! 
     552     !! ** Method  :   use lib_mpp 
     553     !!---------------------------------------------------------------------- 
     554#if defined key_mpp_mpi 
     555      CALL mpp_bcast(cn_dir, 100) 
     556      CALL mpp_bcast(ln_rnf_depth) 
     557      CALL mpp_bcast(ln_rnf_tem) 
     558      CALL mpp_bcast(ln_rnf_sal) 
     559      CALL fld_n_bcast(sn_rnf) 
     560      CALL fld_n_bcast(sn_cnf) 
     561      CALL fld_n_bcast(sn_s_rnf) 
     562      CALL fld_n_bcast(sn_t_rnf) 
     563      CALL fld_n_bcast(sn_dep_rnf) 
     564      CALL mpp_bcast(ln_rnf_mouth) 
     565      CALL mpp_bcast(rn_hrnf) 
     566      CALL mpp_bcast(rn_avt_rnf) 
     567      CALL mpp_bcast(rn_rfact) 
     568      CALL mpp_bcast(ln_rnf_depth_ini) 
     569      CALL mpp_bcast(rn_dep_max) 
     570      CALL mpp_bcast(rn_rnf_max) 
     571      CALL mpp_bcast(nn_rnf_depth_file) 
     572      CALL mpp_bcast(ln_rnf_sio) 
     573#endif 
     574   END SUBROUTINE rnf_namelist 
    543575   !!====================================================================== 
    544576END MODULE sbcrnf 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90

    r8243 r9366  
    3131   PUBLIC   sbc_ssr        ! routine called in sbcmod 
    3232   PUBLIC   sbc_ssr_init   ! routine called in sbcmod 
     33   PRIVATE  ssr_namelist 
    3334 
    3435   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   erp   !: evaporation damping   [kg/m2/s] 
     
    173174  
    174175      ln_ssr_sio = .FALSE. 
    175       REWIND( numnam_ref )              ! Namelist namsbc_ssr in reference namelist :  
    176       READ  ( numnam_ref, namsbc_ssr, IOSTAT = ios, ERR = 901) 
    177 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ssr in reference namelist', lwp ) 
    178  
    179       REWIND( numnam_cfg )              ! Namelist namsbc_ssr in configuration namelist : 
    180       READ  ( numnam_cfg, namsbc_ssr, IOSTAT = ios, ERR = 902 ) 
    181 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ssr in configuration namelist', lwp ) 
     176      IF(lwm) THEN 
     177         REWIND( numnam_ref )              ! Namelist namsbc_ssr in reference namelist :  
     178         READ  ( numnam_ref, namsbc_ssr, IOSTAT = ios, ERR = 901) 
     179901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ssr in reference namelist', lwm ) 
     180         REWIND( numnam_cfg )              ! Namelist namsbc_ssr in configuration namelist : 
     181         READ  ( numnam_cfg, namsbc_ssr, IOSTAT = ios, ERR = 902 ) 
     182902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ssr in configuration namelist', lwm ) 
     183      ENDIF 
    182184      IF(lwm) WRITE ( numond, namsbc_ssr ) 
     185 
     186      CALL ssr_namelist(cn_dir, sn_sst, sn_sss) 
    183187 
    184188      IF(lwp) THEN                 !* control print 
     
    233237      ! 
    234238   END SUBROUTINE sbc_ssr_init 
    235        
     239 
     240   SUBROUTINE ssr_namelist(cd_dir, sd_sst, sd_sss) 
     241     !!--------------------------------------------------------------------- 
     242     !!                   ***  ROUTINE ssr_namelist  *** 
     243     !!                      
     244     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     245     !! 
     246     !! ** Method  :   use lib_mpp 
     247     !!---------------------------------------------------------------------- 
     248      CHARACTER(len=100) ::  cd_dir          ! Root directory for location of ssr files 
     249      TYPE(FLD_N) ::   sd_sst, sd_sss        ! informations about the fields to be read 
     250#if defined key_mpp_mpi 
     251      CALL mpp_bcast(cd_dir, 100) 
     252      CALL mpp_bcast(nn_sstr) 
     253      CALL mpp_bcast(nn_sssr) 
     254      CALL mpp_bcast(rn_dqdt) 
     255      CALL mpp_bcast(rn_deds) 
     256      CALL fld_n_bcast(sd_sst) 
     257      CALL fld_n_bcast(sd_sss) 
     258      CALL mpp_bcast(ln_sssr_bnd) 
     259      CALL mpp_bcast(rn_sssr_bnd) 
     260      CALL mpp_bcast(ln_ssr_sio) 
     261#endif 
     262   END SUBROUTINE ssr_namelist       
    236263   !!====================================================================== 
    237264END MODULE sbcssr 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r8243 r9366  
    2424 
    2525   PUBLIC   sbc_wave    ! routine called in sbc_blk_core or sbc_blk_mfs 
     26   PRIVATE  wave_namelist 
    2627    
    2728   INTEGER , PARAMETER ::   jpfld  = 3           ! maximum number of files to read for srokes drift 
     
    8384      IF( kt == nit000 ) THEN                   ! First call kt=nit000 ! 
    8485         !                                      ! -------------------- ! 
    85          REWIND( numnam_ref )              ! Namelist namsbc_wave in reference namelist : File for drag coeff. from wave model 
    86          READ  ( numnam_ref, namsbc_wave, IOSTAT = ios, ERR = 901) 
    87 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_wave in reference namelist', lwp ) 
    88  
    89          REWIND( numnam_cfg )              ! Namelist namsbc_wave in configuration namelist : File for drag coeff. from wave model 
    90          READ  ( numnam_cfg, namsbc_wave, IOSTAT = ios, ERR = 902 ) 
    91 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_wave in configuration namelist', lwp ) 
     86         IF(lwm) THEN 
     87            REWIND( numnam_ref )              ! Namelist namsbc_wave in reference namelist : File for drag coeff. from wave model 
     88            READ  ( numnam_ref, namsbc_wave, IOSTAT = ios, ERR = 901) 
     89901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_wave in reference namelist', lwm ) 
     90            REWIND( numnam_cfg )              ! Namelist namsbc_wave in configuration namelist : File for drag coeff. from wave model 
     91            READ  ( numnam_cfg, namsbc_wave, IOSTAT = ios, ERR = 902 ) 
     92902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_wave in configuration namelist', lwm ) 
     93         ENDIF 
     94 
    9295         IF(lwm) WRITE ( numond, namsbc_wave ) 
    9396         ! 
     97         call wave_namelist(sn_cdg, cn_dir, sn_usd, sn_vsd, sn_wn) 
    9498 
    9599         IF ( ln_cdgw ) THEN 
     
    192196      lspr = .false. 
    193197   END SUBROUTINE sbc_wave 
    194        
     198 
     199   SUBROUTINE wave_namelist(sd_cdg, cd_dir, sd_usd, sd_vsd, sd_wn) 
     200     !!--------------------------------------------------------------------- 
     201     !!                   ***  ROUTINE wave_namelist  *** 
     202     !!                      
     203     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     204     !! 
     205     !! ** Method  :   use lib_mpp 
     206     !!---------------------------------------------------------------------- 
     207      CHARACTER(len=100)     ::  cd_dir                          ! Root directory for location of drag coefficient files 
     208      TYPE(FLD_N)            ::  sd_cdg, sd_usd, sd_vsd, sd_wn   ! informations about the fields to be read 
     209#if defined key_mpp_mpi 
     210      CALL fld_n_bcast(sd_cdg) 
     211      CALL mpp_bcast(cd_dir, 100) 
     212      CALL fld_n_bcast(sd_usd) 
     213      CALL fld_n_bcast(sd_vsd) 
     214      CALL fld_n_bcast(sd_wn) 
     215#endif 
     216   END SUBROUTINE wave_namelist       
    195217   !!====================================================================== 
    196218END MODULE sbcwave 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90

    r6486 r9366  
    1919 
    2020   IMPLICIT NONE 
     21   PRIVATE init_namelist 
    2122   PUBLIC 
    2223 
     
    6566       ! 
    6667       ! Read Namelist nam_tide 
    67        REWIND( numnam_ref )              ! Namelist nam_tide in reference namelist : Tides 
    68        READ  ( numnam_ref, nam_tide, IOSTAT = ios, ERR = 901) 
    69 901    IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tide in reference namelist', lwp ) 
     68       IF(lwm) THEN 
     69          REWIND( numnam_ref )              ! Namelist nam_tide in reference namelist : Tides 
     70          READ  ( numnam_ref, nam_tide, IOSTAT = ios, ERR = 901) 
     71901       IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tide in reference namelist', lwm ) 
     72          REWIND( numnam_cfg )              ! Namelist nam_tide in configuration namelist : Tides 
     73          READ  ( numnam_cfg, nam_tide, IOSTAT = ios, ERR = 902 ) 
     74902       IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tide in configuration namelist', lwm ) 
     75       ENDIF 
    7076 
    71        REWIND( numnam_cfg )              ! Namelist nam_tide in configuration namelist : Tides 
    72        READ  ( numnam_cfg, nam_tide, IOSTAT = ios, ERR = 902 ) 
    73 902    IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tide in configuration namelist', lwp ) 
    7477       IF(lwm) WRITE ( numond, nam_tide ) 
    7578       ! 
     79       CALL init_namelist(clname) 
     80 
    7681       nb_harmo=0 
    7782       DO jk = 1, jpmax_harmo 
     
    115120      ! 
    116121   END SUBROUTINE tide_init 
    117       
     122 
     123   SUBROUTINE init_namelist(cdname) 
     124     !!--------------------------------------------------------------------- 
     125     !!                   ***  ROUTINE init_namelist  *** 
     126     !!                      
     127     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     128     !! 
     129     !! ** Method  :   use lib_mpp 
     130     !!---------------------------------------------------------------------- 
     131     CHARACTER(LEN=4), DIMENSION(jpmax_harmo), INTENT(INOUT) :: cdname 
     132     INTEGER :: il 
     133 
     134#if defined key_mpp_mpi 
     135      CALL mpp_bcast(ln_tide_pot) 
     136      CALL mpp_bcast(ln_tide_ramp) 
     137      CALL mpp_bcast(rdttideramp) 
     138      DO il = 1, jpmax_harmo 
     139         CALL mpp_bcast(cdname(il), 4) 
     140      ENDDO 
     141#endif 
     142   END SUBROUTINE init_namelist      
     143 
    118144   !!====================================================================== 
    119145END MODULE tideini 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90

    r6498 r9366  
    2929 
    3030   IMPLICIT NONE 
     31   PRIVATE solver_namelist 
    3132 
    3233   !!---------------------------------------------------------------------- 
     
    6263         CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
    6364      ENDIF 
     65      IF(lwm) THEN 
     66         REWIND( numnam_ref )              ! Namelist namsol in reference namelist : Elliptic solver / free surface 
     67         READ  ( numnam_ref, namsol, IOSTAT = ios, ERR = 901) 
     68901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsol in reference namelist', lwm ) 
     69         REWIND( numnam_cfg )              ! Namelist namsol in configuration namelist : Elliptic solver / free surface 
     70         READ  ( numnam_cfg, namsol, IOSTAT = ios, ERR = 902 ) 
     71902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsol in configuration namelist', lwm ) 
     72      ENDIF 
    6473 
    65       REWIND( numnam_ref )              ! Namelist namsol in reference namelist : Elliptic solver / free surface 
    66       READ  ( numnam_ref, namsol, IOSTAT = ios, ERR = 901) 
    67 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsol in reference namelist', lwp ) 
     74      IF(lwm) WRITE ( numond, namsol ) 
    6875 
    69       REWIND( numnam_cfg )              ! Namelist namsol in configuration namelist : Elliptic solver / free surface 
    70       READ  ( numnam_cfg, namsol, IOSTAT = ios, ERR = 902 ) 
    71 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsol in configuration namelist', lwp ) 
    72       IF(lwm) WRITE ( numond, namsol ) 
     76      call solver_namelist() 
    7377 
    7478      IF(lwp) THEN                  !* Control print 
     
    128132      ! 
    129133   END SUBROUTINE solver_init 
     134 
     135   SUBROUTINE solver_namelist() 
     136     !!--------------------------------------------------------------------- 
     137     !!                   ***  ROUTINE solver_namelist  *** 
     138     !!                      
     139     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     140     !! 
     141     !! ** Method  :   use lib_mpp 
     142     !!---------------------------------------------------------------------- 
     143#if defined key_mpp_mpi 
     144      CALL mpp_bcast(nn_solv) 
     145      CALL mpp_bcast(nn_sol_arp) 
     146      CALL mpp_bcast(nn_nmin) 
     147      CALL mpp_bcast(nn_nmax) 
     148      CALL mpp_bcast(nn_nmod) 
     149      CALL mpp_bcast(rn_eps) 
     150      CALL mpp_bcast(rn_resmax) 
     151      CALL mpp_bcast(rn_sor) 
     152#endif 
     153   END SUBROUTINE solver_namelist 
    130154#endif 
    131155 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/STO/stopar.F90

    r6487 r9366  
    3030   PUBLIC   sto_par         ! called by step.F90 
    3131   PUBLIC   sto_rst_write   ! called by step.F90 
     32   PRIVATE  par_namelist 
    3233 
    3334   LOGICAL           :: ln_rststo = .FALSE.  ! restart stochastic parameters from restart file 
     
    261262 
    262263      ! Read namsto namelist : stochastic parameterization 
    263       REWIND( numnam_ref )              ! Namelist namdyn_adv in reference namelist : Momentum advection scheme 
    264       READ  ( numnam_ref, namsto, IOSTAT = ios, ERR = 901) 
    265 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsto in reference namelist', lwp ) 
    266  
    267       REWIND( numnam_cfg )              ! Namelist namdyn_adv in configuration namelist : Momentum advection scheme 
    268       READ  ( numnam_cfg, namsto, IOSTAT = ios, ERR = 902 ) 
    269 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsto in configuration namelist', lwp ) 
     264      IF(lwm) THEN 
     265         REWIND( numnam_ref )              ! Namelist namdyn_adv in reference namelist : Momentum advection scheme 
     266         READ  ( numnam_ref, namsto, IOSTAT = ios, ERR = 901) 
     267901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsto in reference namelist', lwm ) 
     268         REWIND( numnam_cfg )              ! Namelist namdyn_adv in configuration namelist : Momentum advection scheme 
     269         READ  ( numnam_cfg, namsto, IOSTAT = ios, ERR = 902 ) 
     270902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsto in configuration namelist', lwm ) 
     271      ENDIF 
    270272      IF(lwm) WRITE ( numond, namsto ) 
    271273 
    272274      !IF(ln_ens_rst_in) cn_storst_in = cn_mem//cn_storst_in 
     275 
     276      call par_namelist() 
    273277 
    274278      ! Parameter print 
     
    899903   END FUNCTION sto_par_flt_fac 
    900904 
     905   SUBROUTINE par_namelist() 
     906     !!--------------------------------------------------------------------- 
     907     !!                   ***  ROUTINE par_namelist  *** 
     908     !!                      
     909     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     910     !! 
     911     !! ** Method  :   use lib_mpp 
     912     !!---------------------------------------------------------------------- 
     913#if defined key_mpp_mpi 
     914      CALL mpp_bcast(ln_sto_ldf) 
     915      CALL mpp_bcast(rn_ldf_std) 
     916      CALL mpp_bcast(rn_ldf_tcor) 
     917      CALL mpp_bcast(ln_sto_hpg) 
     918      CALL mpp_bcast(rn_hpg_std) 
     919      CALL mpp_bcast(rn_hpg_tcor) 
     920      CALL mpp_bcast(ln_sto_pstar) 
     921      CALL mpp_bcast(rn_pstar_std) 
     922      CALL mpp_bcast(rn_pstar_tcor) 
     923      CALL mpp_bcast(nn_pstar_flt) 
     924      CALL mpp_bcast(nn_pstar_ord) 
     925      CALL mpp_bcast(ln_sto_trd) 
     926      CALL mpp_bcast(rn_trd_std) 
     927      CALL mpp_bcast(rn_trd_tcor) 
     928      CALL mpp_bcast(ln_sto_eos) 
     929      CALL mpp_bcast(nn_sto_eos) 
     930      CALL mpp_bcast(rn_eos_stdxy) 
     931      CALL mpp_bcast(rn_eos_stdz) 
     932      CALL mpp_bcast(rn_eos_tcor) 
     933      CALL mpp_bcast(nn_eos_ord) 
     934      CALL mpp_bcast(nn_eos_flt) 
     935      CALL mpp_bcast(rn_eos_lim) 
     936      CALL mpp_bcast(ln_sto_trc) 
     937      CALL mpp_bcast(nn_sto_trc) 
     938      CALL mpp_bcast(rn_trc_stdxy) 
     939      CALL mpp_bcast(rn_trc_stdz) 
     940      CALL mpp_bcast(rn_trc_tcor) 
     941      CALL mpp_bcast(nn_trc_ord) 
     942      CALL mpp_bcast(nn_trc_flt) 
     943      CALL mpp_bcast(rn_trc_lim) 
     944      CALL mpp_bcast(ln_rststo) 
     945      CALL mpp_bcast(ln_rstseed) 
     946      CALL mpp_bcast(cn_storst_in, 32) 
     947      CALL mpp_bcast(cn_storst_out, 32) 
     948#endif 
     949   END SUBROUTINE par_namelist 
    901950 
    902951END MODULE stopar 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90

    r6793 r9366  
    5353   IMPLICIT NONE 
    5454   PRIVATE 
     55   PRIVATE bn2_namelist 
    5556 
    5657   !                   !! * Interface 
     
    12321233      !!---------------------------------------------------------------------- 
    12331234      ! 
    1234       REWIND( numnam_ref )              ! Namelist nameos in reference namelist : equation of state 
    1235       READ  ( numnam_ref, nameos, IOSTAT = ios, ERR = 901 ) 
    1236 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nameos in reference namelist', lwp ) 
    1237       ! 
    1238       REWIND( numnam_cfg )              ! Namelist nameos in configuration namelist : equation of state 
    1239       READ  ( numnam_cfg, nameos, IOSTAT = ios, ERR = 902 ) 
    1240 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nameos in configuration namelist', lwp ) 
     1235      IF(lwm) THEN 
     1236         REWIND( numnam_ref )              ! Namelist nameos in reference namelist : equation of state 
     1237         READ  ( numnam_ref, nameos, IOSTAT = ios, ERR = 901 ) 
     1238901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nameos in reference namelist', lwm ) 
     1239         REWIND( numnam_cfg )              ! Namelist nameos in configuration namelist : equation of state 
     1240         READ  ( numnam_cfg, nameos, IOSTAT = ios, ERR = 902 ) 
     1241902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nameos in configuration namelist', lwm ) 
     1242      ENDIF 
    12411243      IF(lwm) WRITE( numond, nameos ) 
    12421244      ! 
     
    12441246      rcp         = 3991.86795711963_wp      !: heat capacity     [J/K] 
    12451247      ! 
     1248      call bn2_namelist() 
     1249 
    12461250      IF(lwp) THEN                ! Control print 
    12471251         WRITE(numout,*) 
     
    16751679   END SUBROUTINE eos_init 
    16761680 
     1681   SUBROUTINE bn2_namelist() 
     1682     !!--------------------------------------------------------------------- 
     1683     !!                   ***  ROUTINE bn2_namelist  *** 
     1684     !!                      
     1685     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1686     !! 
     1687     !! ** Method  :   use lib_mpp 
     1688     !!---------------------------------------------------------------------- 
     1689#if defined key_mpp_mpi 
     1690      CALL mpp_bcast(nn_eos) 
     1691      CALL mpp_bcast(ln_useCT) 
     1692      CALL mpp_bcast(rn_a0) 
     1693      CALL mpp_bcast(rn_b0) 
     1694      CALL mpp_bcast(rn_lambda1) 
     1695      CALL mpp_bcast(rn_mu1) 
     1696      CALL mpp_bcast(rn_lambda2) 
     1697      CALL mpp_bcast(rn_mu2) 
     1698      CALL mpp_bcast(rn_nu) 
     1699#endif 
     1700   END SUBROUTINE bn2_namelist 
    16771701   !!====================================================================== 
    16781702END MODULE eosbn2 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90

    r8243 r9366  
    4444   PUBLIC   tra_adv        ! routine called by step module 
    4545   PUBLIC   tra_adv_init   ! routine called by opa module 
     46   PRIVATE  adv_namelist 
    4647 
    4748   !                              !!* Namelist namtra_adv * 
     
    195196         &                 ln_traadv_msc_ups, ln_traadv_tvd_zts 
    196197      !!---------------------------------------------------------------------- 
    197  
    198       REWIND( numnam_ref )              ! Namelist namtra_adv in reference namelist : Tracer advection scheme 
    199       READ  ( numnam_ref, namtra_adv, IOSTAT = ios, ERR = 901) 
    200 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in reference namelist', lwp ) 
    201  
    202       REWIND( numnam_cfg )              ! Namelist namtra_adv in configuration namelist : Tracer advection scheme 
    203       READ  ( numnam_cfg, namtra_adv, IOSTAT = ios, ERR = 902 ) 
    204 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in configuration namelist', lwp ) 
     198      IF(lwm) THEN 
     199         REWIND( numnam_ref )              ! Namelist namtra_adv in reference namelist : Tracer advection scheme 
     200         READ  ( numnam_ref, namtra_adv, IOSTAT = ios, ERR = 901) 
     201901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in reference namelist', lwm ) 
     202         REWIND( numnam_cfg )              ! Namelist namtra_adv in configuration namelist : Tracer advection scheme 
     203         READ  ( numnam_cfg, namtra_adv, IOSTAT = ios, ERR = 902 ) 
     204902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in configuration namelist', lwm ) 
     205      ENDIF 
    205206      IF(lwm) WRITE ( numond, namtra_adv ) 
     207 
     208      call adv_namelist() 
    206209 
    207210      IF(lwp) THEN                    ! Namelist print 
     
    262265   END SUBROUTINE tra_adv_init 
    263266 
     267   SUBROUTINE adv_namelist() 
     268     !!--------------------------------------------------------------------- 
     269     !!                   ***  ROUTINE adv_namelist  *** 
     270     !!                      
     271     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     272     !! 
     273     !! ** Method  :   use lib_mpp 
     274     !!---------------------------------------------------------------------- 
     275#if defined key_mpp_mpi 
     276      CALL mpp_bcast(ln_traadv_cen2) 
     277      CALL mpp_bcast(ln_traadv_tvd) 
     278      CALL mpp_bcast(ln_traadv_muscl) 
     279      CALL mpp_bcast(ln_traadv_muscl2) 
     280      CALL mpp_bcast(ln_traadv_ubs) 
     281      CALL mpp_bcast(ln_traadv_qck) 
     282      CALL mpp_bcast(ln_traadv_msc_ups) 
     283      CALL mpp_bcast(ln_traadv_tvd_zts) 
     284#endif 
     285   END SUBROUTINE adv_namelist 
     286 
    264287  !!====================================================================== 
    265288END MODULE traadv 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90

    r6486 r9366  
    2727   PUBLIC   tra_adv_mle        ! routine called in traadv.F90 
    2828   PUBLIC   tra_adv_mle_init   ! routine called in traadv.F90 
     29   PRIVATE  mle_namelist 
    2930 
    3031   !                                               !!* namelist namtra_adv_mle * 
     
    282283      !!---------------------------------------------------------------------- 
    283284 
    284  
    285       REWIND( numnam_ref )              ! Namelist namtra_adv_mle in reference namelist : Tracer advection scheme 
    286       READ  ( numnam_ref, namtra_adv_mle, IOSTAT = ios, ERR = 901) 
    287 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv_mle in reference namelist', lwp ) 
    288  
    289       REWIND( numnam_cfg )              ! Namelist namtra_adv_mle in configuration namelist : Tracer advection scheme 
    290       READ  ( numnam_cfg, namtra_adv_mle, IOSTAT = ios, ERR = 902 ) 
    291 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv_mle in configuration namelist', lwp ) 
     285      IF(lwm) THEN 
     286         REWIND( numnam_ref )              ! Namelist namtra_adv_mle in reference namelist : Tracer advection scheme 
     287         READ  ( numnam_ref, namtra_adv_mle, IOSTAT = ios, ERR = 901) 
     288901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv_mle in reference namelist', lwm ) 
     289         REWIND( numnam_cfg )              ! Namelist namtra_adv_mle in configuration namelist : Tracer advection scheme 
     290         READ  ( numnam_cfg, namtra_adv_mle, IOSTAT = ios, ERR = 902 ) 
     291902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv_mle in configuration namelist', lwm ) 
     292      ENDIF 
    292293      IF(lwm) WRITE ( numond, namtra_adv_mle ) 
     294 
     295      call mle_namelist() 
    293296 
    294297      IF(lwp) THEN                     ! Namelist print 
     
    357360   END SUBROUTINE tra_adv_mle_init 
    358361 
     362   SUBROUTINE mle_namelist() 
     363     !!--------------------------------------------------------------------- 
     364     !!                   ***  ROUTINE mle_namelist  *** 
     365     !!                      
     366     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     367     !! 
     368     !! ** Method  :   use lib_mpp 
     369     !!---------------------------------------------------------------------- 
     370#if defined key_mpp_mpi 
     371      CALL mpp_bcast(ln_mle) 
     372      CALL mpp_bcast(nn_mle) 
     373      CALL mpp_bcast(rn_ce) 
     374      CALL mpp_bcast(rn_lf) 
     375      CALL mpp_bcast(rn_time) 
     376      CALL mpp_bcast(rn_lat) 
     377      CALL mpp_bcast(nn_mld_uv) 
     378      CALL mpp_bcast(nn_conv) 
     379      CALL mpp_bcast(rn_rho_c_mle) 
     380#endif 
     381   END SUBROUTINE mle_namelist 
    359382   !!============================================================================== 
    360383END MODULE traadv_mle 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90

    r6486 r9366  
    3434   PUBLIC tra_bbc          ! routine called by step.F90 
    3535   PUBLIC tra_bbc_init     ! routine called by opa.F90 
     36   PRIVATE bbc_namelist 
    3637 
    3738   !                                 !!* Namelist nambbc: bottom boundary condition * 
     
    139140      NAMELIST/nambbc/ln_trabbc, nn_geoflx, rn_geoflx_cst, sn_qgh, cn_dir  
    140141      !!---------------------------------------------------------------------- 
    141  
    142       REWIND( numnam_ref )              ! Namelist nambbc in reference namelist : Bottom momentum boundary condition 
    143       READ  ( numnam_ref, nambbc, IOSTAT = ios, ERR = 901) 
    144 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbc in reference namelist', lwp ) 
    145  
    146       REWIND( numnam_cfg )              ! Namelist nambbc in configuration namelist : Bottom momentum boundary condition 
    147       READ  ( numnam_cfg, nambbc, IOSTAT = ios, ERR = 902 ) 
    148 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbc in configuration namelist', lwp ) 
     142      IF(lwm) THEN 
     143         REWIND( numnam_ref )              ! Namelist nambbc in reference namelist : Bottom momentum boundary condition 
     144         READ  ( numnam_ref, nambbc, IOSTAT = ios, ERR = 901) 
     145901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbc in reference namelist', lwm ) 
     146         REWIND( numnam_cfg )              ! Namelist nambbc in configuration namelist : Bottom momentum boundary condition 
     147         READ  ( numnam_cfg, nambbc, IOSTAT = ios, ERR = 902 ) 
     148902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbc in configuration namelist', lwm ) 
     149      ENDIF 
    149150      IF(lwm) WRITE ( numond, nambbc ) 
     151 
     152      call bbc_namelist(sn_qgh, cn_dir) 
    150153 
    151154      IF(lwp) THEN                     ! Control print 
     
    199202   END SUBROUTINE tra_bbc_init 
    200203 
     204   SUBROUTINE bbc_namelist(sd_qgh, cd_dir) 
     205     !!--------------------------------------------------------------------- 
     206     !!                   ***  ROUTINE bbc_namelist  *** 
     207     !!                      
     208     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     209     !! 
     210     !! ** Method  :   use lib_mpp 
     211     !!---------------------------------------------------------------------- 
     212      TYPE(FLD_N)        ::   sd_qgh    ! informations about the geotherm. field to be read 
     213      CHARACTER(len=256) ::   cd_dir    ! Root directory for location of ssr files 
     214 
     215#if defined key_mpp_mpi 
     216      CALL mpp_bcast(ln_trabbc) 
     217      CALL mpp_bcast(nn_geoflx) 
     218      CALL mpp_bcast(rn_geoflx_cst) 
     219      CALL fld_n_bcast(sd_qgh) 
     220      CALL mpp_bcast(cd_dir, 256) 
     221#endif 
     222   END SUBROUTINE bbc_namelist 
     223 
    201224   !!====================================================================== 
    202225END MODULE trabbc 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r6486 r9366  
    4848   PUBLIC   tra_bbl_adv   !  -          -          -              - 
    4949   PUBLIC   bbl           !  routine called by trcbbl.F90 and dtadyn.F90 
     50   PRIVATE  bbl_namelist 
    5051 
    5152   LOGICAL, PUBLIC, PARAMETER ::   lk_trabbl = .TRUE.    !: bottom boundary layer flag 
     
    508509      CALL wrk_alloc( jpi, jpj, zmbk ) 
    509510      ! 
    510  
    511       REWIND( numnam_ref )              ! Namelist nambbl in reference namelist : Bottom boundary layer scheme 
    512       READ  ( numnam_ref, nambbl, IOSTAT = ios, ERR = 901) 
    513 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in reference namelist', lwp ) 
    514  
    515       REWIND( numnam_cfg )              ! Namelist nambbl in configuration namelist : Bottom boundary layer scheme 
    516       READ  ( numnam_cfg, nambbl, IOSTAT = ios, ERR = 902 ) 
    517 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in configuration namelist', lwp ) 
     511      IF(lwm) THEN 
     512         REWIND( numnam_ref )              ! Namelist nambbl in reference namelist : Bottom boundary layer scheme 
     513         READ  ( numnam_ref, nambbl, IOSTAT = ios, ERR = 901) 
     514901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in reference namelist', lwm ) 
     515         REWIND( numnam_cfg )              ! Namelist nambbl in configuration namelist : Bottom boundary layer scheme 
     516         READ  ( numnam_cfg, nambbl, IOSTAT = ios, ERR = 902 ) 
     517902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in configuration namelist', lwm ) 
     518      ENDIF 
     519 
    518520      IF(lwm) WRITE ( numond, nambbl ) 
    519521      ! 
     522      CALL bbl_namelist() 
     523 
    520524      l_bbl = .TRUE.                 !* flag to compute bbl coef and transport 
    521525      ! 
     
    599603   END SUBROUTINE tra_bbl_init 
    600604 
     605   SUBROUTINE bbl_namelist() 
     606     !!--------------------------------------------------------------------- 
     607     !!                   ***  ROUTINE bbl_namelist  *** 
     608     !!                      
     609     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     610     !! 
     611     !! ** Method  :   use lib_mpp 
     612     !!---------------------------------------------------------------------- 
     613#if defined key_mpp_mpi 
     614      CALL mpp_bcast(nn_bbl_ldf) 
     615      CALL mpp_bcast(nn_bbl_adv) 
     616      CALL mpp_bcast(rn_ahtbbl) 
     617      CALL mpp_bcast(rn_gambbl) 
     618#endif 
     619   END SUBROUTINE bbl_namelist 
     620 
    601621#else 
    602622   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90

    r6486 r9366  
    4343   PUBLIC   tra_dmp      ! routine called by step.F90 
    4444   PUBLIC   tra_dmp_init ! routine called by opa.F90 
     45   PRIVATE  dmp_namelist 
    4546 
    4647   !                               !!* Namelist namtra_dmp : T & S newtonian damping * 
     
    196197      !!---------------------------------------------------------------------- 
    197198      ! 
    198       REWIND( numnam_ref )   ! Namelist namtra_dmp in reference namelist : T & S relaxation 
    199       READ  ( numnam_ref, namtra_dmp, IOSTAT = ios, ERR = 901) 
    200 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in reference namelist', lwp ) 
    201       ! 
    202       REWIND( numnam_cfg )   ! Namelist namtra_dmp in configuration namelist : T & S relaxation 
    203       READ  ( numnam_cfg, namtra_dmp, IOSTAT = ios, ERR = 902 ) 
    204 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in configuration namelist', lwp ) 
     199      IF(lwm) THEN 
     200         REWIND( numnam_ref )   ! Namelist namtra_dmp in reference namelist : T & S relaxation 
     201         READ  ( numnam_ref, namtra_dmp, IOSTAT = ios, ERR = 901) 
     202901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in reference namelist', lwm ) 
     203         REWIND( numnam_cfg )   ! Namelist namtra_dmp in configuration namelist : T & S relaxation 
     204         READ  ( numnam_cfg, namtra_dmp, IOSTAT = ios, ERR = 902 ) 
     205902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in configuration namelist', lwm ) 
     206      ENDIF 
     207 
    205208      IF(lwm) WRITE ( numond, namtra_dmp ) 
     209 
     210      call dmp_namelist() 
    206211 
    207212      IF(lwp) THEN                 !Namelist print 
     
    247252   END SUBROUTINE tra_dmp_init 
    248253 
     254   SUBROUTINE dmp_namelist() 
     255     !!--------------------------------------------------------------------- 
     256     !!                   ***  ROUTINE dmp_namelist  *** 
     257     !!                      
     258     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     259     !! 
     260     !! ** Method  :   use lib_mpp 
     261     !!---------------------------------------------------------------------- 
     262#if defined key_mpp_mpi 
     263      CALL mpp_bcast(ln_tradmp) 
     264      CALL mpp_bcast(nn_zdmp) 
     265      CALL mpp_bcast(cn_resto, 200) 
     266#endif 
     267   END SUBROUTINE dmp_namelist 
     268 
    249269END MODULE tradmp 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r8243 r9366  
    4040   PUBLIC   tra_qsr       ! routine called by step.F90 (ln_traqsr=T) 
    4141   PUBLIC   tra_qsr_init  ! routine called by nemogcm.F90 
     42   PRIVATE  qsr_namelist 
    4243 
    4344   !                                 !!* Namelist namtra_qsr: penetrative solar radiation 
     
    434435      ! 
    435436      ln_qsr_ice = .FALSE. 
    436       REWIND( numnam_ref )              ! Namelist namtra_qsr in reference namelist : Ratio and length of penetration 
    437       READ  ( numnam_ref, namtra_qsr, IOSTAT = ios, ERR = 901) 
    438 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_qsr in reference namelist', lwp ) 
    439  
    440       REWIND( numnam_cfg )              !  Namelist namtra_qsr in configuration namelist : Ratio and length of penetration 
    441       READ  ( numnam_cfg, namtra_qsr, IOSTAT = ios, ERR = 902 ) 
    442 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_qsr in configuration namelist', lwp ) 
     437      IF(lwm) THEN 
     438         REWIND( numnam_ref )              ! Namelist namtra_qsr in reference namelist : Ratio and length of penetration 
     439         READ  ( numnam_ref, namtra_qsr, IOSTAT = ios, ERR = 901) 
     440901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_qsr in reference namelist', lwm ) 
     441         REWIND( numnam_cfg )              !  Namelist namtra_qsr in configuration namelist : Ratio and length of penetration 
     442         READ  ( numnam_cfg, namtra_qsr, IOSTAT = ios, ERR = 902 ) 
     443902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_qsr in configuration namelist', lwm ) 
     444      ENDIF 
     445 
    443446      IF(lwm) WRITE ( numond, namtra_qsr ) 
    444447      ! 
     448      CALL qsr_namelist(sn_chl, cn_dir) 
     449 
    445450      IF(lwp) THEN                ! control print 
    446451         WRITE(numout,*) 
     
    624629   END SUBROUTINE tra_qsr_init 
    625630 
     631   SUBROUTINE qsr_namelist(sd_chl, cd_dir) 
     632     !!--------------------------------------------------------------------- 
     633     !!                   ***  ROUTINE qsr_namelist  *** 
     634     !!                      
     635     !! ** Purpose :   Broadkast namelist variables read by procesor lwm 
     636     !! 
     637     !! ** Method  :   use lib_mpp 
     638     !!---------------------------------------------------------------------- 
     639      CHARACTER(len=100) ::   cd_dir   ! Root directory for location of ssr files 
     640      TYPE(FLD_N)        ::   sd_chl   ! informations about the chlorofyl field to be read 
     641#if defined key_mpp_mpi 
     642      CALL fld_n_bcast(sd_chl) 
     643      CALL mpp_bcast(cd_dir, 100) 
     644      CALL mpp_bcast(ln_traqsr) 
     645      CALL mpp_bcast(ln_qsr_rgb) 
     646      CALL mpp_bcast(ln_qsr_2bd) 
     647      CALL mpp_bcast(ln_qsr_bio) 
     648      CALL mpp_bcast(ln_qsr_ice) 
     649      CALL mpp_bcast(nn_chldta) 
     650      CALL mpp_bcast(rn_abs) 
     651      CALL mpp_bcast(rn_si0) 
     652      CALL mpp_bcast(rn_si1) 
     653      CALL mpp_bcast(ln_qsr_sio) 
     654#endif 
     655   END SUBROUTINE qsr_namelist 
     656 
    626657   !!====================================================================== 
    627658END MODULE traqsr 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdini.F90

    r7923 r9366  
    2424 
    2525   PUBLIC   trd_init   ! called by nemogcm.F90 module 
     26   PRIVATE  ini_namelist 
    2627 
    2728   !! * Substitutions 
     
    4748      !!---------------------------------------------------------------------- 
    4849      ! 
    49       REWIND( numnam_ref )              ! Namelist namtrd in reference namelist : trends diagnostic 
    50       READ  ( numnam_ref, namtrd, IOSTAT = ios, ERR = 901 ) 
    51 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd in reference namelist', lwp ) 
    52       ! 
    53       REWIND( numnam_cfg )              ! Namelist namtrd in configuration namelist : trends diagnostic 
    54       READ  ( numnam_cfg, namtrd, IOSTAT = ios, ERR = 902 ) 
    55 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd in configuration namelist', lwp ) 
     50      IF(lwm) THEN 
     51         REWIND( numnam_ref )              ! Namelist namtrd in reference namelist : trends diagnostic 
     52         READ  ( numnam_ref, namtrd, IOSTAT = ios, ERR = 901 ) 
     53901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd in reference namelist', lwm ) 
     54         REWIND( numnam_cfg )              ! Namelist namtrd in configuration namelist : trends diagnostic 
     55         READ  ( numnam_cfg, namtrd, IOSTAT = ios, ERR = 902 ) 
     56902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd in configuration namelist', lwm ) 
     57      ENDIF 
     58 
    5659      IF(lwm) WRITE( numond, namtrd ) 
    5760      ! 
     61      CALL ini_namelist() 
     62 
    5863      IF(lwp) THEN                  ! control print 
    5964         WRITE(numout,*) 
     
    104109   END SUBROUTINE trd_init 
    105110 
     111   SUBROUTINE ini_namelist() 
     112     !!--------------------------------------------------------------------- 
     113     !!                   ***  ROUTINE ini_namelist  *** 
     114     !!                      
     115     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     116     !! 
     117     !! ** Method  :   use lib_mpp 
     118     !!---------------------------------------------------------------------- 
     119#if defined key_mpp_mpi 
     120      CALL mpp_bcast(ln_dyn_trd) 
     121      CALL mpp_bcast(ln_KE_trd) 
     122      CALL mpp_bcast(ln_vor_trd) 
     123      CALL mpp_bcast(ln_dyn_mxl) 
     124      CALL mpp_bcast(ln_tra_trd) 
     125      CALL mpp_bcast(ln_PE_trd) 
     126      CALL mpp_bcast(ln_glo_trd) 
     127      CALL mpp_bcast(ln_tra_mxl) 
     128      CALL mpp_bcast(nn_trd) 
     129#endif 
     130   END SUBROUTINE ini_namelist 
     131 
    106132   !!====================================================================== 
    107133END MODULE trdini 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90

    r6487 r9366  
    4646   PUBLIC   trd_mxl_init   ! routine called by opa.F90 
    4747   PUBLIC   trd_mxl_zint   ! routine called by tracers routines 
     48   PRIVATE  mxl_namelist 
    4849 
    4950   INTEGER ::   nkstp       ! current time step  
     
    757758      !!---------------------------------------------------------------------- 
    758759      ! 
    759       REWIND( numnam_ref )              ! Namelist namtrd_mxl in reference namelist : mixed layer trends diagnostic 
    760       READ  ( numnam_ref, namtrd_mxl, IOSTAT = ios, ERR = 901 ) 
    761 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in reference namelist', lwp ) 
    762  
    763       REWIND( numnam_cfg )              ! Namelist namtrd_mxl in configuration namelist : mixed layer trends diagnostic 
    764       READ  ( numnam_cfg, namtrd_mxl, IOSTAT = ios, ERR = 902 ) 
    765 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in configuration namelist', lwp ) 
     760      IF(lwm) THEN 
     761         REWIND( numnam_ref )              ! Namelist namtrd_mxl in reference namelist : mixed layer trends diagnostic 
     762         READ  ( numnam_ref, namtrd_mxl, IOSTAT = ios, ERR = 901 ) 
     763901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in reference namelist', lwm ) 
     764         REWIND( numnam_cfg )              ! Namelist namtrd_mxl in configuration namelist : mixed layer trends diagnostic 
     765         READ  ( numnam_cfg, namtrd_mxl, IOSTAT = ios, ERR = 902 ) 
     766902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in configuration namelist', lwm ) 
     767      ENDIF 
     768 
    766769      IF(lwm) WRITE( numond, namtrd_mxl ) 
    767770      ! 
     771      call mxl_namelist() 
     772 
    768773      IF(lwp) THEN                      ! control print 
    769774         WRITE(numout,*) 
     
    896901   END SUBROUTINE trd_mxl_init 
    897902 
     903   SUBROUTINE mxl_namelist() 
     904     !!--------------------------------------------------------------------- 
     905     !!                   ***  ROUTINE mxl_namelist  *** 
     906     !!                      
     907     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     908     !! 
     909     !! ** Method  :   use lib_mpp 
     910     !!---------------------------------------------------------------------- 
     911#if defined key_mpp_mpi 
     912      CALL mpp_bcast(nn_trd) 
     913      CALL mpp_bcast(cn_trdrst_in, 32) 
     914      CALL mpp_bcast(ln_trdmxl_restart) 
     915      CALL mpp_bcast(nn_ctls) 
     916      CALL mpp_bcast(cn_trdrst_out, 32) 
     917      CALL mpp_bcast(ln_trdmxl_instant) 
     918      CALL mpp_bcast(rn_ucf) 
     919      CALL mpp_bcast(rn_rho_c) 
     920#endif 
     921   END SUBROUTINE mxl_namelist 
    898922   !!====================================================================== 
    899923END MODULE trdmxl 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r6486 r9366  
    3232   PUBLIC   zdf_bfr         ! called by step.F90 
    3333   PUBLIC   zdf_bfr_init    ! called by nemogcm.F90 
     34   PRIVATE  bfr_namelist 
    3435 
    3536   !                                 !!* Namelist nambfr: bottom friction namelist * 
     
    250251      !                              !* Parameter control and print 
    251252      ! 
    252       REWIND( numnam_ref )              ! Namelist nambfr in reference namelist : Bottom momentum boundary condition 
    253       READ  ( numnam_ref, nambfr, IOSTAT = ios, ERR = 901) 
    254 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambfr in reference namelist', lwp ) 
    255  
    256       REWIND( numnam_cfg )              ! Namelist nambfr in configuration namelist : Bottom momentum boundary condition 
    257       READ  ( numnam_cfg, nambfr, IOSTAT = ios, ERR = 902 ) 
    258 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambfr in configuration namelist', lwp ) 
     253      IF(lwm) THEN 
     254         REWIND( numnam_ref )              ! Namelist nambfr in reference namelist : Bottom momentum boundary condition 
     255         READ  ( numnam_ref, nambfr, IOSTAT = ios, ERR = 901) 
     256901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambfr in reference namelist', lwm ) 
     257         REWIND( numnam_cfg )              ! Namelist nambfr in configuration namelist : Bottom momentum boundary condition 
     258         READ  ( numnam_cfg, nambfr, IOSTAT = ios, ERR = 902 ) 
     259902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambfr in configuration namelist', lwm ) 
     260      ENDIF 
    259261      IF(lwm) WRITE ( numond, nambfr ) 
     262 
     263      CALL bfr_namelist()                  ! Broadcast namelist 
     264 
    260265      IF(lwp) WRITE(numout,*) 
    261266      IF(lwp) WRITE(numout,*) 'zdf_bfr_init : momentum bottom friction' 
     
    490495   END SUBROUTINE zdf_bfr_init 
    491496 
     497   SUBROUTINE bfr_namelist() 
     498     !!--------------------------------------------------------------------- 
     499     !!                   ***  ROUTINE zdf_namelist  *** 
     500     !!                      
     501     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     502     !! 
     503     !! ** Method  :   use lib_mpp 
     504     !!---------------------------------------------------------------------- 
     505#if defined key_mpp_mpi 
     506      CALL mpp_bcast(nn_bfr) 
     507      CALL mpp_bcast(rn_bfri1) 
     508      CALL mpp_bcast(rn_bfri2) 
     509      CALL mpp_bcast(rn_bfri2_max) 
     510      CALL mpp_bcast(rn_bfeb2) 
     511      CALL mpp_bcast(rn_bfrz0) 
     512      CALL mpp_bcast(ln_bfr2d) 
     513      CALL mpp_bcast(rn_tfri1) 
     514      CALL mpp_bcast(rn_tfri2) 
     515      CALL mpp_bcast(rn_tfri2_max) 
     516      CALL mpp_bcast(rn_tfeb2) 
     517      CALL mpp_bcast(rn_tfrz0) 
     518      CALL mpp_bcast(ln_tfr2d) 
     519      CALL mpp_bcast(rn_bfrien) 
     520      CALL mpp_bcast(rn_tfrien) 
     521      CALL mpp_bcast(ln_bfrimp) 
     522      CALL mpp_bcast(ln_loglayer) 
     523#endif 
     524   END SUBROUTINE bfr_namelist 
    492525   !!====================================================================== 
    493526END MODULE zdfbfr 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90

    r6498 r9366  
    3434   PUBLIC   zdf_ddm_init  ! called by opa.F90 
    3535   PUBLIC   zdf_ddm_alloc ! called by nemogcm.F90 
     36   PRIVATE  ddm_namelist 
    3637 
    3738   LOGICAL , PUBLIC, PARAMETER ::   lk_zdfddm = .TRUE.  !: double diffusive mixing flag 
     
    239240      !!---------------------------------------------------------------------- 
    240241      ! 
    241       REWIND( numnam_ref )              ! Namelist namzdf_ddm in reference namelist : Double diffusion mixing scheme 
    242       READ  ( numnam_ref, namzdf_ddm, IOSTAT = ios, ERR = 901) 
    243 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ddm in reference namelist', lwp ) 
    244  
    245       REWIND( numnam_cfg )              ! Namelist namzdf_ddm in configuration namelist : Double diffusion mixing scheme 
    246       READ  ( numnam_cfg, namzdf_ddm, IOSTAT = ios, ERR = 902 ) 
    247 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ddm in configuration namelist', lwp ) 
     242      IF(lwm) THEN 
     243         REWIND( numnam_ref )              ! Namelist namzdf_ddm in reference namelist : Double diffusion mixing scheme 
     244         READ  ( numnam_ref, namzdf_ddm, IOSTAT = ios, ERR = 901) 
     245901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ddm in reference namelist', lwm ) 
     246         REWIND( numnam_cfg )              ! Namelist namzdf_ddm in configuration namelist : Double diffusion mixing scheme 
     247         READ  ( numnam_cfg, namzdf_ddm, IOSTAT = ios, ERR = 902 ) 
     248902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ddm in configuration namelist', lwm ) 
     249      ENDIF 
     250 
    248251      IF(lwm) WRITE ( numond, namzdf_ddm ) 
    249252      ! 
     253 
     254      CALL ddm_namelist() 
     255 
    250256      IF(lwp) THEN                    ! Parameter print 
    251257         WRITE(numout,*) 
     
    264270   END SUBROUTINE zdf_ddm_init 
    265271 
     272   SUBROUTINE ddm_namelist() 
     273     !!--------------------------------------------------------------------- 
     274     !!                   ***  ROUTINE ddm_namelist  *** 
     275     !!                      
     276     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     277     !! 
     278     !! ** Method  :   use lib_mpp 
     279     !!---------------------------------------------------------------------- 
     280#if defined key_mpp_mpi 
     281      CALL mpp_bcast(rn_avts) 
     282      CALL mpp_bcast(rn_hsbfr) 
     283#endif 
     284   END SUBROUTINE ddm_namelist 
    266285#else 
    267286   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r7924 r9366  
    4040   PUBLIC   zdf_gls_init   ! routine called in opa module 
    4141   PUBLIC   gls_rst        ! routine called in step module 
     42   PRIVATE  gls_namelist 
    4243 
    4344   LOGICAL , PUBLIC, PARAMETER ::   lk_zdfgls = .TRUE.   !: TKE vertical mixing flag 
     
    875876      IF( nn_timing == 1 )  CALL timing_start('zdf_gls_init') 
    876877      ! 
    877       REWIND( numnam_ref )              ! Namelist namzdf_gls in reference namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
    878       READ  ( numnam_ref, namzdf_gls, IOSTAT = ios, ERR = 901) 
    879 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwp ) 
    880  
    881       REWIND( numnam_cfg )              ! Namelist namzdf_gls in configuration namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
    882       READ  ( numnam_cfg, namzdf_gls, IOSTAT = ios, ERR = 902 ) 
    883 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp ) 
     878      IF(lwm) THEN 
     879         REWIND( numnam_ref )              ! Namelist namzdf_gls in reference namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
     880         READ  ( numnam_ref, namzdf_gls, IOSTAT = ios, ERR = 901) 
     881901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwm ) 
     882 
     883         REWIND( numnam_cfg )              ! Namelist namzdf_gls in configuration namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
     884         READ  ( numnam_cfg, namzdf_gls, IOSTAT = ios, ERR = 902 ) 
     885902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwm ) 
     886      ENDIF 
     887 
    884888      IF(lwm) WRITE ( numond, namzdf_gls ) 
     889 
     890      CALL gls_namelist() 
    885891 
    886892      IF(lwp) THEN                     !* Control print 
     
    12211227   END SUBROUTINE gls_rst 
    12221228 
     1229   SUBROUTINE gls_namelist() 
     1230     !!--------------------------------------------------------------------- 
     1231     !!                   ***  ROUTINE gls_namelist  *** 
     1232     !!                      
     1233     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1234     !! 
     1235     !! ** Method  :   use lib_mpp 
     1236     !!---------------------------------------------------------------------- 
     1237#if defined key_mpp_mpi 
     1238      CALL mpp_bcast(rn_emin) 
     1239      CALL mpp_bcast(rn_epsmin) 
     1240      CALL mpp_bcast(ln_length_lim) 
     1241      CALL mpp_bcast(rn_clim_galp) 
     1242      CALL mpp_bcast(ln_sigpsi) 
     1243      CALL mpp_bcast(rn_hsro) 
     1244      CALL mpp_bcast(rn_crban) 
     1245      CALL mpp_bcast(rn_charn) 
     1246      CALL mpp_bcast(rn_frac_hs) 
     1247      CALL mpp_bcast(nn_bc_surf) 
     1248      CALL mpp_bcast(nn_bc_bot) 
     1249      CALL mpp_bcast(nn_z0_met) 
     1250      CALL mpp_bcast(nn_stab_func) 
     1251      CALL mpp_bcast(nn_clos) 
     1252#endif 
     1253   END SUBROUTINE gls_namelist 
    12231254#else 
    12241255   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfini.F90

    r7924 r9366  
    3535 
    3636   PUBLIC   zdf_init   ! routine called by opa.F90 
     37   PRIVATE  zdf_namelist 
    3738    
    3839   !!---------------------------------------------------------------------- 
     
    5758         &              ln_zdfevd, nn_evdm, rn_avevd, ln_zdfnpc, nn_npc, nn_npcp 
    5859      !!---------------------------------------------------------------------- 
    59  
    60       REWIND( numnam_ref )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
    61       READ  ( numnam_ref, namzdf, IOSTAT = ios, ERR = 901) 
    62 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf in reference namelist', lwp ) 
    63  
    64       REWIND( numnam_cfg )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
    65       READ  ( numnam_cfg, namzdf, IOSTAT = ios, ERR = 902 ) 
    66 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp ) 
     60      IF(lwm) THEN 
     61         REWIND( numnam_ref )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
     62         READ  ( numnam_ref, namzdf, IOSTAT = ios, ERR = 901) 
     63901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf in reference namelist', lwm ) 
     64         REWIND( numnam_cfg )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
     65         READ  ( numnam_cfg, namzdf, IOSTAT = ios, ERR = 902 ) 
     66902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwm ) 
     67      ENDIF 
     68 
    6769      IF(lwm) WRITE ( numond, namzdf ) 
     70 
     71      CALL zdf_namelist()  
    6872 
    6973      IF(lwp) THEN               !* Parameter print 
     
    189193   END SUBROUTINE zdf_init 
    190194 
     195   SUBROUTINE zdf_namelist() 
     196     !!--------------------------------------------------------------------- 
     197     !!                   ***  ROUTINE zdf_namelist  *** 
     198     !!                      
     199     !! ** Purpose :   Broadcast namelist variables read by procesor lwp 
     200     !! 
     201     !! ** Method  :   use lib_mpp 
     202     !!---------------------------------------------------------------------- 
     203#if defined key_mpp_mpi 
     204      CALL mpp_bcast(rn_avm0) 
     205      CALL mpp_bcast(rn_avt0) 
     206      CALL mpp_bcast(nn_avb) 
     207      CALL mpp_bcast(nn_havtb) 
     208      CALL mpp_bcast(ln_zdfexp) 
     209      CALL mpp_bcast(nn_zdfexp) 
     210      CALL mpp_bcast(ln_zdfevd) 
     211      CALL mpp_bcast(nn_evdm) 
     212      CALL mpp_bcast(rn_avevd) 
     213      CALL mpp_bcast(ln_zdfnpc) 
     214      CALL mpp_bcast(nn_npc) 
     215      CALL mpp_bcast(nn_npcp) 
     216#endif 
     217   END SUBROUTINE zdf_namelist 
     218 
    191219   !!====================================================================== 
    192220END MODULE zdfini 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90

    r6486 r9366  
    4545   PUBLIC   tra_kpp       ! routine called by step.F90 
    4646   PUBLIC   trc_kpp       ! routine called by trcstp.F90 
     47   PRIVATE  kpp_namelist 
    4748 
    4849   LOGICAL , PUBLIC, PARAMETER ::   lk_zdfkpp = .TRUE.    !: KPP vertical mixing flag 
     
    13621363      IF( nn_timing == 1 )  CALL timing_start('zdf_kpp_init') 
    13631364      ! 
    1364       REWIND( numnam_ref )              ! Namelist namzdf_kpp in reference namelist : Vertical eddy diffivity and viscosity using kpp turbulent closure scheme 
    1365       READ  ( numnam_ref, namzdf_kpp, IOSTAT = ios, ERR = 901) 
    1366 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_kpp in reference namelist', lwp ) 
    1367  
    1368       REWIND( numnam_cfg )              ! Namelist namzdf_kpp in configuration namelist : Vertical eddy diffivity and viscosity using kpp turbulent closure scheme 
    1369       READ  ( numnam_cfg, namzdf_kpp, IOSTAT = ios, ERR = 902 ) 
    1370 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_kpp in configuration namelist', lwp ) 
     1365      IF(lwm) THEN 
     1366         REWIND( numnam_ref )              ! Namelist namzdf_kpp in reference namelist : Vertical eddy diffivity and viscosity using kpp turbulent closure scheme 
     1367         READ  ( numnam_ref, namzdf_kpp, IOSTAT = ios, ERR = 901) 
     1368901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_kpp in reference namelist', lwm ) 
     1369         REWIND( numnam_cfg )              ! Namelist namzdf_kpp in configuration namelist : Vertical eddy diffivity and viscosity using kpp turbulent closure scheme 
     1370         READ  ( numnam_cfg, namzdf_kpp, IOSTAT = ios, ERR = 902 ) 
     1371902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_kpp in configuration namelist', lwm ) 
     1372      ENDIF 
    13711373      IF(lwm) WRITE ( numond, namzdf_kpp ) 
     1374 
     1375      CALL kpp_namelist() 
    13721376 
    13731377      IF(lwp) THEN                    ! Control print 
     
    15691573   END SUBROUTINE zdf_kpp_init 
    15701574 
     1575   SUBROUTINE kpp_namelist() 
     1576     !!--------------------------------------------------------------------- 
     1577     !!                   ***  ROUTINE kpp_namelist  *** 
     1578     !!                      
     1579     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1580     !! 
     1581     !! ** Method  :   use lib_mpp 
     1582     !!---------------------------------------------------------------------- 
     1583#if defined key_mpp_mpi 
     1584      CALL mpp_bcast(ln_kpprimix) 
     1585      CALL mpp_bcast(rn_difmiw) 
     1586      CALL mpp_bcast(rn_difsiw) 
     1587      CALL mpp_bcast(rn_riinfty) 
     1588      CALL mpp_bcast(rn_difri) 
     1589      CALL mpp_bcast(rn_bvsqcon) 
     1590      CALL mpp_bcast(rn_difcon) 
     1591      CALL mpp_bcast(nn_ave) 
     1592#endif 
     1593   END SUBROUTINE kpp_namelist 
    15711594#else 
    15721595   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90

    r7923 r9366  
    2929   PUBLIC   zdf_mxl       ! called by step.F90 
    3030   PUBLIC   zdf_mxl_alloc ! Used in zdf_tke_init 
     31   PRIVATE  mxl_namelist 
     32   PRIVATE  mxl_bcast 
    3133 
    3234   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   nmln    !: number of level in the mixed layer (used by TOP) 
     
    463465       
    464466      IF( kt == nit000 ) THEN 
    465          REWIND( numnam_ref )              ! Namelist namzdf_mldzint in reference namelist  
    466          READ  ( numnam_ref, namzdf_mldzint, IOSTAT = ios, ERR = 901) 
    467 901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_mldzint in reference namelist', lwp ) 
    468  
    469          REWIND( numnam_cfg )              ! Namelist namzdf_mldzint in configuration namelist  
    470          READ  ( numnam_cfg, namzdf_mldzint, IOSTAT = ios, ERR = 902 ) 
    471 902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_mldzint in configuration namelist', lwp ) 
     467         IF(lwm) THEN 
     468            REWIND( numnam_ref )              ! Namelist namzdf_mldzint in reference namelist  
     469            READ  ( numnam_ref, namzdf_mldzint, IOSTAT = ios, ERR = 901) 
     470901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_mldzint in reference namelist', lwm ) 
     471            REWIND( numnam_cfg )              ! Namelist namzdf_mldzint in configuration namelist  
     472            READ  ( numnam_cfg, namzdf_mldzint, IOSTAT = ios, ERR = 902 ) 
     473902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_mldzint in configuration namelist', lwm ) 
     474         ENDIF 
     475 
    472476         IF(lwm) WRITE ( numond, namzdf_mldzint ) 
     477          
     478         CALL mxl_namelist(nn_mld_diag, sn_mld1, sn_mld2, sn_mld3, sn_mld4, sn_mld5)                   !broadcast namelist 
    473479 
    474480         IF( nn_mld_diag > 5 )   CALL ctl_stop( 'STOP', 'zdf_mxl_ini: Specify no more than 5 MLD definitions' ) 
     
    514520   END SUBROUTINE zdf_mxl_zint 
    515521 
     522   SUBROUTINE mxl_namelist(nd_mld_diag, sd_mld1, sd_mld2, sd_mld3, sd_mld4, sd_mld5) 
     523     !!--------------------------------------------------------------------- 
     524     !!                   ***  ROUTINE mxl_namelist  *** 
     525     !!                      
     526     !! ** Purpose :   Broadcast namelist variables read by procesor lwp 
     527     !! 
     528     !! ** Method  :   use lib_mpp 
     529     !!---------------------------------------------------------------------- 
     530      TYPE(MXL_ZINT) :: sd_mld1, sd_mld2, sd_mld3, sd_mld4, sd_mld5 
     531      INTEGER :: nd_mld_diag 
     532#if defined key_mpp_mpi 
     533     call mpp_bcast(nd_mld_diag) 
     534     call mxl_bcast(sd_mld1) 
     535     call mxl_bcast(sd_mld2) 
     536     call mxl_bcast(sd_mld3) 
     537     call mxl_bcast(sd_mld4) 
     538     call mxl_bcast(sd_mld5) 
     539#endif 
     540   END SUBROUTINE mxl_namelist 
     541 
     542  SUBROUTINE mxl_bcast(svar) 
     543     !!--------------------------------------------------------------------- 
     544     !!                   ***  ROUTINE mxl_namelist  *** 
     545     !!                      
     546     !! ** Purpose :   Broadcast namelist type read by procesor lwp 
     547     !! 
     548     !! ** Method  :   use lib_mpp 
     549     !!---------------------------------------------------------------------- 
     550     TYPE(MXL_ZINT), INTENT (INOUT) :: svar 
     551#if defined key_mpp_mpi 
     552     call mpp_bcast(svar%mld_type) 
     553     call mpp_bcast(svar%zref)   
     554     call mpp_bcast(svar%dT_crit) 
     555     call mpp_bcast(svar%iso_frac) 
     556#endif 
     557   END SUBROUTINE mxl_bcast 
     558 
     559 
    516560   !!====================================================================== 
    517561END MODULE zdfmxl 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90

    r6486 r9366  
    3838   PUBLIC   zdf_ric         ! called by step.F90 
    3939   PUBLIC   zdf_ric_init    ! called by opa.F90 
     40   PRIVATE  ric_namelist 
    4041 
    4142   LOGICAL, PUBLIC, PARAMETER ::   lk_zdfric = .TRUE.   !: Richardson vertical mixing flag 
     
    253254      !!---------------------------------------------------------------------- 
    254255      ! 
    255       REWIND( numnam_ref )              ! Namelist namzdf_ric in reference namelist : Vertical diffusion Kz depends on Richardson number 
    256       READ  ( numnam_ref, namzdf_ric, IOSTAT = ios, ERR = 901) 
    257 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ric in reference namelist', lwp ) 
    258  
    259       REWIND( numnam_cfg )              ! Namelist namzdf_ric in configuration namelist : Vertical diffusion Kz depends on Richardson number 
    260       READ  ( numnam_cfg, namzdf_ric, IOSTAT = ios, ERR = 902 ) 
    261 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp ) 
     256      IF(lwm) THEN 
     257         REWIND( numnam_ref )              ! Namelist namzdf_ric in reference namelist : Vertical diffusion Kz depends on Richardson number 
     258         READ  ( numnam_ref, namzdf_ric, IOSTAT = ios, ERR = 901) 
     259901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ric in reference namelist', lwm ) 
     260         REWIND( numnam_cfg )              ! Namelist namzdf_ric in configuration namelist : Vertical diffusion Kz depends on Richardson number 
     261         READ  ( numnam_cfg, namzdf_ric, IOSTAT = ios, ERR = 902 ) 
     262902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwm ) 
     263      ENDIF 
     264 
    262265      IF(lwm) WRITE ( numond, namzdf_ric ) 
    263266      ! 
     267      CALL ric_namelist() 
     268 
    264269      IF(lwp) THEN                   ! Control print 
    265270         WRITE(numout,*) 
     
    300305   END SUBROUTINE zdf_ric_init 
    301306 
     307   SUBROUTINE ric_namelist() 
     308     !!--------------------------------------------------------------------- 
     309     !!                   ***  ROUTINE ric_namelist  *** 
     310     !!                      
     311     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     312     !! 
     313     !! ** Method  :   use lib_mpp 
     314     !!---------------------------------------------------------------------- 
     315#if defined key_mpp_mpi 
     316     CALL mpp_bcast(rn_avmri) 
     317     CALL mpp_bcast(rn_alp) 
     318     CALL mpp_bcast(nn_ric) 
     319     CALL mpp_bcast(rn_ekmfc) 
     320     CALL mpp_bcast(rn_mldmin) 
     321     CALL mpp_bcast(rn_mldmax) 
     322     CALL mpp_bcast(rn_wtmix) 
     323     CALL mpp_bcast(rn_wvmix) 
     324     CALL mpp_bcast(ln_mldw) 
     325#endif 
     326    END SUBROUTINE ric_namelist 
    302327#else 
    303328   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r8243 r9366  
    6868   PUBLIC   zdf_tke_init   ! routine called in opa module 
    6969   PUBLIC   tke_rst        ! routine called in step module 
     70   PRIVATE  tke_namelist 
    7071 
    7172   LOGICAL , PUBLIC, PARAMETER ::   lk_zdftke = .TRUE.  !: TKE vertical mixing flag 
     
    780781         &                 nn_etau , nn_htau  , rn_efr , rn_c    
    781782      !!---------------------------------------------------------------------- 
    782  
    783       REWIND( numnam_ref )              ! Namelist namzdf_tke in reference namelist : Turbulent Kinetic Energy 
    784       READ  ( numnam_ref, namzdf_tke, IOSTAT = ios, ERR = 901) 
    785 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tke in reference namelist', lwp ) 
    786  
    787       REWIND( numnam_cfg )              ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 
    788       READ  ( numnam_cfg, namzdf_tke, IOSTAT = ios, ERR = 902 ) 
    789 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp ) 
     783      IF(lwm) THEN 
     784         REWIND( numnam_ref )              ! Namelist namzdf_tke in reference namelist : Turbulent Kinetic Energy 
     785         READ  ( numnam_ref, namzdf_tke, IOSTAT = ios, ERR = 901) 
     786901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tke in reference namelist', lwm ) 
     787         REWIND( numnam_cfg )              ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 
     788         READ  ( numnam_cfg, namzdf_tke, IOSTAT = ios, ERR = 902 ) 
     789902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwm ) 
     790      ENDIF 
     791 
    790792      IF(lwm) WRITE ( numond, namzdf_tke ) 
     793      ! Broadcast namelist 
     794      CALL tke_namelist() 
    791795      ! 
    792796      ri_cri   = 2._wp    / ( 2._wp + rn_ediss / rn_ediff )   ! resulting critical Richardson number 
     
    985989   END SUBROUTINE tke_rst 
    986990 
     991   SUBROUTINE tke_namelist() 
     992     !!--------------------------------------------------------------------- 
     993     !!                   ***  ROUTINE tke_namelist  *** 
     994     !!                      
     995     !! ** Purpose :   Broadcast namelist variables read by procesor lwp 
     996     !! 
     997     !! ** Method  :   use lib_mpp 
     998     !!---------------------------------------------------------------------- 
     999#if defined key_mpp_mpi 
     1000      call mpp_bcast(rn_ediff) 
     1001      call mpp_bcast(rn_ediss) 
     1002      call mpp_bcast(rn_ebb) 
     1003      call mpp_bcast(rn_emin) 
     1004      call mpp_bcast(rn_emin0) 
     1005      call mpp_bcast(rn_bshear) 
     1006      call mpp_bcast(nn_mxl) 
     1007      call mpp_bcast(ln_mxl0) 
     1008      call mpp_bcast(rn_mxl0) 
     1009      call mpp_bcast(nn_pdl) 
     1010      call mpp_bcast(ln_lc) 
     1011      call mpp_bcast(rn_lc) 
     1012      call mpp_bcast(nn_etau) 
     1013      call mpp_bcast(nn_htau) 
     1014      call mpp_bcast(rn_efr) 
     1015      call mpp_bcast(rn_c) 
     1016#endif 
     1017   END SUBROUTINE tke_namelist 
    9871018#else 
    9881019   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90

    r7923 r9366  
    3535   PUBLIC   zdf_tmx_init    ! called in opa module  
    3636   PUBLIC   zdf_tmx_alloc   ! called in nemogcm module 
     37   PRIVATE  tmx_namelist 
    3738 
    3839   LOGICAL, PUBLIC, PARAMETER ::   lk_zdftmx = .TRUE.    !: tidal mixing flag 
     
    380381      CALL wrk_alloc( jpi,jpj, zem2, zek1, zkz, zfact, zhdep ) 
    381382      CALL wrk_alloc( jpi,jpj,jpk, zpc ) 
     383      IF(lwm) THEN  
     384         REWIND( numnam_ref )              ! Namelist namzdf_tmx in reference namelist : Tidal Mixing 
     385         READ  ( numnam_ref, namzdf_tmx, IOSTAT = ios, ERR = 901) 
     386901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in reference namelist', lwm ) 
     387         REWIND( numnam_cfg )              ! Namelist namzdf_tmx in configuration namelist : Tidal Mixing 
     388         READ  ( numnam_cfg, namzdf_tmx, IOSTAT = ios, ERR = 902 ) 
     389902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in configuration namelist', lwm ) 
     390      ENDIF 
     391 
     392      IF(lwm) WRITE ( numond, namzdf_tmx ) 
    382393       
    383       REWIND( numnam_ref )              ! Namelist namzdf_tmx in reference namelist : Tidal Mixing 
    384       READ  ( numnam_ref, namzdf_tmx, IOSTAT = ios, ERR = 901) 
    385 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in reference namelist', lwp ) 
    386  
    387       REWIND( numnam_cfg )              ! Namelist namzdf_tmx in configuration namelist : Tidal Mixing 
    388       READ  ( numnam_cfg, namzdf_tmx, IOSTAT = ios, ERR = 902 ) 
    389 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in configuration namelist', lwp ) 
    390       IF(lwm) WRITE ( numond, namzdf_tmx ) 
     394      call tmx_namelist() 
    391395 
    392396      IF(lwp) THEN                   ! Control print 
     
    560564      ! 
    561565   END SUBROUTINE zdf_tmx_init 
     566 
     567   SUBROUTINE tmx_namelist() 
     568     !!--------------------------------------------------------------------- 
     569     !!                   ***  ROUTINE tmx_namelist  *** 
     570     !!                      
     571     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     572     !! 
     573     !! ** Method  :   use lib_mpp 
     574     !!---------------------------------------------------------------------- 
     575#if defined key_mpp_mpi 
     576      CALL mpp_bcast(rn_htmx) 
     577      CALL mpp_bcast(rn_n2min) 
     578      CALL mpp_bcast(rn_tfe) 
     579      CALL mpp_bcast(rn_me) 
     580      CALL mpp_bcast(ln_tmx_itf) 
     581      CALL mpp_bcast(rn_tfe_itf) 
     582#endif 
     583 
     584   END SUBROUTINE tmx_namelist 
    562585 
    563586#elif defined key_zdftmx_new 
     
    966989      IF( nn_timing == 1 )  CALL timing_start('zdf_tmx_init') 
    967990      ! 
    968       REWIND( numnam_ref )              ! Namelist namzdf_tmx in reference namelist : Wave-driven mixing 
    969       READ  ( numnam_ref, namzdf_tmx_new, IOSTAT = ios, ERR = 901) 
    970 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in reference namelist', lwp ) 
    971       ! 
    972       REWIND( numnam_cfg )              ! Namelist namzdf_tmx in configuration namelist : Wave-driven mixing 
    973       READ  ( numnam_cfg, namzdf_tmx_new, IOSTAT = ios, ERR = 902 ) 
    974 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in configuration namelist', lwp ) 
     991      IF(lwm) THEN 
     992         REWIND( numnam_ref )              ! Namelist namzdf_tmx in reference namelist : Wave-driven mixing 
     993         READ  ( numnam_ref, namzdf_tmx_new, IOSTAT = ios, ERR = 901) 
     994901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in reference namelist', lwp ) 
     995      ! 
     996         REWIND( numnam_cfg )              ! Namelist namzdf_tmx in configuration namelist : Wave-driven mixing 
     997         READ  ( numnam_cfg, namzdf_tmx_new, IOSTAT = ios, ERR = 902 ) 
     998902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in configuration namelist', lwp ) 
     999      ENDIF 
    9751000      IF(lwm) WRITE ( numond, namzdf_tmx_new ) 
     1001 
     1002      CALL tmx_namelist() 
    9761003      ! 
    9771004      IF(lwp) THEN                  ! Control print 
     
    10481075   END SUBROUTINE zdf_tmx_init 
    10491076 
     1077   SUBROUTINE tmx_namelist() 
     1078     !!--------------------------------------------------------------------- 
     1079     !!                   ***  ROUTINE tmx_namelist  *** 
     1080     !!                      
     1081     !! ** Purpose :   Broadcast namelist variables read by procesor lwm 
     1082     !! 
     1083     !! ** Method  :   use lib_mpp 
     1084     !!---------------------------------------------------------------------- 
     1085#if defined key_mpp_mpi 
     1086      CALL mpp_bcast(nn_zpyc) 
     1087      CALL mpp_bcast(ln_mevar) 
     1088      CALL mpp_bcast(ln_tsdiff) 
     1089#endif 
     1090   END SUBROUTINE tmx_namelist 
     1091 
    10501092#else 
    10511093   !!---------------------------------------------------------------------- 
  • branches/UKMO/test_moci_test_suite_namelist_read/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r8283 r9366  
    304304      ENDIF 
    305305#endif 
     306 
    306307      narea = narea + 1                                     ! mynode return the rank of proc (0 --> jpnij -1 ) 
    307308 
    308309      lwm = (narea == 1)                                    ! control of output namelists 
    309310      lwp = (narea == 1) .OR. ln_ctl                        ! control of all listing output print 
     311!close namelist on processors other then lwm 
     312      IF( numnam_ref      /= -1 .AND. narea /= 1 )   CLOSE( numnam_ref      )   ! oce reference namelist 
     313      IF( numnam_cfg      /= -1 .AND. narea /= 1 )   CLOSE( numnam_cfg      )   ! oce configuration namelist 
    310314 
    311315      IF(lwm) THEN 
Note: See TracChangeset for help on using the changeset viewer.