Changeset 11404


Ignore:
Timestamp:
2019-08-06T11:15:02+02:00 (14 months ago)
Author:
mattmartin
Message:

Included control of the STOPACK options so that it can be switched on/off with the main ln_stopack logical.

Location:
branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/CONFIG/SHARED/field_def.xml

    r8308 r11404  
    125125         <field id="Age"        long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact"  unit="yr" grid_ref="grid_T_3D"   /> 
    126126         <field id="Age_e3t"    long_name="Age * e3t"                                 unit="yr * m"  > Age * e3t </field > 
     127 
     128         <!-- variables available with ln_stopack set to .true. -->          
     129         <field id="sppt_ran" long_name="Random field for SPPT" standard_name="sppt_random_field" unit="0-1"     /> 
     130         <field id="skeb_ran" long_name="Random field for SKEB" standard_name="skeb_random_field" unit="0-1"     /> 
     131         <field id="spp_ran" long_name="Random field for SPP" standard_name="spp_random_field" unit="0-1"     /> 
     132         <field id="sppt_ar1" long_name="Perturbation field for SPPT" standard_name="sppt_perturb_field" unit="0-1" grid_ref="grid_T_3D"/> 
     133         <field id="spp_ar1" long_name="Perturbation field for SPP" standard_name="spp_perturb_field" unit="0-1" /> 
     134         <field id="skeb_ar1" long_name="Perturbation field for SKEB" standard_name="skeb_perturb_field" unit="0-1" /> 
     135 
     136         <!-- The following ones only when ln_stopack_diags is TRUE --> 
     137 
     138         <field id="spp_par01" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     139         <field id="spp_par02" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     140         <field id="spp_par03" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     141         <field id="spp_par04" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     142         <field id="spp_par05" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     143         <field id="spp_par06" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     144         <field id="spp_par07" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     145         <field id="spp_par08" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     146         <field id="spp_par09" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     147         <field id="spp_par10" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     148         <field id="spp_par11" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     149         <field id="spp_par12" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     150         <field id="spp_par13" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     151         <field id="spp_par14" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     152         <field id="spp_par15" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     153         <field id="spp_par16" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     154         <field id="spp_par17" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     155         <field id="spp_par18" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     156         <field id="spp_par19" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     157         <field id="spp_par20" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     158         <field id="spp_par21" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     159         <field id="spp_par22" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     160         <field id="spp_par23" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     161         <field id="spp_par24" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     162         <field id="spp_par25" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     163         <field id="spp_par26" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     164         <field id="spp_par27" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     165         <field id="spp_par28" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     166         <field id="spp_par29" long_name="Sample parameter SPP" standard_name="spp_pert_paramter" unit="0-1"     /> 
     167 
     168         <field id="ustar_skeb" long_name="Sea Water X Velocity Perturbation" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 
     169         <field id="vstar_skeb" long_name="Sea Water Y Velocity Perturbation" standard_name="sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 
     170 
    127171      </field_group> 
    128172 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf.F90

    r11394 r11404  
    7777 
    7878#if defined key_dynldf_c3d 
    79          IF( kt .eq. nit000 .and. (nn_spp_ahm1+nn_spp_ahm2) .gt. 0 ) THEN 
     79         IF( kt == nit000 .AND. ln_stopack .AND. & 
     80            & ( (nn_spp_ahm1+nn_spp_ahm2) > 0 ) ) THEN 
    8081             ALLOCATE ( ahm10(jpi,jpj,jpk), ahm20(jpi,jpj,jpk) ) 
    8182             ALLOCATE ( ahm30(jpi,jpj,jpk), ahm40(jpi,jpj,jpk) ) 
     
    8788#endif 
    8889#if defined key_dynldf_c2d 
    89          IF( kt .eq. nit000 .and. (nn_spp_ahm1+nn_spp_ahm2) .gt. 0 ) THEN 
     90         IF( kt == nit000 .AND. ln_stopack .AND. & 
     91            & ( (nn_spp_ahm1+nn_spp_ahm2) > 0 ) ) THEN 
    9092             ALLOCATE ( ahm10(jpi,jpj), ahm20(jpi,jpj) ) 
    9193             ALLOCATE ( ahm30(jpi,jpj), ahm40(jpi,jpj) ) 
     
    98100 
    99101#if defined key_traldf_c3d || defined key_traldf_c2d 
    100          IF( nn_spp_ahm1 .GT. 0) THEN 
    101            IF( ln_dynldf_lap ) THEN 
    102              ahm1 = ahm10 
    103              CALL spp_ahm(kt,ahm1,nn_spp_ahm1,rn_ahm1_sd,jk_spp_ahm1) 
    104            ENDIF 
    105            IF( ln_dynldf_bilap ) THEN 
    106              ahm3 = ahm30 
    107              CALL spp_ahm(kt,ahm3,nn_spp_ahm1,rn_ahm1_sd,jk_spp_ahm3) 
    108            ENDIF 
    109          ENDIF 
    110          IF( nn_spp_ahm2 .GT. 0) THEN 
    111            IF( ln_dynldf_lap ) THEN 
    112              ahm2 = ahm20 
    113              CALL spp_ahm(kt,ahm2,nn_spp_ahm2,rn_ahm2_sd,jk_spp_ahm2) 
    114            ENDIF 
    115            IF( ln_dynldf_bilap ) THEN 
    116              ahm4 = ahm40 
    117              CALL spp_ahm(kt,ahm4,nn_spp_ahm2,rn_ahm2_sd,jk_spp_ahm4) 
    118            ENDIF 
     102         IF( ln_stopack ) THEN 
     103            IF( nn_spp_ahm1 > 0 ) THEN 
     104               IF( ln_dynldf_lap ) THEN 
     105                  ahm1 = ahm10 
     106                  CALL spp_ahm(kt,ahm1,nn_spp_ahm1,rn_ahm1_sd,jk_spp_ahm1) 
     107               ENDIF 
     108               IF( ln_dynldf_bilap ) THEN 
     109                  ahm3 = ahm30 
     110                  CALL spp_ahm(kt,ahm3,nn_spp_ahm1,rn_ahm1_sd,jk_spp_ahm3) 
     111               ENDIF 
     112            ENDIF 
     113            IF( nn_spp_ahm2 > 0 ) THEN 
     114               IF( ln_dynldf_lap ) THEN 
     115               ahm2 = ahm20 
     116               CALL spp_ahm(kt,ahm2,nn_spp_ahm2,rn_ahm2_sd,jk_spp_ahm2) 
     117               ENDIF 
     118               IF( ln_dynldf_bilap ) THEN 
     119                  ahm4 = ahm40 
     120                  CALL spp_ahm(kt,ahm4,nn_spp_ahm2,rn_ahm2_sd,jk_spp_ahm4) 
     121               ENDIF 
     122            ENDIF 
    119123         ENDIF 
    120124#endif 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90

    r11394 r11404  
    156156            END DO 
    157157             
    158             IF ( nn_spp_icealb > 0 ) CALL spp_gen( 1, pa_ice_cs(:,:,jl), nn_spp_icealb, rn_icealb_sd, jk_spp_alb, jl ) 
     158            IF ( ln_stopack .AND. nn_spp_icealb > 0 ) & 
     159               & CALL spp_gen( 1, pa_ice_cs(:,:,jl), nn_spp_icealb, rn_icealb_sd, jk_spp_alb, jl ) 
    159160                         
    160161         END DO 
     
    214215            END DO 
    215216             
    216             IF ( nn_spp_icealb > 0 ) CALL spp_gen( 1, pa_ice_os(:,:,jl), nn_spp_icealb, rn_icealb_sd, jk_spp_alb, jl ) 
     217            IF ( ln_stopack .AND. nn_spp_icealb > 0 ) & 
     218               & CALL spp_gen( 1, pa_ice_os(:,:,jl), nn_spp_icealb, rn_icealb_sd, jk_spp_alb, jl ) 
    217219             
    218220         END DO 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r11394 r11404  
    205205      ENDIF 
    206206 
    207       IF( nn_spp_relw > 0 ) THEN 
    208          rn_vfac0 = rn_vfac 
     207      IF( ln_stopack .AND. nn_spp_relw > 0 ) THEN 
     208         rn_vfac0(:,:) = rn_vfac 
    209209         CALL spp_gen(kt, rn_vfac0, nn_spp_relw, rn_relw_sd, jk_spp_relw ) 
    210210      ENDIF 
     
    661661      DO jl = 1, jpl 
    662662         qevap_ice(:,:,jl) = 0._wp ! should be -evap_ice(:,:,jl)*( ( Tice - rt0 ) * cpic * tmask(:,:,1) ) 
    663                                    ! But we do not have Tice => consider it at 0°C => evap=0  
     663                                   ! But we do not have Tice => consider it at 0 degC => evap=0  
    664664      END DO 
    665665 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90

    r11394 r11404  
    9999 
    100100               CALL wrk_alloc( jpi, jpj, rn_dqdt_s) 
    101                rn_dqdt_s=rn_dqdt 
    102  
    103                IF( nn_spp_dqdt > 0 ) CALL spp_gen(kt, rn_dqdt_s,nn_spp_dqdt,rn_dqdt_sd,jk_spp_dqdt ) 
     101               rn_dqdt_s(:,:) = rn_dqdt 
     102 
     103               IF( ln_stopack .AND. nn_spp_dqdt > 0 ) & 
     104                  & CALL spp_gen(kt, rn_dqdt_s,nn_spp_dqdt,rn_dqdt_sd,jk_spp_dqdt ) 
    104105               DO jj = 1, jpj 
    105106                  DO ji = 1, jpi 
     
    115116            IF( nn_sssr == 1 ) THEN                                   !* Salinity damping term (salt flux only (sfx)) 
    116117               CALL wrk_alloc( jpi, jpj, zsrp) 
    117                zsrp = rn_deds 
    118                IF( nn_spp_dedt > 0 ) CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 
     118               zsrp(:,:) = rn_deds 
     119               IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 
     120                  & CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 
    119121!CDIR COLLAPSE 
    120122               DO jj = 1, jpj 
     
    131133            ELSEIF( nn_sssr == 2 ) THEN                               !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 
    132134               CALL wrk_alloc( jpi, jpj, zsrp) 
    133                zsrp = rn_deds 
    134                IF( nn_spp_dedt > 0 ) CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 
     135               zsrp(:,:) = rn_deds 
     136               IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 
     137                  & CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 
    135138               zerp_bnd = rn_sssr_bnd / rday                          !       -              -     
    136139!CDIR COLLAPSE 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/STO/stopack.F90

    r11394 r11404  
    22472247          CALL lbc_lnk(dpsiu,'T',1._wp) 
    22482248#ifdef key_iomput 
    2249           CALL iom_put( "bsft" , dpsiu ) 
     2249          !CALL iom_put( "bsft" , dpsiu ) 
    22502250#endif 
    22512251      ENDIF 
     
    22532253          CALL lbc_lnk(dpsiv,'T',1._wp) 
    22542254#ifdef key_iomput 
    2255           CALL iom_put( "bsftv" , dpsiv ) 
     2255          !CALL iom_put( "bsftv" , dpsiv ) 
    22562256#endif 
    22572257      ENDIF 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90

    r11394 r11404  
    9292      !                             !  Add the geothermal heat flux trend on temperature 
    9393 
    94       IF( nn_spp_geot .GT. 0) THEN 
    95           qgh_trd1 = qgh_trd0 
    96           CALL spp_gen(kt, qgh_trd0, nn_spp_geot, rn_geot_sd, jk_spp_geot) 
     94      IF( ln_stopack .AND. nn_spp_geot > 0) THEN 
     95          qgh_trd1(:,:) = qgh_trd0(:,:) 
     96          CALL spp_gen(kt, qgh_trd1, nn_spp_geot, rn_geot_sd, jk_spp_geot) 
    9797      ENDIF 
    9898      DO jj = 2, jpjm1 
     
    200200            ! 
    201201         END SELECT 
    202          qgh_trd1 = qgh_trd0 
     202         qgh_trd1(:,:) = qgh_trd0(:,:) 
    203203         ! 
    204204      ELSE 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r11394 r11404  
    198198      ALLOCATE(zptb(1:jpi, 1:jpj)) 
    199199      ! 
    200       ahu_bbl_1 = ahu_bbl 
    201       IF( nn_spp_ahubbl .GT. 0 ) THEN 
     200      ahu_bbl_1(:,:) = ahu_bbl(:,:) 
     201      IF( ln_stopack .AND. nn_spp_ahubbl > 0 ) THEN 
    202202          CALL spp_gen(1 , ahu_bbl_1, nn_spp_ahubbl, rn_ahubbl_sd, jk_spp_ahubbl ) 
    203203      ENDIF 
    204       ahv_bbl_1 = ahv_bbl 
    205       IF( nn_spp_ahvbbl .GT. 0 ) THEN 
     204      ahv_bbl_1(:,:) = ahv_bbl(:,:) 
     205      IF( ln_stopack .AND. nn_spp_ahvbbl > 0 ) THEN 
    206206          CALL spp_gen(1 , ahv_bbl_1, nn_spp_ahvbbl, rn_ahvbbl_sd, jk_spp_ahvbbl ) 
    207207      ENDIF 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90

    r11394 r11404  
    8484 
    8585#if defined key_traldf_c3d 
    86          IF( kt .eq. nit000 .and. (nn_spp_ahtu+nn_spp_ahtv+nn_spp_ahtw+nn_spp_ahtt) .gt. 0 ) THEN 
     86         IF( ( kt == nit000 ) .AND. & 
     87            & ln_stopack .AND. & 
     88            & (nn_spp_ahtu+nn_spp_ahtv+nn_spp_ahtw+nn_spp_ahtt) > 0 ) THEN 
    8789             ALLOCATE ( ahtu0(jpi,jpj,jpk), ahtv0(jpi,jpj,jpk) ) 
    8890             ALLOCATE ( ahtt0(jpi,jpj,jpk), ahtw0(jpi,jpj,jpk) ) 
     
    9496#endif 
    9597#if defined key_traldf_c2d 
    96          IF( kt .eq. nit000 .and. (nn_spp_ahtu+nn_spp_ahtv+nn_spp_ahtw+nn_spp_ahtt) .gt. 0 ) THEN 
     98         IF( ( kt == nit000 ) .AND. & 
     99            & ln_stopack .AND. & 
     100            & (nn_spp_ahtu+nn_spp_ahtv+nn_spp_ahtw+nn_spp_ahtt) > 0 ) THEN 
    97101             ALLOCATE ( ahtu0(jpi,jpj), ahtv0(jpi,jpj) ) 
    98102             ALLOCATE ( ahtt0(jpi,jpj), ahtw0(jpi,jpj) ) 
     
    104108#endif 
    105109#if defined key_traldf_c3d || defined key_traldf_c2d 
    106          IF( nn_spp_ahtu .GT. 0) THEN 
     110         IF( ln_stopack .AND. ( nn_spp_ahtu > 0 ) ) THEN 
    107111             ahtu = ahtu0 
    108112             CALL spp_aht(kt,ahtu,nn_spp_ahtu,rn_ahtu_sd,jk_spp_ahtu) 
    109113         ENDIF 
    110          IF( nn_spp_ahtv .GT. 0) THEN 
     114         IF( ln_stopack .AND. ( nn_spp_ahtv > 0 ) ) THEN 
    111115             ahtv = ahtv0 
    112116             CALL spp_aht(kt,ahtv,nn_spp_ahtv,rn_ahtv_sd,jk_spp_ahtv) 
    113117         ENDIF 
    114          IF( nn_spp_ahtw .GT. 0) THEN 
     118         IF( ln_stopack .AND. ( nn_spp_ahtw > 0 ) ) THEN 
    115119             ahtw = ahtw0 
    116120             CALL spp_aht(kt,ahtw,nn_spp_ahtw,rn_ahtw_sd,jk_spp_ahtw) 
    117121         ENDIF 
    118          IF( nn_spp_ahtt .GT. 0) THEN 
     122         IF( ln_stopack .AND. ( nn_spp_ahtt > 0 ) ) THEN 
    119123             ahtt = ahtt0 
    120124             CALL spp_aht(kt,ahtt,nn_spp_ahtt,rn_ahtt_sd,jk_spp_ahtt) 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r11400 r11404  
    184184         ! 
    185185         !  
    186          IF( nn_spp_qsi0 > 0 ) THEN 
     186         IF( ln_stopack .AND. ( nn_spp_qsi0 > 0 ) ) THEN 
    187187             xsi0r = rn_si0 
    188188             CALL spp_gen(kt, xsi0r, nn_spp_qsi0, rn_qsi0_sd, jk_spp_qsi0 ) 
     
    317317            !                                             ! ------------------------- ! 
    318318            ! 
    319             IF( lk_vvl .OR. nn_spp_qsi0 > 0 ) THEN        !* variable volume 
     319            IF( lk_vvl .OR. ( ln_stopack .AND. ( nn_spp_qsi0 > 0 ) ) ) THEN        !* variable volume 
    320320 
    321321               zz0   =        rn_abs   * r1_rau0_rcp 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRD/trddyn.F90

    r11394 r11404  
    6969      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    7070      IF( ln_dyn_trd )   CALL trd_dyn_iom( putrd, pvtrd, ktrd, kt ) 
    71       IF( ln_dyn_trd .AND. ln_sppt_dyn ) CALL dyn_sppt_collect( putrd, pvtrd, ktrd, kt ) 
     71      IF( ln_dyn_trd .AND. ln_stopack .AND. ln_sppt_dyn ) & 
     72         & CALL dyn_sppt_collect( putrd, pvtrd, ktrd, kt ) 
    7273          
    7374      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r11394 r11404  
    250250      !                   ! 3D output of tracers trends using IOM interface 
    251251      IF( ln_tra_trd )   CALL trd_tra_iom ( ptrdx, ptrdy, ktrd, kt ) 
    252       IF( ln_tra_trd .AND. ln_sppt_tra )  CALL tra_sppt_collect( ptrdx, ptrdy, ktrd, kt ) 
     252      IF( ln_tra_trd .AND. ln_stopack .AND. ln_sppt_tra )  & 
     253         & CALL tra_sppt_collect( ptrdx, ptrdy, ktrd, kt ) 
    253254 
    254255      !  Integral Constraints Properties for tracers trends                                       !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r11394 r11404  
    108108      ENDIF 
    109109      !  
    110       IF( nn_spp_bfr > 0 ) THEN 
     110      IF( ln_stopack .AND. ( nn_spp_bfr > 0 ) ) THEN 
    111111         bfrcoef2d = bfrcoef2d0 
    112112         CALL spp_gen(kt, bfrcoef2d, nn_spp_bfr, rn_bfr_sd, jk_spp_bfr) 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90

    r11394 r11404  
    7777      zavt_evd(:,:,:) = avt(:,:,:)           ! set avt prior to evd application 
    7878 
    79       IF(nn_spp_aevd.GT.0) THEN 
     79      IF( ln_stopack .AND. ( nn_spp_aevd > 0 ) ) THEN 
    8080         rn_avevd0(:,:) = rn_avevd 
    8181         CALL spp_gen(kt, rn_avevd0, nn_spp_aevd, rn_aevd_sd, jk_spp_aevd) 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r11394 r11404  
    807807            END DO 
    808808         END DO 
    809          IF(nn_spp_avt > 0 ) CALL spp_gen(kt,avt(:,:,jk),nn_spp_avt,rn_avt_sd,jk) 
    810          IF(nn_spp_avm > 0 ) CALL spp_gen(kt,avm(:,:,jk),nn_spp_avm,rn_avm_sd,jk) 
     809         IF( ln_stopack) THEN 
     810            IF( nn_spp_avt > 0 ) CALL spp_gen(kt,avt(:,:,jk),nn_spp_avt,rn_avt_sd,jk) 
     811            IF( nn_spp_avm > 0 ) CALL spp_gen(kt,avm(:,:,jk),nn_spp_avm,rn_avm_sd,jk) 
     812         ENDIF  
    811813      END DO 
    812814      ! 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r11400 r11404  
    186186      ENDIF 
    187187      ! 
    188       IF( nn_spp_tkelc > 0 ) THEN 
    189           rn_lc0 = rn_lc 
    190           CALL spp_gen(kt,rn_lc0,nn_spp_tkelc,rn_tkelc_sd,    jk_spp_tkelc ) 
    191       ENDIF 
    192       IF( nn_spp_tkedf > 0 ) THEN 
    193           rn_ediff0 = rn_ediff 
    194           CALL spp_gen(kt,rn_ediff0,nn_spp_tkedf,rn_tkedf_sd, jk_spp_tkedf ) 
    195       ENDIF 
    196       IF( nn_spp_tkeds > 0 ) THEN 
    197           rn_ediss0 = rn_ediss 
    198           CALL spp_gen(kt,rn_ediss0,nn_spp_tkeds,rn_tkeds_sd, jk_spp_tkeds ) 
    199       ENDIF 
    200       IF( nn_spp_tkebb > 0 ) THEN 
    201           rn_ebb0 = rn_ebb 
    202           CALL spp_gen(kt,rn_ebb0,nn_spp_tkebb,rn_tkebb_sd,   jk_spp_tkebb ) 
    203       ENDIF 
    204       IF( nn_spp_tkefr > 0 ) THEN 
    205           rn_efr0 = rn_efr 
    206           CALL spp_gen(kt,rn_efr0,nn_spp_tkefr,rn_tkefr_sd,   jk_spp_tkefr ) 
     188      IF( ln_stopack) THEN 
     189         IF( nn_spp_tkelc > 0 ) THEN 
     190             rn_lc0 = rn_lc 
     191             CALL spp_gen(kt,rn_lc0,nn_spp_tkelc,rn_tkelc_sd,    jk_spp_tkelc ) 
     192         ENDIF 
     193         IF( nn_spp_tkedf > 0 ) THEN 
     194             rn_ediff0 = rn_ediff 
     195             CALL spp_gen(kt,rn_ediff0,nn_spp_tkedf,rn_tkedf_sd, jk_spp_tkedf ) 
     196         ENDIF 
     197         IF( nn_spp_tkeds > 0 ) THEN 
     198             rn_ediss0 = rn_ediss 
     199             CALL spp_gen(kt,rn_ediss0,nn_spp_tkeds,rn_tkeds_sd, jk_spp_tkeds ) 
     200         ENDIF 
     201         IF( nn_spp_tkebb > 0 ) THEN 
     202             rn_ebb0 = rn_ebb 
     203             CALL spp_gen(kt,rn_ebb0,nn_spp_tkebb,rn_tkebb_sd,   jk_spp_tkebb ) 
     204        ENDIF 
     205         IF( nn_spp_tkefr > 0 ) THEN 
     206             rn_efr0 = rn_efr 
     207             CALL spp_gen(kt,rn_efr0,nn_spp_tkefr,rn_tkefr_sd,   jk_spp_tkefr ) 
     208         ENDIF 
    207209      ENDIF 
    208210      ! 
     
    736738            END DO 
    737739         END DO 
    738          IF(nn_spp_avt > 0 ) CALL spp_gen(1 ,avt(:,:,jk),nn_spp_avt,rn_avt_sd, jk_spp_avt, jk) 
    739          IF(nn_spp_avm > 0 ) CALL spp_gen(1 ,avm(:,:,jk),nn_spp_avm,rn_avm_sd, jk_spp_avm, jk) 
     740         IF( ln_stopack) THEN 
     741            IF(nn_spp_avt > 0 ) CALL spp_gen(1 ,avt(:,:,jk),nn_spp_avt,rn_avt_sd, jk_spp_avt, jk) 
     742            IF(nn_spp_avm > 0 ) CALL spp_gen(1 ,avm(:,:,jk),nn_spp_avm,rn_avm_sd, jk_spp_avm, jk) 
     743         ENDIF 
    740744      END DO 
    741745      CALL lbc_lnk( avm, 'W', 1. )      ! Lateral boundary conditions (sign unchanged) 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/step.F90

    r11394 r11404  
    127127      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    128128 
    129       IF( ln_sto_eos )   CALL sto_par( kstp )          ! Stochastic parameters 
    130       IF( ln_sto_eos )   CALL sto_pts( tsn  )          ! Random T/S fluctuations 
    131       IF( ln_skeb  )     CALL skeb_comp( kstp ) 
     129      IF( ln_sto_eos )                 CALL sto_par( kstp )   ! Stochastic parameters 
     130      IF( ln_sto_eos )                 CALL sto_pts( tsn  )   ! Random T/S fluctuations 
     131      IF( ln_stopack .AND. ln_skeb  )  CALL skeb_comp( kstp ) ! Stochastic Energy Backscatter 
    132132 
    133133      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    153153      ENDIF 
    154154      IF( ln_rnf_mouth ) THEN                         ! increase diffusivity at rivers mouths 
    155          IF ( nn_spp_arnf .GT. 0 ) THEN 
     155         IF ( ln_stopack .AND. ( nn_spp_arnf > 0 ) ) THEN 
    156156              rn_avt_rnf0 = rn_avt_rnf 
    157157              CALL spp_gen( kstp, rn_avt_rnf0,nn_spp_arnf,rn_arnf_sd,jk_spp_arnf ) 
     
    226226          IF(  lk_asminc .AND. ln_asmiau .AND. & 
    227227             & ln_dyninc       )  CALL dyn_asm_inc   ( kstp )   ! apply dynamics assimilation increment 
    228           IF( ln_sppt_dyn )       CALL dyn_sppt_apply( kstp, 0 ) 
     228          IF( ln_stopack .AND. ln_sppt_dyn ) & 
     229             &                    CALL dyn_sppt_apply( kstp, 0 ) 
    229230          IF( ln_neptsimp )       CALL dyn_nept_cor  ( kstp )   ! subtract Neptune velocities (simplified) 
    230231          IF( lk_bdy           )  CALL bdy_dyn3d_dmp ( kstp )   ! bdy damping trends 
     
    274275                             tsa(:,:,:,:) = 0.e0            ! set tracer trends to zero 
    275276 
    276       IF( ln_sppt_tra )      CALL tra_sppt_apply ( kstp, 0 ) 
     277      IF( ln_stopack .AND. ln_sppt_tra ) & 
     278         &                   CALL tra_sppt_apply ( kstp, 0 ) 
    277279      IF( lk_asminc .AND. ln_asmiau .AND. & 
    278280        & ln_trainc      )   CALL tra_asm_inc( kstp )       ! apply tracer assimilation increment 
     
    293295      IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_tra          ! tracers sponge 
    294296#endif 
    295       IF( ln_sppt_tra )      CALL tra_sppt_apply ( kstp, 1 ) 
     297      IF( ln_stopack .AND. ln_sppt_tra ) & 
     298         &                   CALL tra_sppt_apply ( kstp, 1 ) 
    296299                             CALL tra_zdf    ( kstp )       ! vertical mixing and after tracer fields 
    297300 
     
    299302         IF( ln_zdfnpc   )   CALL tra_npc( kstp )                ! update after fields by non-penetrative convection 
    300303                             CALL tra_nxt( kstp )                ! tracer fields at next time step 
    301          IF( ln_sppt_tra )   CALL tra_sppt_apply ( kstp, 2 ) 
     304         IF( ln_stopack .AND. ln_sppt_tra ) & 
     305            &                CALL tra_sppt_apply ( kstp, 2 ) 
    302306                             CALL eos    ( tsa, rhd, rhop, fsdept_n(:,:,:) )  ! Time-filtered in situ density for hpg computation 
    303307            IF( ln_zps .AND. .NOT. ln_isfcav)                                & 
     
    323327                             CALL tra_nxt( kstp )                ! tracer fields at next time step 
    324328         IF( ln_bias )       CALL dyn_bias( kstp ) 
    325          IF( ln_sppt_tra )   THEN 
     329         IF( ln_stopack .AND. ln_sppt_tra )   THEN 
    326330                                CALL tra_sppt_apply ( kstp, 2 ) 
    327331                                CALL eos    ( tsn, rhd, rhop, fsdept_n(:,:,:) )  ! now in situ density for hpg computation 
     
    350354 
    351355                               CALL dyn_bfr( kstp )         ! bottom friction 
    352             IF( ln_sppt_dyn )  CALL dyn_sppt_apply ( kstp, 1 ) 
     356            IF( ln_stopack .AND. ln_sppt_dyn ) & 
     357               &               CALL dyn_sppt_apply ( kstp, 1 ) 
    353358                               CALL dyn_zdf( kstp )         ! vertical diffusion 
    354359      ELSE 
     
    358363        IF(  lk_asminc .AND. ln_asmiau .AND. & 
    359364           & ln_dyninc      )  CALL dyn_asm_inc( kstp )     ! apply dynamics assimilation increment 
    360         IF( ln_sppt_dyn )      CALL dyn_sppt_apply ( kstp, 0 ) 
     365        IF( ln_stopack .AND. ln_sppt_dyn ) & 
     366           &                   CALL dyn_sppt_apply ( kstp, 0 ) 
    361367        IF( ln_bkgwri )        CALL asm_bkg_wri( kstp )     ! output background fields 
    362368        IF( ln_neptsimp )      CALL dyn_nept_cor( kstp )    ! subtract Neptune velocities (simplified) 
     
    371377                               CALL dyn_hpg( kstp )         ! horizontal gradient of Hydrostatic pressure 
    372378                               CALL dyn_bfr( kstp )         ! bottom friction 
    373             IF( ln_sppt_dyn )  CALL dyn_sppt_apply ( kstp, 1 ) 
     379            IF( ln_stopack .AND. ln_sppt_dyn ) & 
     380               &               CALL dyn_sppt_apply ( kstp, 1 ) 
    374381                               CALL dyn_zdf( kstp )         ! vertical diffusion 
    375382                               CALL dyn_spg( kstp, indic )  ! surface pressure gradient 
    376383      ENDIF 
    377384                               CALL dyn_nxt( kstp )         ! lateral velocity at next time step 
    378             IF( ln_sppt_dyn )  CALL dyn_sppt_apply ( kstp, 2 ) 
    379             IF( ln_skeb )      CALL skeb_apply ( kstp ) 
     385            IF( ln_stopack .AND. ln_sppt_dyn ) & 
     386               &               CALL dyn_sppt_apply ( kstp, 2 ) 
     387            IF( ln_stopack .AND. ln_skeb ) & 
     388               &               CALL skeb_apply ( kstp ) 
    380389 
    381390                               CALL ssh_swp( kstp )         ! swap of sea surface height 
Note: See TracChangeset for help on using the changeset viewer.