Changeset 10047
- Timestamp:
- 2018-08-08T17:12:35+02:00 (5 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM
- Files:
-
- 52 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/CONFIG/SHARED/field_def_bgc.xml
r9385 r10047 135 135 <field id="OXY_INV" field_ref="OXY_E3T" long_name="OXY Inventory" unit="mmol-O2/m2" grid_ref="vert_sum" /> 136 136 <field id="SURF_OXY" field_ref="OXY" long_name="OXY Surface concentration" unit="mmol-O2/m3" grid_ref="grid_T_surface_extract" /> 137 <field id="OMD" long_name="OMIP PI dissolved inorganic carbon" unit="mmol-C/m3" /> 138 <field id="OMD_E3T" long_name="OMD * E3T" unit="mmol-C/m2" > OMD * e3t </field > 139 <field id="OMD_INV" field_ref="OMD_E3T" long_name="OMD Inventory" unit="mmol-C/m2" grid_ref="vert_sum" /> 140 <field id="SURF_OMD" field_ref="OMD" long_name="OMD Surface concentration" unit="mmol-C/m3" grid_ref="grid_T_surface_extract" /> 137 141 138 142 <!-- Ideal traceurs : variables available with key_idtra --> … … 496 500 <field id= "CO2STARAIR" long_name="MOCSY CO2star air" unit="mmol/m3" /> 497 501 <field id= "OCN_DPCO2" long_name="MOCSY delta pCO2" unit="uatm" /> 502 503 <!-- AXY (07/08/18): add new 2D OMIP diagnostics --> 504 <field id= "PI_ATM_PCO2" long_name="OMIP PI Atmospheric pCO2" unit="uatm" /> 505 <field id= "PI_OCN_PH" long_name="OMIP PI Surface ocean pH" unit="-" /> 506 <field id= "PI_OCN_PCO2" long_name="OMIP PI Surface ocean pCO2" unit="uatm" /> 507 <field id= "PI_OCNH2CO3" long_name="OMIP PI Surface ocean H2CO3 conc" unit="mmol-C/m3" /> 508 <field id= "PI_OCN_HCO3" long_name="OMIP PI Surface ocean HCO3 conc" unit="mmol-C/m3" /> 509 <field id= "PI_OCN_CO3" long_name="OMIP PI Surface ocean CO3 conc" unit="mmol-C/m3" /> 510 <field id= "PI_CO2FLUX" long_name="OMIP PI Air-sea CO2 flux" unit="mmol-C/m2/d" /> 511 <field id= "PI_FGCO2" long_name="OMIP PI Surface Downward CO2 Flux" unit="kg-CO2/m2/s" /> 512 <field id= "PI_OM_CAL" long_name="OMIP PI Omega calcite" unit="-" /> 513 <field id= "PI_OM_ARG" long_name="OMIP PI Omega aragonite" unit="-" /> 514 <field id= "PI_TCO2" long_name="OMIP PI Total CO2" unit="umol/kg" /> 515 <field id= "PI_ATM_XCO2" long_name="OMIP PI Atmospheric xCO2" unit="ppm" /> 516 <field id= "PI_OCN_FCO2" long_name="OMIP PI Surface ocean fCO2" unit="uatm" /> 517 <field id= "PI_ATM_FCO2" long_name="OMIP PI Atmospheric fCO2" unit="uatm" /> 518 <field id= "PI_CO2STARAIR" long_name="OMIP PI MOCSY CO2star air" unit="mmol/m3" /> 519 <field id= "PI_OCN_DPCO2" long_name="OMIP PI MOCSY delta pCO2" unit="uatm" /> 498 520 499 521 … … 2465 2487 </field_group> 2466 2488 2489 2490 <field_group id="groupMEDUSA_omip_dic" > 2491 <!-- AXY (07/08/18): add new 2D OMIP diagnostics --> 2492 <field field_ref= "PI_ATM_PCO2" name="PI_ATM_PCO2" /> 2493 <field field_ref= "PI_OCN_PH" name="PI_OCN_PH" /> 2494 <field field_ref= "PI_OCN_PCO2" name="PI_OCN_PCO2" /> 2495 <field field_ref= "PI_OCNH2CO3" name="PI_OCNH2CO3" /> 2496 <field field_ref= "PI_OCN_HCO3" name="PI_OCN_HCO3" /> 2497 <field field_ref= "PI_OCN_CO3" name="PI_OCN_CO3" /> 2498 <field field_ref= "PI_CO2FLUX" name="PI_CO2FLUX" /> 2499 <field field_ref= "PI_FGCO2" name="PI_FGCO2" /> 2500 <field field_ref= "PI_OM_CAL" name="PI_OM_CAL" /> 2501 <field field_ref= "PI_OM_ARG" name="PI_OM_ARG" /> 2502 <field field_ref= "PI_TCO2" name="PI_TCO2" /> 2503 <field field_ref= "PI_ATM_XCO2" name="PI_ATM_XCO2" /> 2504 <field field_ref= "PI_OCN_FCO2" name="PI_OCN_FCO2" /> 2505 <field field_ref= "PI_ATM_FCO2" name="PI_ATM_FCO2" /> 2506 <field field_ref= "PI_CO2STARAIR" name="PI_CO2STARAIR" /> 2507 <field field_ref= "PI_OCN_DPCO2" name="PI_OCN_DPCO2" /> 2508 2509 2510 </field_group> 2511 2512 2467 2513 </field_definition> -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90
r6486 r10047 150 150 CONTAINS 151 151 SUBROUTINE bdy_dyn( kt ) ! Empty routine 152 IMPLICIT NONE 153 INTEGER, INTENT( in ) :: kt ! Main time step counter 152 154 WRITE(*,*) 'bdy_dyn: You should not have seen this print! error?', kt 153 155 END SUBROUTINE bdy_dyn -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90
r6486 r10047 309 309 CONTAINS 310 310 SUBROUTINE bdy_dyn3d( kt ) ! Empty routine 311 WRITE(*,*) 'bdy_dyn3d: You should not have seen this print! error?', kt 311 IMPLICIT NONE 312 INTEGER, INTENT( in ) :: kt ! Main time step counter 313 WRITE(*,*) 'bdy_dyn3d: You should not have seen this print! error?', kt 312 314 END SUBROUTINE bdy_dyn3d 313 315 314 316 SUBROUTINE bdy_dyn3d_dmp( kt ) ! Empty routine 315 WRITE(*,*) 'bdy_dyn3d_dmp: You should not have seen this print! error?', kt 317 IMPLICIT NONE 318 INTEGER, INTENT( in ) :: kt ! Main time step counter 319 WRITE(*,*) 'bdy_dyn3d_dmp: You should not have seen this print! error?', kt 316 320 END SUBROUTINE bdy_dyn3d_dmp 317 321 -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90
r6487 r10047 611 611 CONTAINS 612 612 SUBROUTINE bdytide_init ! Empty routine 613 IMPLICIT NONE 613 614 WRITE(*,*) 'bdytide_init: You should not have seen this print! error?' 614 615 END SUBROUTINE bdytide_init 615 616 SUBROUTINE bdytide_update( kt, jit ) ! Empty routine 617 IMPLICIT NONE 618 INTEGER, INTENT( in ) :: kt ! Main timestep counter 619 INTEGER,INTENT(in),OPTIONAL :: jit ! Barotropic timestep counter (for timesplitting option) 616 620 WRITE(*,*) 'bdytide_update: You should not have seen this print! error?', kt, jit 617 621 END SUBROUTINE bdytide_update 618 622 SUBROUTINE bdy_dta_tides( kt, kit, time_offset ) ! Empty routine 623 IMPLICIT NONE 619 624 INTEGER, INTENT( in ) :: kt ! Dummy argument empty routine 620 625 INTEGER, INTENT( in ),OPTIONAL :: kit ! Dummy argument empty routine 621 626 INTEGER, INTENT( in ),OPTIONAL :: time_offset ! Dummy argument empty routine 622 WRITE(*,*) 'bdy_dta_tides: You should not have seen this print! error?', kt, jit627 WRITE(*,*) 'bdy_dta_tides: You should not have seen this print! error?', kt, kit 623 628 END SUBROUTINE bdy_dta_tides 624 629 #endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/BDY/bdytra.F90
r6486 r10047 319 319 CONTAINS 320 320 SUBROUTINE bdy_tra(kt) ! Empty routine 321 IMPLICIT NONE 322 INTEGER, INTENT( in ) :: kt ! Main time step counter 321 323 WRITE(*,*) 'bdy_tra: You should not have seen this print! error?', kt 322 324 END SUBROUTINE bdy_tra 323 325 324 326 SUBROUTINE bdy_tra_dmp(kt) ! Empty routine 327 IMPLICIT NONE 328 INTEGER, INTENT( in ) :: kt ! Main time step counter 325 329 WRITE(*,*) 'bdy_tra_dmp: You should not have seen this print! error?', kt 326 330 END SUBROUTINE bdy_tra_dmp -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90
r6487 r10047 178 178 CONTAINS 179 179 SUBROUTINE bdy_vol( kt ) ! Empty routine 180 IMPLICIT NONE 181 INTEGER, INTENT( in ) :: kt ! ocean time-step index 180 182 WRITE(*,*) 'bdy_vol: You should not have seen this print! error?', kt 181 183 END SUBROUTINE bdy_vol -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/C1D/dyncor_c1d.F90
r6486 r10047 116 116 CONTAINS 117 117 SUBROUTINE cor_c1d ! Empty routine 118 IMPLICIT NONE 118 119 END SUBROUTINE cor_c1d 120 119 121 SUBROUTINE dyn_cor_c1d ( kt ) ! Empty routine 122 IMPLICIT NONE 123 INTEGER, INTENT( in ) :: kt ! ocean time-step index 120 124 WRITE(*,*) 'dyn_cor_c1d: You should not have seen this print! error?', kt 121 125 END SUBROUTINE dyn_cor_c1d -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90
r6486 r10047 165 165 !!---------------------------------------------------------------------- 166 166 CONTAINS 167 SUBROUTINE stp_c1d ( kt ) ! dummy routine 168 WRITE(*,*) 'stp_c1d: You should not have seen this print! error?', kt 167 SUBROUTINE stp_c1d ( kstp ) ! dummy routine 168 IMPLICIT NONE 169 INTEGER, INTENT(in) :: kstp ! ocean time-step index 170 WRITE(*,*) 'stp_c1d: You should not have seen this print! error?', kstp 169 171 END SUBROUTINE stp_c1d 170 172 #endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r6486 r10047 1302 1302 1303 1303 SUBROUTINE dia_dct_init ! Dummy routine 1304 WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?', kt 1304 IMPLICIT NONE 1305 WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?' 1305 1306 END SUBROUTINE dia_dct_init 1306 1307 1307 1308 SUBROUTINE dia_dct( kt ) ! Dummy routine 1309 IMPLICIT NONE 1308 1310 INTEGER, INTENT( in ) :: kt ! ocean time-step index 1309 1311 WRITE(*,*) 'dia_dct: You should not have seen this print! error?', kt -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DIA/diahth.F90
r6486 r10047 343 343 CONTAINS 344 344 SUBROUTINE dia_hth( kt ) ! Empty routine 345 WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 345 IMPLICIT NONE 346 INTEGER, INTENT( in ) :: kt ! ocean time-step index 347 WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 346 348 END SUBROUTINE dia_hth 347 349 #endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r9207 r10047 102 102 103 103 ! 104 z2d(:,:) = 0._wp 104 105 z3d(:,:,:) = 0._wp 105 106 IF( PRESENT( pvtr ) ) THEN … … 246 247 ! 247 248 IF( iom_use("zotemglo") ) THEN ! i-mean i-k-surface 249 zmask(:,:,:) = 0._wp 250 zts(:,:,:,:) = 0._wp 248 251 DO jk = 1, jpkm1 249 252 DO jj = 1, jpj -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r8400 r10047 246 246 z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 247 247 END DO 248 CALL lbc_lnk( z3d(:,:,:), 'W', 1. ) 248 249 CALL iom_put( "w_masstr" , z3d ) 249 250 IF( iom_use('w_masstr2') ) CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) … … 252 253 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. 253 254 CALL iom_put( "avm" , avmu ) ! T vert. eddy visc. coef. 255 #if defined key_zdftke 254 256 IF( lk_zdftke ) THEN 255 257 CALL iom_put( "tke" , en ) ! TKE budget: Turbulent Kinetic Energy 256 258 CALL iom_put( "tke_niw" , e_niw ) ! TKE budget: Near-inertial waves 257 259 ENDIF 260 #endif 258 261 CALL iom_put( "avs" , fsavs(:,:,:) ) ! S vert. eddy diff. coef. (useful only with key_zdfddm) 259 262 ! Log of eddy diff coef … … 334 337 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 335 338 END DO 339 CALL lbc_lnk( z3d(:,:,:), 'U', -1. ) 336 340 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 341 CALL lbc_lnk( z2d(:,:), 'U', -1. ) 337 342 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum 338 343 ENDIF … … 370 375 z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 371 376 END DO 377 CALL lbc_lnk( z3d(:,:,:), 'V', -1. ) 372 378 CALL iom_put( "v_masstr", z3d ) ! mass transport in j-direction 373 379 ENDIF -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r8427 r10047 254 254 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: bathy !: ocean depth (meters) 255 255 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tmask_i, umask_i, vmask_i, fmask_i !: interior domain T-point mask 256 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmask_i_diag !: partial mask for use in T diagnostic mask calc. 257 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: umask_i_diag !: partial mask for use in U diagnostic mask calc. 258 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vmask_i_diag !: partial mask for use in V diagnostic mask calc. 256 259 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: bmask !: land/ocean mask of barotropic stream function 257 260 … … 406 409 407 410 ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk), & 408 & vmask(jpi,jpj,jpk) , fmask(jpi,jpj,jpk), STAT=ierr(11) ) 411 & vmask(jpi,jpj,jpk) , fmask(jpi,jpj,jpk), & 412 tmask_i_diag(jpi,jpj,jpk), & 413 umask_i_diag(jpi,jpj,jpk), & 414 vmask_i_diag(jpi,jpj,jpk), & 415 STAT=ierr(11) ) 409 416 410 417 ALLOCATE( wmask(jpi,jpj,jpk) , wumask(jpi,jpj,jpk), wvmask(jpi,jpj,jpk) , STAT=ierr(12) ) -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r8280 r10047 1 1 2 MODULE dommsk 2 3 !!====================================================================== … … 30 31 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 31 32 USE wrk_nemo ! Memory allocation 33 USE domwri 32 34 USE timing ! Timing 33 35 … … 138 140 REAL(wp) :: zphi_drake_passage, zshlat_antarc 139 141 REAL(wp), POINTER, DIMENSION(:,:) :: zwf 142 REAL(wp) :: uvt(jpi,jpj) ! dummy array for masking purposes. 140 143 !! 141 144 NAMELIST/namlbc/ rn_shlat, ln_vorlat … … 223 226 ! -------------------- 224 227 tmask_i(:,:) = ssmask(:,:) ! (ISH) tmask_i = 1 even on the ice shelf 228 225 229 iif = jpreci ! ??? 226 230 iil = nlci - jpreci + 1 … … 246 250 ENDIF 247 251 ENDIF 252 253 248 254 IF( jperio == 5 .OR. jperio == 6 ) THEN ! F-point pivot 249 255 tpol( 1 :jpiglo) = 0._wp … … 263 269 & * tmask(ji,jj+1,jk) * tmask(ji+1,jj+1,jk) 264 270 END DO 265 END DO 271 END DO 266 272 END DO 267 273 ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at least 1 wet u point … … 282 288 CALL lbc_lnk( vmask_i, 'V', 1._wp ) 283 289 CALL lbc_lnk( fmask_i, 'F', 1._wp ) 290 291 292 ! Set up mask for diagnostics on T points, to exclude duplicate 293 ! data points in wrap and N-fold regions. 294 CALL dom_uniq( uvt, 'T' ) 295 DO jk = 1, jpk 296 tmask_i_diag(:,:,jk) = tmask(:,:,jk) * uvt(:,:) 297 END DO 298 299 ! Set up mask for diagnostics on U points, to exclude duplicate 300 ! data points in wrap and N-fold regions. 301 umask_i_diag(:,:,:) = 1.0 302 umask_i_diag(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) 303 CALL lbc_lnk( umask_i_diag, 'U', 1. ) 304 305 ! Now mask out any duplicate points 306 CALL dom_uniq( uvt, 'U' ) 307 DO jk = 1, jpk 308 umask_i_diag(:,:,jk) = umask_i_diag(:,:,jk) * uvt(:,:) 309 END DO 310 311 312 ! Set up mask for diagnostics on V points, to exclude duplicate 313 ! data points in wrap and N-fold regions. 314 vmask_i_diag(:,:,:) = 1.0 315 vmask_i_diag(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) 316 CALL lbc_lnk( vmask_i_diag, 'V', 1. ) 317 318 ! Now mask out any duplicate points 319 CALL dom_uniq( uvt, 'V' ) 320 DO jk = 1, jpk 321 vmask_i_diag(:,:,jk) = vmask_i_diag(:,:,jk) * uvt(:,:) 322 END DO 323 324 284 325 285 326 ! 3. Ocean/land mask at wu-, wv- and w points -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
r9321 r10047 26 26 PRIVATE 27 27 28 PUBLIC dom_wri ! routine called by inidom.F9028 PUBLIC dom_wri, dom_uniq ! routines called by inidom.F90 and iom.F90 29 29 30 30 !! * Substitutions -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_exp.F90
r6486 r10047 107 107 CONTAINS 108 108 SUBROUTINE dyn_spg_exp( kt ) ! Empty routine 109 IMPLICIT NONE 110 INTEGER, INTENT(in) :: kt ! ocean time-step index 109 111 WRITE(*,*) 'dyn_spg_exp: You should not have seen this print! error?', kt 110 112 END SUBROUTINE dyn_spg_exp -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/FLO/floats.F90
r6486 r10047 146 146 CONTAINS 147 147 SUBROUTINE flo_stp( kt ) ! Empty routine 148 IMPLICIT NONE 149 INTEGER, INTENT( in ) :: kt ! ocean time step 148 150 WRITE(*,*) 'flo_stp: You should not have seen this print! error?', kt 149 151 END SUBROUTINE flo_stp -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r9321 r10047 1400 1400 IF ( ln_mskland ) THEN 1401 1401 ! mask land points, keep values on coast line -> specific mask for U, V and W points 1402 1403 1402 1404 SELECT CASE ( cdgrd ) 1403 CASE('T') ; zmask(:,:,:) = tmask(:,:,:) 1404 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( zmask, 'U', 1. ) 1405 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( zmask, 'V', 1. ) 1406 CASE('W') ; zmask(:,:,2:jpk ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk) ; zmask(:,:,1) = tmask(:,:,1) 1407 END SELECT 1405 ! The masks applied here are specifically used to mask out duplicate 1406 ! data points in wrap columns and N-fold rows in order to ensure bit 1407 ! reproducibility of diagnostics which have not undergone an explicit 1408 ! lbc_lnk prior to writing. Such fields are prone to junk values at 1409 ! duplicate points since those points are often excluded from the 1410 ! core field computation process. 1411 CASE('T') 1412 zmask(:,:,:) = tmask_i_diag(:,:,:) 1413 CASE('U') 1414 zmask(:,:,:) = umask_i_diag(:,:,:) 1415 CASE('V') 1416 zmask(:,:,:) = vmask_i_diag(:,:,:) 1417 CASE('W') 1418 zmask(:,:,2:jpk ) = tmask_i_diag(:,:,1:jpkm1) + tmask_i_diag(:,:,2:jpk) 1419 zmask(:,:,1) = tmask_i_diag(:,:,1) 1420 END SELECT 1408 1421 ! 1409 1422 #if ! defined key_xios2 -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c3d.h90
r6486 r10047 210 210 ! 211 211 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ztemp2d ! temporary array to read ahmcoef file 212 LOGICAL :: tempmask( jpi,jpj) ! Temporary mask to avoid Cray compiler bug at cce 8.3.4 212 213 !!---------------------------------------------------------------------- 213 214 ! … … 252 253 zemax = MAXVAL ( e1t(:,:) * e2t(:,:), tmask(:,:,1) .GE. 0.5 ) 253 254 zemin = MINVAL ( e1t(:,:) * e2t(:,:), tmask(:,:,1) .GE. 0.5 ) 254 zeref = MAXVAL ( e1t(:,:) * e2t(:,:), & 255 & tmask(:,:,1) .GE. 0.5 .AND. ABS(gphit(:,:)) .GT. 50. ) 255 tempmask(:,:) = .FALSE. 256 ! Pre calculate mask for zeref since embedding the following 257 ! term in the MAXVAL operation offends the Cray compiler for no 258 ! justifiable reason under certain conditions. 259 tempmask(:,:) = (tmask(:,:,1) .GE. 0.5) .AND. (ABS(gphit(:,:)) .GT. 50.) 260 zeref = MAXVAL ( e1t(:,:) * e2t(:,:), tempmask(:,:) ) 256 261 257 262 DO jj = 1, jpj -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_smag.F90
r6486 r10047 294 294 CONTAINS 295 295 SUBROUTINE ldf_dyn_smag( kt ) ! Empty routine 296 IMPLICIT NONE 297 INTEGER :: kt ! timestep 296 298 WRITE(*,*) 'ldf_dyn_smag: You should not have seen this print! error? check keys ldf:c3d+smag', kt 297 299 END SUBROUTINE ldf_dyn_smag -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_smag.F90
r6486 r10047 204 204 CONTAINS 205 205 SUBROUTINE ldf_tra_smag( kt ) ! Empty routine 206 WRITE(*,*) 'ldf_dyn_smag: You should not have seen this print! error? check keys ldf:c3d+smag', kt 206 IMPLICIT NONE 207 INTEGER, INTENT( in ) :: kt ! ocean time-step inedx 208 WRITE(*,*) 'ldf_dyn_smag: You should not have seen this print! error? check keys ldf:c3d+smag', kt 207 209 END SUBROUTINE ldf_tra_smag 208 210 #endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
r8400 r10047 167 167 168 168 #if defined key_cice 169 ALLOCATE( qla_ice(jpi,jpj,ncat) , qlw_ice(jpi,jpj,1) , qsr_ice(jpi,jpj, 1), &169 ALLOCATE( qla_ice(jpi,jpj,ncat) , qlw_ice(jpi,jpj,1) , qsr_ice(jpi,jpj,jpl) , & 170 170 wndi_ice(jpi,jpj) , tatm_ice(jpi,jpj) , qatm_ice(jpi,jpj) , & 171 171 wndj_ice(jpi,jpj) , nfrzmlt(jpi,jpj) , ss_iou(jpi,jpj) , & … … 180 180 IF( ln_cpl ) ALLOCATE( u_ice(jpi,jpj) , fr1_i0(jpi,jpj) , tn_ice (jpi,jpj,jpl) , & 181 181 & v_ice(jpi,jpj) , fr2_i0(jpi,jpj) , alb_ice(jpi,jpj,1) , & 182 & emp_ice(jpi,jpj) , qns_ice(jpi,jpj, 1), dqns_ice(jpi,jpj,1) , &182 & emp_ice(jpi,jpj) , qns_ice(jpi,jpj,jpl) , dqns_ice(jpi,jpj,1) , & 183 183 & a_p(jpi,jpj,jpl) , ht_p(jpi,jpj,jpl) , tsfc_ice(jpi,jpj,jpl) , & 184 184 & kn_ice(jpi,jpj,jpl) , STAT=ierr(2) ) -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r8400 r10047 1178 1178 1179 1179 SUBROUTINE sbc_ice_cice ( kt, ksbc ) ! Dummy routine 1180 IMPLICIT NONE 1181 INTEGER, INTENT(in) :: kt ! ocean time-step index 1182 INTEGER, INTENT(in) :: ksbc ! surface forcing type 1180 1183 WRITE(*,*) 'sbc_ice_cice: You should not have seen this print! error?', kt 1181 1184 END SUBROUTINE sbc_ice_cice 1182 1185 1183 1186 SUBROUTINE cice_sbc_init (ksbc) ! Dummy routine 1187 IMPLICIT NONE 1188 INTEGER, INTENT(in) :: ksbc ! surface forcing type 1184 1189 WRITE(*,*) 'cice_sbc_init: You should not have seen this print! error?' 1185 1190 END SUBROUTINE cice_sbc_init 1186 1191 1187 1192 SUBROUTINE cice_sbc_final ! Dummy routine 1193 IMPLICIT NONE 1188 1194 WRITE(*,*) 'cice_sbc_final: You should not have seen this print! error?' 1189 1195 END SUBROUTINE cice_sbc_final -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r6498 r10047 648 648 CONTAINS 649 649 SUBROUTINE sbc_ice_lim ( kt, kblk ) ! Dummy routine 650 IMPLICIT NONE 651 INTEGER, INTENT(in) :: kt ! ocean time step 652 INTEGER, INTENT(in) :: kblk ! type of bulk (=3 CLIO, =4 CORE, =5 COUPLED) 650 653 WRITE(*,*) 'sbc_ice_lim: You should not have seen this print! error?', kt, kblk 651 654 END SUBROUTINE sbc_ice_lim 652 655 SUBROUTINE sbc_lim_init ! Dummy routine 656 IMPLICIT NONE 653 657 END SUBROUTINE sbc_lim_init 654 658 #endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r7771 r10047 33 33 USE wrk_nemo ! Memory Allocation 34 34 USE timing ! Timing 35 USE phycst ! Physical constants 35 36 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 36 37 USE iom -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
r6486 r10047 134 134 INTEGER :: ierror ! local integer 135 135 ! 136 TYPE(FLD_N) :: sn_qgh ! informations about the geotherm. field to be read 137 CHARACTER(len=256) :: cn_dir ! Root directory for location of ssr files 136 TYPE(FLD_N), DIMENSION (1) :: slf_q ! array of namelist informations on the fields to read 137 TYPE(FLD_N) :: sn_qgh ! informations about the geotherm. field to be read 138 CHARACTER(len=256) :: cn_dir ! Root directory for location of ssr files 138 139 ! 139 140 NAMELIST/nambbc/ln_trabbc, nn_geoflx, rn_geoflx_cst, sn_qgh, cn_dir … … 173 174 IF(lwp) WRITE(numout,*) ' *** variable geothermal heat flux' 174 175 ! 176 slf_q(1) = sn_qgh 177 ! 175 178 ALLOCATE( sf_qgh(1), STAT=ierror ) 176 179 IF( ierror > 0 ) THEN … … 179 182 ENDIF 180 183 ALLOCATE( sf_qgh(1)%fnow(jpi,jpj,1) ) 181 IF( s n_qgh%ln_tint )ALLOCATE( sf_qgh(1)%fdta(jpi,jpj,1,2) )184 IF( slf_q(1)%ln_tint ) ALLOCATE( sf_qgh(1)%fdta(jpi,jpj,1,2) ) 182 185 ! fill sf_chl with sn_chl and control print 183 CALL fld_fill( sf_qgh, (/ sn_qgh /), cn_dir, 'tra_bbc_init', &186 CALL fld_fill( sf_qgh, slf_q, cn_dir, 'tra_bbc_init', & 184 187 & 'bottom temperature boundary condition', 'nambbc' ) 185 188 -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90
r7179 r10047 195 195 CALL ken_p2k( kt , zke ) 196 196 CALL iom_put( "ketrd_convP2K", zke ) ! conversion -rau*g*w 197 # if defined key_ldfslp || key_esopa 197 198 CASE( jpdyn_eivke ) 198 199 ! CMIP6 diagnostic tknebto = tendency of KE from … … 216 217 CALL iom_put("ketrd_eiv", zke2d) 217 218 CALL wrk_dealloc( jpi, jpj, zke2d ) 219 #endif 218 220 ! 219 221 END SELECT -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r9321 r10047 1231 1231 CONTAINS 1232 1232 SUBROUTINE zdf_gls_init ! Empty routine 1233 IMPLICIT NONE 1233 1234 WRITE(*,*) 'zdf_gls_init: You should not have seen this print! error?' 1234 1235 END SUBROUTINE zdf_gls_init 1236 1235 1237 SUBROUTINE zdf_gls( kt ) ! Empty routine 1238 IMPLICIT NONE 1239 INTEGER, INTENT(in) :: kt ! ocean time step 1236 1240 WRITE(*,*) 'zdf_gls: You should not have seen this print! error?', kt 1237 1241 END SUBROUTINE zdf_gls 1242 1238 1243 SUBROUTINE gls_rst( kt, cdrw ) ! Empty routine 1244 IMPLICIT NONE 1239 1245 INTEGER , INTENT(in) :: kt ! ocean time-step 1240 1246 CHARACTER(len=*), INTENT(in) :: cdrw ! "READ"/"WRITE" flag -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r6486 r10047 1576 1576 CONTAINS 1577 1577 SUBROUTINE zdf_kpp_init ! Dummy routine 1578 IMPLICIT NONE 1578 1579 WRITE(*,*) 'zdf_kpp_init: You should not have seen this print! error?' 1579 1580 END SUBROUTINE zdf_kpp_init 1580 1581 SUBROUTINE zdf_kpp( kt ) ! Dummy routine 1582 IMPLICIT NONE 1583 INTEGER, INTENT( in ) :: kt ! ocean time step 1581 1584 WRITE(*,*) 'zdf_kpp: You should not have seen this print! error?', kt 1582 1585 END SUBROUTINE zdf_kpp 1583 1586 SUBROUTINE tra_kpp( kt ) ! Dummy routine 1587 IMPLICIT NONE 1588 INTEGER, INTENT( in ) :: kt ! ocean time step 1584 1589 WRITE(*,*) 'tra_kpp: You should not have seen this print! error?', kt 1585 1590 END SUBROUTINE tra_kpp 1586 1591 SUBROUTINE trc_kpp( kt ) ! Dummy routine 1592 IMPLICIT NONE 1593 INTEGER, INTENT( in ) :: kt ! ocean time step 1587 1594 WRITE(*,*) 'trc_kpp: You should not have seen this print! error?', kt 1588 1595 END SUBROUTINE trc_kpp -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
r6486 r10047 307 307 CONTAINS 308 308 SUBROUTINE zdf_ric_init ! Dummy routine 309 IMPLICIT NONE 309 310 END SUBROUTINE zdf_ric_init 310 311 SUBROUTINE zdf_ric( kt ) ! Dummy routine 312 IMPLICIT NONE 313 INTEGER, INTENT( in ) :: kt ! ocean time-step 311 314 WRITE(*,*) 'zdf_ric: You should not have seen this print! error?', kt 312 315 END SUBROUTINE zdf_ric -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/oce.F90
r8280 r10047 101 101 INTEGER :: ierr(5) 102 102 !!---------------------------------------------------------------------- 103 ierr(:) = 0 103 104 ! 104 105 ALLOCATE( ub (jpi,jpj,jpk) , un (jpi,jpj,jpk) , ua(jpi,jpj,jpk) , & -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r6486 r10047 330 330 CONTAINS 331 331 SUBROUTINE trc_sms_c14b( kt ) ! Empty routine 332 IMPLICIT NONE 333 INTEGER, INTENT(in) :: kt ! ocean time-step index 332 334 WRITE(*,*) 'trc_freons: You should not have seen this print! error?', kt 333 335 END SUBROUTINE trc_sms_c14b -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
r10045 r10047 59 59 zalk, zdic, zoxy, zsal, ztmp, & 60 60 # if defined key_omip_dic 61 pi_fgco2, & 62 f_pi_co2flux, f_pi_co2flux2d, & 63 f_pi_co2starair_2d, f_pi_co3, & 64 f_pi_fco2a_2d, f_pi_fco2w_2d, & 65 f_pi_h2co3, f_pi_hco3, & 66 f_pi_ocndpco2_2d, & 67 f_pi_omarg, f_pi_omcal, & 68 f_pi_pco2a2d, f_pi_pco2atm, f_pi_pco2w, & 69 f_pi_pco2w2d, f_pi_ph, & 70 f_pi_TDIC, f_pi_TDIC2d, & 71 f_pi_xco2a, f_pi_xco2a_2d, & 72 zomd, & 73 # endif 74 # endif 61 pi_fgco2, & 62 f_pi_co2flux, f_pi_co2flux_2d, & 63 f_pi_co2starair_2d, f_pi_co3, & 64 f_pi_fco2a_2d, f_pi_fco2w_2d, & 65 f_pi_h2co3, f_pi_hco3, & 66 f_pi_ocndpco2_2d, & 67 f_pi_omarg, f_pi_omcal, & 68 f_pi_pco2a_2d, f_pi_pco2atm, f_pi_pco2w, & 69 f_pi_pco2w_2d, f_pi_ph, & 70 f_pi_TDIC, f_pi_TDIC_2d, & 71 f_pi_xco2a, f_pi_xco2a_2d, & 72 f_pi_ph_2d, f_pi_omcal_2d, f_pi_omarg_2d, & 73 f_pi_h2co3_2d, f_pi_hco3_2d, f_pi_co3_2d, & 74 zomd, & 75 # endif !! key_omip_dic 76 # endif !! key_roam 75 77 # if defined key_mocsy 76 78 zpho, & 79 # endif 80 zchd, zchn, zdin, zsil 81 USE dom_oce, ONLY: e3t_0, gphit, tmask, mig, mjg 82 # if defined key_vvl 83 USE dom_oce, ONLY: e3t_n 77 84 # endif 78 zchd, zchn, zdin, zsil79 USE dom_oce, ONLY: e3t_0, e3t_n, gphit, tmask, mig, mjg80 # if defined key_iomput81 85 USE iom, ONLY: lk_iomput 82 # endif83 86 USE in_out_manager, ONLY: lwp, numout 84 87 USE par_kind, ONLY: wp … … 101 104 # else 102 105 USE trcco2_medusa, ONLY: trc_co2_medusa 103 # endif 106 # endif 104 107 USE trcdms_medusa, ONLY: trc_dms_medusa 105 108 USE trcoxy_medusa, ONLY: trc_oxy_medusa … … 136 139 # if defined key_omip_dic 137 140 !! AXY (06/08/18): output variables that are not different for OMIP DIC 141 REAL(wp), DIMENSION(jpi,jpj) :: f_pi_fco2w 142 REAL(wp), DIMENSION(jpi,jpj) :: f_pi_fco2atm 143 REAL(wp), DIMENSION(jpi,jpj) :: f_pi_co2starair, f_pi_dpco2 138 144 REAL(wp) :: f_rhosw_dum, f_schmidtco2_dum, f_kwco2_dum,f_K0_dum 139 145 # endif … … 208 214 call trc_rst_dia_stat(zpho(:,:), 'zpho') 209 215 # endif 210 211 216 # if defined key_axy_carbchem 212 217 # if defined key_mocsy … … 330 335 !! mmol / m3 -> umol / kg 331 336 f_pi_TDIC(ji,jj) = (zomd(ji,jj) / f_rhosw(ji,jj)) * 1000. 332 # endif 337 # endif !! omip 333 338 ENDIF 334 339 ENDDO … … 355 360 # endif 356 361 357 # else 362 # else !! mocsy 358 363 !!----------------------------------------------------------- 359 364 !! Blackford et al. (2007) carbonate chemistry … … 392 397 ENDDO 393 398 394 # endif 395 # else 399 # endif !! mocsy 400 # else !! carbchem 396 401 !!----------------------------------------------------------- 397 402 !! No carbonate chemistry … … 434 439 ENDDO 435 440 ENDDO 436 # endif 441 # endif !! carbchem 437 442 438 443 # if defined key_axy_killco2flux … … 634 639 !! AXY (06/08/18): diagnostics for OMIP PI DIC 635 640 IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 636 f_pi_pco2a 2d(ji,jj) = f_pi_pco2atm(ji,jj)637 ENDIF 638 IF( med_diag% OCN_PCO2%dgsave ) THEN639 f_pi_pco2w 2d(ji,jj) = f_pi_pco2w(ji,jj)641 f_pi_pco2a_2d(ji,jj) = f_pi_pco2atm(ji,jj) 642 ENDIF 643 IF( med_diag%PI_OCN_PCO2%dgsave ) THEN 644 f_pi_pco2w_2d(ji,jj) = f_pi_pco2w(ji,jj) 640 645 ENDIF 641 646 IF( med_diag%PI_CO2FLUX%dgsave ) THEN 642 647 !! mmol/m3/d -> mmol/m2/d 643 f_pi_co2flux 2d(ji,jj) = f_pi_co2flux(ji,jj) * fse3t(ji,jj,1)648 f_pi_co2flux_2d(ji,jj) = f_pi_co2flux(ji,jj) * fse3t(ji,jj,1) 644 649 ENDIF 645 650 IF( med_diag%PI_TCO2%dgsave ) THEN 646 f_PI_TDIC 2d(ji,jj) = f_PI_TDIC(ji,jj)651 f_PI_TDIC_2d(ji,jj) = f_PI_TDIC(ji,jj) 647 652 ENDIF 648 653 IF( med_diag%PI_ATM_XCO2%dgsave ) THEN … … 667 672 CO2flux_conv 668 673 ENDIF 674 IF( med_diag%PI_OCN_PH%dgsave ) THEN 675 f_pi_ph_2d(ji,jj) = f_pi_ph(ji,jj) 676 ENDIF 677 IF( med_diag%PI_OCNH2CO3%dgsave ) THEN 678 f_pi_h2co3_2d(ji,jj) = f_pi_h2co3(ji,jj) 679 ENDIF 680 IF( med_diag%PI_OCN_HCO3%dgsave ) THEN 681 f_pi_hco3_2d(ji,jj) = f_pi_hco3(ji,jj) 682 ENDIF 683 IF( med_diag%PI_OCN_CO3%dgsave ) THEN 684 f_pi_co3_2d(ji,jj) = f_pi_co3(ji,jj) 685 ENDIF 686 IF( med_diag%PI_OM_CAL%dgsave ) THEN 687 f_pi_omcal_2d(ji,jj) = f_pi_omcal(ji,jj) 688 ENDIF 689 IF( med_diag%PI_OM_ARG%dgsave ) THEN 690 f_pi_omarg_2d(ji,jj) = f_pi_omarg(ji,jj) 691 ENDIF 669 692 # endif 670 693 ENDIF … … 672 695 ENDDO 673 696 ENDDO 674 675 # endif676 697 677 698 !!----------------------------------------------------------------- … … 766 787 ENDDO 767 788 ENDDO 768 # endif 789 # endif !! Roam 769 790 770 791 END SUBROUTINE air_sea 771 792 772 #else 793 #else !! medusa 773 794 !!====================================================================== 774 795 !! Dummy module : No MEDUSA bio-model … … 778 799 WRITE(*,*) 'air_sea: You should not have seen this print! error?' 779 800 END SUBROUTINE air_sea 780 #endif 801 #endif !! medusa 781 802 782 803 !!====================================================================== -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_med_diag_iomput.F90
r8442 r10047 31 31 !!------------------------------------------------------------------- 32 32 USE bio_medusa_mod 33 USE dom_oce, ONLY: e3t_0, e3t_n, mbathy, tmask 33 USE dom_oce, ONLY: e3t_0, mbathy, tmask 34 # if defined key_vvl 35 USE dom_oce, ONLY: e3t_n 36 # endif 34 37 USE in_out_manager, ONLY: lwp, numout 35 38 USE par_oce, ONLY: jpim1, jpjm1 … … 718 721 CONTAINS 719 722 SUBROUTINE bio_med_diag_iomput( ) ! Empty routine 723 IMPLICIT NONE 720 724 WRITE(*,*) 'bio_med_diag_iomput: You should not have seen this print! error?' 721 725 END SUBROUTINE bio_med_diag_iomput -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_diag.F90
r8442 r10047 32 32 USE bio_med_diag_iomput_mod, ONLY: bio_med_diag_iomput 33 33 USE bio_medusa_mod 34 USE dom_oce, ONLY: e3t_0, e3t_n, & 35 gdepw_0, gdepw_n, tmask 34 USE dom_oce, ONLY: e3t_0, gdepw_0, tmask 35 # if defined key_vvl 36 USE dom_oce, ONLY: e3t_n, gdepw_n 37 # endif 36 38 USE in_out_manager, ONLY: lwp, numout 37 # if defined key_iomput38 39 USE iom, ONLY: lk_iomput 39 # endif40 40 USE par_oce, ONLY: jpim1, jpjm1 41 41 USE sms_medusa, ONLY: xrfn, xthetapd, xthetapn, & -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_diag_slice.F90
r10045 r10047 36 36 USE dom_oce, ONLY: tmask 37 37 USE in_out_manager, ONLY: lwp, numout 38 # if defined key_iomput39 38 USE iom, ONLY: iom_put 40 # endif41 39 USE lbclnk, ONLY: lbc_lnk 42 40 USE oce, ONLY: CO2Flux_out_cpl, DMS_out_cpl … … 245 243 !!---------------------------------------------------------------------- 246 244 IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 247 CALL iom_put( "PI_ATM_PCO2" , f_pi_pco2a 2d )248 DEALLOCATE( f_pi_pco2a 2d )245 CALL iom_put( "PI_ATM_PCO2" , f_pi_pco2a_2d ) 246 DEALLOCATE( f_pi_pco2a_2d ) 249 247 ENDIF 250 248 IF( med_diag%PI_OCN_PH%dgsave ) THEN 251 CALL iom_put( "PI_OCN_PH" , f_pi_ph 2d )252 DEALLOCATE( f_pi_ph 2d )249 CALL iom_put( "PI_OCN_PH" , f_pi_ph_2d ) 250 DEALLOCATE( f_pi_ph_2d ) 253 251 ENDIF 254 252 IF( med_diag%PI_OCN_PCO2%dgsave ) THEN 255 CALL iom_put( "PI_OCN_PCO2" , f_pi_pco2w 2d )256 DEALLOCATE( f_pi_pco2w 2d )253 CALL iom_put( "PI_OCN_PCO2" , f_pi_pco2w_2d ) 254 DEALLOCATE( f_pi_pco2w_2d ) 257 255 ENDIF 258 256 IF( med_diag%PI_OCNH2CO3%dgsave ) THEN 259 CALL iom_put( "PI_OCNH2CO3" , f_pi_h2co3 2d )260 DEALLOCATE( f_pi_h2co3 2d )257 CALL iom_put( "PI_OCNH2CO3" , f_pi_h2co3_2d ) 258 DEALLOCATE( f_pi_h2co3_2d ) 261 259 ENDIF 262 260 IF( med_diag%PI_OCN_HCO3%dgsave ) THEN 263 CALL iom_put( "PI_OCN_HCO3" , f_pi_hco3 2d )264 DEALLOCATE( f_pi_hco3 2d )261 CALL iom_put( "PI_OCN_HCO3" , f_pi_hco3_2d ) 262 DEALLOCATE( f_pi_hco3_2d ) 265 263 ENDIF 266 264 IF( med_diag%PI_OCN_CO3%dgsave ) THEN 267 CALL iom_put( "PI_OCN_CO3" , f_pi_co3 2d )268 DEALLOCATE( f_pi_co3 2d )265 CALL iom_put( "PI_OCN_CO3" , f_pi_co3_2d ) 266 DEALLOCATE( f_pi_co3_2d ) 269 267 ENDIF 270 268 IF( med_diag%PI_CO2FLUX%dgsave ) THEN 271 CALL iom_put( "PI_CO2FLUX" , f_pi_co2flux 2d )272 DEALLOCATE( f_pi_co2flux 2d )269 CALL iom_put( "PI_CO2FLUX" , f_pi_co2flux_2d ) 270 DEALLOCATE( f_pi_co2flux_2d ) 273 271 ENDIF 274 272 IF( med_diag%PI_FGCO2%dgsave ) THEN … … 277 275 ENDIF 278 276 IF( med_diag%PI_OM_CAL%dgsave ) THEN 279 CALL iom_put( "PI_OM_CAL" , f_pi_omcal )280 !! AXY: WHY IS THIS NOT DEALLOCATED? 277 CALL iom_put( "PI_OM_CAL" , f_pi_omcal_2d ) 278 DEALLOCATE( f_pi_omcal_2d ) 281 279 ENDIF 282 280 IF( med_diag%PI_OM_ARG%dgsave ) THEN 283 CALL iom_put( "PI_OM_ARG" , f_pi_omarg )284 !! AXY: WHY IS THIS NOT DEALLOCATED? 281 CALL iom_put( "PI_OM_ARG" , f_pi_omarg_2d ) 282 DEALLOCATE( f_pi_omarg_2d ) 285 283 ENDIF 286 284 IF( med_diag%PI_TCO2%dgsave ) THEN 287 CALL iom_put( "PI_TCO2" , f_pi_TDIC 2d )288 DEALLOCATE( f_pi_TDIC 2d )285 CALL iom_put( "PI_TCO2" , f_pi_TDIC_2d ) 286 DEALLOCATE( f_pi_TDIC_2d ) 289 287 ENDIF 290 288 IF( med_diag%PI_ATM_XCO2%dgsave ) THEN 291 CALL iom_put( "PI_ATM_XCO2" , f_pi_xco2a_2d 289 CALL iom_put( "PI_ATM_XCO2" , f_pi_xco2a_2d ) 292 290 DEALLOCATE( f_pi_xco2a_2d ) 293 291 ENDIF 294 292 IF( med_diag%PI_OCN_FCO2%dgsave ) THEN 295 CALL iom_put( "PI_OCN_FCO2" , f_pi_fco2w_2d 293 CALL iom_put( "PI_OCN_FCO2" , f_pi_fco2w_2d ) 296 294 DEALLOCATE( f_pi_fco2w_2d ) 297 295 ENDIF 298 296 IF( med_diag%PI_ATM_FCO2%dgsave ) THEN 299 CALL iom_put( "PI_ATM_FCO2" , f_pi_fco2a_2d 297 CALL iom_put( "PI_ATM_FCO2" , f_pi_fco2a_2d ) 300 298 DEALLOCATE( f_pi_fco2a_2d ) 301 299 ENDIF -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_fin.F90
r9114 r10047 33 33 !!---------------------------------------------------------------------- 34 34 USE bio_medusa_mod 35 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt, e3t_n,tmask35 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt, tmask 36 36 USE in_out_manager, ONLY: lwp, numout 37 # if defined key_iomput 38 USE iom, ONLY: iom_put, lk_iomput 39 # endif 37 USE iom, ONLY: iom_put 40 38 USE lbclnk, ONLY: lbc_lnk 41 39 USE oce, ONLY: chloro_out_cpl -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90
r10045 r10047 38 38 USE sms_medusa, ONLY: jdms 39 39 USE trc, ONLY: ln_diatrc, med_diag, nittrc000 40 USE in_out_manager, ONLY: lwp 41 42 # if defined key_iomput 43 USE iom, ONLY: lk_iomput, numout 40 USE in_out_manager, ONLY: lwp, numout 41 42 USE iom, ONLY: lk_iomput 44 43 USE trcnam_medusa, ONLY: trc_nam_iom_medusa 45 # endif46 44 47 45 !! time (integer timestep) … … 179 177 zdic(:,:) = 0.0 180 178 zsil(:,:) = 0.0 179 # if defined key_mocsy 180 ! zpho is only defined if key_mocsy 181 ! is active, so we must protect this 182 ! initialisation accordingly. 181 183 zpho(:,:) = 0.0 184 # endif 182 185 f_co2flux(:,:) = 0.0 183 186 f_pco2atm(:,:) = 0.0 … … 398 401 # if defined key_omip_dic 399 402 IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 400 ALLOCATE( f_pi_pco2a 2d(1:jpi, 1:jpj) )401 f_pi_pco2a 2d(:,:) = 0.0 !!403 ALLOCATE( f_pi_pco2a_2d(1:jpi, 1:jpj) ) 404 f_pi_pco2a_2d(:,:) = 0.0 !! 402 405 ENDIF 403 406 # endif … … 405 408 !! skip OCN_PH diagnostic here 406 409 !! 410 # if defined key_omip_dic 411 IF( med_diag%PI_OCN_PH%dgsave ) THEN 412 ALLOCATE( f_pi_ph_2d(1:jpi, 1:jpj) ) 413 f_pi_ph_2d(:,:) = 0.0 !! 414 ENDIF 415 # endif 407 416 IF( med_diag%OCN_PCO2%dgsave ) THEN 408 417 ALLOCATE( f_pco2w2d(1:jpi, 1:jpj) ) … … 411 420 # if defined key_omip_dic 412 421 IF( med_diag%PI_OCN_PCO2%dgsave ) THEN 413 ALLOCATE( f_pi_pco2w 2d(1:jpi, 1:jpj) )414 f_pi_pco2w 2d(:,:) = 0.0 !!422 ALLOCATE( f_pi_pco2w_2d(1:jpi, 1:jpj) ) 423 f_pi_pco2w_2d(:,:) = 0.0 !! 415 424 ENDIF 416 425 # endif … … 418 427 !! skip OCNH2CO3, OCN_HCO3, OCN_CO3 diagnostics here 419 428 !! 429 # if defined key_omip_dic 430 IF( med_diag%PI_OCNH2CO3%dgsave ) THEN 431 ALLOCATE( f_pi_h2co3_2d(1:jpi, 1:jpj) ) 432 f_pi_h2co3_2d(:,:) = 0.0 !! 433 ENDIF 434 IF( med_diag%PI_OCN_HCO3%dgsave ) THEN 435 ALLOCATE( f_pi_hco3_2d(1:jpi, 1:jpj) ) 436 f_pi_hco3_2d(:,:) = 0.0 !! 437 ENDIF 438 IF( med_diag%PI_OCN_CO3%dgsave ) THEN 439 ALLOCATE( f_pi_co3_2d(1:jpi, 1:jpj) ) 440 f_pi_co3_2d(:,:) = 0.0 !! 441 ENDIF 442 # endif 443 420 444 IF( med_diag%CO2FLUX%dgsave ) THEN 421 445 ALLOCATE( f_co2flux2d(1:jpi, 1:jpj) ) … … 431 455 !! skip OM_XXX diagnostics here 432 456 !! 457 # if defined key_omip_dic 458 IF( med_diag%PI_OM_CAL%dgsave ) THEN 459 ALLOCATE( f_pi_omcal_2d(1:jpi, 1:jpj) ) 460 f_pi_omcal_2d(:,:) = 0.0 !! 461 ENDIF 462 IF( med_diag%PI_OM_ARG%dgsave ) THEN 463 ALLOCATE( f_pi_omarg_2d(1:jpi, 1:jpj) ) 464 f_pi_omarg_2d(:,:) = 0.0 !! 465 ENDIF 466 # endif 433 467 IF( med_diag%TCO2%dgsave ) THEN 434 468 ALLOCATE( f_TDIC2d(1:jpi, 1:jpj) ) … … 928 962 CONTAINS 929 963 SUBROUTINE bio_medusa_init( ) ! Empty routine 964 IMPLICIT NONE 930 965 WRITE(*,*) 'bio_medusa_init: You should not have seen this print! error?' 931 966 END SUBROUTINE bio_medusa_init -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_mod.F90
r10045 r10047 256 256 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_co2starair_2d 257 257 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_ocndpco2_2d 258 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_pco2a_2d, f_pi_pco2w_2d, f_pi_co2flux_2d 259 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_TDIC_2d 260 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_ph_2d, f_pi_omcal_2d, f_pi_omarg_2d 261 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_h2co3_2d, f_pi_hco3_2d, f_pi_co3_2d 258 262 # endif 259 263 # endif -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90
r10045 r10047 75 75 # endif 76 76 zpds, zphd, zphn 77 USE dom_oce, ONLY: e3t_0, e3t_n, gphit, mbathy, tmask 77 USE dom_oce, ONLY: e3t_0, gphit, mbathy, tmask 78 # if defined key_vvl 79 USE dom_oce, ONLY: e3t_n 80 # endif 78 81 USE in_out_manager, ONLY: lwp, numout 79 82 USE lib_mpp, ONLY: ctl_stop … … 86 89 jpdic_lc, jpdin_lc, jpdtc_lc, jpfer_lc, & 87 90 jpoxy_lc, jppds_lc, jpphd_lc, jpphn_lc, & 88 jpsil_lc, jpzme_lc, jpzmi_lc 91 # if defined key_omip_dic 92 jpomd, jpomd_lc, & 93 # endif 94 jpsil_lc, jpzme_lc, jpzmi_lc 89 95 USE par_oce, ONLY: jpi, jpim1, jpj, jpjm1, jpk 90 96 USE par_trc, ONLY: jptra … … 271 277 ! mort. loss 272 278 ((1.0 - xfdfrac1) * fdpds(ji,jj)) + & 273 &! egestion of grazed Si279 ! egestion of grazed Si 274 280 ((1.0 - xfdfrac3) * fgmepds(ji,jj)) + & 275 281 ! fast diss. and metab. losses -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/carb_chem.F90
r10045 r10047 41 41 # endif 42 42 zalk, zdic, zsal, zsil, ztmp 43 USE dom_oce, ONLY: gdept_0, gdept_n, gdepw_0, gdepw_n, & 44 gphit, mbathy, tmask 43 USE dom_oce, ONLY: gdept_0, gdepw_0, gphit, mbathy, tmask 44 # if defined key_vvl 45 USE dom_oce, ONLY: gdept_n, gdepw_n 46 # endif 45 47 USE in_out_manager, ONLY: lwp, numout 46 48 USE oce, ONLY: PCO2a_in_cpl, tsb, tsn -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/detritus.F90
r10045 r10047 45 45 fun_T, fun_Q10, zdet, zdtc 46 46 USE detritus_fast_sink_mod, ONLY: detritus_fast_sink 47 USE dom_oce, ONLY: mbathy, e3t_0, e3t_n, gphit, tmask 47 USE dom_oce, ONLY: mbathy, e3t_0, gphit, tmask 48 # if defined key_vvl 49 USE dom_oce, ONLY: e3t_n 50 # endif 48 51 USE in_out_manager, ONLY: lwp, numout 49 52 USE par_oce, ONLY: jpim1, jpjm1 -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/detritus_fast_sink.F90
r10045 r10047 66 66 idf, idfval, & 67 67 zdet, zdtc 68 USE dom_oce, ONLY: e3t_0, e3t_n, gdepw_0, gdepw_n, & 69 gphit, mbathy, tmask 68 USE dom_oce, ONLY: e3t_0, gdepw_0, gphit, mbathy, tmask 69 # if defined key_vvl 70 USE dom_oce, ONLY: e3t_n, gdepw_n 71 # endif 70 72 USE in_out_manager, ONLY: lwp, numout 71 73 USE oce, ONLY: tsn -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/iron_chem_scav.F90
r8441 r10047 35 35 zdet, zfer, zphd, zphn, zzme, zzmi, & 36 36 idf, idfval 37 USE dom_oce, ONLY: e3t_0, e3t_n, gdepw_0, gdepw_n, & 38 mbathy, tmask 37 USE dom_oce, ONLY: e3t_0, gdepw_0, mbathy, tmask 38 #if defined key_vvl 39 USE dom_oce, ONLY: e3t_n, gdepw_n 40 #endif 39 41 USE par_kind, ONLY: wp 40 42 USE in_out_manager, ONLY: lwp, numout -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/par_medusa.F90
r10045 r10047 68 68 # if defined key_omip_dic 69 69 INTEGER, PUBLIC, PARAMETER :: jpomd = jp_lm + 16 !: OMIP preindustrial DIC 70 # end 70 # endif 71 71 # endif 72 72 … … 90 90 # if defined key_omip_dic 91 91 INTEGER, PUBLIC, PARAMETER :: jpomd_lc = 16 !: OMIP preindustrial DIC 92 # end 92 # endif 93 93 # endif 94 94 -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/phytoplankton.F90
r10045 r10047 44 44 zfer, zpds, zphd, zphn, zsil, & 45 45 zzme, zzmi, fchl_ml 46 USE dom_oce, ONLY: e3t_0, e3t_n, gdepw_0, gdepw_n, tmask 46 USE dom_oce, ONLY: e3t_0, gdepw_0, tmask 47 #if defined key_vvl 48 USE dom_oce, ONLY: e3t_n, gdepw_n 49 #endif 47 50 USE in_out_manager, ONLY: lwp, numout 48 51 USE oce, ONLY: tsn -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r10045 r10047 75 75 # endif 76 76 # if defined key_omip_dic 77 zomd, 77 zomd,f_pi_xco2a, & 78 78 # endif 79 79 # if defined key_mocsy … … 83 83 zfer, zpds, zphd, zphn, zsil, & 84 84 zzme, zzmi 85 USE dom_oce, ONLY: e3t_0, e3t_n, & 86 gdept_0, gdept_n, & 87 gdepw_0, gdepw_n, & 88 nday_year, nsec_day, & 85 USE dom_oce, ONLY: e3t_0, gdept_0, gdepw_0, & 86 nday_year, nsec_day, & 89 87 nyear, nyear_len, ndastp, & 90 88 nsec_month, & 91 89 rdt, tmask, mig, mjg, nimpp, & 92 90 njmpp 91 #if defined key_vvl 92 USE dom_oce, ONLY: e3t_n, gdept_n, gdepw_n 93 #endif 94 93 95 USE in_out_manager, ONLY: lwp, numout, nn_date0 94 # if defined key_iomput95 96 USE iom, ONLY: lk_iomput 96 # endif97 97 USE lbclnk, ONLY: lbc_lnk 98 98 USE lib_mpp, ONLY: mpp_max, mpp_maxloc, & … … 384 384 385 385 # if defined key_omip_dic 386 f_ xco2a(:,:) = 284.317 !! CMIP6 pre-industrial pCO2386 f_pi_xco2a(:,:) = 284.317 !! CMIP6 pre-industrial pCO2 387 387 # endif 388 388 … … 708 708 ji, jj, jk, kt 709 709 endif 710 # if defined key_omip_dic710 # if defined key_omip_dic 711 711 if (trn(ji,jj,jk,jpomd).lt.0.) then 712 712 IF (lwp) write (numout,*) & … … 717 717 ji, jj, jk, kt 718 718 endif 719 # endif 719 720 # endif 720 721 endif … … 839 840 !! temporary variables 840 841 REAL(wp), INTENT( in ), DIMENSION(3,3) :: tiny_var, tiny_mask 841 CHARACTER( 25), INTENT( in ) :: var_nm842 CHARACTER(3), INTENT( in ) :: var_nm 842 843 REAL(wp), INTENT( in ) :: mini, maxi 843 844 REAL(wp), INTENT( out ) :: varout … … 1043 1044 CONTAINS 1044 1045 SUBROUTINE trc_bio_medusa( kt ) ! Empty routine 1046 IMPLICIT NONE 1045 1047 INTEGER, INTENT( in ) :: kt 1046 1048 WRITE(*,*) 'trc_bio_medusa: You should not have seen this print! error?', kt -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/zooplankton.F90
r10045 r10047 41 41 idf, idfval, & 42 42 zdet, zdtc, zphd, zphn, zzme, zzmi 43 USE dom_oce, ONLY: e3t_0, e3t_n, tmask 43 USE dom_oce, ONLY: e3t_0, tmask 44 #if defined key_vvl 45 USE dom_oce, ONLY: e3t_n 46 #endif 44 47 USE par_kind, ONLY: wp 45 48 USE in_out_manager, ONLY: lwp, numout -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r7771 r10047 51 51 !! 52 52 !!---------------------------------------------------------------------- 53 IMPLICIT NONE 53 54 INTEGER, INTENT( in ) :: kt ! ocean time-step 54 55 CHARACTER (len=22) :: charout 55 56 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd 57 INTEGER :: jn ! Local loop index 56 58 !!---------------------------------------------------------------------- 57 59 ! … … 108 110 CONTAINS 109 111 SUBROUTINE trc_bbl( kt ) ! Empty routine 112 IMPLICIT NONE 113 INTEGER, INTENT(in) :: kt ! ocean time-step index 110 114 WRITE(*,*) 'tra_bbl: You should not have seen this print! error?', kt 111 115 END SUBROUTINE trc_bbl -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/trc.F90
r9262 r10047 110 110 END TYPE DIAG 111 111 112 #if defined key_medusa && defined key_iomput112 #if defined key_medusa 113 113 TYPE, PUBLIC :: BDIAG 114 114 LOGICAL :: dgsave … … 145 145 FGCO2, INTDISSIC, INTDISSIN, INTDISSISI, INTTALK, O2min, ZO2min, & 146 146 FBDDTALK, FBDDTDIC, FBDDTDIFE, FBDDTDIN, FBDDTDISI, & 147 # if defined key_omip_dic 148 ! JPALM (08/08/18): additional OMIP PI DIC 2D diag 149 PI_ATM_PCO2, PI_OCN_PH, PI_OCN_PCO2, PI_OCNH2CO3, PI_OCN_HCO3, PI_OCN_CO3, & 150 PI_CO2FLUX, PI_FGCO2, PI_OM_CAL, PI_OM_ARG, PI_TCO2, & 151 PI_ATM_XCO2, PI_OCN_FCO2, PI_ATM_FCO2, PI_CO2STARAIR, PI_OCN_DPCO2, & 152 # endif 147 153 ! AXY (11/11/16): additional CMIP6 3D diagnostics 148 154 TPPD3, & -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r9385 r10047 726 726 !!---------------------------------------------------------------------- 727 727 INTEGER :: ji, jj, jk, jn 728 REAL(wp) :: zsum3d, zsum2d, zinvt, zdelta, zratio, loc_vol, loc_are 729 REAL(wp) :: zq1, zq2, loc_vol, loc_area 728 REAL(wp) :: zsum3d, zsum2d, zinvt, zdelta, zratio 730 729 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d, zvol 731 730 REAL(wp), DIMENSION(jpi,jpj) :: z2d, zarea -
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/trcstat.F90
r9163 r10047 28 28 USE par_oce, ONLY: jpi, jpj 29 29 USE par_trc, ONLY: jptra 30 USE dom_oce, ONLY: e3t_0, e3t_a, e3t_n, gdepw_0, gdepw_n, & 31 tmask, e1e2t 30 USE dom_oce, ONLY: e3t_0, gdepw_0, tmask, e1e2t 31 #if defined key_vvl 32 USE dom_oce, ONLY: e3t_a, e3t_n, gdepw_n 33 #endif 32 34 !* MPP library 33 35 USE lib_mpp
Note: See TracChangeset
for help on using the changeset viewer.