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 9125 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

Ignore:
Timestamp:
2017-12-19T09:47:17+01:00 (6 years ago)
Author:
timgraham
Message:

Removed wrk_arrays from whole code. No change in SETTE results from this.

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90

    r9124 r9125  
    9696      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 
    9797      REAL(wp) ::   ze3t 
    98       REAL(wp), POINTER,   DIMENSION(:,:,:) :: zw2d 
    99       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zw3d 
     98      REAL(wp), ALLOCATABLE,   DIMENSION(:,:,:) :: zw2d 
     99      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zw3d 
    100100      CHARACTER (len=25) :: charout 
    101101      !!--------------------------------------------------------------------- 
     
    103103      IF( ln_timing )   CALL timing_start('p2z_bio') 
    104104      ! 
    105       IF( lk_iomput ) THEN 
    106          CALL wrk_alloc( jpi, jpj,     17, zw2d ) 
    107          CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d ) 
    108       ENDIF 
     105      IF( lk_iomput ) ALLOCATE( zw2d(jpi,jpj,17), zw3d(jpi,jpj,jpk,3) ) 
    109106 
    110107      IF( kt == nittrc000 ) THEN 
     
    377374      ENDIF 
    378375      ! 
    379       IF( lk_iomput ) THEN 
    380          CALL wrk_dealloc( jpi, jpj,     17, zw2d ) 
    381          CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d ) 
    382       ENDIF 
     376      IF( lk_iomput ) DEALLOCATE( zw2d, zw3d ) 
    383377      ! 
    384378      IF( ln_timing )  CALL timing_stop('p2z_bio') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90

    r9124 r9125  
    6464      INTEGER  ::   ji, jj, jk, jl, ikt 
    6565      REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 
    66       REAL(wp), POINTER, DIMENSION(:,:)   ::  zsedpoca 
     66      REAL(wp), DIMENSION(jpi,jpj)   ::  zsedpoca 
    6767      CHARACTER (len=25) :: charout 
    6868      !!--------------------------------------------------------------------- 
     
    7272      IF( kt == nittrc000 )   CALL p2z_exp_init 
    7373 
    74       CALL wrk_alloc( jpi, jpj, zsedpoca )  
    7574      zsedpoca(:,:) = 0. 
    7675 
     
    147146      ENDIF 
    148147      ! 
    149       CALL wrk_dealloc( jpi, jpj, zsedpoca)   ! temporary save of trends 
    150  
    151148      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    152149         WRITE(charout, FMT="('exp')") 
     
    167164      INTEGER  ::   ji, jj, jk 
    168165      REAL(wp) ::   zmaskt, zfluo, zfluu 
    169       REAL(wp), POINTER, DIMENSION(:,:  ) ::  zrro 
    170       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zdm0 
     166      REAL(wp), DIMENSION(jpi,jpj    ) :: zrro 
     167      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdm0 
    171168      !!--------------------------------------------------------------------- 
    172169      ! 
     
    178175      ENDIF 
    179176      ! 
    180       ! Allocate temporary workspace 
    181       CALL wrk_alloc( jpi, jpj,      zrro ) 
    182       CALL wrk_alloc( jpi, jpj, jpk, zdm0 ) 
    183  
    184177 
    185178      ! Calculate vertical distribution of newly formed biogenic poc 
     
    247240      ENDIF 
    248241      ! 
    249       CALL wrk_dealloc( jpi, jpj,      zrro ) 
    250       CALL wrk_dealloc( jpi, jpj, jpk, zdm0 ) 
    251       ! 
    252242   END SUBROUTINE p2z_exp_init 
    253243 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90

    r9124 r9125  
    6767      REAL(wp) ::   zkr, zkg            ! total absorption coefficient in red and green 
    6868      REAL(wp) ::   zcoef               ! temporary scalar 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: zpar100, zpar0m 
    70       REAL(wp), POINTER, DIMENSION(:,:,:) :: zparr, zparg 
     69      REAL(wp), DIMENSION(jpi,jpj    ) :: zpar100, zpar0m 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zparr, zparg 
    7171      !!--------------------------------------------------------------------- 
    7272      ! 
    7373      IF( ln_timing )   CALL timing_start('p2z_opt') 
    7474      ! 
    75       ! Allocate temporary workspace 
    76       CALL wrk_alloc( jpi, jpj,      zpar100, zpar0m ) 
    77       CALL wrk_alloc( jpi, jpj, jpk, zparr, zparg    ) 
    7875 
    7976      IF( kt == nittrc000 ) THEN 
     
    142139      ENDIF 
    143140      ! 
    144       CALL wrk_dealloc( jpi, jpj,      zpar100, zpar0m ) 
    145       CALL wrk_dealloc( jpi, jpj, jpk, zparr, zparg    ) 
    146       ! 
    147141      IF( ln_timing )   CALL timing_stop('p2z_opt') 
    148142      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90

    r9124 r9125  
    5959      INTEGER  ::   ji, jj, jk, jl, ierr 
    6060      CHARACTER (len=25) :: charout 
    61       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    62       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra 
     61      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
     62      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork, ztra 
    6363      !!--------------------------------------------------------------------- 
    6464      ! 
     
    7070         IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
    7171      ENDIF 
    72  
    73       ! Allocate temporary workspace 
    74       CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 
    7572 
    7673      ! sedimentation of detritus  : upstream scheme 
     
    9895      IF( lk_iomput )  THEN 
    9996         IF( iom_use( "TDETSED" ) ) THEN 
    100             CALL wrk_alloc( jpi, jpj, zw2d ) 
     97            ALLOCATE( zw2d(jpi,jpj) ) 
    10198            zw2d(:,:) =  ztra(:,:,1) * e3t_n(:,:,1) * 86400._wp 
    10299            DO jk = 2, jpkm1 
     
    104101            END DO 
    105102            CALL iom_put( "TDETSED", zw2d ) 
    106             CALL wrk_dealloc( jpi, jpj, zw2d ) 
     103            DEALLOCATE( zw2d ) 
    107104         ENDIF 
    108105      ENDIF 
    109       ! 
    110       CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra ) 
    111106      ! 
    112107 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90

    r9124 r9125  
    564564   LOGICAL   ::  l_exitnow 
    565565   REAL(wp), PARAMETER :: pz_exp_threshold = 1.0 
    566    REAL(wp), POINTER, DIMENSION(:,:,:) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin 
     566   REAL(wp), DIMENSION(jpi,jpj,jpk) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin 
    567567 
    568568   IF( ln_timing )  CALL timing_start('solve_at_general') 
    569       !  Allocate temporary workspace 
    570    CALL wrk_alloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask ) 
    571    CALL wrk_alloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin ) 
    572569 
    573570   CALL anw_infsup( zalknw_inf, zalknw_sup ) 
     
    799796   END DO 
    800797   ! 
    801    CALL wrk_dealloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask ) 
    802    CALL wrk_dealloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin ) 
    803  
    804798 
    805799      IF( ln_timing )   CALL timing_stop('solve_at_general') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r9124 r9125  
    7474      REAL(wp) :: dissol, zligco 
    7575      CHARACTER (len=25) :: charout 
    76       REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig, precip 
    77       REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP 
    78       REAL(wp), POINTER, DIMENSION(:,:  ) :: zstrn, zstrn2 
     76      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zTL1, zFe3, ztotlig, precip, zFeL1 
     77      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zFeL2, zTL2, zFe2, zFeP 
     78      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zstrn, zstrn2 
    7979      !!--------------------------------------------------------------------- 
    8080      ! 
    8181      IF( ln_timing )   CALL timing_start('p4z_fechem') 
    8282      ! 
    83       ! Allocate temporary workspace 
    84       CALL wrk_alloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
    8583      zFe3 (:,:,:) = 0. 
    8684      zFeL1(:,:,:) = 0. 
    8785      zTL1 (:,:,:) = 0. 
    8886      IF( ln_fechem ) THEN 
    89          CALL wrk_alloc( jpi, jpj,      zstrn, zstrn2 ) 
    90          CALL wrk_alloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     87         ALLOCATE( zstrn(jpi,jpj), zstrn2(jpi,jpj) ) 
     88         ALLOCATE( zFe2(jpi,jpj,jpk), zFeL2(jpi,jpj,jpk), zTL2(jpi,jpj,jpk), zFeP(jpi,jpj,jpk) ) 
    9189         zFe2 (:,:,:) = 0. 
    9290         zFeL2(:,:,:) = 0. 
     
    360358      ENDIF 
    361359      ! 
    362       CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
    363360      IF( ln_fechem )  THEN 
    364          CALL wrk_dealloc( jpi, jpj,      zstrn, zstrn2 ) 
    365          CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     361         DEALLOCATE( zstrn, zstrn2 ) 
     362         DEALLOCATE( zFe2, zFeL2, zTL2, zFeP ) 
    366363      ENDIF 
    367364      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r9124 r9125  
    8080      REAL(wp) ::   zyr_dec, zdco2dt 
    8181      CHARACTER (len=25) :: charout 
    82       REAL(wp), POINTER, DIMENSION(:,:) :: zkgco2, zkgo2, zh2co3, zoflx, zw2d, zpco2atm   
     82      REAL(wp), DIMENSION(jpi,jpj) :: zkgco2, zkgo2, zh2co3, zoflx,  zpco2atm   
     83      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
    8384      !!--------------------------------------------------------------------- 
    8485      ! 
    8586      IF( ln_timing )   CALL timing_start('p4z_flx') 
    86       ! 
    87       CALL wrk_alloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm ) 
    8887      ! 
    8988 
     
    187186 
    188187      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    189          CALL wrk_alloc( jpi, jpj, zw2d 
     188         ALLOCATE( zw2d(jpi,jpj) 
    190189         IF( iom_use( "Cflx"  ) )  THEN 
    191190            zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
     
    211210         CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum )      ! molC 
    212211         ! 
    213          CALL wrk_dealloc( jpi, jpj, zw2d ) 
    214       ENDIF 
    215       ! 
    216       CALL wrk_dealloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm ) 
     212         DEALLOCATE( zw2d ) 
     213      ENDIF 
    217214      ! 
    218215      IF( ln_timing )   CALL timing_stop('p4z_flx') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r9124 r9125  
    6262      REAL(wp) ::   zomegaca, zexcess, zexcess0 
    6363      CHARACTER (len=25) :: charout 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) :: zco3, zcaldiss, zhinit, zhi, zco3sat 
     64      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zco3, zcaldiss, zhinit, zhi, zco3sat 
    6565      !!--------------------------------------------------------------------- 
    6666      ! 
    6767      IF( ln_timing )  CALL timing_start('p4z_lys') 
    68       ! 
    69       CALL wrk_alloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
    7068      ! 
    7169      zco3    (:,:,:) = 0. 
     
    139137      ENDIF 
    140138      ! 
    141       CALL wrk_dealloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
    142       ! 
    143139      IF( ln_timing )   CALL timing_stop('p4z_lys') 
    144140      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r9124 r9125  
    7272      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 
    7373      CHARACTER (len=25) :: charout 
    74       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     74      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     75      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    7576 
    7677      !!--------------------------------------------------------------------- 
     
    7879      IF( ln_timing )   CALL timing_start('p4z_meso') 
    7980      ! 
    80       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    8181      zgrazing(:,:,:) = 0._wp 
    8282 
     
    220220      ! 
    221221      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    222          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     222         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    223223         IF( iom_use( "GRAZ2" ) ) THEN 
    224224            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !   Total grazing of phyto by zooplankton 
     
    229229            CALL iom_put( "PCAL", zw3d )   
    230230         ENDIF 
    231          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     231         DEALLOCATE( zw3d ) 
    232232      ENDIF 
    233233      ! 
     
    237237        CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    238238      ENDIF 
    239       ! 
    240       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    241239      ! 
    242240      IF( ln_timing )   CALL timing_stop('p4z_meso') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r9124 r9125  
    6969      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7070      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
    71       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     71      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing  
     72      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zw3d 
    7273      CHARACTER (len=25) :: charout 
    7374      !!--------------------------------------------------------------------- 
    7475      ! 
    7576      IF( ln_timing )   CALL timing_start('p4z_micro') 
    76       ! 
    77       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    7877      ! 
    7978      DO jk = 1, jpkm1 
     
    177176      IF( lk_iomput ) THEN 
    178177         IF( knt == nrdttrc ) THEN 
    179            CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     178           ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    180179           IF( iom_use( "GRAZ1" ) ) THEN 
    181180              zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    182181              CALL iom_put( "GRAZ1", zw3d ) 
    183182           ENDIF 
    184            CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     183           DEALLOCATE( zw3d ) 
    185184         ENDIF 
    186185      ENDIF 
     
    191190         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    192191      ENDIF 
    193       ! 
    194       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    195192      ! 
    196193      IF( ln_timing )   CALL timing_stop('p4z_micro') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r9124 r9125  
    6464      REAL(wp) ::   zchl 
    6565      REAL(wp) ::   zc0 , zc1 , zc2, zc3, z1_dep 
    66       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 
    67       REAL(wp), POINTER, DIMENSION(:,:  ) :: zetmp5 
    68       REAL(wp), POINTER, DIMENSION(:,:  ) :: zqsr100, zqsr_corr 
    69       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpar, ze0, ze1, ze2, ze3, zchl3d 
     66      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zetmp5 
     67      REAL(wp), DIMENSION(jpi,jpj    ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 
     68      REAL(wp), DIMENSION(jpi,jpj    ) :: zqsr100, zqsr_corr 
     69      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpar, ze0, ze1, ze2, ze3, zchl3d 
    7070      !!--------------------------------------------------------------------- 
    7171      ! 
     
    7373      ! 
    7474      ! Allocate temporary workspace 
    75                    CALL wrk_alloc( jpi, jpj,      zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 
    76                    CALL wrk_alloc( jpi, jpj,      zqsr100, zqsr_corr ) 
    77       IF( ln_p5z ) CALL wrk_alloc( jpi, jpj,      zetmp5 ) 
    78                    CALL wrk_alloc( jpi, jpj, jpk, zpar   , ze0, ze1, ze2, ze3, zchl3d ) 
     75      IF( ln_p5z ) ALLOCATE( zetmp5(jpi,jpj) ) 
    7976 
    8077      IF( knt == 1 .AND. ln_varpar ) CALL p4z_opt_sbc( kt ) 
     
    243240      ENDIF 
    244241      ! 
    245                    CALL wrk_dealloc( jpi, jpj,      zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 
    246                    CALL wrk_dealloc( jpi, jpj,      zqsr100, zqsr_corr ) 
    247       IF( ln_p5z ) CALL wrk_dealloc( jpi, jpj,      zetmp5 ) 
    248                    CALL wrk_dealloc( jpi, jpj, jpk, zpar   ,  ze0, ze1, ze2, ze3, zchl3d ) 
     242      IF( ln_p5z ) DEALLOCATE( zetmp5 ) 
    249243      ! 
    250244      IF( ln_timing )  CALL timing_stop('p4z_opt') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zpoc.F90

    r9124 r9125  
    6363      REAL(wp) ::   zrfact2 
    6464      CHARACTER (len=25) :: charout 
    65       REAL(wp), POINTER, DIMENSION(:,:  )   :: totprod, totthick, totcons  
    66       REAL(wp), POINTER, DIMENSION(:,:,:)   :: zremipoc, zremigoc, zorem3, ztremint 
    67       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: alphag 
     65      REAL(wp), DIMENSION(jpi,jpj  )   :: totprod, totthick, totcons  
     66      REAL(wp), DIMENSION(jpi,jpj,jpk)   :: zremipoc, zremigoc, zorem3, ztremint 
     67      REAL(wp), DIMENSION(jpi,jpj,jpk,jcpoc) :: alphag 
    6868      !!--------------------------------------------------------------------- 
    6969      ! 
    7070      IF( ln_timing )  CALL timing_start('p4z_poc') 
    7171      ! 
    72       ! Allocate temporary workspace 
    73       CALL wrk_alloc( jpi, jpj,      totprod,  totthick, totcons ) 
    74       CALL wrk_alloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint ) 
    75       ALLOCATE( alphag(jpi,jpj,jpk,jcpoc) ) 
    76  
    7772      ! Initialization of local variables 
    7873      ! --------------------------------- 
     
    465460      ENDIF 
    466461      ! 
    467       CALL wrk_dealloc( jpi, jpj,      totprod,  totthick, totcons ) 
    468       CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint ) 
    469       DEALLOCATE( alphag ) 
    470462      ! 
    471463      IF( ln_timing )   CALL timing_stop('p4z_poc') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r9124 r9125  
    7676      REAL(wp) ::   zfact 
    7777      CHARACTER (len=25) :: charout 
    78       REAL(wp), POINTER, DIMENSION(:,:  ) :: zstrn, zw2d, zmixnano, zmixdiat 
    79       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadd, zysopt, zw3d    
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprdia, zprbio, zprdch, zprnch    
    81       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcad, zprofed, zprofen 
    82       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewd 
    83       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
     78      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
     79      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     80      REAL(wp), DIMENSION(jpi,jpj    ) :: zstrn, zmixnano, zmixdiat 
     81      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadd, zysopt   
     82      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprdia, zprbio, zprdch, zprnch    
     83      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcad, zprofed, zprofen 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewd 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 
    8486      !!--------------------------------------------------------------------- 
    8587      ! 
     
    8789      ! 
    8890      !  Allocate temporary workspace 
    89       CALL wrk_alloc( jpi, jpj,      zmixnano, zmixdiat, zstrn ) 
    90       CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )  
    91       CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    92       CALL wrk_alloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
    9391      ! 
    9492      zprorcan(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp ; zprofed (:,:,:) = 0._wp 
     
    367365    IF( lk_iomput ) THEN 
    368366       IF( knt == nrdttrc ) THEN 
    369           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    370           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     367          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    371368          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    372369          ! 
     
    469466          IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    470467          ! 
    471           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    472           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     468          DEALLOCATE( zw2d, zw3d ) 
    473469       ENDIF 
    474470     ENDIF 
     
    479475         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    480476     ENDIF 
    481      ! 
    482      CALL wrk_dealloc( jpi, jpj,  zmixnano, zmixdiat,    zstrn ) 
    483      CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )  
    484      CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    485      CALL wrk_dealloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
    486477     ! 
    487478     IF( ln_timing )  CALL timing_stop('p4z_prod') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r9124 r9125  
    6767      REAL(wp) ::   zosil, ztem, zdenitnh4, zolimic, zolimin, zolimip, zdenitrn, zdenitrp 
    6868      CHARACTER (len=25) :: charout 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac 
    70       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zw3d, zfacsib 
     69      REAL(wp), DIMENSION(jpi,jpj    ) :: ztempbac 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib 
     71      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    7172      !!--------------------------------------------------------------------- 
    7273      ! 
    7374      IF( ln_timing )   CALL timing_start('p4z_rem') 
    7475      ! 
    75       ! Allocate temporary workspace 
    76       CALL wrk_alloc( jpi, jpj,      ztempbac                  ) 
    77       CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
    78  
    79       ! Initialisation of temprary arrys 
     76      ! Initialisation of arrys 
    8077      zdepprod(:,:,:) = 1._wp 
    8178      ztempbac(:,:)   = 0._wp 
     
    270267 
    271268      IF( knt == nrdttrc ) THEN 
    272           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     269          ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    273270          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    274271          ! 
     
    282279          ENDIF 
    283280          ! 
    284           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     281          DEALLOCATE( zw3d ) 
    285282       ENDIF 
    286       ! 
    287       CALL wrk_dealloc( jpi, jpj,      ztempbac                  ) 
    288       CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
    289283      ! 
    290284      IF( ln_timing )   CALL timing_stop('p4z_rem') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r9124 r9125  
    6262      ! 
    6363      CHARACTER (len=25) :: charout 
    64       REAL(wp), POINTER, DIMENSION(:,:  ) :: zsidep, zwork1, zwork2, zwork3 
    65       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice, zbureff 
    66       REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsbio3, zwsbio4, zwscal 
    67       REAL(wp), POINTER, DIMENSION(:,:  ) :: zsedcal, zsedsi, zsedc 
    68       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zsoufer, zpdep, zlight 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsfep 
     64      REAL(wp), DIMENSION(jpi,jpj    ) :: zwork1, zwork2, zwork3 
     65      REAL(wp), DIMENSION(jpi,jpj    ) :: zdenit2d, zbureff 
     66      REAL(wp), DIMENSION(jpi,jpj    ) :: zwsbio3, zwsbio4, zwscal 
     67      REAL(wp), DIMENSION(jpi,jpj    ) :: zsedcal, zsedsi, zsedc 
     68      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 
     69      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 
     70      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zsidep, zwsfep, zironice 
    7071      !!--------------------------------------------------------------------- 
    7172      ! 
     
    7576      ! 
    7677      ! Allocate temporary workspace 
    77                       CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
    78                       CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    79                       CALL wrk_alloc( jpi, jpj, zsedcal,  zsedsi, zsedc ) 
    80                       CALL wrk_alloc( jpi, jpj, jpk, zlight, zsoufer ) 
    81       IF( ln_p5z )    CALL wrk_alloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 
    82       IF( ln_ligand ) CALL wrk_alloc( jpi, jpj, zwsfep ) 
     78      IF( ln_p5z )    ALLOCATE( ztrpo4(jpi,jpj,jpk), ztrdop(jpi,jpj,jpk) ) 
     79      IF( ln_ligand ) ALLOCATE( zwsfep(jpi,jpj) ) 
    8380 
    8481 
     
    9794      IF( ln_ironice ) THEN   
    9895         !                                               
    99          CALL wrk_alloc( jpi, jpj, zironice ) 
     96         ALLOCATE( zironice(jpi,jpj) ) 
    10097         !                                               
    10198         DO jj = 1, jpj 
     
    114111            &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 
    115112         ! 
    116          CALL wrk_dealloc( jpi, jpj, zironice ) 
     113         DEALLOCATE( zironice ) 
    117114         !                                               
    118115      ENDIF 
     
    122119      IF( ln_dust ) THEN 
    123120         !                                               
    124          CALL wrk_alloc( jpi, jpj,      zsidep ) 
    125          CALL wrk_alloc( jpi, jpj, jpk, zpdep, zirondep      ) 
     121         ALLOCATE( zsidep(jpi,jpj) ) 
     122         ALLOCATE( zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 
    126123         !                                              ! Iron and Si deposition at the surface 
    127124         IF( ln_solub ) THEN 
     
    152149            ENDIF 
    153150         ENDIF 
    154          CALL wrk_dealloc( jpi, jpj,      zsidep ) 
    155          CALL wrk_dealloc( jpi, jpj, jpk, zpdep, zirondep      ) 
     151         DEALLOCATE( zsidep ) 
     152         DEALLOCATE( zpdep, zirondep ) 
    156153         !                                               
    157154      ENDIF 
     
    514511      ENDIF 
    515512      ! 
    516                       CALL wrk_dealloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
    517                       CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    518                       CALL wrk_dealloc( jpi, jpj, zsedcal,  zsedsi, zsedc ) 
    519                       CALL wrk_dealloc( jpi, jpj, jpk, zlight, zsoufer ) 
    520       IF( ln_p5z )    CALL wrk_dealloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 
    521       IF( ln_ligand ) CALL wrk_dealloc( jpi, jpj, zwsfep ) 
     513      IF( ln_p5z )    DEALLOCATE( ztrpo4, ztrdop ) 
     514      IF( ln_ligand ) DEALLOCATE( zwsfep ) 
    522515      ! 
    523516      IF( ln_timing )  CALL timing_stop('p4z_sed') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r9124 r9125  
    6565      REAL(wp) ::   zfact, zwsmax, zmax 
    6666      CHARACTER (len=25) :: charout 
    67       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    68       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
     67      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     68      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    6969      !!--------------------------------------------------------------------- 
    7070      ! 
     
    212212     IF( lk_iomput ) THEN 
    213213       IF( knt == nrdttrc ) THEN 
    214           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    215           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     214          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    216215          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    217216          ! 
     
    250249          IF( iom_use( "tcexp" ) )  CALL iom_put( "tcexp" , t_oce_co2_exp * zfact )   ! molC/s 
    251250          !  
    252           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    253           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     251          DEALLOCATE( zw2d, zw3d ) 
    254252        ENDIF 
    255253      ENDIF 
     
    304302      INTEGER  ::   ji, jj, jk, jn 
    305303      REAL(wp) ::   zigma,zew,zign, zflx, zstep 
    306       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztraz, zakz, zwsink2, ztrb  
     304      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztraz, zakz, zwsink2, ztrb  
    307305      !!--------------------------------------------------------------------- 
    308306      ! 
    309307      IF( ln_timing )   CALL timing_start('p4z_sink2') 
    310308      ! 
    311       ! Allocate temporary workspace 
    312       CALL wrk_alloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb ) 
    313  
    314309      zstep = rfact2 / REAL( kiter, wp ) / 2. 
    315310 
     
    391386      psinkflx(:,:,:)   = 2. * psinkflx(:,:,:) 
    392387      ! 
    393       CALL wrk_dealloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb ) 
    394       ! 
    395388      IF( ln_timing )  CALL timing_stop('p4z_sink2') 
    396389      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r9124 r9125  
    420420      CHARACTER(LEN=100)   ::   cltxt 
    421421      INTEGER :: jk 
    422       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork 
     422      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork 
    423423      !!---------------------------------------------------------------------- 
    424424      ! 
     
    437437      ENDIF 
    438438 
    439       CALL wrk_alloc( jpi, jpj, jpk, zwork ) 
    440       ! 
    441439      IF( iom_use( "pno3tot" ) .OR. ( ln_check_mass .AND. kt == nitend )  ) THEN 
    442440         !   Compute the budget of NO3, ALK, Si, Fer 
     
    503501      ENDIF 
    504502      ! 
    505       CALL wrk_dealloc( jpi, jpj, jpk, zwork ) 
    506       ! 
    507503      ! Global budget of N SMS : denitrification in the water column and in the sediment 
    508504      !                          nitrogen fixation by the diazotrophs 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmeso.F90

    r9124 r9125  
    8585      CHARACTER (len=25) :: charout 
    8686      REAL(wp) :: zrfact2, zmetexcess 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     88      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    8889 
    8990      !!--------------------------------------------------------------------- 
     
    9192      IF( ln_timing )   CALL timing_start('p5z_meso') 
    9293      ! 
    93       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    9494      zgrazing(:,:,:) = 0._wp 
    9595 
     
    342342      ! 
    343343      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    344          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     344         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    345345         IF( iom_use( "GRAZ2" ) ) THEN 
    346346            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !   Total grazing of phyto by zooplankton 
     
    351351            CALL iom_put( "PCAL", zw3d ) 
    352352         ENDIF 
    353          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     353         DEALLOCATE( zw3d ) 
    354354      ENDIF 
    355355      ! 
     
    359359        CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    360360      ENDIF 
    361       ! 
    362       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    363361      ! 
    364362      IF( ln_timing )   CALL timing_stop('p5z_meso') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmicro.F90

    r9124 r9125  
    8282      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 
    8383      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 
    84       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     85      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    8586      CHARACTER (len=25) :: charout 
    8687      !!--------------------------------------------------------------------- 
    8788      ! 
    8889      IF( ln_timing )   CALL timing_start('p5z_micro') 
    89       ! 
    90       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    9190      ! 
    9291      zmetexcess = 0.0 
     
    290289      ! 
    291290      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    292          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     291         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    293292         IF( iom_use( "GRAZ1" ) ) THEN 
    294293            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    295294            CALL iom_put( "GRAZ1", zw3d ) 
    296295         ENDIF 
    297          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     296         DEALLOCATE( zw3d ) 
    298297      ENDIF 
    299298      ! 
     
    303302         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    304303      ENDIF 
    305       ! 
    306       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    307304      ! 
    308305      IF( ln_timing )   CALL timing_stop('p5z_micro') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90

    r9124 r9125  
    8181      REAL(wp) ::   zfact, zrfact2 
    8282      CHARACTER (len=25) :: charout 
    83       REAL(wp), POINTER, DIMENSION(:,:  ) :: zmixnano, zmixpico, zmixdiat, zstrn 
    84       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadp, zpislopeadd 
    85       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprbio, zprpic, zprdia, zysopt 
    86       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad  
    88       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen 
    89       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd 
    90       REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd 
    91       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpropo4n, zpropo4p, zpropo4d 
    92       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprodopn, zprodopp, zprodopd 
    93       REAL(wp), POINTER, DIMENSION(:,:,:) :: zrespn, zrespp, zrespd, zprnut 
    94       REAL(wp), POINTER, DIMENSION(:,:,:) :: zcroissn, zcroissp, zcroissd 
    95       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
    96       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    97       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
     83      REAL(wp), DIMENSION(jpi,jpj    ) :: zmixnano, zmixpico, zmixdiat, zstrn 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadp, zpislopeadd 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprbio, zprpic, zprdia, zysopt 
     86      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprchln, zprchlp, zprchld 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcap, zprorcad  
     88      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofed, zprofep, zprofen 
     89      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewp, zpronewd 
     90      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zproregn, zproregp, zproregd 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpropo4n, zpropo4p, zpropo4d 
     92      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprodopn, zprodopp, zprodopd 
     93      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zrespn, zrespp, zrespd, zprnut 
     94      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcroissn, zcroissp, zcroissd 
     95      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 
     96      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     97      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    9898      !!--------------------------------------------------------------------- 
    9999      ! 
    100100      IF( ln_timing )   CALL timing_start('p5z_prod') 
    101       ! 
    102       !  Allocate temporary workspace 
    103       CALL wrk_alloc( jpi, jpj,      zmixnano, zmixpico, zmixdiat, zstrn ) 
    104       CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    105       CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )  
    106       CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    107       CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 
    108       CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    109       CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    110       CALL wrk_alloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    111       CALL wrk_alloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
    112101      ! 
    113102      zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 
     
    474463    IF( lk_iomput ) THEN 
    475464       IF( knt == nrdttrc ) THEN 
    476           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    477           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     465          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    478466          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    479467          ! 
     
    550538          IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    551539          ! 
    552           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    553           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     540          DEALLOCATE( zw2d, zw3d ) 
    554541       ENDIF 
    555542     ENDIF 
     
    560547         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    561548      ENDIF 
    562       ! 
    563       CALL wrk_dealloc( jpi, jpj,      zmixnano, zmixpico, zmixdiat, zstrn ) 
    564       CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    565       CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )                            
    566       CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    567       CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )  
    568       CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    569       CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    570       CALL wrk_dealloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    571       CALL wrk_dealloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
    572549      ! 
    573550      IF( ln_timing )   CALL timing_stop('p5z_prod') 
Note: See TracChangeset for help on using the changeset viewer.