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 13241 for branches/UKMO/AMM15_v3_6_STABLE_package_collate_utils366_fabmv1/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90 – NEMO

Ignore:
Timestamp:
2020-07-03T14:42:49+02:00 (4 years ago)
Author:
dford
Message:

Update NEMO-FABM coupler for compatability with FABM v1.0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/AMM15_v3_6_STABLE_package_collate_utils366_fabmv1/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r8059 r13241  
    4545   LOGICAL , PUBLIC ::   ln_qsr_bio   !: bio-model      light absorption flag 
    4646   LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model LIM3 (clem) 
     47   LOGICAL , PUBLIC ::   ln_qsr_spec  !: spectral model heating from ERSEM 
    4748   INTEGER , PUBLIC ::   nn_chldta    !: use Chlorophyll data (=1) or not (=0) 
    4849   INTEGER , PUBLIC ::   nn_kd490dta  !: use kd490dta data (=1) or not (=0) 
     
    150151       
    151152      !                                           ! ============================================== ! 
    152       IF( lk_qsr_bio .AND. ln_qsr_bio ) THEN      !  bio-model fluxes  : all vertical coordinates  ! 
     153      IF( ln_qsr_spec ) THEN                      !  ERSEM spectral heating                        ! 
     154         !                                        ! ============================================== ! 
     155         DO jk = 1, jpkm1 
     156           qsr_hc(:,:,jk) = r1_rau0_rcp * ( etot3(:,:,jk) ) 
     157         END DO 
     158         !                                        Add to the general trend 
     159         DO jk = 1, jpkm1 
     160            DO jj = 2, jpjm1 
     161               DO ji = fs_2, fs_jpim1   ! vector opt. 
     162                  z1_e3t = zfact / fse3t(ji,jj,jk) 
     163                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) * z1_e3t 
     164               END DO 
     165            END DO 
     166         END DO 
     167         CALL iom_put( 'qsr3d', etot3 )   ! Shortwave Radiation 3D distribution 
     168         IF ( ln_qsr_ice ) THEN 
     169            DO jj = 1, jpj 
     170               DO ji = 1, jpi 
     171                  IF ( qsr(ji,jj) /= 0._wp ) THEN 
     172                     fraqsr_1lev(ji,jj) = ( qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) ) 
     173                  ELSE 
     174                     fraqsr_1lev(ji,jj) = 1. 
     175                  ENDIF 
     176               END DO 
     177            END DO 
     178         ENDIF 
     179         !  
     180 
     181         !                                        ! ============================================== ! 
     182      ELSEIF( lk_qsr_bio .AND. ln_qsr_bio ) THEN      !  bio-model fluxes  : all vertical coordinates  ! 
    153183         !                                        ! ============================================== ! 
    154184         DO jk = 1, jpkm1 
     
    423453      !! 
    424454      NAMELIST/namtra_qsr/  sn_chl, sn_kd490, cn_dir, ln_traqsr, ln_qsr_rgb, ln_qsr_2bd, ln_qsr_bio, ln_qsr_ice,  & 
    425          &                  nn_chldta, rn_abs, rn_si0, rn_si1, nn_kd490dta 
     455         &                  ln_qsr_spec, nn_chldta, rn_abs, rn_si0, rn_si1, nn_kd490dta 
    426456      !!---------------------------------------------------------------------- 
    427457 
     
    451481         WRITE(numout,*) '      2 band               light penetration   ln_qsr_2bd = ', ln_qsr_2bd 
    452482         WRITE(numout,*) '      bio-model            light penetration   ln_qsr_bio = ', ln_qsr_bio 
     483         WRITE(numout,*) '      ERSEM spectral heating model             ln_qsr_spec= ', ln_qsr_spec 
    453484         WRITE(numout,*) '      light penetration for ice-model LIM3     ln_qsr_ice = ', ln_qsr_ice 
    454485         WRITE(numout,*) '      RGB : Chl data (=1) or cst value (=0)    nn_chldta  = ', nn_chldta 
     
    470501         IF( ln_qsr_2bd  )   ioptio = ioptio + 1 
    471502         IF( ln_qsr_bio  )   ioptio = ioptio + 1 
     503         IF( ln_qsr_spec )   ioptio = ioptio + 1 
    472504         IF( nn_kd490dta == 1 )   ioptio = ioptio + 1 
    473505         ! 
     
    481513         IF( ln_qsr_bio                      )   nqsr =  4 
    482514         IF( nn_kd490dta == 1                )   nqsr =  5 
     515         IF( ln_qsr_spec                     )   nqsr =  6 
    483516         ! 
    484517         IF(lwp) THEN                   ! Print the choice 
     
    489522            IF( nqsr ==  4 )   WRITE(numout,*) '         bio-model light penetration' 
    490523            IF( nqsr ==  5 )   WRITE(numout,*) '         KD490 light penetration' 
    491          ENDIF 
     524            IF( nqsr ==  6 )   WRITE(numout,*) '         ERSEM spectral light penetration' 
     525         ENDIF 
     526#if ! defined key_fabm 
     527         ! 
     528         IF( nqsr ==  6 ) THEN 
     529            CALL ctl_stop( 'ln_qsr_spec=.true. so trying to use ERSEM spectral light penetration', & 
     530               &           'but not running with ERSEM' ) 
     531         ENDIF 
     532#endif 
    492533         ! 
    493534      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.