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

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

Ignore:
Timestamp:
2011-05-03T12:49:22+02:00 (13 years ago)
Author:
cetlod
Message:

Changes in sediment model to use with dynamic memory, see ticket #821

Location:
trunk/NEMOGCM/NEMO/TOP_SRC/SED
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sed.F90

    r2528 r2761  
    99   !!---------------------------------------------------------------------- 
    1010   USE par_sed 
    11  
    1211   USE in_out_manager 
    1312 
    14    USE dom_oce , ONLY :       & 
    15       nidom    =>   nidom  ,  & !: 
    16       glamt    =>   glamt  ,  & !: longitude of t-point (degre) 
    17       gphit    =>   gphit  ,  & !: latitude  of t-point (degre) 
    18       e3t_0    =>   e3t_0  ,  & !: reference depth of t-points (m) 
    19       mbkt     =>   mbkt   ,  & !: vertical index of the bottom last T- ocean level 
    20       tmask    =>   tmask  ,  & !: land/ocean mask at t-points 
    21       rdt      =>   rdt         !: time step for the dynamics 
     13   IMPLICIT NONE 
     14   PUBLIC 
    2215 
    23       nyear     =>   nyear    ,   & !: Current year 
    24       nmonth    =>   nmonth   ,   & !: Current month 
    25       nday      =>   nday     ,   & !: Current day 
    26       ndastp    =>   ndastp   ,   & !: time step date in year/month/day aammjj 
    27       nday_year =>   nday_year,   & !: curent day counted from jan 1st of the current year 
    28       adatrj    =>   adatrj         !: number of elapsed days since the begining of the run 
     16   PUBLIC sed_alloc    
     17 
     18   USE dom_oce , ONLY :   nidom     =>   nidom          !: 
     19   USE dom_oce , ONLY :   glamt     =>   glamt          !: longitude of t-point (degre) 
     20   USE dom_oce , ONLY :   gphit     =>   gphit          !: latitude  of t-point (degre) 
     21   USE dom_oce , ONLY :   e3t_0     =>   e3t_0          !: reference depth of t-points (m) 
     22   USE dom_oce , ONLY :   mbkt      =>   mbkt           !: vertical index of the bottom last T- ocean level 
     23   USE dom_oce , ONLY :   tmask     =>   tmask          !: land/ocean mask at t-points 
     24   USE dom_oce , ONLY :   rdt       =>   rdt            !: time step for the dynamics 
     25   USE dom_oce , ONLY :   nyear     =>   nyear          !: Current year 
     26   USE dom_oce , ONLY :   nmonth    =>   nmonth         !: Current month 
     27   USE dom_oce , ONLY :   nday      =>   nday           !: Current day 
     28   USE dom_oce , ONLY :   ndastp    =>   ndastp         !: time step date in year/month/day aammjj 
     29   USE dom_oce , ONLY :   nday_year =>   nday_year      !: curent day counted from jan 1st of the current year 
     30   USE dom_oce , ONLY :   adatrj    =>   adatrj         !: number of elapsed days since the begining of the run 
    2931   !                                !: it is the accumulated duration of previous runs 
    3032   !                                !: that may have been run with different time steps. 
    3133 
    32  
    3334#if ! defined key_sed_off 
    3435 
    35    USE oce , ONLY :            & 
    36       tsn      =>    tsn       & !: pot. temperature (celsius) and salinity (psu) 
     36   USE oce     , ONLY :  tsn        =>   tsn             !: pot. temperature (celsius) and salinity (psu) 
    3737 
    38    USE trc, ONLY :  & 
    39       trn        , & !: tracer  
    40       nwritetrc      !: outputs frequency of tracer model 
     38   USE trc     , ONLY :  trn        =>   trc             !: tracer  
     39   USE trc     , ONLY :  nwritetrc  =>   nwritetrc       !: outputs frequency of tracer model 
    4140 
    42    USE p4zsink, ONLY :  & 
    43       sinking  ,     & !: sinking flux for POC 
     41   USE p4zsink , ONLY :  sinking    =>   sinking         !: sinking flux for POC 
    4442#if ! defined key_kriest 
    45       sinking2 ,     & !: sinking flux for GOC 
     43   USE p4zsink , ONLY :  sinking2   =>   sinking2        !: sinking flux for GOC 
    4644#endif 
    47       sinkcal ,      & !: sinking flux for calcite  
    48       sinksil          !: sinking flux for opal ( dsi ) 
     45   USE p4zsink , ONLY :  sinkcal    =>   sinkcal         !: sinking flux for calcite 
     46   USE p4zsink , ONLY :  sinksil    =>   sinksil         !: sinking flux for opal ( dsi ) 
    4947 
    50    USE sms_pisces, ONLY :  & 
    51       akb3  ,     &  
    52       ak13  ,     &  
    53       ak23  ,     &  
    54       akw3  ,     &  
    55       aksp  ,     &  
    56       borat  
     48   USE sms_pisces, ONLY : akb3      =>   akb3            !: Chemical constants   
     49   USE sms_pisces, ONLY : ak13      =>   ak13            !: Chemical constants   
     50   USE sms_pisces, ONLY : ak23      =>   ak23            !: Chemical constants   
     51   USE sms_pisces, ONLY : akw3      =>   akw3            !: Chemical constants   
     52   USE sms_pisces, ONLY : aksp      =>   aksp            !: Chemical constants   
     53   USE sms_pisces, ONLY : borat     =>   borat           !: Chemical constants ( borat )  
    5754 
    5855#endif    
    5956 
    60    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpdta) :: & 
    61       trc_data           !: tracer data to share with sediment model 
    6257 
    63    INTEGER, PUBLIC :: & 
    64       nitsed000, nitsedend, nwrised, nfreq 
     58   !! Namelist 
     59   REAL(wp), PUBLIC, DIMENSION(5) ::  reac                !: reactivity rc in  [l.mol-1.s-1] 
     60   REAL(wp), PUBLIC               ::  reac_sil            !: reactivity of silicate in  [l.mol-1.s-1] 
     61   REAL(wp), PUBLIC               ::  reac_clay           !: reactivity of clay in  [l.mol-1.s-1] 
     62   REAL(wp), PUBLIC               ::  reac_poc            !: reactivity of poc in  [l.mol-1.s-1] 
     63   REAL(wp), PUBLIC               ::  reac_no3            !: reactivity of no3 in  [l.mol-1.s-1] 
     64   REAL(wp), PUBLIC               ::  reac_cal            !: reactivity of cal in  [l.mol-1.s-1] 
     65   REAL(wp), PUBLIC               ::  sat_sil             !: saturation concentration for silicate in [mol.l-1] 
     66   REAL(wp), PUBLIC               ::  sat_clay            !: saturation concentration for clay in [mol.l-1] 
     67   REAL(wp), PUBLIC               ::  so2ut  
     68   REAL(wp), PUBLIC               ::  srno3  
     69   REAL(wp), PUBLIC               ::  spo4r  
     70   REAL(wp), PUBLIC               ::  srDnit  
     71   REAL(wp), PUBLIC               ::  sthro2              !: threshold O2 concen. in [mol.l-1] 
     72   REAL(wp), PUBLIC               ::  pdb = 0.0112372     !: 13C/12C in PD Belemnite 
     73   REAL(wp), PUBLIC               ::  rc13P  = 0.980      !: 13C/12C in POC = rc13P*PDB 
     74   REAL(wp), PUBLIC               ::  rc13Ca = 1.001      !: 13C/12C in CaCO3 = rc13Ca*PDB 
     75   REAL(wp), PUBLIC               ::  dtsed               !: sedimentation time step 
     76   REAL(wp), PUBLIC               ::  db                  !: bioturb coefficient in [cm2.s-1] 
    6577 
    66    REAL(wp), PUBLIC, DIMENSION(:,:,:) , ALLOCATABLE ::   & 
    67       pwcp  ,      &     !: pore water sediment data at given time-step 
    68       pwcp0              !: pore water sediment data at initial time 
    69  
    70    REAL(wp), PUBLIC, DIMENSION(:,:,:) , ALLOCATABLE ::   & 
    71       solcp ,      &     !: solid sediment data at given time-step 
    72       solcp0             !: solid sediment at initial time 
     78   INTEGER , PUBLIC               ::  nitsed000 
     79   INTEGER , PUBLIC               ::  nitsedend 
     80   INTEGER , PUBLIC               ::  nwrised 
     81   INTEGER , PUBLIC               ::  nfreq 
     82   REAL(wp), PUBLIC               ::  dens                !: density of solid material 
     83   ! 
     84   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  pwcp       !: pore water sediment data at given time-step 
     85   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  pwcp0      !: pore water sediment data at initial time 
     86   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  solcp      !: solid sediment data at given time-step 
     87   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  solcp0     !: solid sediment data at initial time 
    7388 
    7489   !! * Shared module variables 
    75    REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE ::   & 
    76       pwcp_dta           !: pore water data at given time-step 
     90   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  pwcp_dta   !: pore water data at given time-step 
     91   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  rainrm_dta !: rain data at at initial time 
     92   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  rainrm     !: rain data at given time-step 
     93   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  rainrg     !: rain of each solid component in [g/(cm**2.s)] 
     94   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  fromsed    !: 
     95   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  tosed      !: 
     96   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  rloss      !:  
     97   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  tokbot         
     98   ! 
     99   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  temp       !: temperature 
     100   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  salt       !: salinity 
     101   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  press      !: pressure 
     102   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  raintg     !: total massic flux rained in each cell (sum of sol. comp.) 
     103   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  dzdep      !: total thickness of solid material rained [cm] in each cell 
     104   ! 
     105   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  hipor      !: [h+] in mol/kg*densSW  
     106   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  co3por     !: [co3--]solid sediment at initial time 
     107   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  dz3d       !:  ??? 
     108   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  volw3d     !:  ??? 
     109   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  vols3d     !:  ??? 
    77110 
    78    REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE ::   & 
    79       rainrm_dta,  &     !: rain data at at initial time 
    80       rainrm    ,  &     !: rain data at given time-step 
    81       rainrg    ,  &     !: rain of each solid component in [g/(cm**2.s)] 
    82       fromsed   ,  &     !: 
    83       tosed     ,  &     !: 
    84       rloss              !:  
    85  
    86    REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE  ::   & 
    87       tokbot             !:  
    88  
    89    REAL(wp), PUBLIC, DIMENSION(:) , ALLOCATABLE  ::   &  
    90       temp  ,      &     !: temperature 
    91       salt  ,      &     !: salinity 
    92       press ,      &     !: pressure 
    93       raintg,      &     !: total massic flux rained in each cell (sum of sol. comp.) 
    94       dzdep              !: total thickness of solid material rained [cm] in each cell 
    95  
    96    REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE  ::   & 
    97       hipor  ,     &     !: [h+] in mol/kg*densSW  
    98       co3por             !: [co3--]solid sediment at initial time 
    99  
    100    REAL(wp), PUBLIC, DIMENSION(jpsol) ::   & 
    101       mol_wgt            !: molecular weight of solid sediment data 
    102  
    103     
    104    !! Geometry 
    105    INTEGER, PUBLIC, SAVE :: & 
    106       jpoce ,  &             !: sediment points 
    107       indoce 
    108  
    109    INTEGER , PUBLIC, DIMENSION(:) , ALLOCATABLE  ::   &  !: 
    110       iarroce      !: ! Computation of 1D array of sediments points 
    111  
    112    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & 
    113       epkbot             !: ocean bottom layer thickness 
    114  
    115    REAL(wp), PUBLIC, DIMENSION(:) , ALLOCATABLE  :: & 
    116       dzkbot             !: ocean bottom layer thickness in meters 
    117  
    118    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpksed) :: & 
    119       tmasksed           !: sediment mask 
    120  
    121    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & 
    122       sbathy 
    123   
    124    REAL(wp), PUBLIC, DIMENSION(jpksed) :: & 
    125       dz      ,    &     !: sediment layers thickness 
    126       por     ,    &     !: porosity profile      
    127       por1    ,    &     !: 1 - por  
    128       profsed ,    &     !: depth of middle of each layer 
    129       volw    ,    &     !: volume of pore water cell fraction 
    130       vols    ,    &     !: volume of solid cell fraction 
    131       diff    ,    &     !: diffusion ceofficient 
    132       rdtsed             !:  
    133  
    134    REAL(wp), PUBLIC, DIMENSION(:,:) , ALLOCATABLE :: & 
    135       dz3d   ,     &     !:  
    136       volw3d ,     &     !:  
    137       vols3d             !:  
    138  
    139    REAL(wp)  ::    & 
    140       dens               !: density of solid material 
    141  
    142    !! Namelist 
    143    REAL(wp), PUBLIC, DIMENSION(5) :: &    
    144       reac               !: reactivity rc in  [l.mol-1.s-1] 
    145  
    146    REAL(wp), PUBLIC       :: &    
    147       sat_sil,      &     !: saturation concentration for silicate in [mol.l-1] 
    148       sat_clay,     &     !:                              clay     
    149       reac_sil,     &     !: reactivity rc in  [l.mol-1.s-1] 
    150       reac_clay,    &      
    151       reac_poc,     &      
    152       reac_no3,     &      
    153       reac_cal          
    154  
    155    REAL(wp), PUBLIC    :: &    
    156       so2ut   ,     &     !: 
    157       srno3   ,     &     !:  
    158       spo4r   ,     &     !: 
    159       srDnit  ,     &     !:  
    160       sthro2              !: threshold O2 concen. in [mol.l-1] 
    161  
    162    REAL(wp), PUBLIC    :: &    
    163       pdb    = 0.0112372, & !: 13C/12C in PD Belemnite 
    164       rc13P  = 0.980    , & !: 13C/12C in POC = rc13P*PDB 
    165       rc13Ca = 1.001        !: 13C/12C in CaCO3 = rc13Ca*PDB 
    166  
    167    REAL(wp) , PUBLIC ::   & 
    168       dtsed  ,     &     !: sedimentation time step 
    169       db                 !: bioturb coefficient in [cm2.s-1] 
    170111 
    171112   !! Chemistry 
    172    REAL(wp), PUBLIC, DIMENSION(:) , ALLOCATABLE  :: & 
    173       densSW ,     & 
    174       borats ,     & 
    175       calcon2,     & 
    176       akbs   ,     & 
    177       ak1s   ,     & 
    178       ak2s   ,     & 
    179       akws   ,     & 
    180       ak12s  ,     & 
    181       ak1ps  ,     & 
    182       ak2ps  ,     & 
    183       ak3ps  ,     & 
    184       ak12ps ,     & 
    185       ak123ps,     & 
    186       aksis  ,     &  
    187       aksps  
     113   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  densSW  
     114   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  borats  
     115   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  calcon2 
     116   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  akbs   
     117   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak1s  
     118   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak2s    
     119   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  akws   
     120   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak12s   
     121   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak1ps  
     122   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak2ps   
     123   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak3ps  
     124   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak12ps  
     125   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  ak123ps 
     126   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  aksis  
     127   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  aksps  
    188128 
     129   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  mol_wgt    !: molecular weight of solid sediment data 
     130  
     131   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  trc_data    !: tracer data to share with sediment model 
     132   !! Geometry 
     133   INTEGER , PUBLIC, SAVE                          ::  jpoce, indoce !: Ocean points ( number/indices ) 
     134   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  iarroce       !: Computation of 1D array of sediments points 
     135   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  epkbot        !: ocean bottom layer thickness 
     136   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  dzkbot        !: ocean bottom layer thickness in meters 
     137   REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE ::  tmasksed      !: sediment mask 
     138   REAL(wp), PUBLIC, DIMENSION(:,:  ), ALLOCATABLE ::  sbathy        !: bathymetry 
     139   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  dz            !: sediment layers thickness 
     140   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  por           !: porosity profile      
     141   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  por1          !: 1-por  
     142   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  profsed       !: depth of middle of each layer 
     143   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  volw          !: volume of pore water cell fraction 
     144   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  vols          !: volume of solid cell fraction 
     145   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  diff          !: diffusion ceofficient 
     146   REAL(wp), PUBLIC, DIMENSION(:    ), ALLOCATABLE ::  rdtsed        !:  sediment model time-step 
     147   REAL(wp)  ::   dens               !: density of solid material 
    189148   !! Inputs / Outputs 
    190    CHARACTER( len = 80 ), DIMENSION(jptrased) :: & 
    191       sedtrcl 
    192    CHARACTER( len = 20 ), DIMENSION(jptrased) :: & 
    193       sedtrcd , sedtrcu 
     149   CHARACTER( len = 80 ), DIMENSION(jptrased  ) ::  sedtrcl 
     150   CHARACTER( len = 20 ), DIMENSION(jptrased  ) ::  sedtrcd , sedtrcu 
     151   CHARACTER( len = 80 ), DIMENSION(jpdia3dsed) ::  seddia3l  
     152   CHARACTER( len = 20 ), DIMENSION(jpdia3dsed) ::  seddia3d, seddia3u 
     153   CHARACTER( len = 80 ), DIMENSION(jpdia2dsed) ::  seddia2l  
     154   CHARACTER( len = 20 ), DIMENSION(jpdia2dsed) ::  seddia2d, seddia2u 
     155   ! 
     156   REAL(wp), PUBLIC, DIMENSION(:,:,:,:), ALLOCATABLE ::  trcsedi 
     157   REAL(wp), PUBLIC, DIMENSION(:,:,:,:), ALLOCATABLE ::  flxsedi3d 
     158   REAL(wp), PUBLIC, DIMENSION(:,:,:  ), ALLOCATABLE ::  flxsedi2d 
    194159 
    195    CHARACTER( len = 80 ), DIMENSION(jpdia3dsed) :: & 
    196       seddia3l  
    197    CHARACTER( len = 20 ), DIMENSION(jpdia3dsed) :: & 
    198       seddia3d , seddia3u 
     160   INTEGER, PUBLIC ::  numsed = 27    ! units 
    199161 
    200    CHARACTER( len = 80 ), DIMENSION(jpdia2dsed) :: & 
    201       seddia2l  
    202    CHARACTER( len = 20 ), DIMENSION(jpdia2dsed) :: & 
    203       seddia2d , seddia2u 
     162CONTAINS 
    204163 
    205    REAL(wp), DIMENSION(jpi,jpj,jpksed,jptrased) :: & 
    206       trcsedi 
    207    REAL(wp), DIMENSION(jpi,jpj,jpksed,jpdia3dsed) :: & 
    208       flxsedi3d 
    209    REAL(wp), DIMENSION(jpi,jpj,jpdia2dsed) :: & 
    210       flxsedi2d 
     164   INTEGER FUNCTION sed_alloc() 
     165      !!------------------------------------------------------------------- 
     166      !!                    *** ROUTINE sed_alloc *** 
     167      !!------------------------------------------------------------------- 
     168      USE lib_mpp, ONLY: ctl_warn 
     169      !!------------------------------------------------------------------- 
     170      ! 
     171      ALLOCATE( trc_dta(jpi,jpj,jdta)                                     ,   & 
     172         &      epkbot(jpi,jpj), sbathy(jpi,jpj)                          ,   & 
     173         &      tmasksed(jpi,jpj,jpksed)                                  ,   & 
     174         &      dz(jpksed)  , por(jpksed) , por1(jpksed), profsed(jpksed) ,   & 
     175         &      volw(jpksed), vols(jpksed), diff(jpksed), rdtsed(jpksed)  ,   & 
     176         &      trcsedi  (jpi,jpj,jpksed,jptrased)                        ,   & 
     177         &      flxsedi3d(jpi,jpj,jpksed,jpdia3dsed)                      ,   & 
     178         &      flxsedi2d(jpi,jpj,jpksed,jpdia2dsed)                      ,   & 
     179         &      mol_wgt(jpsol),                                           STAT=sed_alloc ) 
    211180 
    212    !! Units 
    213    INTEGER, PUBLIC :: & 
    214      numsed = 27 
     181      IF( sed_alloc /= 0 )   CALL ctl_warn('sed_alloc: failed to allocate arrays') 
     182      ! 
     183   END FUNCTION sed_alloc 
     184 
    215185#else 
    216186   !!====================================================================== 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedadv.F90

    r2528 r2761  
    1414 
    1515   !! * Module variable 
    16    INTEGER, PARAMETER  ::   & 
    17       nztime = jpksed         ! number of time step between sunrise and sunset 
    18    !       
    19     
    20    REAL(wp), DIMENSION(jpksed), SAVE :: & 
    21       dvolsp, dvolsm, & 
    22       c2por, ckpor 
    23  
    24    REAL(wp), SAVE :: & 
    25       por1clay , & 
    26       cpor    
    27  
    28    REAL(wp) :: & 
    29       eps = 1.e-13 
     16   INTEGER, PARAMETER  ::  nztime = jpksed         ! number of time step between sunrise and sunset 
     17 
     18   REAL(wp), DIMENSION(jpksed), SAVE :: dvolsp, dvolsm 
     19   REAL(wp), DIMENSION(jpksed), SAVE :: c2por, ckpor 
     20 
     21   REAL(wp) :: cpor 
     22   REAL(wp) :: por1clay  
     23   REAL(wp) :: eps = 1.e-13 
    3024 
    3125CONTAINS 
     
    5246         kt                     ! time step 
    5347      ! * local variables 
    54  
    55       INTEGER ::  & 
    56          ji, jk, js 
    57  
    58       INTEGER ::  & 
    59          jn, ntimes, ikwneg 
     48      INTEGER :: ji, jk, js  
     49      INTEGER :: jn, ntimes, ikwneg 
    6050       
    61       REAL(wp), DIMENSION(jpksed,jpsol) :: zsolcpno 
    62       REAL(wp), DIMENSION(jpksed)       :: zfilled, zfull, zfromup, zempty 
    63       
     51      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zsolcpno 
     52      REAL(wp), DIMENSION(:  ), ALLOCATABLE :: zfilled, zfull, zfromup, zempty 
    6453      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zgap, zwb 
    65       REAL(wp), DIMENSION(jpoce,jpsol)      :: zrainrf 
    66  
     54      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zrainrf 
    6755      REAL(wp), DIMENSION(nztime) ::  zraipush 
    6856 
    69       REAL(wp) :: & 
    70          zkwnup, zkwnlo, zfrac, & 
    71          zfromce, zrest 
    72  
     57      REAL(wp) :: zkwnup, zkwnlo, zfrac,  zfromce, zrest 
    7358 
    7459      !------------------------------------------------------------------------ 
     
    9378      ENDIF 
    9479 
    95  
    96       ALLOCATE( zgap (jpoce,jpksed) )    ;   ALLOCATE( zwb(jpoce,jpksed) ) 
    97  
     80      ALLOCATE( zsolcpno(jpksed,jpsol), zrainrf(jpoce,jpsol) ) 
     81      ALLOCATE( zfilled(jpksed), zfull(jpksed), zfromup(jpksed), zempty(jpksed) ) 
     82      ALLOCATE( zgap (jpoce,jpksed)   , zwb(jpoce,jpksed)  )   
    9883 
    9984      ! Initialization of data for mass balance calculation 
     
    438423      raintg(:)   = 0. 
    439424 
    440  
    441       DEALLOCATE( zgap  ) ;  DEALLOCATE( zwb ) 
     425      DEALLOCATE( zsolcpno )    
     426      DEALLOCATE( zrainrf  ) 
     427      DEALLOCATE( zfilled  ) 
     428      DEALLOCATE( zfull    ) 
     429      DEALLOCATE( zfromup  ) 
     430      DEALLOCATE( zempty   ) 
     431      DEALLOCATE( zgap     )   
     432      DEALLOCATE( zwb      ) 
    442433 
    443434 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedbtb.F90

    r2528 r2761  
    2828      !!---------------------------------------------------------------------- 
    2929      !!* Arguments 
    30       INTEGER, INTENT(in) ::  & 
    31          kt              ! time step 
     30      INTEGER, INTENT(in) ::  kt              ! time step 
    3231 
    3332      ! * local variables 
    34  
    35       INTEGER :: & 
    36          ji, jk, js 
    37  
    38       REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE ::  & 
    39          zsol                      ! solution 
     33      INTEGER :: ji, jk, js 
     34      REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE ::  zsol  !   solution 
    4035      !------------------------------------------------------------------------ 
    4136 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedchem.F90

    r2528 r2761  
    163163   DATA Ddsw / 999.842594 , 6.793952E-2 , -9.095290E-3, 1.001685E-4, -1.120083E-6, 6.536332E-9/ 
    164164 
    165  
    166    !! * Module variables 
    167    REAL(wp), DIMENSION(jpi,jpj,10) :: & 
    168       chem_data 
    169  
    170165CONTAINS 
    171166 
     
    181176      !!---------------------------------------------------------------------- 
    182177      !!* Arguments 
    183       INTEGER, INTENT(in) ::  & 
    184          kt                     ! time step 
     178      INTEGER, INTENT(in) :: kt                     ! time step 
    185179 
    186180#if ! defined key_sed_off 
    187       INTEGER :: & 
    188          ji, jj, ikt 
    189  
    190       REAL(wp) :: & 
    191          ztkel, ztc, ztc2, zpres, ztr ,   & 
    192          zsal, zsal2, zsqrt, zsal15   ,   & 
    193          zis, zis2, zisqrt            ,   & 
    194          zdens0, zaw, zbw, zcw        ,   & 
    195          zbuf1, zbuf2 ,   &  
    196          zcpexp, zcpexp2              ,   & 
    197          zck1p, zck2p, zck3p, zcksi    
    198  
    199      REAL(wp), DIMENSION(jpi,jpj,6) :: & 
    200         zchem_data 
     181      INTEGER  :: ji, jj, ikt 
     182      REAL(wp) :: ztkel, ztc, ztc2, zpres, ztr  
     183      REAL(wp) :: zsal, zsal2, zsqrt, zsal15   
     184      REAL(wp) :: zis, zis2, zisqrt           
     185      REAL(wp) :: zdens0, zaw, zbw, zcw     
     186      REAL(wp) :: zbuf1, zbuf2  
     187      REAL(wp) :: zcpexp, zcpexp2 
     188      REAL(wp) :: zck1p, zck2p, zck3p, zcksi    
     189      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zchem_data 
    201190 
    202191#endif 
     
    213202#else 
    214203      ! reading variables 
    215       zchem_data(:,:,:) = 0. 
     204      ALLOCATE( zchem_data(jpi,jpj,6) )   ;   zchem_data(:,:,:) = 0. 
     205 
    216206      DO jj = 1,jpj 
    217207         DO ji = 1, jpi 
     
    234224      CALL pack_arr ( jpoce, aksps (1:jpoce), zchem_data(1:jpi,1:jpj,5), iarroce(1:jpoce) ) 
    235225      CALL pack_arr ( jpoce, borats(1:jpoce), zchem_data(1:jpi,1:jpj,6), iarroce(1:jpoce) ) 
     226 
     227      DEALLOCATE( zchem_data ) 
    236228 
    237229      DO ji = 1, jpoce 
     
    320312         calcon2(ji) = 0.01028 * ( salt(ji) / 35. ) * densSW(ji) 
    321313      ENDDO 
     314 
     315        
    322316#endif 
    323317 
     
    337331      !!----------------------------------------------------------------------   
    338332      !! * Local declarations 
    339       INTEGER :: & 
    340          ji 
    341  
    342       REAL(wp) :: & 
    343          ztkel, ztc, ztc2, zpres, ztr ,   & 
    344          zsal, zsal2, zsqrt, zsal15   ,   & 
    345          zis, zis2, zisqrt            ,   & 
    346          zdens0, zaw, zbw, zcw        ,   & 
    347          zchl, zst, zft, zbuf1, zbuf2 ,   &  
    348          zcpexp, zcpexp2              ,   & 
    349          zckb, zck1, zck2, zckw       ,   & 
    350          zck1p, zck2p, zck3p, zcksi   ,   & 
    351          zak1, zak2, zakb, zakw       ,   &         
    352          zaksp0, zksp, zks, zkf  
     333      INTEGER :: ji 
     334 
     335      REAL(wp) ::  ztkel, ztc, ztc2, zpres, ztr  
     336      REAL(wp) ::  zsal, zsal2, zsqrt, zsal15    
     337      REAL(wp) ::  zis, zis2, zisqrt             
     338      REAL(wp) ::  zdens0, zaw, zbw, zcw         
     339      REAL(wp) ::  zchl, zst, zft, zbuf1, zbuf2  
     340      REAL(wp) ::  zcpexp, zcpexp2               
     341      REAL(wp) ::  zckb, zck1, zck2, zckw        
     342      REAL(wp) ::  zck1p, zck2p, zck3p, zcksi    
     343      REAL(wp) ::  zak1, zak2, zakb, zakw               
     344      REAL(wp) ::  zaksp0, zksp, zks, zkf  
    353345 
    354346 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedco3.F90

    r2528 r2761  
    1717 
    1818   !! * Module variables 
    19    REAL(wp) ::           & !!  
    20       epsmax   =  1.e-12      ! convergence limite value 
     19   REAL(wp) :: epsmax   =  1.e-12      ! convergence limite value 
    2120 
    2221   !!---------------------------------------------------------------------- 
     
    4443      !!---------------------------------------------------------------------- 
    4544      !! * Arguments 
    46       INTEGER, INTENT(in)  :: & 
    47          kt   ! time step 
     45      INTEGER, INTENT(in)  :: kt   ! time step 
    4846 
    4947      ! 
    5048      !---Local variables 
    51       INTEGER :: & 
    52          jiter, ji, jk, ipt    ! dummy loop indices 
    53  
    54       INTEGER :: & 
    55          itermax    ,  &  ! maximum number of Newton-Raphson iterations 
    56          itime            ! number of time to perform Newton-Raphson algorithm 
    57  
    58       LOGICAL :: & 
    59          lconv = .FALSE.           ! flag for convergence 
    60  
    61       REAL(wp) ::      &  
    62          brems            ! relaxation. parameter 
    63  
    64       REAL(wp) ::      &  ! temporay variables 
    65          zresm, zresm1, zhipor_min , & 
    66          zalk, zbor, zsil, zpo4, zdic, & 
    67          zh_old, zh_old2, zh_old3, zh_old4, & 
    68          zuu, zvv, zduu, zdvv , & 
    69          zup, zvp, zdup, zdvp , & 
    70          zah_old, zah_olds,     & 
    71          zh_new, zh_new2,       & 
    72          zco3 
    73  
     49      INTEGER  :: jiter, ji, jk, ipt  ! dummy loop indices 
     50 
     51      INTEGER  :: itermax             ! maximum number of Newton-Raphson iterations 
     52      INTEGER  :: itime               ! number of time to perform Newton-Raphson algorithm 
     53      LOGICAL  :: lconv = .FALSE.     ! flag for convergence 
     54      REAL(wp) :: brems               !  relaxation. parameter 
     55      REAL(wp) :: zresm, zresm1, zhipor_min  
     56      REAL(wp) :: zalk, zbor, zsil, zpo4, zdic 
     57      REAL(wp) :: zh_old, zh_old2, zh_old3, zh_old4 
     58      REAL(wp) :: zuu, zvv, zduu, zdvv  
     59      REAL(wp) :: zup, zvp, zdup, zdvp 
     60      REAL(wp) :: zah_old, zah_olds 
     61      REAL(wp) :: zh_new, zh_new2, zco3 
    7462 
    7563     !!---------------------------------------------------------------------- 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/seddsr.F90

    r2528 r2761  
    1414   !! * Module variables 
    1515 
    16    REAL(wp), DIMENSION(:), PUBLIC, ALLOCATABLE :: & 
    17       cons_o2   , & 
    18       cons_no3  , & 
    19       sour_no3  , & 
    20       sour_c13 
    21  
    22     REAL(wp), DIMENSION(jpsol), PUBLIC :: & 
    23        dens_mol_wgt 
    24    
     16   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: cons_o2 
     17   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: cons_no3 
     18   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: sour_no3 
     19   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: sour_c13 
     20   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC ::  dens_mol_wgt  ! molecular density  
     21 
    2522CONTAINS 
    2623    
     
    4946      INTEGER, INTENT(in) ::   kt       ! number of iteration 
    5047      ! --- local variables 
    51       INTEGER :: & 
    52          ji, jk, js, jw 
    53        
    54       INTEGER  ::    & 
    55          nv                        ! number of variables in linear tridiagonal eq 
    56     
    57       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: & 
    58          zrearat,  &            ! reaction rate in pore water 
    59          zundsat                ! undersaturation ; indice jpwatp1 is for calcite    
    60       
    61       REAL(wp), DIMENSION(:) , ALLOCATABLE :: &    ! temp. variables 
    62          zmo2_0 , zmo2_1 ,    &          ! mass balance calculation 
    63          zmno3_0, zmno3_1, zmno3_2,    & 
    64          zmc13_0, zmc13_1, zmc13_2, zmc13_3 
    65   
    66       REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE :: &    ! temp. variables 
    67          zvolc 
    68  
    69       REAL(wp)  ::  & 
    70          zsolid1, zsolid2, zsolid3, & 
    71          zvolw, zreasat 
    72        
     48      INTEGER :: ji, jk, js, jw   ! dummy looop indices 
     49      INTEGER :: nv               ! number of variables in linear tridiagonal eq 
     50 
     51      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zrearat    ! reaction rate in pore water 
     52      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zundsat    ! undersaturation ; indice jpwatp1 is for calcite    
     53      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmo2_0, zmo2_1  ! temp. array for mass balance calculation 
     54      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmno3_0, zmno3_1, zmno3_2 
     55      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmc13_0, zmc13_1, zmc13_2, zmc13_3 
     56      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zvolc    ! temp. variables 
     57      REAL(wp)  ::  zsolid1, zsolid2, zsolid3, zvolw, zreasat 
     58 
    7359      !! 
    7460      !!---------------------------------------------------------------------- 
     
    7763         WRITE(numsed,*) ' sed_dsr : Dissolution reaction ' 
    7864         WRITE(numsed,*) ' ' 
     65         !  
     66         ALLOCATE( dens_mol_wgt((jpoce) )  
    7967         dens_mol_wgt(1:jpsol) = dens / mol_wgt(1:jpsol) 
    80  
     68         !  
    8169         ALLOCATE( cons_o2 (jpoce) ) ;   ALLOCATE( cons_no3(jpoce) )  
    8270         ALLOCATE( sour_no3(jpoce) ) ;   ALLOCATE( sour_c13(jpoce) )   
    83      
    8471      ENDIF 
    8572 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/seddta.F90

    r2528 r2761  
    1717 
    1818   !! *  Module variables 
    19    REAL(wp), DIMENSION(:), ALLOCATABLE :: & 
    20       smask       ! mask for sediments points 
    21  
    22    REAL(wp) ::  & 
    23       rsecday  , &  ! number of second per a day 
    24       conv1    , &  ! [m/day]--->[cm/s]   
    25       conv2         ! [kg/m2/month]-->[g/cm2/s] ( 1 month has 30 days ) 
    26  
    27    INTEGER ::     & 
    28      numbio  
     19   REAL(wp), DIMENSION(:), ALLOCATABLE ::  smask       ! mask for sediments points 
     20   REAL(wp) ::  rsecday  ! number of second per a day 
     21   REAL(wp) ::  conv1    ! [m/day]--->[cm/s]   
     22   REAL(wp) ::  conv2    ! [kg/m2/month]-->[g/cm2/s] ( 1 month has 30 days ) 
     23 
     24   INTEGER ::  numbio 
    2925 
    3026#if defined key_sed_off 
    31    INTEGER ::     & 
    32      numoce 
     27   INTEGER ::  numoce 
    3328#endif 
    3429 
     
    5348 
    5449      !! Arguments 
    55       INTEGER, INTENT(in) :: & 
    56          kt 
     50      INTEGER, INTENT(in) ::  kt    ! time-step 
    5751 
    5852      !! * Local declarations 
    5953      INTEGER  ::  ji, jj, js, jw, ikt 
    6054 
    61       REAL(wp) , DIMENSION (jpi,jpj) :: zdta 
     55      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zdta 
    6256#if ! defined key_kriest 
    63       REAL(wp) , DIMENSION (:), ALLOCATABLE  :: zdtap , zdtag 
     57      REAL(wp), DIMENSION(:)  , ALLOCATABLE :: zdtap, zdtag 
    6458#endif  
    6559 
     
    9084 
    9185         ! Compute sediment mask 
     86         ALLOCATE( zdta(jpi,jpj) )  
    9287         DO jj = 1, jpj 
    9388            DO ji = 1, jpi 
     
    10499#if ! defined key_kriest    
    105100      ! Initialization of temporaries arrays   
    106       ALLOCATE( zdtap   (jpoce) )    ;   zdtap(:)    = 0.  
    107       ALLOCATE( zdtag   (jpoce) )    ;   zdtag(:)    = 0.   
     101      ALLOCATE( zdtap(jpoce) )    ;   zdtap(:)    = 0.  
     102      ALLOCATE( zdtag(jpoce) )    ;   zdtag(:)    = 0.   
    108103#endif 
    109104 
     
    255250 
    256251 
     252      DEALLOCATE( zdta )  
    257253#if ! defined key_kriest 
    258254      DEALLOCATE( zdtap    ) ;  DEALLOCATE( zdtag    )  
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedini.F90

    r2715 r2761  
    7979      INTEGER  :: numblt          
    8080      INTEGER  :: nummsh    
    81       REAL(wp) , DIMENSION(jpi,jpj) :: zdta 
     81      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zdta 
    8282#endif 
    8383      !!---------------------------------------------------------------------- 
     
    9999      WRITE(numsed,*) ' sed_init : Initialization of sediment module  ' 
    100100      WRITE(numsed,*) ' ' 
     101 
     102      !                                ! Allocate LOBSTER arrays 
     103      IF( sed_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sed_ini: unable to allocate sediment model arrays' ) 
     104 
    101105 
    102106      ! Determination of sediments number of points and allocate global variables 
     
    118122     
    119123      ! bottom layer thickness 
     124      ALLOCATE( zdta(jpi,jpj) ) 
    120125      CALL iom_get  ( numblt, jpdom_data, 'E3TBOT', zdta(:,:) ) 
    121126      epkbot(:,:) = 0. 
     
    129134      CALL iom_close( nummsh )   
    130135      CALL iom_close( numblt )  
     136 
     137      DEALLOCATE( zdta ) 
    131138#else 
    132139 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedmat.F90

    r2528 r2761  
    4747       !!---------------------------------------------------------------------- 
    4848       !! * Arguments 
    49        INTEGER , INTENT(in) :: & 
    50           nvar , &  ! number of variables 
    51           ndim , &  ! number of points 
    52           nlev      ! number of sediment levels 
    53  
    54        REAL(wp), DIMENSION(ndim,nlev,nvar), INTENT(in) :: & 
    55           preac     ! reaction rates 
    56  
    57        REAL(wp), DIMENSION(ndim,nlev,nvar), INTENT(inout) :: & 
    58           psol         ! solution ( undersaturation values ) 
    59  
    60  
     49       INTEGER , INTENT(in) ::  nvar  ! number of variables 
     50       INTEGER , INTENT(in) ::  ndim  ! number of points 
     51       INTEGER , INTENT(in) ::  nlev  ! number of sediment levels 
     52 
     53       REAL(wp), DIMENSION(ndim,nlev,nvar), INTENT(in   ) :: preac  ! reaction rates 
     54       REAL(wp), DIMENSION(ndim,nlev,nvar), INTENT(inout) :: psol   ! solution ( undersaturation values ) 
     55  
    6156       !---Local declarations 
    62        INTEGER  ::  & 
    63           ji, jk, jn 
    64  
     57       INTEGER  ::  ji, jk, jn 
    6558       REAL(wp), DIMENSION(ndim,nlev) :: za, zb, zc, zr 
    6659       REAL(wp), DIMENSION(ndim)      :: zbet 
    6760       REAL(wp), DIMENSION(ndim,nmax) :: zgamm 
    6861 
    69        REAL(wp) ::  & 
    70           aplus,aminus   ,  &  
    71           rplus,rminus   ,  & 
    72           dxplus,dxminus 
     62       REAL(wp) ::  aplus,aminus   
     63       REAL(wp) ::  rplus,rminus    
     64       REAL(wp) ::  dxplus,dxminus 
    7365 
    7466       !---------------------------------------------------------------------- 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedmbc.F90

    r2528 r2761  
    2020 
    2121   !! * Module variables 
    22    REAL(wp), DIMENSION(jpsol) :: & 
    23       rain_tot     ,  &      ! 
    24       fromsed_tot  ,  &      !  
    25       tosed_tot    ,  &      ! 
    26       rloss_tot              ! 
    27  
    28    REAL(wp), DIMENSION(jpwat) :: & 
    29       diss_in_tot  ,  &      ! 
    30       diss_out_tot           ! 
    31  
    32    REAL(wp)  :: & 
    33       cons_tot_o2  ,  &      ! 
    34       sour_tot_no3 ,  &      ! 
    35       cons_tot_no3 ,  &      ! 
    36       sour_tot_c13           ! 
    37  
    38    REAL(wp) ::  & 
    39       src13p  , & 
    40       src13ca 
     22   REAL(wp), DIMENSION(jpsol) :: rain_tot      ! total input rain 
     23   REAL(wp), DIMENSION(jpsol) :: fromsed_tot   ! tota input from sediment 
     24   REAL(wp), DIMENSION(jpsol) :: tosed_tot     ! total output from sediment 
     25   REAL(wp), DIMENSION(jpsol) :: rloss_tot     ! total rain loss 
     26 
     27   REAL(wp), DIMENSION(jpwat) :: diss_in_tot   ! total input in pore water 
     28   REAL(wp), DIMENSION(jpwat) :: diss_out_tot  ! total output from pore water 
     29 
     30   REAL(wp)  :: cons_tot_o2                   ! cumulative o2 consomation 
     31   REAL(wp)  :: sour_tot_no3                  ! cumulative no3 source 
     32   REAL(wp)  :: cons_tot_no3                  ! cumulative no3 consomation 
     33   REAL(wp)  :: sour_tot_c13                  ! cumulative o2 source 
     34 
     35   REAL(wp)  :: src13p   
     36   REAL(wp)  :: src13ca   
    4137 
    4238CONTAINS 
     
    6056 
    6157      !! Arguments 
    62       INTEGER, INTENT(in) :: & 
    63          kt 
     58      INTEGER, INTENT(in) :: kt     ! time step 
    6459 
    6560      !! local declarations 
    66       INTEGER  :: & 
    67          ji, js, jw, jk 
    68  
    69       REAL(wp) ::  & 
    70          zinit, zfinal, & 
    71          zinput, zoutput 
    72  
    73       REAL(wp) ::  & 
    74          zdsw, zvol 
    75  
    76       REAL, DIMENSION(jpsol) ::  & 
    77          zsolcp_inv_i, zsolcp_inv_f 
    78  
    79       REAL, DIMENSION(jpwat) ::  & 
    80          zpwcp_inv_i, zpwcp_inv_f 
    81         
    82       REAL(wp) :: & 
    83          zdelta_sil, zdelta_clay, & 
    84          zdelta_co2, zdelta_oxy,  & 
    85          zdelta_po4, zdelta_no3,  & 
    86          zdelta_c13, zdelta_c13b 
     61      INTEGER  :: ji,js, jw, jk 
     62      REAL(wp) :: zinit, zfinal  
     63      REAL(wp) :: zinput, zoutput 
     64      REAL(wp) :: zdsw, zvol 
     65      REAL, DIMENSION(jpsol) :: zsolcp_inv_i, zsolcp_inv_f 
     66      REAL, DIMENSION(jpwat) :: zpwcp_inv_i, zpwcp_inv_f 
     67      REAL(wp) ::  zdelta_sil, zdelta_clay 
     68      REAL(wp) ::  zdelta_co2, zdelta_oxy 
     69      REAL(wp) ::  zdelta_po4, zdelta_no3 
     70      REAL(wp) ::  zdelta_c13, zdelta_c13b 
    8771 
    8872      !!---------------------------------------------------------------------- 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedrst.F90

    r2528 r2761  
    4343 
    4444      !! * local declarations 
    45       INTEGER :: & 
    46          ji, jk, jn 
    47       REAL(wp), DIMENSION(jpi,jpj,jpksed,jptrased) :: & 
    48          zdta 
    49  
    50       REAL(wp), DIMENSION(jpi,jpj,jpksed,2) :: & 
    51          zdta1 
    52  
    53       REAL(wp), DIMENSION(:,:), ALLOCATABLE :: & 
    54          zhipor 
    55  
     45      INTEGER :: ji, jk, jn  
     46      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zdta 
     47      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:  ) :: zdta1  
     48      REAL(wp), ALLOCATABLE, DIMENSION(:,:    ) :: zhipor 
    5649      REAL(wp) :: zkt 
    5750      CHARACTER(len = 20) ::   cltra 
     
    6558      WRITE(numsed,*) ' ' 
    6659 
    67       ALLOCATE( zhipor(jpoce,jpksed) )  
     60      ALLOCATE( zdta(jpi,jpj,jpksed,jptrased), zdta1(jpi,jpj,jpksed,2), zhipor(jpoce,jpksed) )  
    6861 
    6962      IF ( jprstlib == jprstdimg ) THEN 
     
    144137      pwcp (1:jpoce,1,:) = 0. 
    145138 
     139      DEALLOCATE( zdta   ) 
     140      DEALLOCATE( zdta1  ) 
    146141      DEALLOCATE( zhipor ) 
    147142      
     
    162157      INTEGER, INTENT(in) ::   kt       ! number of iteration 
    163158      !! * local declarations 
    164  
    165       CHARACTER (len=50) :: clname,cln 
    166  
    167       INTEGER ::  & 
    168          ic,jc,jn,      & 
    169          itime 
    170  
    171      REAL(wp) ::  & 
    172          zdate0 
    173  
    174      REAL(wp), DIMENSION(1) :: & 
    175         zinfo 
    176  
    177       CHARACTER(len = 20)  ::  cltra  
    178  
    179       INTEGER   :: ji, jk 
     159      INTEGER  :: ji, jk 
     160      INTEGER  :: ic, jc, jn, itime  
     161      REAL(wp) :: zdate0 
     162      REAL(wp), DIMENSION(1) ::  zinfo 
     163      CHARACTER(len=50) :: clname,cln 
     164      CHARACTER(len=20) :: cltra  
    180165      REAL(wp), DIMENSION(:,:) , ALLOCATABLE  :: zdta    
    181166      !! ----------------------------------------------------------------------- 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedsfc.F90

    r2528 r2761  
    2525      !!---------------------------------------------------------------------- 
    2626      !!* Arguments 
    27       INTEGER, INTENT(in) ::  & 
    28          kt              ! time step 
     27      INTEGER, INTENT(in) ::  kt              ! time step 
    2928 
    3029      ! * local variables 
    31       INTEGER :: & 
    32          ji, jj, ikt     ! dummy loop indices 
    33  
     30      INTEGER :: ji, jj, ikt     ! dummy loop indices 
    3431 
    3532      !------------------------------------------------------------------------ 
  • trunk/NEMOGCM/NEMO/TOP_SRC/SED/sedwri.F90

    r2528 r2761  
    77   USE sed 
    88   USE sedarr 
     9   USE ioipsl 
     10   USE dianam    ! build name of file (routine) 
    911 
    1012   IMPLICIT NONE 
     
    1315   !! * Accessibility 
    1416   PUBLIC sed_wri  
     17 
     18   INTEGER  :: nised 
     19   INTEGER  :: nhorised 
     20   INTEGER  :: ndimt52 
     21   INTEGER  :: ndimt51 
     22   INTEGER  :: ndepsed 
     23   REAL(wp) :: zjulian 
     24   INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) :: ndext52   
     25   INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) :: ndext51 
    1526 
    1627CONTAINS 
     
    2839      !!        !  06-07  (C. Ethe)  original 
    2940      !!---------------------------------------------------------------------- 
    30       !! * Local variables 
    31       USE ioipsl 
    32       USE dianam    ! build name of file (routine) 
    3341 
    3442      INTEGER, INTENT(in) :: kt 
    3543 
    3644      CHARACTER(len = 60)  ::  clhstnam, clop 
    37       INTEGER , SAVE :: nised, nhorised, ndimt52, ndimt51, ndepsed 
    38       REAL(wp), SAVE :: zjulian 
    39       INTEGER , DIMENSION(jpij*jpksed) , SAVE :: ndext52   
    40       INTEGER , DIMENSION(jpij) , SAVE :: ndext51 
     45      INTEGER  :: ji, jk, js, jw, jn 
    4146      REAL(wp) :: zsto,zout, zdt 
    42       INTEGER :: iimi, iima, ijmi, ijma,ipk, it, itmod 
    43       INTEGER :: jn 
     47      INTEGER  :: iimi, iima, ijmi, ijma,ipk, it, itmod 
    4448      CHARACTER(len = 20)  ::  cltra , cltrau 
    4549      CHARACTER(len = 80)  ::  cltral 
    46  
    47       INTEGER   :: ji, jk, js, jw 
    4850      REAL(wp)  :: zrate 
    49       REAL(wp), DIMENSION(:,:) , ALLOCATABLE :: zdta, zflx 
     51      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zdta, zflx 
    5052 
    5153      !!------------------------------------------------------------------- 
     
    5456      ! Initialisation 
    5557      ! -----------------  
    56  
     58      IF( kt == nit000 )   ALLOCATE( ndext52(jpij*jpksed), ndext51(jpij) ) 
    5759 
    5860      ! Define frequency of output and means 
Note: See TracChangeset for help on using the changeset viewer.