- Timestamp:
- 2015-07-20T19:43:15+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5589_is_oce_cpl/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90
r5215 r5619 34 34 35 35 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tsd ! structure of input SST (file informations, fields read) 36 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tsddmp ! structure of input SST (file informations, fields read) 36 37 37 38 !! * Substitutions … … 60 61 TYPE(FLD_N), DIMENSION( jpts) :: slf_i ! array of namelist informations on the fields to read 61 62 TYPE(FLD_N) :: sn_tem, sn_sal 63 TYPE(FLD_N) :: sn_dmpt, sn_dmps 62 64 !! 63 65 NAMELIST/namtsd/ ln_tsd_init, ln_tsd_tradmp, cn_dir, sn_tem, sn_sal 66 NAMELIST/namtra_dmpfile/ sn_dmpt, sn_dmps 64 67 INTEGER :: ios 65 68 !!---------------------------------------------------------------------- … … 78 81 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in configuration namelist', lwp ) 79 82 IF(lwm) WRITE ( numond, namtsd ) 83 84 REWIND( numnam_ref ) ! Namelist namtra_dmp in reference namelist : Temperature and salinity damping term 85 READ ( numnam_ref, namtra_dmpfile, IOSTAT = ios, ERR = 903) 86 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in reference namelist', lwp ) 87 88 REWIND( numnam_cfg ) ! Namelist namtra_dmp in configuration namelist : Temperature and salinity damping term 89 READ ( numnam_cfg, namtra_dmpfile, IOSTAT = ios, ERR = 904 ) 90 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_dmp in configuration namelist', lwp ) 80 91 81 92 IF( PRESENT( ld_tradmp ) ) ln_tsd_tradmp = .TRUE. ! forces the initialization when tradmp is used … … 105 116 ! 106 117 ALLOCATE( sf_tsd(jpts), STAT=ierr0 ) 118 ALLOCATE( sf_tsddmp(jpts), STAT=ierr0 ) 107 119 IF( ierr0 > 0 ) THEN 108 120 CALL ctl_stop( 'dta_tsd_init: unable to allocate sf_tsd structure' ) ; RETURN … … 113 125 ALLOCATE( sf_tsd(jp_sal)%fnow(jpi,jpj,jpk) , STAT=ierr2 ) 114 126 IF( sn_sal%ln_tint ) ALLOCATE( sf_tsd(jp_sal)%fdta(jpi,jpj,jpk,2) , STAT=ierr3 ) 127 ! dmp file 128 ALLOCATE( sf_tsddmp(jp_tem)%fnow(jpi,jpj,jpk) , STAT=ierr0 ) 129 IF( sn_dmpt%ln_tint ) ALLOCATE( sf_tsddmp(jp_tem)%fdta(jpi,jpj,jpk,2) , STAT=ierr1 ) 130 ALLOCATE( sf_tsddmp(jp_sal)%fnow(jpi,jpj,jpk) , STAT=ierr2 ) 131 IF( sn_dmps%ln_tint ) ALLOCATE( sf_tsddmp(jp_sal)%fdta(jpi,jpj,jpk,2) , STAT=ierr3 ) 115 132 ! 116 133 IF( ierr0 + ierr1 + ierr2 + ierr3 > 0 ) THEN … … 120 137 slf_i(jp_tem) = sn_tem ; slf_i(jp_sal) = sn_sal 121 138 CALL fld_fill( sf_tsd, slf_i, cn_dir, 'dta_tsd', 'Temperature & Salinity data', 'namtsd' ) 139 slf_i(jp_tem) = sn_dmpt ; slf_i(jp_sal) = sn_dmps 140 CALL fld_fill( sf_tsddmp, slf_i, cn_dir, 'dta_tsd', 'Temperature & Salinity data', 'namtsd' ) 122 141 ! 123 142 ENDIF … … 128 147 129 148 130 SUBROUTINE dta_tsd( kt, ptsd )149 SUBROUTINE dta_tsd( kt, ptsd, ptsddmp ) 131 150 !!---------------------------------------------------------------------- 132 151 !! *** ROUTINE dta_tsd *** … … 145 164 INTEGER , INTENT(in ) :: kt ! ocean time-step 146 165 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT( out) :: ptsd ! T & S data 166 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), OPTIONAL, INTENT( out) :: ptsddmp ! T & S data 147 167 ! 148 168 INTEGER :: ji, jj, jk, jl, jkk ! dummy loop indicies … … 155 175 ! 156 176 CALL fld_read( kt, 1, sf_tsd ) !== read T & S data at kt time step ==! 177 IF ( PRESENT(ptsddmp) ) THEN 178 CALL fld_read( kt, 1, sf_tsddmp ) !== read T & S data at kt time step ==! 179 ptsddmp(:,:,:,jp_tem) = sf_tsddmp(jp_tem)%fnow(:,:,:) ! NO mask 180 ptsddmp(:,:,:,jp_sal) = sf_tsddmp(jp_sal)%fnow(:,:,:) 181 END IF 157 182 ! 158 183 ! … … 304 329 IF( sf_tsd(jp_sal)%ln_tint ) DEALLOCATE( sf_tsd(jp_sal)%fdta ) 305 330 DEALLOCATE( sf_tsd ) ! the structure itself 331 IF(lwp) WRITE(numout,*) 'dta_tsd: deallocte T & S arrays as they are only use to initialize the run' 332 DEALLOCATE( sf_tsddmp(jp_tem)%fnow ) ! T arrays in the structure 333 IF( sf_tsddmp(jp_tem)%ln_tint ) DEALLOCATE( sf_tsddmp(jp_tem)%fdta ) 334 DEALLOCATE( sf_tsddmp(jp_sal)%fnow ) ! S arrays in the structure 335 IF( sf_tsddmp(jp_sal)%ln_tint ) DEALLOCATE( sf_tsddmp(jp_sal)%fdta ) 336 DEALLOCATE( sf_tsddmp ) ! the structure itself 306 337 ENDIF 307 338 !
Note: See TracChangeset
for help on using the changeset viewer.