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 5403 for branches/2015/dev_r5218_CNRS17_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90 – NEMO

Ignore:
Timestamp:
2015-06-10T22:06:39+02:00 (9 years ago)
Author:
smasson
Message:

dev_r5218_CNRS17_coupling: sette ok

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5218_CNRS17_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r5381 r5403  
    3232 
    3333   PUBLIC   sbc_rnf       ! routine call in sbcmod module 
    34    PUBLIC   sbc_rnf_div   ! routine called in sshwzv module 
     34   PUBLIC   sbc_rnf_div   ! routine called in divcurl module 
    3535   PUBLIC   sbc_rnf_alloc ! routine call in sbcmod module 
    3636   PUBLIC   sbc_rnf_init  ! (PUBLIC for TAM) 
     
    4040   LOGICAL           , PUBLIC ::   ln_rnf_tem      !: temperature river runoffs attribute specified in a file 
    4141   LOGICAL           , PUBLIC ::   ln_rnf_sal      !: salinity    river runoffs attribute specified in a file 
    42    LOGICAL           , PUBLIC ::   ln_rnf_emp      !: runoffs into a file to be read or already into precipitation 
    4342   TYPE(FLD_N)       , PUBLIC ::   sn_rnf          !: information about the runoff file to be read 
    4443   TYPE(FLD_N)       , PUBLIC ::   sn_cnf          !: information about the runoff mouth file to be read 
     
    118117      ENDIF 
    119118 
    120       !                                                   !-------------------! 
    121       IF( .NOT. ln_rnf_emp ) THEN                         !   Update runoff   ! 
    122          !                                                !-------------------! 
    123          ! 
    124          IF( .NOT. l_rnfcpl )   CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt 
    125          IF(   ln_rnf_tem   )   CALL fld_read ( kt, nn_fsbc, sf_t_rnf )    ! idem for runoffs temperature if required 
    126          IF(   ln_rnf_sal   )   CALL fld_read ( kt, nn_fsbc, sf_s_rnf )    ! idem for runoffs salinity    if required 
    127          ! 
    128          ! Runoff reduction only associated to the ORCA2_LIM configuration 
    129          ! when reading the NetCDF file runoff_1m_nomask.nc 
    130          IF( cp_cfg == 'orca' .AND. jp_cfg == 2 .AND. .NOT. l_rnfcpl )   THEN 
    131             WHERE( 40._wp < gphit(:,:) .AND. gphit(:,:) < 65._wp ) 
    132                sf_rnf(1)%fnow(:,:,1) = 0.85 * sf_rnf(1)%fnow(:,:,1) 
     119      !                                            !-------------------! 
     120      !                                            !   Update runoff   ! 
     121      !                                            !-------------------! 
     122      ! 
     123      IF( .NOT. l_rnfcpl )   CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt 
     124      IF(   ln_rnf_tem   )   CALL fld_read ( kt, nn_fsbc, sf_t_rnf )    ! idem for runoffs temperature if required 
     125      IF(   ln_rnf_sal   )   CALL fld_read ( kt, nn_fsbc, sf_s_rnf )    ! idem for runoffs salinity    if required 
     126      ! 
     127      ! Runoff reduction only associated to the ORCA2_LIM configuration 
     128      ! when reading the NetCDF file runoff_1m_nomask.nc 
     129      IF( cp_cfg == 'orca' .AND. jp_cfg == 2 .AND. .NOT. l_rnfcpl )   THEN 
     130         WHERE( 40._wp < gphit(:,:) .AND. gphit(:,:) < 65._wp ) 
     131            sf_rnf(1)%fnow(:,:,1) = 0.85 * sf_rnf(1)%fnow(:,:,1) 
     132         END WHERE 
     133      ENDIF 
     134      ! 
     135      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
     136         ! 
     137         IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) )       ! updated runoff value at time step kt 
     138         ! 
     139         !                                                     ! set temperature & salinity content of runoffs 
     140         IF( ln_rnf_tem ) THEN                                       ! use runoffs temperature data 
     141            rnf_tsc(:,:,jp_tem) = ( sf_t_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
     142            WHERE( sf_t_rnf(1)%fnow(:,:,1) == -999._wp )             ! if missing data value use SST as runoffs temperature 
     143               rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
    133144            END WHERE 
    134          ENDIF 
    135          ! 
    136          IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    137             ! 
    138             IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) )       ! updated runoff value at time step kt 
    139             ! 
    140             !                                                     ! set temperature & salinity content of runoffs 
    141             IF( ln_rnf_tem ) THEN                                       ! use runoffs temperature data 
    142                rnf_tsc(:,:,jp_tem) = ( sf_t_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
    143                WHERE( sf_t_rnf(1)%fnow(:,:,1) == -999._wp )             ! if missing data value use SST as runoffs temperature 
    144                    rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
    145                END WHERE 
    146                WHERE( sf_t_rnf(1)%fnow(:,:,1) == -222._wp )             ! where fwf comes from melting of ice shelves or iceberg 
    147                    ztfrz(:,:) = -1.9 !tfreez( sss_m(:,:) ) !PM to be discuss (trouble if sensitivity study) 
    148                    rnf_tsc(:,:,jp_tem) = ztfrz(:,:) * rnf(:,:) * r1_rau0 - rnf(:,:) * lfusisf * r1_rau0_rcp 
    149                END WHERE 
    150             ELSE                                                        ! use SST as runoffs temperature 
    151                rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
    152             ENDIF 
    153             !                                                           ! use runoffs salinity data 
    154             IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
    155             !                                                           ! else use S=0 for runoffs (done one for all in the init) 
    156             CALL iom_put( "runoffs", rnf )         ! output runoffs arrays 
    157          ENDIF 
    158          ! 
     145            WHERE( sf_t_rnf(1)%fnow(:,:,1) == -222._wp )             ! where fwf comes from melting of ice shelves or iceberg 
     146               ztfrz(:,:) = -1.9 !tfreez( sss_m(:,:) ) !PM to be discuss (trouble if sensitivity study) 
     147               rnf_tsc(:,:,jp_tem) = ztfrz(:,:) * rnf(:,:) * r1_rau0 - rnf(:,:) * lfusisf * r1_rau0_rcp 
     148            END WHERE 
     149         ELSE                                                        ! use SST as runoffs temperature 
     150            rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
     151         ENDIF 
     152         !                                                           ! use runoffs salinity data 
     153         IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
     154         !                                                           ! else use S=0 for runoffs (done one for all in the init) 
     155         CALL iom_put( "runoffs", rnf )         ! output runoffs arrays 
    159156      ENDIF 
    160157      ! 
     
    170167         ELSE                                                   !* no restart: set from nit000 values 
    171168            IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields set to nit000' 
    172              rnf_b    (:,:  ) = rnf    (:,:  ) 
    173              rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
     169            rnf_b    (:,:  ) = rnf    (:,:  ) 
     170            rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
    174171         ENDIF 
    175172      ENDIF 
     
    185182         CALL iom_rstput( kt, nitrst, numrow, 'rnf_sc_b', rnf_tsc(:,:,jp_sal) ) 
    186183      ENDIF 
     184      ! 
    187185      CALL wrk_dealloc( jpi,jpj, ztfrz) 
    188186      ! 
     
    258256      INTEGER           ::   ios           ! Local integer output status for namelist read 
    259257      ! 
    260       NAMELIST/namsbc_rnf/ cn_dir, ln_rnf_emp, ln_rnf_depth, ln_rnf_tem, ln_rnf_sal,   & 
     258      NAMELIST/namsbc_rnf/ cn_dir            , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal,   & 
    261259         &                 sn_rnf, sn_cnf    , sn_s_rnf    , sn_t_rnf  , sn_dep_rnf,   & 
    262260         &                 ln_rnf_mouth      , rn_hrnf     , rn_avt_rnf, rn_rfact 
     
    282280         WRITE(numout,*) '~~~~~~~ ' 
    283281         WRITE(numout,*) '   Namelist namsbc_rnf' 
    284          WRITE(numout,*) '      runoff in a file to be read                ln_rnf_emp   = ', ln_rnf_emp 
    285282         WRITE(numout,*) '      specific river mouths treatment            ln_rnf_mouth = ', ln_rnf_mouth 
    286283         WRITE(numout,*) '      river mouth additional Kz                  rn_avt_rnf   = ', rn_avt_rnf 
    287284         WRITE(numout,*) '      depth of river mouth additional mixing     rn_hrnf      = ', rn_hrnf 
    288285         WRITE(numout,*) '      multiplicative factor for runoff           rn_rfact     = ', rn_rfact 
    289       ENDIF 
    290       ! 
    291       IF( ln_rnf_emp .AND. nn_components == jp_iam_opa ) THEN 
    292          CALL ctl_stop( 'sbc_rnf_init: ln_rnf_emp must be false in case of SAS-OPA coupling' )   ;   RETURN 
    293286      ENDIF 
    294287      !                                   ! ================== 
     
    298291      IF( sbc_rnf_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_rnf_alloc : unable to allocate arrays' ) 
    299292      ! 
    300       IF( ln_rnf_emp ) THEN                     !==  runoffs directly provided in the precipitations  ==! 
     293      IF( .NOT. l_rnfcpl ) THEN                     
     294         ALLOCATE( sf_rnf(1), STAT=ierror )      ! Create (if required) sf_rnf structure (runoff inflow) 
    301295         IF(lwp) WRITE(numout,*) 
    302          IF(lwp) WRITE(numout,*) '          runoffs directly provided in the precipitations' 
    303          IF( ln_rnf_depth .OR. ln_rnf_tem .OR. ln_rnf_sal ) THEN 
    304            CALL ctl_warn( 'runoffs already included in precipitations, so runoff (T,S, depth) attributes will not be used' ) 
    305            ln_rnf_depth = .FALSE.   ;   ln_rnf_tem = .FALSE.   ;   ln_rnf_sal = .FALSE. 
    306          ENDIF 
    307          ! 
    308       ELSE                                      !==  runoffs read in a file : set sf_rnf structure  ==! 
    309          ! 
    310          IF( .NOT. l_rnfcpl ) THEN                     
    311             ALLOCATE( sf_rnf(1), STAT=ierror )      ! Create (if required) sf_rnf structure (runoff inflow) 
    312             IF(lwp) WRITE(numout,*) 
    313             IF(lwp) WRITE(numout,*) '          runoffs inflow read in a file' 
    314             IF( ierror > 0 ) THEN 
    315                CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' )   ;   RETURN 
    316             ENDIF 
    317             ALLOCATE( sf_rnf(1)%fnow(jpi,jpj,1)   ) 
    318             IF( sn_rnf%ln_tint ) ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,1,2) ) 
    319             CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf' ) 
    320          ENDIF 
    321          ! 
    322          IF( ln_rnf_tem ) THEN                      ! Create (if required) sf_t_rnf structure 
    323             IF(lwp) WRITE(numout,*) 
    324             IF(lwp) WRITE(numout,*) '          runoffs temperatures read in a file' 
    325             ALLOCATE( sf_t_rnf(1), STAT=ierror  ) 
    326             IF( ierror > 0 ) THEN 
    327                CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_t_rnf structure' )   ;   RETURN 
    328             ENDIF 
    329             ALLOCATE( sf_t_rnf(1)%fnow(jpi,jpj,1)   ) 
    330             IF( sn_t_rnf%ln_tint ) ALLOCATE( sf_t_rnf(1)%fdta(jpi,jpj,1,2) ) 
    331             CALL fld_fill (sf_t_rnf, (/ sn_t_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff temperature data', 'namsbc_rnf' ) 
    332          ENDIF 
    333          ! 
    334          IF( ln_rnf_sal  ) THEN                     ! Create (if required) sf_s_rnf and sf_t_rnf structures 
    335             IF(lwp) WRITE(numout,*) 
    336             IF(lwp) WRITE(numout,*) '          runoffs salinities read in a file' 
    337             ALLOCATE( sf_s_rnf(1), STAT=ierror  ) 
    338             IF( ierror > 0 ) THEN 
    339                CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_s_rnf structure' )   ;   RETURN 
    340             ENDIF 
    341             ALLOCATE( sf_s_rnf(1)%fnow(jpi,jpj,1)   ) 
    342             IF( sn_s_rnf%ln_tint ) ALLOCATE( sf_s_rnf(1)%fdta(jpi,jpj,1,2) ) 
    343             CALL fld_fill (sf_s_rnf, (/ sn_s_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff salinity data', 'namsbc_rnf' ) 
    344          ENDIF 
    345          ! 
    346          IF( ln_rnf_depth ) THEN                    ! depth of runoffs set from a file 
    347             IF(lwp) WRITE(numout,*) 
    348             IF(lwp) WRITE(numout,*) '          runoffs depth read in a file' 
    349             rn_dep_file = TRIM( cn_dir )//TRIM( sn_dep_rnf%clname ) 
    350             IF( .NOT. sn_dep_rnf%ln_clim ) THEN   ;   WRITE(rn_dep_file, '(a,"_y",i4)' ) TRIM( rn_dep_file ), nyear    ! add year  
    351                IF( sn_dep_rnf%cltype == 'monthly' )   WRITE(rn_dep_file, '(a,"m",i2)'  ) TRIM( rn_dep_file ), nmonth   ! add month  
    352             ENDIF  
    353             CALL iom_open ( rn_dep_file, inum )                           ! open file 
    354             CALL iom_get  ( inum, jpdom_data, sn_dep_rnf%clvar, h_rnf )   ! read the river mouth array 
    355             CALL iom_close( inum )                                        ! close file 
    356             ! 
    357             nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
    358             DO jj = 1, jpj 
    359                DO ji = 1, jpi 
    360                   IF( h_rnf(ji,jj) > 0._wp ) THEN 
    361                      jk = 2 
    362                      DO WHILE ( jk /= mbkt(ji,jj) .AND. gdept_0(ji,jj,jk) < h_rnf(ji,jj) ) ;  jk = jk + 1 ;  END DO 
    363                      nk_rnf(ji,jj) = jk 
    364                   ELSEIF( h_rnf(ji,jj) == -1._wp   ) THEN   ;  nk_rnf(ji,jj) = 1 
    365                   ELSEIF( h_rnf(ji,jj) == -999._wp ) THEN   ;  nk_rnf(ji,jj) = mbkt(ji,jj) 
    366                   ELSE 
    367                      CALL ctl_stop( 'sbc_rnf_init: runoff depth not positive, and not -999 or -1, rnf value in file fort.999'  ) 
    368                      WRITE(999,*) 'ji, jj, h_rnf(ji,jj) :', ji, jj, h_rnf(ji,jj) 
    369                   ENDIF 
     296         IF(lwp) WRITE(numout,*) '          runoffs inflow read in a file' 
     297         IF( ierror > 0 ) THEN 
     298            CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' )   ;   RETURN 
     299         ENDIF 
     300         ALLOCATE( sf_rnf(1)%fnow(jpi,jpj,1)   ) 
     301         IF( sn_rnf%ln_tint ) ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,1,2) ) 
     302         CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf' ) 
     303      ENDIF 
     304      ! 
     305      IF( ln_rnf_tem ) THEN                      ! Create (if required) sf_t_rnf structure 
     306         IF(lwp) WRITE(numout,*) 
     307         IF(lwp) WRITE(numout,*) '          runoffs temperatures read in a file' 
     308         ALLOCATE( sf_t_rnf(1), STAT=ierror  ) 
     309         IF( ierror > 0 ) THEN 
     310            CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_t_rnf structure' )   ;   RETURN 
     311         ENDIF 
     312         ALLOCATE( sf_t_rnf(1)%fnow(jpi,jpj,1)   ) 
     313         IF( sn_t_rnf%ln_tint ) ALLOCATE( sf_t_rnf(1)%fdta(jpi,jpj,1,2) ) 
     314         CALL fld_fill (sf_t_rnf, (/ sn_t_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff temperature data', 'namsbc_rnf' ) 
     315      ENDIF 
     316      ! 
     317      IF( ln_rnf_sal  ) THEN                     ! Create (if required) sf_s_rnf and sf_t_rnf structures 
     318         IF(lwp) WRITE(numout,*) 
     319         IF(lwp) WRITE(numout,*) '          runoffs salinities read in a file' 
     320         ALLOCATE( sf_s_rnf(1), STAT=ierror  ) 
     321         IF( ierror > 0 ) THEN 
     322            CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_s_rnf structure' )   ;   RETURN 
     323         ENDIF 
     324         ALLOCATE( sf_s_rnf(1)%fnow(jpi,jpj,1)   ) 
     325         IF( sn_s_rnf%ln_tint ) ALLOCATE( sf_s_rnf(1)%fdta(jpi,jpj,1,2) ) 
     326         CALL fld_fill (sf_s_rnf, (/ sn_s_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff salinity data', 'namsbc_rnf' ) 
     327      ENDIF 
     328      ! 
     329      IF( ln_rnf_depth ) THEN                    ! depth of runoffs set from a file 
     330         IF(lwp) WRITE(numout,*) 
     331         IF(lwp) WRITE(numout,*) '          runoffs depth read in a file' 
     332         rn_dep_file = TRIM( cn_dir )//TRIM( sn_dep_rnf%clname ) 
     333         IF( .NOT. sn_dep_rnf%ln_clim ) THEN   ;   WRITE(rn_dep_file, '(a,"_y",i4)' ) TRIM( rn_dep_file ), nyear    ! add year  
     334            IF( sn_dep_rnf%cltype == 'monthly' )   WRITE(rn_dep_file, '(a,"m",i2)'  ) TRIM( rn_dep_file ), nmonth   ! add month  
     335         ENDIF 
     336         CALL iom_open ( rn_dep_file, inum )                           ! open file 
     337         CALL iom_get  ( inum, jpdom_data, sn_dep_rnf%clvar, h_rnf )   ! read the river mouth array 
     338         CALL iom_close( inum )                                        ! close file 
     339         ! 
     340         nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
     341         DO jj = 1, jpj 
     342            DO ji = 1, jpi 
     343               IF( h_rnf(ji,jj) > 0._wp ) THEN 
     344                  jk = 2 
     345                  DO WHILE ( jk /= mbkt(ji,jj) .AND. gdept_0(ji,jj,jk) < h_rnf(ji,jj) ) ;  jk = jk + 1 
     346                  END DO 
     347                  nk_rnf(ji,jj) = jk 
     348               ELSEIF( h_rnf(ji,jj) == -1._wp   ) THEN   ;  nk_rnf(ji,jj) = 1 
     349               ELSEIF( h_rnf(ji,jj) == -999._wp ) THEN   ;  nk_rnf(ji,jj) = mbkt(ji,jj) 
     350               ELSE 
     351                  CALL ctl_stop( 'sbc_rnf_init: runoff depth not positive, and not -999 or -1, rnf value in file fort.999'  ) 
     352                  WRITE(999,*) 'ji, jj, h_rnf(ji,jj) :', ji, jj, h_rnf(ji,jj) 
     353               ENDIF 
     354            END DO 
     355         END DO 
     356         DO jj = 1, jpj                                ! set the associated depth 
     357            DO ji = 1, jpi 
     358               h_rnf(ji,jj) = 0._wp 
     359               DO jk = 1, nk_rnf(ji,jj) 
     360                  h_rnf(ji,jj) = h_rnf(ji,jj) + fse3t(ji,jj,jk) 
    370361               END DO 
    371362            END DO 
    372             DO jj = 1, jpj                                ! set the associated depth 
    373                DO ji = 1, jpi 
    374                   h_rnf(ji,jj) = 0._wp 
    375                   DO jk = 1, nk_rnf(ji,jj) 
    376                      h_rnf(ji,jj) = h_rnf(ji,jj) + fse3t(ji,jj,jk) 
    377                   END DO 
    378                END DO 
    379             END DO 
    380          ELSE                                       ! runoffs applied at the surface 
    381             nk_rnf(:,:) = 1 
    382             h_rnf (:,:) = fse3t(:,:,1) 
    383          ENDIF 
    384          ! 
     363         END DO 
     364      ELSE                                       ! runoffs applied at the surface 
     365         nk_rnf(:,:) = 1 
     366         h_rnf (:,:) = fse3t(:,:,1) 
    385367      ENDIF 
    386368      ! 
     
    403385         IF( rn_hrnf > 0._wp ) THEN 
    404386            nkrnf = 2 
    405             DO WHILE( nkrnf /= jpkm1 .AND. gdepw_1d(nkrnf+1) < rn_hrnf )   ;   nkrnf = nkrnf + 1   ;   END DO 
     387            DO WHILE( nkrnf /= jpkm1 .AND. gdepw_1d(nkrnf+1) < rn_hrnf )   ;   nkrnf = nkrnf + 1 
     388            END DO 
    406389            IF( ln_sco )   CALL ctl_warn( 'sbc_rnf: number of levels over which Kz is increased is computed for zco...' ) 
    407390         ENDIF 
    408          IF(lwp) WRITE(numout,*) 
    409          IF(lwp) WRITE(numout,*) '          Specific treatment used in vicinity of river mouths :' 
    410          IF(lwp) WRITE(numout,*) '             - Increase Kz in surface layers (if rn_hrnf > 0 )' 
    411          IF(lwp) WRITE(numout,*) '               by ', rn_avt_rnf,' m2/s  over ', nkrnf, ' w-levels' 
    412          IF(lwp) WRITE(numout,*) '             - set to zero SSS damping       (if ln_ssr=T)' 
    413          IF(lwp) WRITE(numout,*) '             - mixed upstream-centered       (if ln_traadv_cen2=T)' 
    414          ! 
    415          CALL rnf_mouth                             ! set river mouth mask 
    416          ! 
    417       ELSE                                      ! No treatment at river mouths 
    418          IF(lwp) WRITE(numout,*) 
    419          IF(lwp) WRITE(numout,*) '          No specific treatment at river mouths' 
    420          rnfmsk  (:,:) = 0._wp 
    421          rnfmsk_z(:)   = 0._wp 
    422          nkrnf = 0 
    423       ENDIF 
    424       ! 
    425    END SUBROUTINE sbc_rnf_init 
     391            IF(lwp) WRITE(numout,*) 
     392            IF(lwp) WRITE(numout,*) '          Specific treatment used in vicinity of river mouths :' 
     393            IF(lwp) WRITE(numout,*) '             - Increase Kz in surface layers (if rn_hrnf > 0 )' 
     394            IF(lwp) WRITE(numout,*) '               by ', rn_avt_rnf,' m2/s  over ', nkrnf, ' w-levels' 
     395            IF(lwp) WRITE(numout,*) '             - set to zero SSS damping       (if ln_ssr=T)' 
     396            IF(lwp) WRITE(numout,*) '             - mixed upstream-centered       (if ln_traadv_cen2=T)' 
     397            ! 
     398            CALL rnf_mouth                             ! set river mouth mask 
     399            ! 
     400         ELSE                                      ! No treatment at river mouths 
     401            IF(lwp) WRITE(numout,*) 
     402            IF(lwp) WRITE(numout,*) '          No specific treatment at river mouths' 
     403            rnfmsk  (:,:) = 0._wp 
     404            rnfmsk_z(:)   = 0._wp 
     405            nkrnf = 0 
     406         ENDIF 
     407         ! 
     408      END SUBROUTINE sbc_rnf_init 
    426409 
    427410 
Note: See TracChangeset for help on using the changeset viewer.