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 2614 – NEMO

Changeset 2614


Ignore:
Timestamp:
2011-02-25T17:33:25+01:00 (13 years ago)
Author:
trackstand2
Message:

Changes in TOP/CFC for dynamic memory

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r2613 r2614  
    560560      USE trdmld_trc,   ONLY: trd_mld_trc_alloc 
    561561#endif 
     562#if defined key_cfc 
     563     USE trcsms_cfc,   ONLY: trc_sms_cfc_alloc 
     564#endif 
    562565      ! ...end of TOP-related alloc routines 
    563566 
    564567      ! LOBSTER-related alloc routines... 
     568#if defined key_lobster 
    565569      USE sms_lobster,  ONLY: sms_lobster_alloc 
     570#endif 
    566571      ! ...end of LOBSTER-related alloc routines 
    567572 
     
    625630#if defined key_ldfslp   ||   defined key_esopa 
    626631      ierr = ierr + dyn_ldf_bilapg_alloc() 
    627 #endif 
    628 #if defined key_dtasal   ||   defined key_esopa 
    629       ierr = ierr + dta_sal_alloc() 
    630632#endif 
    631633#if defined key_dtatem   ||   defined key_esopa 
     
    707709      ierr = ierr + trd_mld_trc_alloc() 
    708710#endif 
     711#if defined key_cfc 
     712     ierr = ierr + trc_sms_cfc_alloc() 
     713#endif 
    709714      ! ...end of TOP-related alloc routines 
    710715 
    711716      ! Start of LOBSTER-related alloc routines 
     717#if defined key_lobster 
    712718      ierr = ierr + sms_lobster_alloc() 
     719#endif 
    713720      ! ...end of LOBSTER-related alloc routines 
    714721 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r2528 r2614  
    2525   PRIVATE 
    2626 
    27    PUBLIC   trc_sms_cfc       ! called in ???     
     27   PUBLIC   trc_sms_cfc         ! called in ???     
     28   PUBLIC   trc_sms_cfc_alloc   ! called in nemogcm.F90 
    2829 
    2930   INTEGER , PUBLIC, PARAMETER ::   jpyear = 150   ! temporal parameter  
     
    3435   INTEGER , PUBLIC    ::   npyear         ! Number of years read in CFC1112 file 
    3536    
    36    REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, 2    ) ::   p_cfc    ! partial hemispheric pressure for CFC           
    37    REAL(wp), PUBLIC, DIMENSION(jpi,jpj)              ::   xphem    ! spatial interpolation factor for patm 
    38    REAL(wp), PUBLIC, DIMENSION(jpi,jpj     ,jp_cfc) ::   qtr_cfc  ! flux at surface 
    39    REAL(wp), PUBLIC, DIMENSION(jpi,jpj     ,jp_cfc) ::   qint_cfc ! cumulative flux  
     37   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, 2    )      ::   p_cfc    ! partial hemispheric pressure for CFC 
     38   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   xphem    ! spatial interpolation factor for patm 
     39   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qtr_cfc  ! flux at surface 
     40   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qint_cfc ! cumulative flux  
    4041 
    4142   REAL(wp), DIMENSION(4,2) ::   soa   ! coefficient for solubility of CFC [mol/l/atm] 
     
    5960CONTAINS 
    6061 
     62   FUNCTION trc_sms_cfc_alloc() 
     63      !!---------------------------------------------------------------------- 
     64      !!                     ***  ROUTINE trc_sms_cfc_alloc  *** 
     65      !!---------------------------------------------------------------------- 
     66      INTEGER :: trc_sms_cfc_alloc 
     67      !!---------------------------------------------------------------------- 
     68 
     69      ALLOCATE(xphem(jpi,jpj),           & 
     70               qtr_cfc(jpi,jpj,jp_cfc),  & 
     71               qint_cfc(jpi,jpj,jp_cfc), & 
     72               Stat=trc_sms_cfc_alloc) 
     73 
     74      IF(trc_sms_cfc_alloc /= 0)THEN 
     75         CALL ctl_warn('trc_sms_cfc_alloc : failed to allocate arrays.') 
     76      END IF 
     77 
     78   END FUNCTION trc_sms_cfc_alloc 
     79 
     80 
    6181   SUBROUTINE trc_sms_cfc( kt ) 
    6282      !!---------------------------------------------------------------------- 
     
    7595      !!                CFC concentration in pico-mol/m3 
    7696      !!---------------------------------------------------------------------- 
     97      USE wrk_nemo, ONLY: wrk_use, wrk_release 
     98      USE wrk_nemo, ONLY: ztrcfc => wrk_3d_1        ! use for CFC sms trend 
     99      !! 
    77100      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index 
    78101      !! 
     
    90113 
    91114      REAL(wp), DIMENSION(jphem,jp_cfc)   ::   zpatm       ! atmospheric function 
    92       REAL(wp), DIMENSION(jpi,jpj,jpk)    ::   ztrcfc      ! use for CFC sms trend 
    93       !!---------------------------------------------------------------------- 
     115      !!---------------------------------------------------------------------- 
     116 
     117      IF(.NOT. wrk_use(3, 1))THEN 
     118         CALL ctl_stop('trc_sms_cfc : requested workspace array unavailable.') 
     119         RETURN 
     120      END IF 
    94121 
    95122      IF( kt == nit000 )   CALL trc_cfc_cst 
     
    191218      END IF 
    192219 
     220      IF(.NOT. wrk_release(3, 1))THEN 
     221         CALL ctl_stop('trc_sms_cfc : failed to release workspace array.') 
     222      END IF 
     223 
    193224   END SUBROUTINE trc_sms_cfc 
    194225 
Note: See TracChangeset for help on using the changeset viewer.