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

Changeset 7120


Ignore:
Timestamp:
2016-10-26T18:28:31+02:00 (7 years ago)
Author:
jcastill
Message:

Changes as in branch UKMO/2015_V36_STABLE_CO6_CO5_zenv_pomsdwl@5793

Location:
branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r7116 r7120  
    181181   LOGICAL, PUBLIC ::   ln_zps        !: z-coordinate - partial step 
    182182   LOGICAL, PUBLIC ::   ln_sco        !: s-coordinate or hybrid z-s coordinate 
     183   LOGICAL, PUBLIC ::   ln_read_zenv  !: Read or Calcualte zenv 
    183184   LOGICAL, PUBLIC ::   ln_isfcav     !: presence of ISF  
    184185 
     
    244245   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hift  , hifu       !: and quasi-uniform spacing             t--u points (m) 
    245246   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   rx1                !: Maximum grid stiffness ratio 
     247   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zenv               !: Envelope Bathymetry 
    246248 
    247249   !!---------------------------------------------------------------------- 
     
    387389         &     tmask_i(jpi,jpj) , umask_i(jpi,jpj), vmask_i(jpi,jpj), fmask_i(jpi,jpj), & 
    388390         &     bmask  (jpi,jpj) ,                                                       & 
    389          &     mbkt   (jpi,jpj) , mbku (jpi,jpj) , mbkv(jpi,jpj) , STAT=ierr(9) ) 
     391         &     mbkt   (jpi,jpj) , mbku (jpi,jpj) , mbkv(jpi,jpj) , zenv(jpi,jpj) , STAT=ierr(9) ) 
    390392 
    391393! (ISF) Allocation of basic array    
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r7116 r7120  
    102102      INTEGER ::   ios 
    103103      ! 
    104       NAMELIST/namzgr/ ln_zco, ln_zps, ln_sco, ln_isfcav 
     104      NAMELIST/namzgr/ ln_zco, ln_zps, ln_sco, ln_isfcav, ln_read_zenv 
    105105      !!---------------------------------------------------------------------- 
    106106      ! 
     
    125125         WRITE(numout,*) '             s- or hybrid z-s-coordinate    ln_sco    = ', ln_sco 
    126126         WRITE(numout,*) '             ice shelf cavities             ln_isfcav = ', ln_isfcav 
     127         WRITE(numout,*) '             Read zenv from Bathy T/F ln_read_zenv    = ', ln_read_zenv 
    127128      ENDIF 
    128129 
     
    531532            ELSE 
    532533               CALL iom_get  ( inum, jpdom_data, 'Bathymetry'    , bathy, lrowattr=ln_use_jattr  ) 
     534               IF ( ln_read_zenv ) THEN                  ! Whether we should read zenv or not  
     535                   CALL iom_get  ( inum, jpdom_data, 'zenv', zenv )  
     536               ENDIF  
    533537            END IF 
    534538            CALL iom_close( inum ) 
     
    18091813      ! 
    18101814      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztmpi1, ztmpi2, ztmpj1, ztmpj2 
    1811       REAL(wp), POINTER, DIMENSION(:,:  ) :: zenv, ztmp, zmsk, zri, zrj, zhbat 
     1815      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztmp, zmsk, zri, zrj, zhbat 
    18121816 
    18131817      NAMELIST/namzgr_sco/ln_s_sh94, ln_s_sf12, ln_sigcrit, rn_sbot_min, rn_sbot_max, rn_hc, rn_rmax,rn_theta, & 
     
    18171821      IF( nn_timing == 1 )  CALL timing_start('zgr_sco') 
    18181822      ! 
    1819       CALL wrk_alloc( jpi, jpj, zenv, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 
     1823      CALL wrk_alloc( jpi, jpj, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 
    18201824      ! 
    18211825      REWIND( numnam_ref )              ! Namelist namzgr_sco in reference namelist : Sigma-stretching parameters 
     
    18711875      !                                        ! ============================= 
    18721876      ! use r-value to create hybrid coordinates 
     1877      scosrf(:,:) = 0._wp             ! ocean surface depth (here zero: no under ice-shelf sea)  
     1878      scobot(:,:) = bathy(:,:)        ! ocean bottom  depth  
     1879      IF( ln_read_zenv) THEN  
     1880           WRITE(numout,*) '      Zenv is not calculated but read from Bathy File ln_read_zenv        = ', ln_read_zenv  
     1881      ELSE  
    18731882      zenv(:,:) = bathy(:,:) 
    18741883      ! 
     
    18921901      !  
    18931902      ! smooth the bathymetry (if required) 
    1894       scosrf(:,:) = 0._wp             ! ocean surface depth (here zero: no under ice-shelf sea) 
    1895       scobot(:,:) = bathy(:,:)        ! ocean bottom  depth 
    18961903      ! 
    18971904      jl = 0 
     
    19571964      END DO                                                !     End loop     ! 
    19581965      !                                                     ! ================ ! 
     1966      ENDIF ! End of IF Block for reading in zenv  
     1967      CALL lbc_lnk( zenv, 'T', 1._wp, 'no0' )  
    19591968      DO jj = 1, jpj 
    19601969         DO ji = 1, jpi 
     
    22322241      END DO 
    22332242      ! 
    2234       CALL wrk_dealloc( jpi, jpj, zenv, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 
     2243      CALL wrk_dealloc( jpi, jpj, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 
    22352244      ! 
    22362245      IF( nn_timing == 1 )  CALL timing_stop('zgr_sco') 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r7116 r7120  
    120120   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sprecip           !: solid precipitation                          [Kg/m2/s] 
    121121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fr_i              !: ice fraction = 1 - lead fraction      (between 0 to 1) 
     122   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   pressnow          !: UKMO SHELF pressure  
     123   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   apgu              !: UKMO SHELF pressure forcing  
     124   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   apgv              !: UKMO SHELF pressure forcing  
    122125#if defined key_cpl_carbon_cycle 
    123126   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   atm_co2           !: atmospheric pCO2                             [ppm] 
     
    170173#endif 
    171174         &      ssu_m  (jpi,jpj) , sst_m(jpi,jpj) , frq_m(jpi,jpj) ,      & 
     175         &      pressnow(jpi,jpj), apgu(jpi,jpj)    , apgv(jpi,jpj) ,     & 
    172176         &      ssv_m  (jpi,jpj) , sss_m(jpi,jpj) , ssh_m(jpi,jpj) , STAT=ierr(4) ) 
    173177         ! 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90

    r7116 r7120  
    2828   PUBLIC sbc_flx       ! routine called by step.F90 
    2929 
    30    INTEGER , PARAMETER ::   jpfld   = 5   ! maximum number of files to read  
     30   INTEGER , PARAMETER ::   jpfld   = 6   ! maximum number of files to read  
    3131   INTEGER , PARAMETER ::   jp_utau = 1   ! index of wind stress (i-component) file 
    3232   INTEGER , PARAMETER ::   jp_vtau = 2   ! index of wind stress (j-component) file 
     
    3434   INTEGER , PARAMETER ::   jp_qsr  = 4   ! index of solar heat file 
    3535   INTEGER , PARAMETER ::   jp_emp  = 5   ! index of evaporation-precipation file 
     36   INTEGER , PARAMETER ::   jp_press = 6  ! index of pressure for UKMO shelf fluxes 
    3637   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf    ! structure of input fields (file informations, fields read) 
     38   LOGICAL , PUBLIC    ::   ln_shelf_flx = .FALSE. ! UKMO SHELF specific flux flag  
     39   INTEGER             ::   jpfld_local   ! maximum number of files to read (locally modified depending on ln_shelf_flx) 
    3740 
    3841   !! * Substitutions 
     
    8285      REAL(wp) ::   zcdrag = 1.5e-3       ! drag coefficient 
    8386      REAL(wp) ::   ztx, zty, zmod, zcoef ! temporary variables 
     87      REAL     ::   cs                    ! UKMO SHELF: Friction co-efficient at surface  
     88      REAL     ::   totwindspd            ! UKMO SHELF: Magnitude of wind speed vector  
     89       
     90      REAL(wp) ::   rhoa  = 1.22          ! Air density kg/m3  
     91      REAL(wp) ::   cdrag = 1.5e-3        ! drag coefficient   
    8492      !! 
    8593      CHARACTER(len=100) ::  cn_dir                               ! Root directory for location of flx files 
    8694      TYPE(FLD_N), DIMENSION(jpfld) ::   slf_i                    ! array of namelist information structures 
    87       TYPE(FLD_N) ::   sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp  ! informations about the fields to be read 
    88       NAMELIST/namsbc_flx/ cn_dir, sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp 
     95      TYPE(FLD_N) ::   sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp, sn_press  !  informations about the fields to be read  
     96      LOGICAL     ::   ln_foam_flx  = .FALSE.                     ! UKMO FOAM specific flux flag  
     97      NAMELIST/namsbc_flx/ cn_dir, sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp,   &  
     98      &                    ln_foam_flx, sn_press, ln_shelf_flx  
    8999      !!--------------------------------------------------------------------- 
    90100      ! 
     
    109119         slf_i(jp_emp ) = sn_emp 
    110120         ! 
    111          ALLOCATE( sf(jpfld), STAT=ierror )        ! set sf structure 
     121         ALLOCATE( sf(jpfld), STAT=ierror )        ! set sf structure  
     122         IF( ln_shelf_flx ) slf_i(jp_press) = sn_press  
     123         
     124         ! define local jpfld depending on shelf_flx logical  
     125         IF( ln_shelf_flx ) THEN  
     126            jpfld_local = jpfld  
     127         ELSE  
     128            jpfld_local = jpfld-1  
     129         ENDIF  
     130         !  
    112131         IF( ierror > 0 ) THEN    
    113132            CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' )   ;   RETURN   
    114133         ENDIF 
    115          DO ji= 1, jpfld 
     134         DO ji= 1, jpfld_local 
    116135            ALLOCATE( sf(ji)%fnow(jpi,jpj,1) ) 
    117136            IF( slf_i(ji)%ln_tint ) ALLOCATE( sf(ji)%fdta(jpi,jpj,1,2) ) 
     
    131150         ELSE                  ;   qsr(:,:) =          sf(jp_qsr)%fnow(:,:,1) 
    132151         ENDIF 
     152         !!UKMO SHELF effect of atmospheric pressure on SSH  
     153         ! If using ln_apr_dyn, this is done there so don't repeat here.  
     154         IF( ln_shelf_flx .AND. .NOT. ln_apr_dyn) THEN  
     155            DO jj = 1, jpjm1  
     156               DO ji = 1, jpim1  
     157                  apgu(ji,jj) = (-1.0/rau0)*(sf(jp_press)%fnow(ji+1,jj,1)-sf(jp_press)%fnow(ji,jj,1))/e1u(ji,jj)  
     158                  apgv(ji,jj) = (-1.0/rau0)*(sf(jp_press)%fnow(ji,jj+1,1)-sf(jp_press)%fnow(ji,jj,1))/e2v(ji,jj)  
     159               END DO  
     160            END DO  
     161         ENDIF ! ln_shelf_flx  
     162         
    133163         DO jj = 1, jpj                                           ! set the ocean fluxes from read fields 
    134164            DO ji = 1, jpi 
    135                utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1) 
    136                vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1) 
    137                qns (ji,jj) = sf(jp_qtot)%fnow(ji,jj,1) - sf(jp_qsr)%fnow(ji,jj,1) 
    138                emp (ji,jj) = sf(jp_emp )%fnow(ji,jj,1) 
     165               IF( ln_shelf_flx ) THEN  
     166                  !! UKMO SHELF - need atmospheric pressure to calculate Haney forcing  
     167                  pressnow(ji,jj) = sf(jp_press)%fnow(ji,jj,1)  
     168                  !! UKMO SHELF flux files contain wind speed not wind stress  
     169                  totwindspd = sqrt((sf(jp_utau)%fnow(ji,jj,1))**2.0 + (sf(jp_vtau)%fnow(ji,jj,1))**2.0)  
     170                  cs = 0.63 + (0.066 * totwindspd)  
     171                  utau(ji,jj) = cs * (rhoa/rau0) * sf(jp_utau)%fnow(ji,jj,1) * totwindspd  
     172                  vtau(ji,jj) = cs * (rhoa/rau0) * sf(jp_vtau)%fnow(ji,jj,1) * totwindspd  
     173               ELSE  
     174                  utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1)  
     175                  vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1)  
     176               ENDIF  
     177               qsr (ji,jj) = sf(jp_qsr )%fnow(ji,jj,1)  
     178               IF( ln_foam_flx .OR. ln_shelf_flx ) THEN  
     179                  !! UKMO FOAM flux files contain non-solar heat flux (qns) rather than total heat flux (qtot)  
     180                  qns (ji,jj) = sf(jp_qtot)%fnow(ji,jj,1)  
     181                  !! UKMO FOAM flux files contain the net DOWNWARD freshwater flux P-E rather then E-P  
     182                  emp (ji,jj) = -1. * sf(jp_emp)%fnow(ji,jj,1)  
     183               ELSE  
     184                  qns (ji,jj) = sf(jp_qtot)%fnow(ji,jj,1) - sf(jp_qsr)%fnow(ji,jj,1)  
     185                  emp (ji,jj) = sf(jp_emp )%fnow(ji,jj,1)  
     186               ENDIF  
    139187            END DO 
    140188         END DO 
     
    142190         qns(:,:) = qns(:,:) - emp(:,:) * sst_m(:,:) * rcp        ! mass flux is at SST 
    143191         ! 
     192         !! UKMO FOAM wind fluxes need lbc_lnk calls owing to a bug in interp.exe  
     193         IF( ln_foam_flx ) THEN  
     194            CALL lbc_lnk( utau(:,:), 'U', -1. )  
     195            CALL lbc_lnk( vtau(:,:), 'V', -1. )  
     196         ENDIF  
    144197         !                                                        ! module of wind stress and wind speed at T-point 
    145198         zcoef = 1. / ( zrhoa * zcdrag ) 
     
    159212            WRITE(numout,*)  
    160213            WRITE(numout,*) '        read daily momentum, heat and freshwater fluxes OK' 
    161             DO jf = 1, jpfld 
     214            DO jf = 1, jpfld_local 
    162215               IF( jf == jp_utau .OR. jf == jp_vtau )   zfact =     1. 
    163216               IF( jf == jp_qtot .OR. jf == jp_qsr  )   zfact =     0.1 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90

    r7116 r7120  
    4242   LOGICAL         ::   ln_sssr_bnd     ! flag to bound erp term  
    4343   REAL(wp)        ::   rn_sssr_bnd     ! ABS(Max./Min.) value of erp term [mm/day] 
     44   LOGICAL         ::   ln_UKMO_haney   ! UKMO specific flag to calculate Haney forcing 
    4445 
    4546   REAL(wp) , ALLOCATABLE, DIMENSION(:) ::   buffer   ! Temporary buffer for exchange 
     
    7980      INTEGER  ::   ierror   ! return error code 
    8081      !! 
     82      REAL(wp) ::   sst1,sst2                      ! sea surface temperature  
     83      REAL(wp) ::   e_sst1, e_sst2                 ! saturation vapour pressure  
     84      REAL(wp) ::   qs1,qs2                        ! specific humidity  
     85      REAL(wp) ::   pr_tmp                         ! temporary variable for pressure  
     86         
     87      REAL(wp), DIMENSION(jpi,jpj) ::  hny_frc1    ! Haney forcing for sensible heat, correction for latent heat     
     88      REAL(wp), DIMENSION(jpi,jpj) ::  hny_frc2    ! Haney forcing for sensible heat, correction for latent heat     
     89      !!  
    8190      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    8291      TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read 
     
    95104            ! 
    96105            IF( nn_sstr == 1 ) THEN                                   !* Temperature restoring term 
    97                DO jj = 1, jpj 
    98                   DO ji = 1, jpi 
    99                      zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) 
    100                      qns(ji,jj) = qns(ji,jj) + zqrp 
    101                      qrp(ji,jj) = zqrp 
    102                   END DO 
    103                END DO 
     106               IF( ln_UKMO_haney ) THEN  
     107                  DO jj = 1, jpj  
     108                     DO ji = 1, jpi  
     109                        sst1   =  sst_m(ji,jj)  
     110                        sst2   =  sf_sst(1)%fnow(ji,jj,1)     
     111                        e_sst1 = 10**((0.7859+0.03477*sst1)/(1.+0.00412*sst1))  
     112                        e_sst2 = 10**((0.7859+0.03477*sst2)/(1.+0.00412*sst2))           
     113                        pr_tmp = 0.01*pressnow(ji,jj)   !pr_tmp = 1012.0  
     114                        qs1    = (0.62197*e_sst1)/(pr_tmp-0.378*e_sst1)  
     115                        qs2    = (0.62197*e_sst2)/(pr_tmp-0.378*e_sst2)  
     116                        hny_frc1(ji,jj) = sst1-sst2                     
     117                        hny_frc2(ji,jj) = qs1-qs2                       
     118                        !Might need to mask off land points.  
     119                        hny_frc1(ji,jj)=-hny_frc1(ji,jj)*wndm(ji,jj)*1.42  
     120                        hny_frc2(ji,jj)=-hny_frc2(ji,jj)*wndm(ji,jj)*4688.0  
     121                        qns(ji,jj)=qns(ji,jj)+hny_frc1(ji,jj)+hny_frc2(ji,jj)     
     122                        qrp(ji,jj) = 0.e0  
     123                     END DO  
     124                  END DO  
     125               ELSE  
     126                  DO jj = 1, jpj  
     127                     DO ji = 1, jpi  
     128                        zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) )  
     129                        qns(ji,jj) = qns(ji,jj) + zqrp  
     130                        qrp(ji,jj) = zqrp  
     131                     END DO  
     132                  END DO  
     133               ENDIF  
    104134               CALL iom_put( "qrp", qrp )                             ! heat flux damping 
    105135            ENDIF 
     
    161191      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    162192      TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read 
    163       NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd 
     193      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd, ln_UKMO_haney 
    164194      INTEGER     ::  ios 
    165195      !!---------------------------------------------------------------------- 
     
    187217         WRITE(numout,*) '      flag to bound erp term                 ln_sssr_bnd = ', ln_sssr_bnd 
    188218         WRITE(numout,*) '      ABS(Max./Min.) erp threshold           rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 
     219         WRITE(numout,*) '      Haney forcing                          ln_UKMO_haney = ', ln_UKMO_haney 
    189220      ENDIF 
    190221      ! 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r7116 r7120  
    2525   USE trd_oce         ! trends: ocean variables 
    2626   USE trdtra          ! trends manager: tracers  
     27   USE tradwl          ! solar radiation penetration (downwell method) 
    2728   ! 
    2829   USE in_out_manager  ! I/O manager 
     
    138139 
    139140!!gm      IF( .NOT.ln_traqsr )   qsr(:,:) = 0.e0   ! no solar radiation penetration 
    140       IF( .NOT.ln_traqsr ) THEN     ! no solar radiation penetration 
     141      IF( .NOT.ln_traqsr .and. .NOT.ln_tradwl ) THEN     ! no solar radiation penetration 
    141142         qns(:,:) = qns(:,:) + qsr(:,:)      ! total heat flux in qns 
    142143         qsr(:,:) = 0.e0                     ! qsr set to zero 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/step.F90

    r7116 r7120  
    218218                         CALL dyn_vor       ( kstp )  ! vorticity term including Coriolis 
    219219                         CALL dyn_ldf       ( kstp )  ! lateral mixing 
     220      IF ( ln_shelf_flx .AND. &  
     221     & .NOT. ln_apr_dyn) CALL inv( kstp )             ! modification to vel from atmos pres 
    220222                         CALL dyn_hpg       ( kstp )  ! horizontal gradient of Hydrostatic pressure 
    221223                         CALL dyn_spg       ( kstp )  ! surface pressure gradient 
     
    260262                         CALL tra_sbc       ( kstp )  ! surface boundary condition 
    261263      IF( ln_traqsr  )   CALL tra_qsr       ( kstp )  ! penetrative solar radiation qsr 
     264      IF( ln_tradwl  )   CALL tra_dwl       ( kstp )  ! Polcoms Style Short Wave Radiation 
    262265      IF( ln_trabbc  )   CALL tra_bbc       ( kstp )  ! bottom heat flux 
    263266      IF( lk_trabbl  )   CALL tra_bbl       ( kstp )  ! advective (and/or diffusive) bottom boundary layer scheme 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/step_oce.F90

    r7116 r7120  
    1717   USE sbcrnf           ! surface boundary condition: runoff variables 
    1818   USE sbccpl           ! surface boundary condition: coupled formulation (call send at end of step) 
     19   USE sbcflx           ! surface boundary condition: Fluxes 
    1920   USE sbcapr           ! surface boundary condition: atmospheric pressure 
    2021   USE sbctide          ! Tide initialisation 
    2122 
    2223   USE traqsr           ! solar radiation penetration      (tra_qsr routine) 
     24   USE tradwl           ! POLCOMS style solar radiation    (tra_dwl routine) 
    2325   USE trasbc           ! surface boundary condition       (tra_sbc routine) 
    2426   USE trabbc           ! bottom boundary condition        (tra_bbc routine) 
     
    5456 
    5557   USE sshwzv           ! vertical velocity and ssh        (ssh_nxt routine) 
     58   USE inv_bar_vel_mod  ! Atmos press effect on vel 
    5659   !                                                       (ssh_swp routine) 
    5760   !                                                       (wzv     routine) 
  • branches/UKMO/r5936_CO6_CO5_zenv_pomsdwl/NEMOGCM/NEMO/OPA_SRC/trc_oce.F90

    r7116 r7120  
    2727   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   etot3         !: light absortion coefficient 
    2828   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   facvol        !: volume for degraded regions 
     29   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   rlambda2      !: Lambda2 for downwell version of Short wave Radiation  
     30   REAL(wp), PUBLIC                                      ::   rlambda       !: Lambda  for downwell version of Short wave Radiation 
    2931 
    3032#if defined key_top  
     
    7880      !!                  ***  trc_oce_alloc  *** 
    7981      !!---------------------------------------------------------------------- 
    80       INTEGER ::   ierr(2)        ! Local variables 
     82      INTEGER ::   ierr(3)        ! Local variables 
    8183      !!---------------------------------------------------------------------- 
    8284      ierr(:) = 0 
    8385                     ALLOCATE( etot3 (jpi,jpj,jpk), STAT=ierr(1) ) 
    8486      IF( lk_degrad) ALLOCATE( facvol(jpi,jpj,jpk), STAT=ierr(2) ) 
     87                     ALLOCATE( rlambda2(jpi,jpj),   STAT=ierr(3) ) 
    8588      trc_oce_alloc  = MAXVAL( ierr ) 
    8689      ! 
    87       IF( trc_oce_alloc /= 0 )   CALL ctl_warn('trc_oce_alloc: failed to allocate etot3 array') 
     90!      IF( trc_oce_alloc /= 0 )   CALL ctl_warn('trc_oce_alloc: failed to allocate etot3 array') 
     91      IF( trc_oce_alloc /= 0 )   CALL ctl_warn('trc_oce_alloc: failed to allocate etot3, facvol or rlambda2 array') 
    8892   END FUNCTION trc_oce_alloc 
    8993 
Note: See TracChangeset for help on using the changeset viewer.