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 8373 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90 – NEMO

Ignore:
Timestamp:
2017-07-25T19:44:54+02:00 (7 years ago)
Author:
clem
Message:

remove most of wrk_alloc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r8369 r8373  
    9595      INTEGER ::   iconv_max = 50 ! max number of iterations in iterative procedure 
    9696       
    97       INTEGER, POINTER, DIMENSION(:) ::   numeqmin   ! reference number of top equation 
    98       INTEGER, POINTER, DIMENSION(:) ::   numeqmax   ! reference number of bottom equation 
     97      INTEGER, DIMENSION(jpij) ::   numeqmin   ! reference number of top equation 
     98      INTEGER, DIMENSION(jpij) ::   numeqmax   ! reference number of bottom equation 
    9999       
    100100      REAL(wp) ::   zg1s      =  2._wp        ! for the tridiagonal system 
     
    110110      REAL(wp) ::   zdti_bnd = 1.e-4_wp       ! maximal authorized error on temperature  
    111111       
    112       REAL(wp), POINTER, DIMENSION(:)     ::   isnow       ! switch for presence (1) or absence (0) of snow 
    113       REAL(wp), POINTER, DIMENSION(:)     ::   ztsub       ! old surface temperature (before the iterative procedure ) 
    114       REAL(wp), POINTER, DIMENSION(:)     ::   ztsubit     ! surface temperature at previous iteration 
    115       REAL(wp), POINTER, DIMENSION(:)     ::   zh_i        ! ice layer thickness 
    116       REAL(wp), POINTER, DIMENSION(:)     ::   zh_s        ! snow layer thickness 
    117       REAL(wp), POINTER, DIMENSION(:)     ::   zfsw        ! solar radiation absorbed at the surface 
    118       REAL(wp), POINTER, DIMENSION(:)     ::   zqns_ice_b  ! solar radiation absorbed at the surface 
    119       REAL(wp), POINTER, DIMENSION(:)     ::   zf          ! surface flux function 
    120       REAL(wp), POINTER, DIMENSION(:)     ::   dzf         ! derivative of the surface flux function 
    121       REAL(wp), POINTER, DIMENSION(:)     ::   zdti        ! current error on temperature 
    122       REAL(wp), POINTER, DIMENSION(:)     ::   zdifcase    ! case of the equation resolution (1->4) 
    123       REAL(wp), POINTER, DIMENSION(:)     ::   zftrice     ! solar radiation transmitted through the ice 
    124       REAL(wp), POINTER, DIMENSION(:)     ::   zihic 
     112      REAL(wp), DIMENSION(jpij)     ::   isnow       ! switch for presence (1) or absence (0) of snow 
     113      REAL(wp), DIMENSION(jpij)     ::   ztsub       ! old surface temperature (before the iterative procedure ) 
     114      REAL(wp), DIMENSION(jpij)     ::   ztsubit     ! surface temperature at previous iteration 
     115      REAL(wp), DIMENSION(jpij)     ::   zh_i        ! ice layer thickness 
     116      REAL(wp), DIMENSION(jpij)     ::   zh_s        ! snow layer thickness 
     117      REAL(wp), DIMENSION(jpij)     ::   zfsw        ! solar radiation absorbed at the surface 
     118      REAL(wp), DIMENSION(jpij)     ::   zqns_ice_b  ! solar radiation absorbed at the surface 
     119      REAL(wp), DIMENSION(jpij)     ::   zf          ! surface flux function 
     120      REAL(wp), DIMENSION(jpij)     ::   dzf         ! derivative of the surface flux function 
     121      REAL(wp), DIMENSION(jpij)     ::   zdti        ! current error on temperature 
     122      REAL(wp), DIMENSION(jpij)     ::   zdifcase    ! case of the equation resolution (1->4) 
     123      REAL(wp), DIMENSION(jpij)     ::   zftrice     ! solar radiation transmitted through the ice 
     124      REAL(wp), DIMENSION(jpij)     ::   zihic 
    125125       
    126       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztcond_i    ! Ice thermal conductivity 
    127       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradtr_i    ! Radiation transmitted through the ice 
    128       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradab_i    ! Radiation absorbed in the ice 
    129       REAL(wp), POINTER, DIMENSION(:,:)   ::   zkappa_i    ! Kappa factor in the ice 
    130       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztib        ! Old temperature in the ice 
    131       REAL(wp), POINTER, DIMENSION(:,:)   ::   zeta_i      ! Eta factor in the ice 
    132       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztitemp     ! Temporary temperature in the ice to check the convergence 
    133       REAL(wp), POINTER, DIMENSION(:,:)   ::   zspeche_i   ! Ice specific heat 
    134       REAL(wp), POINTER, DIMENSION(:,:)   ::   z_i         ! Vertical cotes of the layers in the ice 
    135       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradtr_s    ! Radiation transmited through the snow 
    136       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradab_s    ! Radiation absorbed in the snow 
    137       REAL(wp), POINTER, DIMENSION(:,:)   ::   zkappa_s    ! Kappa factor in the snow 
    138       REAL(wp), POINTER, DIMENSION(:,:)   ::   zeta_s      ! Eta factor in the snow 
    139       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztstemp     ! Temporary temperature in the snow to check the convergence 
    140       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztsb        ! Temporary temperature in the snow 
    141       REAL(wp), POINTER, DIMENSION(:,:)   ::   z_s         ! Vertical cotes of the layers in the snow 
    142       REAL(wp), POINTER, DIMENSION(:,:)   ::   zindterm    ! 'Ind'ependent term 
    143       REAL(wp), POINTER, DIMENSION(:,:)   ::   zindtbis    ! Temporary 'ind'ependent term 
    144       REAL(wp), POINTER, DIMENSION(:,:)   ::   zdiagbis    ! Temporary 'dia'gonal term 
    145       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrid       ! Tridiagonal system terms 
    146        
    147       ! diag errors on heat 
    148       REAL(wp), POINTER, DIMENSION(:)     :: zdq, zq_ini, zhfx_err 
     126      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   ztcond_i    ! Ice thermal conductivity 
     127      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   zradtr_i    ! Radiation transmitted through the ice 
     128      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   zradab_i    ! Radiation absorbed in the ice 
     129      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   zkappa_i    ! Kappa factor in the ice 
     130      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   ztib        ! Old temperature in the ice 
     131      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   zeta_i      ! Eta factor in the ice 
     132      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   ztitemp     ! Temporary temperature in the ice to check the convergence 
     133      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   zspeche_i   ! Ice specific heat 
     134      REAL(wp), DIMENSION(jpij,0:nlay_i)   ::   z_i         ! Vertical cotes of the layers in the ice 
     135      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   zradtr_s    ! Radiation transmited through the snow 
     136      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   zradab_s    ! Radiation absorbed in the snow 
     137      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   zkappa_s    ! Kappa factor in the snow 
     138      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   zeta_s      ! Eta factor in the snow 
     139      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   ztstemp     ! Temporary temperature in the snow to check the convergence 
     140      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   ztsb        ! Temporary temperature in the snow 
     141      REAL(wp), DIMENSION(jpij,0:nlay_s)   ::   z_s         ! Vertical cotes of the layers in the snow 
     142      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zindterm    ! 'Ind'ependent term 
     143      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zindtbis    ! Temporary 'ind'ependent term 
     144      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zdiagbis    ! Temporary 'dia'gonal term 
     145      REAL(wp), DIMENSION(jpij,nlay_i+3,3) ::   ztrid       ! Tridiagonal system terms 
     146      REAL(wp), DIMENSION(jpij)            ::   zdq, zq_ini, zhfx_err ! diag errors on heat 
     147      REAL(wp), DIMENSION(jpij)            ::   zghe        ! G(he), th. conduct enhancement factor, mono-cat 
    149148       
    150149      ! Mono-category 
    151       REAL(wp)                            :: zepsilon      ! determines thres. above which computation of G(h) is done 
    152       REAL(wp)                            :: zratio_s      ! dummy factor 
    153       REAL(wp)                            :: zratio_i      ! dummy factor 
    154       REAL(wp)                            :: zh_thres      ! thickness thres. for G(h) computation 
    155       REAL(wp)                            :: zhe           ! dummy factor 
    156       REAL(wp)                            :: zkimean       ! mean sea ice thermal conductivity 
    157       REAL(wp)                            :: zfac          ! dummy factor 
    158       REAL(wp)                            :: zihe          ! dummy factor 
    159       REAL(wp)                            :: zheshth       ! dummy factor 
    160        
    161       REAL(wp), POINTER, DIMENSION(:)     :: zghe          ! G(he), th. conduct enhancement factor, mono-cat 
    162        
     150      REAL(wp) :: zepsilon      ! determines thres. above which computation of G(h) is done 
     151      REAL(wp) :: zratio_s      ! dummy factor 
     152      REAL(wp) :: zratio_i      ! dummy factor 
     153      REAL(wp) :: zh_thres      ! thickness thres. for G(h) computation 
     154      REAL(wp) :: zhe           ! dummy factor 
     155      REAL(wp) :: zkimean       ! mean sea ice thermal conductivity 
     156      REAL(wp) :: zfac          ! dummy factor 
     157      REAL(wp) :: zihe          ! dummy factor 
     158      REAL(wp) :: zheshth       ! dummy factor 
    163159      !!------------------------------------------------------------------      
    164       !  
    165       CALL wrk_alloc( jpij, numeqmin, numeqmax ) 
    166       CALL wrk_alloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    167       CALL wrk_alloc( jpij, zf, dzf, zqns_ice_b, zdti, zdifcase, zftrice, zihic, zghe ) 
    168       CALL wrk_alloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart=0 ) 
    169       CALL wrk_alloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart=0 ) 
    170       CALL wrk_alloc( jpij,nlay_i+3, zindterm, zindtbis, zdiagbis  ) 
    171       CALL wrk_alloc( jpij,nlay_i+3,3, ztrid ) 
    172  
    173       CALL wrk_alloc( jpij, zdq, zq_ini, zhfx_err ) 
    174160 
    175161      ! --- diag error on heat diffusion - PART 1 --- ! 
     
    808794      END DO    
    809795      ! 
    810       CALL wrk_dealloc( jpij, numeqmin, numeqmax ) 
    811       CALL wrk_dealloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    812       CALL wrk_dealloc( jpij, zf, dzf, zqns_ice_b, zdti, zdifcase, zftrice, zihic, zghe ) 
    813       CALL wrk_dealloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart = 0 ) 
    814       CALL wrk_dealloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart = 0 ) 
    815       CALL wrk_dealloc( jpij,nlay_i+3, zindterm, zindtbis, zdiagbis ) 
    816       CALL wrk_dealloc( jpij,nlay_i+3,3, ztrid ) 
    817       CALL wrk_dealloc( jpij, zdq, zq_ini, zhfx_err ) 
    818  
    819796   END SUBROUTINE lim_thd_dif 
    820797 
Note: See TracChangeset for help on using the changeset viewer.