- Timestamp:
- 2018-05-02T16:41:22+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
r9473 r9537 27 27 PRIVATE 28 28 29 PUBLIC zdf_mxl_tref ! called by asminc.F90 29 30 PUBLIC zdf_mxl ! called by step.F90 30 31 32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_tref !: mixed layer depth at t-points - temperature criterion [m] 31 33 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: nmln !: number of level in the mixed layer (used by TOP) 32 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld !: mixing layer depth (turbocline) [m] … … 78 80 & ll_found(jpi,jpj), ll_belowml(jpi,jpj,jpk), STAT= zdf_mxl_alloc ) 79 81 ! 82 ALLOCATE(hmld_tref(jpi,jpj)) 80 83 IF( lk_mpp ) CALL mpp_sum ( zdf_mxl_alloc ) 81 84 IF( zdf_mxl_alloc /= 0 ) CALL ctl_warn('zdf_mxl_alloc: failed to allocate arrays.') … … 84 87 END FUNCTION zdf_mxl_alloc 85 88 89 SUBROUTINE zdf_mxl_tref() 90 !!---------------------------------------------------------------------- 91 !! *** ROUTINE zdf_mxl_tref *** 92 !! 93 !! ** Purpose : Compute the mixed layer depth with temperature criteria. 94 !! 95 !! ** Method : The temperature-defined mixed layer depth is required 96 !! when assimilating SST in a 2D analysis. 97 !! 98 !! ** Action : hmld_tref 99 !!---------------------------------------------------------------------- 100 ! 101 INTEGER :: ji, jj, jk ! dummy loop indices 102 REAL(wp) :: t_ref ! Reference temperature 103 REAL(wp) :: temp_c = 0.2 ! temperature criterion for mixed layer depth 104 !!---------------------------------------------------------------------- 105 ! 106 ! Initialise array 107 IF( zdf_mxl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'zdf_mxl_tref : unable to allocate arrays' ) 108 109 !For the AMM model assimiation uses a temperature based mixed layer depth 110 !This is defined here 111 DO jj = 1, jpj 112 DO ji = 1, jpi 113 hmld_tref(ji,jj)=fsdept(ji,jj,1 ) 114 IF(ssmask(ji,jj) > 0.)THEN 115 t_ref=tsn(ji,jj,1,jp_tem) 116 DO jk=2,jpk 117 IF(ssmask(ji,jj)==0.)THEN 118 hmld_tref(ji,jj)=fsdept(ji,jj,jk ) 119 EXIT 120 ELSEIF( ABS(tsn(ji,jj,jk,jp_tem)-t_ref) < temp_c)THEN 121 hmld_tref(ji,jj)=fsdept(ji,jj,jk ) 122 ELSE 123 EXIT 124 ENDIF 125 ENDDO 126 ENDIF 127 ENDDO 128 ENDDO 129 130 END SUBROUTINE zdf_mxl_tref 86 131 87 132 SUBROUTINE zdf_mxl( kt ) … … 551 596 IF( i_cnt_25h .EQ. 25 .AND. MOD( kt, i_steps*24) == 0 .AND. kt .NE. nn_it000 ) THEN 552 597 i_cnt_25h = 1 553 DO jn = 1, nn_mld_diag554 hmld_zint_25h(:,:,jn) = hmld_zint(:,:)555 ENDDO556 598 ENDIF 557 599 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.