Ignore:
Timestamp:
2017-08-14T15:22:09+02:00 (3 years ago)
Author:
dford
Message:

Implement initial version of surface chlorophyll assimilation for MEDUSA.

File:
1 edited

Legend:

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

    r8428 r8436  
    126126   REAL(wp), PUBLIC, DIMENSION(:,:,:,:), ALLOCATABLE :: logchl_balinc  !: Increment to BGC variables from logchl assim 
    127127#endif 
     128#if defined key_hadocc || (defined key_medusa && defined key_foam_medusa) 
     129   REAL(wp), DIMENSION(:,:), ALLOCATABLE :: pgrow_avg_bkg  !: Background phyto growth for logchl balancing 
     130   REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ploss_avg_bkg  !: Background phyto loss for logchl balancing 
     131   REAL(wp), DIMENSION(:,:), ALLOCATABLE :: phyt_avg_bkg   !: Background phyto for logchl balancing 
     132   REAL(wp), DIMENSION(:,:), ALLOCATABLE :: mld_max_bkg    !: Background max MLD for logchl balancing 
     133#endif 
    128134   REAL(wp) :: rn_maxchlinc = -999.0  !: maximum absolute non-log chlorophyll increment from logchl assimilation 
    129135                                      !: <= 0 implies no maximum applied (switch turned off) 
     
    620626 
    621627      ENDIF 
     628 
     629#if defined key_hadocc || (defined key_medusa && defined key_foam_medusa) 
     630      IF ( ln_logchlinc ) THEN 
     631 
     632         ALLOCATE( pgrow_avg_bkg(jpi,jpj) ) 
     633         ALLOCATE( ploss_avg_bkg(jpi,jpj) ) 
     634         ALLOCATE( phyt_avg_bkg(jpi,jpj)  ) 
     635         ALLOCATE( mld_max_bkg(jpi,jpj)   ) 
     636         pgrow_avg_bkg(:,:) = 0.0 
     637         ploss_avg_bkg(:,:) = 0.0 
     638         phyt_avg_bkg(:,:)  = 0.0 
     639         mld_max_bkg(:,:)   = 0.0 
     640          
     641         IF ( ln_logchlbal ) THEN 
     642          
     643            !-------------------------------------------------------------------- 
     644            ! Read background variables for logchl balancing 
     645            !-------------------------------------------------------------------- 
     646 
     647            CALL iom_open( c_asmbkg, inum ) 
     648 
     649            CALL iom_get( inum, jpdom_autoglo, 'pgrow_avg', pgrow_avg_bkg ) 
     650            CALL iom_get( inum, jpdom_autoglo, 'ploss_avg', ploss_avg_bkg ) 
     651            CALL iom_get( inum, jpdom_autoglo, 'phyt_avg',  phyt_avg_bkg  ) 
     652            CALL iom_get( inum, jpdom_autoglo, 'mld_max',   mld_max_bkg   ) 
     653            pgrow_avg_bkg(:,:) = pgrow_avg_bkg(:,:) * tmask(:,:,1) 
     654            ploss_avg_bkg(:,:) = ploss_avg_bkg(:,:) * tmask(:,:,1) 
     655            phyt_avg_bkg(:,:)  = phyt_avg_bkg(:,:)  * tmask(:,:,1) 
     656            mld_max_bkg(:,:)   = mld_max_bkg(:,:)   * tmask(:,:,1) 
     657 
     658            CALL iom_close( inum ) 
     659          
     660         ENDIF 
     661       
     662      ENDIF 
     663#endif 
    622664      ! 
    623665   END SUBROUTINE asm_inc_init 
     
    12661308 
    12671309#if defined key_medusa && defined key_foam_medusa 
    1268          !CALL asm_logchl_bal_medusa() 
    1269          CALL ctl_stop( 'Attempting to assimilate logchl into MEDUSA, ', & 
    1270             &           'but not fully implemented yet' ) 
     1310         CALL asm_logchl_bal_medusa( logchl_bkginc, zincper, mld_choice_bgc, & 
     1311            &                        rn_maxchlinc, ln_logchlbal,             & 
     1312            &                        pgrow_avg_bkg, ploss_avg_bkg,           & 
     1313            &                        phyt_avg_bkg, mld_max_bkg,              & 
     1314            &                        logchl_balinc ) 
    12711315#elif defined key_hadocc 
    12721316         CALL asm_logchl_bal_hadocc( logchl_bkginc, zincper, mld_choice_bgc, & 
    1273             &                        rn_maxchlinc, ln_logchlbal, logchl_balinc ) 
     1317            &                        rn_maxchlinc, ln_logchlbal,             & 
     1318            &                        pgrow_avg_bkg, ploss_avg_bkg,           & 
     1319            &                        phyt_avg_bkg, mld_max_bkg,              & 
     1320            &                        logchl_balinc ) 
    12741321#else 
    12751322         CALL ctl_stop( 'Attempting to assimilate logchl, ', & 
Note: See TracChangeset for help on using the changeset viewer.