Ignore:
Timestamp:
2018-02-16T18:31:39+01:00 (2 years ago)
Author:
dford
Message:

Add balancing code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_v3.6_asm_nemovar_community_ersem_hem08/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r7803 r9331  
    101101   LOGICAL, PUBLIC :: ln_logchltotinc = .FALSE. !: No total log10(chlorophyll) increment 
    102102   LOGICAL, PUBLIC :: ln_logchlpftinc = .FALSE. !: No PFT   log10(chlorophyll) increment 
     103   LOGICAL, PUBLIC :: ln_logchlbal = .FALSE. 
    103104   LOGICAL, PUBLIC :: ln_salfix = .FALSE.      !: Apply minimum salinity check 
    104105   LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing 
     
    131132   REAL(wp), PUBLIC, DIMENSION(:,:,:,:), ALLOCATABLE :: logchl_balinc  !: Increment to BGC variables from logchl assim 
    132133#endif 
     134   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: pgrow_avg_bkg   ! Background phyto growth 
     135   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: ploss_avg_bkg   ! Background phyto loss 
     136   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: phyt_avg_bkg    ! Background phyto conc 
     137   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: mld_max_bkg     ! Background max MLD 
    133138   REAL(wp) :: rn_maxchlinc = -999.0  !: maximum absolute non-log chlorophyll increment from logchl assimilation 
    134139                                      !: <= 0 implies no maximum applied (switch turned off) 
     
    206211      NAMELIST/nam_asminc/ ln_bkgwri, ln_balwri, ln_avgbkg,                & 
    207212         &                 ln_trainc, ln_dyninc, ln_sshinc,                & 
    208          &                 ln_logchltotinc, ln_logchlpftinc,               & 
     213         &                 ln_logchltotinc, ln_logchlpftinc, ln_logchlbal, & 
    209214         &                 ln_asmdin, ln_asmiau,                           & 
    210215         &                 nitbkg, nitdin, nitiaustr, nitiaufin, niaufn,   & 
     
    279284         WRITE(numout,*) '      Logical switch for applying total logchl incs      ln_logchltotinc = ', ln_logchltotinc 
    280285         WRITE(numout,*) '      Logical switch for applying PFT   logchl incs      ln_logchlpftinc = ', ln_logchlpftinc 
     286         WRITE(numout,*) '      Logical switch for applying balancing logchl incs     ln_logchlbal = ', ln_logchlbal 
    281287         WRITE(numout,*) '      Number of logchl PFTs assimilated                       nn_asmpfts = ', nn_asmpfts 
    282288         WRITE(numout,*) '      Logical switch for Incremental Analysis Updating (IAU)   ln_asmiau = ', ln_asmiau 
     
    769775 
    770776      ENDIF 
     777 
     778      IF ( ln_logchltotinc .OR. ln_logchlpftinc ) THEN 
     779 
     780         CALL iom_open( c_asmbkg, inum ) 
     781 
     782         ALLOCATE( pgrow_avg_bkg(jpi,jpj)        ) 
     783         ALLOCATE( ploss_avg_bkg(jpi,jpj)        ) 
     784         ALLOCATE( phyt_avg_bkg(jpi,jpj)         ) 
     785         ALLOCATE( mld_max_bkg(jpi,jpj)          ) 
     786         pgrow_avg_bkg(:,:)  = 0.0 
     787         ploss_avg_bkg(:,:)  = 0.0 
     788         phyt_avg_bkg(:,:)   = 0.0 
     789         mld_max_bkg(:,:)    = 0.0 
     790 
     791         CALL iom_get( inum, jpdom_autoglo, 'pgrow_avg', pgrow_avg_bkg ) 
     792         CALL iom_get( inum, jpdom_autoglo, 'ploss_avg', ploss_avg_bkg ) 
     793         CALL iom_get( inum, jpdom_autoglo, 'phyt_avg',  phyt_avg_bkg  ) 
     794         CALL iom_get( inum, jpdom_autoglo, 'mld_max',   mld_max_bkg   ) 
     795         pgrow_avg_bkg(:,:) = pgrow_avg_bkg(:,:) * tmask(:,:,1) 
     796         ploss_avg_bkg(:,:) = ploss_avg_bkg(:,:) * tmask(:,:,1) 
     797         phyt_avg_bkg(:,:)  = phyt_avg_bkg(:,:)  * tmask(:,:,1) 
     798         mld_max_bkg(:,:)   = mld_max_bkg(:,:)   * tmask(:,:,1) 
     799 
     800         CALL iom_close( inum ) 
     801 
     802      ENDIF 
    771803      ! 
    772804   END SUBROUTINE asm_inc_init 
     
    14121444#if defined key_fabm 
    14131445         CALL asm_logchl_bal_ersem( ln_logchlpftinc, nn_asmpfts, mld_choice_bgc, & 
    1414             &                       rn_maxchlinc, logchl_bkginc, logchl_balinc ) 
     1446            &                       rn_maxchlinc, logchl_bkginc, logchl_balinc,   & 
     1447            &                       pgrow_avg_bkg, ploss_avg_bkg,           & 
     1448            &                       phyt_avg_bkg, mld_max_bkg,              & 
     1449            &                       ln_logchlbal, zincper ) 
    14151450#elif defined key_medusa && defined key_foam_medusa 
    14161451         !CALL asm_logchl_bal_medusa() 
Note: See TracChangeset for help on using the changeset viewer.