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

Changeset 2777


Ignore:
Timestamp:
2011-06-07T11:55:02+02:00 (13 years ago)
Author:
smasson
Message:

LIM3 compiling and (partly?) running in v3_3_1, see ticket#817

Location:
trunk/NEMOGCM/NEMO
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/dom_ice.F90

    r2715 r2777  
    3636CONTAINS 
    3737 
    38    FUNCTION dom_ice_alloc 
     38   FUNCTION dom_ice_alloc() 
    3939      !!------------------------------------------------------------------- 
    4040      !!            *** Routine dom_ice_alloc *** 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r2715 r2777  
    162162   INTEGER , PUBLIC ::   nitrun    !: number of iteration 
    163163   INTEGER , PUBLIC ::   numit     !: iteration number 
    164    REAL(wp), PUBLIC ::   tpstot    !: time of the run in seconds 
    165164   REAL(wp), PUBLIC ::   rdt_ice   !: ice time step 
    166165 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90

    r2715 r2777  
    7777      !!--------------------------------------------------------------------- 
    7878      ! 
     79      pout(:,:) = 0._wp 
    7980      DO jl = 1, ksum 
    80          pout(:,:) = pin(:,:,1,jl) 
    8181         DO jk = 2, klay  
    8282            pout(:,:) = pout(:,:) + pin(:,:,jk,jl) 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90

    r2715 r2777  
    7373      !-------------------------------------------------------------------- 
    7474 
    75       IF(  wrk_in_use(1, 1,2)  ) THEN 
     75      IF(  wrk_in_use(2, 1) .OR.  wrk_in_use(1, 1,2,3,4)  ) THEN 
    7676         CALL ctl_stop( 'lim_istate: requested workspace arrays unavailable' )   ;   RETURN 
    7777      ENDIF 
     
    517517      CALL lbc_lnk( fsbbq  , 'T', 1. ) 
    518518      ! 
    519       IF( wrk_not_released(1, 1,2) )   CALL ctl_stop('lim_istate : failed to release workspace arrays') 
     519      IF( wrk_not_released(2, 1) .OR. wrk_not_released(1, 1,2,3,4) )   & 
     520         &   CALL ctl_stop('lim_istate : failed to release workspace arrays') 
    520521      ! 
    521522   END SUBROUTINE lim_istate 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r2715 r2777  
    508508      !! ** Inputs / Ouputs : kstrngth (what kind of ice strength we are using) 
    509509      !!---------------------------------------------------------------------- 
    510       USE wrk_nemo, ONLY: zworka => wrk_2d_1    ! 2D workspace 
     510      USE wrk_nemo, ONLY: zworka => wrk_2d_3    ! 2D workspace 
    511511      ! 
    512512      INTEGER, INTENT(in) ::   kstrngth    ! = 1 for Rothrock formulation, 0 for Hibler (1979) 
     
    519519      !!---------------------------------------------------------------------- 
    520520 
    521       IF( wrk_in_use(2, 1) ) THEN 
     521      IF( wrk_in_use(2, 3) ) THEN 
    522522         CALL ctl_stop('lim_itd_me_icestrength : requested workspace array unavailable')   ;   RETURN 
    523523      ENDIF 
     
    675675      CALL lbc_lnk( strength, 'T', 1. )      ! Boundary conditions 
    676676 
    677       IF( wrk_not_released(2, 1) )   CALL ctl_stop('lim_itd_me_icestrength: failed to release workspace array') 
     677      IF( wrk_not_released(2, 3) )   CALL ctl_stop('lim_itd_me_icestrength: failed to release workspace array') 
    678678      ! 
    679679   END SUBROUTINE lim_itd_me_icestrength 
     
    894894 
    895895      ! Normalization factor : aksum, ensures mass conservation 
    896       aksum(:,:) = athorn(ji,jj,0) 
     896      aksum(:,:) = athorn(:,:,0) 
    897897      DO jl = 1, jpl  
    898898         aksum(:,:)    = aksum(:,:) + aridge(:,:,jl) * ( 1._wp - 1._wp / krdg(:,:,jl) )    & 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r2715 r2777  
    699699      END DO !ji 
    700700      ! 
    701       IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) )   & 
     701      IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22) )   & 
    702702          CALL ctl_stop('lim_thd_dh : failed to release workspace arrays') 
    703703      ! 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r2715 r2777  
    330330         IF( thcon_i_swi == 0 ) THEN      ! Untersteiner (1964) formula 
    331331            DO ji = kideb , kiut 
    332                ztcond_i(ji,0)        = rcdic + zbeta*s_i_b(ji,1) / & 
    333                   MIN(-zeps,t_i_b(ji,1)-rtt) 
     332               ztcond_i(ji,0)        = rcdic + zbeta*s_i_b(ji,1) / MIN(-zeps,t_i_b(ji,1)-rtt) 
    334333               ztcond_i(ji,0)        = MAX(ztcond_i(ji,0),zkimin) 
    335334            END DO 
    336335            DO layer = 1, nlay_i-1 
    337336               DO ji = kideb , kiut 
    338                   ztcond_i(ji,layer) = rcdic + zbeta*( s_i_b(ji,layer) & 
    339                      + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps,     & 
    340                      t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) 
    341                   ztcond_i(ji,layer)   = MAX(ztcond_i(ji,layer),zkimin) 
    342                END DO 
    343             END DO 
    344          ENDIF 
    345  
    346          IF ( thcon_i_swi .EQ. 1 ) THEN ! Pringle (0.011/2=0.0055) 
    347             DO layer = 1, nlay_i-1 
    348                DO ji = kideb , kiut 
    349                   ztcond_i(ji,layer) = rcdic + 0.09*( s_i_b(ji,layer)   & 
    350                      + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps,      & 
    351                      t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) - & 
    352                      0.0055* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt )   
     337                  ztcond_i(ji,layer) = rcdic + zbeta*( s_i_b(ji,layer) + s_i_b(ji,layer+1) ) /  & 
     338                     MIN(-2.0_wp * zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1) - 2.0_wp * rtt) 
    353339                  ztcond_i(ji,layer) = MAX(ztcond_i(ji,layer),zkimin) 
    354340               END DO 
    355             END DO 
    356          ENDIF 
    357  
    358          IF ( thcon_i_swi .EQ. 0 ) THEN ! Untersteiner 
    359             DO ji = kideb , kiut 
    360                ztcond_i(ji,nlay_i)   = rcdic + zbeta*s_i_b(ji,nlay_i) / & 
    361                   MIN(-zeps,t_bo_b(ji)-rtt) 
    362                ztcond_i(ji,nlay_i)   = MAX(ztcond_i(ji,nlay_i),zkimin) 
    363341            END DO 
    364342         ENDIF 
     
    373351               DO ji = kideb , kiut 
    374352                  ztcond_i(ji,layer) = rcdic + 0.090_wp * ( s_i_b(ji,layer) + s_i_b(ji,layer+1) )   & 
    375                      &                                  / MIN(-2.0*zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt)   & 
     353                     &                                  / MIN(-2.0_wp * zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1) - 2.0_wp * rtt)   & 
    376354                     &                       - 0.0055_wp* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt )   
    377355                  ztcond_i(ji,layer) = MAX( ztcond_i(ji,layer), zkimin ) 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90

    r2715 r2777  
    122122 
    123123      IF( wrk_in_use(1, 1,2,3,4,5,6,7,8) ) THEN 
    124          CALL ctl_stop('lim_thd_dh : requestead workspace arrays unavailable')   ;   RETURN 
     124         CALL ctl_stop('lim_thd_ent : requestead workspace arrays unavailable')   ;   RETURN 
    125125      END IF 
    126126 
     
    477477      ! Cotes of old ice layers 
    478478      !------------------------- 
    479       zm0(:,0) =  0.-wp 
     479      zm0(:,0) =  0._wp 
    480480 
    481481      DO jk = 1, maxnbot0 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r2715 r2777  
    2828   USE wrk_nemo         ! workspace manager 
    2929   USE in_out_manager   ! I/O manager 
    30    USE lib_mpp         ! MPP library 
     30   USE lib_mpp          ! MPP library 
    3131 
    3232   IMPLICIT NONE 
     
    111111      !!-----------------------------------------------------------------------! 
    112112 
    113       IF(  wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR.   & 
     113      IF(  wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) .OR.   & 
    114114         & wrk_in_use(2, 1,2,3,4,5,6,7,8)                        ) THEN 
    115          CALL ctl_stop('lim_thd_dh : requestead workspace arrays unavailable.')   ;   RETURN 
     115         CALL ctl_stop('lim_thd_lac : requestead workspace arrays unavailable.')   ;   RETURN 
    116116      END IF 
    117117      ! Set-up pointers to sub-arrays of workspace arrays 
     
    130130      zqbgow    =>  wrk_1d_13(1:jpij)   ! heat budget of the open water (negative) 
    131131      zdhex     =>  wrk_1d_14(1:jpij)   ! excessively thick accreted sea ice (hlead-hice) 
     132      zswinew   =>  wrk_1d_15(1:jpij)   ! switch for new ice or not 
    132133 
    133134 
     
    690691      ENDIF 
    691692      ! 
    692       IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR.     & 
     693      IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) .OR.     & 
    693694          wrk_not_released(2, 1,2,3,4,5,6,7,8)                       )   & 
    694695          CALL ctl_stop( 'lim_thd_lac : failed to release workspace arrays' ) 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90

    r2715 r2777  
    2121   USE thd_ice          ! LIM thermodynamics 
    2222   USE limvar           ! LIM variables 
    23    USE wrk_nemo         ! workspace manager 
    2423   USE in_out_manager   ! I/O manager 
    2524   USE lib_mpp         ! MPP library 
     
    5049      !!               -> num_sal = 4 -> S = S(h)   [Cox and Weeks 74] 
    5150      !!--------------------------------------------------------------------- 
     51      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     52      USE wrk_nemo, ONLY:   wrk_1d_1, wrk_1d_2, wrk_1d_3 
     53      ! 
    5254      INTEGER, INTENT(in) ::  kideb, kiut   ! thickness category index 
    5355      ! 
     
    6163 
    6264      IF(  wrk_in_use(1, 1,2,3)  ) THEN 
    63          CALL ctl_stop('lim_thd_dh : requestead workspace arrays unavailable.')   ;   RETURN 
     65         CALL ctl_stop('lim_thd_sal : requestead workspace arrays unavailable.')   ;   RETURN 
    6466      END IF 
    6567      ! Set-up pointers to sub-arrays of workspace arrays 
     
    238240      ENDIF 
    239241      ! 
    240       IF( wrk_not_released(1, 1,2,3) )   CALL ctl_stop( 'lim_thd_lac : failed to release workspace arrays' ) 
     242      IF( wrk_not_released(1, 1,2,3) )   CALL ctl_stop( 'lim_thd_sal : failed to release workspace arrays' ) 
    241243      ! 
    242244   END SUBROUTINE lim_thd_sal 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r2715 r2777  
    3232   PUBLIC   lim_trp    ! called by ice_step 
    3333 
    34    REAL(wp), PUBLIC ::   bound  = 0._wp   !: boundary condit. (0.0 no-slip, 1.0 free-slip) 
    35  
    3634   REAL(wp)  ::   epsi06 = 1.e-06_wp   ! constant values 
    3735   REAL(wp)  ::   epsi03 = 1.e-03_wp   
     
    4038   REAL(wp)  ::   rzero  = 0._wp    
    4139   REAL(wp)  ::   rone   = 1._wp 
     40 
     41   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:,:) ::   zs0e 
    4242 
    4343   !! * Substitution 
     
    6363      !!--------------------------------------------------------------------- 
    6464      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    65       USE wrk_nemo, ONLY:   zs0at => wrk_2d_1 , zsm => wrk_2d_2 , zs0ow  => wrk_2d_3      ! 2D workspace 
    66       USE wrk_nemo, ONLY:   wrk_3d_1, wrk_3d_2, wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6    ! 3D workspace 
    67       USE wrk_nemo, ONLY:   wrk_4d_1                                                      ! 4D workspace 
     65      USE wrk_nemo, ONLY:   zs0at => wrk_2d_4 , zsm => wrk_2d_5 , zs0ow  => wrk_2d_6      ! 2D workspace 
     66      USE wrk_nemo, ONLY:   wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6, wrk_3d_7, wrk_3d_8    ! 3D workspace 
    6867      ! 
    6968      INTEGER, INTENT(in) ::   kt   ! number of iteration 
     
    7170      INTEGER  ::   ji, jj, jk, jl, layer   ! dummy loop indices 
    7271      INTEGER  ::   initad                  ! number of sub-timestep for the advection 
     72      INTEGER  ::   ierr                    ! error status 
    7373      REAL(wp) ::   zindb  , zindsn , zindic      ! local scalar 
    7474      REAL(wp) ::   zusvosn, zusvoic, zbigval     !   -      - 
     
    7777      ! 
    7878      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zs0ice, zs0sn, zs0a, zs0c0 , zs0sm , zs0oi   ! 3D pointer 
    79       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zs0e                                         ! 4D pointer 
    8079      !!--------------------------------------------------------------------- 
    8180 
    82       IF( wrk_in_use(2, 1,2,3,4,5) ) THEN 
     81      IF( wrk_in_use(2, 4,5,6) .OR. wrk_in_use(3, 3,4,5,6,7,8) ) THEN 
    8382         CALL ctl_stop( 'lim_trp : requested workspace arrays unavailable' )   ;   RETURN 
    8483      END IF 
    8584 
    86       zs0ice => wrk_3d_1(:,:,1:jpl)   ;   zs0a  => wrk_3d_3   ;   zs0sm => wrk_3d_3 
    87       zs0sn  => wrk_3d_2(:,:,1:jpl)   ;   zs0c0 => wrk_3d_3   ;   zs0oi => wrk_3d_3 
    88       zs0e   => wrk_4d_1(:,:,1:jkmax,1:jpl) 
    89  
     85      zs0ice => wrk_3d_3(:,:,1:jpl)   ;   zs0a  => wrk_3d_5(:,:,1:jpl)   ;   zs0sm => wrk_3d_7(:,:,1:jpl) 
     86      zs0sn  => wrk_3d_4(:,:,1:jpl)   ;   zs0c0 => wrk_3d_6(:,:,1:jpl)   ;   zs0oi => wrk_3d_8(:,:,1:jpl) 
     87      IF( kt == nit000 ) THEN  
     88         ALLOCATE( zs0e(jpi,jpj,jkmax,jpl), Stat = ierr ) 
     89         IF( lk_mpp    )   CALL mpp_sum ( ierr ) 
     90         IF( ierr /= 0 )   CALL ctl_stop( 'lim_trp : failed to allocate zs0e array' ) 
     91      END IF 
    9092 
    9193      IF( numit == nstart .AND. lwp ) THEN 
     
    463465      ENDIF 
    464466      ! 
    465       IF( wrk_not_released(2, 1,2,3,4,5) )   CALL ctl_stop('lim_trp_2 : failed to release workspace arrays') 
     467      IF( wrk_not_released(2, 4,5,6) .OR. wrk_not_released(3, 3,4,5,6,7,8) )   & 
     468         &   CALL ctl_stop('lim_trp : failed to release workspace arrays') 
    466469      ! 
    467470   END SUBROUTINE lim_trp 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r2715 r2777  
    5050   USE dom_ice          ! LIM domain 
    5151   USE thd_ice          ! LIM thermodynamics 
    52    USE wrk_nemo         ! workspace manager 
    5352   USE in_out_manager   ! I/O manager 
    5453   USE lib_mpp         ! MPP library 
     
    298297      !! ** References : Vancoppenolle et al., 2007 (in preparation) 
    299298      !!------------------------------------------------------------------ 
     299      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     300      USE wrk_nemo, ONLY:   wrk_3d_3, wrk_3d_4  
    300301      INTEGER  ::   ji, jj, jk, jl   ! dummy loop index 
    301302      REAL(wp) ::   dummy_fac0, dummy_fac1, dummy_fac, zsal      ! local scalar 
     
    305306      !!------------------------------------------------------------------ 
    306307 
    307       IF( wrk_in_use( 2, 1,2 ) ) THEN 
     308      IF( wrk_in_use( 3, 3,4 ) ) THEN 
    308309         CALL ctl_stop( 'lim_var_salprof: requested workspace arrays unavailable' )   ;   RETURN 
    309310      END IF 
    310311 
    311       z_slope_s => wrk_3d_1(:,:,1:jpl)   ! slope of the salinity profile 
    312       zalpha    => wrk_3d_2(:,:,1:jpl)   ! weight factor for s between s_i_0 and s_i_1 
     312      z_slope_s => wrk_3d_3(:,:,1:jpl)   ! slope of the salinity profile 
     313      zalpha    => wrk_3d_4(:,:,1:jpl)   ! weight factor for s between s_i_0 and s_i_1 
    313314 
    314315      !--------------------------------------- 
     
    389390      ENDIF ! num_sal 
    390391      ! 
    391       IF( wrk_not_released(2, 1,2) )   CALL ctl_stop('lim_var_salprof: failed to release workspace arrays.') 
     392      IF( wrk_not_released(3, 3,4) )   CALL ctl_stop('lim_var_salprof: failed to release workspace arrays.') 
    392393      ! 
    393394   END SUBROUTINE lim_var_salprof 
     
    432433      !!                Works with 1d vectors and is used by thermodynamic modules 
    433434      !!------------------------------------------------------------------- 
     435      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     436      USE wrk_nemo, ONLY:   wrk_1d_4 
    434437      INTEGER, INTENT(in) ::   kideb, kiut   ! thickness category index 
    435438      ! 
     
    442445      !!--------------------------------------------------------------------- 
    443446 
    444       IF(  wrk_in_use(1, 1)  ) THEN 
     447      IF(  wrk_in_use(1, 4)  ) THEN 
    445448         CALL ctl_stop('lim_var_salprof1d : requestead workspace arrays unavailable.')   ;   RETURN 
    446449      END IF 
    447450      ! Set-up pointers to sub-arrays of workspace arrays 
    448       z_slope_s  =>  wrk_1d_1 (1:jpij) 
     451      z_slope_s  =>  wrk_1d_4 (1:jpij) 
    449452 
    450453      !--------------------------------------- 
     
    511514      ENDIF 
    512515      ! 
    513       IF( wrk_not_released(1, 1) )   CALL ctl_stop( 'lim_var_salprof1d : failed to release workspace arrays' ) 
     516      IF( wrk_not_released(1, 4) )   CALL ctl_stop( 'lim_var_salprof1d : failed to release workspace arrays' ) 
    514517      ! 
    515518   END SUBROUTINE lim_var_salprof1d 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r2715 r2777  
    4949   REAL(wp)  ::   zzero  = 0._wp 
    5050   REAL(wp)  ::   zone   = 1._wp 
     51 
     52   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   zcmo, zcmoa   ! additional fields 
    5153       
    5254   !!---------------------------------------------------------------------- 
     
    7375      USE wrk_nemo, ONLY:   wrk_not_released, wrk_in_use 
    7476      USE wrk_nemo, ONLY:   zfield => wrk_2d_1             ! 2D workspace 
    75       USE wrk_nemo, ONLY:   wrk_3d_1, wrk_3D_2, wrk_3d_3   ! 3D workspace 
     77      USE wrk_nemo, ONLY:   wrk_3d_3, wrk_3d_4, wrk_3d_5   ! 3D workspace 
    7678      ! 
    7779      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere 
     
    8183      REAL(wp),DIMENSION(1) ::   zdept 
    8284      REAL(wp) ::  zsto, zjulian, zout, zindh, zinda, zindb 
    83       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zcmo, zcmoa   ! additional fields 
    8485      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zmaskitd, zoi, zei 
    8586 
     
    9293      !!------------------------------------------------------------------- 
    9394 
     95      IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 3,4,5) ) THEN 
     96         CALL ctl_stop( 'lim_wri : requested workspace arrays unavailable' )   ;   RETURN 
     97      ENDIF 
     98 
    9499      ipl = jpl 
    95100 
    96       zcmo     => wrk_3d_1(:,:,1:jpnoumax) 
    97       zcmoa    => wrk_3d_2(:,:,1:jpnoumax) 
    98       zmaskitd => wrk_3d_2(:,:,1:jpl) 
    99       zoi      => wrk_3d_2(:,:,1:jpl) 
    100       zei      => wrk_3d_2(:,:,1:jpl) 
     101      zmaskitd => wrk_3d_3(:,:,1:jpl) 
     102      zoi      => wrk_3d_4(:,:,1:jpl) 
     103      zei      => wrk_3d_5(:,:,1:jpl) 
    101104 
    102105 
    103106      IF( numit == nstart ) THEN  
    104107 
    105          ALLOCATE( ndex51(jpij) , ndexitd(jpij*jpl) , STAT=ierr ) 
     108         ALLOCATE( ndex51(jpij), ndexitd(jpij*jpl), zcmo(jpi,jpj,jpnoumax), zcmoa(jpi,jpj,jpnoumax), STAT=ierr ) 
     109         IF( lk_mpp    )   CALL mpp_sum ( ierr ) 
    106110         IF( ierr /= 0 ) THEN 
    107111            CALL ctl_stop( 'lim_wri : unable to allocate standard arrays' )   ;   RETURN 
     
    350354      ENDIF 
    351355 
     356      IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 3,4,5) )   & 
     357         CALL ctl_stop( 'lim_wri: failed to release workspace arrays' ) 
     358       
    352359   END SUBROUTINE lim_wri 
    353360#endif 
  • trunk/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r2715 r2777  
    459459 
    460460      IF(wrk_in_use(3, 1) ) THEN 
    461          CALL ctl_stop('istage_uvg: requested workspace array unavailable')   ;   RETURN 
     461         CALL ctl_stop('istate_uvg: requested workspace array unavailable')   ;   RETURN 
    462462      ENDIF 
    463463 
     
    558558      ! 
    559559      IF( wrk_not_released(3, 1) ) THEN 
    560          CALL ctl_stop('istage_uvg: failed to release workspace array') 
     560         CALL ctl_stop('istate_uvg: failed to release workspace array') 
    561561      ENDIF 
    562562      ! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r2715 r2777  
    6363 
    6464      IF( wrk_in_use(3,1) ) THEN 
    65          CALL ctl_stop('dyn_key: requested workspace array is unavailable')   ;   RETURN 
     65         CALL ctl_stop('dyn_keg: requested workspace array is unavailable')   ;   RETURN 
    6666      ENDIF 
    6767 
     
    136136         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    137137      ! 
    138       IF( wrk_not_released(3, 1) )   CALL ctl_stop('dyn_key: failed to release workspace array') 
     138      IF( wrk_not_released(3, 1) )   CALL ctl_stop('dyn_keg: failed to release workspace array') 
    139139      ! 
    140140   END SUBROUTINE dyn_keg 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r2715 r2777  
    822822      ! 
    823823      IF(  wrk_in_use(2, 1)  .OR.  iwrk_in_use(2,1) ) THEN 
    824          CALL ctl_stop('fld_weights: requested workspace arrays are unavailable')   ;   RETURN 
     824         CALL ctl_stop('fld_weight: requested workspace arrays are unavailable')   ;   RETURN 
    825825      ENDIF 
    826826      ! 
    827827      IF( nxt_wgt > tot_wgts ) THEN 
    828         CALL ctl_stop("fld_weights: weights array size exceeded, increase tot_wgts") 
     828        CALL ctl_stop("fld_weight: weights array size exceeded, increase tot_wgts") 
    829829      ENDIF 
    830830      ! 
     
    936936 
    937937      IF(  wrk_not_released(2, 1) .OR.    & 
    938           iwrk_not_released(2, 1)  )   CALL ctl_stop('fld_weights: failed to release workspace arrays') 
     938          iwrk_not_released(2, 1)  )   CALL ctl_stop('fld_weight: failed to release workspace arrays') 
    939939      ! 
    940940   END SUBROUTINE fld_weight 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r2715 r2777  
    5757 
    5858# if defined key_lim3 
    59    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tatm_ice    !: air temperature 
     59   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   tatm_ice  !: air temperature 
    6060# endif 
    6161 
     
    7777         &      utau_ice(jpi,jpj)     , vtau_ice(jpi,jpj)     ,     & 
    7878         &      fr1_i0  (jpi,jpj)     , fr2_i0  (jpi,jpj)     ,     & 
     79# if defined key_lim3 
     80         &      emp_ice(jpi,jpj)      , tatm_ice(jpi,jpj)     , STAT= sbc_ice_alloc ) 
     81# else 
    7982         &      emp_ice(jpi,jpj)                              , STAT= sbc_ice_alloc ) 
     83# endif 
    8084         ! 
    8185      IF( lk_mpp            )   CALL mpp_sum ( sbc_ice_alloc ) 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r2715 r2777  
    177177      CALL fld_read( kt, nn_fsbc, sf )                ! input fields provided at the current time-step 
    178178      ! 
    179 #if defined key_lim3       
    180       tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1)     !RB ugly patch 
    181 #endif 
    182       !                                                        ! surface ocean fluxes computed with CLIO bulk formulea 
    183179      IF( MOD( kt - 1, nn_fsbc ) == 0 )   CALL blk_oce_clio( sf, sst_m ) 
    184180      ! 
     
    467463      zpatm = 101000.                        ! atmospheric pressure  (assumed constant  here) 
    468464 
     465#if defined key_lim3       
     466      tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1)   ! LIM3: make Tair available in sea-ice. WARNING allocated after call to ice_init 
     467#endif 
     468      !                                                        ! surface ocean fluxes computed with CLIO bulk formulea 
    469469      !------------------------------------! 
    470470      !   momentum fluxes  (utau, vtau )   ! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r2748 r2777  
    180180      CALL fld_read( kt, nn_fsbc, sf )        ! input fields provided at the current time-step 
    181181 
    182 #if defined key_lim3 
    183       tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1)                  ! LIM3: make Tair available in sea-ice 
    184 #endif 
    185182      !                                                        ! surface ocean fluxes computed with CLIO bulk formulea 
    186183      IF( MOD( kt - 1, nn_fsbc ) == 0 )   CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m ) 
     
    472469!!gm end 
    473470 
     471#if defined key_lim3 
     472      tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1)   ! LIM3: make Tair available in sea-ice. WARNING allocated after call to ice_init 
     473#endif 
    474474      ! ----------------------------------------------------------------------------- ! 
    475475      !    Wind components and module relative to the moving ocean ( U10m - U_ice )   ! 
     
    882882         &                    30,31,32,33,34                )   .OR.  &   
    883883         iwrk_not_released(2, 1)                                  )   & 
    884          CALL ctl_stop('TURB_CORE_1Z: failed to release workspace arrays') 
     884         CALL ctl_stop('TURB_CORE_2Z: failed to release workspace arrays') 
    885885      ! 
    886886    END SUBROUTINE TURB_CORE_2Z 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r2715 r2777  
    9090      !!--------------------------------------------------------------------- 
    9191      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    92       USE wrk_nemo, ONLY:   zalb_ice_os => wrk_3d_1 ! albedo of the ice under overcast sky 
    93       USE wrk_nemo, ONLY:   zalb_ice_cs => wrk_3d_2 ! albedo of ice under clear sky 
     92      USE wrk_nemo, ONLY:   wrk_3d_1, wrk_3d_2   ! for albedo of ice under overcast/clear sky 
    9493      !! 
    9594      INTEGER, INTENT(in) ::   kt      ! ocean time step 
     
    9897      INTEGER  ::   jl      ! dummy loop index 
    9998      REAL(wp) ::   zcoef   ! local scalar 
     99      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalb_ice_os, zalb_ice_cs  ! albedo of the ice under overcast/clear sky 
    100100      !!---------------------------------------------------------------------- 
    101101 
     
    103103         CALL ctl_stop( 'sbc_ice_lim: requested workspace arrays are unavailable' )   ;   RETURN 
    104104      ENDIF 
     105      zalb_ice_os => wrk_3d_1(:,:,1:jpl)   ;    zalb_ice_cs => wrk_3d_2(:,:,1:jpl) 
    105106 
    106107      IF( kt == nit000 ) THEN 
Note: See TracChangeset for help on using the changeset viewer.