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 2636 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

Ignore:
Timestamp:
2011-03-01T20:04:06+01:00 (13 years ago)
Author:
gm
Message:

dynamic mem: #785 ; move ctl_stop & warn in lib_mpp to avoid a circular dependency + ctl_stop improvment

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/dom_ice_2.F90

    r2590 r2636  
    1515   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    1616   !!---------------------------------------------------------------------- 
    17    USE par_ice_2 
     17   USE par_ice_2   ! LIM parameters 
    1818 
    1919   IMPLICIT NONE 
    2020   PRIVATE 
    2121 
    22    ! Routine accessibility 
    2322   PUBLIC    dom_ice_alloc_2    ! Called from nemogcm.F90 
    2423 
     
    4241   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)         ::   tmi               !: ice mask: =1 if ice thick > 0 
    4342# endif 
     43   !!---------------------------------------------------------------------- 
     44   CONTAINS 
     45 
     46   INTEGER FUNCTION dom_ice_alloc_2() 
     47      !!---------------------------------------------------------------------- 
     48      USE lib_mpp, ONLY:   ctl_warn   ! MPP library 
     49      INTEGER :: ierr(2) 
     50      !!---------------------------------------------------------------------- 
     51      ierr(:) = 0 
     52      ! 
     53      ALLOCATE( fs2cor(jpi,jpj),  fcor(jpi,jpj),                             & 
     54         &      covrai(jpi,jpj),  area(jpi,jpj), tms(jpi,jpj), tmu(jpi,jpj), & 
     55         &      wght(jpi,jpj,2,2),  Stat=ierr(1) ) 
     56         ! 
     57      ALLOCATE(                                                              & 
     58#if defined key_lim2_vp  
     59         &        akappa(jpi,jpj,2,2), bkappa(jpi,jpj,2,2),                  & 
     60         &        alambd(jpi,jpj,2,2,2,2),                                   & 
     61#else 
     62         &        tmv(jpi,jpj), tmf(jpi,jpj), tmi(jpi,jpj),                  & 
     63#endif 
     64         &        Stat=ierr(2) ) 
     65         ! 
     66      dom_ice_alloc_2 = MAXVAL(ierr) 
     67      IF( dom_ice_alloc_2 /= 0 )   CALL ctl_warn('dom_ice_alloc_2: failed to allocate arrays') 
     68      ! 
     69   END FUNCTION dom_ice_alloc_2 
    4470 
    4571#else 
     
    4975#endif 
    5076   !!====================================================================== 
    51 #if defined key_lim2 
    52    CONTAINS 
    53  
    54      FUNCTION dom_ice_alloc_2() 
    55         USE in_out_manager, ONLY: ctl_warn 
    56         IMPLICIT none 
    57         INTEGER :: dom_ice_alloc_2 
    58         INTEGER :: ierr(2) 
    59  
    60         ierr(:) = 0 
    61  
    62         ALLOCATE(fs2cor(jpi,jpj),  fcor(jpi,jpj),                             & 
    63                  covrai(jpi,jpj),  area(jpi,jpj), tms(jpi,jpj), tmu(jpi,jpj), & 
    64                  wght(jpi,jpj,2,2),  Stat=ierr(1) ) 
    65  
    66         ALLOCATE(                                                             & 
    67 #if defined key_lim2_vp  
    68                  akappa(jpi,jpj,2,2), bkappa(jpi,jpj,2,2),                    & 
    69                  alambd(jpi,jpj,2,2,2,2),                                     & 
    70 #else 
    71                  tmv(jpi,jpj), tmf(jpi,jpj), tmi(jpi,jpj),                    & 
    72 #endif 
    73                  Stat=ierr(2)) 
    74  
    75         dom_ice_alloc_2 = MAXVAL(ierr) 
    76  
    77         IF(dom_ice_alloc_2 /= 0)THEN 
    78            CALL ctl_warn('dom_ice_alloc_2: failed to allocate arrays.') 
    79         END IF 
    80  
    81      END FUNCTION dom_ice_alloc_2 
    82 #endif 
    83  
    8477END MODULE dom_ice_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90

    r2613 r2636  
    1212   !!   'key_lim2' :                                  LIM 2.0 sea-ice model 
    1313   !!---------------------------------------------------------------------- 
    14    USE par_ice_2          ! LIM sea-ice parameters 
     14   USE par_ice_2      ! LIM sea-ice parameters 
    1515 
    1616   IMPLICIT NONE 
     
    127127   CONTAINS 
    128128 
    129    FUNCTION ice_alloc_2() 
     129   INTEGER FUNCTION ice_alloc_2() 
    130130      !!----------------------------------------------------------------- 
    131131      !!               *** FUNCTION ice_alloc_2 *** 
    132132      !!----------------------------------------------------------------- 
    133       USE in_out_manager, ONLY: ctl_warn 
    134       INTEGER :: ice_alloc_2     ! return value 
    135       INTEGER :: ierr(9)        ! Local variables 
     133      USE lib_mpp, ONLY:   ctl_warn   ! MPP library 
     134      INTEGER :: ierr(9)              ! Local variables 
    136135      !!----------------------------------------------------------------- 
    137  
    138136      ierr(:) = 0 
    139  
     137      ! 
    140138      ALLOCATE( ahiu(jpi,jpj) , pahu(jpi,jpj) ,                      & 
    141139         &      ahiv(jpi,jpj) , pahv(jpi,jpj) , ust2s(jpi,jpj) , STAT=ierr(1) ) 
    142  
     140         ! 
    143141      !* Ice Rheology 
    144142#if defined key_lim2_vp 
     
    149147                stress12_i(jpi,jpj) , shear_i(jpi,jpj) , hicm(jpi,jpj) , STAT=ierr(2) ) 
    150148#endif 
    151  
    152149      ALLOCATE( rdvosif(jpi,jpj) , rdvobif(jpi,jpj) ,                      & 
    153150         &      fdvolif(jpi,jpj) , rdvonif(jpi,jpj) ,                      & 
     
    181178      ALLOCATE(sxst  (jpi,jpj) , syst  (jpi,jpj) , sxxst (jpi,jpj) ,     & 
    182179         &     syyst (jpi,jpj) , sxyst (jpi,jpj)                   , STAT=ierr(9)) 
    183  
     180         ! 
    184181      ice_alloc_2 = MAXVAL( ierr ) 
    185  
     182      ! 
    186183      IF( ice_alloc_2 /= 0 )   CALL ctl_warn('ice_alloc_2: failed to allocate arrays.') 
    187184      ! 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90

    r2626 r2636  
    3030   USE limsbc_2         ! LIM2 surface boundary condition 
    3131   USE in_out_manager   ! I/O manager 
    32        
     32   USE lib_mpp          ! MPP library 
     33 
    3334   IMPLICIT NONE 
    3435   PRIVATE 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90

    r2633 r2636  
    2222   USE lbclnk 
    2323   USE in_out_manager     ! I/O manager 
     24   USE lib_mpp            ! MPP library 
    2425   USE prtctl             ! Print control 
    2526 
     
    7980      IF( wrk_in_use(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 
    8081         CALL ctl_stop( 'lim_adv_x_2 : requested workspace arrays unavailable.' )   ;   RETURN 
    81       END IF 
     82      ENDIF 
    8283 
    8384      ! Limitation of moments.                                            
     
    224225      ENDIF 
    225226      ! 
    226       IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 
    227          CALL ctl_stop( 'lim_adv_x_2 : failed to release workspace arrays.' ) 
    228       END IF 
     227      IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) )   & 
     228          CALL ctl_stop( 'lim_adv_x_2 : failed to release workspace arrays.' ) 
    229229      ! 
    230230   END SUBROUTINE lim_adv_x_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limdia_2.F90

    r2613 r2636  
    1212   !!   'key_lim2' :                                  LIM 2.0 sea-ice model 
    1313   !!---------------------------------------------------------------------- 
    14    !!---------------------------------------------------------------------- 
    1514   !!   lim_dia_2      : computation of the time evolution of keys var. 
    1615   !!   lim_dia_init_2 : initialization and namelist read 
     
    2423   USE limistate_2     ! 
    2524   USE in_out_manager  ! I/O manager 
     25   USE lib_mpp         ! MPP library 
    2626 
    2727   IMPLICIT NONE 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limdmp_2.F90

    r2528 r2636  
    1313   !!   lim_dmp_2      : ice model damping 
    1414   !!---------------------------------------------------------------------- 
    15    USE in_out_manager  ! I/O manager 
    1615   USE ice_2           ! ice variables  
    1716   USE sbc_oce, ONLY : nn_fsbc ! for fldread 
    1817   USE dom_oce         ! for mi0; mi1 etc ... 
    1918   USE fldread         ! read input fields 
    20     
     19   USE in_out_manager  ! I/O manager 
     20   USE lib_mpp         ! MPP library 
     21 
    2122   IMPLICIT NONE 
    2223   PRIVATE 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90

    r2633 r2636  
    7272 
    7373      IF(  wrk_in_use(1, 1,2)  .OR.  wrk_in_use(2, 1,2)  ) THEN 
    74          CALL ctl_stop( 'lim_dyn_2 : requested workspace arrays unavailable.' )   ;   RETURN 
    75       END IF 
     74         CALL ctl_stop( 'lim_dyn_2 : requested workspace arrays unavailable' )   ;   RETURN 
     75      ENDIF 
    7676      zind => wrk_1d_1(1:jpj)      ! Set-up pointers to sub-arrays of workspaces 
    7777      zmsk => wrk_1d_2(1:jpj) 
     
    210210      IF(ln_ctl)   CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn  : ust2s :') 
    211211      ! 
    212       IF( wrk_not_released(1, 1,2) .OR. wrk_not_released(2, 1,2) )THEN 
    213          CALL ctl_stop('lim_dyn_2 : failed to release workspace arrays.') 
    214       END IF 
     212      IF( wrk_not_released(1, 1,2)     .OR.   & 
     213          wrk_not_released(2, 1,2) )   CALL ctl_stop('lim_dyn_2 : failed to release workspace arrays') 
    215214      ! 
    216215   END SUBROUTINE lim_dyn_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90

    r2633 r2636  
    149149      ENDIF 
    150150      ! 
    151       IF( wrk_not_released(2, 11,12,13,14,15,16) ) THEN 
    152          CALL ctl_stop( 'lim_hdf_2 : failed to release workspace arrays.' )   ;   RETURN 
    153       END IF 
     151      IF( wrk_not_released(2, 11,12,13,14,15,16) )   CALL ctl_stop('lim_hdf_2: failed to release workspace arrays') 
    154152      ! 
    155153   END SUBROUTINE lim_hdf_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limmsh_2.F90

    r2633 r2636  
    1919   USE lbclnk 
    2020   USE in_out_manager 
     21   USE lib_mpp          ! MPP library 
    2122 
    2223   IMPLICIT NONE 
     
    5657      !!--------------------------------------------------------------------- 
    5758 
    58       IF(wrk_in_use(2, 1,2))THEN 
    59          CALL ctl_stop('lim_msh_2 : requested workspace arrays unavailable.') 
    60          RETURN 
    61       END IF 
     59      IF( wrk_in_use(2, 1,2) ) THEN 
     60         CALL ctl_stop('lim_msh_2 : requested workspace arrays unavailable')   ;   RETURN 
     61      ENDIF 
    6262 
    6363      IF(lwp) THEN 
     
    281281      area(:,:) = e1t(:,:) * e2t(:,:) 
    282282      ! 
    283       IF(wrk_not_released(2, 1,2))THEN 
    284          CALL ctl_stop('lim_msh_2 : failed to release workspace arrays.') 
    285       END IF 
     283      IF( wrk_not_released(2, 1,2) )   CALL ctl_stop('lim_msh_2 : failed to release workspace arrays') 
    286284      ! 
    287285   END SUBROUTINE lim_msh_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90

    r2633 r2636  
    5757CONTAINS 
    5858 
    59    FUNCTION lim_rhg_alloc_2() 
     59   INTEGER FUNCTION lim_rhg_alloc_2() 
    6060      !!------------------------------------------------------------------- 
    6161      !!               ***  FUNCTION lim_rhg_alloc_2  *** 
    6262      !!------------------------------------------------------------------- 
    63       INTEGER :: lim_rhg_alloc_2 
    64       !!------------------------------------------------------------------- 
    65  
    66       ALLOCATE(zu0(jpi,0:jpj+1),      zv0(jpi,0:jpj+1),     & 
    67                zu_n(jpi,0:jpj+1),     zv_n(jpi,0:jpj+1),    & 
    68                zu_a(jpi,0:jpj+1),     zv_a(jpi,0:jpj+1),    & 
    69                zviszeta(jpi,0:jpj+1), zviseta(jpi,0:jpj+1), & 
    70                zzfrld(jpi,0:jpj+1),   zztms(jpi,0:jpj+1),   & 
    71                zi1(jpi,0:jpj+1),      zi2(jpi,0:jpj+1),     & 
    72                zmasst(jpi,0:jpj+1),   zpresh(jpi,0:jpj+1),  & 
    73                Stat=lim_rhg_alloc_2) 
    74  
    75       IF(lim_rhg_alloc_2 /= 0)THEN 
    76          CALL ctl_warn('lim_rhg_alloc_2 : failed to allocate arrays.') 
    77       END IF 
    78  
     63      ALLOCATE( zu0(jpi,0:jpj+1),      zv0(jpi,0:jpj+1),     & 
     64         &      zu_n(jpi,0:jpj+1),     zv_n(jpi,0:jpj+1),    & 
     65         &      zu_a(jpi,0:jpj+1),     zv_a(jpi,0:jpj+1),    & 
     66         &      zviszeta(jpi,0:jpj+1), zviseta(jpi,0:jpj+1), & 
     67         &      zzfrld(jpi,0:jpj+1),   zztms(jpi,0:jpj+1),   & 
     68         &      zi1(jpi,0:jpj+1),      zi2(jpi,0:jpj+1),     & 
     69         &      zmasst(jpi,0:jpj+1),   zpresh(jpi,0:jpj+1),  & 
     70         &      Stat=lim_rhg_alloc_2) 
     71         ! 
     72      IF( lim_rhg_alloc_2 /= 0 )   CALL ctl_warn('lim_rhg_alloc_2 : failed to allocate arrays') 
     73      ! 
    7974   END FUNCTION lim_rhg_alloc_2 
    8075 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r2633 r2636  
    3030   USE albedo           ! albedo parameters 
    3131   USE lbclnk           ! ocean lateral boundary condition - MPP exchanges 
     32   USE lib_mpp          ! MPP library 
    3233   USE in_out_manager   ! I/O manager 
    3334   USE diaar5, ONLY :   lk_diaar5 
     
    6263CONTAINS 
    6364 
    64    FUNCTION lim_sbc_alloc_2() 
     65   INTEGER FUNCTION lim_sbc_alloc_2() 
    6566      !!------------------------------------------------------------------- 
    6667      !!             ***  ROUTINE lim_sbc_alloc_2 *** 
    6768      !!------------------------------------------------------------------- 
    68       INTEGER :: lim_sbc_alloc_2 
    69       !!------------------------------------------------------------------- 
    70       ! 
    7169      ALLOCATE( soce_0(jpi,jpj) , utau_oce(jpi,jpj) ,                       & 
    7270         &      sice_0(jpi,jpj) , vtau_oce(jpi,jpj) , tmod_io(jpi,jpj), STAT=lim_sbc_alloc_2) 
     
    117115      
    118116      IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 4,5) )THEN 
    119          CALL ctl_stop('lim_sbc_flx_2 : requested workspace arrays unavailable.') 
    120          RETURN 
    121       END IF 
     117         CALL ctl_stop('lim_sbc_flx_2 : requested workspace arrays unavailable')   ;   RETURN 
     118      ENDIF 
    122119      zalb  => wrk_3d_4(:,:,1:1)      ! Set-up pointers to sub-arrays of 3d workspaces 
    123120      zalbp => wrk_3d_5(:,:,1:1) 
     
    253250      ENDIF  
    254251      ! 
    255       IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 4,5) )THEN 
    256          CALL ctl_stop('lim_sbc_flx_2 : failed to release workspace arrays.') 
    257       END IF 
     252      IF( wrk_not_released(2, 1)     .OR.    & 
     253          wrk_not_released(3, 4,5) )   CALL ctl_stop('lim_sbc_flx_2 : failed to release workspace arrays') 
    258254      ! 
    259255   END SUBROUTINE lim_sbc_flx_2 
     
    297293      !!--------------------------------------------------------------------- 
    298294      ! 
    299       IF(wrk_in_use(2, 1,2))THEN 
     295      IF( wrk_in_use(2, 1,2) ) THEN 
    300296         CALL ctl_stop('lim_sbc_tau_2 : requested workspace arrays unavailable.')   ;   RETURN 
    301       END IF 
     297      ENDIF 
    302298      ! 
    303299      SELECT CASE( cp_ice_msh )      
     
    413409         &                       tab2d_2=vtau, clinfo2=' vtau    : '        , mask2=vmask ) 
    414410      !   
    415       IF(wrk_not_released(2, 1,2) )   CALL ctl_stop('lim_sbc_tau_2 : failed to release workspace arrays.') 
     411      IF( wrk_not_released(2, 1,2) )   CALL ctl_stop('lim_sbc_tau_2 : failed to release workspace arrays') 
    416412      ! 
    417413   END SUBROUTINE lim_sbc_tau_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90

    r2633 r2636  
    116116      !!------------------------------------------------------------------- 
    117117 
    118       IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10) .OR.  & 
    119           wrk_in_use(3, 4)   ) THEN 
    120          CALL ctl_stop('lim_thd_2 : requested workspace arrays unavailable') 
    121          RETURN 
    122       END IF 
     118      IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10)   .OR.  & 
     119          wrk_in_use(3, 4)                    ) THEN 
     120         CALL ctl_stop('lim_thd_2 : requested workspace arrays unavailable')   ;   RETURN 
     121      ENDIF 
    123122 
    124123      IF( kt == nit000 )   CALL lim_thd_init_2  ! Initialization (first time-step only) 
     
    521520      ENDIF 
    522521       ! 
    523       IF( wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10) .OR.  & 
    524           wrk_not_released(3, 4)   ) THEN 
     522      IF( wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10)   .OR.  & 
     523          wrk_not_released(3, 4)                    ) THEN 
    525524         CALL ctl_stop('lim_thd_2 : failed to release workspace arrays') 
    526       END IF 
     525      ENDIF 
    527526      ! 
    528527    END SUBROUTINE lim_thd_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limthd_lac_2.F90

    r2633 r2636  
    77 
    88   !!---------------------------------------------------------------------- 
    9    !!   lim_lat_acr_2    : lateral accretion of ice 
    10    !! * Modules used 
     9   !!   lim_lat_acr_2   : lateral accretion of ice 
     10   !!---------------------------------------------------------------------- 
    1111   USE par_oce          ! ocean parameters 
    1212   USE phycst 
     
    1414   USE ice_2 
    1515   USE limistate_2  
    16       
     16   USE lib_mpp          ! MPP library 
     17 
    1718   IMPLICIT NONE 
    1819   PRIVATE 
    1920 
    20    !! * Routine accessibility 
    21    PUBLIC lim_thd_lac_2   ! called by lim_thd_2 
    22  
    23    !! * Module variables 
     21   PUBLIC   lim_thd_lac_2   ! called by lim_thd_2 
     22 
    2423   REAL(wp)  ::           &  ! constant values 
    2524      epsi20 = 1.e-20  ,  & 
     
    2726      zzero  = 0.e0    ,  & 
    2827      zone   = 1.e0 
     28 
    2929   !!---------------------------------------------------------------------- 
    3030   !! NEMO/LIM2 3.3 , UCL - NEMO Consortium (2010) 
     
    7070      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    7171      USE wrk_nemo, ONLY: wrk_1d_1, wrk_1d_2, wrk_1d_3, wrk_1d_4, wrk_1d_5, wrk_1d_6 
    72       USE in_out_manager, ONLY: ctl_stop 
    73       !! 
    74       !! * Arguments 
     72      ! 
    7573      INTEGER , INTENT(IN)::  & 
    7674         kideb          ,   &  ! start point on which the the computation is applied 
    7775         kiut                  ! end point on which the the computation is applied 
    7876 
    79       !! * Local variables 
     77      ! * Local variables 
    8078      INTEGER ::            & 
    8179         ji             ,   &  !  dummy loop indices 
     
    106104      !!---------------------------------------------------------------------       
    107105                
    108       IF(wrk_in_use(1, 1,2,3,4,5,6))THEN 
    109          CALL ctl_stop('lim_thd_lac_2 : requestead workspace arrays unavailable.') 
    110          RETURN 
    111       END IF 
     106      IF( wrk_in_use(1, 1,2,3,4,5,6) ) THEN 
     107         CALL ctl_stop('lim_thd_lac_2 : requestead workspace arrays unavailable')   ;   RETURN 
     108      ENDIF 
    112109      ! Set-up pointers to sub-arrays of workspace arrays 
    113110      zqbgow    => wrk_1d_1(1:jpij) 
     
    235232      END DO 
    236233       
    237       IF(wrk_not_released(1, 1,2,3,4,5,6))THEN 
    238          CALL ctl_stop('lim_thd_lac_2 : failed to release workspace arrays.') 
    239       END IF 
    240  
     234      IF( wrk_not_released(1, 1,2,3,4,5,6) )   CALL ctl_stop('lim_thd_lac_2 : failed to release workspace arrays.') 
     235      ! 
    241236   END SUBROUTINE lim_thd_lac_2 
    242237#else 
    243    !!====================================================================== 
     238   !!---------------------------------------------------------------------- 
    244239   !!                       ***  MODULE limthd_lac_2   *** 
    245240   !!                           no sea ice model 
    246    !!====================================================================== 
     241   !!---------------------------------------------------------------------- 
    247242CONTAINS 
    248243   SUBROUTINE lim_thd_lac_2           ! Empty routine 
    249244   END SUBROUTINE lim_thd_lac_2 
    250245#endif 
     246   !!====================================================================== 
    251247END MODULE limthd_lac_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90

    r2633 r2636  
    1111   !!   'key_lim2'                                    LIM 2.0 sea-ice model 
    1212   !!---------------------------------------------------------------------- 
    13    !!---------------------------------------------------------------------- 
    1413   !!   lim_thd_zdf_2 : vertical accr./abl. and lateral ablation of sea ice 
    1514   !!---------------------------------------------------------------------- 
    16    !! * Modules used 
    1715   USE par_oce          ! ocean parameters 
    1816   USE phycst           ! ??? 
     
    2119   USE limistate_2 
    2220   USE in_out_manager 
     21   USE lib_mpp          ! MPP library 
    2322   USE cpl_oasis3, ONLY : lk_cpl 
    2423       
     
    3534   !! NEMO/LIM2 3.3 , UCL - NEMO Consortium (2010) 
    3635   !! $Id$ 
    37    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     36   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    3837   !!---------------------------------------------------------------------- 
    39  
    4038CONTAINS 
    4139 
     
    170168 
    171169       IF(wrk_in_use(1, 1,  2, 3, 4, 5, 6, 7, 8, 9,10, & 
    172                         11,12,13,14,15,16,17,18,19,20, & 
    173                         21,22,23,24,25,26,27))THEN 
    174           CALL ctl_stop('lim_thd_zdf_2 : requested workspace arrays unavailable.') 
    175           RETURN 
    176        END IF 
     170          &             11,12,13,14,15,16,17,18,19,20, & 
     171          &             21,22,23,24,25,26,27) ) THEN 
     172          CALL ctl_stop('lim_thd_zdf_2 : requested workspace arrays unavailable')   ;   RETURN 
     173       ENDIF 
    177174 
    178175       ztsmlt  => wrk_1d_1(1:jpij) 
     
    808805       END DO 
    809806       !  
    810        IF(wrk_not_released(1, 1,  2, 3, 4, 5, 6, 7, 8, 9,10, & 
    811                               11,12,13,14,15,16,17,18,19,20, & 
    812                               21,22,23,24,25,26,27))THEN 
    813           CALL ctl_stop('lim_thd_zdf_2 : failed to release workspace arrays.') 
    814        END IF 
     807       IF( wrk_not_released(1, 1,  2, 3, 4, 5, 6, 7, 8, 9,10,   & 
     808           &                   11,12,13,14,15,16,17,18,19,20,   & 
     809           &                   21,22,23,24,25,26,27)        )   & 
     810           CALL ctl_stop('lim_thd_zdf_2 : failed to release workspace arrays.') 
    815811       ! 
    816812    END SUBROUTINE lim_thd_zdf_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limtrp_2.F90

    r2633 r2636  
    7979      !--------------------------------------------------------------------- 
    8080 
    81       IF(wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10))THEN 
    82          CALL ctl_stop('lim_trp_2 : requested workspace arrays unavailable.') 
    83          RETURN 
    84       END IF 
     81      IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10) ) THEN 
     82         CALL ctl_stop('lim_trp_2 : requested workspace arrays unavailable')   ;   RETURN 
     83      ENDIF 
    8584 
    8685      IF( kt == nit000  )   CALL lim_trp_init_2      ! Initialization (first time-step only) 
     
    274273      ENDIF 
    275274      ! 
    276       IF(wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10))THEN 
    277          CALL ctl_stop('lim_trp_2 : failed to release workspace arrays.') 
    278       END IF 
     275      IF( wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10) )   CALL ctl_stop('lim_trp_2 : failed to release workspace arrays') 
    279276      ! 
    280277   END SUBROUTINE lim_trp_2 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90

    r2633 r2636  
    2626   USE ice_2 
    2727 
     28   USE dianam          ! build name of file (routine) 
    2829   USE lbclnk 
    29    USE dianam          ! build name of file (routine) 
    3030   USE in_out_manager 
     31   USE lib_mpp         ! MPP library 
    3132   USE iom 
    3233   USE ioipsl 
     
    6970CONTAINS 
    7071 
    71    FUNCTION lim_wri_alloc_2() 
     72   INTEGER FUNCTION lim_wri_alloc_2() 
    7273      !!------------------------------------------------------------------- 
    7374      !!                  ***   ROUTINE lim_wri_alloc_2  *** 
    7475      !!------------------------------------------------------------------- 
    75       IMPLICIT none 
    76       INTEGER :: lim_wri_alloc_2 
    77       !!------------------------------------------------------------------- 
    78       ! 
    7976      ALLOCATE( ndex51(jpij), zcmo(jpi,jpj,jpnoumax), STAT=lim_wri_alloc_2) 
    8077      ! 
     
    115112      !!------------------------------------------------------------------- 
    116113 
    117       IF(wrk_in_use(2, 1))THEN 
    118          CALL ctl_stop('lim_wri_2 : requested workspace array unavailable.') 
    119          RETURN 
    120       END IF 
     114      IF( wrk_in_use(2, 1) ) THEN 
     115         CALL ctl_stop('lim_wri_2 : requested workspace array unavailable')   ;   RETURN 
     116      ENDIF 
    121117                                                 !--------------------! 
    122118      IF( kt == nit000 ) THEN                    !   Initialisation   ! 
     
    211207      IF( ( nn_fsbc * niter ) >= nitend )   CALL histclo( nice )  
    212208 
    213       IF(wrk_not_released(2, 1))THEN 
    214          CALL ctl_stop('lim_wri_2 : failed to release workspace array.') 
    215       END IF 
    216  
     209      IF( wrk_not_released(2, 1) )   CALL ctl_stop('lim_wri_2 : failed to release workspace array.') 
     210      ! 
    217211   END SUBROUTINE lim_wri_2 
    218212      
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90

    r2590 r2636  
    1212   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    1313   !!---------------------------------------------------------------------- 
    14    !! * Modules used 
    1514   USE par_ice_2 
    1615 
     
    8584      tbif_1d              !: corresponding to the 2D var  tbif 
    8685 
    87    !!====================================================================== 
     86   !!---------------------------------------------------------------------- 
     87   !! NEMO/LIM2 3.3 , UCL - NEMO Consortium (2010) 
     88   !! $Id$ 
     89   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     90   !!---------------------------------------------------------------------- 
    8891 CONTAINS 
    8992 
    90    FUNCTION thd_ice_alloc_2() 
    91       USE in_out_manager, ONLY: ctl_warn 
    92       IMPLICIT none 
    93       INTEGER :: thd_ice_alloc_2 
    94       ! Local vars 
     93   INTEGER FUNCTION thd_ice_alloc_2() 
     94      !!---------------------------------------------------------------------- 
     95      USE lib_mpp        ! MPP library 
    9596      INTEGER :: ierr(4) 
    96  
     97      !!---------------------------------------------------------------------- 
     98      ! 
    9799      ierr(:) = 0 
    98  
    99       ALLOCATE(npb(jpij), npac(jpij),                             & 
    100                qldif_1d(jpij), qcmif_1d(jpij), thcm_1d(jpij),     & 
    101                fstbif_1d(jpij), fltbif_1d(jpij), fscbq_1d(jpij),  & 
    102                qsr_ice_1d(jpij),fr1_i0_1d(jpij), fr2_i0_1d(jpij), Stat=ierr(1)) 
    103  
    104       ALLOCATE(qns_ice_1d(jpij), qfvbq_1d(jpij), sist_1d(jpij), tfu_1d(jpij), & 
    105                sprecip_1d(jpij), h_snow_1d(jpij),h_ice_1d(jpij),frld_1d(jpij),& 
    106                qstbif_1d(jpij),  fbif_1d(jpij),  Stat=ierr(2)) 
    107  
    108       ALLOCATE(rdmicif_1d(jpij), rdmsnif_1d(jpij), qlbbq_1d(jpij),   & 
    109                dmgwi_1d(jpij)  , dvsbq_1d(jpij)  , rdvomif_1d(jpij), & 
    110                dvbbq_1d(jpij)  , dvlbq_1d(jpij)  , dvnbq_1d(jpij)  , & 
    111                Stat=ierr(3)) 
    112  
    113       ALLOCATE(dqns_ice_1d(jpij) ,qla_ice_1d(jpij), dqla_ice_1d(jpij), & 
    114                tbif_1d(jpij, jplayersp1), Stat=ierr(4)) 
    115  
     100      ! 
     101      ALLOCATE( npb(jpij), npac(jpij),                             & 
     102         &      qldif_1d(jpij), qcmif_1d(jpij), thcm_1d(jpij),     & 
     103         &      fstbif_1d(jpij), fltbif_1d(jpij), fscbq_1d(jpij),  & 
     104         &      qsr_ice_1d(jpij),fr1_i0_1d(jpij), fr2_i0_1d(jpij), Stat=ierr(1)) 
     105         ! 
     106      ALLOCATE( qns_ice_1d(jpij), qfvbq_1d(jpij), sist_1d(jpij), tfu_1d(jpij), & 
     107         &      sprecip_1d(jpij), h_snow_1d(jpij),h_ice_1d(jpij),frld_1d(jpij),& 
     108         &      qstbif_1d(jpij),  fbif_1d(jpij),  Stat=ierr(2)) 
     109         ! 
     110      ALLOCATE( rdmicif_1d(jpij), rdmsnif_1d(jpij), qlbbq_1d(jpij),   & 
     111         &      dmgwi_1d(jpij)  , dvsbq_1d(jpij)  , rdvomif_1d(jpij), & 
     112         &      dvbbq_1d(jpij)  , dvlbq_1d(jpij)  , dvnbq_1d(jpij)  , & 
     113         &      Stat=ierr(3)) 
     114         ! 
     115      ALLOCATE( dqns_ice_1d(jpij) ,qla_ice_1d(jpij), dqla_ice_1d(jpij), & 
     116         &      tbif_1d(jpij, jplayersp1), Stat=ierr(4)) 
     117         ! 
    116118      thd_ice_alloc_2 = MAXVAL(ierr) 
    117  
    118       IF(thd_ice_alloc_2 /= 0)THEN 
    119          CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays.') 
    120       END IF 
    121  
     119      IF( thd_ice_alloc_2 /= 0 )   CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays') 
     120      ! 
    122121   END FUNCTION thd_ice_alloc_2 
    123122 
    124123#endif 
     124   !!====================================================================== 
    125125END MODULE thd_ice_2 
Note: See TracChangeset for help on using the changeset viewer.