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 5989 for branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90 – NEMO

Ignore:
Timestamp:
2015-12-03T09:10:32+01:00 (9 years ago)
Author:
deazer
Message:

Merging TMB and 25h diagnostics to head of trunk
added brief documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r5260 r5989  
    3232   USE wrk_nemo       ! Memory Allocation 
    3333   USE timing         ! Timing 
    34    USE sbc_ice, ONLY : lk_lim3 
    3534 
    3635   IMPLICIT NONE 
     
    3837 
    3938   PUBLIC   tra_qsr       ! routine called by step.F90 (ln_traqsr=T) 
    40    PUBLIC   tra_qsr_init  ! routine called by opa.F90 
     39   PUBLIC   tra_qsr_init  ! routine called by nemogcm.F90 
    4140 
    4241   !                                 !!* Namelist namtra_qsr: penetrative solar radiation 
     
    5049   REAL(wp), PUBLIC ::   rn_si0       !: very near surface depth of extinction      (RGB & 2 bands) 
    5150   REAL(wp), PUBLIC ::   rn_si1       !: deepest depth of extinction (water type I)       (2 bands) 
    52     
     51  
    5352   ! Module variables 
    5453   REAL(wp) ::   xsi0r                           !: inverse of rn_si0 
     
    165164         CALL iom_put( 'qsr3d', etot3 )   ! Shortwave Radiation 3D distribution 
    166165         ! clem: store attenuation coefficient of the first ocean level 
    167          IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 
     166         IF ( ln_qsr_ice ) THEN 
    168167            DO jj = 1, jpj 
    169168               DO ji = 1, jpi 
    170169                  IF ( qsr(ji,jj) /= 0._wp ) THEN 
    171170                     fraqsr_1lev(ji,jj) = ( qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) ) 
     171                  ELSE 
     172                     fraqsr_1lev(ji,jj) = 1. 
    172173                  ENDIF 
    173174               END DO 
     
    188189                  CALL fld_read( kt, 1, sf_chl )                         ! Read Chl data and provides it at the current time step 
    189190                  !          
    190 !CDIR COLLAPSE 
    191 !CDIR NOVERRCHK 
    192191                  DO jj = 1, jpj                                         ! Separation in R-G-B depending of the surface Chl 
    193 !CDIR NOVERRCHK 
    194192                     DO ji = 1, jpi 
    195193                        zchl = MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) 
     
    216214               ! 
    217215               DO jk = 2, nksr+1 
    218 !CDIR NOVERRCHK 
    219216                  DO jj = 1, jpj 
    220 !CDIR NOVERRCHK    
    221217                     DO ji = 1, jpi 
    222218                        zc0 = ze0(ji,jj,jk-1) * EXP( - fse3t(ji,jj,jk-1) * xsi0r     ) 
     
    233229               END DO 
    234230               ! clem: store attenuation coefficient of the first ocean level 
    235                IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 
     231               IF ( ln_qsr_ice ) THEN 
    236232                  DO jj = 1, jpj 
    237233                     DO ji = 1, jpi 
     
    256252               END DO 
    257253               ! clem: store attenuation coefficient of the first ocean level 
    258                IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 
     254               IF ( ln_qsr_ice ) THEN 
    259255                  fraqsr_1lev(:,:) = etot3(:,:,1) / r1_rau0_rcp 
    260256               ENDIF 
     
    279275               END DO 
    280276               ! clem: store attenuation coefficient of the first ocean level 
    281                IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 
     277               IF ( ln_qsr_ice ) THEN 
    282278                  DO jj = 1, jpj 
    283279                     DO ji = 1, jpi 
     
    298294               END DO 
    299295               ! clem: store attenuation coefficient of the first ocean level 
    300                IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 
     296               IF ( ln_qsr_ice ) THEN 
    301297                  fraqsr_1lev(:,:) = etot3(:,:,1) / r1_rau0_rcp 
    302298               ENDIF 
     
    324320            &                    'at it= ', kt,' date= ', ndastp 
    325321         IF(lwp) WRITE(numout,*) '~~~~' 
    326          CALL iom_rstput( kt, nitrst, numrow, 'qsr_hc_b', qsr_hc ) 
     322         CALL iom_rstput( kt, nitrst, numrow, 'qsr_hc_b'   , qsr_hc      ) 
     323         CALL iom_rstput( kt, nitrst, numrow, 'fraqsr_1lev', fraqsr_1lev )   ! default definition in sbcssm  
    327324         ! 
    328325      ENDIF 
     
    379376      ! 
    380377      IF( nn_timing == 1 )  CALL timing_start('tra_qsr_init') 
    381       ! 
    382       ! Default value for fraqsr_1lev 
    383       IF( .NOT. ln_rstart ) THEN 
    384          fraqsr_1lev(:,:) = 1._wp 
    385       ENDIF 
    386378      ! 
    387379      CALL wrk_alloc( jpi, jpj,      zekb, zekg, zekr        )  
     
    412404         WRITE(numout,*) '      RGB & 2 bands: shortess depth of extinction  rn_si0 = ', rn_si0 
    413405         WRITE(numout,*) '      2 bands: longest depth of extinction         rn_si1 = ', rn_si1 
    414          WRITE(numout,*) '      light penetration for ice-model LIM3     ln_qsr_ice = ', ln_qsr_ice     
    415406      ENDIF 
    416407 
     
    499490                
    500491                  DO jk = 2, nksr+1 
    501 !CDIR NOVERRCHK 
    502492                     DO jj = 1, jpj 
    503 !CDIR NOVERRCHK    
    504493                        DO ji = 1, jpi 
    505494                           zc0 = ze0(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * xsi0r     ) 
     
    564553      ENDIF 
    565554      ! 
     555      ! initialisation of fraqsr_1lev used in sbcssm 
     556      IF( iom_varid( numror, 'fraqsr_1lev', ldstop = .FALSE. ) > 0 ) THEN 
     557         CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev'  , fraqsr_1lev  ) 
     558      ELSE 
     559         fraqsr_1lev(:,:) = 1._wp   ! default definition 
     560      ENDIF 
     561      ! 
    566562      CALL wrk_dealloc( jpi, jpj,      zekb, zekg, zekr        )  
    567563      CALL wrk_dealloc( jpi, jpj, jpk, ze0, ze1, ze2, ze3, zea )  
Note: See TracChangeset for help on using the changeset viewer.