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 2590 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DTA – NEMO

Ignore:
Timestamp:
2011-02-18T13:49:27+01:00 (13 years ago)
Author:
trackstand2
Message:

Merge branch 'dynamic_memory' into master-svn-dyn

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

Legend:

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

    r2528 r2590  
    2525   PRIVATE 
    2626 
    27    PUBLIC   dta_sal   ! called by step.F90 and inidta.F90 
    28     
    29    LOGICAL , PUBLIC, PARAMETER ::   lk_dtasal = .TRUE.    !: salinity data flag 
    30    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   s_dta    !: salinity data at given time-step 
     27   PUBLIC   dta_sal        ! called by step.F90 and inidta.F90 
     28   PUBLIC   dta_sal_alloc  ! Called by nemogcm.F90 
     29 
     30   LOGICAL , PUBLIC, PARAMETER              :: lk_dtasal = .TRUE. !: salinity data flag 
     31   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: s_dta !: salinity data at given time-step 
    3132 
    3233   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_sal       ! structure of input SST (file informations, fields read) 
     
    4041   !!---------------------------------------------------------------------- 
    4142CONTAINS 
     43 
     44   FUNCTION dta_sal_alloc() 
     45     IMPLICIT none 
     46     INTEGER :: dta_sal_alloc 
     47     INTEGER :: ierr 
     48 
     49     ALLOCATE(s_dta(jpi,jpj,jpk),  & 
     50              sf_sal(1),           & 
     51              Stat=ierr) 
     52     IF(ierr <= 0)THEN 
     53        ALLOCATE( sf_sal(1)%fnow(jpi,jpj,jpk)   ) 
     54     END IF 
     55 
     56     dta_sal_alloc = ierr 
     57 
     58   END FUNCTION dta_sal_alloc 
    4259 
    4360   SUBROUTINE dta_sal( kt ) 
     
    88105            WRITE(numout,*) '~~~~~~~ ' 
    89106         ENDIF 
    90          ALLOCATE( sf_sal(1), STAT=ierror ) 
    91          IF( ierror > 0 ) THEN 
    92              CALL ctl_stop( 'dta_sal: unable to allocate sf_sal structure' )   ;   RETURN 
    93          ENDIF 
    94                                 ALLOCATE( sf_sal(1)%fnow(jpi,jpj,jpk)   ) 
     107! ARPDBG moved first two allocate's into dta_sal_alloc() 
     108!!$         ALLOCATE( sf_sal(1), STAT=ierror ) 
     109!!$         IF( ierror > 0 ) THEN 
     110!!$             CALL ctl_stop( 'dta_sal: unable to allocate sf_sal structure' )   ;   RETURN 
     111!!$         ENDIF 
     112!!$                                ALLOCATE( sf_sal(1)%fnow(jpi,jpj,jpk)   ) 
    95113         IF( sn_sal%ln_tint )   ALLOCATE( sf_sal(1)%fdta(jpi,jpj,jpk,2) ) 
    96114         !                         ! fill sf_sal with sn_sal and control print 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DTA/dtatem.F90

    r2528 r2590  
    2525   PRIVATE 
    2626 
    27    PUBLIC   dta_tem    ! called by step.F90 and inidta.F90 
     27   PUBLIC   dta_tem        ! called by step.F90 and inidta.F90 
     28   PUBLIC   dta_tem_alloc  ! called by nemo_init in nemogcm.F90 
    2829 
    2930   LOGICAL , PUBLIC, PARAMETER ::   lk_dtatem = .TRUE.   !: temperature data flag 
    30    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::  t_dta    !: temperature data at given time-step 
     31   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: t_dta !: temperature data at given time-step 
    3132 
    3233   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tem      ! structure of input SST (file informations, fields read) 
     
    4041   !!---------------------------------------------------------------------- 
    4142CONTAINS 
     43 
     44   FUNCTION dta_tem_alloc() 
     45     IMPLICIT none 
     46     INTEGER :: dta_tem_alloc 
     47     INTEGER :: ierror 
     48     ALLOCATE(t_dta(jpi,jpj,jpk), & 
     49              sf_tem(1),          & 
     50              STAT=ierror ) 
     51     IF( ierror <= 0 ) THEN 
     52        ALLOCATE( sf_tem(1)%fnow(jpi,jpj,jpk), STAT=ierror   ) 
     53     END IF 
     54 
     55     dta_tem_alloc = ierror 
     56 
     57   END FUNCTION dta_tem_alloc 
     58 
    4259 
    4360   SUBROUTINE dta_tem( kt ) 
     
    95112            WRITE(numout,*) '~~~~~~~ ' 
    96113         ENDIF 
    97          ALLOCATE( sf_tem(1), STAT=ierror ) 
    98          IF( ierror > 0 ) THEN 
    99              CALL ctl_stop( 'dta_tem: unable to allocate sf_tem structure' )   ;   RETURN 
    100          ENDIF 
    101                                 ALLOCATE( sf_tem(1)%fnow(jpi,jpj,jpk)   ) 
     114! ARPDBG - moved into dta_tem_alloc() 
     115!!$         ALLOCATE( sf_tem(1), STAT=ierror ) 
     116!!$         IF( ierror > 0 ) THEN 
     117!!$             CALL ctl_stop( 'dta_tem: unable to allocate sf_tem structure' )   ;   RETURN 
     118!!$         ENDIF 
     119!!$                                ALLOCATE( sf_tem(1)%fnow(jpi,jpj,jpk)   ) 
    102120         IF( sn_tem%ln_tint )   ALLOCATE( sf_tem(1)%fdta(jpi,jpj,jpk,2) ) 
    103121         !                         ! fill sf_tem with sn_tem and control print 
Note: See TracChangeset for help on using the changeset viewer.