Changeset 9473
- Timestamp:
- 2018-04-12T18:12:29+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90
r9181 r9473 27 27 PRIVATE 28 28 29 PUBLIC zdf_mxl_tref ! called by asminc.F9030 29 PUBLIC zdf_mxl ! called by step.F90 31 30 32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_tref !: mixed layer depth at t-points - temperature criterion [m]33 31 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: nmln !: number of level in the mixed layer (used by TOP) 34 32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld !: mixing layer depth (turbocline) [m] … … 80 78 & ll_found(jpi,jpj), ll_belowml(jpi,jpj,jpk), STAT= zdf_mxl_alloc ) 81 79 ! 82 ALLOCATE(hmld_tref(jpi,jpj))83 80 IF( lk_mpp ) CALL mpp_sum ( zdf_mxl_alloc ) 84 81 IF( zdf_mxl_alloc /= 0 ) CALL ctl_warn('zdf_mxl_alloc: failed to allocate arrays.') … … 87 84 END FUNCTION zdf_mxl_alloc 88 85 89 90 SUBROUTINE zdf_mxl_tref()91 !!----------------------------------------------------------------------92 !! *** ROUTINE zdf_mxl_tref ***93 !!94 !! ** Purpose : Compute the mixed layer depth with temperature criteria.95 !!96 !! ** Method : The temperature-defined mixed layer depth is required97 !! when assimilating SST in a 2D analysis.98 !!99 !! ** Action : hmld_tref100 !!----------------------------------------------------------------------101 !102 INTEGER :: ji, jj, jk ! dummy loop indices103 REAL(wp) :: t_ref ! Reference temperature104 REAL(wp) :: temp_c = 0.2 ! temperature criterion for mixed layer depth105 !!----------------------------------------------------------------------106 !107 ! Initialise array108 IF( zdf_mxl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'zdf_mxl_tref : unable to allocate arrays' )109 110 !For the AMM model assimiation uses a temperature based mixed layer depth111 !This is defined here112 DO jj = 1, jpj113 DO ji = 1, jpi114 hmld_tref(ji,jj)=fsdept(ji,jj,1 )115 IF(ssmask(ji,jj) > 0.)THEN116 t_ref=tsn(ji,jj,1,jp_tem)117 DO jk=2,jpk118 IF(ssmask(ji,jj)==0.)THEN119 hmld_tref(ji,jj)=fsdept(ji,jj,jk )120 EXIT121 ELSEIF( ABS(tsn(ji,jj,jk,jp_tem)-t_ref) < temp_c)THEN122 hmld_tref(ji,jj)=fsdept(ji,jj,jk )123 ELSE124 EXIT125 ENDIF126 ENDDO127 ENDIF128 ENDDO129 ENDDO130 131 END SUBROUTINE zdf_mxl_tref132 86 133 87 SUBROUTINE zdf_mxl( kt ) … … 597 551 IF( i_cnt_25h .EQ. 25 .AND. MOD( kt, i_steps*24) == 0 .AND. kt .NE. nn_it000 ) THEN 598 552 i_cnt_25h = 1 553 DO jn = 1, nn_mld_diag 554 hmld_zint_25h(:,:,jn) = hmld_zint(:,:) 555 ENDDO 599 556 ENDIF 600 557 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.