Changeset 8648


Ignore:
Timestamp:
2017-10-20T15:31:59+02:00 (3 years ago)
Author:
dford
Message:

Change source of MLD for direct initialisation of logchl and pCO2 to work.

Location:
branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r8645 r8648  
    750750            CALL iom_get( inum, jpdom_autoglo, 'medusa_alk', tracer_bkg(:,:,:,jpalk) ) 
    751751#endif 
     752            CALL iom_get( inum, jpdom_autoglo, 'mld_max',   mld_max_bkg   ) 
     753            mld_max_bkg(:,:) = mld_max_bkg(:,:) * tmask(:,:,1) 
    752754         ENDIF 
    753755 
     
    761763 
    762764         ALLOCATE( tracer_bkg(jpi,jpj,jpk,jptra) ) 
     765         ALLOCATE( mld_max_bkg(jpi,jpj)          ) 
    763766         tracer_bkg(:,:,:,:) = 0.0 
     767         mld_max_bkg(:,:)    = 0.0 
    764768 
    765769         CALL iom_open( c_asmbkg, inum ) 
     
    772776         CALL iom_get( inum, jpdom_autoglo, 'medusa_alk', tracer_bkg(:,:,:,jpalk) ) 
    773777#endif 
     778         CALL iom_get( inum, jpdom_autoglo, 'mld_max',   mld_max_bkg   ) 
    774779 
    775780         CALL iom_close( inum ) 
     
    778783            tracer_bkg(:,:,:,jt) = tracer_bkg(:,:,:,jt) * tmask(:,:,:) 
    779784         END DO 
     785         mld_max_bkg(:,:) = mld_max_bkg(:,:) * tmask(:,:,1) 
    780786       
    781787      ENDIF 
     
    14281434#if defined key_medusa && defined key_foam_medusa 
    14291435         CALL asm_logchl_bal_medusa( logchl_bkginc, zincper, mld_choice_bgc, & 
    1430             &                        rn_maxchlinc, ln_logchlbal,             & 
     1436            &                        rn_maxchlinc, ln_logchlbal, ln_asmdin,  & 
    14311437            &                        pgrow_avg_bkg, ploss_avg_bkg,           & 
    14321438            &                        phyt_avg_bkg, mld_max_bkg,              & 
     
    14341440#elif defined key_hadocc 
    14351441         CALL asm_logchl_bal_hadocc( logchl_bkginc, zincper, mld_choice_bgc, & 
    1436             &                        rn_maxchlinc, ln_logchlbal,             & 
     1442            &                        rn_maxchlinc, ln_logchlbal, ln_asmdin,  & 
    14371443            &                        pgrow_avg_bkg, ploss_avg_bkg,           & 
    14381444            &                        phyt_avg_bkg, mld_max_bkg,              & 
     
    16371643 
    16381644         ! Select mixed layer 
    1639          SELECT CASE( mld_choice_bgc ) 
    1640          CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
    1641             zmld(:,:) = hmld(:,:) 
    1642          CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
    1643             zmld(:,:) = hmlp(:,:) 
    1644          CASE ( 3 )                   ! Kara MLD [Interpolated] 
     1645         IF ( ln_asmdin ) THEN 
     1646            CALL ctl_warn( ' Doing direct initialisation with pCO2 assimilation', & 
     1647               &           ' Mixed layer depth taken to be background maximum mld_max_bkg' ) 
     1648            zmld(:,:) = mld_max_bkg(:,:) 
     1649         ELSE 
     1650            SELECT CASE( mld_choice_bgc ) 
     1651            CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
     1652               zmld(:,:) = hmld(:,:) 
     1653            CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
     1654               zmld(:,:) = hmlp(:,:) 
     1655            CASE ( 3 )                   ! Kara MLD [Interpolated] 
    16451656#if defined key_karaml 
    1646             IF ( ln_kara ) THEN 
    1647                zmld(:,:) = hmld_kara(:,:) 
    1648             ELSE 
     1657               IF ( ln_kara ) THEN 
     1658                  zmld(:,:) = hmld_kara(:,:) 
     1659               ELSE 
     1660                  CALL ctl_stop( ' Kara mixed layer requested for pCO2 assimilation,', & 
     1661                     &           ' but ln_kara=.false.' ) 
     1662               ENDIF 
     1663#else 
    16491664               CALL ctl_stop( ' Kara mixed layer requested for pCO2 assimilation,', & 
    1650                   &           ' but ln_kara=.false.' ) 
    1651             ENDIF 
    1652 #else 
    1653             CALL ctl_stop( ' Kara mixed layer requested for pCO2 assimilation,', & 
    1654                &           ' but is not defined' ) 
    1655 #endif 
    1656          CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
    1657             !zmld(:,:) = hmld_tref(:,:) 
    1658             CALL ctl_stop( ' hmld_tref mixed layer requested for pCO2 assimilation,', & 
    1659                &           ' but is not available in this version' ) 
    1660          CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
    1661             zmld(:,:) = hmlpt(:,:) 
    1662          END SELECT 
     1665                  &           ' but is not defined' ) 
     1666#endif 
     1667            CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
     1668               !zmld(:,:) = hmld_tref(:,:) 
     1669               CALL ctl_stop( ' hmld_tref mixed layer requested for pCO2 assimilation,', & 
     1670                  &           ' but is not available in this version' ) 
     1671            CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
     1672               zmld(:,:) = hmlpt(:,:) 
     1673            END SELECT 
     1674         ENDIF 
    16631675 
    16641676         ! Propagate through mixed layer 
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_hadocc.F90

    r8495 r8648  
    6969 
    7070   SUBROUTINE asm_logchl_bal_hadocc( logchl_bkginc, aincper, mld_choice_bgc, & 
    71       &                              k_maxchlinc, ld_logchlbal,              & 
     71      &                              k_maxchlinc, ld_logchlbal, ld_asmdin,   & 
    7272      &                              pgrow_avg_bkg, ploss_avg_bkg,           & 
    7373      &                              phyt_avg_bkg, mld_max_bkg,              & 
     
    9393      REAL(wp), INTENT(in   )                               :: k_maxchlinc    ! Max chl increment 
    9494      LOGICAL,  INTENT(in   )                               :: ld_logchlbal   ! Balancing y/n 
     95      LOGICAL,  INTENT(in   )                               :: ld_asmdin      ! Direct initialisation y/n 
    9596      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: pgrow_avg_bkg  ! Avg phyto growth 
    9697      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: ploss_avg_bkg  ! Avg phyto loss 
     
    136137       
    137138      ! Select mixed layer 
    138       SELECT CASE( mld_choice_bgc ) 
    139       CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
    140          zmld(:,:) = hmld(:,:) 
    141       CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
    142          zmld(:,:) = hmlp(:,:) 
    143       CASE ( 3 )                   ! Kara MLD [Interpolated] 
     139      IF ( ld_asmdin ) THEN 
     140         CALL ctl_warn( ' Doing direct initialisation of HadOCC with chlorophyll assimilation', & 
     141            &           ' Mixed layer depth taken to be background maximum mld_max_bkg' ) 
     142         zmld(:,:) = mld_max_bkg(:,:) 
     143      ELSE 
     144         SELECT CASE( mld_choice_bgc ) 
     145         CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
     146            zmld(:,:) = hmld(:,:) 
     147         CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
     148            zmld(:,:) = hmlp(:,:) 
     149         CASE ( 3 )                   ! Kara MLD [Interpolated] 
    144150#if defined key_karaml 
    145          IF ( ln_kara ) THEN 
    146             zmld(:,:) = hmld_kara(:,:) 
    147          ELSE 
     151            IF ( ln_kara ) THEN 
     152               zmld(:,:) = hmld_kara(:,:) 
     153            ELSE 
     154               CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
     155                  &           ' but ln_kara=.false.' ) 
     156            ENDIF 
     157#else 
    148158            CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
    149                &           ' but ln_kara=.false.' ) 
    150          ENDIF 
    151 #else 
    152          CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
    153             &           ' but is not defined' ) 
     159               &           ' but is not defined' ) 
    154160#endif 
    155       CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
    156          !zmld(:,:) = hmld_tref(:,:) 
    157          CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', & 
    158             &           ' but is not available in this version' ) 
    159       CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
    160          zmld(:,:) = hmlpt(:,:) 
    161       END SELECT 
     161         CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
     162            !zmld(:,:) = hmld_tref(:,:) 
     163            CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', & 
     164               &           ' but is not available in this version' ) 
     165         CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
     166            zmld(:,:) = hmlpt(:,:) 
     167         END SELECT 
     168      ENDIF 
    162169       
    163170      IF ( ld_logchlbal ) THEN   ! Nitrogen balancing 
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_medusa.F90

    r8497 r8648  
    7171 
    7272   SUBROUTINE asm_logchl_bal_medusa( logchl_bkginc, aincper, mld_choice_bgc, & 
    73       &                              k_maxchlinc, ld_logchlbal,              & 
     73      &                              k_maxchlinc, ld_logchlbal, ld_asmdin,   & 
    7474      &                              pgrow_avg_bkg, ploss_avg_bkg,           & 
    7575      &                              phyt_avg_bkg, mld_max_bkg,              & 
     
    9696      REAL(wp), INTENT(in   )                               :: k_maxchlinc    ! Max chl increment 
    9797      LOGICAL,  INTENT(in   )                               :: ld_logchlbal   ! Balancing y/n 
     98      LOGICAL,  INTENT(in   )                               :: ld_asmdin      ! Direct initialisation y/n 
    9899      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: pgrow_avg_bkg  ! Avg phyto growth 
    99100      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: ploss_avg_bkg  ! Avg phyto loss 
     
    153154       
    154155      ! Select mixed layer 
    155       SELECT CASE( mld_choice_bgc ) 
    156       CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
    157          zmld(:,:) = hmld(:,:) 
    158       CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
    159          zmld(:,:) = hmlp(:,:) 
    160       CASE ( 3 )                   ! Kara MLD [Interpolated] 
     156      IF ( ld_asmdin ) THEN 
     157         CALL ctl_warn( ' Doing direct initialisation of MEDUSA with chlorophyll assimilation', & 
     158            &           ' Mixed layer depth taken to be background maximum mld_max_bkg' ) 
     159         zmld(:,:) = mld_max_bkg(:,:) 
     160      ELSE 
     161         SELECT CASE( mld_choice_bgc ) 
     162         CASE ( 1 )                   ! Turbocline/mixing depth [W points] 
     163            zmld(:,:) = hmld(:,:) 
     164         CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points] 
     165            zmld(:,:) = hmlp(:,:) 
     166         CASE ( 3 )                   ! Kara MLD [Interpolated] 
    161167#if defined key_karaml 
    162          IF ( ln_kara ) THEN 
    163             zmld(:,:) = hmld_kara(:,:) 
    164          ELSE 
     168            IF ( ln_kara ) THEN 
     169               zmld(:,:) = hmld_kara(:,:) 
     170            ELSE 
     171               CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
     172                  &           ' but ln_kara=.false.' ) 
     173            ENDIF 
     174#else 
    165175            CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
    166                &           ' but ln_kara=.false.' ) 
    167          ENDIF 
    168 #else 
    169          CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', & 
    170             &           ' but is not defined' ) 
     176               &           ' but is not defined' ) 
    171177#endif 
    172       CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
    173          !zmld(:,:) = hmld_tref(:,:) 
    174          CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', & 
    175             &           ' but is not available in this version' ) 
    176       CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
    177          zmld(:,:) = hmlpt(:,:) 
    178       END SELECT 
     178         CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points] 
     179            !zmld(:,:) = hmld_tref(:,:) 
     180            CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', & 
     181               &           ' but is not available in this version' ) 
     182         CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points] 
     183            zmld(:,:) = hmlpt(:,:) 
     184         END SELECT 
     185      ENDIF 
    179186       
    180187      IF ( ld_logchlbal ) THEN   ! Nitrogen balancing 
Note: See TracChangeset for help on using the changeset viewer.