Ignore:
Timestamp:
2012-08-10T13:13:55+02:00 (8 years ago)
Author:
cetlod
Message:

branch:2012/dev_r3438_LOCEAN15_PISLOB : 2nd step new PISCES updates from Olivier, see ticket #972

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r3443 r3446  
    2222   USE p4zint          !  interpolation and computation of various fields 
    2323   USE p4zprod         !  production 
     24   USE iom             !  I/O manager 
    2425   USE prtctl_trc      !  print control for debugging 
    2526 
     
    2930   PUBLIC   p4z_micro         ! called in p4zbio.F90 
    3031   PUBLIC   p4z_micro_init    ! called in trcsms_pisces.F90 
    31    PUBLIC   p4z_micro_alloc    ! called in trcsms_pisces.F90 
    3232 
    3333   !! * Shared module variables 
     
    5959CONTAINS 
    6060 
    61    SUBROUTINE p4z_micro( kt ) 
     61   SUBROUTINE p4z_micro( kt, jnt ) 
    6262      !!--------------------------------------------------------------------- 
    6363      !!                     ***  ROUTINE p4z_micro  *** 
     
    6767      !! ** Method  : - ??? 
    6868      !!--------------------------------------------------------------------- 
    69       INTEGER, INTENT(in) ::   kt ! ocean time step 
     69      INTEGER, INTENT(in) ::  kt  ! ocean time step 
     70      INTEGER, INTENT(in) ::  jnt  
     71      ! 
    7072      INTEGER  :: ji, jj, jk 
    7173      REAL(wp) :: zcompadi, zcompaz , zcompaph, zcompapoc 
     
    7779      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7880      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
     81      REAL(wp) :: zrfact2 
     82      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing 
    7983      CHARACTER (len=25) :: charout 
    8084      !!--------------------------------------------------------------------- 
     
    8286      IF( nn_timing == 1 )  CALL timing_start('p4z_micro') 
    8387      ! 
    84       grazing(:,:,:) = 0.  !: grazing set to zero 
     88      IF( ln_diatrc .AND. lk_iomput )  CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
     89      ! 
    8590      DO jk = 1, jpkm1 
    8691         DO jj = 1, jpj 
     
    127132 
    128133               ! Grazing by microzooplankton 
    129                grazing(ji,jj,jk) = grazing(ji,jj,jk) + zgraztot 
     134               IF( ln_diatrc .AND. lk_iomput )  zgrazing(ji,jj,jk) = zgraztot 
    130135 
    131136               !    Various remineralization and excretion terms 
     
    185190      END DO 
    186191      ! 
     192      IF( ln_diatrc .AND. lk_iomput .AND. jnt == nrdttrc ) THEN 
     193         zrfact2 = 1.e3 * rfact2r 
     194         CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * zrfact2 * tmask(:,:,:) )  ! Total grazing of phyto by zooplankton 
     195      ENDIF 
     196      ! 
    187197      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    188198         WRITE(charout, FMT="('micro')") 
     
    190200         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    191201      ENDIF 
     202      ! 
     203      IF( ln_diatrc .AND. lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    192204      ! 
    193205      IF( nn_timing == 1 )  CALL timing_stop('p4z_micro') 
     
    240252   END SUBROUTINE p4z_micro_init 
    241253 
    242    INTEGER FUNCTION p4z_micro_alloc() 
    243       !!---------------------------------------------------------------------- 
    244       !!                     ***  ROUTINE p4z_micro_alloc  *** 
    245       !!---------------------------------------------------------------------- 
    246       ALLOCATE( grazing(jpi,jpj,jpk), STAT=p4z_micro_alloc ) 
    247       IF( p4z_micro_alloc /= 0 ) CALL ctl_warn('p4z_micro_alloc : failed to allocate arrays.') 
    248  
    249    END FUNCTION p4z_micro_alloc 
    250  
    251254#else 
    252255   !!====================================================================== 
Note: See TracChangeset for help on using the changeset viewer.