Ignore:
Timestamp:
2013-11-04T12:51:55+01:00 (8 years ago)
Author:
cetlod
Message:

merge in dev_LOCEAN_2013, the 1st development branch dev_r3853_CNRS9_Confsetting, from its starting point ( r3853 ) on the trunk: see ticket #1169

Location:
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90

    r3294 r4147  
    4242      !! ** input   :   Namelist namelist_c14b 
    4343      !!---------------------------------------------------------------------- 
    44       INTEGER ::   numnatb 
     44      INTEGER ::  numnatb_ref = -1   ! Logical unit for reference c14b namelist 
     45      INTEGER ::  numnatb_cfg = -1   ! Logical unit for configuration c14b namelist 
     46      INTEGER ::  numonb      = -1   ! Logical unit for output namelist 
     47      INTEGER :: ios                 ! Local integer output status for namelist read 
    4548 
    4649      ! definition of additional diagnostic as a structure 
     
    5255      NAMELIST/namc14dia/  c14dia2d, c14dia3d     ! additional diagnostics 
    5356      !!------------------------------------------------------------------- 
     57      !                             ! Open namelist file 
     58      CALL ctl_opn( numnatb_ref, 'namelist_c14b_ref'  ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     59      CALL ctl_opn( numnatb_cfg, 'namelist_c14b_cfg'  ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )    
     60      CALL ctl_opn( numonb     , 'output.namelist.c14', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )      
     61      REWIND( numnatb_ref )              ! Namelist namc14date in reference namelist : c14b parameters 
     62      READ  ( numnatb_ref, namc14date, IOSTAT = ios, ERR = 901) 
     63901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14date in reference namelist', lwp ) 
    5464 
    55       ndate_beg_b = 650101            ! default namelist value 
    56       nyear_res_b = 1955 
    57  
    58       !                             ! Open namelist file 
    59       CALL ctl_opn( numnatb, 'namelist_c14b', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    60           
    61       READ( numnatb , namc14date )     ! read namelist 
    62  
     65      REWIND( numnatb_cfg )              ! Namelist namc14date in configuration namelist : c14b parameters 
     66      READ  ( numnatb_cfg, namc14date, IOSTAT = ios, ERR = 902 ) 
     67902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14date in configuration namelist', lwp ) 
     68      WRITE ( numonb, namc14date ) 
    6369      IF(lwp) THEN                  ! control print 
    6470         WRITE(numout,*) 
     
    7581         ! Namelist namc14dia 
    7682         ! ------------------- 
    77          DO jl = 1, jp_c14b_2d 
    78             WRITE(c14dia2d(jl)%sname,'("2D_",I1)') jl                      ! short name 
    79             WRITE(c14dia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name 
    80             c14dia2d(jl)%units = ' '                                       ! units 
    81          END DO 
    82          !                                 ! 3D output arrays 
    83          DO jl = 1, jp_c14b_3d 
    84             WRITE(c14dia3d(jl)%sname,'("3D_",I1)') jl                      ! short name 
    85             WRITE(c14dia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl    ! long name 
    86             c14dia3d(jl)%units = ' '                                       ! units 
    87          END DO 
     83         REWIND( numnatb_ref )              ! Namelist namc14dia in reference namelist : c14b diagnostics 
     84         READ  ( numnatb_ref, namc14dia, IOSTAT = ios, ERR = 903) 
     85903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14dia in reference namelist', lwp ) 
    8886 
    89          REWIND( numnatb )               !  
    90          READ  ( numnatb, namc14dia ) 
     87         REWIND( numnatb_cfg )              ! Namelist namc14dia in configuration namelist : c14b diagnostics 
     88         READ  ( numnatb_cfg, namc14dia, IOSTAT = ios, ERR = 904 ) 
     89904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14dia in configuration namelist', lwp ) 
     90         WRITE ( numonb, namc14dia ) 
    9191 
    9292         DO jl = 1, jp_c14b_2d 
     
    124124      ENDIF 
    125125 
     126   CALL FLUSH ( numonb )     ! flush output namelist C14b 
     127 
    126128   END SUBROUTINE trc_nam_c14b 
    127129    
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90

    r3294 r4147  
    4242      !! ** input   :   Namelist namcfc 
    4343      !!---------------------------------------------------------------------- 
    44       INTEGER ::  numnatc 
     44      INTEGER ::  numnatc_ref = -1   ! Logical unit for reference CFC namelist 
     45      INTEGER ::  numnatc_cfg = -1   ! Logical unit for configuration CFC namelist 
     46      INTEGER ::  numonc      = -1   ! Logical unit for output namelist 
     47      INTEGER :: ios                 ! Local integer output status for namelist read 
    4548      INTEGER :: jl, jn 
    4649      TYPE(DIAG), DIMENSION(jp_cfc_2d) :: cfcdia2d 
     
    4851      NAMELIST/namcfcdate/ ndate_beg, nyear_res 
    4952      NAMELIST/namcfcdia/  cfcdia2d     ! additional diagnostics 
    50       !!------------------------------------------------------------------- 
     53      !!---------------------------------------------------------------------- 
     54      !                             ! Open namelist files 
     55      CALL ctl_opn( numnatc_ref, 'namelist_cfc_ref'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     56      CALL ctl_opn( numnatc_cfg, 'namelist_cfc_cfg'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     57      CALL ctl_opn( numonc     , 'output.namelist.cfc', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    5158 
    52       ndate_beg = 300101            ! default namelist value 
    53       nyear_res = 1950 
     59      REWIND( numnatc_ref )              ! Namelist namcfcdate in reference namelist : CFC parameters 
     60      READ  ( numnatc_ref, namcfcdate, IOSTAT = ios, ERR = 901) 
     61901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdate in reference namelist', lwp ) 
    5462 
    55       !                             ! Open namelist file 
    56       CALL ctl_opn( numnatc, 'namelist_cfc', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    57           
    58       READ( numnatc , namcfcdate )     ! read namelist 
     63      REWIND( numnatc_cfg )              ! Namelist namcfcdate in configuration namelist : CFC parameters 
     64      READ  ( numnatc_cfg, namcfcdate, IOSTAT = ios, ERR = 902 ) 
     65902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdate in configuration namelist', lwp ) 
     66      WRITE ( numonc, namcfcdate ) 
    5967 
    6068      IF(lwp) THEN                  ! control print 
     
    7381         ! Namelist namcfcdia 
    7482         ! ------------------- 
    75          DO jl = 1, jp_cfc_2d 
    76             WRITE(cfcdia2d(jl)%sname,'("2D_",I1)') jl                      ! short name 
    77             WRITE(cfcdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name 
    78             cfcdia2d(jl)%units = ' '                                       ! units 
    79          END DO 
     83         REWIND( numnatc_ref )              ! Namelist namcfcdia in reference namelist : CFC diagnostics 
     84         READ  ( numnatc_ref, namcfcdia, IOSTAT = ios, ERR = 903) 
     85903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdia in reference namelist', lwp ) 
    8086 
    81          REWIND( numnatc )               ! read natrtd 
    82          READ  ( numnatc, namcfcdia ) 
     87         REWIND( numnatc_cfg )              ! Namelist namcfcdia in configuration namelist : CFC diagnostics 
     88         READ  ( numnatc_cfg, namcfcdia, IOSTAT = ios, ERR = 904 ) 
     89904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdia in configuration namelist', lwp ) 
     90         WRITE ( numonc, namcfcdia ) 
    8391 
    8492         DO jl = 1, jp_cfc_2d 
     
    102110      ENDIF 
    103111 
     112   CALL FLUSH ( numonc )     ! flush output namelist CFC 
     113 
    104114   END SUBROUTINE trc_nam_cfc 
    105115    
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90

    r3446 r4147  
    3131   PUBLIC   p2z_bio_init    ! called in ??? 
    3232 
    33    REAL(wp) ::   tmumax     = 1.21e-5    ! maximal phytoplankton growth rate            [s-1] 
    34    REAL(wp) ::   rgamma     =  0.05      ! phytoplankton exudation fraction             [%] 
    35    REAL(wp) ::   fphylab    =  0.75      ! NH4 fraction of phytoplankton exsudation 
    36    REAL(wp) ::   tmminp     =  5.8e-7    ! minimal phytoplancton mortality rate         [0.05/86400 s-1=20 days] 
    37    REAL(wp) ::   aki        =  33.       ! light photosynthesis half saturation constant[W/m2] 
     33   REAL(wp) ::   tmumax     ! maximal phytoplankton growth rate            [s-1] 
     34   REAL(wp) ::   rgamma     ! phytoplankton exudation fraction             [%] 
     35   REAL(wp) ::   fphylab    ! NH4 fraction of phytoplankton exsudation 
     36   REAL(wp) ::   tmminp     ! minimal phytoplancton mortality rate         [0.05/86400 s-1=20 days] 
     37   REAL(wp) ::   aki        ! light photosynthesis half saturation constant[W/m2] 
    3838   ! 
    39    REAL(wp) ::   akno3      =  0.7       ! nitrate limitation half-saturation value     [mmol/m3] 
    40    REAL(wp) ::   aknh4      =  0.001     ! ammonium limitation half-saturation value    [mmol/m3] 
    41    REAL(wp) ::   taunn      =  5.80e-7   ! nitrification rate                           [s-1] 
    42    REAL(wp) ::   psinut     =  3.        ! inhibition of nitrate uptake by ammonium 
     39   REAL(wp) ::   akno3      ! nitrate limitation half-saturation value     [mmol/m3] 
     40   REAL(wp) ::   aknh4      ! ammonium limitation half-saturation value    [mmol/m3] 
     41   REAL(wp) ::   taunn      ! nitrification rate                           [s-1] 
     42   REAL(wp) ::   psinut     ! inhibition of nitrate uptake by ammonium 
    4343   ! 
    44    REAL(wp) ::   taudn      = 5.80e-7    ! detritus breakdown rate                        [0.1/86400 s-1=10 days] 
    45    REAL(wp) ::   fdetlab    = 0.         ! NH4 fraction of detritus dissolution 
     44   REAL(wp) ::   taudn      ! detritus breakdown rate                        [0.1/86400 s-1=10 days] 
     45   REAL(wp) ::   fdetlab    ! NH4 fraction of detritus dissolution 
    4646   ! 
    47    REAL(wp) ::   taudomn    = 6.43e-8    ! DOM breakdown rate                             [s-1] 
    48    !                                     ! slow remineralization rate of semi-labile dom to nh4 (1 month) 
     47   REAL(wp) ::   taudomn    ! DOM breakdown rate                             [s-1] 
     48   !                        ! slow remineralization rate of semi-labile dom to nh4 (1 month) 
    4949   ! 
    50    REAL(wp) ::   rppz       = 0.         ! ivlev coeff for zoo mortality 
    51    REAL(wp) ::   taus       = 9.26E-6    ! specific zooplankton maximal grazing rate              [s-1] 
     50   REAL(wp) ::   rppz       ! ivlev coeff for zoo mortality 
     51   REAL(wp) ::   taus       ! specific zooplankton maximal grazing rate              [s-1] 
    5252   !                                     ! 0.75/86400 s-1=8.680555E-6    1/86400 = 1.15e-5 
    53    REAL(wp) ::   aks        = 1.         ! half-saturation constant for total zooplankton grazing [mmolN.m-3] 
    54    REAL(wp) ::   rpnaz      = 0.3        ! non-assimilated phytoplankton by zooplancton           [%] 
    55    REAL(wp) ::   rdnaz      = 0.3        ! non-assimilated detritus by zooplankton                [%] 
    56    REAL(wp) ::   tauzn      = 8.1e-7     ! zooplancton specific excretion rate                    [0.1/86400 s-1=10 days] 
    57    REAL(wp) ::   tmminz     = 2.31e-6    ! minimal zooplankton mortality rate                     [(mmolN/m3)-1 d-1] 
    58    REAL(wp) ::   fzoolab    = 0.5        ! NH4 fraction of zooplankton excretion 
    59    REAL(wp) ::   fdbod      = 0.5        ! zooplankton mortality fraction that goes to detritus 
     53   REAL(wp) ::   aks        ! half-saturation constant for total zooplankton grazing [mmolN.m-3] 
     54   REAL(wp) ::   rpnaz      ! non-assimilated phytoplankton by zooplancton           [%] 
     55   REAL(wp) ::   rdnaz      ! non-assimilated detritus by zooplankton                [%] 
     56   REAL(wp) ::   tauzn      ! zooplancton specific excretion rate                    [0.1/86400 s-1=10 days] 
     57   REAL(wp) ::   tmminz     ! minimal zooplankton mortality rate                     [(mmolN/m3)-1 d-1] 
     58   REAL(wp) ::   fzoolab    ! NH4 fraction of zooplankton excretion 
     59   REAL(wp) ::   fdbod      ! zooplankton mortality fraction that goes to detritus 
    6060 
    6161   !!* Substitution 
     
    480480      !!                  ***  ROUTINE p2z_bio_init  *** 
    481481      !! 
    482       !! ** Purpose :  bilogical parameters  
     482      !! ** Purpose :  biological parameters  
    483483      !! 
    484484      !! ** Method  :   Read namelist and check the parameters 
     
    490490      NAMELIST/namlobdet/  taudn, fdetlab 
    491491      NAMELIST/namlobdom/ taudomn 
     492      INTEGER :: ios                 ! Local integer output status for namelist read 
    492493      !!---------------------------------------------------------------------- 
    493494 
    494       REWIND( numnatp ) 
    495       READ  ( numnatp, namlobphy ) 
     495      REWIND( numnatp_ref )              ! Namelist namlobphy in reference namelist : Lobster biological parameters 
     496      READ  ( numnatp_ref, namlobphy, IOSTAT = ios, ERR = 901) 
     497901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in reference namelist', lwp ) 
     498 
     499      REWIND( numnatp_cfg )              ! Namelist namlobphy in configuration namelist : Lobster biological parameters 
     500      READ  ( numnatp_cfg, namlobphy, IOSTAT = ios, ERR = 902 ) 
     501902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in configuration namelist', lwp ) 
     502      WRITE ( numonp, namlobphy ) 
    496503 
    497504      IF(lwp) THEN 
     
    505512      ENDIF 
    506513 
    507       REWIND( numnatp ) 
    508       READ  ( numnatp, namlobnut ) 
     514      REWIND( numnatp_ref )              ! Namelist namlobnut in reference namelist : Lobster nutriments parameters 
     515      READ  ( numnatp_ref, namlobnut, IOSTAT = ios, ERR = 903) 
     516903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in reference namelist', lwp ) 
     517 
     518      REWIND( numnatp_cfg )              ! Namelist namlobnut in configuration namelist : Lobster nutriments parameters 
     519      READ  ( numnatp_cfg, namlobnut, IOSTAT = ios, ERR = 904 ) 
     520904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in configuration namelist', lwp ) 
     521      WRITE ( numonp, namlobnut ) 
     522 
    509523      IF(lwp) THEN 
    510524          WRITE(numout,*) ' Namelist namlobnut' 
     
    516530      ENDIF 
    517531 
    518       REWIND( numnatp ) 
    519       READ  ( numnatp, namlobzoo ) 
     532      REWIND( numnatp_ref )              ! Namelist namlobzoo in reference namelist : Lobster zooplankton parameters 
     533      READ  ( numnatp_ref, namlobzoo, IOSTAT = ios, ERR = 905) 
     534905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in reference namelist', lwp ) 
     535 
     536      REWIND( numnatp_cfg )              ! Namelist namlobzoo in configuration namelist : Lobster zooplankton parameters 
     537      READ  ( numnatp_cfg, namlobzoo, IOSTAT = ios, ERR = 906 ) 
     538906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in configuration namelist', lwp ) 
     539      WRITE ( numonp, namlobzoo ) 
    520540 
    521541      IF(lwp) THEN 
     
    533553      ENDIF 
    534554 
    535       REWIND( numnatp ) 
    536       READ  ( numnatp, namlobdet ) 
     555      REWIND( numnatp_ref )              ! Namelist namlobdet in reference namelist : Lobster detritus parameters 
     556      READ  ( numnatp_ref, namlobdet, IOSTAT = ios, ERR = 907) 
     557907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in reference namelist', lwp ) 
     558 
     559      REWIND( numnatp_cfg )              ! Namelist namlobdet in configuration namelist : Lobster detritus parameters 
     560      READ  ( numnatp_cfg, namlobdet, IOSTAT = ios, ERR = 908 ) 
     561908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in configuration namelist', lwp ) 
     562      WRITE ( numonp, namlobdet ) 
    537563 
    538564      IF(lwp) THEN 
     
    543569      ENDIF 
    544570 
    545       REWIND( numnatp ) 
    546       READ  ( numnatp, namlobdom ) 
     571      REWIND( numnatp_ref )              ! Namelist namlobdom in reference namelist : Lobster DOM breakdown rate 
     572      READ  ( numnatp_ref, namlobdom, IOSTAT = ios, ERR = 909) 
     573909   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in reference namelist', lwp ) 
     574 
     575      REWIND( numnatp_cfg )              ! Namelist namlobdom in configuration namelist : Lobster DOM breakdown rate 
     576      READ  ( numnatp_cfg, namlobdom, IOSTAT = ios, ERR = 910 ) 
     577910   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in configuration namelist', lwp ) 
     578      WRITE ( numonp, namlobdom ) 
    547579 
    548580      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90

    r3443 r4147  
    2828   PUBLIC   p2z_opt_init   ! 
    2929 
    30    REAL(wp), PUBLIC ::  xkr0   = 0.0232_wp   !: water coefficient absorption in red       
    31    REAL(wp), PUBLIC ::  xkg0   = 0.225_wp    !: water coefficient absorption in green     
    32    REAL(wp), PUBLIC ::  xkrp   = 0.074_wp    !: pigment coefficient absorption in red     
    33    REAL(wp), PUBLIC ::  xkgp   = 0.037_wp    !: pigment coefficient absorption in green   
    34    REAL(wp), PUBLIC ::  xlr    = 0.674_wp    !: exposant for pigment absorption in red   
    35    REAL(wp), PUBLIC ::  xlg    = 0.629_wp    !: exposant for pigment absorption in green  
    36    REAL(wp), PUBLIC ::  rpig   = 0.7_wp      !: chla/chla+phea ratio     
     30   REAL(wp), PUBLIC ::  xkr0      !: water coefficient absorption in red       
     31   REAL(wp), PUBLIC ::  xkg0      !: water coefficient absorption in green     
     32   REAL(wp), PUBLIC ::  xkrp      !: pigment coefficient absorption in red     
     33   REAL(wp), PUBLIC ::  xkgp      !: pigment coefficient absorption in green   
     34   REAL(wp), PUBLIC ::  xlr       !: exposant for pigment absorption in red   
     35   REAL(wp), PUBLIC ::  xlg       !: exposant for pigment absorption in green  
     36   REAL(wp), PUBLIC ::  rpig      !: chla/chla+phea ratio     
    3737   !                  
    38    REAL(wp), PUBLIC ::  rcchl  =  60_wp      ! Carbone/Chlorophyl ratio [mgC.mgChla-1] 
    39    REAL(wp), PUBLIC ::  redf   = 6.56_wp     ! redfield ratio (C:N) for phyto 
    40    REAL(wp), PUBLIC ::  reddom = 6.56_wp     ! redfield ratio (C:N) for DOM 
     38   REAL(wp), PUBLIC ::  rcchl     ! Carbone/Chlorophyl ratio [mgC.mgChla-1] 
     39   REAL(wp), PUBLIC ::  redf      ! redfield ratio (C:N) for phyto 
     40   REAL(wp), PUBLIC ::  reddom    ! redfield ratio (C:N) for DOM 
    4141 
    4242   !!* Substitution 
     
    164164      NAMELIST/namlobopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 
    165165      NAMELIST/namlobrat/ rcchl, redf, reddom 
     166      INTEGER :: ios                 ! Local integer output status for namelist read 
    166167      !!---------------------------------------------------------------------- 
    167168 
    168       REWIND( numnatp ) 
    169       READ  ( numnatp, namlobopt ) 
     169      REWIND( numnatp_ref )              ! Namelist namlobopt in reference namelist : Lobster options 
     170      READ  ( numnatp_ref, namlobopt, IOSTAT = ios, ERR = 901) 
     171901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in reference namelist', lwp ) 
     172 
     173      REWIND( numnatp_cfg )              ! Namelist namlobopt in configuration namelist : Lobster options 
     174      READ  ( numnatp_cfg, namlobopt, IOSTAT = ios, ERR = 902 ) 
     175902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in configuration namelist', lwp ) 
     176      WRITE ( numonp, namlobopt ) 
    170177 
    171178      IF(lwp) THEN 
     
    182189      ENDIF 
    183190      ! 
    184       REWIND( numnatp ) 
    185       READ  ( numnatp, namlobrat ) 
     191      REWIND( numnatp_ref )              ! Namelist namlobrat in reference namelist : Lobster ratios 
     192      READ  ( numnatp_ref, namlobrat, IOSTAT = ios, ERR = 903) 
     193903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in reference namelist', lwp ) 
     194 
     195      REWIND( numnatp_cfg )              ! Namelist namlobrat in configuration namelist : Lobster ratios 
     196      READ  ( numnatp_cfg, namlobrat, IOSTAT = ios, ERR = 904 ) 
     197904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in configuration namelist', lwp ) 
     198      WRITE ( numonp, namlobrat ) 
    186199 
    187200      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90

    r3443 r4147  
    2929   PUBLIC   p2z_sed_init    ! called in ??? 
    3030 
    31    REAL(wp), PUBLIC ::   sedlam     = 3.86e-7  !: time coefficient of POC remineralization in sediments 
    32    REAL(wp), PUBLIC ::   sedlostpoc = 0.        ! mass of POC lost in sediments  
    33    REAL(wp), PUBLIC ::   vsed       = 3.47e-5  ! detritus sedimentation speed [m/s]  
    34    REAL(wp), PUBLIC ::   xhr        = -0.858    ! coeff for martin''s remineralisation profile 
     31   REAL(wp), PUBLIC ::   sedlam      !: time coefficient of POC remineralization in sediments 
     32   REAL(wp), PUBLIC ::   sedlostpoc ! mass of POC lost in sediments  
     33   REAL(wp), PUBLIC ::   vsed        ! detritus sedimentation speed [m/s]  
     34   REAL(wp), PUBLIC ::   xhr        ! coeff for martin''s remineralisation profile 
    3535 
    3636   !!* Substitution 
     
    151151      !!---------------------------------------------------------------------- 
    152152      NAMELIST/namlobsed/ sedlam, sedlostpoc, vsed, xhr 
     153      INTEGER :: ios                 ! Local integer output status for namelist read 
    153154 
    154       REWIND( numnatp ) 
    155       READ  ( numnatp, namlobsed ) 
     155      REWIND( numnatp_ref )              ! Namelist namlobsed in reference namelist : Lobster sediments 
     156      READ  ( numnatp_ref, namlobsed, IOSTAT = ios, ERR = 901) 
     157901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlosed in reference namelist', lwp ) 
     158 
     159      REWIND( numnatp_cfg )              ! Namelist namlobsed in configuration namelist : Lobster sediments 
     160      READ  ( numnatp_cfg, namlobsed, IOSTAT = ios, ERR = 902 ) 
     161902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobsed in configuration namelist', lwp ) 
     162      WRITE ( numonp, namlobsed ) 
    156163 
    157164      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90

    r3443 r4147  
    1515   USE oce_trc          ! 
    1616   USE trc 
     17   USE sms_pisces 
    1718   USE p2zbio 
    1819   USE p2zopt 
     
    6667      IF( lk_trdmld_trc )  CALL trd_mld_bio( kt )   ! trends: Mixed-layer 
    6768      ! 
     69      IF ( kt == nittrc000 ) CALL FLUSH    ( numonp )     ! flush output namelist PISCES 
    6870      IF( nn_timing == 1 )  CALL timing_stop('p2z_sms') 
    6971      ! 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r3780 r4147  
    3131 
    3232   !! * Shared module variables 
    33    LOGICAL          ::  ln_fechem  = .FALSE.    !: boolean for complex iron chemistry following Tagliabue and voelker 
    34    LOGICAL          ::  ln_ligvar  = .FALSE.    !: boolean for variable ligand concentration following Tagliabue and voelker 
    35    REAL(wp), PUBLIC ::  xlam1      = 0.005_wp   !: scavenging rate of Iron  
    36    REAL(wp), PUBLIC ::  xlamdust   = 150.0_wp   !: scavenging rate of Iron by dust  
    37    REAL(wp), PUBLIC ::  ligand     = 0.6E-9_wp  !: ligand concentration in the ocean  
     33   LOGICAL          ::  ln_fechem    !: boolean for complex iron chemistry following Tagliabue and voelker 
     34   LOGICAL          ::  ln_ligvar    !: boolean for variable ligand concentration following Tagliabue and voelker 
     35   REAL(wp), PUBLIC ::  xlam1        !: scavenging rate of Iron  
     36   REAL(wp), PUBLIC ::  xlamdust     !: scavenging rate of Iron by dust  
     37   REAL(wp), PUBLIC ::  ligand       !: ligand concentration in the ocean  
    3838 
    3939   REAL(wp) :: kl1, kl2, kb1, kb2, ks, kpr, spd, con, kth 
     
    342342      !!---------------------------------------------------------------------- 
    343343      NAMELIST/nampisfer/ ln_fechem, ln_ligvar, xlam1, xlamdust, ligand  
    344  
    345       REWIND( numnatp )                     ! read numnatp 
    346       READ  ( numnatp, nampisfer ) 
     344      INTEGER :: ios                 ! Local integer output status for namelist read 
     345 
     346      REWIND( numnatp_ref )              ! Namelist nampisfer in reference namelist : Pisces iron chemistry 
     347      READ  ( numnatp_ref, nampisfer, IOSTAT = ios, ERR = 901) 
     348901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in reference namelist', lwp ) 
     349 
     350      REWIND( numnatp_cfg )              ! Namelist nampisfer in configuration namelist : Pisces iron chemistry 
     351      READ  ( numnatp_cfg, nampisfer, IOSTAT = ios, ERR = 902 ) 
     352902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in configuration namelist', lwp ) 
     353      WRITE ( numonp, nampisfer ) 
    347354 
    348355      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r3481 r4147  
    3737   PUBLIC   p4z_flx_alloc   
    3838 
    39    !                                      !!** Namelist  nampisext  ** 
    40    REAL(wp)          ::  atcco2    = 278._wp      !: pre-industrial atmospheric [co2] (ppm)     
    41    LOGICAL           ::  ln_co2int = .FALSE.      !: flag to read in a file and interpolate atmospheric pco2 or not 
    42    CHARACTER(len=34) ::  clname    = 'atcco2.txt' !: filename of pco2 values 
    43    INTEGER           ::  nn_offset = 0            !: Offset model-data start year (default = 0)  
     39   !                               !!** Namelist  nampisext  ** 
     40   REAL(wp)          ::  atcco2    !: pre-industrial atmospheric [co2] (ppm)     
     41   LOGICAL           ::  ln_co2int !: flag to read in a file and interpolate atmospheric pco2 or not 
     42   CHARACTER(len=34) ::  clname    !: filename of pco2 values 
     43   INTEGER           ::  nn_offset !: Offset model-data start year (default = 0)  
    4444 
    4545   !!  Variables related to reading atmospheric CO2 time history     
     
    4747   INTEGER  :: nmaxrec, numco2 
    4848 
    49    !                                         !!* nampisatm namelist (Atmospheric PRessure) * 
    50    LOGICAL, PUBLIC ::   ln_presatm = .true. !: ref. pressure: global mean Patm (F) or a constant (F) 
     49   !                               !!* nampisatm namelist (Atmospheric PRessure) * 
     50   LOGICAL, PUBLIC ::   ln_presatm !: ref. pressure: global mean Patm (F) or a constant (F) 
    5151 
    5252   REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:)  ::  patm      ! atmospheric pressure at kt                 [N/m2] 
     
    239239      NAMELIST/nampisext/ln_co2int, atcco2, clname, nn_offset 
    240240      INTEGER :: jm 
    241       !!---------------------------------------------------------------------- 
    242       ! 
    243       REWIND( numnatp )                     ! read numnatp 
    244       READ  ( numnatp, nampisext ) 
     241      INTEGER :: ios                 ! Local integer output status for namelist read 
     242      !!---------------------------------------------------------------------- 
     243      ! 
     244 
     245      REWIND( numnatp_ref )              ! Namelist nampisext in reference namelist : Pisces atm. conditions 
     246      READ  ( numnatp_ref, nampisext, IOSTAT = ios, ERR = 901) 
     247901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisext in reference namelist', lwp ) 
     248 
     249      REWIND( numnatp_cfg )              ! Namelist nampisext in configuration namelist : Pisces atm. conditions 
     250      READ  ( numnatp_cfg, nampisext, IOSTAT = ios, ERR = 902 ) 
     251902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisext in configuration namelist', lwp ) 
     252      WRITE ( numonp, nampisext ) 
    245253      ! 
    246254      IF(lwp) THEN                         ! control print 
     
    302310      ! 
    303311      INTEGER            ::  ierr 
     312      INTEGER            ::  ios      ! Local integer output status for namelist read 
    304313      CHARACTER(len=100) ::  cn_dir   ! Root directory for location of ssr files 
    305314      TYPE(FLD_N)        ::  sn_patm  ! informations about the fields to be read 
     
    307316      NAMELIST/nampisatm/ ln_presatm, sn_patm, cn_dir 
    308317 
    309       !                                         ! -------------------- ! 
     318      !                                         ! ----------------------- ! 
    310319      IF( kt == nit000 ) THEN                   ! First call kt=nittrc000 ! 
    311          !                                      ! -------------------- ! 
    312          !                                            !* set file information (default values) 
    313          ! ... default values (NB: frequency positive => hours, negative => months) 
    314          !            !   file   ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation ! 
    315          !            !   name   !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs    ! 
    316          sn_patm = FLD_N( 'pres'  ,    24     ,  'patm'    ,  .false.   , .true.  ,   'yearly'  , ''       , ''       ) 
    317          cn_dir  = './'          ! directory in which the Patm data are  
    318  
    319          REWIND( numnatp )                             !* read in namlist nampisatm 
    320          READ  ( numnatp, nampisatm )  
     320         !                                      ! ----------------------- ! 
     321 
     322         REWIND( numnatp_ref )              ! Namelist nampisatm in reference namelist : Pisces atm. sea level pressure file 
     323         READ  ( numnatp_ref, nampisatm, IOSTAT = ios, ERR = 901) 
     324901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisatm in reference namelist', lwp ) 
     325 
     326         REWIND( numnatp_cfg )              ! Namelist nampisatm in configuration namelist : Pisces atm. sea level pressure file  
     327         READ  ( numnatp_cfg, nampisatm, IOSTAT = ios, ERR = 902 ) 
     328902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisatm in configuration namelist', lwp ) 
     329         WRITE ( numonp, nampisatm ) 
    321330         ! 
    322331         ! 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90

    r3446 r4147  
    2828 
    2929   !! * Shared module variables 
    30    REAL(wp), PUBLIC ::  concnno3  = 1.e-6_wp      !:  NO3, PO4 half saturation    
    31    REAL(wp), PUBLIC ::  concdno3  = 2.e-6_wp      !:  Phosphate half saturation for diatoms   
    32    REAL(wp), PUBLIC ::  concnnh4  = 1.e-7_wp      !:  NH4 half saturation for phyto   
    33    REAL(wp), PUBLIC ::  concdnh4  = 2.e-7_wp      !:  NH4 half saturation for diatoms 
    34    REAL(wp), PUBLIC ::  concnfer  = 1.e-9_wp      !:  Iron half saturation for nanophyto  
    35    REAL(wp), PUBLIC ::  concdfer  = 2.e-9_wp      !:  Iron half saturation for diatoms   
    36    REAL(wp), PUBLIC ::  concbno3  = 2.5e-7_wp      !:  NO3 half saturation  for bacteria  
    37    REAL(wp), PUBLIC ::  concbnh4  = 2.5e-8_wp      !:  NH4 half saturation for bacteria 
    38    REAL(wp), PUBLIC ::  xsizedia  = 5.e-7_wp      !:  Minimum size criteria for diatoms 
    39    REAL(wp), PUBLIC ::  xsizephy  = 1.e-6_wp      !:  Minimum size criteria for nanophyto 
    40    REAL(wp), PUBLIC ::  xsizern   = 3.0_wp        !:  Size ratio for nanophytoplankton 
    41    REAL(wp), PUBLIC ::  xsizerd   = 4.0_wp        !:  Size ratio for diatoms 
    42    REAL(wp), PUBLIC ::  xksi1     = 2.E-6_wp      !:  half saturation constant for Si uptake  
    43    REAL(wp), PUBLIC ::  xksi2     = 3.33e-6_wp    !:  half saturation constant for Si/C  
    44    REAL(wp), PUBLIC ::  xkdoc     = 417.e-6_wp    !:  2nd half-sat. of DOC remineralization   
    45    REAL(wp), PUBLIC ::  concbfe   = 1.E-11_wp     !:  Fe half saturation for bacteria  
    46    REAL(wp), PUBLIC ::  qnfelim   = 7.E-6_wp      !:  optimal Fe quota for nanophyto 
    47    REAL(wp), PUBLIC ::  qdfelim   = 7.E-6_wp      !:  optimal Fe quota for diatoms 
    48    REAL(wp), PUBLIC ::  caco3r    = 0.16_wp       !:  mean rainratio  
     30   REAL(wp), PUBLIC ::  concnno3    !:  NO3, PO4 half saturation    
     31   REAL(wp), PUBLIC ::  concdno3    !:  Phosphate half saturation for diatoms   
     32   REAL(wp), PUBLIC ::  concnnh4    !:  NH4 half saturation for phyto   
     33   REAL(wp), PUBLIC ::  concdnh4    !:  NH4 half saturation for diatoms 
     34   REAL(wp), PUBLIC ::  concnfer    !:  Iron half saturation for nanophyto  
     35   REAL(wp), PUBLIC ::  concdfer    !:  Iron half saturation for diatoms   
     36   REAL(wp), PUBLIC ::  concbno3    !:  NO3 half saturation  for bacteria  
     37   REAL(wp), PUBLIC ::  concbnh4    !:  NH4 half saturation for bacteria 
     38   REAL(wp), PUBLIC ::  xsizedia    !:  Minimum size criteria for diatoms 
     39   REAL(wp), PUBLIC ::  xsizephy    !:  Minimum size criteria for nanophyto 
     40   REAL(wp), PUBLIC ::  xsizern     !:  Size ratio for nanophytoplankton 
     41   REAL(wp), PUBLIC ::  xsizerd     !:  Size ratio for diatoms 
     42   REAL(wp), PUBLIC ::  xksi1       !:  half saturation constant for Si uptake  
     43   REAL(wp), PUBLIC ::  xksi2       !:  half saturation constant for Si/C  
     44   REAL(wp), PUBLIC ::  xkdoc       !:  2nd half-sat. of DOC remineralization   
     45   REAL(wp), PUBLIC ::  concbfe     !:  Fe half saturation for bacteria  
     46   REAL(wp), PUBLIC ::  qnfelim     !:  optimal Fe quota for nanophyto 
     47   REAL(wp), PUBLIC ::  qdfelim     !:  optimal Fe quota for diatoms 
     48   REAL(wp), PUBLIC ::  caco3r      !:  mean rainratio  
    4949 
    5050   ! Coefficient for iron limitation 
     
    217217         &                concbno3, concbnh4, xsizedia, xsizephy, xsizern, xsizerd,          &  
    218218         &                xksi1, xksi2, xkdoc, qnfelim, qdfelim, caco3r 
    219  
    220       REWIND( numnatp )                     ! read numnat 
    221       READ  ( numnatp, nampislim ) 
     219      INTEGER :: ios                 ! Local integer output status for namelist read 
     220 
     221      REWIND( numnatp_ref )              ! Namelist nampislim in reference namelist : Pisces nutrient limitation parameters 
     222      READ  ( numnatp_ref, nampislim, IOSTAT = ios, ERR = 901) 
     223901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampislim in reference namelist', lwp ) 
     224 
     225      REWIND( numnatp_cfg )              ! Namelist nampislim in configuration namelist : Pisces nutrient limitation parameters  
     226      READ  ( numnatp_cfg, nampislim, IOSTAT = ios, ERR = 902 ) 
     227902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampislim in configuration namelist', lwp ) 
     228      WRITE ( numonp, nampislim ) 
    222229 
    223230      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r3443 r4147  
    3232 
    3333   !! * Shared module variables 
    34    REAL(wp), PUBLIC :: kdca = 0.327e3_wp  !: diss. rate constant calcite 
    35    REAL(wp), PUBLIC :: nca  = 1.0_wp      !: order of reaction for calcite dissolution 
     34   REAL(wp), PUBLIC :: kdca !: diss. rate constant calcite 
     35   REAL(wp), PUBLIC :: nca  !: order of reaction for calcite dissolution 
    3636 
    3737   !! * Module variables 
     
    188188      !!---------------------------------------------------------------------- 
    189189      INTEGER  ::  ji, jj, jk 
     190      INTEGER  ::  ios                 ! Local integer output status for namelist read 
    190191      REAL(wp) ::  zcaralk, zbicarb, zco3 
    191192      REAL(wp) ::  ztmas, ztmas1 
     
    194195      !!---------------------------------------------------------------------- 
    195196 
    196       REWIND( numnatp )                     ! read numnatp 
    197       READ  ( numnatp, nampiscal ) 
     197      REWIND( numnatp_ref )              ! Namelist nampiscal in reference namelist : Pisces CaCO3 dissolution 
     198      READ  ( numnatp_ref, nampiscal, IOSTAT = ios, ERR = 901) 
     199901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiscal in reference namelist', lwp ) 
     200 
     201      REWIND( numnatp_cfg )              ! Namelist nampiscal in configuration namelist : Pisces CaCO3 dissolution 
     202      READ  ( numnatp_cfg, nampiscal, IOSTAT = ios, ERR = 902 ) 
     203902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiscal in configuration namelist', lwp ) 
     204      WRITE ( numonp, nampiscal ) 
    198205 
    199206      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r3829 r4147  
    3131 
    3232   !! * Shared module variables 
    33    REAL(wp), PUBLIC ::  part2       = 0.5_wp    !: part of calcite not dissolved in mesozoo guts 
    34    REAL(wp), PUBLIC ::  xprefc      = 1.0_wp    !: mesozoo preference for POC  
    35    REAL(wp), PUBLIC ::  xprefp      = 0.3_wp    !: mesozoo preference for nanophyto 
    36    REAL(wp), PUBLIC ::  xprefz      = 1.0_wp    !: mesozoo preference for diatoms 
    37    REAL(wp), PUBLIC ::  xprefpoc    = 0.3_wp    !: mesozoo preference for POC  
    38    REAL(wp), PUBLIC ::  xthresh2zoo = 1E-8_wp    !: zoo feeding threshold for mesozooplankton  
    39    REAL(wp), PUBLIC ::  xthresh2dia = 1E-8_wp    !: diatoms feeding threshold for mesozooplankton  
    40    REAL(wp), PUBLIC ::  xthresh2phy = 2E-7_wp    !: nanophyto feeding threshold for mesozooplankton  
    41    REAL(wp), PUBLIC ::  xthresh2poc = 1E-8_wp    !: poc feeding threshold for mesozooplankton  
    42    REAL(wp), PUBLIC ::  xthresh2    = 0._wp      !: feeding threshold for mesozooplankton  
    43    REAL(wp), PUBLIC ::  resrat2     = 0.005_wp  !: exsudation rate of mesozooplankton 
    44    REAL(wp), PUBLIC ::  mzrat2      = 0.04_wp    !: microzooplankton mortality rate  
    45    REAL(wp), PUBLIC ::  grazrat2    = 0.9_wp    !: maximal mesozoo grazing rate 
    46    REAL(wp), PUBLIC ::  xkgraz2     = 20E-6_wp  !: non assimilated fraction of P by mesozoo  
    47    REAL(wp), PUBLIC ::  unass2      = 0.3_wp    !: Efficicency of mesozoo growth  
    48    REAL(wp), PUBLIC ::  sigma2      = 0.6_wp    !: Fraction of mesozoo excretion as DOM  
    49    REAL(wp), PUBLIC ::  epsher2     = 0.3_wp    !: half sturation constant for grazing 2 
    50    REAL(wp), PUBLIC ::  grazflux    = 3.E3_wp    !: mesozoo flux feeding rate 
     33   REAL(wp), PUBLIC ::  part2        !: part of calcite not dissolved in mesozoo guts 
     34   REAL(wp), PUBLIC ::  xprefc      !: mesozoo preference for POC  
     35   REAL(wp), PUBLIC ::  xprefp      !: mesozoo preference for nanophyto 
     36   REAL(wp), PUBLIC ::  xprefz      !: mesozoo preference for diatoms 
     37   REAL(wp), PUBLIC ::  xprefpoc    !: mesozoo preference for POC  
     38   REAL(wp), PUBLIC ::  xthresh2zoo !: zoo feeding threshold for mesozooplankton  
     39   REAL(wp), PUBLIC ::  xthresh2dia !: diatoms feeding threshold for mesozooplankton  
     40   REAL(wp), PUBLIC ::  xthresh2phy !: nanophyto feeding threshold for mesozooplankton  
     41   REAL(wp), PUBLIC ::  xthresh2poc !: poc feeding threshold for mesozooplankton  
     42   REAL(wp), PUBLIC ::  xthresh2    !: feeding threshold for mesozooplankton  
     43   REAL(wp), PUBLIC ::  resrat2      !: exsudation rate of mesozooplankton 
     44   REAL(wp), PUBLIC ::  mzrat2      !: microzooplankton mortality rate  
     45   REAL(wp), PUBLIC ::  grazrat2    !: maximal mesozoo grazing rate 
     46   REAL(wp), PUBLIC ::  xkgraz2      !: non assimilated fraction of P by mesozoo  
     47   REAL(wp), PUBLIC ::  unass2      !: Efficicency of mesozoo growth  
     48   REAL(wp), PUBLIC ::  sigma2      !: Fraction of mesozoo excretion as DOM  
     49   REAL(wp), PUBLIC ::  epsher2      !: half sturation constant for grazing 2 
     50   REAL(wp), PUBLIC ::  grazflux    !: mesozoo flux feeding rate 
    5151 
    5252   !!* Substitution 
     
    255255         &                xprefpoc, xthresh2dia, xthresh2phy, xthresh2zoo, xthresh2poc, & 
    256256         &                xthresh2, xkgraz2, epsher2, sigma2, unass2, grazflux 
    257  
    258       REWIND( numnatp )                     ! read numnatp 
    259       READ  ( numnatp, nampismes ) 
     257      INTEGER :: ios                 ! Local integer output status for namelist read 
     258 
     259      REWIND( numnatp_ref )              ! Namelist nampismes in reference namelist : Pisces mesozooplankton 
     260      READ  ( numnatp_ref, nampismes, IOSTAT = ios, ERR = 901) 
     261901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismes in reference namelist', lwp ) 
     262 
     263      REWIND( numnatp_cfg )              ! Namelist nampismes in configuration namelist : Pisces mesozooplankton 
     264      READ  ( numnatp_cfg, nampismes, IOSTAT = ios, ERR = 902 ) 
     265902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismes in configuration namelist', lwp ) 
     266      WRITE ( numonp, nampismes ) 
    260267 
    261268 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r3829 r4147  
    3232 
    3333   !! * Shared module variables 
    34    REAL(wp), PUBLIC ::  part       = 0.5_wp    !: part of calcite not dissolved in microzoo guts 
    35    REAL(wp), PUBLIC ::  xpref2c    = 0.2_wp    !: microzoo preference for POC  
    36    REAL(wp), PUBLIC ::  xpref2p    = 1.0_wp    !: microzoo preference for nanophyto 
    37    REAL(wp), PUBLIC ::  xpref2d    = 0.6_wp    !: microzoo preference for diatoms 
    38    REAL(wp), PUBLIC ::  xthreshdia = 1E-8_wp    !: diatoms feeding threshold for microzooplankton  
    39    REAL(wp), PUBLIC ::  xthreshphy = 2E-7_wp    !: nanophyto threshold for microzooplankton  
    40    REAL(wp), PUBLIC ::  xthreshpoc = 1E-8_wp    !: poc threshold for microzooplankton  
    41    REAL(wp), PUBLIC ::  xthresh    = 0._wp      !: feeding threshold for microzooplankton  
    42    REAL(wp), PUBLIC ::  resrat     = 0.03_wp    !: exsudation rate of microzooplankton 
    43    REAL(wp), PUBLIC ::  mzrat      = 0.0_wp    !: microzooplankton mortality rate  
    44    REAL(wp), PUBLIC ::  grazrat    = 3.0_wp    !: maximal microzoo grazing rate 
    45    REAL(wp), PUBLIC ::  xkgraz     = 20E-6_wp  !: non assimilated fraction of P by microzoo  
    46    REAL(wp), PUBLIC ::  unass      = 0.3_wp    !: Efficicency of microzoo growth  
    47    REAL(wp), PUBLIC ::  sigma1     = 0.6_wp    !: Fraction of microzoo excretion as DOM  
    48    REAL(wp), PUBLIC ::  epsher     = 0.3_wp    !: half sturation constant for grazing 1  
     34   REAL(wp), PUBLIC ::  part        !: part of calcite not dissolved in microzoo guts 
     35   REAL(wp), PUBLIC ::  xpref2c    !: microzoo preference for POC  
     36   REAL(wp), PUBLIC ::  xpref2p    !: microzoo preference for nanophyto 
     37   REAL(wp), PUBLIC ::  xpref2d    !: microzoo preference for diatoms 
     38   REAL(wp), PUBLIC ::  xthreshdia !: diatoms feeding threshold for microzooplankton  
     39   REAL(wp), PUBLIC ::  xthreshphy !: nanophyto threshold for microzooplankton  
     40   REAL(wp), PUBLIC ::  xthreshpoc !: poc threshold for microzooplankton  
     41   REAL(wp), PUBLIC ::  xthresh    !: feeding threshold for microzooplankton  
     42   REAL(wp), PUBLIC ::  resrat      !: exsudation rate of microzooplankton 
     43   REAL(wp), PUBLIC ::  mzrat      !: microzooplankton mortality rate  
     44   REAL(wp), PUBLIC ::  grazrat    !: maximal microzoo grazing rate 
     45   REAL(wp), PUBLIC ::  xkgraz      !: non assimilated fraction of P by microzoo  
     46   REAL(wp), PUBLIC ::  unass      !: Efficicency of microzoo growth  
     47   REAL(wp), PUBLIC ::  sigma1      !: Fraction of microzoo excretion as DOM  
     48   REAL(wp), PUBLIC ::  epsher      !: half sturation constant for grazing 1  
    4949 
    5050 
     
    225225         &                xpref2d,  xthreshdia,  xthreshphy,  xthreshpoc, & 
    226226         &                xthresh, xkgraz, epsher, sigma1, unass 
    227  
    228       REWIND( numnatp )                     ! read numnatp 
    229       READ  ( numnatp, nampiszoo ) 
     227      INTEGER :: ios                 ! Local integer output status for namelist read 
     228 
     229      REWIND( numnatp_ref )              ! Namelist nampiszoo in reference namelist : Pisces microzooplankton 
     230      READ  ( numnatp_ref, nampiszoo, IOSTAT = ios, ERR = 901) 
     231901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in reference namelist', lwp ) 
     232 
     233      REWIND( numnatp_cfg )              ! Namelist nampiszoo in configuration namelist : Pisces microzooplankton 
     234      READ  ( numnatp_cfg, nampiszoo, IOSTAT = ios, ERR = 902 ) 
     235902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in configuration namelist', lwp ) 
     236      WRITE ( numonp, nampiszoo ) 
    230237 
    231238      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90

    r3475 r4147  
    2727 
    2828   !! * Shared module variables 
    29    REAL(wp), PUBLIC :: wchl   = 0.001_wp !: 
    30    REAL(wp), PUBLIC :: wchld  = 0.02_wp  !: 
    31    REAL(wp), PUBLIC :: wchldm = 0.05_wp  !: 
    32    REAL(wp), PUBLIC :: mprat  = 0.01_wp  !: 
    33    REAL(wp), PUBLIC :: mprat2 = 0.01_wp  !: 
     29   REAL(wp), PUBLIC :: wchl    !: 
     30   REAL(wp), PUBLIC :: wchld  !: 
     31   REAL(wp), PUBLIC :: wchldm !: 
     32   REAL(wp), PUBLIC :: mprat  !: 
     33   REAL(wp), PUBLIC :: mprat2 !: 
    3434 
    3535 
     
    239239 
    240240      NAMELIST/nampismort/ wchl, wchld, wchldm, mprat, mprat2 
    241  
    242       REWIND( numnatp )                     ! read numnatp 
    243       READ  ( numnatp, nampismort ) 
     241      INTEGER :: ios                 ! Local integer output status for namelist read 
     242 
     243      REWIND( numnatp_ref )              ! Namelist nampismort in reference namelist : Pisces phytoplankton 
     244      READ  ( numnatp_ref, nampismort, IOSTAT = ios, ERR = 901) 
     245901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismort in reference namelist', lwp ) 
     246 
     247      REWIND( numnatp_cfg )              ! Namelist nampismort in configuration namelist : Pisces phytoplankton 
     248      READ  ( numnatp_cfg, nampismort, IOSTAT = ios, ERR = 902 ) 
     249902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismort in configuration namelist', lwp ) 
     250      WRITE ( numonp, nampismort ) 
    244251 
    245252      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r3475 r4147  
    3232   !! * Shared module variables 
    3333 
    34    LOGICAL  :: ln_varpar = .FALSE.    !: boolean for variable PAR fraction 
    35    REAL(wp) :: parlux    = 0.43_wp    !: Fraction of shortwave as PAR 
     34   LOGICAL  :: ln_varpar   !: boolean for variable PAR fraction 
     35   REAL(wp) :: parlux      !: Fraction of shortwave as PAR 
    3636   REAL(wp) :: xparsw                 !: parlux/3 
    3737 
     
    318318      INTEGER :: numpar 
    319319      INTEGER :: ierr 
     320      INTEGER :: ios                 ! Local integer output status for namelist read 
    320321      REAL(wp), DIMENSION(nbtimes) :: zsteps                 ! times records 
    321322      ! 
     
    329330      IF( nn_timing == 1 )  CALL timing_start('p4z_opt_init') 
    330331 
    331       cn_dir  = './'            ! directory in which the model is executed 
    332       ! ... default values (NB: frequency positive => hours, negative => months) 
    333       !                  !   file       ! frequency !  variable   ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   ! 
    334       !                  !   name       !  (hours)  !   name      !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      ! 
    335       sn_par     = FLD_N( 'par_fraction',    24     ,  'fr_par'     ,  .true.    , .true.  ,   'yearly'  , ''       , ''         ) 
    336  
    337       REWIND( numnatp )                     ! read numnatp 
    338       READ  ( numnatp, nampisopt ) 
     332      REWIND( numnatp_ref )              ! Namelist nampisopt in reference namelist : Pisces attenuation coef. and PAR 
     333      READ  ( numnatp_ref, nampisopt, IOSTAT = ios, ERR = 901) 
     334901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisopt in reference namelist', lwp ) 
     335 
     336      REWIND( numnatp_cfg )              ! Namelist nampisopt in configuration namelist : Pisces attenuation coef. and PAR 
     337      READ  ( numnatp_cfg, nampisopt, IOSTAT = ios, ERR = 902 ) 
     338902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisopt in configuration namelist', lwp ) 
     339      WRITE ( numonp, nampisopt ) 
    339340 
    340341      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r3686 r4147  
    3232 
    3333   !! * Shared module variables 
    34    LOGICAL , PUBLIC ::  ln_newprod = .FALSE. 
    35    REAL(wp), PUBLIC ::  pislope    = 3.0_wp            !: 
    36    REAL(wp), PUBLIC ::  pislope2   = 3.0_wp            !: 
    37    REAL(wp), PUBLIC ::  excret     = 10.e-5_wp         !: 
    38    REAL(wp), PUBLIC ::  excret2    = 0.05_wp           !: 
    39    REAL(wp), PUBLIC ::  bresp      = 0.00333_wp        !: 
    40    REAL(wp), PUBLIC ::  chlcnm     = 0.033_wp          !: 
    41    REAL(wp), PUBLIC ::  chlcdm     = 0.05_wp           !: 
    42    REAL(wp), PUBLIC ::  chlcmin    = 0.00333_wp        !: 
    43    REAL(wp), PUBLIC ::  fecnm      = 10.E-6_wp         !: 
    44    REAL(wp), PUBLIC ::  fecdm      = 15.E-6_wp         !: 
    45    REAL(wp), PUBLIC ::  grosip     = 0.151_wp          !: 
     34   LOGICAL , PUBLIC ::  ln_newprod      !: 
     35   REAL(wp), PUBLIC ::  pislope         !: 
     36   REAL(wp), PUBLIC ::  pislope2        !: 
     37   REAL(wp), PUBLIC ::  excret          !: 
     38   REAL(wp), PUBLIC ::  excret2         !: 
     39   REAL(wp), PUBLIC ::  bresp           !: 
     40   REAL(wp), PUBLIC ::  chlcnm          !: 
     41   REAL(wp), PUBLIC ::  chlcdm          !: 
     42   REAL(wp), PUBLIC ::  chlcmin         !: 
     43   REAL(wp), PUBLIC ::  fecnm           !: 
     44   REAL(wp), PUBLIC ::  fecdm           !: 
     45   REAL(wp), PUBLIC ::  grosip          !: 
    4646 
    4747   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prmax    !: optimal production = f(temperature) 
     
    472472      NAMELIST/nampisprod/ pislope, pislope2, ln_newprod, bresp, excret, excret2,  & 
    473473         &                 chlcnm, chlcdm, chlcmin, fecnm, fecdm, grosip 
     474      INTEGER :: ios                 ! Local integer output status for namelist read 
    474475      !!---------------------------------------------------------------------- 
    475476 
    476       REWIND( numnatp )                     ! read numnatp 
    477       READ  ( numnatp, nampisprod ) 
     477      REWIND( numnatp_ref )              ! Namelist nampisprod in reference namelist : Pisces phytoplankton production 
     478      READ  ( numnatp_ref, nampisprod, IOSTAT = ios, ERR = 901) 
     479901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisprod in reference namelist', lwp ) 
     480 
     481      REWIND( numnatp_cfg )              ! Namelist nampisprod in configuration namelist : Pisces phytoplankton production 
     482      READ  ( numnatp_cfg, nampisprod, IOSTAT = ios, ERR = 902 ) 
     483902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisprod in configuration namelist', lwp ) 
     484      WRITE ( numonp, nampisprod ) 
    478485 
    479486      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r3496 r4147  
    3838 
    3939   !! * Shared module variables 
    40    REAL(wp), PUBLIC ::  xremik    = 0.3_wp    !: remineralisation rate of POC  
    41    REAL(wp), PUBLIC ::  xremip    = 0.025_wp  !: remineralisation rate of DOC 
    42    REAL(wp), PUBLIC ::  nitrif    = 0.05_wp    !: NH4 nitrification rate  
    43    REAL(wp), PUBLIC ::  xsirem    = 0.003_wp  !: remineralisation rate of POC  
    44    REAL(wp), PUBLIC ::  xsiremlab = 0.025_wp  !: fast remineralisation rate of POC  
    45    REAL(wp), PUBLIC ::  xsilab    = 0.31_wp    !: fraction of labile biogenic silica  
    46    REAL(wp), PUBLIC ::  oxymin    = 1.e-6_wp  !: halk saturation constant for anoxia  
     40   REAL(wp), PUBLIC ::  xremik    !: remineralisation rate of POC  
     41   REAL(wp), PUBLIC ::  xremip    !: remineralisation rate of DOC 
     42   REAL(wp), PUBLIC ::  nitrif    !: NH4 nitrification rate  
     43   REAL(wp), PUBLIC ::  xsirem    !: remineralisation rate of POC  
     44   REAL(wp), PUBLIC ::  xsiremlab !: fast remineralisation rate of POC  
     45   REAL(wp), PUBLIC ::  xsilab    !: fraction of labile biogenic silica  
     46   REAL(wp), PUBLIC ::  oxymin    !: halk saturation constant for anoxia  
    4747 
    4848 
     
    349349      NAMELIST/nampisrem/ xremik, xremip, nitrif, xsirem, xsiremlab, xsilab,   & 
    350350      &                   oxymin 
    351  
    352       REWIND( numnatp )                     ! read numnatp 
    353       READ  ( numnatp, nampisrem ) 
     351      INTEGER :: ios                 ! Local integer output status for namelist read 
     352 
     353      REWIND( numnatp_ref )              ! Namelist nampisrem in reference namelist : Pisces remineralization 
     354      READ  ( numnatp_ref, nampisrem, IOSTAT = ios, ERR = 901) 
     355901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisrem in reference namelist', lwp ) 
     356 
     357      REWIND( numnatp_cfg )              ! Namelist nampisrem in configuration namelist : Pisces remineralization 
     358      READ  ( numnatp_cfg, nampisrem, IOSTAT = ios, ERR = 902 ) 
     359902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisrem in configuration namelist', lwp ) 
     360      WRITE ( numonp, nampisrem ) 
    354361 
    355362      IF(lwp) THEN                         ! control print 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r3557 r4147  
    2626 
    2727   !! * Shared module variables 
    28    LOGICAL , PUBLIC  :: ln_dust     = .FALSE.    !: boolean for dust input from the atmosphere 
    29    LOGICAL , PUBLIC  :: ln_solub    = .FALSE.    !: boolean for variable solubility of atmospheric iron 
    30    LOGICAL , PUBLIC  :: ln_river    = .FALSE.    !: boolean for river input of nutrients 
    31    LOGICAL , PUBLIC  :: ln_ndepo    = .FALSE.    !: boolean for atmospheric deposition of N 
    32    LOGICAL , PUBLIC  :: ln_ironsed  = .FALSE.    !: boolean for Fe input from sediments 
    33    LOGICAL , PUBLIC  :: ln_hydrofe  = .FALSE.    !: boolean for Fe input from hydrothermal vents 
    34    LOGICAL , PUBLIC  :: ln_ironice  = .FALSE.    !: boolean for Fe input from sea ice 
    35    REAL(wp), PUBLIC  :: sedfeinput  = 1.E-9_wp   !: Coastal release of Iron 
    36    REAL(wp), PUBLIC  :: dustsolub   = 0.014_wp   !: Solubility of the dust 
    37    REAL(wp), PUBLIC  :: icefeinput  = 10E-9_wp   !: Iron concentration in sea ice 
    38    REAL(wp), PUBLIC  :: wdust       = 2.0_wp     !: Sinking speed of the dust  
    39    REAL(wp), PUBLIC  :: nitrfix     = 1E-7_wp    !: Nitrogen fixation rate    
    40    REAL(wp), PUBLIC  :: diazolight  = 50._wp     !: Nitrogen fixation sensitivty to light  
    41    REAL(wp), PUBLIC  :: concfediaz  = 1.E-10_wp  !: Fe half-saturation Cste for diazotrophs  
    42    REAL(wp)          :: hratio      = 9.E-5_wp   !: Fe:3He ratio assumed for vent iron supply 
     28   LOGICAL , PUBLIC  :: ln_dust     !: boolean for dust input from the atmosphere 
     29   LOGICAL , PUBLIC  :: ln_solub    !: boolean for variable solubility of atmospheric iron 
     30   LOGICAL , PUBLIC  :: ln_river    !: boolean for river input of nutrients 
     31   LOGICAL , PUBLIC  :: ln_ndepo    !: boolean for atmospheric deposition of N 
     32   LOGICAL , PUBLIC  :: ln_ironsed  !: boolean for Fe input from sediments 
     33   LOGICAL , PUBLIC  :: ln_hydrofe  !: boolean for Fe input from hydrothermal vents 
     34   LOGICAL , PUBLIC  :: ln_ironice  !: boolean for Fe input from sea ice 
     35   REAL(wp), PUBLIC  :: sedfeinput  !: Coastal release of Iron 
     36   REAL(wp), PUBLIC  :: dustsolub   !: Solubility of the dust 
     37   REAL(wp), PUBLIC  :: icefeinput  !: Iron concentration in sea ice 
     38   REAL(wp), PUBLIC  :: wdust       !: Sinking speed of the dust  
     39   REAL(wp), PUBLIC  :: nitrfix     !: Nitrogen fixation rate    
     40   REAL(wp), PUBLIC  :: diazolight  !: Nitrogen fixation sensitivty to light  
     41   REAL(wp), PUBLIC  :: concfediaz  !: Fe half-saturation Cste for diazotrophs  
     42   REAL(wp)          :: hratio      !: Fe:3He ratio assumed for vent iron supply 
    4343 
    4444   LOGICAL , PUBLIC  :: ll_sbc 
     
    186186      INTEGER  :: numdust, numsolub, numriv, numiron, numdepo, numhydro 
    187187      INTEGER  :: ierr, ierr1, ierr2, ierr3 
     188      INTEGER  :: ios                 ! Local integer output status for namelist read 
    188189      REAL(wp) :: zexpide, zdenitide, zmaskt 
    189190      REAL(wp) :: ztimes_dust, ztimes_riv, ztimes_ndep  
     
    209210      ! 
    210211      !                            !* set file information 
    211       cn_dir  = './'            ! directory in which the model is executed 
    212       ! ... default values (NB: frequency positive => hours, negative => months) 
    213       !                  !   file       ! frequency !  variable   ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   ! 
    214       !                  !   name       !  (hours)  !   name      !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      ! 
    215       sn_dust     = FLD_N( 'dust'       ,    -1     ,  'dust'     ,  .true.    , .true.  ,   'yearly'  , ''       , ''         ) 
    216       sn_solub    = FLD_N( 'solubility' ,    -12    ,  'solub'    ,  .true.    , .true.  ,   'yearly'  , ''       , ''         ) 
    217       sn_riverdic = FLD_N( 'river'      ,   -12     ,  'riverdic' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    218       sn_riverdoc = FLD_N( 'river'      ,   -12     ,  'riverdoc' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    219       sn_riverdin = FLD_N( 'river'      ,   -12     ,  'riverdin' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    220       sn_riverdon = FLD_N( 'river'      ,   -12     ,  'riverdon' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    221       sn_riverdip = FLD_N( 'river'      ,   -12     ,  'riverdip' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    222       sn_riverdop = FLD_N( 'river'      ,   -12     ,  'riverdop' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    223       sn_riverdsi = FLD_N( 'river'      ,   -12     ,  'riverdsi' ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    224       sn_ndepo    = FLD_N( 'ndeposition',   -12     ,  'ndep'     ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    225       sn_ironsed  = FLD_N( 'ironsed'    ,   -12     ,  'bathy'    ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    226       sn_hydrofe  = FLD_N( 'hydrofe'    ,   -12     ,  'hydro'    ,  .false.   , .true.  ,   'yearly'  , ''       , ''         ) 
    227  
    228       REWIND( numnatp )                     ! read numnatp 
    229       READ  ( numnatp, nampissbc ) 
     212 
     213      REWIND( numnatp_ref )              ! Namelist nampissbc in reference namelist : Pisces external sources of nutrients 
     214      READ  ( numnatp_ref, nampissbc, IOSTAT = ios, ERR = 901) 
     215901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in reference namelist', lwp ) 
     216 
     217      REWIND( numnatp_cfg )              ! Namelist nampissbc in configuration namelist : Pisces external sources of nutrients 
     218      READ  ( numnatp_cfg, nampissbc, IOSTAT = ios, ERR = 902 ) 
     219902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in configuration namelist', lwp ) 
     220      WRITE ( numonp, nampissbc ) 
    230221 
    231222      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r3829 r4147  
    4444 
    4545#if  defined key_kriest 
    46    REAL(wp) ::  xkr_sfact    = 250.     !: Sinking factor 
    47    REAL(wp) ::  xkr_stick    = 0.2      !: Stickiness 
    48    REAL(wp) ::  xkr_nnano    = 2.337    !: Nbr of cell in nano size class 
    49    REAL(wp) ::  xkr_ndiat    = 3.718    !: Nbr of cell in diatoms size class 
    50    REAL(wp) ::  xkr_nmicro   = 3.718    !: Nbr of cell in microzoo size class 
    51    REAL(wp) ::  xkr_nmeso    = 7.147    !: Nbr of cell in mesozoo  size class 
    52    REAL(wp) ::  xkr_naggr    = 9.877    !: Nbr of cell in aggregates  size class 
     46   REAL(wp) ::  xkr_sfact    !: Sinking factor 
     47   REAL(wp) ::  xkr_stick    !: Stickiness 
     48   REAL(wp) ::  xkr_nnano    !: Nbr of cell in nano size class 
     49   REAL(wp) ::  xkr_ndiat    !: Nbr of cell in diatoms size class 
     50   REAL(wp) ::  xkr_nmicro   !: Nbr of cell in microzoo size class 
     51   REAL(wp) ::  xkr_nmeso    !: Nbr of cell in mesozoo  size class 
     52   REAL(wp) ::  xkr_naggr    !: Nbr of cell in aggregates  size class 
    5353 
    5454   REAL(wp) ::  xkr_frac  
     
    538538      !!---------------------------------------------------------------------- 
    539539      INTEGER  ::   jk, jn, kiter 
     540      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    540541      REAL(wp) ::   znum, zdiv 
    541542      REAL(wp) ::   zws, zwr, zwl,wmax, znummax 
     
    548549      IF( nn_timing == 1 )  CALL timing_start('p4z_sink_init') 
    549550      ! 
    550       REWIND( numnatp )                     ! read nampiskrs 
    551       READ  ( numnatp, nampiskrs ) 
     551 
     552      REWIND( numnatp_ref )              ! Namelist nampiskrs in reference namelist : Pisces sinking Kriest 
     553      READ  ( numnatp_ref, nampiskrs, IOSTAT = ios, ERR = 901) 
     554901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in reference namelist', lwp ) 
     555 
     556      REWIND( numnatp_cfg )              ! Namelist nampiskrs in configuration namelist : Pisces sinking Kriest 
     557      READ  ( numnatp_cfg, nampiskrs, IOSTAT = ios, ERR = 902 ) 
     558902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in configuration namelist', lwp ) 
     559      WRITE ( numonp, nampiskrs ) 
    552560 
    553561      IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r3780 r4147  
    145145      CALL p4z_chk_mass( kt ) ! Mass conservation checking 
    146146 
     147      IF ( kt == nittrc000 ) CALL FLUSH    ( numonp )     ! flush output namelist PISCES 
    147148      IF( nn_timing == 1 )  CALL timing_stop('p4z_sms') 
    148149      ! 
     
    166167      NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp, ln_pisclo 
    167168      NAMELIST/nampismass/ ln_check_mass 
    168       !!---------------------------------------------------------------------- 
    169  
    170  
    171       REWIND( numnatp ) 
    172       READ  ( numnatp, nampisbio ) 
     169      INTEGER :: ios                 ! Local integer output status for namelist read 
     170      !!---------------------------------------------------------------------- 
     171 
     172      REWIND( numnatp_ref )              ! Namelist nampisbio in reference namelist : Pisces variables 
     173      READ  ( numnatp_ref, nampisbio, IOSTAT = ios, ERR = 901) 
     174901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in reference namelist', lwp ) 
     175 
     176      REWIND( numnatp_cfg )              ! Namelist nampisbio in configuration namelist : Pisces variables 
     177      READ  ( numnatp_cfg, nampisbio, IOSTAT = ios, ERR = 902 ) 
     178902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in configuration namelist', lwp ) 
     179      WRITE ( numonp, nampisbio ) 
    173180 
    174181      IF(lwp) THEN                         ! control print 
     
    187194      !                               ! nampiskrp : kriest parameters 
    188195      !                               ! ----------------------------- 
    189       xkr_eta      = 0.62 
    190       xkr_zeta     = 1.62 
    191       xkr_ncontent = 5.7E-6 
    192       xkr_mass_min = 0.0002 
    193       xkr_mass_max = 1. 
    194  
    195       REWIND( numnatp )                     ! read natkriest 
    196       READ  ( numnatp, nampiskrp ) 
     196      REWIND( numnatp_ref )              ! Namelist nampiskrp in reference namelist : Pisces Kriest 
     197      READ  ( numnatp_ref, nampiskrp, IOSTAT = ios, ERR = 903) 
     198903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in reference namelist', lwp ) 
     199 
     200      REWIND( numnatp_cfg )              ! Namelist nampiskrp in configuration namelist : Pisces Kriest 
     201      READ  ( numnatp_cfg, nampiskrp, IOSTAT = ios, ERR = 904 ) 
     202904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in configuration namelist', lwp ) 
     203      WRITE ( numonp, nampiskrp ) 
    197204 
    198205      IF(lwp) THEN 
     
    213220#endif 
    214221 
    215       ln_pisdmp = .true. 
    216       nn_pisdmp = 1 
    217       ln_pisclo = .false. 
    218  
    219       REWIND( numnatp ) 
    220       READ  ( numnatp, nampisdmp ) 
     222      REWIND( numnatp_ref )              ! Namelist nampisdmp in reference namelist : Pisces damping 
     223      READ  ( numnatp_ref, nampisdmp, IOSTAT = ios, ERR = 905) 
     224905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in reference namelist', lwp ) 
     225 
     226      REWIND( numnatp_cfg )              ! Namelist nampisdmp in configuration namelist : Pisces damping 
     227      READ  ( numnatp_cfg, nampisdmp, IOSTAT = ios, ERR = 906 ) 
     228906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in configuration namelist', lwp ) 
     229      WRITE ( numonp, nampisdmp ) 
    221230 
    222231      IF(lwp) THEN                         ! control print 
     
    229238      ENDIF 
    230239 
    231       ln_check_mass = .false. 
    232       REWIND( numnatp )        
    233       READ  ( numnatp, nampismass ) 
     240      REWIND( numnatp_ref )              ! Namelist nampismass in reference namelist : Pisces mass conservation check 
     241      READ  ( numnatp_ref, nampismass, IOSTAT = ios, ERR = 907) 
     242907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in reference namelist', lwp ) 
     243 
     244      REWIND( numnatp_cfg )              ! Namelist nampismass in configuration namelist : Pisces mass conservation check  
     245      READ  ( numnatp_cfg, nampismass, IOSTAT = ios, ERR = 908 ) 
     246908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in configuration namelist', lwp ) 
     247      WRITE ( numonp, nampismass ) 
     248 
    234249      IF(lwp) THEN                         ! control print 
    235250         WRITE(numout,*) ' ' 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r3780 r4147  
    1717   PUBLIC 
    1818 
    19    INTEGER ::   numnatp 
     19   INTEGER ::   numnatp_ref = -1           !! Logical units for namelist pisces 
     20   INTEGER ::   numnatp_cfg = -1           !! Logical units for namelist pisces 
     21   INTEGER ::   numonp      = -1           !! Logical unit for namelist pisces output 
    2022 
    2123   !!*  Biological fluxes for light : variables shared by pisces & lobster 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90

    r3680 r4147  
    4949      !! 
    5050      INTEGER :: jl, jn 
     51      INTEGER :: ios                 ! Local integer output status for namelist read 
    5152      TYPE(DIAG), DIMENSION(jp_pisces_2d)  :: pisdia2d 
    5253      TYPE(DIAG), DIMENSION(jp_pisces_3d)  :: pisdia3d 
     
    6970#endif 
    7071      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    71       CALL ctl_opn( numnatp, TRIM( clname ), 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    72  
     72      CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     73      CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     74      CALL ctl_opn( numonp     , 'output.namelist.pis' , 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    7375      ! 
    7476      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN 
     
    7678         ! Namelist nampisdia 
    7779         ! ------------------- 
    78          DO jl = 1, jp_pisces_2d 
    79             WRITE(pisdia2d(jl)%sname,'("2D_",I1)') jl                      ! short name 
    80             WRITE(pisdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name 
    81             pisdia2d(jl)%units = ' '                                       ! units 
    82          END DO 
    83          !                                 ! 3D output arrays 
    84          DO jl = 1, jp_pisces_3d 
    85             WRITE(pisdia3d(jl)%sname,'("3D_",I1)') jl                      ! short name 
    86             WRITE(pisdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl    ! long name 
    87             pisdia3d(jl)%units = ' '                                       ! units 
    88          END DO 
     80         REWIND( numnatp_ref )              ! Namelist nampisdia in reference namelist : Pisces diagnostics 
     81         READ  ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901) 
     82901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in reference namelist', lwp ) 
    8983 
    90          REWIND( numnatp )               !  
    91          READ  ( numnatp, nampisdia ) 
     84         REWIND( numnatp_cfg )              ! Namelist nampisdia in configuration namelist : Pisces diagnostics 
     85         READ  ( numnatp_cfg, nampisdia, IOSTAT = ios, ERR = 902 ) 
     86902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in configuration namelist', lwp ) 
     87         WRITE ( numonp, nampisdia ) 
    9288 
    9389         DO jl = 1, jp_pisces_2d 
     
    131127         ! Namelist nampisdbi 
    132128         ! ------------------- 
    133          DO jl = 1, jp_pisces_trd 
    134             IF(     jl <  10 ) THEN   ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I1)') jl      ! short name 
    135             ELSEIF (jl < 100 ) THEN   ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I2)') jl 
    136             ELSE                      ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I3)') jl 
    137             ENDIF 
    138             WRITE(pisdiabio(jl)%lname,'("BIOLOGICAL TREND NUMBER ",I2)') jl                 ! long name 
    139             pisdiabio(jl)%units = 'mmoleN/m3/s '                                            ! units 
    140          END DO 
     129         REWIND( numnatp_ref )              ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics 
     130         READ  ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903) 
     131903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in reference namelist', lwp ) 
    141132 
    142          REWIND( numnatp ) 
    143          READ  ( numnatp, nampisdbi ) 
     133         REWIND( numnatp_cfg )              ! Namelist nampisdbi in configuration namelist : Pisces add. diagnostics 
     134         READ  ( numnatp_cfg, nampisdbi, IOSTAT = ios, ERR = 904 ) 
     135904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in configuration namelist', lwp ) 
     136         WRITE ( numonp, nampisdbi ) 
    144137 
    145138         DO jl = 1, jp_pisces_trd 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90

    r3680 r4147  
    5151      ELSE               ;   CALL p2z_sms( kt )   !  LOBSTER 
    5252      ENDIF 
     53 
    5354      ! 
    5455   END SUBROUTINE trc_sms_pisces 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90

    r3294 r4147  
    3434   LOGICAL , PUBLIC, PARAMETER ::   lk_trcdmp = .TRUE.   !: internal damping flag 
    3535 
    36    !                                !!* Namelist namtrc_dmp : passive tracer newtonian damping * 
    37    INTEGER  ::   nn_hdmp_tr =   -1   ! = 0/-1/'latitude' for damping over passive tracer 
    38    INTEGER  ::   nn_zdmp_tr =    0   ! = 0/1/2 flag for damping in the mixed layer 
    39    REAL(wp) ::   rn_surf_tr =   50.  ! surface time scale for internal damping        [days] 
    40    REAL(wp) ::   rn_bot_tr  =  360.  ! bottom time scale for internal damping         [days] 
    41    REAL(wp) ::   rn_dep_tr  =  800.  ! depth of transition between rn_surf and rn_bot [meters] 
    42    INTEGER  ::   nn_file_tr =    2   ! = 1 create a damping.coeff NetCDF file  
     36   !                          !!* Namelist namtrc_dmp : passive tracer newtonian damping * 
     37   INTEGER  ::   nn_hdmp_tr    ! = 0/-1/'latitude' for damping over passive tracer 
     38   INTEGER  ::   nn_zdmp_tr    ! = 0/1/2 flag for damping in the mixed layer 
     39   REAL(wp) ::   rn_surf_tr    ! surface time scale for internal damping        [days] 
     40   REAL(wp) ::   rn_bot_tr     ! bottom time scale for internal damping         [days] 
     41   REAL(wp) ::   rn_dep_tr     ! depth of transition between rn_surf and rn_bot [meters] 
     42   INTEGER  ::   nn_file_tr    ! = 1 create a damping.coeff NetCDF file  
    4343 
    4444   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   restotr   ! restoring coeff. on tracers (s-1) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90

    r3718 r4147  
    1515   USE trc                 ! ocean passive tracers variables 
    1616   USE in_out_manager      ! ocean dynamics and active tracers variables 
     17   USE lib_mpp           ! distributed memory computing library 
    1718 
    1819   IMPLICIT NONE 
     
    2122   PUBLIC   trc_nam_trp    ! routine called by step module 
    2223  
    23    !                                                 !!: ** Advection (nam_trcadv) ** 
    24    LOGICAL , PUBLIC ::   ln_trcadv_cen2   = .FALSE.   ! 2nd order centered scheme flag 
    25    LOGICAL , PUBLIC ::   ln_trcadv_tvd    = .TRUE.    ! TVD scheme flag 
    26    LOGICAL , PUBLIC ::   ln_trcadv_muscl  = .FALSE.   ! MUSCL scheme flag 
    27    LOGICAL , PUBLIC ::   ln_trcadv_muscl2 = .FALSE.   ! MUSCL2 scheme flag 
    28    LOGICAL , PUBLIC ::   ln_trcadv_ubs    = .FALSE.   ! UBS scheme flag 
    29    LOGICAL , PUBLIC ::   ln_trcadv_qck    = .FALSE.   ! QUICKEST scheme flag 
    30    LOGICAL , PUBLIC ::   ln_trcadv_msc_ups= .FALSE.   ! use upstream scheme within muscl 
    31  
    32  
    33    !                                                 !!: ** lateral mixing namelist (nam_trcldf) ** 
    34    LOGICAL , PUBLIC ::   ln_trcldf_diff  = .FALSE.    !: flag of perform or not the lateral diff. 
    35    LOGICAL , PUBLIC ::   ln_trcldf_lap   = .TRUE.     !: laplacian operator 
    36    LOGICAL , PUBLIC ::   ln_trcldf_bilap = .FALSE.    !: bilaplacian operator 
    37    LOGICAL , PUBLIC ::   ln_trcldf_level = .FALSE.    !: iso-level direction 
    38    LOGICAL , PUBLIC ::   ln_trcldf_hor   = .FALSE.    !: horizontal (geopotential) direction 
    39    LOGICAL , PUBLIC ::   ln_trcldf_iso   = .TRUE.     !: iso-neutral direction 
    40    REAL(wp), PUBLIC ::   rn_ahtrc_0                   !: diffusivity coefficient for passive tracer (m2/s) 
    41    REAL(wp), PUBLIC ::   rn_ahtrb_0                   !: background diffusivity coefficient for passive tracer (m2/s) 
    42  
    43    !                                                 !!: ** Treatment of Negative concentrations ( nam_trcrad ) 
    44    LOGICAL , PUBLIC ::   ln_trcrad       = .TRUE.     !: flag to artificially correct negative concentrations 
    45  
    46    !                                                 !!: ** Vertical diffusion (nam_trczdf) ** 
    47    LOGICAL , PUBLIC ::   ln_trczdf_exp = .FALSE.      !: explicit vertical diffusion scheme flag 
    48    INTEGER , PUBLIC ::   nn_trczdf_exp = 3             !: number of sub-time step (explicit time stepping) 
     24   !                                        !!: ** Advection (namtrc_adv) ** 
     25   LOGICAL , PUBLIC ::   ln_trcadv_cen2      ! 2nd order centered scheme flag 
     26   LOGICAL , PUBLIC ::   ln_trcadv_tvd       ! TVD scheme flag 
     27   LOGICAL , PUBLIC ::   ln_trcadv_muscl     ! MUSCL scheme flag 
     28   LOGICAL , PUBLIC ::   ln_trcadv_muscl2    ! MUSCL2 scheme flag 
     29   LOGICAL , PUBLIC ::   ln_trcadv_ubs       ! UBS scheme flag 
     30   LOGICAL , PUBLIC ::   ln_trcadv_qck       ! QUICKEST scheme flag 
     31   LOGICAL , PUBLIC ::   ln_trcadv_msc_ups   ! use upstream scheme within muscl 
     32 
     33 
     34   !                                        !!: ** lateral mixing namelist (nam_trcldf) ** 
     35   LOGICAL , PUBLIC ::   ln_trcldf_diff      !: flag of perform or not the lateral diff. 
     36   LOGICAL , PUBLIC ::   ln_trcldf_lap       !: laplacian operator 
     37   LOGICAL , PUBLIC ::   ln_trcldf_bilap     !: bilaplacian operator 
     38   LOGICAL , PUBLIC ::   ln_trcldf_level     !: iso-level direction 
     39   LOGICAL , PUBLIC ::   ln_trcldf_hor       !: horizontal (geopotential) direction 
     40   LOGICAL , PUBLIC ::   ln_trcldf_iso       !: iso-neutral direction 
     41   REAL(wp), PUBLIC ::   rn_ahtrc_0          !: diffusivity coefficient for passive tracer (m2/s) 
     42   REAL(wp), PUBLIC ::   rn_ahtrb_0          !: background diffusivity coefficient for passive tracer (m2/s) 
     43 
     44   !                                        !!: ** Treatment of Negative concentrations ( nam_trcrad ) 
     45   LOGICAL , PUBLIC ::   ln_trcrad           !: flag to artificially correct negative concentrations 
     46 
     47   !                                        !!: ** Vertical diffusion (nam_trczdf) ** 
     48   LOGICAL , PUBLIC ::   ln_trczdf_exp       !: explicit vertical diffusion scheme flag 
     49   INTEGER , PUBLIC ::   nn_trczdf_exp       !: number of sub-time step (explicit time stepping) 
    4950 
    5051 
     
    7374      !! ** Purpose :   Read Namelist for tracer transport option 
    7475      !!---------------------------------------------------------------------- 
     76      INTEGER ::  ios                 ! Local integer output status for namelist read 
    7577      NAMELIST/namtrc_adv/ ln_trcadv_cen2 , ln_trcadv_tvd   ,    & 
    7678         &                 ln_trcadv_muscl, ln_trcadv_muscl2,    & 
     
    9294      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 
    9395 
    94       REWIND ( numnat )               ! Read Namelist namtrc_adv : tracer advection scheme 
    95       READ   ( numnat, namtrc_adv ) 
     96      REWIND( numnat_ref )              ! Namelist namtrc_adv in reference namelist : Tracer advection scheme 
     97      READ  ( numnat_ref, namtrc_adv, IOSTAT = ios, ERR = 901) 
     98901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in reference namelist', lwp ) 
     99 
     100      REWIND( numnat_cfg )              ! Namelist namtrc_adv in configuration namelist : Tracer advection scheme 
     101      READ  ( numnat_cfg, namtrc_adv, IOSTAT = ios, ERR = 902 ) 
     102902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in configuration namelist', lwp ) 
     103      WRITE ( numont, namtrc_adv ) 
    96104 
    97105      IF(lwp) THEN                    ! Namelist print 
     
    108116      ENDIF 
    109117      ! 
    110       REWIND( numnat )                ! Namelist namtrc_ldf 
    111       READ  ( numnat, namtrc_ldf ) 
     118      REWIND( numnat_ref )              ! Namelist namtrc_ldf in reference namelist : Tracer lateral diffusive operator 
     119      READ  ( numnat_ref, namtrc_ldf, IOSTAT = ios, ERR = 903) 
     120903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in reference namelist', lwp ) 
     121 
     122      REWIND( numnat_cfg )              ! Namelist namtrc_ldf in configuration namelist : Tracer lateral diffusive operator 
     123      READ  ( numnat_cfg, namtrc_ldf, IOSTAT = ios, ERR = 904 ) 
     124904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in configuration namelist', lwp ) 
     125      WRITE ( numont, namtrc_ldf ) 
    112126 
    113127      IF(lwp) THEN                    ! Namelist print 
     
    127141 
    128142      !                                ! Vertical mixing 
    129       REWIND( numnat )                 !   ! Read namtopzdf namelist 
    130       READ  ( numnat, namtrc_zdf ) 
     143      REWIND( numnat_ref )              ! Namelist namtrc_zdf in reference namelist : Tracer vertical mixing 
     144      READ  ( numnat_ref, namtrc_zdf, IOSTAT = ios, ERR = 905) 
     145905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in reference namelist', lwp ) 
     146 
     147      REWIND( numnat_cfg )              ! Namelist namtrc_zdf in configuration namelist : Tracer vertical mixing 
     148      READ  ( numnat_cfg, namtrc_zdf, IOSTAT = ios, ERR = 906 ) 
     149906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in configuration namelist', lwp ) 
     150      WRITE ( numont, namtrc_zdf ) 
    131151 
    132152      IF(lwp) THEN                     !   ! Control print 
     
    138158 
    139159      ! 
    140       REWIND( numnat )                 !   Read Namelist namtoprad 
    141       READ  ( numnat, namtrc_rad ) 
     160      REWIND( numnat_ref )              ! Namelist namtrc_rad in reference namelist : Tracer negative concentrations 
     161      READ  ( numnat_ref, namtrc_rad, IOSTAT = ios, ERR = 907) 
     162907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in reference namelist', lwp ) 
     163 
     164      REWIND( numnat_cfg )              ! Namelist namtrc_rad in configuration namelist : Tracer negative concentrations 
     165      READ  ( numnat_cfg, namtrc_rad, IOSTAT = ios, ERR = 908 ) 
     166908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in configuration namelist', lwp ) 
     167      WRITE ( numont, namtrc_rad ) 
    142168 
    143169      IF(lwp) THEN                     !   ! Control print 
     
    149175 
    150176# if defined key_trcdmp 
    151       REWIND ( numnat )                  ! Read Namelist namtra_dmp : temperature and salinity damping term 
    152       READ   ( numnat, namtrc_dmp ) 
     177      REWIND( numnat_ref )              ! Namelist namtrc_dmp in reference namelist : Passive tracers newtonian damping 
     178      READ  ( numnat_ref, namtrc_dmp, IOSTAT = ios, ERR = 909) 
     179909   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in reference namelist', lwp ) 
     180 
     181      REWIND( numnat_cfg )              ! Namelist namtrc_dmp in configuration namelist : Passive tracers newtonian damping 
     182      READ  ( numnat_cfg, namtrc_dmp, IOSTAT = ios, ERR = 910) 
     183910   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in configuration namelist', lwp ) 
     184      WRITE ( numont, namtrc_dmp ) 
     185 
    153186      IF( lzoom )   nn_zdmp_trc = 0           ! restoring to climatology at closed north or south boundaries 
    154187 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc.F90

    r3792 r4147  
    434434      ENDIF 
    435435 
    436 #if ! defined key_gyre 
     436      IF ( cp_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration 
    437437      ! GYRE : for diagnostic fields, are needed if cyclic B.C. are present, but not for purely MPI comm.  
    438438      ! therefore we do not call lbc_lnk in GYRE config. (closed basin, no cyclic B.C.) 
    439       DO jn = 1, jptra 
    440          IF( ln_trdtrc(jn) ) THEN 
    441             DO jl = 1, jpltrd_trc 
    442                CALL lbc_lnk( tmltrd_trc(:,:,jl,jn), 'T', 1. )        ! lateral boundary conditions 
    443             END DO 
    444          ENDIF 
    445       END DO 
    446 #endif 
     439         DO jn = 1, jptra 
     440            IF( ln_trdtrc(jn) ) THEN 
     441               DO jl = 1, jpltrd_trc 
     442                  CALL lbc_lnk( tmltrd_trc(:,:,jl,jn), 'T', 1. )        ! lateral boundary conditions 
     443               END DO 
     444            ENDIF 
     445         END DO 
     446      ENDIF 
    447447      ! ====================================================================== 
    448448      ! II. Cumulate the trends over the analysis window 
     
    573573                
    574574         !-- Lateral boundary conditions 
    575 #if ! defined key_gyre 
    576  
    577                CALL lbc_lnk( ztmltot(:,:,jn) , 'T', 1. )   ;   CALL lbc_lnk( ztmlres(:,:,jn) , 'T', 1. ) 
    578                CALL lbc_lnk( ztmlatf(:,:,jn) , 'T', 1. )   ;   CALL lbc_lnk( ztmlrad(:,:,jn) , 'T', 1. ) 
    579  
    580 #endif 
     575               IF ( cp_cfg .NE. 'gyre' ) THEN 
     576                  CALL lbc_lnk( ztmltot(:,:,jn) , 'T', 1. )   ;   CALL lbc_lnk( ztmlres(:,:,jn) , 'T', 1. ) 
     577                  CALL lbc_lnk( ztmlatf(:,:,jn) , 'T', 1. )   ;   CALL lbc_lnk( ztmlrad(:,:,jn) , 'T', 1. ) 
     578               ENDIF 
     579 
    581580 
    582581#if defined key_diainstant 
     
    624623                  &                                               + tmltrd_rad_sumb_trc(:,:,jn) 
    625624 
    626          !-- Lateral boundary conditions 
    627 #if ! defined key_gyre          
    628                CALL lbc_lnk( ztmltot2(:,:,jn), 'T', 1. ) 
    629                CALL lbc_lnk( ztmlres2(:,:,jn), 'T', 1. ) 
    630                DO jl = 1, jpltrd_trc 
    631                   CALL lbc_lnk( ztmltrd2(:,:,jl,jn), 'T', 1. )       ! will be output in the NetCDF trends file 
    632                END DO 
    633 #endif 
     625         !-- Lateral boundary conditions  
     626               IF ( cp_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration     
     627                  CALL lbc_lnk( ztmltot2(:,:,jn), 'T', 1. ) 
     628                  CALL lbc_lnk( ztmlres2(:,:,jn), 'T', 1. ) 
     629                  DO jl = 1, jpltrd_trc 
     630                     CALL lbc_lnk( ztmltrd2(:,:,jl,jn), 'T', 1. )       ! will be output in the NetCDF trends file 
     631                  END DO 
     632               ENDIF 
     633 
    634634            ENDIF 
    635635         END DO 
     
    10091009 
    10101010         !-- Lateral boundary conditions 
    1011 #if ! defined key_gyre 
    1012          ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut 
    1013          DO jn = 1, jpdiabio 
    1014            CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. ) 
    1015          ENDDO 
    1016 #endif 
     1011         IF ( cp_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration  
     1012            ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut 
     1013            DO jn = 1, jpdiabio 
     1014              CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. ) 
     1015            ENDDO 
     1016         ENDIF 
     1017 
    10171018         IF( lldebug ) THEN 
    10181019            ! 
     
    12731274      ! ----------------------------------------- 
    12741275      IF( ln_mskland )   THEN   ;   clop = "only(x)"   ! put 1.e+20 on land (very expensive!!) 
    1275       ELSE                      ;   clop = "x"         ! no use of the mask value (require less cpu time) 
     1276      ELSE                      ;   clop = "x"         ! no use of the mask value (require less cp time) 
    12761277      ENDIF 
    12771278#  if defined key_diainstant 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r3680 r4147  
    1313 
    1414   !* Domain size * 
    15    USE par_oce , ONLY :   cp_cfg   =>   cp_cfg     !: name of the configuration 
    16    USE par_oce , ONLY :   jp_cfg   =>   jp_cfg     !: resolution of the configuration 
    17    USE par_oce , ONLY :   jpiglo   =>   jpiglo     !: first  dimension of global domain --> i 
    18    USE par_oce , ONLY :   jpjglo   =>   jpjglo     !: second dimension of global domain --> j 
    1915   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i  
    2016   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j   
     
    2420   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1   
    2521   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj 
    26    USE par_oce , ONLY :   jpidta   =>   jpidta     !: first horizontal dimension  > or = jpi 
    27    USE par_oce , ONLY :   jpjdta   =>   jpjdta     !: second horizontal dimension > or = jpj 
    28    USE par_oce , ONLY :   jpkdta   =>   jpkdta     !: number of levels            > or = jpk 
    2922   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option 
    3023   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r3770 r4147  
    2121 
    2222   !! parameters for the control of passive tracers 
    23    !! -------------------------------------------------- 
    24    INTEGER, PUBLIC                                                 ::   numnat        !: logicla unit for the passive tracer NAMELIST 
     23   !! ---------------------------------------------    
     24   INTEGER, PUBLIC                                                 ::   numnat_ref = -1   !: logical unit for the reference passive tracer namelist_top_ref 
     25   INTEGER, PUBLIC                                                 ::   numnat_cfg = -1   !: logical unit for the reference passive tracer namelist_top_cfg 
     26   INTEGER, PUBLIC                                                 ::   numont     = -1   !: logical unit for the reference passive tracer namelist output output.namelist.top 
    2527   INTEGER, PUBLIC                                                 ::   numstr        !: logical unit for tracer statistics 
    2628   INTEGER, PUBLIC                                                 ::   numrtr        !: logical unit for trc restart (read ) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/trcdta.F90

    r3827 r4147  
    5353      !!---------------------------------------------------------------------- 
    5454      ! 
    55       INTEGER            :: jl, jn                   ! dummy loop indicies 
     55      INTEGER            :: jl, jn                           ! dummy loop indicies 
    5656      INTEGER            :: ierr0, ierr1, ierr2, ierr3       ! temporary integers 
     57      INTEGER            :: ios                              ! Local integer output status for namelist read 
    5758      CHARACTER(len=100) :: clndta, clntrc 
    5859      REAL(wp)           :: zfact 
    5960      ! 
    60       CHARACTER(len=100) :: cn_dir 
     61      CHARACTER(len=100)            :: cn_dir 
    6162      TYPE(FLD_N), DIMENSION(jptra) :: slf_i     ! array of namelist informations on the fields to read 
    6263      TYPE(FLD_N), DIMENSION(jptra) :: sn_trcdta 
    63       REAL(wp)   , DIMENSION(jptra) :: rn_trfac    ! multiplicative factor for tracer values 
     64      REAL(wp)   , DIMENSION(jptra) :: rn_trfac  ! multiplicative factor for tracer values 
    6465      !! 
    6566      NAMELIST/namtrc_dta/ sn_trcdta, cn_dir, rn_trfac  
     
    9091         WRITE(numout,*) ' ' 
    9192      ENDIF 
    92       !                         ! allocate the arrays (if necessary) 
    93       ! 
    94       cn_dir  = './'            ! directory in which the model is executed 
     93      ! 
    9594      DO jn = 1, jptra 
    9695         WRITE( clndta,'("TR_",I1)' ) jn 
     
    103102      END DO 
    104103      ! 
    105       REWIND( numnat )               ! read nattrc 
    106       READ  ( numnat, namtrc_dta ) 
     104      REWIND( numnat_ref )              ! Namelist namtrc_dta in reference namelist : Passive tracer input data 
     105      READ  ( numnat_ref, namtrc_dta, IOSTAT = ios, ERR = 901) 
     106901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dta in reference namelist', lwp ) 
     107 
     108      REWIND( numnat_cfg )              ! Namelist namtrc_dta in configuration namelist : Passive tracer input data 
     109      READ  ( numnat_cfg, namtrc_dta, IOSTAT = ios, ERR = 902 ) 
     110902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dta in configuration namelist', lwp ) 
     111      WRITE ( numont, namtrc_dta ) 
    107112 
    108113      IF( lwp ) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r3749 r4147  
    5555      !!--------------------------------------------------------------------- 
    5656      INTEGER ::  jn, ierr 
     57      INTEGER ::  ios                 ! Local integer output status for namelist read 
    5758      ! Definition of a tracer as a structure 
    5859      TYPE(PTRACER), DIMENSION(jptra) :: sn_tracer  ! type of tracer for saving if not key_iomput 
     
    7374      IF(lwp) WRITE(numout,*) '~~~~~~~' 
    7475 
    75       CALL ctl_opn( numnat, 'namelist_top', 'OLD', 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE. ) 
    76  
    77       ! Namelist nattrc (files) 
    78       ! ---------------------------------------------- 
    79       nn_dttrc      = 1                 ! default values 
    80       nn_writetrc   = 10  
    81       ln_top_euler  = .FALSE. 
    82       ln_rsttr      = .FALSE. 
    83       nn_rsttr      =  0 
    84       cn_trcrst_in  = 'restart_trc' 
    85       cn_trcrst_out = 'restart_trc' 
    86       ! 
    87       DO jn = 1, jptra 
    88          WRITE( sn_tracer(jn)%clsname,'("TR_",I1)'           ) jn 
    89          WRITE( sn_tracer(jn)%cllname,'("TRACER NUMBER ",I1)') jn 
    90          sn_tracer(jn)%clunit  = 'mmole/m3' 
    91          sn_tracer(jn)%llinit  = .FALSE. 
    92          sn_tracer(jn)%llsave  = .TRUE. 
    93       END DO 
    94       ln_trcdta = .FALSE. 
    95       ln_trcdmp = .FALSE. 
    96  
    97  
    98       REWIND( numnat )               ! read nattrc 
    99       READ  ( numnat, namtrc ) 
     76      CALL ctl_opn( numnat_ref, 'namelist_top_ref'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE. ) 
     77      CALL ctl_opn( numnat_cfg, 'namelist_top_cfg'   , 'OLD'    , 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE. ) 
     78      CALL ctl_opn( numont    , 'output.namelist.top', 'REPLACE', 'FORMATTED', 'SEQUENTIAL',-1, numout, .FALSE. ) 
     79 
     80      REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables 
     81      READ  ( numnat_ref, namtrc, IOSTAT = ios, ERR = 901) 
     82901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in reference namelist', lwp ) 
     83 
     84      REWIND( numnat_cfg )              ! Namelist namtrc in configuration namelist : Passive tracer variables 
     85      READ  ( numnat_cfg, namtrc, IOSTAT = ios, ERR = 902 ) 
     86902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp ) 
     87      WRITE ( numont, namtrc ) 
    10088 
    10189      DO jn = 1, jptra 
     
    137125      ENDIF 
    138126 
    139       ln_diatrc = .FALSE. 
    140       ln_diabio = .FALSE. 
    141       nn_writedia = 10 
    142       nn_writebio = 10 
    143  
    144       REWIND( numnat )               !  namelist namtoptrd : passive tracer trends diagnostic 
    145       READ  ( numnat, namtrc_dia ) 
     127      REWIND( numnat_ref )              ! Namelist namtrc_dia in reference namelist : Passive tracer diagnostics 
     128      READ  ( numnat_ref, namtrc_dia, IOSTAT = ios, ERR = 903) 
     129903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in reference namelist', lwp ) 
     130 
     131      REWIND( numnat_cfg )              ! Namelist namtrc_dia in configuration namelist : Passive tracer diagnostics 
     132      READ  ( numnat_cfg, namtrc_dia, IOSTAT = ios, ERR = 904 ) 
     133904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in configuration namelist', lwp ) 
     134      WRITE ( numont, namtrc_dia ) 
    146135 
    147136      IF(lwp) THEN 
     
    212201 
    213202#if defined key_trdmld_trc || defined key_trdtrc 
    214          nn_trd_trc  = 20 
    215          nn_ctls_trc =  9 
    216          rn_ucf_trc   =  1. 
    217          ln_trdmld_trc_instant = .TRUE. 
    218          ln_trdmld_trc_restart =.FALSE. 
    219          cn_trdrst_trc_in  = "restart_mld_trc" 
    220          cn_trdrst_trc_out = "restart_mld_trc" 
    221          ln_trdtrc(:) = .FALSE. 
    222  
    223          REWIND( numnat )               !  namelist namtoptrd : passive tracer trends diagnostic 
    224          READ  ( numnat, namtrc_trd ) 
     203 
     204         REWIND( numnat_ref )              ! Namelist namtrc_trd in reference namelist : Passive tracer trends 
     205         READ  ( numnat_ref, namtrc_trd, IOSTAT = ios, ERR = 905) 
     206905      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in reference namelist', lwp ) 
     207 
     208         REWIND( numnat_cfg )              ! Namelist namtrc_trd in configuration namelist : Passive tracer trends 
     209         READ  ( numnat_cfg, namtrc_trd, IOSTAT = ios, ERR = 906 ) 
     210906      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in configuration namelist', lwp ) 
     211         WRITE ( numont, namtrc_trd ) 
    225212 
    226213         IF(lwp) THEN 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r3680 r4147  
    8484                                   CALL trc_sms      ( kt )       ! tracers: sinks and sources 
    8585                                   CALL trc_trp      ( kt )       ! transport of passive tracers 
    86          IF( kt == nittrc000 )     CALL iom_close( numrtr )       ! close input tracer restart file 
     86         IF( kt == nittrc000 ) THEN 
     87            CALL iom_close( numrtr )       ! close input tracer restart file 
     88            CALL FLUSH    ( numont )       ! flush namelist output 
     89         ENDIF 
    8790         IF( lrst_trc )            CALL trc_rst_wri  ( kt )       ! write tracer restart file 
    8891         IF( lk_trdmld_trc  )      CALL trd_mld_trc  ( kt )       ! trends: Mixed-layer 
Note: See TracChangeset for help on using the changeset viewer.