- Timestamp:
- 2013-04-22T12:05:52+02:00 (11 years ago)
- Location:
- branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r3294 r3881 40 40 LOGICAL :: ln_pisdmp !: relaxation or not of nutrients to a mean value 41 41 INTEGER :: nn_pisdmp !: frequency of relaxation or not of nutrients to a mean value 42 LOGICAL :: ln_pisclo !: Restoring or not of nutrients to initial value43 42 !: on close seas 44 43 -
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
r3294 r3881 56 56 #endif 57 57 NAMELIST/nampisdia/ pisdia3d, pisdia2d ! additional diagnostics 58 NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp , ln_pisclo58 NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp 59 59 60 60 !!---------------------------------------------------------------------- … … 170 170 WRITE(numout,*) ' Relaxation of tracer to glodap mean value ln_pisdmp =', ln_pisdmp 171 171 WRITE(numout,*) ' Frequency of Relaxation nn_pisdmp =', nn_pisdmp 172 WRITE(numout,*) ' Restoring of tracer to initial value on closed seas ln_pisclo =', ln_pisclo173 172 WRITE(numout,*) ' ' 174 173 ENDIF -
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
r3294 r3881 42 42 !!---------------------------------------------------------------------- 43 43 44 !45 IF( ln_trcdta .AND. ln_pisclo ) CALL pis_dmp_clo ! restoring of nutrients on close seas46 44 ! 47 45 IF(lwp) WRITE(numout,*) … … 99 97 END SUBROUTINE trc_rst_wri_pisces 100 98 101 SUBROUTINE pis_dmp_clo102 !!---------------------------------------------------------------------103 !! *** ROUTINE pis_dmp_clo ***104 !!105 !! ** Purpose : Closed sea domain initialization106 !!107 !! ** Method : if a closed sea is located only in a model grid point108 !! we restore to initial data109 !!110 !! ** Action : ictsi1(), ictsj1() : south-west closed sea limits (i,j)111 !! ictsi2(), ictsj2() : north-east Closed sea limits (i,j)112 !!----------------------------------------------------------------------113 INTEGER, PARAMETER :: npicts = 4 ! number of closed sea114 INTEGER, DIMENSION(npicts) :: ictsi1, ictsj1 ! south-west closed sea limits (i,j)115 INTEGER, DIMENSION(npicts) :: ictsi2, ictsj2 ! north-east closed sea limits (i,j)116 INTEGER :: ji, jj, jk, jn, jl, jc ! dummy loop indices117 INTEGER :: ierr ! local integer118 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrcdta ! 4D workspace119 !!----------------------------------------------------------------------120 121 IF(lwp) WRITE(numout,*)122 IF(lwp) WRITE(numout,*)' pis_dmp_clo : closed seas '123 IF(lwp) WRITE(numout,*)'~~~~~~~'124 125 ! initial values126 ictsi1(:) = 1 ; ictsi2(:) = 1127 ictsj1(:) = 1 ; ictsj2(:) = 1128 129 ! set the closed seas (in data domain indices)130 ! -------------------131 132 IF( cp_cfg == "orca" ) THEN133 !134 SELECT CASE ( jp_cfg )135 ! ! =======================136 CASE ( 2 ) ! ORCA_R2 configuration137 ! ! =======================138 ! ! Caspian Sea139 ictsi1(1) = 11 ; ictsj1(1) = 103140 ictsi2(1) = 17 ; ictsj2(1) = 112141 ! ! Great North American Lakes142 ictsi1(2) = 97 ; ictsj1(2) = 107143 ictsi2(2) = 103 ; ictsj2(2) = 111144 ! ! Black Sea 1 : west part of the Black Sea145 ictsi1(3) = 174 ; ictsj1(3) = 107146 ictsi2(3) = 181 ; ictsj2(3) = 112147 ! ! Black Sea 2 : est part of the Black Sea148 ictsi1(4) = 2 ; ictsj1(4) = 107149 ictsi2(4) = 6 ; ictsj2(4) = 112150 ! ! =======================151 CASE ( 4 ) ! ORCA_R4 configuration152 ! ! =======================153 ! ! Caspian Sea154 ictsi1(1) = 4 ; ictsj1(1) = 53155 ictsi2(1) = 4 ; ictsj2(1) = 56156 ! ! Great North American Lakes157 ictsi1(2) = 49 ; ictsj1(2) = 55158 ictsi2(2) = 51 ; ictsj2(2) = 56159 ! ! Black Sea160 ictsi1(3) = 88 ; ictsj1(3) = 55161 ictsi2(3) = 91 ; ictsj2(3) = 56162 ! ! Baltic Sea163 ictsi1(4) = 75 ; ictsj1(4) = 59164 ictsi2(4) = 76 ; ictsj2(4) = 61165 ! ! =======================166 ! ! =======================167 CASE ( 025 ) ! ORCA_R025 configuration168 ! ! =======================169 ! Caspian + Aral sea170 ictsi1(1) = 1330 ; ictsj1(1) = 645171 ictsi2(1) = 1400 ; ictsj2(1) = 795172 ! ! Azov Sea173 ictsi1(2) = 1284 ; ictsj1(2) = 722174 ictsi2(2) = 1304 ; ictsj2(2) = 747175 !176 END SELECT177 !178 ENDIF179 180 ! convert the position in local domain indices181 ! --------------------------------------------182 DO jc = 1, npicts183 ictsi1(jc) = mi0( ictsi1(jc) )184 ictsj1(jc) = mj0( ictsj1(jc) )185 186 ictsi2(jc) = mi1( ictsi2(jc) )187 ictsj2(jc) = mj1( ictsj2(jc) )188 END DO189 190 ! Restore close seas values to initial data191 IF( nb_trcdta > 0 ) THEN ! Initialisation of tracer from a file that may also be used for damping192 ALLOCATE( ztrcdta(jpi,jpj,jpk,nb_trcdta), STAT=ierr )193 IF( ierr > 0 ) THEN194 CALL ctl_stop( 'trc_ini: unable to allocate ztrcdta array' ) ; RETURN195 ENDIF196 !197 CALL trc_dta( nittrc000, ztrcdta ) ! read tracer data at nittrc000198 !199 DO jn = 1, jptra200 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file201 jl = n_trc_index(jn)202 DO jc = 1, npicts203 DO jk = 1, jpkm1204 DO jj = ictsj1(jc), ictsj2(jc)205 DO ji = ictsi1(jc), ictsi2(jc)206 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * tmask(ji,jj,jk)207 trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn)208 ENDDO209 ENDDO210 ENDDO211 ENDDO212 ENDIF213 ENDDO214 DEALLOCATE( ztrcdta )215 ENDIF216 !217 END SUBROUTINE pis_dmp_clo218 99 219 100 #else
Note: See TracChangeset
for help on using the changeset viewer.