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 11993 for NEMO/trunk/src/OCE/SBC – NEMO

Ignore:
Timestamp:
2019-11-28T11:20:53+01:00 (5 years ago)
Author:
cetlod
Message:

trunk : undo bad commit. Oups

Location:
NEMO/trunk/src/OCE/SBC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/SBC/sbcblk.F90

    r11989 r11993  
    801801      REAL(wp), DIMENSION(jpi,jpj)     ::   zevap, zsnw   ! evaporation and snw distribution after wind blowing (SI3) 
    802802      REAL(wp), DIMENSION(jpi,jpj)     ::   zrhoa 
    803       REAL(wp), DIMENSION(jpi,jpj)     ::   ztmp, ztmp2 
    804803      !!--------------------------------------------------------------------- 
    805804      ! 
     
    914913         qtr_ice_top(:,:,:) = 0._wp  
    915914      END WHERE 
    916       ! 
    917  
    918       IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') ) THEN 
    919          ztmp(:,:) = zevap(:,:) * ( 1._wp - at_i_b(:,:) )  
    920          IF( iom_use('evap_ao_cea'  ) )  CALL iom_put( 'evap_ao_cea'  , ztmp(:,:) * tmask(:,:,1) )   ! ice-free oce evap (cell average) 
    921          IF( iom_use('hflx_evap_cea') )  CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * sst_m(:,:) * rcp * tmask(:,:,1) )   ! heat flux from evap (cell average) 
    922       ENDIF 
    923       IF( iom_use('hflx_rain_cea') ) THEN 
    924          ztmp(:,:) = rcp * ( SUM( (ptsu-rt0) * a_i_b, dim=3 ) + sst_m(:,:) * ( 1._wp - at_i_b(:,:) ) ) 
    925          IF( iom_use('hflx_rain_cea') )  CALL iom_put( 'hflx_rain_cea', ( tprecip(:,:) - sprecip(:,:) ) * ztmp(:,:) )   ! heat flux from rain (cell average) 
    926       ENDIF 
    927       IF( iom_use('hflx_snow_cea') .OR. iom_use('hflx_snow_ao_cea') .OR. iom_use('hflx_snow_ai_cea')  )  THEN 
    928           WHERE( SUM( a_i_b, dim=3 ) > 1.e-10 ) ;   ztmp(:,:) = rcpi * SUM( (ptsu-rt0) * a_i_b, dim=3 ) / SUM( a_i_b, dim=3 ) 
    929           ELSEWHERE                             ;   ztmp(:,:) = rcp * sst_m(:,:)     
    930           ENDWHERE 
    931           ztmp2(:,:) = sprecip(:,:) * ( ztmp(:,:) - rLfus )  
    932           IF( iom_use('hflx_snow_cea')    ) CALL iom_put('hflx_snow_cea'   , ztmp2(:,:) ) ! heat flux from snow (cell average) 
    933           IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', ztmp2(:,:) * ( 1._wp - zsnw(:,:) ) ) ! heat flux from snow (over ocean) 
    934           IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea', ztmp2(:,:) *           zsnw(:,:)   ) ! heat flux from snow (over ice) 
    935       ENDIF 
    936915      ! 
    937916      IF(ln_ctl) THEN 
  • NEMO/trunk/src/OCE/SBC/sbccpl.F90

    r11989 r11993  
    17741774      IF( iom_use('snow_ao_cea') )  CALL iom_put( 'snow_ao_cea' , sprecip(:,:) * ( 1._wp - zsnw(:,:) )                  )  ! Snow over ice-free ocean  (cell average) 
    17751775      IF( iom_use('snow_ai_cea') )  CALL iom_put( 'snow_ai_cea' , sprecip(:,:) *           zsnw(:,:)                    )  ! Snow over sea-ice         (cell average) 
    1776       IF( iom_use('rain_ao_cea') )  CALL iom_put( 'rain_ao_cea' , ( tprecip(:,:) - sprecip(:,:) ) * picefr(:,:)         )  ! liquid precipitation over ocean (cell average) 
    17771776      IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) * tmask(:,:,1) )  ! Sublimation over sea-ice (cell average) 
    17781777      IF( iom_use('evap_ao_cea') )  CALL iom_put( 'evap_ao_cea' , ( frcv(jpr_tevp)%z3(:,:,1)  & 
     
    18981897#endif 
    18991898      ! outputs 
    1900       IF( srcv(jpr_cal)%laction       ) CALL iom_put('hflx_cal_cea'    , - frcv(jpr_cal)%z3(:,:,1) * rLfus )                      ! latent heat from calving 
    1901       IF( srcv(jpr_icb)%laction       ) CALL iom_put('hflx_icb_cea'    , - frcv(jpr_icb)%z3(:,:,1) * rLfus )                      ! latent heat from icebergs melting 
    1902       IF( iom_use('hflx_rain_cea')    ) CALL iom_put('hflx_rain_cea'   , ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) )        ! heat flux from rain (cell average) 
    1903       IF( iom_use('hflx_evap_cea')    ) CALL iom_put('hflx_evap_cea'   , ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) & 
     1899      IF ( srcv(jpr_cal)%laction       ) CALL iom_put('hflx_cal_cea'    , - frcv(jpr_cal)%z3(:,:,1) * rLfus )                      ! latent heat from calving 
     1900      IF ( srcv(jpr_icb)%laction       ) CALL iom_put('hflx_icb_cea'    , - frcv(jpr_icb)%z3(:,:,1) * rLfus )                      ! latent heat from icebergs melting 
     1901      IF ( iom_use('hflx_rain_cea')    ) CALL iom_put('hflx_rain_cea'   , ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) )        ! heat flux from rain (cell average) 
     1902      IF ( iom_use('hflx_evap_cea')    ) CALL iom_put('hflx_evap_cea'   , ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) & 
    19041903           &                                                              * picefr(:,:) ) * zcptn(:,:) * tmask(:,:,1) )            ! heat flux from evap (cell average) 
    1905       IF( iom_use('hflx_prec_cea')    ) CALL iom_put('hflx_prec_cea'   ,  sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) +  &                    ! heat flux from all precip (cell avg) 
    1906          &                                                               ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) ) 
    1907       IF( iom_use('hflx_snow_cea')    ) CALL iom_put('hflx_snow_cea'   , sprecip(:,:) * ( zcptsnw(:,:) - rLfus )  )               ! heat flux from snow (cell average) 
    1908       IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) & 
     1904      IF ( iom_use('hflx_snow_cea')    ) CALL iom_put('hflx_snow_cea'   , sprecip(:,:) * ( zcptsnw(:,:) - rLfus )  )               ! heat flux from snow (cell average) 
     1905      IF ( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) & 
    19091906           &                                                              * ( 1._wp - zsnw(:,:) )                  )               ! heat flux from snow (over ocean) 
    1910       IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) &  
     1907      IF ( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) &  
    19111908           &                                                              *           zsnw(:,:)                    )               ! heat flux from snow (over ice) 
    19121909      ! note: hflx for runoff and iceshelf are done in sbcrnf and sbcisf resp. 
     
    23042301      !                                                      !  CO2 flux from PISCES     !  
    23052302      !                                                      ! ------------------------- ! 
    2306       IF( ssnd(jps_co2)%laction .AND. l_co2cpl )   THEN  
    2307          ztmp1(:,:) = oce_co2(:,:) * 1000.  ! conversion in molC/m2/s 
    2308          CALL cpl_snd( jps_co2, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ) , info ) 
    2309       ENDIF 
     2303      IF( ssnd(jps_co2)%laction .AND. l_co2cpl )   CALL cpl_snd( jps_co2, isec, RESHAPE ( oce_co2, (/jpi,jpj,1/) ) , info ) 
    23102304      ! 
    23112305      !                                                      ! ------------------------- ! 
  • NEMO/trunk/src/OCE/SBC/sbcmod.F90

    r11989 r11993  
    244244         fwfisf_b(:,:)   = 0._wp   ;   risf_tsc_b(:,:,:) = 0._wp 
    245245      END IF 
    246       ! 
    247       IF( sbc_ssr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_ssr arrays' ) 
    248       IF( .NOT.ln_ssr ) THEN               !* Initialize qrp and erp if no restoring  
    249          qrp(:,:) = 0._wp 
    250          erp(:,:) = 0._wp 
    251       ENDIF 
    252       ! 
    253  
    254246      IF( nn_ice == 0 ) THEN        !* No sea-ice in the domain : ice fraction is always zero 
    255247         IF( nn_components /= jp_iam_opa )   fr_i(:,:) = 0._wp    ! except for OPA in SAS-OPA coupled case 
     
    560552         CALL iom_put( "taum"  , taum       )                   ! wind stress module 
    561553         CALL iom_put( "wspd"  , wndm       )                   ! wind speed  module over free ocean or leads in presence of sea-ice 
    562          CALL iom_put( "qrp", qrp )                             ! heat flux damping 
    563          CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    564554      ENDIF 
    565555      ! 
  • NEMO/trunk/src/OCE/SBC/sbcrnf.F90

    r11989 r11993  
    4343   REAL(wp)                   ::      rn_dep_max        !: depth over which runoffs is spread       (ln_rnf_depth_ini =T) 
    4444   INTEGER                    ::      nn_rnf_depth_file !: create (=1) a runoff depth file or not (=0) 
    45    LOGICAL                    ::   ln_rnf_icb        !: iceberg flux is specified in a file 
    4645   LOGICAL                    ::   ln_rnf_tem        !: temperature river runoffs attribute specified in a file 
    4746   LOGICAL           , PUBLIC ::   ln_rnf_sal        !: salinity    river runoffs attribute specified in a file 
    4847   TYPE(FLD_N)       , PUBLIC ::   sn_rnf            !: information about the runoff file to be read 
    4948   TYPE(FLD_N)                ::   sn_cnf            !: information about the runoff mouth file to be read 
    50    TYPE(FLD_N)                ::   sn_i_rnf        !: information about the iceberg flux file to be read 
    5149   TYPE(FLD_N)                ::   sn_s_rnf          !: information about the salinities of runoff file to be read 
    5250   TYPE(FLD_N)                ::   sn_t_rnf          !: information about the temperatures of runoff file to be read 
     
    6765 
    6866   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_rnf       ! structure: river runoff (file information, fields read) 
    69    TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_i_rnf     ! structure: iceberg flux (file information, fields read) 
    7067   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_s_rnf     ! structure: river runoff salinity (file information, fields read)   
    7168   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_t_rnf     ! structure: river runoff temperature (file information, fields read)   
     
    115112      !                                            !-------------------! 
    116113      ! 
    117       ! 
    118       IF( .NOT. l_rnfcpl )  THEN 
    119                             CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt ( runoffs + iceberg ) 
    120          IF( ln_rnf_icb )   CALL fld_read ( kt, nn_fsbc, sf_i_rnf )    ! idem for iceberg flux if required 
    121       ENDIF 
     114      IF( .NOT. l_rnfcpl )   CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt 
    122115      IF(   ln_rnf_tem   )   CALL fld_read ( kt, nn_fsbc, sf_t_rnf )    ! idem for runoffs temperature if required 
    123116      IF(   ln_rnf_sal   )   CALL fld_read ( kt, nn_fsbc, sf_s_rnf )    ! idem for runoffs salinity    if required 
     
    125118      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    126119         ! 
    127          IF( .NOT. l_rnfcpl ) THEN 
    128              rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)  ! updated runoff value at time step kt 
    129              IF( ln_rnf_icb ) THEN 
    130                 fwficb(:,:) = rn_rfact * ( sf_i_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)  ! updated runoff value at time step kt 
    131                 CALL iom_put( 'iceberg_cea'  , fwficb(:,:)  )         ! output iceberg flux 
    132                 CALL iom_put( 'hflx_icb_cea' , fwficb(:,:) * rLfus )   ! output Heat Flux into Sea Water due to Iceberg Thermodynamics --> 
    133              ENDIF 
    134          ENDIF 
     120         IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)       ! updated runoff value at time step kt 
    135121         ! 
    136122         !                                                           ! set temperature & salinity content of runoffs 
     
    146132         ELSE                                                        ! use SST as runoffs temperature 
    147133            !CEOD River is fresh water so must at least be 0 unless we consider ice 
    148             rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:), 0.0_wp ) * rnf(:,:) * r1_rau0 
     134            rnf_tsc(:,:,jp_tem) = MAX(sst_m(:,:),0.0_wp) * rnf(:,:) * r1_rau0 
    149135         ENDIF 
    150136         !                                                           ! use runoffs salinity data 
    151137         IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
    152138         !                                                           ! else use S=0 for runoffs (done one for all in the init) 
    153                                          CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
     139         IF( iom_use('runoffs') )        CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
    154140         IF( iom_use('hflx_rnf_cea') )   CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rau0 * rcp )   ! output runoff sensible heat (W/m2) 
    155141      ENDIF 
     
    256242      REAL(wp), DIMENSION(jpi,jpj,2) :: zrnfcl     
    257243      !! 
    258       NAMELIST/namsbc_rnf/ cn_dir            , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal, ln_rnf_icb,   & 
    259          &                 sn_rnf, sn_cnf    , sn_i_rnf, sn_s_rnf    , sn_t_rnf  , sn_dep_rnf,   & 
     244      NAMELIST/namsbc_rnf/ cn_dir            , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal,   & 
     245         &                 sn_rnf, sn_cnf    , sn_s_rnf    , sn_t_rnf  , sn_dep_rnf,   & 
    260246         &                 ln_rnf_mouth      , rn_hrnf     , rn_avt_rnf, rn_rfact,     & 
    261247         &                 ln_rnf_depth_ini  , rn_dep_max  , rn_rnf_max, nn_rnf_depth_file 
     
    313299         IF( sn_rnf%ln_tint ) ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,1,2) ) 
    314300         CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf', no_print ) 
    315          ! 
    316          IF( ln_rnf_icb ) THEN                      ! Create (if required) sf_i_rnf structure 
    317             IF(lwp) WRITE(numout,*) 
    318             IF(lwp) WRITE(numout,*) '          iceberg flux read in a file' 
    319             ALLOCATE( sf_i_rnf(1), STAT=ierror  ) 
    320             IF( ierror > 0 ) THEN 
    321                CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_i_rnf structure' )   ;   RETURN 
    322             ENDIF 
    323             ALLOCATE( sf_i_rnf(1)%fnow(jpi,jpj,1)   ) 
    324             IF( sn_i_rnf%ln_tint ) ALLOCATE( sf_i_rnf(1)%fdta(jpi,jpj,1,2) ) 
    325             CALL fld_fill (sf_i_rnf, (/ sn_i_rnf /), cn_dir, 'sbc_rnf_init', 'read iceberg flux data', 'namsbc_rnf' ) 
    326          ELSE 
    327             fwficb(:,:) = 0._wp 
    328          ENDIF 
    329  
    330301      ENDIF 
    331302      ! 
  • NEMO/trunk/src/OCE/SBC/sbcssr.F90

    r11989 r11993  
    3030   PUBLIC   sbc_ssr        ! routine called in sbcmod 
    3131   PUBLIC   sbc_ssr_init   ! routine called in sbcmod 
    32    PUBLIC   sbc_ssr_alloc  ! routine called in sbcmod 
    3332 
    3433   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   erp   !: evaporation damping   [kg/m2/s] 
    3534   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qrp   !: heat flux damping        [w/m2] 
    36    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   coefice   !: under ice relaxation coefficient 
    3735 
    3836   !                                   !!* Namelist namsbc_ssr * 
     
    4341   LOGICAL         ::   ln_sssr_bnd     ! flag to bound erp term  
    4442   REAL(wp)        ::   rn_sssr_bnd     ! ABS(Max./Min.) value of erp term [mm/day] 
    45    INTEGER         ::   nn_icedmp       ! Control of restoring under ice 
    4643 
    4744   REAL(wp) , ALLOCATABLE, DIMENSION(:) ::   buffer   ! Temporary buffer for exchange 
     
    10097                  END DO 
    10198               END DO 
    102             ENDIF 
    103             ! 
    104             IF( nn_sssr /= 0 .AND. nn_icedmp /= 1 ) THEN 
    105               ! use fraction of ice ( fr_i ) to adjust relaxation under ice if nn_icedmp .ne. 1 
    106               ! n.b. coefice is initialised and fixed to 1._wp if nn_icedmp = 1 
    107                DO jj = 1, jpj 
    108                   DO ji = 1, jpi 
    109                      SELECT CASE ( nn_icedmp ) 
    110                        CASE ( 0 )    ;  coefice(ji,jj) = 1._wp - fr_i(ji,jj)              ! no/reduced damping under ice 
    111                        CASE  DEFAULT ;  coefice(ji,jj) = 1._wp +(nn_icedmp-1)*fr_i(ji,jj) ! reinforced damping (x nn_icedmp) under ice ) 
    112                      END SELECT 
    113                   END DO 
    114                END DO 
     99               CALL iom_put( "qrp", qrp )                             ! heat flux damping 
    115100            ENDIF 
    116101            ! 
     
    120105                  DO ji = 1, jpi 
    121106                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
    122                         &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
    123107                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 
    124108                     sfx(ji,jj) = sfx(ji,jj) + zerp                 ! salt flux 
     
    126110                  END DO 
    127111               END DO 
     112               CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    128113               ! 
    129114            ELSEIF( nn_sssr == 2 ) THEN                               !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 
     
    133118                  DO ji = 1, jpi                             
    134119                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
    135                         &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
    136120                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) )   & 
    137121                        &        / MAX(  sss_m(ji,jj), 1.e-20   ) * tmask(ji,jj,1) 
     
    142126                  END DO 
    143127               END DO 
     128               CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    144129            ENDIF 
    145130            ! 
     
    169154      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    170155      TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read 
    171       NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, & 
    172               & sn_sss, ln_sssr_bnd, rn_sssr_bnd, nn_icedmp 
     156      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd 
    173157      INTEGER     ::  ios 
    174158      !!---------------------------------------------------------------------- 
     
    198182         WRITE(numout,*) '         flag to bound erp term                 ln_sssr_bnd = ', ln_sssr_bnd 
    199183         WRITE(numout,*) '         ABS(Max./Min.) erp threshold           rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 
    200          WRITE(numout,*) '      Cntrl of surface restoration under ice nn_icedmp      = ', nn_icedmp 
    201          WRITE(numout,*) '          ( 0 = no restoration under ice)' 
    202          WRITE(numout,*) '          ( 1 = restoration everywhere  )' 
    203          WRITE(numout,*) '          (>1 = enhanced restoration under ice  )' 
    204       ENDIF 
     184      ENDIF 
     185      ! 
     186      !                            !* Allocate erp and qrp array 
     187      ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), STAT=ierror ) 
     188      IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_ssr: unable to allocate erp and qrp array' ) 
    205189      ! 
    206190      IF( nn_sstr == 1 ) THEN      !* set sf_sst structure & allocate arrays 
     
    232216      ENDIF 
    233217      ! 
    234       coefice(:,:) = 1._wp         !  Initialise coefice to 1._wp ; will not need to be changed if nn_icedmp=1 
    235218      !                            !* Initialize qrp and erp if no restoring  
    236219      IF( nn_sstr /= 1                   )   qrp(:,:) = 0._wp 
     
    238221      ! 
    239222   END SUBROUTINE sbc_ssr_init 
    240           
    241    INTEGER FUNCTION sbc_ssr_alloc() 
    242       !!---------------------------------------------------------------------- 
    243       !!               ***  FUNCTION sbc_ssr_alloc  *** 
    244       !!---------------------------------------------------------------------- 
    245       sbc_ssr_alloc = 0       ! set to zero if no array to be allocated 
    246       IF( .NOT. ALLOCATED( erp ) ) THEN 
    247          ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), coefice(jpi,jpj), STAT= sbc_ssr_alloc ) 
    248          ! 
    249          IF( lk_mpp                  )   CALL mpp_sum ( 'sbcssr', sbc_ssr_alloc ) 
    250          IF( sbc_ssr_alloc /= 0 )   CALL ctl_warn('sbc_ssr_alloc: failed to allocate arrays.') 
    251          ! 
    252       ENDIF 
    253    END FUNCTION 
    254223       
    255224   !!====================================================================== 
Note: See TracChangeset for help on using the changeset viewer.