Changeset 7798 for branches/UKMO
- Timestamp:
- 2017-03-16T11:00:52+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_v3.6_asm_nemovar_community_maxchlinc/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_ersem.F90
r7791 r7798 29 29 CONTAINS 30 30 31 SUBROUTINE asm_logchl_bal_ersem( l n_logchlpftinc, npfts, mld_choice_bgc, &32 & rn_maxchlinc, logchl_bkginc, logchl_balinc )31 SUBROUTINE asm_logchl_bal_ersem( ld_logchlpftinc, npfts, mld_choice_bgc, & 32 & k_maxchlinc, logchl_bkginc, logchl_balinc ) 33 33 !!--------------------------------------------------------------------------- 34 34 !! *** ROUTINE asm_logchl_bal_ersem *** … … 46 46 !!--------------------------------------------------------------------------- 47 47 !! 48 LOGICAL, INTENT(in ) :: l n_logchlpftinc48 LOGICAL, INTENT(in ) :: ld_logchlpftinc 49 49 INTEGER, INTENT(in ) :: npfts 50 50 INTEGER, INTENT(in ) :: mld_choice_bgc 51 REAL(wp), INTENT(in ) :: rn_maxchlinc51 REAL(wp), INTENT(in ) :: k_maxchlinc 52 52 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj,npfts) :: logchl_bkginc 53 53 REAL(wp), INTENT( out), DIMENSION(jpi,jpj,jpk,jptra) :: logchl_balinc … … 66 66 ! 2) Take 10^log10(analysis) to get analysis 67 67 ! 3) Subtract background from analysis to get chl incs 68 ! If rn_maxchlinc > 0 then cap total absolute chlorophyll increment at that value68 ! If k_maxchlinc > 0 then cap total absolute chlorophyll increment at that value 69 69 ! 70 70 ! Only apply increments if all of Chl1-4 background values are > 0 … … 72 72 ! that something's going wrong which the assimilation might make worse 73 73 ! 74 IF ( l n_logchlpftinc ) THEN74 IF ( ld_logchlpftinc ) THEN 75 75 ! 76 76 ! Assimilating separate PFTs, so separately transform each from LogChl to Chl … … 105 105 & trn(ji,jj,1,jp_fabm_m1+jp_fabm_chl4) 106 106 ENDIF 107 IF ( rn_maxchlinc > 0.0) THEN107 IF (k_maxchlinc > 0.0) THEN 108 108 chl_inc = logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl1) + & 109 109 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl2) + & 110 110 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl3) + & 111 111 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl4) 112 IF ( ABS(chl_inc) > rn_maxchlinc ) THEN113 chl_tot = ABS(chl_inc) / rn_maxchlinc112 IF ( ABS(chl_inc) > k_maxchlinc ) THEN 113 chl_tot = ABS(chl_inc) / k_maxchlinc 114 114 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl1) = logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl1) / chl_tot 115 115 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl2) = logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl2) / chl_tot … … 139 139 & trn(ji,jj,1,jp_fabm_m1+jp_fabm_chl3) + trn(ji,jj,1,jp_fabm_m1+jp_fabm_chl4) 140 140 chl_inc = 10**( LOG10( chl_tot ) + logchl_bkginc(ji,jj,1) ) - chl_tot 141 IF ( rn_maxchlinc > 0.0) THEN142 chl_inc = MAX( -1.0 * rn_maxchlinc, MIN( chl_inc, rn_maxchlinc ) )141 IF (k_maxchlinc > 0.0) THEN 142 chl_inc = MAX( -1.0 * k_maxchlinc, MIN( chl_inc, k_maxchlinc ) ) 143 143 ENDIF 144 144 logchl_balinc(ji,jj,1,jp_fabm_m1+jp_fabm_chl1) = chl_inc * trn(ji,jj,1,jp_fabm_m1+jp_fabm_chl1) / chl_tot … … 210 210 !!---------------------------------------------------------------------- 211 211 CONTAINS 212 SUBROUTINE asm_logchl_bal_ersem( l n_logchlpftinc, npfts, mld_choice_bgc, &213 & logchl_bkginc, logchl_balinc )214 LOGICAL :: l n_logchlpftinc212 SUBROUTINE asm_logchl_bal_ersem( ld_logchlpftinc, npfts, mld_choice_bgc, & 213 & k_maxchlinc, logchl_bkginc, logchl_balinc ) 214 LOGICAL :: ld_logchlpftinc 215 215 INTEGER :: npfts 216 216 INTEGER :: mld_choice_bgc 217 REAL :: k_maxchlinc 217 218 REAL :: logchl_bkginc(:,:,:) 218 219 REAL :: logchl_balinc(:,:,:,:)
Note: See TracChangeset
for help on using the changeset viewer.