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 3381 for branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icb_oce.F90 – NEMO

Ignore:
Timestamp:
2012-05-04T09:26:12+02:00 (12 years ago)
Author:
sga
Message:

NEMO branch dev_r3337_NOCS10_ICB: Changes to allow branch to compile with key_agrif. Not yet complete.

Along the way replace unnecessary POINTER declarations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icb_oce.F90

    r3371 r3381  
    4848 
    4949   TYPE, PUBLIC ::   icebergs_gridded   !: various icebergs properties on model grid 
    50       REAL(wp), DIMENSION(:,:)  , POINTER ::   calving       => NULL()   ! Calving mass rate  (into stored ice)         [kg/s] 
    51       REAL(wp), DIMENSION(:,:)  , POINTER ::   calving_hflx  => NULL()   ! Calving heat flux [heat content of calving]  [W/m2] 
    52       REAL(wp), DIMENSION(:,:)  , POINTER ::   floating_melt => NULL()   ! Net melting rate to icebergs + bits      [kg/s/m^2] 
    53       INTEGER , DIMENSION(:,:)  , POINTER ::   maxclass      => NULL()   ! maximum class number at calving source point 
    54       REAL(wp), DIMENSION(:,:)  , POINTER ::   tmp           => NULL()   ! Temporary work space 
    55       REAL(wp), DIMENSION(:,:,:), POINTER ::   stored_ice    => NULL()   ! Accumulated ice mass flux at calving locations [kg] 
    56       REAL(wp), DIMENSION(:,:)  , POINTER ::   stored_heat   => NULL()   ! Heat content of stored ice                      [J] 
     50      REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   calving         ! Calving mass rate  (into stored ice)         [kg/s] 
     51      REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   calving_hflx    ! Calving heat flux [heat content of calving]  [W/m2] 
     52      REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   floating_melt   ! Net melting rate to icebergs + bits      [kg/s/m^2] 
     53      INTEGER , DIMENSION(:,:)  , ALLOCATABLE ::   maxclass        ! maximum class number at calving source point 
     54      REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   tmp             ! Temporary work space 
     55      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   stored_ice      ! Accumulated ice mass flux at calving locations [kg] 
     56      REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   stored_heat     ! Heat content of stored ice                      [J] 
    5757   END TYPE icebergs_gridded 
    5858 
     
    7979 
    8080   !                                                             !!! parameters controlling iceberg characteristics and modelling 
    81    REAL(wp)                        ::   berg_dt                   !: Time-step between iceberg CALLs (should make adaptive?) 
    82    INTEGER                         ::   current_year              !:  
    83    REAL(wp)                        ::   current_yearday           !: 1.00-365.99 
    84    REAL(wp), DIMENSION(:), POINTER ::   first_width, first_length !:  
    85    LOGICAL                         ::   l_restarted_bergs=.FALSE.  ! Indicate whether we read state from a restart or not 
     81   REAL(wp)                            ::   berg_dt                   !: Time-step between iceberg CALLs (should make adaptive?) 
     82   INTEGER                             ::   current_year              !:  
     83   REAL(wp)                            ::   current_yearday           !: 1.00-365.99 
     84   REAL(wp), DIMENSION(:), ALLOCATABLE ::   first_width, first_length !:  
     85   LOGICAL                             ::   l_restarted_bergs=.FALSE.  ! Indicate whether we read state from a restart or not 
    8686   !                                                               ! arbitrary numbers for diawri entry 
    8787   REAL(wp), DIMENSION(nclasses), PUBLIC ::   class_num=(/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 /) 
     
    140140 
    141141   ! Single instance of an icebergs type initialised in icebergs_init and updated in icebergs_run 
    142    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   src_calving, src_calving_hflx    !: ??? 
    143    INTEGER , PUBLIC             , SAVE                     ::   numicb                           !: ??? 
    144    INTEGER , PUBLIC             , SAVE, DIMENSION(nkounts) ::   num_bergs                        !: ??? 
    145    INTEGER , PUBLIC             , SAVE                     ::   nicbdi, nicbei, nicbdj, nicbej   !: ??? 
    146    REAL(wp), PUBLIC             , SAVE                     ::   ricb_left, ricb_right            !: ??? 
    147    INTEGER , PUBLIC             , SAVE                     ::   nicbpack                         !: ??? 
    148    INTEGER , PUBLIC             , SAVE                     ::   nktberg, nknberg                 !: ??? 
    149    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbfldpts                       !: ??? 
    150    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbflddest                      !: ??? 
    151    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbfldproc                      !: ??? 
    152  
    153    TYPE(FLD), ALLOCATABLE, PUBLIC     , DIMENSION(:)       ::   sf_icb   !: structure: file information, fields read 
     142   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   src_calving, src_calving_hflx    !: accumulate input ice 
     143   INTEGER , PUBLIC             , SAVE                     ::   numicb                           !: iceberg IO 
     144   INTEGER , PUBLIC             , SAVE, DIMENSION(nkounts) ::   num_bergs                        !: iceberg counter 
     145   INTEGER , PUBLIC             , SAVE                     ::   nicbdi, nicbei, nicbdj, nicbej   !: processor bounds 
     146   REAL(wp), PUBLIC             , SAVE                     ::   ricb_left, ricb_right            !: cyclical bounds 
     147   INTEGER , PUBLIC             , SAVE                     ::   nicbpack                         !: packing integer 
     148   INTEGER , PUBLIC             , SAVE                     ::   nktberg, nknberg                 !: helpers 
     149   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbfldpts                       !: nfold packed points 
     150   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbflddest                      !: nfold destination proc 
     151   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   nicbfldproc                      !: nfold destination proc 
     152 
     153   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   :: griddata                           !: work array for icbrst 
     154 
     155   TYPE(FLD), PUBLIC, ALLOCATABLE     , DIMENSION(:)       ::   sf_icb   !: structure: file information, fields read 
    154156 
    155157   !!---------------------------------------------------------------------- 
     
    191193      icb_alloc = icb_alloc + ill 
    192194 
     195      ALLOCATE( griddata(jpi,jpj,1), STAT=ill ) 
     196      icb_alloc = icb_alloc + ill 
     197 
    193198      IF( lk_mpp        )   CALL mpp_sum ( icb_alloc ) 
    194199      IF( icb_alloc > 0 )   CALL ctl_warn('icb_alloc: allocation of arrays failed') 
Note: See TracChangeset for help on using the changeset viewer.