New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7254 for branches/NERC – NEMO

Changeset 7254 for branches/NERC


Ignore:
Timestamp:
2016-11-17T17:16:37+01:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- 17-11-2016 -- CMIP6 diags for MEDUSA bugfix

Location:
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/CONFIG/SHARED/field_def_bgc.xml

    r7228 r7254  
    334334       <field id= "OCN_CO3"    long_name="Surface ocean CO3 conc"                    unit="mmolC/m3"    /> 
    335335       <field id= "CO2FLUX"    long_name="Air-sea CO2 flux"                          unit="mmolC/m2/d"  /> 
     336       <field id= "FGCO2"      long_name="Surface Downward CO2 Flux"                 unit="kg-CO2/m2/s" /> 
    336337       <field id= "OM_CAL"     long_name="Omega calcite"                             unit="-"           /> 
    337338       <field id= "OM_ARG"     long_name="Omega aragonite"                           unit="-"           /> 
     
    422423       <field id= "epN100"     long_name="Downward Flux of Particulate Nitrogen"     unit="mmolN/m2/d"  /> 
    423424       <field id= "epSI100"    long_name="Downward Flux of Particulate Silica"       unit="mmolSi/m2/d" /> 
    424        <field id= "FGCO2"      long_name="Surface Downward CO2 Flux"                 unit="kg/m2/s"     /> 
    425425       <field id= "INTDISSIC"  long_name="Dissolved Inorganic Carbon Content"        unit="mmolC/m2"    /> 
    426426       <field id= "INTDISSIN"  long_name="Dissolved Inorganic Nitrogen Content"      unit="mmolN/m2"    /> 
    427427       <field id= "INTDISSISI" long_name="Dissolved Inorganic Silicon Content"       unit="mmolSi/m2"   /> 
    428        <field id= "INTALK"     long_name="Dissolved Alkalinity Content"              unit="meq/m2"      /> 
     428       <field id= "INTTALK"     long_name="Dissolved Alkalinity Content"              unit="meq/m2"      /> 
    429429       <field id= "O2min"      long_name="Oxygen Minimum Concentration"              unit="mmolO2/m3"   /> 
    430430       <field id= "ZO2min"     long_name="Depth of Oxygen Minimum Concentration"     unit="m"           /> 
    431431 
     432       <!-- MEDUSA 3D diagnostics --> 
    432433       <field id= "TPP3"       long_name="Total primary production 3D"               unit="mmolN/m3/d"    grid_ref="grid_T_3D"  /> 
    433434       <field id= "DETFLUX3"   long_name="Total detrital flux 3D"                    unit="mmolN/m3/d"    grid_ref="grid_T_3D"  /> 
     
    440441       <field id= "BDDTALK3"   long_name="Change of Alkalinity due to Biology"       unit="meq/m3/d"      grid_ref="grid_T_3D"  /> 
    441442       <field id= "BDDTDIC3"   long_name="Change of DI Carbon due to Biology"        unit="mmolC/m3/d"    grid_ref="grid_T_3D"  /> 
    442        <field id= "BDDTIFE3"   long_name="Change of DI Iron due to Biology"          unit="mmolFe/m3/d"   grid_ref="grid_T_3D"  /> 
     443       <field id= "BDDTDIFE3"   long_name="Change of DI Iron due to Biology"          unit="mmolFe/m3/d"   grid_ref="grid_T_3D"  /> 
    443444       <field id= "BDDTDIN3"   long_name="Change of DI Nitrogen due to Biology"      unit="mmolN/m3/d"    grid_ref="grid_T_3D"  /> 
    444445       <field id= "BDDTDISI3"  long_name="Change of DI Silicon due to Biology"       unit="mmolSi/m3/d"   grid_ref="grid_T_3D"  /> 
     
    448449       <field id= "FD_CAL3"    long_name="Fast sinking detrital calcium carbonate"   unit="mmolC/m2/d"    grid_ref="grid_T_3D"  /> 
    449450       <field id= "CO33"       long_name="Carbonate ion concentration"               unit="mmolC/m3"      grid_ref="grid_T_3D"  /> 
    450        <field id= "CO3SATARG3" long_name="Carbonate aragonite saturation conc"       unit="mmolC/m3"      grid_ref="grid_T_3D"  /> 
    451        <field id= "CO3SATCAL3" long_name="Carbonate calcite saturation conc"         unit="mmolC/m3"      grid_ref="grid_T_3D"  /> 
     451       <field id= "CO3SATARAG3" long_name="Carbonate aragonite saturation conc"      unit="mmolC/m3"      grid_ref="grid_T_3D"  /> 
     452       <field id= "CO3SATCALC3" long_name="Carbonate calcite saturation conc"        unit="mmolC/m3"      grid_ref="grid_T_3D"  /> 
    452453       <field id= "DCALC3"     long_name="Calcite dissolution"                       unit="mmolC/m3/d"    grid_ref="grid_T_3D"  /> 
    453454       <field id= "EXPC3"      long_name="Downward Flux of Particulate Org Carbon"   unit="mmolC/m3/d"    grid_ref="grid_T_3D"  /> 
     
    630631      <field field_ref= "OCN_CO3"    name="OCN_CO3"    /> 
    631632      <field field_ref= "CO2FLUX"    name="CO2FLUX"    /> 
     633      <field field_ref= "FGCO2"      name="FGCO2"      /> 
    632634      <field field_ref= "OM_CAL"     name="OM_CAL"     /> 
    633635      <field field_ref= "OM_ARG"     name="OM_ARG"     /> 
     
    733735      <field field_ref= "epN100"     name="epN100"     /> 
    734736      <field field_ref= "epSI100"    name="epSI100"    /> 
    735       <field field_ref= "FGCO2"      name="FGCO2"      /> 
    736737      <field field_ref= "INTDISSIC"  name="INTDISSIC"  /> 
    737738      <field field_ref= "INTDISSIN"  name="INTDISSIN"  /> 
    738739      <field field_ref= "INTDISSISI" name="INTDISSISI" /> 
    739       <field field_ref= "INTALK"     name="INTALK"     /> 
     740      <field field_ref= "INTTALK"    name="INTTALK"    /> 
    740741      <field field_ref= "O2min"      name="O2min"      /> 
    741742      <field field_ref= "ZO2min"     name="ZO2min"     /> 
     
    743744      <field field_ref= "BDDTALK3"   name="BDDTALK3"   /> 
    744745      <field field_ref= "BDDTDIC3"   name="BDDTDIC3"   /> 
    745       <field field_ref= "BDDTIFE3"   name="BDDTIFE3"   /> 
     746      <field field_ref= "BDDTDIFE3"  name="BDDTDIFE3"  /> 
    746747      <field field_ref= "BDDTDIN3"   name="BDDTDIN3"   /> 
    747748      <field field_ref= "BDDTDISI3"  name="BDDTDISI3"  /> 
     
    751752      <field field_ref= "FD_CAL3"    name="FD_CAL3"    /> 
    752753      <field field_ref= "CO33"       name="CO33"       /> 
    753       <field field_ref= "CO3SATARG3" name="CO3SATARG3" /> 
    754       <field field_ref= "CO3SATCAL3" name="CO3SATCAL3" /> 
     754      <field field_ref= "CO3SATARAG3" name="CO3SATARAG3" /> 
     755      <field field_ref= "CO3SATCALC3" name="CO3SATCALC3" /> 
    755756      <field field_ref= "DCALC3"     name="DCALC3"     /> 
    756757      <field field_ref= "EXPC3"      name="EXPC3"      /> 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r7227 r7254  
    389389      REAL(wp), POINTER, DIMENSION(:,:,:) :: expc3, expn3 
    390390      REAL(wp), POINTER, DIMENSION(:,:,:) :: fediss3, fescav3 
    391       REAL(wp), POINTER, DIMENSION(:,:,:) :: migrazp3, migrazd3, megrazp3, migrazd3, migrazz3 
     391      REAL(wp), POINTER, DIMENSION(:,:,:) :: migrazp3, migrazd3, megrazp3, megrazd3, megrazz3 
    392392      REAL(wp), POINTER, DIMENSION(:,:,:) :: o2sat3, pbsi3, pcal3, remoc3 
    393393      REAL(wp), POINTER, DIMENSION(:,:,:) :: pnlimj3, pnlimn3, pnlimfe3, pdlimj3, pdlimn3, pdlimfe3, pdlimsi3 
     
    739739!! skip SEAFLRXX, MED_XXXX, INTFLX_XX, INT_XX, ML_XXX, OCAL_XXX, FE_XXXX, MED_XZE, WIND diagnostics here 
    740740!! 
     741         IF( med_diag%RR_0100%dgsave ) THEN 
     742            CALL wrk_alloc( jpi, jpj,    ffastca2d   ) 
     743            ffastca2d(:,:)      = 0.0 !! 
     744         ENDIF 
     745 
    741746         IF( med_diag%ATM_PCO2%dgsave ) THEN 
    742747            CALL wrk_alloc( jpi, jpj,    f_pco2a2d   ) 
     
    9951000          !!  
    9961001          !! AXY (10/11/16): CMIP6 diagnostics, 2D 
    997           IF( med_diag%FGCO2%dgsave ) THEN 
     1002          !! JPALM -- 17-11-16 -- put fgco2 alloc out of diag request 
     1003          !!                   needed for coupling/passed through restart 
     1004          !! IF( med_diag%FGCO2%dgsave ) THEN 
    9981005             CALL wrk_alloc( jpi, jpj,   fgco2    ) 
    9991006             fgco2(:,:)      = 0.0 !! 
    1000           ENDIF 
     1007          !! ENDIF 
    10011008          IF( med_diag%INTDISSIC%dgsave ) THEN 
    10021009             CALL wrk_alloc( jpi, jpj,   intdissic    ) 
     
    18051812                  !! 
    18061813                  !! store 2D outputs 
     1814                  !! 
     1815                  !! JPALM -- 17-11-16 -- put fgco2 out of diag request 
     1816                  !!                    is needed for coupling; pass through restart 
     1817                  !! IF( med_diag%FGCO2%dgsave ) THEN 
     1818                     !! convert from  mol/m2/day to kg/m2/s 
     1819                     fgco2(ji,jj) = f_co2flux * fthk * CO2flux_conv  !! mmol-C/m3/d -> kg-CO2/m2/s 
     1820                  !! ENDIF 
    18071821                  IF ( lk_iomput ) THEN 
    18081822                      IF( med_diag%ATM_PCO2%dgsave ) THEN 
     
    18141828                      IF( med_diag%CO2FLUX%dgsave ) THEN 
    18151829                         f_co2flux2d(ji,jj) = f_co2flux * fthk           !! mmol/m3/d -> mmol/m2/d 
    1816                       ENDIF 
    1817                       !! AXY (10/11/16): CMIP6 equivalent 
    1818                       IF( med_diag%FGCO2%dgsave ) THEN 
    1819                          !! convert from  mol/m2/day to kg/m2/s 
    1820                          fgco2(ji,jj) = f_co2flux * fthk * CO2flux_conv  !! mmol-C/m3/d -> kg-CO2/m2/s 
    18211830                      ENDIF 
    18221831                      IF( med_diag%TCO2%dgsave ) THEN 
     
    18451854               !! AXY (11/11/16): CMIP6 oxygen saturation 3D diagnostic 
    18461855               IF ( med_diag%O2SAT3%dgsave ) THEN 
    1847                   oxy_sato( ztmp, zsal, f_o2sat3 ) 
     1856                  call oxy_sato( ztmp, zsal, f_o2sat3 ) 
    18481857                  o2sat3(ji, jj, jk) = f_o2sat3 
    18491858               ENDIF 
     
    46964705                     !!                 both outputs the CO2 flux in specified units and 
    46974706                     !!                 sends the resulting field to the coupler 
     4707                     !! JPALM (17/11/16): put CO2 flux (fgco2) alloc/unalloc/pass to zn  
     4708                     !!                 out of diag list request  
     4709                     CALL lbc_lnk( fgco2(:,:),'T',1. ) 
    46984710                     IF( med_diag%FGCO2%dgsave ) THEN 
    4699                          CALL lbc_lnk( fgco2(:,:),'T',1. ) 
    47004711                         CALL iom_put( "FGCO2"  , fgco2 ) 
    4701                          zb_co2_flx = zn_co2_flx 
    4702                          zn_co2_flx = fgco2 
    4703                          IF (lk_oasis) THEN 
    4704                             CO2Flux_out_cpl = zn_co2_flx 
    4705                          ENDIF 
    4706                          CALL wrk_dealloc( jpi, jpj,   fgco2   ) 
    4707                      ENDIF 
     4712                     ENDIF 
     4713                     !! JPALM (17/11/16): should mv this fgco2 part  
     4714                     !!                   out of lk_iomput loop 
     4715                     zb_co2_flx = zn_co2_flx 
     4716                     zn_co2_flx = fgco2 
     4717                     IF (lk_oasis) THEN 
     4718                        CO2Flux_out_cpl = zn_co2_flx 
     4719                     ENDIF 
     4720                     CALL wrk_dealloc( jpi, jpj,   fgco2   ) 
     4721                     !! --- 
    47084722                     IF( med_diag%OM_CAL%dgsave ) THEN 
    47094723                         CALL iom_put( "OM_CAL"  , f_omcal ) 
     
    47144728                     IF( med_diag%TCO2%dgsave ) THEN 
    47154729                         CALL iom_put( "TCO2"  , f_TDIC2d ) 
    4716                           CALL wrk_dealloc( jpi, jpj,   f_TDIC2d   ) 
     4730                         CALL wrk_dealloc( jpi, jpj,   f_TDIC2d   ) 
    47174731                     ENDIF 
    47184732                     IF( med_diag%TALK%dgsave ) THEN 
    47194733                         CALL iom_put( "TALK"  , f_TALK2d ) 
    4720                           CALL wrk_dealloc( jpi, jpj,    f_TALK2d  ) 
     4734                         CALL wrk_dealloc( jpi, jpj,    f_TALK2d  ) 
    47214735                     ENDIF 
    47224736                     IF( med_diag%KW660%dgsave ) THEN 
    47234737                         CALL iom_put( "KW660"  , f_kw6602d ) 
    4724                           CALL wrk_dealloc( jpi, jpj,   f_kw6602d   ) 
     4738                         CALL wrk_dealloc( jpi, jpj,   f_kw6602d   ) 
    47254739                     ENDIF 
    47264740                     IF( med_diag%ATM_PP0%dgsave ) THEN 
    47274741                         CALL iom_put( "ATM_PP0"  , f_pp02d ) 
    4728                           CALL wrk_dealloc( jpi, jpj,    f_pp02d  ) 
     4742                         CALL wrk_dealloc( jpi, jpj,    f_pp02d  ) 
    47294743                     ENDIF 
    47304744                     IF( med_diag%O2FLUX%dgsave ) THEN 
    47314745                         CALL iom_put( "O2FLUX"  , f_o2flux2d ) 
    4732                           CALL wrk_dealloc( jpi, jpj,   f_o2flux2d   ) 
     4746                         CALL wrk_dealloc( jpi, jpj,   f_o2flux2d   ) 
    47334747                     ENDIF 
    47344748                     IF( med_diag%O2SAT%dgsave ) THEN 
    47354749                         CALL iom_put( "O2SAT"  , f_o2sat2d ) 
    4736                           CALL wrk_dealloc( jpi, jpj,  f_o2sat2d    ) 
     4750                         CALL wrk_dealloc( jpi, jpj,  f_o2sat2d    ) 
    47374751                     ENDIF 
    47384752                     IF( med_diag%CAL_CCD%dgsave ) THEN 
     
    47554769                       IF( med_diag%DMS_ANDR%dgsave ) THEN 
    47564770                         CALL iom_put( "DMS_ANDR"  , dms_andr2d ) 
    4757                           CALL wrk_dealloc( jpi, jpj,   dms_andr2d   ) 
     4771                         CALL wrk_dealloc( jpi, jpj,   dms_andr2d   ) 
    47584772                       ENDIF 
    47594773                       IF( med_diag%DMS_SIMO%dgsave ) THEN 
    47604774                         CALL iom_put( "DMS_SIMO"  , dms_simo2d ) 
    4761                           CALL wrk_dealloc( jpi, jpj,    dms_simo2d  ) 
     4775                         CALL wrk_dealloc( jpi, jpj,    dms_simo2d  ) 
    47624776                       ENDIF 
    47634777                       IF( med_diag%DMS_ARAN%dgsave ) THEN 
    47644778                         CALL iom_put( "DMS_ARAN"  , dms_aran2d ) 
    4765                           CALL wrk_dealloc( jpi, jpj,   dms_aran2d   ) 
     4779                         CALL wrk_dealloc( jpi, jpj,   dms_aran2d   ) 
    47664780                       ENDIF 
    47674781                       IF( med_diag%DMS_HALL%dgsave ) THEN 
    47684782                         CALL iom_put( "DMS_HALL"  , dms_hall2d ) 
    4769                           CALL wrk_dealloc( jpi, jpj,   dms_hall2d   ) 
     4783                         CALL wrk_dealloc( jpi, jpj,   dms_hall2d   ) 
    47704784                       ENDIF 
    47714785                     ENDIF 
     
    48614875#   endif 
    48624876                     IF( med_diag%SDT__500%dgsave ) THEN 
    4863                          CALL iom_put( "SDT__500"  , fregen2d ) 
     4877                         CALL iom_put( "SDT__500"  , fslownflux ) 
    48644878                     ENDIF 
    48654879                     IF( med_diag%REG__500%dgsave ) THEN 
     
    57565770          IF( med_diag%INTDISSIC%dgsave ) THEN 
    57575771             CALL iom_put( "INTDISSIC"  , intdissic ) 
    5758              CALL wrk_dealloc( jpi, jpj, jpk, intdissic   ) 
     5772             CALL wrk_dealloc( jpi, jpj, intdissic   ) 
    57595773          ENDIF           
    57605774          IF( med_diag%INTDISSIN%dgsave ) THEN 
    57615775             CALL iom_put( "INTDISSIN"  , intdissin ) 
    5762              CALL wrk_dealloc( jpi, jpj, jpk, intdissin   ) 
     5776             CALL wrk_dealloc( jpi, jpj, intdissin   ) 
    57635777          ENDIF           
    57645778          IF( med_diag%INTDISSISI%dgsave ) THEN 
    57655779             CALL iom_put( "INTDISSISI"  , intdissisi ) 
    5766              CALL wrk_dealloc( jpi, jpj, jpk, intdissisi  ) 
     5780             CALL wrk_dealloc( jpi, jpj, intdissisi  ) 
    57675781          ENDIF           
    57685782          IF( med_diag%INTTALK%dgsave ) THEN 
    57695783             CALL iom_put( "INTTALK"  , inttalk ) 
    5770              CALL wrk_dealloc( jpi, jpj, jpk, inttalk     ) 
     5784             CALL wrk_dealloc( jpi, jpj, inttalk     ) 
    57715785          ENDIF           
    57725786          IF( med_diag%O2min%dgsave ) THEN 
    57735787             CALL iom_put( "O2min"  , o2min ) 
    5774              CALL wrk_dealloc( jpi, jpj, jpk, o2min       ) 
     5788             CALL wrk_dealloc( jpi, jpj, o2min       ) 
    57755789          ENDIF           
    57765790          IF( med_diag%ZO2min%dgsave ) THEN 
    57775791             CALL iom_put( "ZO2min"  , zo2min ) 
    5778              CALL wrk_dealloc( jpi, jpj, jpk, zo2min      ) 
     5792             CALL wrk_dealloc( jpi, jpj, zo2min      ) 
    57795793          ENDIF           
    57805794          !! 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90

    r7224 r7254  
    22612261          med_diag%EXPN3%dgsave = .FALSE. 
    22622262      ENDIF 
    2263       IF  (iom_use("EXPCALC3")) THEN  
    2264           med_diag%EXPCALC3%dgsave = .TRUE. 
    2265       ELSE  
    2266           med_diag%EXPCALC3%dgsave = .FALSE. 
    2267       ENDIF 
    2268       IF  (iom_use("EXPSI3")) THEN  
    2269           med_diag%EXPSI3%dgsave = .TRUE. 
    2270       ELSE  
    2271           med_diag%EXPSI3%dgsave = .FALSE. 
    2272       ENDIF 
    22732263      IF  (iom_use("FEDISS3")) THEN  
    22742264          med_diag%FEDISS3%dgsave = .TRUE. 
     
    23362326          med_diag%PNLIMN3%dgsave = .FALSE. 
    23372327      ENDIF 
    2338       IF  (iom_use("PNLIFEJ3")) THEN  
     2328      IF  (iom_use("PNLIMFE3")) THEN  
    23392329          med_diag%PNLIMFE3%dgsave = .TRUE. 
    23402330      ELSE  
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcoxy_medusa.F90

    r5841 r7254  
    2323       
    2424      PUBLIC   trc_oxy_medusa    ! called in trc_bio_medusa 
     25      PUBLIC   oxy_sato          ! called in trc_bio_medusa 
    2526 
    2627   !!* Substitution 
Note: See TracChangeset for help on using the changeset viewer.