Changeset 2715 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsed.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsed.F90
r2528 r2715 18 18 USE oce_trc ! 19 19 USE sms_pisces 20 USE lib_mpp21 USE lib_fortran22 20 USE prtctl_trc 23 21 USE p4zbio … … 27 25 USE p4zrem 28 26 USE p4zlim 29 USE lbclnk30 27 USE iom 31 28 … … 36 33 PUBLIC p4z_sed 37 34 PUBLIC p4z_sed_init 35 PUBLIC p4z_sed_alloc 38 36 39 37 !! * Shared module variables 40 LOGICAL, PUBLIC :: & 41 ln_dustfer = .FALSE. , & !: 42 ln_river = .FALSE. , & !: 43 ln_ndepo = .FALSE. , & !: 44 ln_sedinput = .FALSE. !: 45 46 REAL(wp), PUBLIC :: & 47 sedfeinput = 1.E-9_wp , & !: 48 dustsolub = 0.014_wp !: 38 LOGICAL, PUBLIC :: ln_dustfer = .FALSE. !: boolean for dust input from the atmosphere 39 LOGICAL, PUBLIC :: ln_river = .FALSE. !: boolean for river input of nutrients 40 LOGICAL, PUBLIC :: ln_ndepo = .FALSE. !: boolean for atmospheric deposition of N 41 LOGICAL, PUBLIC :: ln_sedinput = .FALSE. !: boolean for Fe input from sediments 42 43 REAL(wp), PUBLIC :: sedfeinput = 1.E-9_wp !: Coastal release of Iron 44 REAL(wp), PUBLIC :: dustsolub = 0.014_wp !: Solubility of the dust 49 45 50 46 !! * Module variables 51 REAL(wp) :: ryyss !: number of seconds per year 52 REAL(wp) :: ryyss1 !: inverse of ryyss 53 REAL(wp) :: rmtss !: number of seconds per month 54 REAL(wp) :: rday1 !: inverse of rday 55 56 INTEGER , PARAMETER :: & 57 jpmth = 12, jpyr = 1 58 INTEGER :: & 59 numdust, & !: logical unit for surface fluxes data 60 nflx1 , nflx2, & !: first and second record used 61 nflx11, nflx12 ! ??? 62 REAL(wp), DIMENSION(jpi,jpj,jpmth) :: dustmo !: set of dust fields 63 REAL(wp), DIMENSION(jpi,jpj) :: rivinp, cotdep, nitdep, dust 64 REAL(wp), DIMENSION(jpi,jpj) :: e1e2t 65 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ironsed 47 REAL(wp) :: ryyss !: number of seconds per year 48 REAL(wp) :: ryyss1 !: inverse of ryyss 49 REAL(wp) :: rmtss !: number of seconds per month 50 REAL(wp) :: rday1 !: inverse of rday 51 52 INTEGER , PARAMETER :: jpmth = 12 !: number of months per year 53 INTEGER , PARAMETER :: jpyr = 1 !: one year 54 55 INTEGER :: numdust !: logical unit for surface fluxes data 56 INTEGER :: nflx1 , nflx2 !: first and second record used 57 INTEGER :: nflx11, nflx12 58 59 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dustmo !: set of dust fields 60 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: dust !: dust fields 61 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivinp, cotdep !: river input fields 62 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: nitdep !: atmospheric N deposition 63 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ironsed !: Coastal supply of iron 64 66 65 REAL(wp) :: sumdepsi, rivalkinput, rivpo4input, nitdepinput 67 66 … … 76 75 CONTAINS 77 76 77 78 78 SUBROUTINE p4z_sed( kt, jnt ) 79 79 !!--------------------------------------------------------------------- … … 86 86 !! ** Method : - ??? 87 87 !!--------------------------------------------------------------------- 88 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 89 USE wrk_nemo, ONLY: zsidep => wrk_2d_1, zwork => wrk_2d_2, zwork1 => wrk_2d_3 90 USE wrk_nemo, ONLY: znitrpot => wrk_3d_2, zirondep => wrk_3d_3 91 ! 88 92 INTEGER, INTENT(in) :: kt, jnt ! ocean time step 89 93 INTEGER :: ji, jj, jk, ikt … … 94 98 REAL(wp) :: zdenitot, znitrpottot, zlim, zfact 95 99 REAL(wp) :: zwsbio3, zwsbio4, zwscal 96 REAL(wp), DIMENSION(jpi,jpj) :: zsidep97 REAL(wp), DIMENSION(jpi,jpj) :: zwork, zwork198 REAL(wp), DIMENSION(jpi,jpj,jpk) :: znitrpot, zirondep99 100 CHARACTER (len=25) :: charout 100 101 !!--------------------------------------------------------------------- 102 103 IF( ( wrk_in_use(2, 1,2,3) ) .OR. ( wrk_in_use(3, 2,3) ) ) THEN 104 CALL ctl_stop('p4z_sed: requested workspace arrays unavailable') ; RETURN 105 END IF 101 106 102 107 IF( jnt == 1 .AND. ln_dustfer ) CALL p4z_sbc( kt ) … … 288 293 ENDIF 289 294 295 IF( ( wrk_not_released(2, 1,2,3) ) .OR. ( wrk_not_released(3, 2,3) ) ) & 296 & CALL ctl_stop('p4z_sed: failed to release workspace arrays') 297 290 298 END SUBROUTINE p4z_sed 291 299 … … 474 482 ryyss1 = 1. / ryyss 475 483 ! ! ocean surface cell 476 e1e2t(:,:) = e1t(:,:) * e2t(:,:)477 484 478 485 ! total atmospheric supply of Si … … 512 519 END SUBROUTINE p4z_sed_init 513 520 521 INTEGER FUNCTION p4z_sed_alloc() 522 !!---------------------------------------------------------------------- 523 !! *** ROUTINE p4z_sed_alloc *** 524 !!---------------------------------------------------------------------- 525 526 ALLOCATE( dustmo(jpi,jpj,jpmth), dust(jpi,jpj) , & 527 & rivinp(jpi,jpj) , cotdep(jpi,jpj) , & 528 & nitdep(jpi,jpj) , ironsed(jpi,jpj,jpk), STAT=p4z_sed_alloc ) 529 530 IF( p4z_sed_alloc /= 0 ) CALL ctl_warn('p4z_sed_alloc : failed to allocate arrays.') 531 532 END FUNCTION p4z_sed_alloc 514 533 #else 515 534 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.