Changeset 9326
- Timestamp:
- 2018-02-13T17:34:40+01:00 (7 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_asm_3d_bgc/NEMOGCM/NEMO/OPA_SRC/ASM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_asm_3d_bgc/NEMOGCM/NEMO/OPA_SRC/ASM/asmbgc.F90
r9322 r9326 19 19 !! asm_bgc_bal_wri : write out bgc balancing increments 20 20 !! asm_bgc_bkg_wri : write out bgc background 21 !! phyto_asm_inc : apply the ocean colour increments 21 !! phyto2d_asm_inc : apply the ocean colour increments 22 !! phyto3d_asm_inc : apply the 3D phytoplankton increments 22 23 !! pco2_asm_inc : apply the pCO2/fCO2 increments 23 24 !! ph_asm_inc : apply the pH increments … … 74 75 & asm_pco2_bal 75 76 USE par_hadocc ! HadOCC parameters 77 USE had_bgc_const ! HadOCC parameters 76 78 USE trc, ONLY: & ! HadOCC diagnostic variables 77 79 & pgrow_avg, & … … 94 96 PUBLIC asm_bgc_bal_wri ! called by nemo_gcm in nemogcm.F90 95 97 PUBLIC asm_bgc_bkg_wri ! called by asm_bkg_wri in asmbkg.F90 96 PUBLIC phyto_asm_inc ! called by bgc_asm_inc in asminc.F90 98 PUBLIC phyto2d_asm_inc ! called by bgc_asm_inc in asminc.F90 99 PUBLIC phyto3d_asm_inc ! called by bgc_asm_inc in asminc.F90 97 100 PUBLIC pco2_asm_inc ! called by bgc_asm_inc in asminc.F90 98 101 PUBLIC ph_asm_inc ! called by bgc_asm_inc in asminc.F90 … … 156 159 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: po2_bkginc ! po2 inc 157 160 #if defined key_top 158 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: phyto_balinc ! Balancing incs from ocean colour 161 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: phyto2d_balinc ! Balancing incs from ocean colour 162 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: phyto3d_balinc ! Balancing incs from p(l)chltot 159 163 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: pco2_balinc ! Balancing incs from spco2/sfco2 160 164 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: ph_balinc ! Balancing incs from pph … … 356 360 & ln_slphynoninc ) THEN 357 361 #if defined key_top 358 ALLOCATE( phyto_balinc(jpi,jpj,jpk,jptra) ) 359 phyto_balinc(:,:,:,:) = 0.0 362 ALLOCATE( phyto2d_balinc(jpi,jpj,jpk,jptra) ) 363 phyto2d_balinc(:,:,:,:) = 0.0 364 #else 365 CALL ctl_stop( ' key_top must be set for balancing increments' ) 366 #endif 367 ENDIF 368 369 IF ( ln_plchltotinc .OR. ln_pchltotinc ) THEN 370 #if defined key_top 371 ALLOCATE( phyto3d_balinc(jpi,jpj,jpk,jptra) ) 372 phyto3d_balinc(:,:,:,:) = 0.0 360 373 #else 361 374 CALL ctl_stop( ' key_top must be set for balancing increments' ) … … 653 666 IF ( ln_slchltotinc ) THEN 654 667 #if defined key_medusa 655 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_chn', phyto _balinc(:,:,:,jpchn) )656 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_chd', phyto _balinc(:,:,:,jpchd) )668 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_chn', phyto2d_balinc(:,:,:,jpchn) ) 669 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_chd', phyto2d_balinc(:,:,:,jpchd) ) 657 670 IF ( ln_phytobal ) THEN 658 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phn', phyto _balinc(:,:,:,jpphn) )659 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phd', phyto _balinc(:,:,:,jpphd) )660 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_pds', phyto _balinc(:,:,:,jppds) )661 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zmi', phyto _balinc(:,:,:,jpzmi) )662 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zme', phyto _balinc(:,:,:,jpzme) )663 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_din', phyto _balinc(:,:,:,jpdin) )664 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_sil', phyto _balinc(:,:,:,jpsil) )665 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_fer', phyto _balinc(:,:,:,jpfer) )666 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_det', phyto _balinc(:,:,:,jpdet) )667 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dtc', phyto _balinc(:,:,:,jpdtc) )668 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dic', phyto _balinc(:,:,:,jpdic) )669 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_alk', phyto _balinc(:,:,:,jpalk) )670 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_oxy', phyto _balinc(:,:,:,jpoxy) )671 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phn', phyto2d_balinc(:,:,:,jpphn) ) 672 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phd', phyto2d_balinc(:,:,:,jpphd) ) 673 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_pds', phyto2d_balinc(:,:,:,jppds) ) 674 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zmi', phyto2d_balinc(:,:,:,jpzmi) ) 675 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zme', phyto2d_balinc(:,:,:,jpzme) ) 676 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_din', phyto2d_balinc(:,:,:,jpdin) ) 677 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_sil', phyto2d_balinc(:,:,:,jpsil) ) 678 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_fer', phyto2d_balinc(:,:,:,jpfer) ) 679 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_det', phyto2d_balinc(:,:,:,jpdet) ) 680 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dtc', phyto2d_balinc(:,:,:,jpdtc) ) 681 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dic', phyto2d_balinc(:,:,:,jpdic) ) 682 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_alk', phyto2d_balinc(:,:,:,jpalk) ) 683 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_oxy', phyto2d_balinc(:,:,:,jpoxy) ) 671 684 ENDIF 672 685 #elif defined key_hadocc 673 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phy', phyto _balinc(:,:,:,jp_had_phy) )686 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_phy', phyto2d_balinc(:,:,:,jp_had_phy) ) 674 687 IF ( ln_phytobal ) THEN 675 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_nut', phyto _balinc(:,:,:,jp_had_nut) )676 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zoo', phyto _balinc(:,:,:,jp_had_zoo) )677 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_det', phyto _balinc(:,:,:,jp_had_pdn) )678 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dic', phyto _balinc(:,:,:,jp_had_dic) )679 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_alk', phyto _balinc(:,:,:,jp_had_alk) )688 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_nut', phyto2d_balinc(:,:,:,jp_had_nut) ) 689 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_zoo', phyto2d_balinc(:,:,:,jp_had_zoo) ) 690 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_det', phyto2d_balinc(:,:,:,jp_had_pdn) ) 691 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_dic', phyto2d_balinc(:,:,:,jp_had_dic) ) 692 CALL iom_rstput( kt, kt, inum, 'logchl_balinc_alk', phyto2d_balinc(:,:,:,jp_had_alk) ) 680 693 ENDIF 681 694 #endif … … 774 787 !!=========================================================================== 775 788 776 SUBROUTINE phyto _asm_inc( kt, ll_asmdin, ll_asmiau, kcycper, pwgtiau )777 !!------------------------------------------------------------------------ 778 !! *** ROUTINE phyto _asm_inc ***789 SUBROUTINE phyto2d_asm_inc( kt, ll_asmdin, ll_asmiau, kcycper, pwgtiau ) 790 !!------------------------------------------------------------------------ 791 !! *** ROUTINE phyto2d_asm_inc *** 779 792 !! 780 793 !! ** Purpose : Apply the chlorophyll assimilation increments. … … 813 826 & pgrow_avg_bkg, ploss_avg_bkg, & 814 827 & phyt_avg_bkg, mld_max_bkg, & 815 & tracer_bkg, phyto _balinc )828 & tracer_bkg, phyto2d_balinc ) 816 829 #elif defined key_hadocc 817 830 CALL asm_logchl_bal_hadocc( slchltot_bkginc, zincper, mld_choice_bgc, & … … 820 833 & phyt_avg_bkg, mld_max_bkg, & 821 834 & chl_bkg(:,:,1), cchl_p_bkg(:,:,1), & 822 & tracer_bkg, phyto _balinc )835 & tracer_bkg, phyto2d_balinc ) 823 836 #else 824 837 CALL ctl_stop( 'Attempting to assimilate slchltot, ', & … … 853 866 DO jk = 1, jpkm1 854 867 trn(:,:,jk,jp_msa0:jp_msa1) = trn(:,:,jk,jp_msa0:jp_msa1) + & 855 & phyto _balinc(:,:,jk,jp_msa0:jp_msa1) * zincwgt868 & phyto2d_balinc(:,:,jk,jp_msa0:jp_msa1) * zincwgt 856 869 trb(:,:,jk,jp_msa0:jp_msa1) = trb(:,:,jk,jp_msa0:jp_msa1) + & 857 & phyto _balinc(:,:,jk,jp_msa0:jp_msa1) * zincwgt870 & phyto2d_balinc(:,:,jk,jp_msa0:jp_msa1) * zincwgt 858 871 END DO 859 872 #elif defined key_hadocc 860 873 DO jk = 1, jpkm1 861 874 trn(:,:,jk,jp_had0:jp_had1) = trn(:,:,jk,jp_had0:jp_had1) + & 862 & phyto _balinc(:,:,jk,jp_had0:jp_had1) * zincwgt875 & phyto2d_balinc(:,:,jk,jp_had0:jp_had1) * zincwgt 863 876 trb(:,:,jk,jp_had0:jp_had1) = trb(:,:,jk,jp_had0:jp_had1) + & 864 & phyto _balinc(:,:,jk,jp_had0:jp_had1) * zincwgt877 & phyto2d_balinc(:,:,jk,jp_had0:jp_had1) * zincwgt 865 878 END DO 866 879 #endif … … 886 899 & ' Background state is taken from model rather than background file' ) 887 900 trn(:,:,:,jp_msa0:jp_msa1) = trn(:,:,:,jp_msa0:jp_msa1) + & 888 & phyto _balinc(:,:,:,jp_msa0:jp_msa1)901 & phyto2d_balinc(:,:,:,jp_msa0:jp_msa1) 889 902 trb(:,:,:,jp_msa0:jp_msa1) = trn(:,:,:,jp_msa0:jp_msa1) 890 903 #elif defined key_hadocc … … 894 907 & ' Background state is taken from model rather than background file' ) 895 908 trn(:,:,:,jp_had0:jp_had1) = trn(:,:,:,jp_had0:jp_had1) + & 896 & phyto _balinc(:,:,:,jp_had0:jp_had1)909 & phyto2d_balinc(:,:,:,jp_had0:jp_had1) 897 910 trb(:,:,:,jp_had0:jp_had1) = trn(:,:,:,jp_had0:jp_had1) 898 911 #endif … … 904 917 ENDIF 905 918 ! 906 END SUBROUTINE phyto_asm_inc 919 END SUBROUTINE phyto2d_asm_inc 920 921 !!=========================================================================== 922 !!=========================================================================== 923 !!=========================================================================== 924 925 SUBROUTINE phyto3d_asm_inc( kt, ll_asmdin, ll_asmiau, kcycper, pwgtiau ) 926 !!------------------------------------------------------------------------ 927 !! *** ROUTINE phyto3d_asm_inc *** 928 !! 929 !! ** Purpose : Apply the profile chlorophyll assimilation increments. 930 !! 931 !! ** Method : Calculate increments to state variables. 932 !! Direct initialization or Incremental Analysis Updating. 933 !! 934 !! ** Action : 935 !!------------------------------------------------------------------------ 936 INTEGER, INTENT(IN) :: kt ! Current time step 937 LOGICAL, INTENT(IN) :: ll_asmdin ! Flag for direct initialisation 938 LOGICAL, INTENT(IN) :: ll_asmiau ! Flag for incremental analysis update 939 INTEGER, INTENT(IN) :: kcycper ! Dimension of pwgtiau 940 REAL(wp), DIMENSION(kcycper), INTENT(IN) :: pwgtiau ! IAU weights 941 ! 942 INTEGER :: ji, jj, jk ! Loop counters 943 INTEGER :: it ! Index 944 REAL(wp) :: zincwgt ! IAU weight for time step 945 REAL(wp) :: zfrac_chn ! Fraction of jpchn 946 REAL(wp) :: zfrac_chd ! Fraction of jpchd 947 REAL(wp), DIMENSION(jpi,jpj,jpk) :: chl_inc ! Chlorophyll increments 948 REAL(wp), DIMENSION(jpi,jpj,jpk) :: bkg_chl ! Chlorophyll background 949 !!------------------------------------------------------------------------ 950 951 IF ( kt <= nit000 ) THEN 952 953 IF ( ln_plchltotinc ) THEN 954 ! Convert log10(chlorophyll) increment back to a chlorophyll increment 955 ! In order to transform logchl incs to chl incs, need to account for model 956 ! background, cannot simply do 10^logchl_bkginc. Need to: 957 ! 1) Add logchl inc to log10(background) to get log10(analysis) 958 ! 2) Take 10^log10(analysis) to get analysis 959 ! 3) Subtract background from analysis to get chl incs 960 ! If rn_maxchlinc > 0 then cap total absolute chlorophyll increment at that value 961 #if defined key_medusa && defined key_foam_medusa 962 bkg_chl(:,:,:) = tracer_bkg(:,:,:,jpchn) + tracer_bkg(:,:,:,jpchd) 963 #elif defined key_hadocc 964 bkg_chl(:,:,:) = chl_bkg(:,:,:) 965 #endif 966 DO jk = 1, jpk 967 DO jj = 1, jpj 968 DO ji = 1, jpi 969 IF ( bkg_chl(ji,jj,jk) > 0.0 ) THEN 970 chl_inc(ji,jj,jk) = 10**( LOG10( bkg_chl(ji,jj,jk) ) + plchltot_bkginc(ji,jj,jk) ) - bkg_chl(ji,jj,jk) 971 IF ( rn_maxchlinc > 0.0 ) THEN 972 chl_inc(ji,jj,jk) = MAX( -1.0 * rn_maxchlinc, MIN( chl_inc(ji,jj,jk), rn_maxchlinc ) ) 973 ENDIF 974 ELSE 975 chl_inc(ji,jj,jk) = 0.0 976 ENDIF 977 END DO 978 END DO 979 END DO 980 ELSE IF ( ln_pchltotinc ) THEN 981 DO jk = 1, jpk 982 DO jj = 1, jpj 983 DO ji = 1, jpi 984 IF ( rn_maxchlinc > 0.0 ) THEN 985 chl_inc(ji,jj,jk) = MAX( -1.0 * rn_maxchlinc, MIN( pchltot_bkginc(ji,jj,jk), rn_maxchlinc ) ) 986 ELSE 987 chl_inc(ji,jj,jk) = pchltot_bkginc(ji,jj,jk) 988 ENDIF 989 END DO 990 END DO 991 END DO 992 ENDIF 993 994 #if defined key_medusa && defined key_foam_medusa 995 ! Loop over each grid point partioning the increments based on existing ratios 996 DO jk = 1, jpk 997 DO jj = 1, jpj 998 DO ji = 1, jpi 999 IF ( ( tracer_bkg(ji,jj,jk,jpchn) > 0.0 ) .AND. ( tracer_bkg(ji,jj,jk,jpchd) > 0.0 ) ) THEN 1000 zfrac_chn = tracer_bkg(ji,jj,jk,jpchn) / (tracer_bkg(ji,jj,jk,jpchn) + tracer_bkg(ji,jj,jk,jpchd)) 1001 zfrac_chd = 1.0 - zfrac_chn 1002 phyto3d_balinc(ji,jj,jk,jpchn) = chl_inc(ji,jj,jk) * zfrac_chn 1003 phyto3d_balinc(ji,jj,jk,jpchd) = chl_inc(ji,jj,jk) * zfrac_chd 1004 ENDIF 1005 END DO 1006 END DO 1007 END DO 1008 #elif defined key_hadocc 1009 phyto3d_balinc(:,:,:,jp_had_phy) = ( cchl_p_bkg(:,:,:) / (mw_carbon * c2n_p) ) * chl_inc(:,:,:) 1010 #else 1011 CALL ctl_stop( 'Attempting to assimilate p(l)chltot, ', & 1012 & 'but not defined a biogeochemical model' ) 1013 #endif 1014 1015 ENDIF 1016 1017 IF ( ll_asmiau ) THEN 1018 1019 !-------------------------------------------------------------------- 1020 ! Incremental Analysis Updating 1021 !-------------------------------------------------------------------- 1022 1023 IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN 1024 1025 it = kt - nit000 + 1 1026 zincwgt = pwgtiau(it) ! IAU weight for the current time step 1027 ! note this is not a tendency so should not be divided by rdt 1028 1029 IF(lwp) THEN 1030 WRITE(numout,*) 1031 WRITE(numout,*) 'phyto3d_asm_inc : phyto3d IAU at time step = ', & 1032 & kt,' with IAU weight = ', pwgtiau(it) 1033 WRITE(numout,*) '~~~~~~~~~~~~' 1034 ENDIF 1035 1036 ! Update the biogeochemical variables 1037 ! Add directly to trn and trb, rather than to tra, because tra gets 1038 ! reset to zero at the start of trc_stp, called after this routine 1039 #if defined key_medusa && defined key_foam_medusa 1040 WHERE( phyto3d_balinc(:,:,:,:) > 0.0_wp .OR. & 1041 & trn(:,:,:,jp_msa0:jp_msa1) + phyto3d_balinc(:,:,:,:) * zincwgt > 0.0_wp ) 1042 trn(:,:,:,jp_msa0:jp_msa1) = trn(:,:,:,jp_msa0:jp_msa1) + & 1043 & phyto3d_balinc(:,:,:,jp_msa0:jp_msa1) * zincwgt 1044 trb(:,:,:,jp_msa0:jp_msa1) = trb(:,:,:,jp_msa0:jp_msa1) + & 1045 & phyto3d_balinc(:,:,:,jp_msa0:jp_msa1) * zincwgt 1046 END WHERE 1047 #elif defined key_hadocc 1048 WHERE( phyto3d_balinc(:,:,:,:) > 0.0_wp .OR. & 1049 & trn(:,:,:,jp_had0:jp_had1) + phyto3d_balinc(:,:,:,:) * zincwgt > 0.0_wp ) 1050 trn(:,:,:,jp_had0:jp_had1) = trn(:,:,:,jp_had0:jp_had1) + & 1051 & phyto3d_balinc(:,:,:,jp_had0:jp_had1) * zincwgt 1052 trb(:,:,:,jp_had0:jp_had1) = trb(:,:,:,jp_had0:jp_had1) + & 1053 & phyto3d_balinc(:,:,:,jp_had0:jp_had1) * zincwgt 1054 END WHERE 1055 #endif 1056 1057 ! Do not deallocate arrays - needed by asm_bgc_bal_wri 1058 ! which is called at end of model run 1059 ENDIF 1060 1061 ELSEIF ( ll_asmdin ) THEN 1062 1063 !-------------------------------------------------------------------- 1064 ! Direct Initialization 1065 !-------------------------------------------------------------------- 1066 1067 IF ( kt == nitdin_r ) THEN 1068 1069 neuler = 0 ! Force Euler forward step 1070 1071 ! Initialize the now fields with the background + increment 1072 ! Background currently is what the model is initialised with 1073 CALL ctl_warn( ' Doing direct initialisation with phyto3d assimilation', & 1074 & ' Background state is taken from model rather than background file' ) 1075 #if defined key_medusa && defined key_foam_medusa 1076 WHERE( phyto3d_balinc(:,:,:,:) > 0.0_wp .OR. & 1077 & trn(:,:,:,jp_msa0:jp_msa1) + phyto3d_balinc(:,:,:,:) * zincwgt > 0.0_wp ) 1078 trn(:,:,:,jp_msa0:jp_msa1) = trn(:,:,:,jp_msa0:jp_msa1) + & 1079 & phyto3d_balinc(:,:,:,jp_msa0:jp_msa1) 1080 trb(:,:,:,jp_msa0:jp_msa1) = trn(:,:,:,jp_msa0:jp_msa1) 1081 END WHERE 1082 #elif defined key_hadocc 1083 WHERE( phyto3d_balinc(:,:,:,:) > 0.0_wp .OR. & 1084 & trn(:,:,:,jp_had0:jp_had1) + phyto3d_balinc(:,:,:,:) * zincwgt > 0.0_wp ) 1085 trn(:,:,:,jp_had0:jp_had1) = trn(:,:,:,jp_had0:jp_had1) + & 1086 & phyto3d_balinc(:,:,:,jp_had0:jp_had1) 1087 trb(:,:,:,jp_had0:jp_had1) = trn(:,:,:,jp_had0:jp_had1) 1088 END WHERE 1089 #endif 1090 1091 ! Do not deallocate arrays - needed by asm_bgc_bal_wri 1092 ! which is called at end of model run 1093 ENDIF 1094 ! 1095 ENDIF 1096 ! 1097 END SUBROUTINE phyto3d_asm_inc 907 1098 908 1099 !!=========================================================================== … … 975 1166 ! If assimilating fCO2, then convert to pCO2 using temperature 976 1167 ! See flux_gas.F90 within HadOCC for details of calculation 977 pco2_bkginc_temp(:,:) = sfco2_bkginc(:,:) / 1168 pco2_bkginc_temp(:,:) = sfco2_bkginc(:,:) / & 978 1169 & EXP((zcoef_fco2_1 + & 979 1170 & zcoef_fco2_2 * (tsn(:,:,1,1)+rt0) - & … … 999 1190 ! Account for logchl balancing if required 1000 1191 IF ( ln_slchltotinc .AND. ln_phytobal ) THEN 1001 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jpdic) + phyto _balinc(:,:,1,jpdic)1002 alk_bkg_temp(:,:) = tracer_bkg(:,:,1,jpalk) + phyto _balinc(:,:,1,jpalk)1192 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jpdic) + phyto2d_balinc(:,:,1,jpdic) 1193 alk_bkg_temp(:,:) = tracer_bkg(:,:,1,jpalk) + phyto2d_balinc(:,:,1,jpalk) 1003 1194 ELSE 1004 1195 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jpdic) … … 1013 1204 ! Account for slchltot balancing if required 1014 1205 IF ( ln_slchltotinc .AND. ln_phytobal ) THEN 1015 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jp_had_dic) + phyto _balinc(:,:,1,jp_had_dic)1016 alk_bkg_temp(:,:) = tracer_bkg(:,:,1,jp_had_alk) + phyto _balinc(:,:,1,jp_had_alk)1206 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jp_had_dic) + phyto2d_balinc(:,:,1,jp_had_dic) 1207 alk_bkg_temp(:,:) = tracer_bkg(:,:,1,jp_had_alk) + phyto2d_balinc(:,:,1,jp_had_alk) 1017 1208 ELSE 1018 1209 dic_bkg_temp(:,:) = tracer_bkg(:,:,1,jp_had_dic) … … 1202 1393 CALL ctl_stop( ' pH balancing not yet implemented' ) 1203 1394 1395 ! See solve_at_general line 281 of mocsy_phsolvers.F90 1396 ! 1397 ! Or, call to mocsy_interface line 158 of carb_chem.F90 1398 ! Input variables (rest are output) are: 1399 ! ztmp(ji,jj),zsal(ji,jj),zalk(ji,jj), & 1400 ! zdic(ji,jj),zsil(ji,jj),zpho(ji,jj), & 1401 ! f_pp0(ji,jj),fsdept(ji,jj,jk), & 1402 ! gphit(ji,jj),f_kw660(ji,jj), & 1403 ! f_xco2a(ji,jj),1 1404 ! 1405 ! ztmp = tsn(:,:,:,jp_tem) 1406 ! zsal = tsn(:,:,:,jp_sal) 1407 ! zalk = trn(:,:,:,jpalk) 1408 ! zdic = trn(:,:,:,jpdic) 1409 ! zsil = trn(:,:,:,jpsil) 1410 ! zpho = trn(:,:,:,jpdin) / 16.0 1411 ! f_pp0 = 1.0 1412 ! fsdept = fsdept(:,:,:) 1413 ! gphit = gphit(:,:) 1414 ! f_kw660 = 1.0 1415 ! f_xco2a = f_xco2a(:,:) 1416 1204 1417 ! 1205 1418 END SUBROUTINE ph_asm_inc … … 1240 1453 1241 1454 it = kt - nit000 + 1 1242 !zincwgt = pwgtiau(it) / rdt ! IAU weight for the current time step 1243 zincwgt = pwgtiau(it) ! IAU weight for the current time step 1244 ! Check which we should use both here and for all others 1455 zincwgt = pwgtiau(it) ! IAU weight for the current time step 1456 ! note this is not a tendency so should not be divided by rdt 1245 1457 1246 1458 IF(lwp) THEN -
branches/UKMO/dev_r5518_GO6_package_asm_3d_bgc/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r9322 r9326 1235 1235 & ln_schltotinc .OR. ln_slphytotinc .OR. ln_slphydiainc .OR. & 1236 1236 & ln_slphynoninc ) THEN 1237 CALL phyto _asm_inc( kt, ln_asmdin, ln_asmiau, icycper, wgtiau )1237 CALL phyto2d_asm_inc( kt, ln_asmdin, ln_asmiau, icycper, wgtiau ) 1238 1238 ENDIF 1239 1239 1240 1240 IF ( ln_plchltotinc .OR. ln_pchltotinc ) THEN 1241 CALL ctl_stop( 'Not worked out what to do about profile chl yet')1241 CALL phyto3d_asm_inc( kt, ln_asmdin, ln_asmiau, icycper, wgtiau ) 1242 1242 ENDIF 1243 1243
Note: See TracChangeset
for help on using the changeset viewer.